Google App Engine Hackathon in Kyoto参加してきた

忘れないうちに感想を。

  • 約30人くらいが4人程度のチームに分かれて1日中プログラミングをするという雰囲気がすごい良かった!
  • 保守性を考えずにコードを書きまくるのは仕事ではできない事なのでエキサイティング!publicフィールドの嵐(笑)
  • 久々にペアプログラミングした。Eclipseの使い方で知らないものがあったので収穫♪
  • 事前準備超重要
    • 2日前に事前MTGを行い、モデリング、画面設計の再確認、仕様の再確認を行った
    • 当日スムーズに行くための事前課題をやってきた。そのおかげで、当日誰かが「待ち」になることはなかった!
  • フレームワークはSlim3を使った。Slim3はさすがGAE用に作られているだけあって使いやすかった。変にはまる事無くスムーズに開発できたのはかなり大きかった。
  • 「役に立つもの」にフォーカスしすぎた。もっと「面白い」要素を入れるべきだった。
    • Javaチームに比べると、JRubyPythonPHP(実はPHP使っていないw)チームは技術的要素、笑える要素を入れて楽しんでいた印象。
  • Java以外のチームのPCのMac率がかなり高かった。
  • Hackathonというネーミングから敷居の高さを感じるが、実際は最近プログラミングしていないなという方や、普段の業務はWEB系じゃないんだけど、ちょっとやってみたいという方も参加できる結構フランクなイベント。大学生も何人かいた。平均年齢25歳という噂も。
  • Googleの人が3人来ていた。喋っている内容が数式とかPythonではなく、日本語だったので理解出来た。
  • プレゼンは笑い重要。見た目のインパクト重要。
  • Google App EngineのTシャツ欲しかった。。
  • 京都は岡山だと言うことが分かった。
  • ニコニコ動画の生放送があった。現場でいると、楽しいというよりハラハラドキドキ。コメントちょっと怖い。
  • 終わった後の居酒屋でのビールがすごい美味しかった!!!


とまぁこんな感じでしょうか。
最後に、今回プログラミングしている最中に一回だけはまったことがあったのでそれをメモしておきます。
GAEで多対多を実現しようとすると、関連先のキーをSetなどのコレクションで保持しておく必要があります。で、GAEのドキュメントにはこのようにあります。

Key 値を使用して多対多関係をモデリングする場合、関係の両側を管理するのはアプリケーション側の役目であることにご注意ください。

つまり、Keyからオブジェクトに変換する部分は自分でやってね、ということです。で、私は次のようなコードを書きました。

List<Xxx> list = pm.getObjectsById(keySet);

pmってのはPersistenceManagerです。これを実行しても一向にオブジェクトは取得できず、「そんなキーのオブジェクトねぇよ!」というエラーが出てしまいます。
実はこれ、使用するAPIが違っていました。ひがさんのblogにこれの解決策があります。
http://d.hatena.ne.jp/higayasuo/20090522/1242963317
あまりにもはまってしまってGoogleの方に質問して教えていただきましたw。あの時は本当に助かりました。ありがとうございました。