48JIGEN *Reloaded*

2010 PHPMatsuriに参加してきました。

2010/10/03

cake

10/2,3の2日間に都内で行われた開発合宿(PHPMatsuri)に参加してきました。

開発コンテストに参加して、簡単なブックマーク数取得のスクリプトしか出来なかったのだけど、結果的にドキュメント賞の次点の賞をいただきました。

自己評価ではとてもドキュメント賞に値する内容を用意できなかったと反省しているところなので、受賞させていただいたことに戸惑いを感じていますが、結局何が出来て何が出来なかったのか、状況を整理するために、それから準備をして下さったスタッフの皆さんに大きな感謝をお伝えしたく、記事にまとめてみることにします。

PHPMatsuriとは

finale

今年で2回目を迎えるハッカソンイベント。ハッカソンとは、Hack(ハック) + Marathon(マラソン)の略から来た言葉だそうです。Googleのこんな例とかMovableTypeのこんな例とか、開発者がいる場所ならどこでも行われています。

昨年は「Cake Matsuri TOKYO 2009」という名称で渋谷での開催でしたが、今年は名前を「PHP Matsuri」に変えて、扱う対象のPHPフレームワークもCakePHPに限定せず、SymfonyやLithiumの界隈の方々も積極的に参加可能に。昨年よりも多くのコアデベロッパーを海外から呼んで、内容面でもスケールアップした大掛かりなイベントです。昨年の盛況の様子はこちらとかこちらとか。

今回も、海外含め様々な地域から開発者が集まってきました。(元道民としては北海道がサイズ的にやや虐げられているのが気になりますが、恐らく気のせいだと思います)
map

今年のPHPMatsuriのスケジュールは、まず1日目にCakePHP, Symfony, LithiumなどのPHPの主なフレームワークのリードデベロッパーによる講演とワークショップや、様々な開発事例の紹介などコンテンツ満載の企画が終日行われました。これらのセッションは任意参加なので、いつでも聴けるしいつでも抜けることができます。別スペースでは開発用のスペースが設けられていて、2日目の午後に始まる開発コンテストに向けて参加者が黙々と開発の作業を進められます。

参加者にとっては、好きなセッションに参加して自分の見識を広げてスキルを磨くもよし、開発コンテストに向けて開発に打ち込むもよし、という開発に没頭する上でこれ以上ない時間を過ごすことになります。

コンテストまでに与えられる時間は2日目の昼まで。その時間までの時間の使い方は参加者の自由です。ビールを飲んでコードを書く人がいたり、徹夜で開発する人多数発生したり(今回は数十名が徹夜だったと聞いています)。

Redbullガールがやってきたり。
lady

夜更けまでPS3でバンド練習に明け暮れる猛者が現れたり。(写真は確か午前3時くらい)
band

何でもござれ。僕はといえば、夜明けを感じる午前5時30分くらいに、集中力の限界を感じてホテルの部屋に戻って10時まで寝てました。とにかく、思い思いに時間を過ごします。そして、2日目午後の開発コンテストで、LT(Lightning Talk)と呼ばれる開発したものの発表をみっちり行って、夕方に終了、お疲れ様でしたー!という流れです。

参加の経緯とか

twitterで「PHPMatsuri」っていうキーワードを見かけたことがキッカケでした。

参加の理由は2つあって、泊りがけの開発合宿に参加してみたかったということが1つ。それから、自己紹介のページには書いてあるけど、日本に翻訳されていない海外のニュースでけっこう面白い情報が多くあるし、その逆のケースも同じように多くあるっていう現状認識を僕は日頃からしています。そういう環境の中で生まれている、英語圏の人々と非英語圏の人々の情報へのリーチ(手の届きやすさ)の格差に問題があるって漠然と感じているんだけど、その問題意識に対して技術的なアプローチから解決する方法を模索してみるために、合宿に参加してまとまった時間をつくって考えてみたかった、というのが2つ目の理由でした。

発表(Lightning Talk)の様子、つくったものとその結果

presentation

