yapcasia」タグアーカイブ

YAPC::Asia Tokyo 2015 に参加してきました #yapcasia

おがた (@xtetsuji) です。

2015年8月20日から22日までの3日間、今年も YAPC::Asia Tokyo 2015 に参加してきました。いわゆる「最後のYAPC」です。

今年もまた「ブログを書くまでがYAPCなのです」は変わらないのです。一気に書こうとすると一つの記事が長くなったり、投稿するまでの時間が長くなったりするので、昨年同様小分けにして書いていきます。このフォーマットは昨年の記事「YAPC::Asia Tokyo 2014 に参加してきました #yapcasia」同様です。

  • YAPC::Asia Tokyo 2015 が始まります #yapcasia (予告記事)
  • YAPC::Asia Tokyo 2015 に参加してきました #yapcasia (この記事)
  • YAPC::Asia Tokyo 2015 前夜祭 #yapcasia
  • YAPC::Asia Tokyo 2015 1日目 #yapcasia
  • YAPC::Asia Tokyo 2015 2日目 #yapcasia
  • YAPC::Asia Tokyo 2015 ハッカソン #yacpasia
  • YAPC::Asia Tokyo 2015 リジェクトコン #yapcasia #yapcasiareject

昨年までと同様、トークの内容というよりも場の雰囲気を優先して書いています。

続きを読む

YAPC::Asia Tokyo 2015 が始まります #yapcasia

おがた (@xtetsuji) です。

今年も、2015年8月20日(木曜日)から22日(土曜日)まで、YAPC::Asia Tokyo 2015 が開催されます。

とはいえ、今年が最後と銘打たれた YAPC::Asia Tokyo です。悔いがないように楽しみたいですね。

昨年までの私の YAPC::Asia Tokyo に関するブログ記事は以下から。

また昨年2014年分につきましては以下をご参照ください。

続きを読む

YAPC::Asia Tokyo 2014 Reject con #yapcasia #yapcasiareject

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2014 のReject con編。概要は目次ブログ記事をどうぞ。

2014年の8月28日(木曜日)から30日(土曜日)までの3日間行われた YAPC::Asia Tokyo 2014 でしたが、今年は応募もさらに盛り上がり、募集トークのうちの約半数がリジェクト(落選)されてしまうという状態でした。競争率が高かったこともありますし、YAPC::Asia Tokyo というイベントがPerl以外の話題にも寛容になったこともあります。

かくいう私も、2012年と2013年に引き続きトークをしようと思って応募したのですが、見事にリジェクトされてしまいました。

しかし!そんなリジェクトされてしまったトークの中から、選りすぐりのものに発表の機会を与えてくれる「YAPC::Asia 2014 Reject con」というイベントが2014年9月3日(水曜日)に行われることになり、なんと私のトークも発表の機会を与えていただけました

トーク概要については以下の記事がまとまっているので、おすすめです。@hiratara さんの記録能力のすごさには毎回脱帽してしまいます。

続きを読む

YAPC::Asia Tokyo 2014 2日目 #yapcasia

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2014 の個別記事、2日目編。概要は目次ブログ記事をどうぞ。

トーク概要については以下の記事がまとまっているので、おすすめです。

続きを読む

YAPC::Asia Tokyo 2014 1日目 #yapcasia

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2014 の個別記事、1日目編。やっぱり書くのが遅すぎ(8月末開催で、書いているの11月末)なんですが、書きたいと思い続けていたので書きます。概要は目次ブログ記事をどうぞ。

トーク概要については以下の記事がまとまっているので、おすすめです。

続きを読む

YAPC::Asia Tokyo 2014 前夜祭 #yapcasia

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2014の個別記事、前夜祭編。書こう書こうと思っていていたら、いつのまにか約2ヶ月経ってしまって(開催は8月末で、ブログを書いているのは10月末)。だいぶ忘れかけている。だけど書きます。

この記事は 2014年8月28日(木曜日) に行われた YAPC::Asia Tokyo 2014 前夜祭編。その他の YAPC::Asia Tokyo 2014 関連記事は目次ブログ記事からどうぞ。通して参加した上での感想はだいたい目次ブログ記事に書いてあります。

続きを読む

YAPC::Asia Tokyo 2014 に参加してきました #yapcasia

おがた (@xtetsuji) です。

そうです「ブログを書くまでがYAPCです」なのです。少しずつ書いています。

今年2014年も、8月28日木曜日から8月30日までの3日間、日本最大・世界最大級のPerlのお祭りである「YAPC::Asia Tokyo 2014」が行われました。

思ったことを全部書き始めようと思うと書く時間も文章も長くなるので、まず最初はこのサマリー記事を書いたあと、各日程に行われた個々のトークの感想を書いていきたいと思います。これは昨年の自分自身のフォーマットを真似ました。

このブログ記事は上記ブログ記事のまとめ記事でもあり、個々のトークや各種イベント枠以外のところにフォーカスを当てた記事です。あまり他の #yapcasia 関連ブログ記事で取り上げられていない部分かもしれません。

続きを読む

YAPC::Asia Tokyo 2014 が始まります #yapcasia

10年間くらい仕事と趣味でPerlプログラマーをしている、おがた (@xtetsuji) です。

件名の通りですが、YAPC::Asia Tokyo 2014 が2014年8月28日(木曜日)の夜の前夜祭から3日間にかけて行われます。

続きを読む

YAPC::Asia Tokyo 2013 で「Apacheの展望とmod_perlの超絶技巧」というトークをしてきた話など #yapcasia

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2013 トークなど編。その他の「YAPC::Asia Tokyo 2013」関連記事は目次ブログ記事からどうぞ。

いつもそうですが、今回もかなりの長文です(1万文字越え!)。mod_perlに特段の興味のない方は、流し読みでどうぞ!YAPC::Asia Tokyo 2013関連のブログ記事はこれが完結編の予定。

トーク「Apacheの展望とmod_perlの超絶技巧」について

昨年の初トークに続き、今年もYAPC::Asiaの壇上で2度目のトーク「Apacheの展望とmod_perlの超絶技巧」をさせていただきました。2年連続、今年も飽きずに得意の持ちネタであるmod_perlネタをぶつけましたが、今年も採用してくださって本当にありがたいです。世間では古い古いと邪険に扱われがちなmod_perlですが、こういうトークもソーシャルボタン等でそれなりの支持をいただいて嬉しい気持ちです。

最初はタイトルが「mod_perlの展望とApacheの超絶技巧」というタイトルだったのですが、スライドを作って発表が終わって一段落付くまで、Apacheとmod_perlというキーワードが入れ替わっていた事に気がつかないというボケをかましてしまいました。悩んだ挙句、トークページのタイトルをしれっと書き換えるという作戦に出ました。これくらいであれば許されますよね?

前のVimのトークはイベントホールが満席状態だったのに、自分が壇上に立ったら半分くらい人がいなくなったときは焦りました。ただ、イベントホールとメインホールは普段はそんな感じで、多目的教室が狭すぎたという意見も聞きますし、mod_perlというニッチな題材にしては、そこそこの入りだったかなと感じます。

実際、話したかった事は

  • Apache httpd serverは、Nginx等の他のウェブサーバ実装の台頭でこの先どのようになるのか展望を話す
  • mod_perl2 を使って任意のサーバが Apache2 と同等の堅牢性で書けるということのコンセプトを示す

というところだったので、タイトルとしては「Apacheの展望とmod_perlの超絶技巧」のほうが言いたかったことを表しているわけです。

前年は「mod_perlの本質とは何か」ということをmod_perl1とmod_perl2両方を例示して懇切丁寧に解説して大量のスライドが余った感じでしたが、今回はmod_perl1の説明は一切しませんでした。私自身が関わっている業務でもmod_perl1をmod_perl2にマイグレーションして、mod_perl1環境がほとんど残っていないですし(わざと自宅にmod_perl1化石環境を残しているだけ)、展望と超絶技巧を示すには当然mod_perl2だというのが背景にあります。

