CakeFest2010@シカゴで発表してきました。

あれから1週間経ってしまいましたが、CakeFest2010@Chicagoで発表してきました。

なぜ発表しようと思ったかは、「CakeFest2010で発表してきます」に書きました。



今回はカンファレンス1日目の午前中に1時間のセッション枠を貰って、MongoDBをCakePHPから使う方法というタイトルで発表。
内容は前半にMongoDBとは何か、何がよいのか、ドキュメント指向とは、という内容を話し、後半にPHPPecl Mongoの話と、CakePHPからMongoDBを扱うデータソースの話をしました。このデータソースは以前自分が開発したもので、今はAndyさんと一緒に開発してます。

CakePHPからMongoDBを扱うという話の前に、軽くデータソースの利点や必要なメソッドを話し、最後にデモを2つやりました。デモは簡単なCRUDを実現する画面のデモと、削除履歴を管理するデモ。
削除履歴のデモは、beforeDeleteでMySQLから対象削除レコードを取得して、MongoDBの1コレクション(テーブル)に保存するというもの。同一コレクションに何でも保存できるMongoDBのドキュメントDBの特性を生かして、管理は1コレクションでOK、あとから複雑な検索をして該当削除レコードの履歴を参照できるという利点を説明。
これをMySQLでやろうとすると、全テーブルのスキーマをコピーして削除履歴を保存していくか、一つの削除履歴テーブルを用意して1カラムにシリアライズした削除対象レコードデータを入れるかの方法があるけど、どちらも問題を抱えている(スキーマ管理の煩雑性、シリアライズデータの検索の難しさ)という話をしました。


最初の時点で何人MongoDBを使ってるかという質問をしたら、70人中6人ぐらいだったので、今回の資料は丁度良かったです。質問も2つほどきましたが、何を質問しているかは理解できたのでほっとしました。ただ受け答えがうまくできなかったけど(model::_schema使わない理由を質問されたけど、その理由を忘れてしまってたからw)。


今回思ったのは、1時間のセッションだと1時間の発表練習が必要だということ。これが思った以上に大変。日本語なら別に練習しなくてもいいんだけど。それとデモをやるので時間が足りない可能性も考慮しないといけない。さらに当日は僕の前に10分ぐらい色々なものをプレゼントする企画が入ってて、結局発表時間は50分ぐらいになった。前日の夜中に練習したときはデモを含めて1時間かかってたので、優先度の低いデモははずしておいて良かったです。あと本番は余裕がなくなるためか、思った以上に早く進行したのもあって時間内に終われました。

本番直前の1時間が一番緊張して、本番が始まったらそこまで緊張しなくなりました。もう覚えたことをひたすら話すだけのロボットのようになってました。もうちょっと感情を込めて発表できたら素晴らしかったんだけど、そこまでの余裕はなかった。ビデオはそのうち完全版がアップされる予定なので、その時にまた追記します。


感想

今回は安藤さん、岸田さんも参加してて安心感が違いました。さらに去年のCakeFestで会った人がいたことや、ワークショップ初日の夜の飲み会に参加してMarkStoryさんや他の参加者の人と面識を持てたこともあって、アウェー感があまりなかったのが良かったです(次の日は二日酔いで午前中をつぶしたけどw)
僕の発表に期待してるよと言ってくれたCakeFestスタッフの方にも感謝。ただ有料のイベントなのでその期待に答えなければというプレッシャーが半端じゃなかったです。
発表前に逃げ出したくなって、Twitterで呟いたら、日本のみんなから「がんばれ!」コールが・・・これにはかなり助けられました、ありがとう。サマーウォーズの気分が味わえましたw

発表が終わったあと、「良いプレゼンだったよ」とみんなが気軽に声をかけてくれたことに感動して泣きそうになりました。IRCでも良かったよと言ってもらえて、ここまで来て良かったと思った。僕の席まで質問しに来てくれる人もいたし、このデータソースを使って、http://www.cakefesttweets.com/
こんなサイトまで立ち上げている人がいることを知って感動した。


まだまだ英語が出来ないのを痛感してます。自分の言いたいことはある程度言えるようになったけど、相手が何を言ってるか分からないことが多い。聞いてるフリをするのだけはうまくなったけど・・・orz
ただ、世界の壁は高いと思ってたけど、そんなに英語での発表は敷居が高くない。スライド作って、何を言うか考えてざっくり暗記してひたすら練習するだけ(アクセントと発音は気をつけました、ちょっとずれるだけで理解してもらえないので)
発表するものがあるなら、それが旬のうちに発表したほうが良いです。チャンスはすぐに逃げていきます。発表者登録のサブミットボタンを押すのを躊躇することもありますが、最後は何も考えずに細かいことはいいんだよと思って、とりあえず押してみると世界が変わるかもしれません。その前に、この記事を読むことをオススメします。僕はこの記事に勇気付けられました。
「酷い英語をもっとお願いします」
http://gihyo.jp/lifestyle/column/01/language/2010/0419



安藤さんから暖かいお言葉を頂いて感激してます。
http://blog.candycane.jp/archives/351

僕がカンファレンスに出ているさなか、同時に海外に討って出て、
見事に殻を破ったのがcakephperさんです。
僕も彼も帰国子女とか国際結婚とかそういう海外に縁があるわけでもなく、ふつうのエンジニアでしたが
去年と今年のCakeFestはものすごくエンジョイできました。
そしてcakephper さんは見事スピーカーとしてデビューする快挙を果たしました!
僕の知る範囲では海外のPHPのイベントで日本人がスピーカーになったのは初めての事だと思います。
(僕に出来るのは動画を編集する事くらいです。これも楽しいですけど。) 

実はここまで来れたのもCakePHPと出会って安藤さんと知り合いになれたことが大きかった。彼は常に世界とのコネクションを意識していて、僕はそこについていっただけ。去年のCakeFestも安藤さんが行かなかったら行ってなかったかもしれない。僕の中で勝手にメンターになってます。ありがとうございます!



CakeFestは海外で行くのが大変だけど、そんな気分が気軽に味わえるPHPMatsuriがあるので、興味のある方は是非参加ください!
http://2010.phpmatsuri.net/



下記にCakeFest2010の発表資料などがまとまっています。
http://bakery.cakephp.org/articles/view/cakefest-2010-thats-a-wrap
http://josediazgonzalez.com/2010/09/04/cakefest-conference-notes/


写真など
http://www.flickr.com/photos/cakefest2010_ichikaway/