静岡Developers勉強会 第4回HTML5読書会

三島でやります。

ProductName HTML5&CSS3実践入門 最新Web標準を使いこなす (The Pragmatic Programmers)
ブライアンP.ホーガン
インプレスジャパン / 2940円 ( 2011-07-08 )


今回は、ローカルストレージ、websocket、History APIあたりなので、以下の話題に興味があれば参加すると面白いかもしれません。

次の本

入門Gitを推しておきます。GitHubでフォローしているShizudeverいないんだよね、増えたらいいなっていうのが理由の一つ(他のサービス使っているんだろうか?)。もうひとつはブランチの切り方がイマイチきちんと身についてないので、勉強会で人が集まれば複数人作業ってのを試すことができるかなと。

ProductName 入門Git
濱野 純(Junio C Hamano)
秀和システム / 2310円 ( 2009-09-19 )


Pythonで正負のfloat numberを揃えるフォーマット

Pythonに限らないと思うんだが、%のうしろにスペース入れると正の数の場合にはスペースが挿入される

print "%-2d %-3s % 4.3f" % (a.GetIdx(), a.GetType(), a.GetPartialCharge())

pygamessの結果を整形したかったのです。

1  C3  -0.015
2  Nam -0.305
3  C3   0.006
4  C2   0.287
5  O3  -0.250

忘れるとなかなか思い出さないのでメモ

TodoっていうNode.js製のtodo管理ツール

CLIで良い感じ

$ npm install -g todo

でインストールできる。

node_todo

help:   
help:   todo - Todos in the CLI like what.
help:   
help:   Usage:
help:   
help:          todo Go shopping. - Adds new item.
help:          todo ls.          - Lists not finished items.
help:          todo ls --all     - Lists all items.
help:          todo rm 1         - Removes #1 item.
help:          todo check 1      - Marks #1 item as done.
help:          todo undo 1       - Marks #1 item as not done yet.
help:          todo clear        - Clears the whole list.
help:          todo version      - Lib version.
help:   
help:   Author: Veselin Todorov <hi@vesln.com>
help:   
help:

Node.jsのテスト系のライブラリなんかもそうなんだけど、ターミナルに色付きで表示されると見やすくていいですね。オプションもわかりやすいので、端末にちょっと入れておけばtodo管理ができてイイかも。普段はGmailのタスクを使っているので同期できると嬉しいんだけどねー

と思いながら調べたらGoogle Tasks APIってのがあったけど、これでいいんだろうか?あとで試してみよう。

今年も毘沙門天大祭に行った

去年のだるまに目を入れて。

1327920038

今年も行って来た。

1327920044

富士山が綺麗に見えますな。

1327920046

達磨は赤くて大きいのを買った。

1327920040

今年も一年無事でありますように。

今日の畑(120130)

人参を全部抜き取ったら20本くらいとれた。

その後、ニンニク以外の部分を除草して耕して、牛糞堆肥を入れておいた。

1327917401

影になっているところは日陰になりやすくて霜が降りてた。あと田んぼ土なので固かった。牛糞堆肥をもっと投入すべきか悩む、腐葉土は高いしなぁ。

それから、ジャンボエンチョーで緑肥用の種を物色してたんだけど売ってなかった。

テスト駆動Javascriptでテスト駆動開発を学ぶ

中級者向けのJavascript開発の本として読んでもいいし、テスト駆動開発の入門書として読んでも良い感じ。名著だと思う。

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


自分はプログラマーの集団的な組織に属したことがないため、開発の色々(特にペアプロ)なイメージが良くわからんし、TDDもイマイチ理解していない感があったので、本書のように丁寧に書いてある本はありがたかったりする。

第三部の「Javascriptテスト駆動開発の実際」のパートが面白いが、その中でも特にNode.jsによるサーバーサイドのテスト(14章)とクライアントサイドのテスト(15章)が非常に良かった。この2章だけで90ページくらいあるし、じっくり写経したら2日を費やしてしまったが、得るものは多かった。特に実際のコードとテストコードが絡み遭いながら完成に向かって進んでいく感を味わえたのはなかなか素晴らしい体験だった。

ちなみに14章ではNodeunitを使ってたけど、実際に自分が使うならVowsかなぁと(CoffeeScriptでも使えるしね)

エディタに関しては、Emacsの場合、縦分割して左にコード、右にテスト出して交互に切り替えながら進めていくのが調子良かった。