トークが採択されたのは「超絶技巧」という大げさな単語を入れたのも効果あったかなと感じています。「無駄にカッコイイ」などと褒め言葉もいくつか頂きましたし。日常生活では「超絶技巧」なんて言葉は使わないですよね。クラシック音楽ではフランツ・リストの「超絶技巧練習曲」という作品が有名で、そこから単語を採用させていただきました。

肝心のトーク内容については、無難にまとまったかなといった印象。前半の展望と後半の超絶技巧、両方そこそこだったかなと。もっとうまくできれば…という点はもちろん色々あるんですが、終わってから欲を言っても仕方が無いわけで。

中間部にあのトークを意識した「もう一つの本当にあったレガシーな話」というスライド群を入れたのですが、時間の関係で飛ばしてしまいました。内容はスライドままなので、興味のある方は読んでみてください。

mod_perl2でmemcachedサーバを実装するというコンセプトが当日までに完成しなかったのですが、完成したところで20分のトーク中に実演することもなかったので、これからに期待してくださると幸いです。特にこの事例は実用を目指しているというわけでなく、コンセプトとしてこんなことも出来るということを示したいという意図程度です。

mod_perl1はHTTPリクエスト処理しか書くことができませんでしたが、mod_perl2ではTCPコネクション層から処理を書くことができます。これはApache1.3とApache2.xのモジュールAPIと対応しています。Apache1.3では本体にパッチを当てないとSSL接続を直接受けられなかったのが、Apache2.0でmod_sslが生まれて単体で処理が可能となった事などが好例です。

世間は新しいものが受容される環境ばかりではありません。古式ゆかしい納品型受託案件などでAnyEventはまだ新しい実績の乏しいものと見られ敬遠されるケースがあるかもしれません。daemontoolsはdjbアレルギーで拒絶される場面もあるかもしれません。そんな時にApache2/mod_perl2で任意のTCPサーバが書けることがプロジェクトの突破口になることもありうるのでは、という情報を提供したかったということもあります。現にqpsmtpdはApacheをEngineとして動作するmod_perl2モジュールが存在しますし、mod_mrubyやmod_luaなど、新たなApache拡張系の登場も、このジャンルがまだ現役である事の証拠だと思います。先輩であるmod_perlがmod_mrubyやmod_luaへの実用例の開拓者になるって素晴らしいと思いませんか?

トークでお話した通りですが、展望面では、Apache2.6では大きな変更は無いとしても、Apache3.0が依然として謎のベールに包まれています。またApache2.4でのmod_perl2対応がWindows環境で難航していることで今後どうなるのか、見守りたいです。未成熟なevent MPMが今後成熟してNginx等と切磋琢磨していくのかなど、今後もApache/mod_perlから目が離せません。随時ウォッチして、ブログやトークなどでアウトプットしていきければと思います。

会場では @tokuhirom さんが聴講してくださって質問やアドバイスをいただけたのは嬉しかったです。「Apache2をAnyEventのエンジンにするのは?」は、実用とは別に興味深い課題。つい「そのアイデア、頂きました」と言ってしまいました。

後日 @tokuhirom さんが書いたmod_perlに関するブログ記事もリンクしておきます。

「本当にあったレガシーな話」を聴講して

いやはや、1日目に20分mod_perl推し(?)トークをした私でしたが、2日目の @lestrrat さんの「本当にあったレガシーな話」はまさに40分mod_perl dis吹き荒れる真逆のようなトークで、聴講していた私も内心ビクビクしつつ、楽しんで聴講しました。

