2007年6月17日日曜日

Google Developers Day に行って参りました.

5月31日に、Google Developers Day に行って参りましたのでレポートします。少し前の話ですが。

10時から20時まで、丸1日GoogleDayでした。1000人くらい技術者が来てました。


Google Developers Day 2007


写真を沢山撮影しました。(モバshot☆にあります。)

また、詳細や資料がこちらで閲覧できます。


まず午前中の様子からです。


基調講演 by Greg Stein


まずは、Googleで、Engineering Managerとして、オープンソースの促進をするグレッグスタインがキーノートを務めました。この方はApachの議長でもあります。モバshot☆や、下の方にも写真がありますが、長髪のグレッグは、異様なオーラを発揮していました。しかし落ち着いた、聞きとりやすい英語でプレゼンターとして一流。

オープンソースと、グーグルにとってのその大切さを丁寧に説明しました。

Googleのソースも8割以上は公開して良い、と言い切り、自分たちがソースを公開していくことで、ウェブの世界を変化させてきた、という自負と、

これからもそうでありたい、というオープンソースへの意気込みはすごい説得力でした。午前中のハイライトでした。


ゲストスピーチby はてな CTO 伊藤 直也


GoogleのAPIを用いたはてなのサービスの紹介でしたが、既存サービスの紹介でしたので、インパクト薄かったです。

