メモったことを書き残しておきます。
学園祭告知
- 11/18に法政大学で東京Node学園 学園祭を行います。
- 公式サイトはこちら→東京Node学園祭2012
- 申し込み開始しています
- 学園祭は無料、後夜祭は有料
- セッションとLTの講演者も募集中
- 盛り上げるためにAdventCalendar的なものも行います
lev
資料→Lev
- lev
- connectFree/lev · GitHub
- Lua向けのイベントベースIO
- プラットフォームです
- 特徴
- 早い
- 低メモリ
- 簡単にCのライブラリと統合出来る
- levはLuvitをForkしてるけど、ほぼフルスクラッチで書いています。
- Apache2.0ライセンス
- 開発者からのビデオメッセージ
- NodeはV8エンジンで動いていてスゲー!楽しい!けどね。。。
- でも、JavaScriptなんだよね、もっと男前の言語でやれたらいいね。
- Cっぽくて、早いのがいいよね
- Pythonみたいに、Rubyみたいに
- マルチコアはこれから作っていくよ
- ベンチマーク
- Node 0.8.9, Levit 0.5.0 と比較しても速度、メモリ使用量ともに良好
- cBuffer
- コアになる部分
- 完全にCで実装
- MessagePack
- kengonakajimaさんのライブラリをcBuffer用にカスタマイズしている
- このライブラリはオリジナルのMessagePackより早かった
- Multi-Core
- 標準装備
- コマンドラインでコア数を指定する
- APIの見直し
- fsのsyncとasyncが分かれているものを見直している
- Build System
- 今はmakeファイル
- 今後は、cmakeにしたい
- 動作プラットフォーム
- ロードマップ
Stream Stream Stream!
資料→Node Academy 7 | "Stream Stream Stream !!!"
StriamHandbook→meso/stream-handbook · GitHub
- Stream
- インタフェースです
- stdinとか、stdoutとか、httpなどなど。
- Readable、Writableとその両方の特性をもつ2種類がある
- onとemitが使える
- Streamは継承することが出来る
- pipeメソッドが使えるのが利点
- Readable Stream
- いくつかのAPIを実装していること
- 例
- process.stdin
- fs.ReadStream
- http.ServerRequest
- Writable Stream
- Readable Streamと対応するいくつかのAPIを実装していること
- 例
- process.stdout
- fs.WriteStream
- http.ServerResponse
- パイプ
- unixのパイプと同じイメージ
- readable | writable のように使える
- 読み書きでスピードが異なる場合に、そのギャップを埋める必要があるが
- パイプを使わない場合には面倒な処理を入れないといけない
- パイプを使うと、その実装をよろしくやってくれる
- Filter Stream
- readable かつ writable
- 左から右へ流れていってしまう
- その途中で、圧縮するとか、暗号化するとかの処理を挟むことが出来る
- Duplex Stream
- 入り口と出口が独立しているので、勝手に左から右へ流れていくことはない
LT
Node製のWebアプリをGraceful Restartする方法
資料→Graceful restartをnode.jsで試してみた。
qilin→atsuya/qilin · GitHub
- 優雅な再起動
- モジュールを書き換えた場合に、Warkerスレッドにdisconnectかけて、新しいスレッドをforkする
- こちらのレジにお並びくださいなイメージ
- qilinで実装される。Worker数が指定出来る。
- upモジュールを使うとHotdeploy的な事が出来る
- ただしパフォーマンスは良くない
node-webkit でデスクトップアプリを作ってみた
pp.jsについて
資料→Introduction pp.js
Github→VoQn/pp.js · GitHub
- async.jsを目指したものを作っている
- async.js自体は非同期ではなくて、非同処理を楽にするもの?らしい。
- 擬似並列?
node-mrubyの話
- mrubyはrubyを軽くした実装
- node.jsにmrubyを組み込んだ
- すごい簡単
- npmに上がっている
- mrubyはまだまだ発展途上
node-canvas でクライアントサイドのライブラリを動かしてみた
資料→About node-canvas (#tng7) // Speaker Deck
github→nulltask/node-processing · GitHub
github→nulltask/node-three.js · GitHub
hooleganの宣伝
- イベントの盛り上がりを可視化するサービスでnode.jsを使っている
- スマフォでアクセスして、良かったら上向きにして振る、いまいちだったら下向きにして振る