科学的に考える菜園づくりのコツ

家庭菜園生活も4期目を迎えるのでこういう系の本を読むと色々わかってきた。あとホームセンターで買うよりは、色々レクチャーしてもらえる種やさんで買うほうが、蒔きどきがわかっていいですね。

ProductName おいしく育てる 菜園づくりコツの科学
西村 和雄
七つ森書館 / 1890円 ( 2006-06 )


  • 畝を立てるのは土を高くして排水を良くするためなので、高さは水はけの良し悪しで決まる
  • 畝を立てるのは南北方向。冬畝は東西。これは日光の関係
  • なぜ耕さないといけないのか?
  • 春の10日は秋の1日
  • ズッキーニは養分が結構必要

昨晩のリスト

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

ProductName Bodily Functions
Herbert
K7 / ?円 ( 2006-02-01 )


pyVows - Vows for Python

最近CoffeeScriptで書くときにはvowsを使っていてるが、Emacsを左右に分割して、左にコード、右にテストのBDDが快適すぎて癖になっている。

BDD Emacs

Pythonで書くときはnoseを使っているのだけど、最近pyVowsを見つけたので、これを使ってみようかなとドキュメントを読んでみた。

pyvowsのverbosityオプションがvを増やすということに気付かかなくて、詳しい表示どうすんの?ってなった。デフォルトのvvくらいだと頑張った気がしないのでvvvくらいがいいかも。

アサーションは種類が色々あるし、カスタムのアサーションもVows.create_assertionsデコレータで簡単にかけるし、構造が一致するかとかSMILESが正しいかとかのchemoinformatics用のカスタムアサーションがかけそうなので生産性が上がっていい。

砂肝のオリーブオイル煮込み

クックパッドのレシピが美味しそうだったので、早速青木養鶏場に行って砂肝を買ってきた。

ニンニクは去年収穫したものを冷凍保存してあったので、それを使った。

1329561430

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

1329561433

油で60分間くらい煮るんだが、油の温度がよくわからんので試行錯誤する必要がありそうだ。

Winter Chill 2012はドープで渋め

今回はかなり良かった。1,2作目以来の出来かも。

Third (Max Cooper Remix)なんかは持っていかれますね。後半はハウス気味で全体的にエレクトロニカ風味なので当たりですね。

ProductName Winter Chill 2012
Hed Kandi:
Hed Kandi / 3271円 ( 2012-01-31 )


オススメ

  • Third (Max Cooper Remix) / Hiatus
  • Perfect Darkness (Lapalux Remix) / Fink
  • Remembrance / Sina
  • Morning Mountain / Essáy Feat. Rhian Sheehan

hamlish-jinjaからpyjadeに移行しようと考えている

このブログはJadeを使いたかったという経緯からhamlish-jinjaを使っているんだけど、pyjadeが出来てたので両方で書いてみた。

左がjadeで右がhamilish

haml+jade

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) }}')

はオッケー

追記 12.02.18

pyjadeに移行したがurl_forにidって文字列が入ってるとうまくparseできないっていうバグでちょっとはまった。

現役サラリーマンの自給自足大作戦

実践したのが素直に凄いなぁと感心する。

著者は職場の近くに住むことで車を手放したそうだが、車を所有することは4万円/月分のタクシー代を利用することだっていう試算がされてるし、それに加えて駐車場分(15平米)の家庭菜園スペースが作れるというメリットが加わる。

プランター菜園に関しても、子どもが育てた野菜を親が買ってあげる、ただし種代は子どもが払うっていうプログラムは面白いと思った。うちでも今度実践してみよう。

ProductName 現役サラリーマンの自給自足大作戦 「菜園力」で暮らしが変わる
はた あきひろ
家の光協会 / 1365円 ( 2011-05-27 )


  • 雑草は根こそぎ除草するのではなく作物との成長バランスを考えて劣勢になるくらいに。根までとらない
  • 雑草の残された菜園は美しい
  • 旬を感じる

XML::Writerを使ってCytoscape用のXGMMLを出力する

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-debugtoolbarが便利

うまく動かなかったのでflask-scriptとflask-sqlalchemyを入れたらちゃんと動くようになった。

Flaskのバージョン、応答時間、HTTPヘッダ、リクエスト変数、テンプレートやSQLAlchemyやロギング情報がツールバーに表示されるようになる。

flask-debugtoolbar

何もよりもツールバーが出ているとapp.DEBUGがTrueになっていることが明確なので本番稼働の際にfalseし忘れがない。

「ザ・チョイス」を読んだ

速読訓練用。このシリーズはハッピーエンドで気持ちよく、わかった気になりやすいが実践すんのは難しいんじゃないのと思ったりもする。

ProductName ザ・チョイス―複雑さに惑わされるな!
エリヤフ・ゴールドラット
ダイヤモンド社 / 1680円 ( 2008-11-08 )


  • 複雑性を自由度の大きさで測る
  • 対立に直面するときはどこか根本的な前提が間違ってると考えると対立の原因が取り除かれる(こともある)
  • ロジックが循環しているからといって、結果とそれに対する原因の分析に間違いが必ずあるというわけではない
  • コンフォートゾーン