一部がテスト駆動開発の一般論で、二部がJavascriptの概論だけど、第4章の「学ぶためのテスト」というパートが面白かったかな。他の人が書いたライブラリを観察するために、テストの形で評価した内容を記述しておくという方法論は斬新だった。 まぁ、よく考えてみると、自分も新しいモジュールを理解したい場合はまずテストを眺めて、よく分からない場合は、対応する部分のソースコードを読んでふるまいを理解したりするので、結局そういったやりかたの形を変えて、積極的に観察とその記録を取っていく手法って考えればいいのかと思った。

おまけ

ラディッシュ収穫

息子が抜きたいとうるさいので収穫した。まぁまぁのサイズ

1327831649

ところで、今月の「やさいの時間」のコンテンツが良い感じ。緑肥の話と種とりのコツという家庭菜園系には非常にためになる内容なので買ったほうがいいです。素敵すぎ。

だんごのたむらと野村食堂

HTML5読書会お疲れ様でした。

おやつはたむらで買ってみた。

1327798586

全八種類のだんご

1327798589

1327798592

@motimuneの台湾みやげ。台湾でもくもく会やりたいっすね。

1327798591

懇親会は富士駅に移って野村食堂。17:30の吉原中央駅初のバスに乗れば18:00ちょい前に駅に着くので、時間的にはちょうどいい。

1327798594

野村食堂は雰囲気がいいですね。

1327798596

1327798597

1327798599

次回か次々回あたりで終了っぽいのでそろそろ次の本を選びはじめないといけないですね。HTML5とかjavascript系の勉強会が幾つか立ち上がっているので、もうちょいコアな本を読んでいってもいいのかなぁと思うが。あと問題がついている方がいいかなぁと思う。

新しい言語だったらscheme手習いかなぁ。

ProductName Scheme手習い
Daniel P. Friedman
オーム社 / 2940円 ( 2010-10-22 )


プログラミングコンテストチャレンジブックを自分の得意な言語で書いていって言語の違いを見せ合ったりベンチマークを取るっていうのも面白そうだと思うけどね。

サークルグラフをフジテレビ風ソースでCanvasに添えて

波線で棒グラフの印象操作をするのは既に古典中の古典だが、斬新すぎる円グラフの表現方法をみつけたのでCanvasでやりたくなった。ちょうどHTML5読書会でCanvasいじっているので黙々してみた。

タイトルは、懇親会がフレンチの店なので合わせてみた。

circle graph ftv

センターずらすメソッドかなぁと思いながら作ってみたら、アークじたいが嘘っぱちだったという、、、

もはやグラフですらなかった。斬新すぎ。たぶん司会者の人は「サイレントマジョリティを考慮してます」とか言っていたんじゃないかなぁ。

コードはGitHubです。

openbabel-2.3.1が出てますね。

2.3.1がリリースされたようです。

個人的に興味があるのは

  • PNG files from Open Babel contain molecular information and can be read to give the MDL Molfile.
  • Pybel now uses the built-in 2D depiction, and no longer needs OASA.

とABINITのフォーマットに対応したあたりかな。

あと、openbabel-python.iをいじってたので、ここをいじった場合のコンパイルのオプションをメモっておく。swigが有効になるようにしないといけないのに気付かなくてハマった。

cmake ../openbabel-2.3.1 -DPYTHON_BINDINGS=ON -DEIGEN2_INCLUDE_DIR=/usr/local/tmp/eigen-eigen-2.0.12 -DRUN_SWIG=ON

OBGenericからOBOrbitalDataへのキャストをできるようにして、vectorの設定もしたので、手元のpythonバインディングでは

orb = toOrbitalData(mol.GetData(openbabel.ElectronicData))
orb.GetAlphaOrbitals()[orb.GetAlphaHOMO()-1].GetEnergy()

とやるとHOMOのエネルギー(eV)を得られるようになっている。

追記12.01.28

homebrewでいれたpythonで使いたい場合optionで指示する

$ cmake ../openbabel-2.3.1 -DPYTHON_BINDINGS=ON \
  -DPYTHON_LIBRARY=/usr/local/lib/libpython2.7.dylib -DPYTHON_EXECUTABLE=/usr/local/bin/python \
  -DEIGEN2_INCLUDE_DIR=/Users/kzfm/openbabel/eigen-eigen-2.0.17 -DRUN_SWIG=ON