ただ、はてなの伊藤氏曰く、GoogleのAPIの優れている点は、


  • 個人で作成するのには難しい規模である。

  • オープンである。

  • プログラマブル (開発者が使ってみよう、という気になりやすい)。

  • 速く、安定している。

  • の4点。こちらはラボでもAPIを作成しようとしているので、参考になりました。


    Google最新情報 byGoogle シニア プロダクト マネージャー


    すぐに話題になったGoogleGearGoogle Mappletの紹介がありました。

    個人的にはMappletで色々開発ネタが浮かんできたので面白かったです。


    この後、昼飯。(当然用意してありました。。。)

    そういえば、バランスボールが会場の近くに転がってました。


    有名なバランスボールが。。


    午後からは以下の4つのセッションに参加しました。

    これらの様子も前述のこちらで確認できます。


    GoogleMaps API Introduction by Chirs Atenasio


    GoogleMapsは普段からコード書いたりしているので、知っていることが多かったです。皆さんも知っているでしょうから割愛します。プレゼン資料がこちらにアップしてあります。

    フォームにコードを書き、すぐに走らせる、というデモの見せ方は非常に参考になりました。

    僕もデモの方法が課題の一つですので。


    KML -Geographical Format For Earth & Maps by Bruno Bowden


    KMLセッション


    Google EarthのKMLを実際に編集するデモから始め、KMLを使用して情報をEarth上に反映する方法がテーマでした。

    印象に残ったのは、ユーザに情報を登録してもらうプラットフォーム作成に力を入れている部分です。

    モバイルにおける位置情報取得、絵文字のプラットフォーム作成が最近のテーマでもあります。

    ユーザに情報を登録させる方法については、ノイズ除去、データ形式が同じく課題です。

    GoogleEarthにおけるデータ形式は、 OGC, GML という標準化機構に添う形にしたい、と言うことのようです。


    Intro go Google Data APIs: Mashing up Google Calendar,Spreadsheets and more! by Ryan Boyd


    Googleの様々なAPIを公開していますが、様々なサービスで共通のAPIを使うことができるようになっています。これをGoogle Data API(GData API)と呼んでいるようです。

    GData APIは、Blogなどでよく使われている、Atom Publishing Protocolに対して拡張を行ったREST-basedなAPIで、全文検索、Tagによる検索、更新時間に関する検索などが、共通のAPIで実現できています。

    また、アウトプットの形式も、XML, JSONなどを指定でき、様々なフォーマットで結果を受け取ることが可能です。

    色々なAPIを公開していこうとしている中ですので、参考になりました。


    Software Engineer in Google by Ukai Fumitoshi


    Googleのアプリケーションはとにかく安定していて信頼できるという評価ですが、その開発手法を知りたく思い参加しました。

    印象としてはやるべきことをやっている、ということです(これがなかなかできないのです)。

    技術者として優秀な人が多いのは勿論ですが、いくつか印象に残った開発の工夫を列挙します。


    ドキュメンテーションについて。


    エンジニア間で共有するDesignDocというドキュメントを作成する。

    ドキュメント化は最低限で良いが、以下は必ずドキュメント化する。


  • Why?--設計の背景、目的

  • How?--設計の方法

  • Who?--メンバー

  • セキュリティ、プライバシーについての考察。

  • テスト、モニタプランについて。

  • 開発方針


  • 自分たちで作る(オープンソースは基本別のディレクトリツリーで)

  • パフォーマンス重視(より良いアルゴリズムを!)

  • スケーラビリティ(並列化する)

  • 信頼性(MTBF3年)→1000台あると1日1台は壊れる。

  • テスト(リリース前は必ずユニットテストを書く)

  • Coding


  • C++, Java, Python

  • Sanzall

  • Javascript, ActionScript

  • リリース前のレビュー


  • あらゆるコードは一つのレポジトリで管理し、全エンジニア間で共有している。

  • バグの混入を防ぐために、他のエンジニアがコードをレビューする。

  • 記述スタイルを統一するためのリーダビリティーレビュー。

  • (ここを通過しないコードはリリースさせない。)


    情報共有について


    創造的である為には情報は共有されなければならないという前提。


    共有されるべき情報と共有方法


  • データベースIdea、バグ

  • 進捗: 「Weekly Snippet (今週の進捗、来週の目標を書く)」, blog

  • Document : Design Doc, Wiki, Docs & SpreadSheet (複数人で編集できるため。)

  • ソースコード: Perforce により、自由に。

  • コミュニケーション: IM, Mailinglist, 昼飯, 休憩時間

  • TechTalk: 1回4時間程度の技術会が毎日3〜4回行われており好きに参加しているらしい。

  • 一部屋に3〜4人の開発者によるグループ開発。

  • 共有されてはならない情報


  • ユーザ情報、プライバシーデータ

  • エンジニアの評価方法


    以下が主な評価軸となるようです。


  • 4半期ごとの目標シートと成果報告。

  • 評価は個人、チーム、会社など他面的なレベルで。

  • Code Review, Discussion, Snippets, Weekly Report, Google Resume

  • 同僚の評価。

  • 開発者に求められる態度


  • 自主的にやることを見つける

  • 知識やスキルを身につける。

  • 上からの命令を待たない。

  • 直すべきものを見つけたら、チームの枠関係なく、直す。

  • 変化についていく。

    レセプションパーティ


    セッション後に、レセプションパーティーが18時からありました。

    Google技術者と話すまたとない機会でした。今日セッションした方6人くらいと話しました。MountainViewから来た方が多かったけれど、日本で働く外国人の方もいらっしゃいました。英語は楽しいけど緊張します。

    「今日のアルバム作ってるんですよー」って言いながら、それぞれの方の写真を撮って、位置情報つけて、モバshot☆にアップロードして、登録するところまでをデモをしたりもしました。特にUSのモバイルはGPS対応してないので、興味津々(?)に見てくれました。

    写真の様子はモバshot☆でご覧ください。日本で働いている技術者の方にはモバshot☆のurlを紹介しました。早いとこコミニュティ機能をつけると使ってもらえそうですね。

    下は基調講演のGregStein氏。優しい。


    Greg Stein 氏。


    モバshot☆をGoogle技術者に紹介していたら、「マプレットに対応してくださいよー」って言われましたけど、これって、すぐやれる上に、やったら普通に話題になりそうですね。週末にやってみよう。


    全体の感想


    Googleはモバイルに今年間違いなく力を入れようとしています。

    但し、位置情報を使用したモバイルコンテンツに関しては、そもそも本社で位置情報携帯が使用できませんので、まだまだなようです。

    絵文字のプラットフォームを整備したり、位置情報コンテンツを作成したり、地道な活動をすると、かなり優位になりそうです。


    また、品質を落とさない工夫は上記に詳細に述べましたが、さすがだなぁ、と感じました。


    以上になります。そんな濃い〜1日でした。