YAPC::Asia 2007 二日目

二日目の午前はT101+102,午後はTsuda Hall。

DBICのセッション3本ともよかった。

DBICは怖くないよ。噛み付かないよ。

mizzyさんのプレゼンassurerは、僕の仕事ではあんまつかわないかなぁと今まで勝手に思ってたのであまりちゃんと調べたことなかったんだけど、プレゼン聴いてたら、むしろ自分の仕事まわりでバリバリ活躍しそうじゃんと。なので後で触る。

Catalystを使ったBlogのAngerwhaleがなんか面白そうな匂いがしたので、帰ってきてから早速見てみた。ここが詳しい。僕が欲しいもんとはちょっと違う感じだけど、面白そうなのでインストールしていじってみる。

で、今回はなんといってもMJD。

背を向けたときにTシャツに、、、、、

use Inline Python;シャツとか欲しい。

正直刺激をうけすぎた二日間だったヨ。

YAPC::Asia 2007 一日目

yapcasia2007

全部楽しめたが、特にMJDのparserの話が面白かった。けど、lispとかもっと分かっていれば更に楽しめたんだろうなぁ。

YAPC行きます

YAPC::Asia 2007行きます、というか行かねば。

で、明日の用意してたんだけど、チケット持ってくのすっかり忘れてた。blog見て気がついた。(あぶないあぶない)

明日はいいとして、2日目のスケジュールは悩む。今のとこ午前中はT101+102で午後はTsuda Hallかなぁって思ってんだけど。

DBICがらみの1,2は外せないので、泣く泣くJiftyは断念なんだけど、、、

ライブドアベイズが欲しい

IPC,IPCってポチポチしながら、自分のLDCのクリップが煩雑だなぁと思っている今日この頃なわけですが、ごちゃごちゃしてるのは、単にブックマークを仕事関係はdel.icio.us、趣味とかオモシロ関係ははてな、それ以外のよくわからんものとかをLDCにブックマークしてるからかナァなんて思ってたんだけど、どうやらこの考えは違っていそうな事に気付いた。要するに、単にLDRと連携が強いからだという仮説を立てて妄想してみた。

まず、LDRだと、そもそも処理効率が高くなるので、勢い雑多な情報を一度にまとめて捌いていくことになる。レートを使って読むとカテゴリを無視するので更に拍車がかかるわけだが。ラーメンが美味かったとかCatalystが云々とか、(Gmailもそうだけど)異なる内容を次々にまとめて読むことに抵抗がないのはマイクロコンテンツのせいもあるけど、LDRのサクサク感も大きい。

というわけなので、こんな感じのノリでLDRにくっついているブックマークサービスを使っていくと、LDCは中間ブックマークみたいな感じになっちゃうし、とりあえずクリップしとこか~ってなことを繰り返すと分類してないブックマークがやたら増えてしまう。だからLDCはLDRと連携を強めるほど、今までのSBS以上のことが必要なのかなとか思ったりする。

結局、従来のヒトがピコリンピコリンとちまちまタグを付けてくのだと、タグをつけるところが明確なボトルネックになっちゃうし、サクサク感が失われてしまって駄目な気がする。

ちゅうわけでベイズ。ある程度学習させたら、いい感じでタグをふってくれるマイベイズサービスみたいなのがフロー読みシーンには来るような気がしてきた。自分好みに学習させて、イッパツクリップでパチコンパチコンするだけで、タグが自動でふられていくと、、、最早フォークソノミーとは言いがたいけど、ヒトも曖昧に強い分類機と考えれば、それをアルゴリズムに落としてもまぁリッパなフォークソノミーなはず。

こんな感じでタグ振りが効率化されれば、今度はさらに探索空間が広がって、自分の好みにあったマイクローラが勝手に探索してフィードを突っ込んでくれると。

亀の上には更に大きな亀がいて世界を支えているのかも。

ちなみに、plaggerとpopfileでもできるような気はする。

今更ながらライブドアに一発クリップのショートカットがあることを知った

設定いじってたらうっかり見つけた。早速iってショートカットを使えるようにしてIPC(リップ)ってタグ振るようにした。

が、クリップのレートのとこにRSSフィードのレートが入ってしまうのが気になる。このクリップのレートはどういう風に使うんじゃろか?

