RubyConf2007 での発表、無事終了しました

今年の RubyConf は、午後からは 2トラック (発表じゃないのも入れると厳密には 3トラック) になっていましたが、AP4R は初日の午後 2つ目のコマでした。大きいほうの Room1 です。
がらがらだったらどうしようと思っていましたが、幸いなことに席はほぼ埋まり、立ち見のひとも 10人くらいいる感じでした。

#発表後のコマでとなりの人気発表 (Ryan Davis のやつ) にほとんどひとを持ってかれたさみしい雰囲気のなかでの発表もあったので、運がよかったです。


なんどか練習はしてたんですが、直前の Talbott さんの発表を聞いてるうちにだんだんと緊張感も高まってきました。というか、そのかたわらでデモのデバッグをあわててしてたり...

しかも、うっかりプロジェクタ用のアダプタを見失ってしまって Talbott に借りてみたりと (あとからズボンのポッケを探すとでてきた...orz)、発表直前までドタバタしてましたが、なしくずし的に発表を開始。


とくに誰もはじめてください、と言わないのでこのへんどうしていいのかあまりよくわからず、"Are we ready to start?" と問いかけて静かになったあたりではじめました。

自己紹介で新婚なんですよーと話したらみんなが拍手で迎えてくれました。nice なひとたちです。いい感じに気持ちもほぐれました♪


発表は、まず自分が Overview を話して、そのあと各論を id:ita-wasa が話しました。
あとで資料は公開しますが、Overview はだいたいこんな内容です。

  • What is AP4R ?
  • Typical use cases of AP4R
  • What are advantages of AP4R ?
  • Case examples


AP4R を開発するに至った背景にはじまり、ウリ文句として、軽量さと堅牢さをあげました。


また、今回は実際に運用にはいっている事例も含めて紹介できたので (イギリスのオンラインゲームとアメリカのモバイルサービス)、よりリアルに使い所が伝わったんじゃないかと思います。

ところどころ笑いや拍手をもらいながら、けっこう落ち着いて話すことができました。


途中、Ruby会議のときと同様に Coffee break のネタをはさみました。今回もマスコット話です。和風バージョンでした。アメリカでもウケるかどうかかなり不安でしたが、ちゃんと笑ってもらえました。一安心です。でもなぜか フォクすけ出したときが一番笑いが大きかったかも?


そんなこんなで Overview を終え、id:ita-wasa にバトンタッチ。内容としては、

  • Lightweight について
  • デモ
  • Robust について
  • その他
  • まとめ


デモの部分では、id:ita-wasa が話を進めながら、自分がその場で同期アプリを AP4R を使って非同期化するというものでした。直前の Talbott なんかはものすごい勢いで話しながらこれまたものすごい勢いでコードをいじってましたが、自分らにはこれが限界...

でも、スムーズにデモも見せられて、うまいこと伝わったみたいです。よかったよかった。


最後の難関は質疑応答でした。やっぱりなかなか聞き取れないものですね。聴衆にもおおいにたすけられながらなんとかこなしました。

以下、Q&A 時などに受けた質問です。記憶が定かではないので、順番はばらばらです。
あと、適当にあとで声をかけられたときの会話分も含んでいます。


Q. Twisted 知ってる?
A. Python の 非同期 IO フレームワークなので、
AP4R とはカテゴリーが違うと回答


Q. Ruby 以外からも使える?
A. Rails との依存性はない
できるけど、まだシンプルなAPIは用意しきれていない、もうちょっと待って


Q. AP4R 以外のメッセージングキューって他になにがある?
A. AP4R のもとになっている reliable-msg、
ActiveMessaging はメッセージングサーバではなく、クライアントのみ


Q. 大量のメッセージがきたとき、ちゃんと処理できるのか?
A. よくわからなかったので、あとでにしてもらった
Q&A終了後、Blocking って put なの?、いや get だよ、で終り


Q. グラフはどうやって表示したの?
A. Gruff ライブラリ


Q. Stomp には対応?
A. 近い将来実装します、と回答


Q. 1回失敗したあと、別のクライアントに送りたい、できる?
A. 今はできない、でも順番に投げるように修正するくらいなら簡単にできるよ
dispatcher を適当にいじくってね、と


Q. BDD/TDD のサポートは興味深い、どうやってるの?
A. スタブの提供と、プロセス起動/終了用のスクリプト


Q. メッセージのは重複はどう防ぐの?
A. アプリケーションに依存する部分なのでライブラリとしてはサポートしていない
管理テーブルにチェック用のカラムは用意してある



発表終了後、発表よかったよーとかいろんなひとに声をかけてもらえて嬉しかったです。半分くらいはリップサービスかもしれませんが...
あと、Thoughtworks のひとにトイレで声かけられたりもしました。 (^^;


端からみててどう見えるかはわからなかったのですが、ちょうど角谷さんのエントリーがあったので、あわせて読んでいただけるとよいと思います。

  • RubyConfはじまったな - 角谷HTML化計画 (2007-11-02)

http://kakutani.com/20071102.html#p01


AP4R guysのふたりは発表はリスクヘッジにカンペを持って参戦。
Q&Aで結構な数の質問を受けたり、id:kiwamuがトイレでThoughtworkerに質問されたりしていたので、それなりの反応はあったみたい(マスコットの名前がまじろうじゃなかったw)。私も間違って声かけられたし(「君のトラックに居たよ。良い発表だったね」とか言われたよ。よかったねw)。

直接関係ないのに私の名前まで出してくれてありがとうございました(そしたら過分にも聴衆から拍手を受けたり。みんなniceだね)。


発表前はいろいろ不安もありましたが、終わってみればとても楽しい時間でした。AP4R をいろんなひとに知ってもらうよい機会になったとともに、自分たちにとってもよい経験になりました。


発表までにいたるいろんなサポートをしてくれた方に感謝の気持ちでいっぱいです。
ありがとうございました。




2007.11.06 追記:

帰りにシャーロットの空港を歩いてたら、突然 「AP4R guys?」と声をかけられてびっくり!

資料を下記サイトに公開しました。

https://rubyforge.org/docman/view.php/1765/2806/AP4R_on_RubyConf2007.pdf

http://www.slideshare.net/kiwamu/ap4r-on-rubyconf2007