LL Future に行ってきた ― 2008年08月30日
LL Future に行ってきた。
途中、前売りで入手しておいたチケットを忘れたことに気づいたが、引き返すのも面倒なので当日券で入場。前売りと当日売りで1,001人だったことが発表されたけど、+1って私がダブルカウントされてることによるものだろうか。
基調講演 は Perl の Larry Wall。内容は Perl6 の grammer まわりの機能などについての地味なものだったけど、それにしてもそのメタっぷりがなかなか。続いてのプログラムにおいての Ruby のまつもとゆきひろさんの、マクロについてのスタンスとはある意味真逆な方向性が面白い。
昼飯は駅前の喫茶店でカレーセット。落ち着くなあ。
フレームワークのセッションではまず、MobaSIF に興味が行った。今度覗いてみよう。
会場のDebian の方が言語独自のパッケージングシステム、たとえば、Ruby の gem と、OSのパッケージングシステムの整合性について質問してたけど、確かに gem や CPAN を大量のホストに deploy していく気にはなれないんだよなあ。私も実使用環境ではすべて dh-make-perl などで .deb 化してから使うようにしてる。でも最近の CPAN モジュールだと etch や、あるいは sid である OS 標準の CPAN モジュールよりも新しいのを要求してたりして結構つらい。ひがやすおさんが「自分でフレームワーク作ってみるのは勉強になる」旨おっしゃっていたけど、それはそう思う。今、私もフレームワークめいたものを作ってて、Catalyst とかの既存のフレームワークの理解も進むし。
LLでアートもなかなか。ビジュアルプログラミングの環境もいろいろあるのね。筋電センサーと音の連動が楽しい。IDE的な環境で、書かれたコードがリアルタイムに3次元モデルに反映されていくのも、昔、CM制作会社のCG部門でバイトしてた経験もあり、興味深いものだった。
このあとも面白そうな話はあったが、最後までいると遅くなりそうだったので、ここで帰宅。ちょうど、中野は大雨でびしょびしょになってしまった。
HTMLのテンプレートシステム ― 2008年02月04日
「安全なテンプレートシステムはあるのか」 のコメントで知ったの だけど、PHP用に PHPTAL なんてのがあるのを知った。perl用は無いかと調べたら、 Petalがあった。
ところで、
<span>$hoge</span>
というテンプレートに対して、$hoge に DOM Tree か何かを 与えたら、適切に展開してくれるというテンプレートエンジンを 作ったとして、$hoge の表わす木構造は %inline に限る、みたいなことをやってくれればいいかなぁ。 絶対に well-formed かつ、valid であるHTML/XHTMLしか 生成できないようなもの。
Thunderbird のメッセージフィルタ ― 2008年01月11日
Thunderbird (Icedove) 2.0.0.9 のメッセージフィルタ機能において設定した フィルタは msgFilterRules.dat に保存されるけど、このファイルに書き出す処理が 変な気がする。
msgFilterRules.dat から .procmailrc に変換するスクリプトでも書こうと、 msgFilterRules.dat のフォーマットを調べているあいだに変な点にでくわした。
「フィルタの設定」のダイアログで、たとえば、
[件名] [に含む] [word]
と書くと、msgFilterRules.dat の対応する行には
condition="OR (subject,contains,word)"
と出力される。
[件名] [に含む] [word1 (word2) word3]
のように、文字列中に ')' という文字を含まれるようにしてみると、
condition="OR (subject,contains,\"word1 (word2) word3\")"
となる。また、
[件名] [に含む] [word1 "word2" word3]
は
condition="OR (subject,contains,word1 \\"word2\\" word3)"
となる。さてここで、
[件名] [に含む] [word1 \" word2]
としてみると、
condition="OR (subject,contains,word11 \\\"word2)"
となる。バックスラッシュの数が何か変。Thunderbird を再起動し、 このように書き出された msgFilterRules.dat を読みこませると、
フィルタの定義ファイル msgFilterRules.dat が壊れてします。 古い定義ファイルの名前を rulesbackup.dat に変更し、新しい フィルタ定義ファイルを作成します。
というエラーが出て、フィルタの一覧がクリアされてしまう。Thunderbird を終了し、 rulesbackup.dat をふたたび msgFilterRules.dat として戻し、
condition="OR (subject,contains,word11 \\\\"word2)"
と手で修正すると正常にダイアログは表示され、該当文字列は入力した とおりに戻っている。
mailnews/base/search/src/nsMsgSearchTerm.cpp の nsresult nsMsgSearchTerm::OutputValue(nsCString &outputStr) あたりが怪しい。
最近のコメント