@thorikiriのてょりっき

@thorikiriがWebとかAndroidとかの技術ネタや本を読んだブログです

東京Node学園 7時限目 #tng7 に行ってきました

メモったことを書き残しておきます。

学園祭告知

  • 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にしたい
  • 動作プラットフォーム
  • ロードマップ
    • Webアプリケーションのプラットフォームにしたい
    • npmのようなパッケージ管理の仕組み
    • 既存のLuaのパッケージシステムにも対応しあい
    • 正規表現

Stream Stream Stream!

資料→Node Academy 7 | "Stream Stream Stream !!!"
StriamHandbook→meso/stream-handbook · GitHub

  • Stream
    • インタフェースです
    • stdinとか、stdoutとか、httpなどなど。
    • Readable、Writableとその両方の特性をもつ2種類がある
    • onとemitが使える
    • Streamは継承することが出来る
  • 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的な事が出来る
    • ただしパフォーマンスは良くない
ArduinoとNode.js(WebSocket)でつくったオシロスコープの自慢

資料→ArduinoとNodeでつくるオシロスコープ

  • オシロスコープ
    • 電圧の動きをグラフ化するもの
    • 結構イイお値段する
  • ArduinoとNode.jsで作ってみた
    • 振動を電圧に変えて送っている
    • AD変換して、シリアル通信で送り続けている
    • 遠隔でも大丈夫
  • ハードウェアとイベント駆動は相性が良い
node-webkit でデスクトップアプリを作ってみた

資料→tng7 LT // Speaker Deck

  • Write Once Run anywhere的な、でもまだそうでもない。
  • Chroniumからコードぶっこ抜いて、Nodeとくっつけた感じ
  • nodeを使ってGUIの構築が可能
  • Intelの中の人が開発しているらしい
pp.jsについて

資料→Introduction pp.js
GithubVoQn/pp.js · GitHub

  • async.jsを目指したものを作っている
    • async.js自体は非同期ではなくて、非同処理を楽にするもの?らしい。
    • 擬似並列?
node-mrubyの話
  • mrubyはrubyを軽くした実装
  • node.jsにmrubyを組み込んだ
  • すごい簡単
  • npmに上がっている
  • mrubyはまだまだ発展途上
node-canvas でクライアントサイドのライブラリを動かしてみた

資料→About node-canvas (#tng7) // Speaker Deck
githubnulltask/node-processing · GitHub
githubnulltask/node-three.js · GitHub

hooleganの宣伝

サイト→http://hoolegan.com/

  • イベントの盛り上がりを可視化するサービスでnode.jsを使っている
  • スマフォでアクセスして、良かったら上向きにして振る、いまいちだったら下向きにして振る