@kyanny's blog

My life. Opinions are my own.

Erlang の汎用サーバの考え方に感銘を受けた

プログラミングErlang 15章 ETS, DETS は流し気味で、最後のほうの数ページは飛ばしてしまった。次の 16 章が OTP 入門で gen_server の解説があるので、 mochiweb のソースを読むための前提知識をはやく仕入れたかったためだ。

しかしその前の汎用サーバがすごい。わざわざ太字で「この節はこの本全体の中でも最も重要な箇所」とことわっているだけのことはある。メッセージを受け取るとコールバックルーチンを実行する「空っぽの」サーバをつくり、コールバックルーチンは別に実装する。そしてコールバックルーチンですらメッセージで送ってあとから変更できるので、無停止でサーバの振る舞いをかえることができる、と。書いててまだわかってる気がしないし、実際自分で本を見ながら書いてみたらやっぱりところどころ詰まってしまったり、「この ! はどのプロセスからどのプロセスへ送られるメッセージなんだっけ」とかわからなくなってしまう。けど、これはすごい。

そもそもおれは「稼働中のサーバプロセスが自分自身の振る舞いをかえる」なんてことを考えたことがなかった。「そういうことが可能かどうか」を想像したことすらなかった。これは Server::Starter や Unicorn のような仕組みでやってるいわゆるホットデプロイとは違うものなのかもしれないが(その違いすらまだわからない)とにかくこれはすごいと思った。こういう考え方を知ることができただけでもこの本を買った価値があったと思うし、これらのコードをどうにか読めるようになっただけでも Erlang を学んだ甲斐があったと思う。

仕事の話・・・ではないな、 Zend Framework 関連の日本語 IRC チャンネルをみつけたので入ってみたら知ってる人(同僚含む)が何人かいた。英語のチャンネルに昨日か一昨日くらいから入ってたまに眺めていたけどそこそこ流れもはやいしやっぱり英語チャットではコミュニケーションとれる気がしなくてとても質問できないな、と諦め気味だったので、日本語でおk、な場所を見つけられてよかった。まぁ、そこでいろいろ質問している余裕は今やっている仕事にはなさそうなので、がりがりクソコードを書くしかないのだ・・・。

守備範囲というか得意分野が違うひとと話をするのも面白い。自分にない視点とか考え方に触れられるのは新鮮だ。あと、日頃ひとりで時間を過ごすことがあまり苦にならないおれではあるけれど、とはいえやはり会話するのは楽しい。

SF が読みたくなったので「フリーランチの時代」というやつを買ってみた。「ソラリスの陽のもとに」とか「宇宙のランデヴー」とか「火星年代記」とか、巨匠の名作を読みたいなとも思ったのだけど、じっくり腰を据えて読むべきものはもうちょっとあとにして、もっと軽く読めそうなやつを買った次第(カバーイラストからうける印象による)

「ソーシャル・ネットワーク」が周囲でけっこう評判がいいので、土日の間に観に行けたらいいなあ。