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 )


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

一本義

東京の大丸のなかにあった酒屋で購入。

1329211392

生酛だけあって酸がしっかりしていて旨い。燗つけて飲むといい感じ。残らないので飲み飽きしなかった。

モジュールのグルーブはこのままキープでー

gitのブランチを使った流れは何かに似てるなぁと思ったら、DJingだった。今、blogのテンプレートをhamlish-jinjaにするかpyjadeにするか悩んでいてトピックブランチを切って両方書いてみている。

フロアー(つまり自分と自分を取り巻く環境)の反応を見ながらtrunkにmergeするbranchを選択するという行為そのものがまさにアートなわけですな。

ProductName Via [DVD]
田中フミヤ
インディーズ・メーカー / ?円 ( 2007-09-28 )


というわけで4デッキ対応のVCI-100MK2が欲しいなぁ。

Pygameでゲーム作りを楽しむ本

Pythonの入門としていい感じですね。ライセンスがCreative Commons Attribution-Noncommercial-Share Alike 3.0 でオンラインでも読めるし、pdfでダウンロードすることも出来て素敵です。

暇をつくって、これをCoffeeScript+Canvasで書いてみたいと思う。

もうひとつのほうのInvent with PythonもPythonの入門書としていいかもしれない。今度、入門書を尋ねられたらこれを薦めてみようっと。

娘の誕生日

自分のためにカップケーキを作っていた。あっという間に成長するなぁと。

1329210829

1329210831

そろそろプログラミングも教えないとなぁ。あと、Drum'n'Bassの素晴らしさも早めに植えつけたいので、プリキュアのテーマソングはブレイクビーツにして欲しい。

ProductName Let’s go!スマイルプリキュア!(DVD付)
吉田仁美 池田彩
SMD itaku (music) / 1769円 ( 2012-03-07 )


開運 ひやおろし

開運のひやおろし。

1329211177

期待を裏切らないクオリティ。燗はつけないで最初から最後までひやで飲んだ。

開栓時が一番美味しかったかな。