実家に帰るついでにふらっと立ち寄りました(2)。次はHokkaido.pmです。
Carton使ってみた / @aloelight さん
- carton → RubyのBundler を Perlに移植したもの
- carton install
- local::lib にインストールされる
- 依存情報はcarton.lock に書き込まれる
- バージョン指定が可能 → インストール済みのもののアップデートにも必要
- carton.lock から依存情報を取り出してインストール
- carton uninstall
- carton exec
- pluckup などのコマンドの実行
- PATH にlocal/bin も追加
- バージョン的には ALPHA なので自己責任
- 利用例(1) Tweet::ToDelicious
- Makefile.PLでは12個指定していたが、実際は53個のモジュールに依存
- 移行も簡単だった
- 利用例(2) JSON RPC Server
- Carton があまりに簡単すぎて話すことがない・・・!!
- おまけ:プロジェクト環境の構築
- perlbrew install-cpanm, install, create, switch
- cpanm install Carton
- carton install
- OrePANにない外部モジュールに依存しているとうまくいかない → mirror_only をパッチ当てて切ってる
- Q. Macで開発してFreeBSDにアップ?
- A. はい
- 5.14 はいいので、使おう
botのつくりかた / @akiym さん
Clutch - distributed job system / @nekokak さん
- Job Queue → Q4M、TheSchwartz、Gearman、Qudo、Jonk、ZeroMQ、RabbitMQ
- 「使ってる人?」 → ほとんどなし
- Job Queue と Message Queueの違い → 結果を受けるか否か
- 作ってる人はあまり気にしてないのであまりきにしなくていい
- どういう風なフローで作っているかを紹介する
- きっかけ : daemontools の情報をWEBで見たい
- sudo専用のプロセスを作って、webからはそこにジョブを投げる
- 不満から始まる
- gearmandを立ち上げるのは大げさすぎる
- ZeroMQは仕様が変わるかも・・・
- クライアントが直接listen するのがいい
- 「とにかく考える」
- 仕事で忙しいときなど、風呂などのちょっとした時間に考える
- インタフェースをさっくり書いてみる → インタフェースをベースに開発を進める
- 初期実装にかかった時間 → 電車の帰りの時間
- 設計、実装の仕方は人によって違う → 他人と比べるとわかる
- Clutch
- Data::WeightedRoundRobin
- Clutch のデモ
- admin を使った場合のデモ (workerとclient が自IPの代わりにadminをIPを指定)
- やりたいこと
- Adminで死活管理をしたい
- Clientでmulticast リクエスト
- Clientでレスポンスを待たずにジョブキュー的な振る舞い
- Job Queue を作る上で気をつけること
- 保護が必要なジョブか
- RDBMS使うか、lock周り、qps
- 重要なこと → 様々なモジュールを知っていること。できることの幅が広がる
まもなくgithubへ上げて下さるそうです。
mod_perl hacks PHP / @xtetsuji さん
- mod_perlの振り返り
- PHP : 非常に色々なところで使われているソフト
- mod_perl でPHP実行の前後に処理を突っ込む
- 処理フェーズ。WEBアプリは PerlResponseHandler
- 今回はPHPに限ったお話
- PHPはレスポンスフェーズ以外では何もしていない(らしい)ので
- 例: PHPのセッション処理を使わずに自前で認証をつける
- Output Filter Hacksの使い道
- mod_filter → パイプ処理で置換できる。遅い
- まとめ : PHPは処理が控えめなので、mod_perl で色々突っ込める
- mod_perlの情報がWEBに少なすぎる。
- 文献: mod_perl2 User's Guide
- PukiWiki にフィルタを噛ませて文字を置換するデモ
循環参照のはなし / @hirataraさん
後でスライドを上げておきます。スライド。
YAPC::Asia Hokkaido 実現に向けて / @onagatani さん
LT
困ったときのAcme::* / @koji_magi さん
GUIアプリに必要な3つのこと - ツール編 / @techno_neko さん
- 人見知りの人こそ、スピーカーになって話しかけてもらう
- 感想、アドバイス、知り合い
- 3位 単純明快
- 2位 キャンセルできる
- 適用せずにキャンセル。長い処理の中断。
- 戻す、やり直す
- 1位 痒いところに手が届く
- ユーザーは成長する → UIを使いこなすと、改善を要求する
- 微調整ができること
- まとめ: 触りたくなるUI、痒い所に手が届く、他にも色々ある
Object::Container::Exporter - lazy programming / @nekokak さん
- Object::Container → シングルトンでオブジェクトを管理してくれる
- Object::Container::Exporter
- import に渡した引数、さらに渡した引数を名前空間にしてnewを呼んでくれる
- use 文が少なくてすむ。
- ここで Data::WeightedRoundRobin のデモが見つかったのでデモ