東京Node学園15時限目に行ってきた
昨日東京Node学園15時限目に行ってきた。ハッシュタグは#tng15で。以下は気になったところとかを。
io.jsについて / @yosuke_furukawa
io.jsの全般について。
ES6の機能が一部フラグも必要なしに使用できる。
--es_staging
フラグを付けるとClasses, Enhanced Object Literal, Symbol.toStringTagの機能が使えるようになる。(Classesだけはフラグ以外に'use strict'
も必要だったかな)
Enhanced Object Literalはオブジェクトのキー名を指定しない場合、変数名が自動的にキーになるやつ。(って理解でいいのかな)
var a = 0,
b = 1,
c = 2;
return { a, b, c };
return { a: a, b: b, c: c };
と同様になる。
V8モジュールが入った。
デモではヒープのサイズなどを出力していたので、メモリ使用量の監視とかが出来ると思う。
simple creatation Streamについては詳細がわからなかった……
assert.deepStrictEqualやutil.debuglogなども追加された。
ちょっと前にドキュメントをさらっと読んだ感じだとSmallocモジュールが追加されていたり、 fsやBufferなどもメソッドが追加されてたりした。(node.js ver.0.11で追加されたものとかかも)
node.jsとio.jsどちらを使えば良いのかなどの混乱を日本では防ぎたい、とのこと。
https://iojs-jp-slack.herokuapp.com/ からnode/iojs-jpのSlackに招待してもらえる。
Extensible Web - by new Low-Level Capabilities / @Jxck_
HTML5(など)の仕様策定は
- 機能の仕様が決まる
- ブラウザが実装をする
- 機能が使えるようになってフィードバック
という流れだったけれど、限界がある。開発者が主導で
- JavaScriptで機能を実装する
- 機能の仕様を決める
- ブラウザが実装する
ようになって欲しい。
これが出来るようになるためにはブラウザが低レベルな機能を実装している必要がある。
APIをラップしてライブラリとかフレームワークとかを作ろう。とのこと。
Jxckさんはfetchを実装しているらしく、fetchが依存している機能がさらに他の機能に依存していて実装が大変そうだなと思った。
WebSocketの圧縮機能とSocket.IO / @nkzawa
Socket.IOも内部的に使用しているwsにpermessage-deflateを実装したお話。これかな?
メッセージのデータをdeflateで圧縮するので転送効率が上がるのではないか、とのこと。
デフォルトで圧縮がONになっており、メッセージ毎に圧縮のON/OFFの切り替えもできるそうな。Polling時はHTTPでの圧縮になる。
CODEONMOBILE / @dai_shi
CodeOnMobileに関して。
コーディングもスマートフォンで、を可能にしてくれる。
自身のGitHubリポジトリのソースコードをiPhoneなどから編集やデプロイまでできるらしい。
今出来る通信高速化にトライしてみた / @shibu_jp
esprimaで生成した63MBもあるJSONをLZ4で圧縮したあとさらにGZIPで圧縮したら、LZ4やGZIP単体で圧縮するよりも小さくなった、とのこと。
主に繰り返しの多いJSONやテキストでこの現象が発生するらしい。
- https://github.com/shibukawa/lz4.jsx
- https://github.com/shibukawa/xxhash.jsx
- https://github.com/shibukawa/lz4-xhr.jsx
その他にWebWorkerでXHRとLZ4展開を別スレッドで行いArrayBufferでメインスレッドに返して高速化したり。
他にループ展開を試してみたが、効果がなかったらしく……
Socket.IOを使ってライフゲームで遊ぶ / @tako_black_
http://glacial-mountain-4867.herokuapp.com/
ライフゲームをみんなで共有(?)出来てた。
io.jsリリースされたのに全然さわれてなくて、ES6の機能とか新しいモジュールとか試してみたい。
勉強会中に試しにlet
とかconst
とか書いてときめいたりした。次回は4月にあるそうなので次も参加したいなー。