おもてなしの経営学 アップルがソニーを超えた理由

面白かった。

古川さんの「上を見て」仕事をするタイプと「天を見て」仕事をするタイプという話が心に残った。

梅田望夫さんの対談で出ていたような、お墓の永代供養料のようなブログサービスというようなサービスは必要だろうなぁとおもう。

僕の中ではやっぱjoyride in high gearかなぁ。

でも更新しないと検索エンジンの順位がだんだん下がっていってヒットしにくくなっちゃうんだよねー

mochaでBDD

ちょっと前にTest Driven Development with a Node.js TCP Server?っていう質問を見つけて、コメントにmocha使えやって書いてあったのでmochaが気になっていた。

ちょっとドキュメントみたんだけど、jasmineみただなぁと。それからいまいち良さが伝わってこない。vowsでいいじゃんと。

もうちょっと探したら、同じようにvowsから移行しようかなぁっていう質問もみつけた。

Should I switch from Vows to Mocha?

done callbackがいいらしいが。

なにかで使ってみないとわからんなぁ。

ProductName テスト駆動JavaScript
Christian Johansen
アスキー・メディアワークス / ?円 ( 2011-11-25 )


Jadeで要素のないiterator(list)の判定

フィードのエントリを表示することを考える。そうするとエントリ数が0の時になにか表示しないといけないが、Jinja2だとfor-else構文があるのだけどjadeではないっぽい。

なので、先頭のエントリがあるかないかで条件分岐させるというテンプレートを書いたんだけど、見た目が悪いというかなんかださい

  if entries[0]
    for e in entries
      h3 #{e.title}
      p #{e.summary}
  else
    h2 no entries

もうちょっと綺麗な書き方はあるんだろうか?

Express+now.js+coffeescriptでつくるお絵描きwebサービスをherokuにデプロイ

今月末にやるハンズオンのサンプルを作りました。興味があったら是非参加してください。そしてNode.jsについて熱く語り合いましょう、さらにその勢いでHaskell+yesodを誰か僕に教えてください。

どんなものをつくるのかはherokuにデプロイしておいたので参考にしてください。コードはGithubです。

テストのために今朝ちょいとtwitterで「書いてみて」ってお願いしたら、こんなにたくさんの画伯が描いてくれました。感謝。

shizdraw

さて、ハンズオンの流れ的には、

  • @k0sukeyが、node.jsインストール、hello worldからherokuデプロイとsoket.ioの触りまでっていう導入的な内容
  • @ksmakotoのwebsocketとnode.jsのHTTPサーバーなんかを低レイヤー寄りのスタンスで書いていくっていう内容
  • 僕が、抽象度の高いライブラリを使ってウェブサービスを作ってみるっていう内容。私のサンプルでは通信部分が3行くらいに収まっています(now.js最高ですね!)。

あとは、サーバーサイドな内容(EventEmitterまわりかな?)が一本入る予定になっています。楽しみですね。

次の日には浜松で浜松 Titanium Mobile 勉強会があるので、土曜はしぞーかおでんを(イベントドリブンで)食べつつ、日曜は浜松でひつまぶしつつTiっていう小旅行勉強会的な何かもいいんじゃないかなー

浜松行きたいんだけどなー

Introduction to Information Retrieval(IIR)の日本語版

Introduction to Information Retrievalの日本語版が出版されるようなので予約してみた。

ProductName 情報検索の基礎
Christopher D.Manning
共立出版 / 8400円 ( 2012-06-23 )


SuperColliderを触ってみた

この通りにやってみただけなんだけどね。

面白そうなので、この本をWishListに追加しておいた。

ProductName The SuperCollider Book

The MIT Press / 3747円 ( 2011-04-15 )


楽寿園にいった

先月のことだと思うが。

動物が沢山いるのでオススメ。ちなみに、暴れて捕まったアンラッキーな猿であるところの名称「ラッキー」は写真撮影禁止だったので撮れなかったが、見栄えのしないただのニホンザルだった。

