2013/05/20

MTCafe Sapporo#2とSapporo.js

5/18にMTCafe Sapporo#2と5/19にSapporo.jsに参加したので、その記録をざっくりと。

MTCafe Sapporo#2

Perl繋がりということでお邪魔しました。
ゆるふわな空気の中、Chef SoloによるMTOS環境の構築をテーマにひとりHackathonを敢行しました。
作成したMovable TypeのOpenSource版のcookbookは以下です。 ysasaki/cookbook-movabletype-opensource

自動化を思い立ったきっかけはちょっと前に公開されたデザイナー必見!VPSで高速なMovable Type用サーバをゼロから構築する方法です。
明らかにデザイナーには大変そうなので、Chef Soloで簡単に環境を構築できれば楽ができるだろうと考えた次第です。
前日からnaoyaさんの入門Chef Solo - Infrastructure as Codeを読みながら書き進めましたが、当日には完成しなかったのが残念です。

まだ未完成ですが、現在は以下の構成で動作するところまで来ています。

  • Reverse Proxy - Nginx
  • Database - MySQL
  • PSGI Server - Starman

今後もChefの勉強も兼ねて手直ししていく予定です。次回のMTCafeには間に合わせたいなーと考えています。

TODO

  • 依存cookbookの指定を追加
  • Daemontoolsに対応するか検討する。Upstartを使うのも良さそう
  • Memcached対応
  • NginxのReverse Proxy対応をオプショナルなrecipeに変更
  • ApacheをReverse Proxyに使うrecipeの追加
  • さくらVPS等での動作確認

Sapporo.js

久しぶりのSapporo.jsということで東区民センターまで出向きました。

@tricknotesさんのember.jsの紹介、@y_jonoさんのJavaScriptでの非同期処理のプラクティス的なお話を聞いた後に、恒例のJavaScript: The Good Partsの読み合わせを行いました。

ember.jsの紹介

  • 公式のガイドがよく出来ている
  • 他のMVCと比べてemberは不必要なコードが少ない
  • Good Partsでは推奨されていないやり方をしているが、他所は他所、うちはうちと考えよ
  • ember.jsをterminalから使えるember term
  • Modelの変更とかの自動で感知する
  • テンプレートはhandlebars
  • EMBERCAST
    • 動画で紹介
    • これ自体もemberを使っていて、ソースコードがgithubで公開されている
  • 気に入らないところ
    • 動かないときに完全に沈黙することがある
    • debuggerとかで対応
    • コーディングの効率を上げるためにprototypeを拡張するけど、オプションで拡張しないようにもできる
  • サーバとのやり取りはemberjs/dataがあるけど、まだまだ使える段階ではない
    • ember-modelが良さげ?

Concurrent Programming in JavaScript

  • サイ本の第6版にスレッド関連がある
  • callbackスタイル
  • setTimeout
    • UIのブロックを防ぐため、適当なdelayを付けてsetTimeoutで後回しにする
  • Web Workers
    • 意図した動作にならなかったり、初期化処理に時間がかかったりする場合があるので使う前に実装を確かめよう
  • nodeスタイル(async.series)
  • Promise/A+
  • Promiseって書き方がいけてなくね?
    • Flow.js
    • task.js
  • Effective JavaScriptがいい本

読み合わせ

1ページちょっとしか進みませんでしたので、まだまだ読み合わせは続きそうです。
次回はP.103のstring.matchからです。