2日間を通してお世話になった@tonextoneさんに撮っていただいた、発表の風景はこんな感じ(会場内が暗かったので画像が暗くなっています)。右手に映ってる幽霊みたいなのが僕です。Lightning talkのUstream録画はここで見れます。9分~13分の間の4分間で話しています。技術的に難しい話はできないしてないし、技術的な内容は全然含んでいないので、興味半分で見てみてやってもらえると嬉しいです。

作ったものは、ここにアップロードしてあります。ツールとも言えない何かができてしまったので、まともなツールの命名もできずに、「翻訳した方がいい文書かどうかを調べるサンプルをつくりました。」っていう「甘栗むいちゃいました」的な斬新なタイトルにしてみました。

どういうツールかについては、上のUSTでも説明していてそちらの方がわかりやすいと思います。言葉で簡単に説明させてもらうなら、あるURLについて、ソーシャルブックマークサイト(はてぶ、およびdelicious)でどの程度人気のあるコンテンツかを調べるためのツールです。

作ったものを少しだけ解説

※ここから、ツールの使い方と仕組みについて、少しだけ書きます。技術的な話になるので、興味のない方は飛ばして読んでください。
たとえば、以下のリンクは2010/10/02にdel.icio.usでcakephpタグがついていたpopularな(ブックマークしたユーザ数が多い)ブックマークのリンク一覧です。(説明のために5件だけに抜粋)

http://net.tutsplus.com/tutorials/php/how-to-use-cakephps-access-control-lists/
http://builder.japan.zdnet.com/member/u333174/blog/2010/07/11/entry_27041038/
http://www.pseudocoder.com/archives/2009/03/17/8-ways-to-speed-up-cakephp-apps/
http://h2o-space.com/blog/2268
http://builder.japan.zdnet.com/member/u333174/blog/2010/07/11/entry_27041038/?ref=rss

このテキストを全てコピーして、今回作ったツールに貼り付けて、テキストエリアの横の「go」ボタンを押して、画面下部にブックマーク情報の取得結果が現れるのを待ってみてください。Firefoxで動作確認しました。

sample

見てもらえるとわかりますが、全く何の工夫もない、本当に簡単なAJAXの実装です。使ってるライブラリは2つだけ(del.icio.usへのアクセス用にJSON.php、処理完了時のHighlight画面表示用にSimpleJS)で、サーバと通信するAJAXにいたっては大昔に学習用に自前で書いた本当に不完全な簡易なXMLHttpRequestクラスの処理スクリプトになっているので、コードを覗けばどれくらい不十分なことをやっているかはすぐにわかっていただけるかと思います。

実際にコードを修正するために手を動かした時間は3~4時間くらい。1日目のセッションが予想していた以上に面白いものが多くてセッションやワークショップにばかり参加して1日目の大部分の時間を使ってしまって、結局作業に入れたのは深夜からでした。前に作ったコードのリファクタリングっていう、作業の部類としては簡単な部類に入る作業を血眼で必死こいて手を動かしてたわけだけど、最近仕事でプログラムを書いていない身としては、触っていて夢中になれる時間を過ごせて、とても楽しいものがありました。この充実感が得られただけでも参加してよかったと思う。

そして迎えた2日目の発表の時間は、徹夜上がり多数、ほぼ全員が寝不足というハッカソン明けの状況で総勢33名の発表者が3時間ぶっつづけ(※途中休憩あり)でLTを行うという、聴く側も話す側も必死のイベントで、独特な雰囲気だったことも強く印象に残ってます。しかしながら、どの発表もExcitingだったりInspirefulだったり、もっと詳しく掘り下げて話を聞きたい発表ばかりでした。皆さん本当にすごかった。

prize

最後に、開発コンテストの受賞者発表があって、ありがたくドキュメント賞次点を頂くの図。みんなくったくたな様子がにじみ出ている写真。

全体の雑感

