19022012 家庭菜園
家庭菜園生活も4期目を迎えるのでこういう系の本を読むと色々わかってきた。あとホームセンターで買うよりは、色々レクチャーしてもらえる種やさんで買うほうが、蒔きどきがわかっていいですね。
- 畝を立てるのは土を高くして排水を良くするためなので、高さは水はけの良し悪しで決まる
- 畝を立てるのは南北方向。冬畝は東西。これは日光の関係
- なぜ耕さないといけないのか?
- 春の10日は秋の1日
- ズッキーニは養分が結構必要
19022012 家庭菜園
家庭菜園生活も4期目を迎えるのでこういう系の本を読むと色々わかってきた。あとホームセンターで買うよりは、色々レクチャーしてもらえる種やさんで買うほうが、蒔きどきがわかっていいですね。
19022012 music
BPM120で
Third (Max Cooper Remix) / Hiatus In My Arms / Mano Le Tough City Lights From A Train / Vector Lovers Morning Mountain / Essáy Feat. Rhian Sheehan Wasp In A Wig / Funk D'Void & Sian all the people make happy / ALTZ 6am / Alex Smoke わらうだけ / Ratn It's Only / Herbert Girl + Robot (2011 Remastered) / Vector Lovers
最近CoffeeScriptで書くときにはvowsを使っていてるが、Emacsを左右に分割して、左にコード、右にテストのBDDが快適すぎて癖になっている。

Pythonで書くときはnoseを使っているのだけど、最近pyVowsを見つけたので、これを使ってみようかなとドキュメントを読んでみた。
pyvowsのverbosityオプションがvを増やすということに気付かかなくて、詳しい表示どうすんの?ってなった。デフォルトのvvくらいだと頑張った気がしないのでvvvくらいがいいかも。
アサーションは種類が色々あるし、カスタムのアサーションもVows.create_assertionsデコレータで簡単にかけるし、構造が一致するかとかSMILESが正しいかとかのchemoinformatics用のカスタムアサーションがかけそうなので生産性が上がっていい。
18022012 life
クックパッドのレシピが美味しそうだったので、早速青木養鶏場に行って砂肝を買ってきた。
ニンニクは去年収穫したものを冷凍保存してあったので、それを使った。

旨い。というわけでワイン飲んだ。

油で60分間くらい煮るんだが、油の温度がよくわからんので試行錯誤する必要がありそうだ。
18022012 music
今回はかなり良かった。1,2作目以来の出来かも。
Third (Max Cooper Remix)なんかは持っていかれますね。後半はハウス気味で全体的にエレクトロニカ風味なので当たりですね。
オススメ
18022012 Python
このブログはJadeを使いたかったという経緯からhamlish-jinjaを使っているんだけど、pyjadeが出来てたので両方で書いてみた。
左がjadeで右がhamilish

jadeはhamlishと違って%とか-みたいな記号がいらなくて、Node.jsのjadeと同じように書けるし、Jinjaのタグも自然な感じで直感的にかけるので、やっぱJadeのほうが好みかな。
ただ、url_forでsingle quoteとdouble quoteの使い分けではまった。
a.title(href="{{ url_for('show_entries', entry=entry.perma, _external=True) }}")
はダメで
a.title(href='{{ url_for("show_entries", entry=entry.perma, _external=True) }}')
はオッケー
pyjadeに移行したがurl_forにidって文字列が入ってるとうまくparseできないっていうバグでちょっとはまった。
実践したのが素直に凄いなぁと感心する。
著者は職場の近くに住むことで車を手放したそうだが、車を所有することは4万円/月分のタクシー代を利用することだっていう試算がされてるし、それに加えて駐車場分(15平米)の家庭菜園スペースが作れるというメリットが加わる。
プランター菜園に関しても、子どもが育てた野菜を親が買ってあげる、ただし種代は子どもが払うっていうプログラムは面白いと思った。うちでも今度実践してみよう。
17022012 chemoinformatics perl
Perlでコードを書いていてCytoscape用にファイルを出力したかったんだがGraph::GMLは読み込み専用だし、Graph::XGMMLはCytoscapeじゃ読み込めないし、、、
Graph::XGMMLのソースコードを読んでみたら、XML::Writerを使えばいいみたいなので書いた。
sub write_xgmml { open my $output, '>', 'output.xgmml'; my $xml = XML::Writer->new(OUTPUT=>$output); $xml->xmlDecl('UTF-8'); $xml->startTag('graph', directed=>"1", label=>"Sample1", 'xmlns:dc'=>"http://purl.org/dc/elements/1.1/", 'xmlns:xlink'=>"http://www.w3.org/1999/xlink", 'xmlns:rdf'=>"http://www.w3.org/1999/02/22-rdf-syntax-ns#", 'xmlns:cy'=>"http://www.cytoscape.org", 'xmlns'=>"http://www.cs.rpi.edu/XGMML" ); my $i = 1; my %dict; #add node foreach my $key ( keys %$ids ){ $dict{$key} = $i; $xml->startTag('node', id => $i, label => $key, ); $xml->emptyTag('att', type => 'string', name => 'canonicalName', value => $key ); $xml->emptyTag('att', type => 'real', name => 'property', value => $ids->{$key}->{'property'} ? $ids->{$key}->{'property'} : 0.0 ); $xml->endTag('node'); $i++; } #add edge for my $e (@$spt) { $xml->startTag('edge', label => "$e->[0] to $e->[1]", source => $dict{$e->[0]}, target => $dict{$e->[1]} ); $xml->emptyTag('att', type=>'string', name=>'canonicalName', value=> "$e->[0] to $e->[1]" ); $xml->endTag('edge'); } $xml->endTag('graph'); $xml->end; close($output); }
基本的にstartTagとendTagで包んでemptyTagで属性を入れてくだけですね。あとCytoscapeのIDって整数じゃないとダメだったような気がするので、そうなるように書いたんだけど実際どうだったかは忘れた。
うまく動かなかったのでflask-scriptとflask-sqlalchemyを入れたらちゃんと動くようになった。
Flaskのバージョン、応答時間、HTTPヘッダ、リクエスト変数、テンプレートやSQLAlchemyやロギング情報がツールバーに表示されるようになる。

何もよりもツールバーが出ているとapp.DEBUGがTrueになっていることが明確なので本番稼働の際にfalseし忘れがない。
17022012 life
速読訓練用。このシリーズはハッピーエンドで気持ちよく、わかった気になりやすいが実践すんのは難しいんじゃないのと思ったりもする。