YAPC::Asia Tokyo 2011 スペシャルレポート

YAPC::Asia Tokyo 2011 1日目レポート[随時更新]

本日、明日(10月14日、15日)の2日間にわたり、YAPC::Asia Tokyo 2011が開催されます。本稿では、このYAPC::Asia Tokyo 2011 1日目の模様を随時レポートしていきます!

※セッションすべてをレポートするわけではありません。ご了承ください。

メイン会場となる70周年講堂の前の様子です。受付も設置されています。

画像

10時20分頃のメイン会場内の様子です。

画像

機材トラブルの関係から、10分押しの10時40分開始となるとアナウンスされました。が、セッション時間は規定どおりに進行されるとのこと(オープニングが若干短くなりました⁠⁠。

オープニング

YAPC::Asia運営事務局長 櫛井さんより、オープニングの挨拶が行われました。

今回のイベントは、過去最多の規模で構成されると話します。新たな試みとして、遠方からの参加者支援制度、個人スポンサーの募集、スイーツエリア(珈琲と電源が取れるとのこと)の設置が行われたということです。 また、YAPCの楽しみ方として、セッションを聴こう、スピーカーやスポンサー企業の人たちと交流しよう、良かったトークの押しメンに投票してベストスピーカーを選ぼうと語りました。

画像

画像

Jesse Vincentさん「Perl 5.16 and beyond」

Perl5の開発リーダーであるJesse Vincentさんによる、Perl5の最新情報についてのトークでした。トークの前に、miyagawaさんよりJesse Vincentさんについての簡単な紹介がありました。

まず、Jusse Vincentさんの役割である、Pumpkingについての簡単な説明がありました。Pumpkingとはいわゆるマネージャー職で、Perl5の方向性について決断したり、タスクを開発メンバーに依頼をしたり、仕様に関する文書を作成したり、他のメンバーのメンターをしたりしているとのことでした。

その後話は今後Perl5をどのようにして進化させるべきかという話がありました。その中で、use v5.16という指定が今までは5.16よりも新しいPerlであればどのPerlでも動くという意味であったのを、今後は5.16のPerlで動くという意味とするということを話されていました。use v5.16を指定した場合にはそれより新しいPerl5の機能は動作させないようになるようです。

その上で、今後はPerl5の機能をシンプルにし、仕様を明確にすることでブラウザやスマートフォン上で動作するような別実装を作れるようにしたいということをお話しされていました。例えば、1〜2引数のopenをなくしたり、⁠'」というパッケージ区切りを廃止したりを考えているとのことでした。他、utf8をデフォルトにしたり、オブジェクトシステムの導入など、Perl5のさらなる発展に欠かせない変更も盛り込まれており、Perl5の開発マネージャーとしてのJesse Vincentさんの存在が非常に心強いと感じました。

画像

画像

画像

Tatsuhiko Miyagawaさん「Carton⁠

去年のキーノートを担当し、今年もSpecial Guestとして参加されているmiyagawaさんが、自身で開発されているCartonというアプリケーションについてお話をされました。

CartonはCPANの依存関係を管理するアプリケーションです。WEBアプリが、デプロイする環境によってCPANモジュールのバージョンが違うために動作しない、といった問題を解決してくれるものです。

デモの中では、実際にCartonを使って依存するモジュールをインストールし、その依存関係をツリー状に表示させたり、別の実行環境にてその構成を復元したりしていました。Twitterでは「cartonないと生きていけなくなりそう」と反響が上がるなど、期待の声が上がっていました。

画像

画像

Naoya Itoさん「Perlプログラマのためのスマートフォン開発ガイド」

このセッションでは、GREEのNaoya Itoさんがスマートフォンの開発についてお話しされました。

まず、最近のFacebookのスマートフォン向けのWEBページとネイティブアプリケーションの変遷について取り上げ、WEBページとネイティブアプリケーションが徐々に同じようなものになってきていることを挙げられました。その理由は、ネイティブアプリケーションにおいてWebViewを使い、WEBページと同じ資源を使うようになったからだそうです。

そのような技術の中で、PhoneGapとTitaniumMobileを取り上げ、概要について説明されました。PhoneGapはHTMLとJavaScriptでアプリを作るもので、それに対してTitaniumMobileはJavaScriptでネイティブアプリを直接記述するものです。PerlについてはSL4Aというandroidのアプリケーションを作るものがありますが、速度面などで実用は期待できないそうです。

最後にPerlとNode.jsについて比較をし、⁠Node.jsの流れは止められない」とNode.jsに大きな期待を寄せていました。その上で、⁠Perlの莫大な資産は生かす必要がある」とpocketioというPerlのツールを紹介し、PerlとJavaScriptが共存する道を提案されていました。

画像

画像

malaさん「Webアプリケーション高速化」

このセッションではmalaさんが、Webアプリケーションの高速化について発表されました。

まず高速化の手段として、努力ベースの方法、処理をできるだけ省略する方法、お金をかける方法があるといいます。

その上で、ハードウェアはすぐには早くならない事を念頭に、具体的なチューニング方法としてボトルネックの発見が重要であると説明。 その方法として、リソース監視やDevel::NYTProf等によるプロファイリングを挙げました。

また、Webアプリ開発用シェルを用意することの利点や、適切なキャッシュ方法の選択、レコード数が多い場合に高速に動作するクエリなど、およそシステム高速化に有用なノウハウを立て続けに披露。

さらに話題は「人に真似されていないチューニング方法」へと掘り下げられ、大雑把なクエリをあらかじめ間引くBloom Filterや、そのPerl実装であるBloom::Faster、DBのウォームアップ、Varnish+ESIによるfaviconサーバなど、実例を交えつつ、その利点を紹介していました。

非常にテンポがよく、内容の濃密なトークでした。

画像

画像

Yasuhiro Onishiさん「新はてなダイアリーの裏側」

はてなの大西康裕さんによる、⁠新はてなダイアリー」に関するトークです。

まず、はてなダイアリーに関する簡単な説明に始まり、この秋Hatena Blogに名前が変わることを紹介すると、聴衆からどよめきが起こりました。

リニューアルする理由として、ミニブログやソーシャルタイムラインが流行する中、ちゃんと文章を書き残したいというユーザの声があること、 連続的な進化に限界を感じていることを挙げ、非連続な進化で一石を投じ、従来の良さを忘れずに進化することを目指すとおっしゃっていました。

また技術的なトピックとして、外部ドメイン化およびJavaScriptフリー化を挙げ、それぞれ従来の欠点と、新はてなブログでの改善点を紹介。セキュリティ面でも強固になったことをアピールしていました。

そのほか、アクセスコントロール機能やWYSIWYGエディタの実装、キャッシュ戦略などについて説明されており、非常にユーザビリティに細やかな配慮がなされていることが感じられました。

画像

画像

Marc Lehmannさん「AnyEvent, Coro, IO::AIO」

今回のゲストスピーカーで、AnyEventの作者であるMarc Lehmannさんによるトークです。Marc Lehmannさんの話を直接聞きたいという声は国内でも多く、筆者も個人的に楽しみにしていたトークの1つです。

まず、非同期のツールを作り始めたきっかけとして、Apacheなどの既存のツールでは、Marc Lehmannさんが満足できるパフォーマンスを出せなかったという話をされていました。それを元に自身でhttpデーモンを作ったのがきっかけとなったそうです。

その後、Coroについて時間を割いて解説されました。CoroはPerlにおいてコルーチンを実現するためのライブラリで、Marc Lehmannさんはこれを「Inversion of Control」と呼んでおり、この仕組みが非常にうまく機能することをコードの実例を用いて説明していました。

また、スレッドは元々シングルプロセッサを有効に使うためのものであることを指摘した上で、Perlで「本当のスレッドと呼べるのはCoroだけ」と述べ、自身のプロダクトに対して大きな誇りを持っていることが伺えました。

画像

画像

徳丸 浩さん「Webアプリでパスワード保護はどこまでやればいいか」

このセッションでは徳丸浩さんが、Webアプリにおけるパスワード保護について発表されました。

いわゆる「徳丸本」電子版の宣伝を皮切りに、セキュリティ業界の最近の話題としてSCE(Sony Computer Entertainment)の個人情報漏えい事件を挙げ、ハッシュ化されたパスワードの安全性についての疑問を投げかけます。

次に、そもそもパスワードだけを保護する理由について説明。そのパスワードに対するクラッキングにはオンラインクラッキングと、オフラインクラッキングの二者があって、これらを分けて考える必要があると主張していました。

また、オンラインクラックの攻撃手法として、総当たり攻撃や辞書攻撃、ジョーアカウント探索(アカウントとパスワードが完全に同じもの⁠⁠、逆総当たり攻撃(パスワードは変えずにユーザーIDだけ変えていく攻撃手法)等を挙げ、その対策について、Twitterのアカウント登録画面を例に説明。

オフラインクラックの説明では、レインボーテーブルと呼ばれる、ハッシュ値から元の文字列を求めるための逆引き表を用いた攻撃手法をを例にとり、その高速性と正確性をデモを交えて実証されていました。

そして、レインボーテーブルへの対抗方法として、ソルトと呼ばれるランダムな文字列を元データに追加する方法と、ストレッチングと呼ばれるハッシュ計算を遅らせる方法を解説。レインボークラック・辞書攻撃・総当り攻撃への対抗措置を施すよう推奨しておりました。

非常に丁寧で、実例を交えての説明がとてもわかりやすい発表でした。

画像

画像

Kensuke Nagaeさん「RubyistのためのPerlウェブアプリケーション開発入門」

長永健介さんによるRubyプログラマ向けのperlウェブアプリケーションに関するトークです。

まずRubyによるWeb開発について、環境、フレームワーク、プラットフォームの3つの観点から説明されました。

環境についてはRVM(Ruby Version Manager)、フレームワークはSinatra、プラットフォームはherokuにそれぞれ注目し、システムとは切り離された環境とWebアプリのためのDSL(ドメイン特化言語)、抽象化レイヤーに対応したプラットフォームの利便性を解説されました。

次にPerlによるWeb開発について、Rubyと同様に環境、フレームワーク、プラットフォームの3つの観点で説明。 それぞれ環境にPerlbrew、フレームワークにMojolicious::Lite、プラットフォームにDotCloudを挙げ、RubyとPerlの間に大きな差は無いと主張されていました。

最後に、RubyとPerlの間には、似たような問題には似たような解があるということをおっしゃっていました。

画像

画像

makamakaさん「Perl Mongerなりきりカードゲームの考案と実践」

このセッションは、makamakaさんによるPerl Mongerを題材にしたカードゲームの紹介です。

最初に謝辞として、makamakaさんの奥様に焼肉を「そのうち」おごりますと宣言。会場にどっと笑いがこみ上げました。

本題に入り、今回の発表に出てくるカードゲーム「Parumon(パルモン)」について、富田さんのCPAN本を参考にモジュールをチョイスし、Hachioji.pmで実際にテストプレイしたことを説明。

また、ご本人が会場のスイーツエリア付近で販売していたのですが、トーク発表の時点で既に売り切れてしまうほどの人気でした。

製作のきっかけや、ゲームの趣旨などについて説明し、ゲームの説明に入ります。曰く「迫りくる納期を耐えしのぎ、無事に成果物を完成させるゲーム」で、6歳以上のプレイヤー2名~4名でプレイ可能と語ります。

そのほか、Hackポイントという「人生のエネルギーの抽象的総体的数値」を使ってPerlモジュールをuseしていくこと、Perlモジュールをuseして進捗ポイントが100以上になることを目指す協力型ゲームであること、ゲーム開始時に「use strict!」と宣言しないとHackポイントがいきなり減ってしまうことなどを説明し、カード画像を紹介していました。

質疑応答では、誰か1名のHackポイントが0になった時点でゲーム終了(=全員敗北)になること、デッキ内容がすべて同じであること、先々拡張パックを販売するかも(しないかも)しれないということが解説されていました。

最後は残った時間でデモプレイを行いましたが、プレイヤーの方がカードを引くたびに「迫りくる納期」に追われ、Hackポイントがみるみる消耗していく状況となり、聴衆からも笑いが巻き起こっていました。

画像

画像

techno-catさん「perl meets beats」

このセッションは、techno-catさんによる「perlで音楽をする」をテーマにしたトークでした。

まず「ネタだと思っているかもしれませんが、大真面目です!」と宣言。その宣言の通り、WAVEファイルのデータ構造の解説や音階と周波数の関係など、序盤から非常にコアな内容の説明をなさっていました。

次に音をファイルに書きだすロジックについて、サンプリング周波数、量子化ビット数、音の長さ、音の周波数の4つの情報があれば、ファイル書き出し出来ることを解説。実際に音を鳴らしてファイルが出来ていることを示しました。

これを応用してドラムマシンを実装し、WAVEファイルにドラムパターンの音源を出力するデモを実施。

さらに掘り下げてgrooveを実装し、それを使ったサウンドループをデモ。ハウス、ツーステップ、ドラムンベースというリズムパターンと、サイン波、ノコギリ派などを組み合わせて、テクノミュージックを演奏していました。

Perlでも音楽ができるところを見せてくれた、非常に可能性を感じさせるトークでした。

画像

画像

りーお@DeNAさん「Mobageソーシャルゲームにおける大規模サーバ運用 with Perl」

DeNAのりーおさんによる、Mobageソーシャルゲームの運用に関するトークです。

発表のきっかけとして、昨年のYAPC::Asiaにて省サーバ運用というトークを聞いて勇気付けられたので、対抗して「大規模」での話をしたくなった、と語られました。

システムアーキテクチャとしては、Apache、MobaSiF(フレームワーク)、MySQL、memcached等といったプロダクトを使って構成されており、非常にシンプルであると説明していました。

次にケーススタディとして、2009年に怪盗ロワイヤルなどを開始して以来、すぐにシステムが大きくなり、トラブルになったことを例示。 この対策として、DB接続のためにDNSリゾルビングを行うなどのアプリケーションチューニングを挙げ、DBコネクション数の低減や冗長性の確保といった利点を解説していました。

また、MySQLのHandlerSocketを導入した結果、MySQLの速度がmemcachedに迫る速度になり、アプリケーションのCPU使用率が下がったという成功事例も紹介していました。

そして怪盗ロワイヤルでの事例として、イベントを実施した結果、あるクエリのレスポンスが非常に遅くなったこと等を挙げ、それぞれの対応方法を説明されました。

最後に、DevOpsとしての立ち振る舞いついて、イベントのことを事前に何も知らされなかったことなどを上げ、開発チームと運用チームの綿密なコミュニケーションの重要性を説いていました。

画像

画像

Lightning Talks

初日のライトニングトークです。90分間行われました。また、今年から新しい試みとしてスポンサーセッションをライトニングトークの枠内に含めており、3セッション含まれています。

なお、ライトニングトーク直前の休憩時間のメインホールは次のように席が埋まります。

画像

ライトニングトーク開始時に、ドラ娘さんが紹介されました。

画像

makamakaさん「Perl同人活動⁠

同人活動の報告をされていました。⁠Perl Mongerなりきりカードゲーム」は大反響で、売り切れてしまっているそうです。毎年更新が続いている「Acme大全2011」には逆引きリファンレンスも追加され、さらに充実した内容になっているそうです。

画像

tokuhiromさん「Amon2 3.0⁠

自身の開発されているAmon2の新バージョンについて紹介されていました。ロケタッチ認証への対応、フィーチャー・フォンの手厚いサポートなど、日本製ならではの魅力も語られていました。

画像

hakobeさん「Enhance Anime wathing with programing⁠

アニメ情報をPerlから簡単に扱うことができる、syoboireplというスクリプトについて発表されました。デモで現在放送中のアニメの名称がコマンド1つでターミナルに表示されると、会場のアニメファンから大きな喝采が上がっていました。

画像

株式会社カヤックさん

「Perl道場」という検定サービスの紹介がありました。このサービスは、本日YAPCの最中にリリースされたそうです。GitHubにてforkをしてpull-reqを送ることで、出題をすることもできるそうです。

画像

Yappoさん「App::Ikachan⁠

WEB経由でIRCボットの操作を行うことができる、Ikachanというアプリケーションを紹介していました。途中で時間切れの銅鑼が鳴りましたが、それを見越したように最後のスライドには「明日のLTに続く」の文字が。明日も期待できそうです。

画像

Kenichi Ishigakiさん「Let's play games⁠

Perlで作成した倉庫番のゲームを紹介されていました。デモで倉庫番の問題をスラスラと解くと、会場からは自然と拍手が巻き起こりました。

画像

Eikichi Gotohさん「仙台で1年間PMをやってみた⁠

宮城県から来られているEikichi Gotohさんのトークは、最近pm.orgへ登録されたSendai.pmの変遷についてでした。去年のYAPCの地方.pmに感銘を受けて活動を始め、他のPerl Mongersの賛同を受けながら徐々に成長する様子を話されていました。

画像

SKYARC Systemsさん「北海道のIT勉強会事情の紹介⁠

今回のYAPCで「遠方からの参加者支援制度」を実施したSKYARC SystemsさんのLTは、北海道で働くことについてのお話でした。北海道でも札幌であれば土曜日に勉強会が活発に行われているそうで、その点は心配することはなさそうです。北海道でmini YAPCを開きたいという話もあり、こちらも今後期待ができそうです。

画像

issmさん「ようやく始まりましたNagoya.pm⁠

「名古屋でPerlをゆるく語る会」こと、Nagoya.pmについての紹介でした。第一回Nagoya.pmでは県外からの参加者もいて、大変盛況だったとのことです。ただ、Perlを使っている企業が見当たらないということでしたので、名古屋にお住まいで仕事でPerlを使っている方がいらっしゃれば、Nagoya.pmへ参加をしてみてはいかがでしょうか。

Mayumi Takahashiさん「Perlが決めるwebの未来」

まずMovable Typeの10歳の誕生日を祝ったMayumi Takahashiさん。スポンサーセッションかと思いきや、⁠個人で勝手に来ていて会社の許可も取っていない」とのこと。その後は、⁠Perlで実装したSiriのデモにTwitter連携をライブコーディングで付け加える」という"小ネタ"を見事に演じきり、本日一番の大喝采を浴びていました。

画像

karupaneruraさん「アクセサについての考察⁠

Class::VirtualAccessorという、ハッシュリファレンスを直接フィールドとして扱うためのモジュールの紹介でした。既存のアクセサの問題点として速度の問題と直接ハッシュリファンレンスを触られてはアクセサの意味がなくなるという点を挙げ、その解決法としてこのモジュールを紹介していました。

画像

turuginaさん「日常業務にperlを使おう⁠

Perlを使って勤怠管理システムへアクセスするノウハウの紹介でした。lwp-requestから始まり、LWP::UserAgent、WWW::Mechanizeと徐々にステップアップし、最後はWin32::GuiTestを用いてFlashのUIを操作するところまで紹介されていました。

画像

株式会社 リクルートさん「Mashup Awards 7⁠

日本最大級の開発コンテストである、Mashup Awardsについての紹介でした。今年で7回目であり、協賛は63社にものぼるそうです。締め切り直前には36時間耐久ハッカソンも行われるとのことですので、興味がある方は参加されてはいかがでしょうか。

画像

岡部恵一さん「登録第5314384号商標 厳密というより分かりやすく解説⁠

Perlの商標に関わる顛末について、詳しい内容を紹介されていました。参加者の興味も大変高く、時間切れの銅鑼が鳴った後も例外として解説が続けられました。トークの最後には、JPAは技術者をサポートする組織であって、それを妨げる勢力には断固たる態度で臨むという、心強いメッセージを発していました。

画像

keroyonn_さん「Perlで次世代ゲーム開発⁠

Games::BeLike::EightBIT という、ターミナルでレトロゲーム風のゲームを作るモジュールの紹介でした。デモではターミナル上で動くPelerdiusというゲームを家庭用ゲーム機のコントローラを使って動かしていましたが、最後まで到達する前に時間切れの銅鑼が鳴ってしまいました。

画像

Kosuke Arisawaさん「ぼくたちのPerl Module管理⁠

pfperlという、Perl Moduleを管理するツールと、そのノウハウについて紹介されました。始めはRPMで管理をしていたそうですが、バージョンを上げにくいことなどを理由にperlbrewとDarkPANへ乗り換えたそうです。

画像

nekokakさん「not ORM - for @kamipo⁠

DBIx::SkinnyやTengは遅いという指摘に応えるため、以下にDBを高速に扱うかというお話でした。そのためのツールとして、DBIx::TransactionManager、DBIx::Handler、SQL::Objectを挙げられました。結局はケースバイケースなので、どのORMを使うかはよく考えた方がいいということでした。

画像

tagomorisさん「ISUCONやった話 by livedoor⁠

先日行われたWebアプリケーションの高速化コンテストであるISUCONについての発表でした。優勝されたfujiwara組は、パフォーマンスを最初の状態の150倍にするという、とても高レベルな高速化を行っていたそうです。次回のISUCONをどうするかについて話題が移ると、実施するという明言がなかったにも関わらず会場からは大きな拍手が起こり、このコンテストへの期待の高さが感じられました。

画像

懇親会

LT終了後、食堂に場所を移し懇親会が開かれました。今年はなんと懇親会費が無料とのことで、たくさんの人が集まり、歓談していました。

画像

画像

画像

※ブラッシュアップする前にあったメモ書きの一部は、a geek born in Tomakomaiへ移しました。

おすすめ記事

記事・ニュース一覧