さらに、クリップブラウザってのも発見した。ちょっと前にクリップしたエントリをもういちど見たいって場合には便利かな。1画面分(40件)までだったらこれで探すかも。それより前のクリップだったらタグかなぁ。

で、ふと考えたのが、

超整理法みたいな時系列の並びの記憶はいつまで優勢で、どのくらい古い記憶になるとタグのほうが探しやすくなるんだろうか?

つまり情報の量と時系列的な検索とタグによる検索のバランスはどうなってるんだろうか?

最近たくさんのエントリをフロー読みするようになって、一昨日くらいのエントリもタグつけてないと探せんようになった(僕は)。情報の量が増えたから記憶の整理ができる時間軸のレンジが狭まったのか、覚える気がなくなったから、フロー読みができるようになったのか、、、うーんどうなんだろう?

TTで-fを評価する方法

pdfみたいに、あるファイルが存在するかどうかをTTで調べてファイルが存在する場合にアイコンなんかを表示させたい、

つまりTTで-fを評価したかったのだが、いいやり方が思い浮かばなかった(みつからなかった)のでPERLブロックで評価してしまった。

[% PERL %]
  my $pdf = "/static/PDFs/". [% some %] . ".pdf";
if(-f "root$pdf"){
  print '<img src="http://www.kzfmix.com/static/images/png/PDF_icon.gif" /></a>';
}
[% END %]

むむむな感じなんだけど。

DBICで集約関数を使ってTTに送る場合に

タグのテーブルなんかでタグをカウントしてtagname(count)とか出力したいときにDBICだとどうやんのかな?と。

とasを指定しておけば、TTのほうで

t.get_column('posts_count')

でカウントが表示できる。

タグの名前とカウント数を表示させたい場合にはこのままTTでいいと思うが、タグクラウドにしたい場合は、コントローラーでHTML::TagCloud::ExtendedとかHTML::TagCloud を使ったほうがいいのかもと。

あとYAPCのチケットとった。DBICネタが密かに楽しみだったり。

YAPCにMJDくる

今年も行く。 YAPC::Asia 2007 Tokyo - April 4-5 2007 (Japanese)

Mark is head of software engineering at the Penn Genomics Institute. He is the author of the book Higher-Order Perl.

MJD期待。

ProductName Higher-Order Perl: Transforming Programs with Programs
Mark Jason Dominus
Morgan Kaufmann / 6402円 ( 2005-03-28 )


それにしても、haskellとperl(pytthon)の橋渡し本(僕の中で)の筆者(MJD)がGenomics Instituteとはしらなかった。bioperlなんかにはでてきてないよな。

Image::Magickのリサイズ

FC5のyumでいれたImageMagick,ImageMagick-perlはCrop,Resizeしても正方形にならずに3:2のまま縮小されてしまう。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#!/usr/bin/perl

use strict;
use warnings;
use Image::Magick;

my $i = Image::Magick->new;

$i->Read("test0.jpg"); # 640x480

$i->Crop(geometry => '480x480+80+0');
$i->Resize(geometry => '48x48');

$i->Write("test2.jpg");

バグか。FC6だと解消されてるみたいだけど。結局

$i->Resize(width => '48', height => '48');

と書くことで望む結果は得られたが、無駄に手間取った。

pythonで高階関数

Pythonでの関数プログラミングを流し読み。Xoltar使うと関数型言語っぽくかけるらしい。

ふつうのhaskell読んだあとなので、ここらへんの関数プログラミングの話題も楽しい。

第2回はクロージャとbindingの話でclosure()とやるとクロージャができ、Lispチックな書き方もできるらしい。第3回はカリー化の話で、これまたcurry()とかやるだけでいいっぽい。また、最後のほうの関数合成の話も面白かった。

ちなみにperlにもSub::Curryってのがあって、こんな感じで書ける。

sub foo { join "_", @_}
my $f = curry(\&foo, 1, 2);
my $f2 = curry($f, 3, 4);

print $f2->(5);

で、実行すると

$ perl curry.pl 
1_2_3_4_5

サブルーチンのリファレンスを指定すればいいだけのお手軽っぽいので、今度何かに使ってみよう。

あと、any()とかall()はQuantum::Superpositionsが使えるかな。

ProductName ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
青木 峰郎
ソフトバンククリエイティブ / 2940円 ( 2006-06-01 )


追記

perlで関数型のプログラミングをするモジュールとか