東京Node学園15限目に参加してきました

「io.jsについて」

  1. io.jsは「friendly fork」
    1. 元々は「spork」。forkほど離れていないという意味
  2. 基本的にnode.jsとそれほど違わない
  3. オープンガバナンスモデルが基本
  4. なるべく開発者に開示
      1. 2週間に一度Googleハングアウトによるオープンミーティング
      2. 録画と議事録が公開される
      3. コアコントリビューターが一つの会社に偏らないように
    1. これによりコントリビューション数が増加
    2. コミッタも6人増加
    3. アクティブになった
  5. v8のバージョンはV4.1.0.14
  6. ecmascript6の機能が使える
  7. constとかテンプレートリテラル
    1. テストやりづらそう
  8. V8エンジンの動的なオプション追加
  9. Streamやログ出力も簡単に
  10. httpモジュールは古いままだが、それ以外は速くなっている。10%程
  11. Nodeとio.jsの混乱を日本では防ぎたい

extensible web

  1. これで何が変わるんだ?
  2. 「つべこべ言わずにコードを書け」
    1. 「標準化には時間がかかる」
    2. 「これじゃない感がある」
    3. 「ベンダーによって対応はまちまち」
  3. 「もっと開発者に力を」
  4. まず開発を
    1. そのためにはそれを実現できる低レベルな機能が必要
  5. ブラウザが実現する機能をもっとも単純なレベルで実現できるAPI
  6. 最近ではちょっとずつ出てきている
  7. 実際に実装してみると大変

ws の permessage deflateを実装した話とそれによりsocket.ioがどう変わるか

  1. 3年物のissue
  2. permessage deflate=httpのgzip相当
    1. ただし双方向で圧縮されるので、クライアントから重いものを投げたい時は最適
  3. context takover
  4. 前のメッセージの圧縮辞書を使いまわす事で圧縮率を改善する
  5. ただし現状のブラウザでオンのみ+chromeのみ
    1. 脆弱性があったので改善してもらった

CodeOnMobile

  1. スマホでコーディングできたらいいんじゃないか?
  2. アプリはしょぼいのしかない
    1. githubのコードをブラウザ上で編集するwebアプリ
  3. Node+Angular.js+ACE
  4. キーバインド独自実装
    1. JS限定だけど、うまくやればサーバーサイドのテストもできるんじゃあ…

今できる通信高速化に挑戦してみた

  1. いきなりjavascriptでgotoする黒魔術紹介
  2. lz4→gzipで圧縮すると圧縮率が向上する
  3. lz4は速度重視、インメモリ型
  4. jsonは特に効く
  5. gzipはwebの標準
  6. lz4は簡単
  7. ベンチマークしてみると、通信速度が十分速い場合は展開コストを回収しきれない
  8. 残念ながらトータルのスループットは変わらない
  9. ガバイトサイズでないと意味がない
  10. ネイティブだったら少し速いかも

Socket.io

  1. ライフゲームをみんなでプレイするゲームを実装してみた