Node 学園祭 2016 個人的なまとめ

http://nodefest.jp/2016/

Node 学園祭 2016 印象に残ったセッションのまとめ。
計画・実施されたみなさま、とても楽しかったです。ありがとうございました !!

動画も公開されたようです。

https://www.youtube.com/playlist?list=PL42hYWKFRfN7MuZ4XyK6h5AzDol-egyw8


Demystifying JavaScript Engines
-------------------------------

http://slides.com/a0viedo/demystifying-js-engines#/
https://github.com/a0viedo/demystifying-js-engines
http://togetter.com/li/1047918

JavaScript エンジンについてのセッション。 2006 年ごろの牧歌的なインタープリターのハナシからはじまって、 JIT のかけ方、各実装ごとの最適化のかけかた、 Garbage Collection の実装まとめまで。

最後の話題である GC について↓あたり読めばいいかも。

- http://seesaawiki.jp/w/author_nari/
- https://blogs.msdn.microsoft.com/abhinaba/2009/01/25/back-to-basic-series-on-dynamic-memory-management/
- http://stackoverflow.com/questions/1611628/whats-wrong-with-mark-and-sweep-gcs

個人的に JavaScriptCore の GC が copying conservative で漢の実装になっているのが興味深い。


Debugging Node.js Performance Issues in Production
--------------------------------------------------

裏の NES のトークを聞いていたけどあとで他の方から内容聞いておもしろいと思った。

http://togetter.com/li/1047941

production 環境でデバッグするためのテクニック。
`console.time` 〜 `console.timeEnd` で任意の処理を計測できるが、標準ではないみたい。
perf で関数単位の処理などを可視化できる。

- https://nodesource.com/blog/node-js-v4-4-0-release-brief/
- http://int.main.jp/txt/perf/
- https://www.npmjs.com/package/0x


Cybozu社のエンジニアの育て方と開発環境
--------------------------------------

http://togetter.com/li/1047949
http://www.slideshare.net/teppeis/kaizen-68803503

最近、自分の立ち位置も似てきているのでかなり勉強になった。

### 技術的負債 KAIZEN

- KAIZEN DAY / KAIZEN 合宿 / KAIZEN 会議

### リモートワーク KAIZEN

- 採用戦略としてのリモートワーク
    - https://twitter.com/kiyokura/status/792907004989755392
- 情報格差の改善
    - しゃべったことの都度記録
    - 会議の事前準備超重要
    - なにやってるかわからない問題の解決
        - ローカルでも規模が大きくなると出てくるのでリモートワーク特有ではない気がする
        - リモートワークで可視化されやすいという問題
- 孤独感
    - 個人的にはあまり感じたことないので感じたことのある方からお話し聞いてみたい
- リモートワークが普通である環境
    - Amazon から荷物届くのでリモートワークしますが言える
    - 全員いちど体験してみる
- 「オフィスにいるひとがえらいわけではない」精神

**「ひとを動かすのは権限ではなく理想への共感」**

セッションでさらっと紹介されている JavaScript の現状がわかるサイト↓がおもしろい

http://stateofjs.com/


Node.js and Web Standards
-------------------------

http://togetter.com/li/1047993

- `URL.parse` は標準準拠じゃないという事実
    - v7 expeimental で追加された `new require('url').URL('http://example.com/foo')` とするのがよい
    - https://github.com/nodejs/node/pull/7448
- HTTP/2 対応は nghttp2 を使って実装中
    - v8 で experimental にしたいとのこと


Why to Standardize your READMEs
-------------------------------

聞いていなかったけど togetter を追うとみんながまず目を通すところなので整備するのはよい着眼点だと思った

http://togetter.com/li/1047989

↓で標準化が捗るとのこと。

https://github.com/RichardLitt/standard-readme

最小構成が↓か…。

https://github.com/RichardLitt/standard-readme/blob/master/example-readmes/minimal-readme.md


The journey toward ES modules
-----------------------------

https://docs.google.com/presentation/d/1J9mN3N1KZXGwn7ufrv9UAIiUzKo8zsQaQwIKseebjzo/edit#slide=id.g18cb3b1c5f_0_263
http://togetter.com/li/1048004

tc39 のなかのひとのお話し

- CommonJS と ES Modules でどう違っていて、どう標準化しようか、という話題
    - ↓をみておくとスッと内容が入ってくる
    - http://www.slideshare.net/teppeis/you-dont-know-es-modules
- `.mjs` という拡張子で ES Modules を書こうという流れになっている
- 「個人的には Babel はどっちにも準拠していないから無視して進めていいと思ってる」という発言で笑いがおきた
    - けど、これで日本国内の空気もちょっと変わるかもしれない
    - 一応「ただし、壊れないようにみんなでがんばろうという気持ちがある」とも言っていた


Browser is the new server
-------------------------

裏を聞いていたんだけどかなり面白いセッションだったとのこと。

http://slides.com/bahmutov/browser-is-the-new-server-nodefest#/
http://togetter.com/li/1048050

Service Worker 上に express をたてて実用化するハナシで、ネタかと思いきや offline 対応などについてはかなり現実的な解になりそう。


JavaScript による並列処理：共有メモリとロック
---------------------------------------------

https://speakerdeck.com/chikoski/20161113-nodefest
http://togetter.com/li/1048054

Mozilla Japan の方によるセッション

Mozilla がなぜ org としてやっているのかについて、「異なる価値観・アプローチで同じ問題を解くと多様性を生む」からというのが rock でよかった。
内容的には C 言語から続く由緒正しいスレッドプログラミングを JS でもできるようになりましたよというハナシ。

- https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
- https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Atomics


Lightning Talks
---------------

http://togetter.com/li/1048081

### WebAssemblyに欠けている大事なもの

https://docs.google.com/presentation/d/1kUqflyPjQtc4udCPjPOcd9Y-CDwa-9v7z-vV7eDujj4/edit

C++ だとエコシステムってのが存在しないよねというハナシ
みんな Rust に注目してるんだなあということがよくわかったセッション


### From Library to Tool - power-assert as a General Purpose Assertion Enhancement Tool

https://speakerdeck.com/twada/from-library-to-tool-power-assert-as-a-general-purpose-assertion-enhancement-tool
http://togetter.com/li/1048078

t-wada さん、思想を体現していてめちゃくちゃかっこいい。

- evolve slowly + easy to learn to write => power-assert
- empower で power-assert の tool 化完了

### RuntimeJS Playground

http://runtimejs.org/
https://github.com/groundwater/runtime-playground

ハードウェアを JS で直接いじるはなし。
あたまおかしい ( ほめ言葉。
デモで使っていたこの terminal がかっこよかった。

http://www.secretgeometry.com/apps/cathode/