レッサーパンダ

1336883607

ワラビー

1336883609

カピバラ

1336883611

機関車。息子が大喜び

1336883613

馬その壱

1336883615

馬その貳

1336883617

個人的には植物当てクイズのプレートが面白かった。

Yikes Remixes

ここらへんが気持ちいい。

  • Fault Lines (Unquotes Snowy Remix)
  • Invisible Worlds (B-Complex Remix)
  • Meteorites (Danny Byrd Remix)
  • The Plan That Cannot Fail (Logistics Remix)
  • Elektricity Will Keep Me Warm (S.P.Y Remix)

まぁ、半分以上オススメですわな。

ProductName Yikes Remixes
London Elektricity
Hospital R / 2218円 ( 2012-02-07 )


今日の畑(120603) ジャガイモ収穫

今年は栗じゃが(キタアカリ)を植えた。

ちょっと早いかなと思いつつも梅雨に入る前に収穫してしまえと、子どもと一緒に芋掘りしてきた。

1338705671

家に帰ってから測ったら7.8Kgあった。なかなかの収量。

1338705673

ズッキーニも花が咲いて実がついていたので週末に収穫かな。

1338705675

オクラも定植したが、ちゃんと育ってほしい。

1338705677

それから、ベランダのポットに空芯菜の種をまいて、リーフレタスのコンテナを一つ増やしておいた。

Pythonのformatメソッド

いままでは、なんとなく慣れているという理由で昔ながらのformat(%dとか%s)を使っていたのだけど、最近stringのformatメソッドに切り替えたので、ドキュメントを読んでみた。

文字列のなかで中括弧で挟んで埋め込みを指定するようになっている。conversionは現状repr(!r)かstr(!r)を指定できるようになっているがあまり使わないのでformat_specのほうを。

replacement_field ::=  "{" [field_name] ["!" conversion] [":" format_spec] "}"

Format Specificationによると

format_spec ::=  [[fill]align][sign][#][0][width][,][.precision][type]
fill        ::=  <a character other than '{' or '}'>
align       ::=  "<" | ">" | "=" | "^"
sign        ::=  "+" | "-" | " "
width       ::=  integer
precision   ::=  integer
type        ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

fillは埋め込む文字(デフォルトはspace)

30文字幅で中央寄せでtestという文字を埋め込み、空いてるところは"-"で埋める

>>> "{:-^30}".format("test")
'-------------test-------------'

alignは配置

<は左寄せ、>は右寄せ、^は中央寄せ。=はよくわからん。

signは正負の記号をどう表現するか

正数のときどう表示するかだな。

>>> "{:+05}".format(33)
'+0033'
>>> "{:+05}".format(-33)
'-0033'
>>> "{:-05}".format(33)
'00033'
>>> "{:-05}".format(-33)
'-0033'
>>> "{: 05}".format(33)
' 0033'
>>> "{: 05}".format(-33)
'-0033'

widthは幅で0からはじまる場合は空いてる部分は0で埋める。

>>> "{:05}".format(20)
'00020'

precisionが精度で、小数点以下じゃなくて全体で何桁って感じ。

>>> "{:10.5}".format(10/3.0)
'    3.3333'
>>> "{:10.5}".format(100/3.0)
'    33.333'

最後にfをつけると固定長表記

>>> "{:10.5f}".format(100/3.0)
'  33.33333'
>>> "{:10.5f}".format(10/3.0)
'   3.33333'

comma(,)は1000桁毎にカンマを打つオプションwidthとprecisionの間に入れる

>>> "{:10,}".format(123456789)
'123,456,789'

最後に型指定

  • b: バイナリ
  • c: キャラクタ
  • d: Decimal Integer
  • o: 8進数表記
  • x: 小文字の16進数表記
  • X: 大文字の16進数表記
  • e: 小文字の指数表記
  • E: 大文字の指数表記
  • f:固定長表記
  • g:一般的な表記(デフォルト)

結構素直な表記なので文法見ながら追っかけていったら大体理解できた。