wiki:DjangoCon2008

2008/09/06-07 にマウンテンビューのGoogle本社で開催されたDjangoConに行ってきました。 -- ymasuda 2008/09/09

9/6

オフィシャルホテルのAvanteを取れなかったので、Caltrainで隣の駅にあたるSan Antonioに宿をとりました。San Antonioにはショッピングセンターがあって、そこから Google本社近くまでバスが出ています。Google本社は意外にこぢんまりとした雰囲気でした。StanfordとかMITみたいなだだっ広さをイメージしていたんですが、どちらかというとけいはんなにあるPanasonicの中央研究所とか、有明に点在するベンチャーセンターみたいな感じ。休日なので、とても静かでした。会場には早めについてしまったので、周囲を少し散歩。Adrian達が到着するのが見えたのでついていきました。会場はGoogleplexの最初のオフィス、building 42から少し離れたbuilding 40でした。

受付中に、Adrianさんのところに行って挨拶。PyConで挨拶したのを覚えてくれていました。嬉しい!「この間の約束通り本を持ってきました」と、「標準Django」をプレゼント。喜んでもらえました。内容がSVN 7000番台なので、1.0版の改訂もしたいですね、という話をしてきました。

会場は小さなホールで、Googleのイベントらしく、フランク&スマートな雰囲気を演出していました。出席者は20代後半くらいが中心のようですが、白髪(で当然のようにヒゲもじゃ)の年配のエンジニアも結構いました。人参コーラやらカップケーキやらを手に色々と話しあっています。

最初のセッションは Guido さんによるキーノートスピーチ。「今日はPython3000のことについて話に来たんじゃないんだよ」とか「GenshiよりDjango Templateの方が好きだね」とか、軽いジャブからスタート。テーマはGoogle App Engineで、GAEがHTTP Handlingに特化して開発されていること、APIの簡単さとスケールすることを主眼に置いて設計されていることを強調していました。JOINのないBigTableをストレージバックエンドに使うのも、一貫性とレスポンスタイムを保証するための選択なんですね。「正規化するな、JOIN済みのでっかいテーブルを作れ」とアドバイス(?)していました。

GAEの一部である webapp は 0.96 のテンプレートシステムを使っています。 GAE の上では、Django の URL ディスパッチ、リクエスト・レスポンスオブジェクト、ビュー、フォーム、テンプレートエンジンを使えます。今のところ、Django 1.0 は自分でパッケージをアップロードすれば使える状態ですが、GAEの制限 (1000ファイル、ファイルあたり1.0Mbytesまで)のため、1.0 はそのままでは使えません。 i18n とか gis を削って、 380 ファイル、 500k 余りの zip ファイルを作成して解決していました。GAEの将来についても少し触れ、次の言語のサポート(言語名は言わなかったと思います)と、 バッチ処理 について言及していました。これでバッチコンパイルができるようになるかもしれません。woofoo!

次のセッションでは、Newforms-Admin のトラックに潜り込みました。今回色々なセッションで発表されたDjangoアプリに共通だったのは、Adminのカスタマイズ。バックヤード用にAjaxを使ったインタフェースを構築するケースが目に付きました。Newforms-Adminは、単にマニピュレータの黒魔術から脱却するだけでなく、Adminのカスタマイズ性向上の第一歩で(個人的には、まだまだ使いにくいのですが...)、ユーザの工夫でまだまだ進化の余地があると思いました。

ランチタイムのセッションでは Adrian さんが Django の三年半にわたる過去を振り返りました。最初のチェックインは 2003/11, テンプレートの機能だけだったようです。 初期のデータモデルは SQLAlchemy のように、フィールドをリストアップするスタイル。その後、メタクラスを使う今のモデルに変更されました。今になって思えば、大分APIが変更されていますよね。(もう、変更されないよねぇ?)

次のセッションは Malcolm さんによる Django ORM の解説。 モデル-マネジャ-マネジャメソッド-QuerySet?-Query の連携について詳しい説明。究極的には、ストレージはRDBMSでなくても対応できるような気がしてきました(BigTable?? Cache? yes!) 今後の課題として、DBの実装にカップリングしない集約メソッド(sumとかcountとかavgとか)を挙げていました。

その次のセッションは、GeoDjangoにするか Pinaxにするか迷ったのですがGeoDjango。GeoDjangoは1.0にぎりぎり滑り込んだ とても熱い ブランチ、 gis で、位置情報を扱うためのパッケージです。PostGISで使えるような位置や距離のクエリのサポートや、Google Mapsのようなマップとのマッシュアップで必要な座標系やデータフォーマットのサポート、GEOSとかGDALのようなパッケージへのバインディングをサポートしています。Admin を拡張して、Yahoo mapを使ってポリゴンデータを登録するデモが圧巻でした。素晴らしい。1.0 登場という大イベントがなければ、gis ブランチは間違いなくこの一年でDjangoにもたらされた進歩の中で最も素晴らしいものの一つです。

初日のラストは、Why I hate Django. 要するに「誉め殺し」ですね。。。「Django developers=boys band疑惑」とか、「マスコットがない」とか「こんなバージョンが低すぎるソフトウェア使えないよ」とか、スライドだけ眺めていても笑える、楽しいトークでした。

1日目が終わった後は、近くのバーでリリースパーティ。最後まで居られなかったのですが、おいしいビールと水牛バーガー(???)を堪能してきました。

9/7

2日目はパネルセッションが中心で、会話にあまりついていけません... 素晴らしかったのは、 Django on Jython (本当に動いてました。wow!)と、Schema-evolution。Lightning Talkの枠はとれませんでした。残念。

最後のセッションで、隣に座っている人がずっと気になっていました。多分 Malcolm さんだと思うんだけどシャツの色が違うんだよな... と思っていたら Malcolm さんでした! Malcolm さんも気にしてくださっていたのでした(この人、和訳ドキュメントの Yasushi だよな、と思っていて、私が席を外したときにDoc-Refactor対応作業中の画面を見て確認したようです)nice to meet!! すでに Djangoユーザの半数以上は非英語圏の人たち で、翻訳はとても素晴らしいことだ、と絶賛してくれました。嬉しいね!Avanteからキャブで帰るつもりだったので、Malcolm さんの友達の車に乗せてもらいました。

おみやげ

初日の午後に開かれた Django Software Foundation の寄付オークションでGoogle のロゴ入り手帳を落札してきました。 Django guys のサインいり です。

Attachments