[tweet https://twitter.com/xtetsuji/status/381289572115562497]

さて、会場で爆笑していた人の中で、あまりmod_perlに詳しくない方のために、私なりの解説をしてみようと思います。

その前に注意点として、私はこの内部コードの事を当然知らないわけで、憶測や推測で語っている立場だということ。また、私自身の無知や無理解による誤解や間違いが含まれている可能性があるということ。これらをご留意下さい。

前提として、@lestrrat さんの「脱mod_perl、PSGI化推進」という方向性は2013年の今の選択として正しいと私も考えています。一度PSGI化してしまえば、Plack::Handler::Apache1を使って「裏返し」にmod_perl1を据えることさえ可能だからです(はたしてそれをしたいかは別として)。Plack::Handler::* の数だけ裏側のウェブサーバの実装とPerlの永続化手法も選び放題です。このメリットは計り知れません。その他に得られるメリットも枚挙にいとまがない。

このトークの「mod_perlをPSGIに書き換える一大事業」は大きく分けて二部あって、前半が「mod_perl1ハンドラ(sub handler)で書かれたアプリケーション」、後半が「mod_perl1に密に依存したSledge」でしょう。mod_perl1の問題点は前半で大体語りつくされており、後半も色々な試行錯誤があるものの、前半の部分に話の比重が置かれてか、軽めな印象を覚えました。

前半のmod_perl1ハンドラで書かれたアプリケーションの話。Apache::Request->instance と言われて一瞬意味がわからなかったのですが、libapreq のことだったんですね。

mod_perl1で「リクエストオブジェクト ($r)」と呼ばれるものは主に2つあって、

  • Apache オブジェクト (ref $r eq ‘Apache’)
  • Apache::Request オブジェクト (ref $r eq ‘Apache::Request’) a.k.a. libapreq

というものがあります。今回 @lestrrat さんが語っていたのは後者の Apache::Request のほう。

「もともとmod_perlはApacheのモジュールをC言語ではなくPerlを使って書けるようにしたもの」というコンセプトに立ち返ってC言語でのApacheモジュールの開発に降りて考えると、mod_perl1でいうApache オブジェクトが、Apache1.3 での mod_*.c 内での原始的なリクエスト構造体 (request_rec 構造体) の対応です。ただ、この request_rec 構造体はHTTPリクエストを扱うにはあまりにも貧弱で、例えばファイルアップロード(multipart/form-data)のPOSTデータを受け取ってそれをほどくことすら自前ではできません。C言語を書くプログラマにとってこれはあまりに苦痛でしかないことは容易に推測できるわけで、これを補うために libapreq というライブラリが Apache側から提供されました。これを使えば大体のHTTPリクエスト処理ができるようになります。このlibapreqのPerlバインディング(XS)がApache::Requestと理解していただいて良いでしょう。

資料には Apache->uplaod() で Apache オブジェクト (request_rec 構造体) から upload オブジェクトを取得できるとされていましたが、upload オブジェクト (Apache::Uploadオブジェクト) を取得するためには確か libapreq / Apache::Request の力が必要なはずです。ここでは「Apacheオブジェクトは貧弱、Apache::Request (libapreq) オブジェクトは強力」ということを覚えておいてください。というか、libapreq はあまりにも強力なものです。良くも悪くも。

実は私は、ジョークやコンセプト以上の目的で libapreq / Apache::Request を使ったことがありませんでした。なので Apache::Request->instance という文字列が出てきて理解するまで10秒くらいかかったのはここだけの話。この呪文 Apache::Request->instance は、どこでも都合よく強力なApache::Requestリクエストオブジェクトを虚空から取り出せる呪文のようなもの。1つのリクエストサイクル中でリクエストオブジェクトは実質的にシングルトンであるとはいえ、このクラスメソッドを使ってしまうことで、コードの量が多くなればなるほど可読性は大いに下がると推測されます。

Perl CGIのRegistry高速化は別として、ハンドラとしてのmod_perl はあくまでも「複雑なことをさせない」「外部との密結合を避ける」ことが大事だというのが私のモットーだったので、libapreq / Apache::Request を使った時点でそのモットーが崩れるというのが私の意見。要するに libapreq / Apache::Request を使った時点で、複雑なウェブアプリケーションをmod_perlハンドラで書くという船出をしてしまったようなものと言えるかもしれません。

「単純なことをする」「疎結合である」という要件が満たされるのであれば、速度や可搬性を持った良いmod_perlハンドラアプリケーションが書けるでしょう。例えば簡潔なJSONを出力するAPIなどのようなもの。HTMLの画面を出力するサーバとは分離したApache/mod_perl世界があるときなど、こういう手法は悪くないと思います。将来の移植性に置いても心配はそれほど無いはず。

トークでは「$rは多機能過ぎる」という下りがありましたが、まさに$rはmod_perl1のオブジェクトという存在以上に「Apache1.3そのもの」であると言っても過言ではないでしょう。この「多機能」というキーワードには、モダンなフレームワークが持つコンテキストオブジェクトのような移譲による役割分担をせずに、$rだけであらゆることをやろうとするという雑然としたメソッドの世界観を含んでいると感じました。また「ブラウザからのHTTP接続の切断」といった状況すら検知できる(皆さんがお使いのHTTPサーバやフレームワークではできますか?)という意味での強力さに手を出してしまうと移植性が途端に低下してしまい、Apacheロックオンの危険性を感じる立場もあるでしょう。

mod_perl1ハンドラは、いわばC言語を使わずPerlを使って書かれたApache1モジュールそのもの。サイトexample.jpの画面とロジックを作るとき、mod_examplejp.cを作ろうと普通の人は考えないのと同じ理由で、mod_perlで画面とロジックを書く事は迷宮への入口を思わせます。HTMLの画面としてのレスポンス結果を作成するのは、mod_statusくらいのHTTP GET単発画面を出す程度の簡単さがギリギリラインかなと思います。そうでなければ移植性を考えてPerl CGIを書いた上でmod_perl高速化環境を使うか、この層を抽象化したフレームワークを使いたいところです。

後半のSledgeをPSGI化する話。実際にSledgeを使ったアプリケーションを書いたことは無かったのですが、私が当時mod_perlハンドラを学び始めた頃の活きた教材がSledgeでした。

標準のSledgeはPerlの永続プロセス手法としてmod_perl1(2ではない)以外のバックエンドを持っていない事がまず問題です(CGIは非永続プロセス手法なので考慮外)。SledgeをPSGI化する外部の試みのいくつかも、大規模サイトに投入するにはネックとなることがトークで語られていました。

余談ですが、SledgeのAPI自体も非常にmod_perl1の影響を受けているようで、コンテキストオブジェクト (という名前が正しいのかな) のメソッド名はmod_perl1のリクエストオブジェクトのメソッド名を築一参考したと容易に推測可能なものです。これは、当時よくHTTPリクエストを抽象化していたものがCGI.pm以上にmod_perlのリクエストオブジェクトだったから、それ以外の実装がなかったから、という理由なのでしょう。当時「HTTPリクエストの抽象化」を意識できる教材は、SledgeかJavaのTomcat、Strutsくらいしか無かったような気がします。このような先人の苦労が今のPlack::Requestに結実していくのです。

トークでも語られましたが、Sledgeのmod_perl1部分はApacheオブジェクトは当然として、なんとそれの進化系であるApache::Requestに完全に依存しています。まずフェイクオブジェクト(のようなもの)を作成するという @lestrrat さんの作戦は、問題解決への鋭いアプローチだと感じました。

$r->status(200) + return 404 のくだりは私も理解が足りない部分だったのですが、エラー時にmod_perl1がヘッダ類を出力するときの癖というのは結構あります。Apache1.3コアのErrroDocumentディレクティブもそうですが、エラー画面を出力するという処理には内部リダイレクトという処理が関わってきて、それがApache1.3/mod_perl1上でのヘッダ処理をややこしくしているのではないかと感じています。私の定石は「$r->status()は使わない」「$r->send_http_headerをしたあとでステータスコードをreturnする」です。確かに $r->status() を使うと変な事が起こりがちかも。

Plack化の最初でパフォーマンスが落ちたという話。Plack::Request中でクエリ引数処理が重かったとのこと。Plack::Requestのクエリ引数のパース処理はPure Perlだったと思いますが、mod_perl1は古ぼけていていもクエリ引数のパースはmod_perl1のネイティブAPIがやるので爆速なはずです(libapreqを使う使わないに関わらず、内部的にはC言語での実装です)。

トークで語られたような当時のPlack::Request中にあった重複処理などを改善していく話はエキサイティングでしたね。そもそも、Plackの目的がパフォーマンスよりもPSGIのリファレンス実装やPlack::Handler::*によるウェブサーバの差異の吸収といった部分を優先している(ように見える)ことからも、見逃されていた重複処理があっても仕方が無いかなという気はします。クエリ引数のパース処理が目に見えてパフォーマンスにおいて支配的になるのは大規模サイトだということも、今まで見逃されてきた(?)一因でしょう。こういう観点からも、Plackの大規模サイトへの投入は興味深い事例だと感じました。

ここまで長々と私の解説を書いてみましたが、誤解や間違いがありましたらご指摘下さい。

両方のトークを比較する

長文での説明でしたが、私のトークと @lestrrat さんのトーク、対立するものではなく、向いている方向が違うという感じなんですよね。

  • @xtetsuji のトークは最新のPerlとmod_perl2の先端を使い尽くす
  • @lestrrat さんのトークは太古のPerlとmod_perl1の呪縛から解放する

そういう意味では、両方のトークを聴講した方が、mod_perl というものをどう受け取ったのか、興味深い部分ではあります。

聴講中に

[tweet http://twitter.com/xtetsuji/status/381306340414476288]

なんてツイートをいただいてどうしようかと思いましたが、時間切れで質問タイムはナシ。でも聴講時の私の認識は今よりも甘く、結果的に質問しなくて良かったかなと感じています。

@lestrrat さんからは

[tweet http://twitter.com/xtetsuji/status/381297867916185600]

と返していただいて微笑ましい感じでした。トーク後に10秒ほど会話をさせていただきましたが、両者の考えが互いに良い意味で伝わったような気がします。対立関係じゃないですよ!(笑)

今もmod_perlを採用している人達からの声とそれへの返答

その後、後夜祭などで声をかけてくださった方で、今も業務でmod_perl1アプリケーションを動かし続けている方が結構いることに驚きました。「動くものは触らず」の原則はあるでしょう。それについては否定できません。ただ、古いものを使い続けることへのある種の漠然とした不安を持っているという印象を覚えました。今回のレガシーな話のトークの影響も少なからずありそうです。

私が業務でmod_perl1からmod_perl2へマイグレーション作業をすることになったのは、Ops側が最近掲げた「Debian stable付属パッケージを全ての拠り所にする」というポリシーが大きいです(他にも細かな理由はありました)。Debian stableは既にApache1.3/mod_perl1を外してしまったため、マイグレーションの必要性があったわけです。私はDebian原理主義者的な部分があるほどのDebian好きなので、このポリシーには歓迎をしていて、ブランチを切って一気にマイグレーション作業を完結させました。

ただ、mod_perl1/2の知見が少ない企業が、今も引き継がれ残るmod_perl1アプリケーションをmod_perl2にマイグレーションすることは現実的ではないと感じます。mod_perl1→mod_perl2はApacheのモジュールAPIに対応するように、ある種のAPIの断絶があります。作業としては楽なものではなく、Plack等の別の基盤に載せ替える作業と大して変わらない作業量かもしれません。そうであればPSGI化するほうが良いに決まっていることは前段で述べた通り。

私、ネタとして「mod_perl芸人」的な部分を狙っていると言われればそうなのですが、ビジネス上大事な場面や商用環境でまで何でもmod_perlという立場ではありません。何でも適材適所というのは上述でも繰り返していること。むしろ、最近は業務でも個人でも、ネタ以外でmod_perlプログラムあまり書かず、AnyEventやMojoliciousを使うことが多いんですよね。まぁ、デプロイは慣れたApache2とmod_perl2(Plack::Handler::Apache2)を使って…ということはありますが、MonocerosのコードリーディングをしたりNginxのHttpPerlModuleを調べたり、そういう方向への研鑽も続けています。

ただ、せっかく得たmod_perlの知識。mod_perlを何かにマイグレーションしたい方や、mod_perlアプリケーションを何らかの理由で保守したり新規開発したりといった方へのアドバイス等に活用していきたいと考えています。@xtetsuji や @mod_perl_info にお気軽にご相談ください。

これからどういう活動をするの?

嬉しいことに「mod_perl芸人」はそこそこウケがいいので、小さな場では時々ネタを披露しようと思います。あと前述のようにレガシーに悩んでいる方のために、Apache/mod_perlのウォッチ活動は続けていきたいと思っています。リクエストがあれば、トークやマイグレーション等のアドバイスなどの活動は積極的に行っていきます。ブログなどのネット上でも細々と活動していくつもりです。

私は「新しいもの=善、古いもの=悪」という図式には完全には賛同できない部分があります。初学者の「CGIでゴメンナサイ」発言だなんて「大規模になって立ち行かなくなったときに改めて考えればいいのであって、まず動くものが作れる事がまず大事ですよ」「フレームワークは余裕があれば」と声をかけることもしばしば。それとは同時に、Perlの歴史が長いことで、古い真の意味で廃れた情報が未だに現役の如くネット上に残り続ける負の側面も知っています。何が良くて何が悪いのか、何が正しくて何が正しくないのか、そういう部分も意識して、誤解がないように各スキル層へのアプローチをしていきたいと考えています。

[tweet https://twitter.com/xtetsuji/status/395061721900920832]

Mojolicious飲み会等、新しい試みもしています。私の新しい側面にもご期待いただければと思います。

「来年のYAPC」(期待)のような大きな場での発表は、特段リクエストがなければmod_perlトークはしないかなと思っています。さすがに3度目は無いかなぁと。MPMは別として、APIとしてのApache2は既に枯れており、2回のYAPC壇上で話した内容が大枠の説明を網羅していることでしょう。

今年の YAPC::Asia Tokyo 2013 でも様々なジャンルのトークが行われました。Perlというプログラム言語の可能性は広く、これからも広がり続けることでしょう。そのための力となるべく、様々な事に取り組んで、微力ながらPerlというプログラム言語でありコミュニティを盛り上げていきたいというのが、私の今後の活動だと認識しています。

これからも精力的に活動していきますので、どうぞよろしくお願いします!

YAPC::Asia Tokyo 2013 ハッカソンとその後 #yapcasia

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2013 後日編。その他の「YAPC::Asia Tokyo 2013」関連記事は目次ブログ記事からどうぞ。

ハッカソンに行くまで

YAPC::Asia 2013 Hackathonのページに書いてある通り、「例年はスピーカーならびに、スピーカーの招待者を基本有参加資格者としております」と書かれたイベント。私もトークをしたスピーカーの一人であるので有参加資格者ではあったのですが、どんな場所か分からず、出ようかどうか前日からさんざん迷っていました。

当日は疲れて動けないということもなかったので、とりあえず外に出て別の場所に行っていましたが、行こうかどうか悩んでいたものの、@YappoさんからMentionをもらって、行こうと決めていざフリークアウトへ行きました。

ハッカソンに行ってみた

表参道駅までやってきて、フリークアウトのオフィスが入っているビルを探してやってきました。恐る恐る入り口を開けると、そこは広大かつ綺麗なオフィスと、名だたるPerlハッカーの皆さんが各所で静かに黙々と作業をしている光景。

Foursquareにもvenueがあったので当然チェックイン。

メイヤーは @hiratara さんでした。

[tweet https://twitter.com/xtetsuji/status/381657005502390272]

オフィスが広大で綺麗なところに感動しました。特に感動したのは無限水、そう、自由に無料で飲めるミネラルウォーター。よく「その会社の福利厚生はミネラルウォーターを提供するかで表れる」と言われることがありますが、ここにはその夢の無限水があったのです。すごい!それだけでなく、カップのジュースやスープの自動販売機があったので、何か飲もうとお金を投入しようとしたら何と無料。ボタンを押すだけでジュースやスープが出てくる!すごいすごすぎる!どこからどこまでも夢のオフィスでした。しかも飲み物だけでなく、自由に食べても良いお菓子まであるという!オフィスグリコとか目じゃないこの太っ腹さ。感涙ものです。

写真を撮っていいものか、みんな真剣に作業をしている感じで聞きづらかったし、何しろお邪魔している他社様のオフィスなので、写真はほとんど撮りませんでした。撮影OKだったら記念に撮っておけばよかったな。

しかも、冷蔵庫にはビールがあるから自由に飲んで下さいとのことで、もう気分は最高潮。

[tweet https://twitter.com/xtetsuji/status/381672497642364928]

皆さん一箇所に固まらず、バラバラに座っている感じではあったのですが、私が座った席のテーブルの右斜め向かいには@miyagawaさんがいらっしゃって、黙々と作業していました。なんという豪華な空間!

私がしていた作業は、とりあえずYAPC感想ブログ第一弾を書いて…といったところで、その後は未完成だったmod_perl2で動作するmemcachedサーバであるModPerl::Memcachedを作っていたのですが、ビールを飲んだところで疲れと眠気が出てきて、ここからは眠気との戦いになってしまいました。眠気覚ましに立って歩いていても、皆さんお疲れの模様でした。さすがに3日間ぶっ続けのYAPC::Asiaでしたから、疲れが出て当然ですね。

結局、私の手元では眠気が邪魔して単純なミスに気づかず、memcachedサーバの実装は全然進まなかったのですが、各所ではPlackの実装についての議論が交わされていたり、第一線のPerlハッカーが一箇所に集まって作業をした成果が出ているようでした。Plack::Request::WithEncodingも、この場で@miyagawaさんや@tokuhiromさんが@moznionさんと議論をしながら骨格が作られたものです。

ハッカソンというものに出ること自体が初めてで、こういう空間はもちろん初めてだったのですが、第一線のPerlハッカーに囲まれて作業するだけでも刺激的な数時間を過ごすことができました。少し悩んだけど、勇気を出して(?)出て良かった!

会場のフリークアウトさんの写真は全然撮れませんでしたが、@941 さんのブログの行ってきた記事を見てみると雰囲気がわかるかと思います。

会場を提供していただいたフリークアウトさん、本当にありがとうございました!終始感動しっぱなしでした。

タイムテーブルでは23時まで続くと書かれていたハッカソンでしたが、19時くらいには「そろそろ食事へ…」という雰囲気になって、お開きになりました。

ハッカソン懇親会

ハッカソンの懇親会は、フリークアウトさんのオフィス近くのもつ鍋屋に来ました。

昼間からビールを飲みながらコードを書いていたわけですが、ここでもビール。美味しい鍋を食べながら会話が弾みます。

私の席は、鍋をどうすればいいかアタフタしていたら、@charsbar さんに色々と面倒を見てもらうことになって、なんだか有り難いやら申し訳ないやら。豪華なメンバーしか集めていないハッカソンだけあって、どこの席も豪華なPerlハッカーです(私という平凡なPerlプログラマ目線)。ここでもPerlやプログラム言語全般についての話が盛り上がりました。刺激的な空間です。

YAPC::Asia 開催中にもすれ違っていたはずなのですが、初めて @__gfx__ さんとお話ができました。色々な優秀で著名な方の話を聞くと、見聞が広がっていいですね。

YAPC::Asia Tokyo 2013 その後

今回、挨拶や有名人見たさの野次馬以上に、実質的に初めて本格的な議論を交わしたPerlハッカーの方々も多く、出会いって大切だなと感じると同時に、今後とも情報交換など良好なお付き合いをしていきたいと感じました。そのためには自分自身もその目線まで上がらなければと感じた数日間。ギブアンドテイクの世界、私もPerlの世界に多少なりとも貢献出来るよう、これからも頑張っていくぞと、やる気をもらえたYAPC::Asiaとハッカソンでした。

「来年のYAPC問題」については、別記事でも何回か書いた気がしますが、特に心配しなくてもいいんじゃないかなと思います。もちろん、誰かが発起して協力を求めるのであれば、出来る限りの協力をしたいと考えています。みんなでPerlを盛り上げていきたいです。

私のその後は「YAPC燃え尽き期」か、しばらくは疲れた感じで惰性で(?)9月を過ごし、10月へ入っていくことになるのでした。10月に入ってから、この記念すべきYAPC::Asia Tokyo 2013を記録に残すべく、少しずつ振り返りブログ記事を書いているといった感じです。

あ、そういえば、1日目の懇親会で出会ったMojolicious仲間と一緖に、その後9月25日に「Mojoliciousやmod_perlを話題にした飲み会 #2」を開いたのでした。この会自体が @jamadam さんが東京にいるときに開こう的ノリなのですが、今後も継続して開催していきたいと感じました。Mojoliciousユーザ、結構たくさんいるという印象を今回のYAPCで持ったものの、横のつながりがなかなか出来ていなくて、情報交換の場がもっとあってもいいかなと。

10月も後半になって、YAPC::Asia Tokyo 2013から1ヶ月が経ち、個人でのプログラミング活動も徐々に盛り上がりつつあります。これからも何かあったら当時のアツい日々を思い出して、自分自身のプログラミング活動の活力としていきたいと感じました。

YAPC会期中やその前後で、色々な新しい企画への誘いもあったり、自分自身でもこんなイベントが欲しいというアイデアが色々出ました。疲れを取って落ち着いた後は、また面白い日々が過ごせそうです。

本当に良いイベントを前夜祭からハッカソンまで、通算4日間、存分に経験した2013年9月。これから「次のYAPC」まで、この体験を思い出して頑張っていけそうです。微力ながら、私も未来を切り開いていく一人として邁進していきたいと心に誓いました。

YAPC::Asia Tokyo 2013 2日目 #yapcasia

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2013 2日目編。その他の「YAPC::Asia Tokyo 2013」関連記事は目次ブログ記事からどうぞ。

聴講したトークなど

列挙していきます。

トーク雑感

@yusukebe さんのMojoliciousトーク、相当期待していたのですが初心者向けで、多くは既に知っていることが多かったです。とはいえ振り返りができたり、自分が取っていた手法は間違いじゃないんだということを確認できて良かったトークでした。@yusukebe さんには日本有数のサイト開発運用経験を元にMojoliciousの書籍執筆を期待したいです。絶対買います。

@goccy54 さんの「これからのPerlプロダクトのかたち」は、昨年の氏のトーク同様、多くの注目が集まっていました。gperlの構文解析の成果を現状のPerl5にポートして、それによってiOS開発ができる(RubyでいうRubyMotionのような)PerlMotionを作成中という話も期待が持てます。すでに構文解析の成果をPerl5で実現したモジュールは各所で使われており、PPIより速いと好評のようです。さすがPerlを根底から理解しようとした強者ならではのトークでした。

@typester さんによるEmacsの話は、Emacsユーザとして初歩的ではあったものの、いまどきの流行を知ることが出来て良かったです。anything.el すら面倒で入れていなかったのですが、今はまた別のブームがあるようで、まだCarbon Emacsの環境をCocoa Emacsに作り替えるタイミングで、スライドを見ながら大いに参考にしようと思っています。

@lestrrat さんによるレガシー話。Apache1.3+mod_perl1+Sledgeという構成のlivedoorBlogをPSGI化したという話でしたが、40分まるまるmod_perl disで、前日にmod_perlトークをした私は終始ハラハラしながら聴講していました。とはいえ、どこに真意があるのかはmod_perlをかなり使っている私は分かっていて、同意することしきりではありました。

壇上でmod_perl disが繰り広げられているときに、こんなツイートをいただいて、どうしようかなって思ったり。結局質問タイムが無くて公開の場で質問する機会は無かったのですが、結果的にそれで良かったかなと思っています。

会場で爆笑していた人がたくさんいましたが、何がダメだったのか、本質を見抜いていた人はどれだけいたのかなぁ。これについても語ると長くなるので、別ブログ記事で解説したいと思っています。

@maka2_donzoko さんによるボードゲーム話、「サラダ枠」とのことで、毎年楽しみにしている枠でもあります。今年も本当に面白かった。JSON::PP などの重要モジュールのメンテナーでもあるまかまかさんですが、人を楽しませる心意気には感心することしきりです。このトークは動画もスライドも、見たら元気が出るトークです。

PhantomJSの話、以前から気になっていたJavaScriptプロダクトだったので、結構興味深かったです。Seleniumとどういう違いがあるのかな…未だに理解不足な部分が多いですが、とっかかりとしてPhantomJSをいじってみようというキッカケになったことは良かったです。

@myfinder さんの、フルテストも50msec話は面白かったですね。日々増えるテスト、さすがに50msecでは終わらないそうですが、それにしてもテストが根付いた文化というのはうらやましいというか私の境遇からは想像できないので、終始感心しっぱなしでした。テストがあるおかげで安心してデプロイが出来て、新しいものを躊躇すること無くリリースできる好循環。モダンな開発環境が整った時代から始まった会社とはいえ、さすがフリークアウト。

LT雑感

1日目に続き、2日目のLTも盛り上がりました。こちらも、5分弱の録画ビデオが公開されているので、1日目同様、笑いたい時、楽しみたい時に見返すとよいかもしれません。

印象に残ったLTから抜粋してご紹介。

  • 今年のPerl同人活動報告 と銘打った @maka2_donzoko さんの同人報告。今年も大舞台で同人活動宣言。これは期待。
  • @azumakuniyuki さんの、JSONでメールが送信できるHainekoの話。とある要請で作ったようですが、当面メールが無くなることがないわけで、Ajaxなどを使ってメールを送信したいという要求を満たすことができるのではないでしょうか。興味深いです。
  • @barimi さんの「初めてのPerl ~ つぶやいてないでコードかけ ~」。@yusukebe さんを味方につければ素人でも5日でTwitterボットが書ける!冗談っぽい話ではありますが、人に聞くというのは大切なことですね。
  • @__papix__ さんによる「Perl入学式2013年度中間報告」。これからも期待しています。
  • @cubicdaiya さんによる Nginx に mbruby を組み込む話。Pixivでは Nginx+mrubyを精力的に使っているのでしょうか。なかなか興味深い。こういうトークも自然と受け入れられるところがPerlの祭典であってエンジニアの祭典でもあるYAPC::Asiaの懐深さなのかもしれません。mruby期待しています。
  • @takesako さん、今年は○×クイズでLT。いやはや、全員起立の参加型LTなんて初めてでしたよ。そして難問をクリアしたのがラクダ本の和訳をした近藤先生というのだから、なんというチート。面白かったです。

Keynote

LINE社の池邉さんによるKeynote。例年、この最後の枠はスピリチュアルというか、エンジニアという立場を俯瞰した視点でのトークがなされますが、今年もじんわりと響くトークでした。

池邉さんはlivedoor時代(もっと前?)から長く会社の技術を支えてこられて今の位置にいたりするわけで、業界の人間として何か感慨深いものがありました。大昔のYAPCで池邉さんのトークを聴講したこともありましたが、その時から立場が変わって、たとえ人の上に立つ立場となっても技術者視点を忘れないということは大切だなーと思いました。

Closing

例年のYAPC::Asia同様、牧さんによるClosing。今年の入場者数が1000人越えといった発表の後、牧さんと櫛井さんが今年でYAPC::Asiaの運営から卒業するという突然の発表。そして来年のYAPCは誰かが名乗りでないと開催されないという、さらに衝撃の発表。

しかしながら、地方でYAPCするぞというLTもあったり、今年の規模を越えることはできないにしても、来年のYAPC::Asiaは何らかの形で行われるのではないか、私はそう期待していますし、何か協力できることがあれば出来る限り積極的に協力していきたいです。

昼食

ちょっと時間を巻き戻して正午の昼食ですが、1日目同様2日目も学食へ行きました。慶応大学の学食、本当に安くておいしい。生活圏内に欲しいくらいでした。

昨日は気付かなかったけど、4sqにvenueがあったのでチェックイン。冷麺うまかった。

勝手に後夜祭

Closingの後、勝手に後夜祭に参加。

狭い店の中に60人以上が入って、鉄板の暑さと人の暑さですごいことに。ぎゅうぎゅう詰めの中、著名なPerl Monger達が立ったり座ったり暑い暑い言いながら懇親を深めました。

初期フードメニューはこんな感じ。食べ飲み放題でしたが、コナモノなのですぐに満腹になりました。

勝手に後夜祭の初期メニュー

そしてこの人のひしめき合う狭さ!

勝手に後夜祭の狭さ

あまりの狭さに懇親よりも「暑い暑い」と言っている時間が長かった気もしますが、それでも様々な方と会話ができたりして楽しかったです。金銭的時間的に余裕があれば、こういう場には積極的に参加したいですね。それだけ実りのある会話ができて、実りのある時間が過ごせます。

23時頃に解散。前夜祭も含めて3日間の疲れが出ないうちに帰宅となりました。

噂によると、八王子近辺在住のHachioji.pm勢はこの後、朝まで八王子で飲んでいたとか。すごい。

今後に向けて

3日間のYAPC::Asia Tokyo 2013の最後が「牧さんと櫛井さんのYAPC::Asia運営卒業。来年のYAPC::Asiaは誰かがやらない限り行われない」というものでしたが、きっと誰かがやってくれると楽観できるのは、この3日間で実感したPerlコミュニティの熱い想いがあるからでしょう。地域.pmもたくさん増え、それに伴って全国各地に心強いPerl Mongerが増えている現実もあります。東北勢も来年のYAPC::Asiaを東北でやりたいと名乗り出ました。YAPC::Asiaという名前のイベントや今回のような規模ではないものの、きっと来年も「YAPC::Asia」は行われる、そう信じています。

ひとまず前夜祭を含めて3日間の心地良い疲れを持ち帰って帰宅しましたが、実はさらに次の日に行われたハッカソンにも参加してきました。

というわけで、その後のハッカソンの話と、私のトークにまつわる話へ続きます。

YAPC::Asia Tokyo 2013 1日目 #yapcasia

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2013 1日目編。その他の「YAPC::Asia Tokyo 2013」関連記事は目次ブログ記事からどうぞ。

オープニング、そして基調講演

前夜祭で遅くに帰宅して1日目の自分のトークの準備をしていたので、朝起きられるか不安でしたが、夢と希望の力で起きてオープニングには余裕で間に合いました。人間は夢と希望で活動していると実感した瞬間。

恒例の櫛井さんのオープニング。その後の基調講演。今回の冒頭の基調講演も前年同様英語のプレゼンテーションではありましたが、スライドが分かりやすかったのと、発音した英語が多少追えたので、なんとか楽しむことができました。Perl5.18の今や、これからのPerl5といったものが垣間見えて、これからの楽しみが増えました。

聴講したトークなど

列挙していきます。

トーク雑感

@kazeburo さんのMonocerosのトークは期待していたので、絶対聴講するぞと以前から思っていました。Monocerosというウェブサーバ自体の魅力の他にも、UNIX/Linuxでサーバを書くための作法というようなものも学べたのが良かったです。straceの出力を出して「これ読めますよね」という@kazeburoさん、さすがです。Monocerosのコードリーディングは細々と続けています。

学術分野におけるPerl、普段Perl入学式や地域.pmなどでお会いしている@__papix__さんによるトークでした。GPGPUを使った部分など、なかなか高度な事にチャレンジしているんだなと感心しきりでした。

普段はEmacs使いの私ですがVimにも興味があったので、Vimのトークを聴講しました。なかなか練られたプレゼンテーション手法に感心。後日公開されるスライドを読み返しながらVimの設定をしてみようと思います。

私自身のトークの振り返りは長くなりそうなので別記事で…。

@hiratara さんによる型付きPerlの話は、部屋があふれるほどの盛況ぶり。後ろの床に座って聴講していましたが、本当に難解でよく分からなかったというのが正直な感想。このあたりも勉強しないとなという意識付けが出来たのは良かったです。

次に聴きたいトークまで間があるし、多目的教室はいつも盛況で入れない状況だったので、しばらくロビー内などをブラブラしていました。ロビーの隅っこでは床に座り込んでparumonをしているHokkaido.pmの人たちがいたり、なかなかバラエティにとんだ風景でした。

床でparumon

@tokuhirom さんによるFuture Perlのお話は、午前中の基調講演とはまた角度が違った面白いトークでした。Perl6の実装は色々あれど、どれも開発フェーズが混迷していたり遅かったり使うのはちょっと…という印象を持っていましたが、Seisはなかなかいいところまで来ているという印象。私を含め、今まであまりPerl6に興味がなかった人もPerl6を使いたくなったトークではないでしょうか。前年のYAPCまでとは違い、今年はそういう未来についてのトークが熱かった印象。

@toku_bass さんのライブコーディングも会場が盛況。入場すら厳しい部屋から人があふれるほどの状況で、チラッと拝見しました。ただ、壇上に @toku_bass さんがいなかったにも関わらず、画面は進み声は聞こえるという不思議な光景。あとで聞いたら、立ちながらのライブコーディングは厳しいということで、最前列に座って作業していたとのことでした。今年のYAPCもPerl初心者中級者といった人が結構いたと思うし、そういう人にPlackの内部を見せながらウェブアプリケーションを書いていくライブコーディングは有用だったことでしょう。

LT雑感

LT1日目も盛り上がりました。タイムテーブルは公式Twitterで告知されているので、それに従って印象深いものを抜粋して振り返ってみようと思います。公式にビデオが上がっているものは、LTの時間制限の性質上、4〜5分で見られるものなので、何か愉快な気持ちになりたい時に、人生落ち込んだ時、ちょっと何か見て笑いたい時にも使えそうです。

  • ギークな異性を落とす魔法の言葉はネタ枠として大成功でしたね。200 OK
  • How to inspect a RUNNING perl processは既存のPerlプロセスを外部から観察する方法という込み入ったシステム的な内容でしたが、デバッグ時に参考になる部分も多く、今後この手法を使ってdaemonを開発したりしていきたいなと感じました
  • YAPC::NA 2013に行ってきたは、昨年ベストスピーカー賞を獲得した@yusukebeさんがそれでYAPC::NA 2013に行ってきた記録ですが、一度は海外のカンファレンスに行ってみたいと思わされたトークでした。英語の壁などありますが、金と時間があって行く機会を作れば乗り越えられそうな気が十分します。
  • んだっちゃだれ Sendai.pmは、今元気なSendai.pmの話。YAPC::Tohoku(仮称)の話も出てきて非常に盛り上がりました。東北は青春18きっぷで途中下車した盛岡くらいしか経験がないので、今度じっくり東北観光をしたい。
  • オープンソースプロダクトに貢献することはSixApartの方のトーク。一度movabletype (MTOS) をforkして、とある改良を入れようとしたのですが、どうしても克服できない点があって諦めた経験あるんですよね。でも行動に起こしただけ数年前の自分自身より進歩あるかなって思いました。
  • 1日目LTのトリである2013年代のBlogツールRijiの紹介は、もう@songmuさんの突然の中国語トークに全てを持って行かれた感がありますね。「YAPC::Asia なんだし例年台湾等からも聴講者が来るわけで、日本語以外のLTがあってもいいじゃない」という考えには大いに同意であります。いやはや、これは一筋縄では真似できない偉業です。

会場の雰囲気

このあたりは櫛井さんのブログが非常に詳しく写真も綺麗なのでそちらを参照していただくことにして、私が撮った数少ない写真からいくつかピックアップ。 各トークについては原則的にYouTubeで動画が公開されているので、そちらを参照すると雰囲気が分かると思います。

個人スポンサーの提灯

個人スポンサーのちょうちん。私のものも飾られていて「お〜」ってなりました。その後、2日目の終盤に持ち帰りました。

昼食

2日目もそうだったのですが、1日目もHachioji.pmあたりの人と集まって、生協の学食に行って食べました。安いしうまい。 YAPC自体に慣れてきたからか、外がそれほど暑くなかったからか、トーク会場との移動にそれほど困難を伴わなかったのも良かったところ。

懇親会

2007年から2010年まではボッチで食事だけして帰ってくる懇親会でしたが、2011年夏のHokkaido.pmとの交流開始から3年弱、Hachioji.pmにもよく顔を出すことにしていたら知っている人が増えて、この場が色々な場から集まる人達が一堂に会する同窓会的場所になってきました。

個人的にも長年のボッチ体験を回想して、ポツンとしている人やグループを見かけたらなるべく話すようにしましたが、私自身へ声をかけてくれる人も結構いたりして、色々限界もありましたが、多少のボッチ対策には貢献できたでしょうか。Mojoliciousを使っている会社の方々のグループがあって、数人の方とはPerlBeginnersかPerl入学式で面識があったのですが「@jamadamさんに会ってみたい」と言われたので、探して引きあわせたりしました。それが後日のMojolicious飲み会につながったりもしたので、なかなか有意義だったと思います。

それだけでなく、今年は勇気を出して@miyagawaさんにも話しかけて、Plack::Handler::Apache2まわりの話の質問を投げかけてみました。勇気を出した割には意外に気さくに受け答えしてくれたので、自分が無意識に作ってしまっている「著名な成果を出した人への心理的障壁」を感じましたね。消極的なの良くない。拙作のModPerl::PSGIについても、名前の良し悪しといった評論をしてもらって、非常にありがたかったです。先日のHokkaido.pm#10の時にゲストで来た@tokuhiromさんと話した時もそう思ったのですが、そういう殻はどんどん打ち破って話しかけていくべき、そう感じました。 そういう意味では、英語コンプレックスから、海外より来日したゲストの方々と話せなかったのは数少ない心残りな点でした。

懇親会の食事1 懇親会の食事2

 大人のYAPC

こちらにも申し込みをしていましたが、これは「ヤバい、面白かった」としか書けないです。守秘義務があるので。でもこういう試みは絶対求められていると感じた次第です。この独立イベントを手配してくれた@lestrratさんと@yusukebeさんには感謝です。

時間的に懇親会とかぶっていたので、懇親会を途中で抜けて、途中から大人のYAPCに入った感じでした。もっと懇親会を楽しめればよかったなという気持ちと、大人のYAPCを最初から聴きたかった気持ちが両方。両方とも稀有なイベントゆえですね。

飲み会

その後、1日目の自分のトークが終わった開放感からも飲みに行こうと思い、会場の1階にあるHUBに行って飲みました。さすがというくらい、様々なPerl Mongerが集まっていて非常に刺激的な場所でした。これぞYAPCという光景が確かにここにありました。

この場では、Hachioji.pmの人々と歓談したり、Hokkaido.pmの人達もいたので話したりしました。有用なメール関連ツールを精力的に開発している京都の @azumakuniyuki さんとお会いできてお話できたのは大きな収穫でした。その後 @azumakuniyuki さんから「Hokkaido.pm の @aloelight さんいますか?」と言われて「あぁ見かけましたよ、こっちです」といった感じで新たな接点が生まれたり、適度にPerl Mongerが密集した良い場となりました。

その後、終電が近い人から徐々に解散していき、私も23時30分には電車に乗って帰路に付きました。

2日目に続きます。

YAPC::Asia Tokyo 2013 前夜祭 #yapcasia

おがた (@xtetsuji) です。 YAPC::Asia Tokyo 2013 前夜祭編。その他の「YAPC::Asia Tokyo 2013」関連記事は目次ブログ記事からどうぞ。 写真があればいいんですが、写真を撮るのが下手なので、あまりありません。公式サイトから大量の公式撮影写真が見られると思うので、雰囲気を感じるのであればそちらを参照ください。特に前夜祭の場合はイベントホールの雰囲気と「LTソン::Tiny」ですね。

入場まで

会社を16時過ぎに出て会場には17時30分頃に到着できるようにして余裕を持たせました。ただ、開場の18時がズレこんでロビーで多少待たされることに。とはいえ、当日(1日目)の混雑を前日に分散させるという意味ではこの前夜祭受付の試みはいいですよね。 待ち時間は、各地の*.pm(ほぼHokkaido.pmとHachioji.pm)の方々などと懇親(雑談)していました。 受付を済ませて、会場の床に座って斬新なカードに自分の所属ジャンル?のシールを貼る作業。そしてイベントホールの場所を確認して移動しました。

無限(?)ビールでのおもてなし

例年の前夜祭は、半ダースの350ml生ビールがそこかしこにあって自由に飲んでもよいという状態だったのですが、今年は生ビールの缶がテーブルに綺麗に整列されていて、さらによい環境となっていました。そして、LTソン::Tinyの会場として、イベントホールは机が整列され、さらには前倒しで用意された(本来であれば1日目からの予定だった)Wi-Fiまで完備されているという絶好の環境。ツイートし放題! カウンターで350mlのビールを一缶もらって席につきます。 前夜祭の缶ビール俯瞰 その後、LTソン::Tinyが始まります。 写真は @equinox79さんが撮影した写真がとても雰囲気を表しています。 また公式 @yacpasia でも前夜祭の写真がアップされています。

LTソン::Tiny

私のエントリでは、ざっくりと取ったメモを残しておきます。メモというよりは、誰が発表したかくらいしかメモっていなくて、内容はほとんどないので、gihyo.jpさんのレポートも合わせて読むと良いと思います。

  • 継続可能な勉強会を支える技術
  • ほっけみりんさんの千葉.pmと自己紹介
  • Apache::LogFormat::Compiler: @kazeburo さん (ベストエルティニストでした)
  • Seleniumで捗る話: @__papix__ さん
  • サンフランシスコのIT企業: @yusukebe さん
  • @tomcha_ さん
  • 猫と色々(BounceHammer / Haineko / Acme::Nyaa / Nekoproxy): @azumakuniyuki さん
  • Excel方眼紙撲滅委員会活動報告2013.9: @tk0miya さん
  • @dameningen さん
  • ふっふはっほ: @dokechin さん
  • 日吉とラーメン: @bayashi さん
  • Mojo::UserAgentかわいい: @turugina さん
  • Mooseとその周辺の今とp5-mop-redux: @tokuhirom さん
  • エンジニア業務と忍術: @tomita さん
  • @tagomoris さん
  • Perl for beginners: @coji さん
  • ギターの話: @itrysd さん
  • PeaTiXの長い一日: @aklaswad さん
  • Social AppのFlash事情: @karupanerura さん
  • Riji使ってみた: @koji_magi さん

 その後

21時までに撤収とのことだったので、LTソン::Tiny発表者が全員発表した後、即座に会場を出ることに。座った席がど真ん中だったので、結局ビールは一缶しか飲めませんでした。 その後、私はHokkaido.pmの人達と合流して、久々(といっても1ヶ月ぶり)ですねといった話をしながら、日吉の定食屋に入って食事をして(アルコールは明日もあるしもういいって感じになっていた)、その後明日に備えて解散しました。

前夜祭、昨年初めて出て、前日から感じるその熱気に魅力を感じて今年もやってきたのですが、いやはや今年もそれを裏切らない熱気でしたね。 今年の「LTソン::Tiny」は、昨年のカジュアルに離席が可能で会場の収容人数も少なかった「LTソン」と比較すると、規模もケタ違いの聴衆が集中して、昨年のLTソンの雰囲気を想定して準備してきた一部の人は面食らったようです。あれは1日目2日目の通常のイベントホールでのトークより人いるから、緊張は数倍だろうなーって思いました。

司会の @uzullaさんとLTソン::Tinyのスタッフとして準備していた皆さん、そして発表者の皆さん、お疲れさまでした。そして前夜祭から楽しい催しありがとうございました。 1日目に続きます。

YAPC::Asia Tokyo 2013 に参加してきました #yapcasia

おがた (@xtetsuji) です。

とりあえず「ブログを書くまでがYAPC」ということで、開催中はバタバタし過ぎて書けなかったブログ記事を徐々に書いていきます。一つのエントリが長くなりすぎると読みづらいかなと思うので、いくつかの記事に分けて書きます。

この記事自体も後で多少加筆修正をしたりすると思います。

自分とYAPCの今まで

このエントリを読んでいる人は分からないかもしれないので、自分とYAPCの関わりを列挙しておきます。

  • YAPC::Asia Tokyo 2013 は 2007年から毎年参加
  • コミュニティへの参加は積極的では無かったけど、YAPC::Asia Tokyo だけは会社の後輩を連れて行くようにしていた
  • 2010年までぼっちが続く。今のような「ぼっち防止企画」とかも無かったし、今よりずっと内気だったので、懇親会も単に「後輩と一緖に食事して帰ってくるだけ」に近かった
  • 2010年に地元北海道帯広市のスカイアークがYAPCのスポンサーになっているのを発見してスカイアークに興味をもつ
  • 2010年のゴールデンウィークの帰省中にスカイアーク会社訪問。@onagatani さんに熱烈歓迎を受けて2011年7月の Hokkaido.pm#5 で地域.pm初デビュー & トーク初デビュー(20分)
  • 主に各地のPerlの勉強会(Hokkaido.pm、Hachioji.pm、PerlBeginnersなど)を中心にトーク経験を積む
  • 在籍している会社を説得して、2011年から協賛スポンサー企業デビュー。今年で3年目
  • 2011年はHokkaido.pm勢のYAPCトークデビューを見て「自分もいつかは」と思う
  • 2012年のYAPC::Asia Tokyo 2012で「モダンmod_perl入門」でYAPCトークデビュー
  • 今年2013年のYAPC::Asia Tokyo 2013で「Apacheの展望とmod_perlの超絶技巧」というトークを発表

 全体的な感想

もうとにかく楽しいといか言いようがないですね。日本のカンファレンスの中で一番面白いのではないかと言っても言い過ぎではないくらい。トーク本編だけでなく、屋台が出ていたりBOFやランチカンファレンスといった企画があったり、様々な工夫がある。

年々楽しくなっている要因は、自分の変化もあるし、そしてYAPCの変化もあるのだと思います。

前述のように2010年までは事実上ぼっち状態だったので、トークに刺激を受けつつも交流という部分ができずにいました。ただ2011年以降は地域.pmやPerlBeginnersやPerl入学式などといった小さな場所で交流を深めて、さらにTwitterなどを使って互いに知った仲間を増やしたりして、「YAPCを同窓会の会場にする」という事を実現していきました。

自分の4年ぼっち経験を回想して、なるべくぼっちの人を作らないように努力したつもりです。Perl入学式やPerl Beginnersで顔を知った数人と、Hokkaido.pmやHachioji.pmの人を対面させたりしたりといった感じ。もちろん、数人をフォローした程度ですし、自分自身の懇親もあったので気が回らなかった部分も多かったように思えます。

またYAPC自体も、ぼっち防止企画やBOFなどの交流企画を続々と投入して、みんなで楽しめるイベントに年々成長していっているなということも感じました。

交流の難しさ

前段で「ぼっち防止対策」の話をしましたが、自分はどうだったかというと、満足半分反省半分といった感じでした。

Twitterや他のブログを読んでいると「日本人は真面目にトーク聴き過ぎるので、Hallwayをもっとすべき」といった話もありました。特に痛感したのは、せっかく来日した海外からのスピーカーと話せなかったこと。自分が英語に対してコンプレックスを持っていることもあって、ここは例年の課題を今年も解決できなかった部分で、大いに反省したいところです。英語力強化というよりも英語を話すことに対しての抵抗感を無くしていかなければならないなと痛感。

自分の場合は、2011年から「地方.pm等の各地の小さいところで顔見知りを作り、YAPCは彼らが一同に集う同窓会的な場所にしよう」としていたのですが、YAPCでしか会えない人もいるわけで、これも正解とも不正解とも言えない難しいところ。今年は例年以上に多くの人と会話をして懇親をしたつもりですが、なかなか交流って難しいと痛感した次第です。

YAPC::Asia のこれから

今年のYAPC::Asia Tokyo 2013のクロージングでの突然の告知、牧さんと櫛井さんのYAPC運営からの卒業。そして「来年のYAPC::Asiaは無い」という話。驚きました。そして今までお疲れさまでした&楽しいイベントを提供してくださってありがとうございます。

ショックではありましたが、Perl入学式やPerlBeginnersなどの初心者イベントの充実、それに地方.pmの増加など日本を取り巻くPerlコミュニティは全国的に盛り上がって来ている感じはします(他の言語でもそうなのかもしれませんが)。

以前だってShibuya.pmからJPAにYAPC::Asia Tokyoの主催が移管されたりといったことがありましたし、今年の壇上で東北の方が「来年は東北でYAPC::Asiaやる!」と言っていたり、今年ほどの規模ではないかもしれませんが、来年もYAPC::Asia *** といったイベントが開かれそうな気はします。1000人以上も参加した今年、きっと誰かが発起してくれるのではないでしょうか。

Perlのこれまでとこれから

だいたい季節の変わり目、3ヶ月に一度くらいはネットで「Perlは終わった言語」というFUDが吹き荒れます。最近では慣れっこになった感もありますが。でももしPerlが本当に終わった言語であれば、なぜYAPC::Asia Tokyoが他のLLカンファレンスを越える日本最大規模のカンファレンスとして年々成長していっているのか。まさにFUDな証拠。

とはいえPerl5には至らない点が諸々あることは事実です。しかし色々な方々によって改善が進んでいて、Perl5.xxのマイナーバージョンは成長していき、Perlコアの不便を補うPerlモジュールもたくさん開発されている。色々な理由でPerlは愛され続けています。

もちろん、後発のLLや他の言語がPerlを参考にして作り出され、当然のようにPerlより良い言語になっていることは確かです。私もRubyの構文で魅力的だなと思う部分は結構あります。私は、あれもこれもと手を広げすぎるとダメなパターンの人間なので、それなりの選別をしつつも、他のプログラム言語もほどよく取り入れていける人になれればいいなと思った次第です。

トークを応募してから採択され、準備をし、9月のYAPC::Asia Tokyo 2013まで色々と準備をしたりしました。8月は少し忙しかったし9月のYAPC直前までは体調不良で結構つらかった。でも3日間のYAPCは疲れを吹き飛ばすくらいの面白さだったし、終わってみると一瞬だったなって感じます。時が過ぎるのは早いです。今年もあと3ヶ月、色々な目標を立てて実現しこうと思います。そしてまだ幻の「YAPC::Asia *** 2014」に向けて…。

個別の日程の感想や自分のトークの総括といった内容は、上述の通り、別エントリで書こうと思います。

YAPC::Asia Tokyo 2013 で「mod_perlの展望とApacheの超絶技巧」をトークします #yapcasia

こんにちは、おがた (@xtetsuji) です。

2013年9月19日〜21日まで慶応大学日吉キャンパスで行われる YAPC::Asia Tokyo 2013 でトーク「mod_perlの展望とApacheの超絶技巧」をさせていただけることになりました。

Apache httpd server (以下Apache) 上で動作して、長らくPerlのウェブサーバ高速化環境として欠かせなかったmod_perl。今では新たな技術が出てきてその役割が少しずつ減っているように感じる昨今ですが、そのmod_perlのこれからの展望について話す予定です。

昨年のYAPC::Asia Tokyo 2012では「モダンmod_perl入門」というトークをさせていただきましたが、そちらがmod_perlの本質のご紹介とその実践であれば、今年はより思想的かつ哲学的な話、具体的に言えばmod_perlの未来といった話をしようと考えています。もちろん、コードや動くものが出てこないのは楽しくないので、後半半分くらいは「超絶技巧」と題して「そんなことまでApache+mod_perlでやるのか!」と人を驚かせるような事を披露する予定です(が、2013年8月7日現在構想段階です)。

チケット発売は8月11日(日曜日)までです。私は2007年から毎年参加していますが、Perlをメイン言語にしないプログラマの方も絶対に楽しめる3日間です。この規模のイベントにしては5000円は安い!しかも学生は無料(申し込みは8月11日までに必要です)。ぜひ会場で会いましょう!

質問など有りましたら、Twitter @xtetsujiなどへお気軽にどうぞ。