本日27日から29日までの3日間、東京大学伊藤国際学術研究センターにて「YAPC::Asia Tokyo 2012」が開催されます。本日は前夜祭。ここでは、前夜祭の模様を随時レポートしていきます。
受付は、地下2階の多目的スペースに設置されています。
スタッフの方は専用のTシャツを着用しています。何かあれば気軽に相談してみましょう。
なお、本日の発表スペースの裏手では、飲みもの(19時45分まで提供)と軽食が用意されています(すでに飲んでいる人たちも。写真は準備中の時のものです)。発表スペースでは飲食禁止となっており、グラスは持ち込まないようにしてください、とのことです。
オープニング
今年も前夜祭の進行役は、鳥居さんです。諸注意について言及しました。
risouさん「Officeで使うPerl Excel編」
YAPC::Asia Tokyo 2012前夜祭のトップバッターはrisouさんの「Office で使うPerl Excel」というトークでした。トークに先立ち「お詫びと訂正」として、「前日レポートに書かれていたような『Hard なPerl Monger のトーク』ではありません」と訂正した上で、トークの内容がビギナー向けであることを改めて強調し、「ビギナーではない方は今のうちに後ろのほうでご飯を食べてきたほうがいいですよ」と漏らして観客を沸かせていました。
まず、業務でExcel を利用するシーンとして「出退勤時刻はWebで登録されているのに、残業時間の報告はなぜかEcxel」などといった具体例をいくつか挙げた後、「Perlでスクリプトを書いてこれらの業務を処理すれば楽をしたい」というのが発表の大きな目的だとしました。次に、WindowsでのPerl処理系について言及してから、PerlでExcelを扱えるモジュールである"Win32::OLE"、"SpreadSheet"、"Excel"を紹介しました。
このトークではExcelを扱うモジュールとしてWin32::OLEに焦点を当て、ソースコードとデモを交えながらモジュールの使い方をレクチャーしていました。空のExcelワークシートファイルを作成するプログラムからはじまり、VBのExcelマクロライクなワークシートへの文字の入出力、セルの背景やフォント設定のコントロール、セルに罫線を引く方法、列の幅や行の高さの操作という順で、Excel で実際に必要とされるであろう基本的な処理について説明しました。また、資産としてすでに存在するExcel のマクロを動かす方法や、古いバージョンのExcel ワークシートを出力する方法についても言及し、会場からは感心の声が上がっていました。
最後に「業務でExcelを利用しなければならないシーンで、このようにPerlを使って楽にやっつけてもらえればこのトークは成功ですね」と発表を締めくくりました。
Daisuke Muraseさん「UV - libuv binding for Perl」
Daisuke Muraseさんの発表はlibuvについてです。libuvはnode.jsでも利用されている非同期処理用のライブラリで、環境間による依存を吸収してくれるものです。同じようなライブラリとしてliveventがありますが、livuvはWindowsに最適化されたIOCPというライブラリを利用することで、Windows環境でも高速に動作するのが特徴だということです。
そのlibuvのPerlバインディングが、Muraseさんが作成しているUV.pmです。Cと同じAPIを揃えており、現在はプロトタイプの作成用途に使っているとのこと。ただ、ドキュメントの量や利用実績を考えると、通常の用途にはAnyEventを使っておいた方がおすすめであるとしました。
通信周りについてはほぼ実装が終わっているこのライブラリですが、現在githubにしか上がっていないようです。しかし、これを機に日曜日にCPANにて公開するとの説明があり、会場からは拍手が起こっていました。
休憩中の飲食スペース
YAPC前夜祭ではセッション中も飲食スペースで大勢の方が歓談しています。そして、セッションの休憩中はさらに賑やかになっていました。
Gosuke Miyashitaさん「Sqaleの裏側」
Gosuke Miyashitaさんは所属するpaperboy&co.が提供するSqaleの裏側のアーキテクチャについて話しました。SqaleはAmazon EC2上で運営されているHerokuライクなPaaSです。
Sqaleでは、EC2をさらにコンテナと呼ばれる実行環境を一まとめにした単位に分割して提供することで、柔軟にスケールできるようにしています。各コンテナへのルーティングはELBの下に配置されたnginxのリバースプロキシをmod_luaを介してluaスクリプトで制御することで行っているとのこと。コンテナの障害時には別のコンテナに自動的にフェイルオーバーするそうです。
またSSHを通じて各コンテナに直接アクセスできたり、SFTPでデプロイしたコードもgitでデプロイしたコードと同じようにレポジトリにプッシュするなど、dotcloudのように手間いらずでありながら必要であれば深いところまで触れて管理できるよう工夫されている様子が伺えました。
積極的に情報公開をしているのも特徴的で、担当エンジニアがブログで担当箇所について解説しているほか、使用しているカーネルのパッチやスクリプトも公開しています。講演で紹介されたエンジニアは今回のYAPCにも参加しており、気になることがあれば直接質問してほしいと述べていました。
ちなみに全体的にはruby、コンテナの構築にはperlがそれぞれ使われているという話でした。ルーティングに使用しているluaとあわせると言語は3つになりますが、メインであるruby以外は担当箇所が限定されているので問題はないそうです。
全セッション終了後
前夜祭のセッション終了後も、会場では皆さん飲み物を片手に歓談していました。
以上が今年のYAPC::Asia前夜祭の模様になります。