東京Node学園祭2015

東京Node学園祭2015に行ってきた。

nodefest2015

東京Node学園は興味があって何度か行こうと思ったこともあったけど、本格的にNode.jsデビューしていなかったので気兼ねしていた。

今回はio.jsとも統合したし、そろそろ本格的に始めても良いのではと考え、キッカケとしてはよいだろうと思って学園祭に参加した。くしゃみ・鼻水止まらない病(人は花粉症を疑っている)だったので午前中はNodeSchoolを自習して午後のいくつかのセッションに参加。

参加したセッションのメモはこちら
東京Node学園祭2015

NodeSchool

http://nodeschool.io/ja/

NodeShcoolはNode.jsのいくつかの勉強ができるワークショップとなっている。東京Node学園祭2015の1セッションでNodeShcoolをやるコーナがあった。npmが動けば独学でできるので自分のように自宅でやることもできる。今回はlearnyounodeというNode.jsの基本的なものをやった。

やり方としては npm install -g learnyounode でインストールすると learnyounode コマンドが実行できるようになる。

learnyounodeを実行すると演習課題が表示される。全てコンソールを使う。一つ演習課題を選ぶと「Hello, World」を出力するプログラムを作成せよ、みたいな課題が表示されるので、課題に沿ったjsプログラムを作成し、learnyounode verify program.js で作成したプログラムを指定して課題通りになっていれば成功マークが付く。という形。

learnyounodeは以下のような演習課題があって、fs, net, http あたりのモジュールが勉強できた。途中まで英語でやっていたが言語を切り替える機能があったので安心である。

» こんにちは世界 
» ベイビーステップ  
» 初めてのI/O!  
» 初めての非同期I/O!  
» LSのフィルター 
» モジュラーにしましょう  
» HTTP クライアント 
» HTTP 集める 
» ASYNCジャグリング 
» タイムサーバ
» HTTP ファイルサーバ  
» HTTP アッパーケース  
» HTTP JSON API サーバ   

Electron

@Linda_ppさんの「ウェブ初心者が Electron でフロントエンド入門した話」を聞いた。
https://speakerdeck.com/rhysd/learn-web-frontend-with-electron

Electronは旧atomのことで、自動更新がなかったので諦めていたのだが今は対応しているようなのでまた勉強してもいいかもしれない。

Node Webkitがnw.jsになってAtom SellがElectronになってどっちかどっちかわからなくなっていた。どちらも進化しているだろうから作りたいものに向いているのかもまた両方を調べないといけないだろう。

Node.jsの資産が必要ないのであればChrome AppsというHTMLでデスクトップアプリを使う手段もある。自分も少し前まで誤解していたが今のChrome Appsはブラウザ上で動かすアプリではなくChromeとは独立したウインドウを持つデスクトップアプリが作れるようになっている。

GitBook

@azu_reさんの「技術文書をソフトウェア開発する話」を聞いた。
https://azu.gitbooks.io/nodefest-technical-writing/content/

Markdownでちょっとした書籍を作る方法を勉強できた。GitBookというMarkdownで目次付きのPDFを作れるツールがあるようだ。azu_reさんはそれに加えてtextlintをつくって表記ゆれの対応などをしているらしい。

npmでインストールできるツール(gitbook)もあるのでちょっと長くなってしまう社内ドキュメントなんかにもGitBookは使えるかもしれない。

npm

まるちゃんさんの「”npm”: “>=3″」を聞いた。

npmのバージョン3でいろいろ改善されているらしい。依存モジュールがflatにインストールされるのはありがたい。VagrantでWindowsの共有フォルダでプロジェクトを開発しているときにnpmの依存モジュールの階層が深くなりすぎて MAX_PATH の255を超えてエラーになるという問題があったのでnpm3に上げれば改善するのかも。

そもそも全員OS X使えば解決する話なのだがnpmでパッケージをインストールする42%はWindowsなのだとか。

npmにはGemfile.lockとかないと思っていたんだけどshrinkwrapというインストールするモジュールのバージョンを固定する機能があることを学んだ。

Pebble

kosamariさんの「Electroknit! – Pixel to sweater with Node.js」を聞いた。
http://kosamari.com/presentation/nodefest-2015/

うすうすサブタイルで気づいてたがElectronの話ではなく電子工作の話。内容は画像イメージを編み物用のパターンに置き換えて編み物マシンにデータを送るという話なのだが、これを聞きながらPebbleのことを考えていた。

初代Pebbleは白黒だったので画像は1と0に置き換える必要があった。静的なリソースに関しては変換するツールがあるのでそれで良いのだけど動的に作る場合は面倒だと思って諦めていた。

Pebble Timeからはカラーにはなったが、Pebbleアプリ向けのWeb APIを作るのにNode.jsは向いているのかもしれないと思っていたりする。

今後の勉強

  • npm
  • nw.js
  • Electron

あたり。

Node.jsのWebフレームワークはExpressくらいしかまだ知らないんだけどまだWebアプリをNode.jsで作るのはまだ来ていないのかなぁと勝手に思っている。

gulp, gruntのようにNode.jsで開発ツールを作るようなことが流行っているのでそちらの方が需要があると思っている。NodeSchoolにnpmのワークショップがあるのでnpmの勉強をしてみよう。

あとはnw.jsとElectronがどう進化しているのかを追ってみよう。