東京Node学園祭に行って来ました。

いやー、すごかった、円グラフで書くと↓のような感じ。
f:id:yosuke_furukawa:20111030012712p:image
3点でまとめると下記のような感じ。
・Guillermo(socket.ioの作者)がすごすぎ。ライブコーディングで何も見ずに超高速ですべて理解しながら実装を進めていた。あそこまでコードがすぐに書けるなら、楽しいだろうなぁ。
Windows Azureのクラウディアに対抗してNodeの萌キャラを誰か考えないかなぁと言われていた。みんな思い思いの萌えキャラがいるはずだ。
・飲み会超楽しかった。今まで飲み会参加したことなかったけど、あそこまでモチベーションが高い人達に囲まれるとがんばろうって気分になる。

本題へ。
NodeFest 2011 基調講演 by Ryan
発表資料:http://nodejs.org/nodefest2011.pdf
Node.jsの作者であるRyanの発表。
基本思想がわかって非常によかった。

Nodeのゴールはノンブロッキングなネットワークプログラミングをサーバへ持ってくること。
しかもそれを簡単に実現できるようにすることだと知った。
だからシンプルなシングルスレッドモデルになっている。

Nodeはバージョンが進むごとにさらに改善されている。
まず、Windowsネイティブサポート。今まではcygwinを使う必要があったが、その依存をなくした。
libuvにより、WindowsでもLinuxと同じようにノンブロッキングIOを実現。
・V0.2.6 5330 req/sec
・V0.4.12 5552 req/sec
・V0.5.10 5803 req/sec
それにより、上記のように1秒間あたりのリクエスト数を改善。Windows向けに書きなおしたのに、高速化を実現できた。

またclusterにより、コア数ごとのマルチプロセスを実現。簡単なデモではdual-core cpuできっちり半分のCPUを使っていた。

LiveCoding for beginner by jxck
発表資料:http://jxck.node-ninja.com/nodefest2011.html
初心者向けのnode.js入門ガイダンス。
Express + Socket.ioで簡単なウェブアプリケーションを構築。
ウェブアプリケーションもよかったが、jxckさんの作っていたプレゼンが素晴らしかった。
Node.jsを使ったwebアプリケーションでインタラクティブにやり取りできるようになっており、
最後にみんなでメッセージを送ってその場でchat的にやり取りできるようにしていた。

node.jsの本がそろそろ出そうなので、出たら絶対買おう。

Socket.IOについて by Guillermo
これは本当にすごかった。
facebookマーク・ザッカーバーグの映画で一瞬で大学の女の子の画像を取ってくるシーンがあったけど
あんなの映画の中だけだと思ってた。説明を入れながら、コードをマシンガンのように書いていく。
子供の頃見たハッカーのイメージってあんな感じだった。
コーディング力もさることながら発表も面白かった。

Socket.ioの説明はそこまでなく、途中からCanvas + videoというHTML 5のコーディングの話になったので
何やるのかなぁと思って見ていたら書いた絵をそのままトレースして、videoで出力するという考え方だった。
圧巻なのはタイピングスピードと実装スピード。デバッグ用の文字列も入れつつ、コメントも入れて超高速で
作っていく。
気がついたら画像ができて、それをパラパラアニメのように映像にしてしまったのだ。
何を言っているか分からねーと思うが (ry

他にもKinectを使ったアプリケーションやModern Yahoo Messengerといった進化したchatシステムが素晴らしかった。
Node ninjaのアカウントを頂いたので、node.jsでこれからもなにか書いていこうと思う。

非常に素晴らしいセミナーでした。皆さん、お疲れ様でした。