2009-03-01 Shibuya.lisp TT#2 でライトニングトークしてきた 「この木 なんの木 木になるS式 〜FUSEでS式ファイルシステム〜」 FUSEでファイルシステムへの操作を捕まえて、mkdirとtouchコマンドでLispプログラミング!というネタ。 発表時間を最大に使うため、動画で発表した。実演だとトチるもんね。 ニコニコ動画 http://www.nicovideo.jp/watch/sm6303663 Youtube http://www.youtube.com/watch?v=Wh766ZGmdRY FUSEのコツ ファイルシステムを作るっていうと、メモリ上で仮想でやりたくなるが、舞台裏で本物のファイルシステムを使うと楽。仮想のファイルhogeを見せたいときでも、マジでhogeをファイルシステムに書き込んでしまって、それをユーザに見せるとよい。 ファイルを閉じたときにいろいろやりたいが、openコールとcloseコールの回数が必ずしも対応しないので注意。どれが本当の最後のcloseかは区別できない。これはFUSEのFAQ。 コード191行、製作1日 コード http://code.google.com/p/garakuta-okiba/source/browse/trunk/fuse/sexpfuse.scm SXMLを使えば、XMLファイルシステムになる。 それより、Gauche-FUSE拡張を作るのが大変だった。情報が少なく、Gauche Developer's Reference(Gauche本体/doc/gauche-dev.texi)とGauche本体ソースが頼りだった。 OCamlFUSEのコードが型付きで、コードが仕様書として、参考になった。 当日は質疑応答がなかったので、コメント下さい。 感想 和田先生が、心底楽しそうにLispプログラミングをお話しておられた。なるほど、あのように楽しめばいいのか、自分も子どものときはああだったのにどこで忘れたのかと、目からうろこがおちた。 Lispは表にでないところで頑張っていて、世俗を厭う高僧みたいだ。 楽しかったです。運営の皆様に感謝。