今日はYAPC::Asia Tokyo 2012の前夜祭です。去年までとは会場が代わり、今年は東大内の伊藤国際学術研究センターにて開催されます。今日から最終日まで参加する予定ですので、いつものように聞いた話をリアルタイムでメモっていくつもりです。
なお、今年もgihyo.jpさんの特集にレポーターとして参加することになりました。例年とは違い5人もメンバーが揃いましたので、私の仕事はあまりありません:p。@amayanさん、@moznionさん、ya_k0さん、@takayuki_hさんが主に執筆しますので、ぜひご覧頂ければと思います!
risouさん「Officeで使うPerl Excel編」
- 「ハードなPerl Monger必見」ではありません*1
- "Windows"と"EXCEL"の話です
- Excelの使い方 → 大好き>「業務」>使わない
- windows on Perl で Excel
- Excelを使うモジュール
- use Win32::OLE、->GetActiveObject、workbooks、SaveAs、->Close、->quit
- \->Range、->Cells でセル指定して文字を入力
- 文字の読み取りも同様
- UTF-8 を使う場合は encode を噛まして utf8に
- 背景色の指定 → セル指定して ->Interior->{ColorIndex} = 4 など
- フォント → ->Font
- 線 → Borders(xlEdgeBottom)->{LineStyle}
- xlEdgeLeft、xlDiagonalDown(ななめ線) など
- xlInsideHorizontal, xlInsideVertical → 枠表を作れる
- use Win32::OLE::Const 'Microsoft Excel';
- 幅 ->{ColumnWidth}、->{RowHeight}
- Excel方眼紙を簡単に作れる! → LTソンのminemazさんのLTで
- Columns、Rows、Cells に引数を指定しないと、全選択になる
- マクロの実行 → ->Run
- エクセルの旧バージョン形式で保存 → Fileformat => xlExcel8
- 質疑応答
Daisuke Muraseさん「UV - libuv binding for Perl」
こちらはgihyo.jpさんの特集へも掲載しています。
- Perlバインディングの意味は? AnyEventとの関係、開発状況
- libuvとは?
- node.jsのバックエンド。非同期IOのプラットフォームの際を吸収
- node.js 0.6.xから採用
- libeventとかとの違い → Windowsでも速い
- IO監視API
- 問題: IOCPのAPIがとても特殊
- libuvが頑張ってる → 非同期IOの"フレームワーク"と言うべきレベル
- syscallで非同期の扱いがめんどうな部分をlibuvはラップしてくれる
- KAYACさん → スマホアプリの通信モデルで利用。iPhone用のパッチを当ててる
- Perlバインディング → githubにある
- ドキュメントはない。libuvの使い方を知っていることが前提
- libuvのドキュメントは・・・? → uv.h
- libevの知識があれば、なんとかなりそう
- AnyEventと比較すると?
- AnyEventのバックエンドにUVは・・・?
- 抽象か度合いが強過ぎる。connectなどがラップされてしまっている。
- 無理
- 開発状況
- 質疑応答
- Q. すでに使ってるのですが、ファイルIOは自分で書けってこと?
- A. ありがとうございます! 最新のnode.jsは見てないので、調べて
- Q. 外部コマンド呼び出しのAPIは自分で書(以下略)
- A. ・・・
- Q. はい、わかりました
Gosuke Miyashitaさん「Sqale の裏側」
- SQALEとは? → Ruby用のPaasサービス
- Herokuのようなもの
- githubと同じ人のキャラクターデザイン
- http://www.facebook.com/sqalejp
- perlの話はないよ
- あんちぽさんステッカーに合い言葉が書いてあって、あつめるとあんちぽさん特製壁紙が貰えるらしい
- 捌くのはSSHアクセスとHTTPアクセス
- カーネルパッチ
- ELB → nginx → コンテナへ
- SSH Router
- Git、SFTP、SSH Login の3種を捌く
- OpenSSH へ script authentificationパッチ
- AuthorizedKeysScript プラグマが新たにできる
- mizzy/openssh-script-auth を参照
- SSH_ORIGINAL_COMMAND環境変数で振り分けができる
- MySQLへアクセスし、Public keyを元にgit serverを識別
- 現状Gitサーバは1台
- PATHを書き換えて、git-recieve-pack を流すだけ
- 同様にSFTP もsftp-server を流すだけ → ただし、整合性を保つためにgit pushする
- sshログインも同様だが、ユーザにどのコンテナに入るかを選択させる
- 「How We Made GitHub Fast」から着想を得た
- Server Build Automation → @lamanotramaさんを参照
- 質疑応答
- Q. 複数言語を混ぜた開発に問題はない?
- A. レイヤごとに切り離しているので、問題は起きていない
- Q. Engine YardとSqualeを比較すると抽象度が高くてよい。何を参照?
- A. Herokuとdotcloudを意識。中も探って見ている
- Q. コンテナは何個くらい入っている? 固定?
- A. メモリから逆算して数を考えている。調整することもある。
*1:すみません。。。