とにかく、スタッフの皆さんお疲れ様でした!僕にとって初めてのハッカソンイベントだったけど、最高に楽しい時間を過ごすことができました。あの参加者の人数を限られたスタッフで対応することの大変さは想像できません。おまけに、主催されている@yandoさんはアメリカからイベントをオーガナイズされていて、当日までスタッフとは顔を合わせることができなかったとか。準備段階から当日後片付けまで、めちゃくちゃハードだったと思います。とにかくお疲れ様でした。良い経験をさせていただいて、本当にありがとうございました。

その他少し感じたことなど。

結局どうだったか

PHPを使ってWeb開発したことがある/している/今後したい方なら参加して絶対損はしないイベントだと感じました。参加費用で約2万円かかってしまうけれど、開発に集中できる時間、フレームワークのコアデベロッパーのワークショップに参加できる機会、他の開発者の方から得られる刺激等、費用以上の価値を必ず感じることができると思います。

個人的には、@cakephperさんの翻訳つきで行われたCakePHPのコアデベロッパーのGrahamのワークショップが勉強になりました。数年前にこのブログ(48JIGEN)を構築するのに使うフレームワークを探していてCakePHPと出会ったのだけど、フレームワークを使う上での常識的なところはweb上のリソースだけを頼りにしていて、フレームワークを使う上での定番や常識を抑えることができているか大きな不安を感じていました。

そんな中Grahamのワークショップに参加してみて、Grahamが普段どうMVCを書いているかとか、メソッドに対してどういう考え方をしているかとかを直接聞いて、自分の理解と同じ部分や違う部分を確認する作業ができたのが、とてもためになったし楽しかったです。(同時に、精力的に活動されている@cakephperさんの考え方なんかも聞けて大変勉強になりました。翻訳どうもありがとうございました!)

ごはん。

期待してた以上に、全然おいしかったです。スタッフの方の宿泊地の選定力の勝利です。開発で部屋にこもって作業する以上、おいしいごはんは超重要なのです。写真は、1日目のお昼に頂いたオムハヤシ。うまうまでした。
lunch

英語を使う試み

PHPMatsuriの公用語は当然日本語だったけど、1日目の最初のセッションでお話されていたよしおかひろたかさんは、日本語も交えながらだけど英語で発表をされていたのが印象に残っています。よしおかさんご自身のブログで読んだ、この一言がその意味です。

日本のみなさんには、細かいところではなく、わたしが「英語で発表したという事実」をメッセージとした。

よしおかさんの一番手の発表がPHPMatusriに与えた影響はめちゃくちゃ大きかったと思います。この発表の影響で、今回のPHPMatsuriの参加者からは、少しでも英語を使っていこうという意志が強く見られることになりました。

多くの皆さんのプレゼン資料が英語化されていたり、自己紹介だけ英語でやるっていう人が出てきたりとか。PHPMatsuri後、#phpmatsuriのハッシュタグを追いかけてみると英語についてのtweetが多くみられていて、@tfmagicianさんと情報交換させてもらったりだとか。エンジニアにとっての英語利用への関心の高さを改めて感じさせられました。

今回のPHPMatsuriには普段英語を使わない環境にいる方も多数参加されていたと思うのだけど、そんな方々が英語にチャレンジする気概に溢れたイベントに参加してみて、僕が普段感じている問題意識が少し共感されているような気がして、参加者みんなのそんな態度にとても勇気づけられた、っていうのが今回参加した一番大きいところだったかもしれない。

おまけ

1日目の夜中に近くで開発していた方が飲んでいたコカコーラ。最近こんな柄になってるんだって知らなかったけど、今回のPHPMatsuriに参加した気分を表しているようで、思わず写真を撮らせてもらいました。

開発ってHAPPYなことだと信じてやりきった2日間。最高でした。皆さん、どうもありがとうございました!
happy

メエエエエェェェェェ!

このエントリーをはてなブックマークに追加

Related Posts

TDD Boot Camp in Tokyo 1.5 に参加しました

イスラエルに行ってきました。(前編)

PHPとアジャイル開発の勉強会を開催しました

 

about me

@remore is a software engineer, weekend contrabassist, and occasional public speaker. Read more