[GoogleAPI][event]Google Developer Day 2008 Tokyoに行ってきた - Googleのソフトウェアエンジニアの日常

2008年6月10日(火) 17:00-17:45
「Googleのソフトウェアエンジニアの日常」@パシフィコ横浜(会議センター) メインホール
グーグル株式会社 ソフトウェアエンジニア 藤島勇造氏

●カルチャー
  ・Clarity
   *目標を明確に延べ、他人の協力を得る
  ・Transparency
   *判断の元となったデータは何か?
    どのようなプロセスでどのデータを使って、その判断に至ったのか?
    という経緯を明確にする
  ・Democracy
   *命令の連鎖ではなく、総意に基づいて意思を決定する
   *社の移転についても、住んでいる場所から全員の総意で決定した
    →実例
     *20%の時間を使って、グループ横断活動で他エンジニアを支援
     *新しく入ってきた人を助けるメンター制度

  ・Intiate
   *問題があれば自分が直す
   *責任を持って実現する
  ・Iterate
   *完璧になるのを待つのではなく試してみる
   *結果的には柔軟かつ迅速に対処出来る
  ・Scrappy
   *今使えるものを使って目標を実現する
   *安く効率的に実現する方法を考える
  ・Party
   *周囲の人を楽しませる
  ・Celebrate
   *地味な仕事、泥臭い仕事にも光を当てる
  ・Passion   
    →実例
     *利益が出たらプールを作る

●ソフトウェア開発
  ・分散開発
   *すべてのオフィスは対等
    * 全世界でひとつのプロジェクトチーム、最も近いオフィスに行く
   *複数のオフィスにプロジェクトメンバが分散
   *コミュニケーションが鍵
    * 時差が最大の問題
  ・プロジェクト
   *多様なプロジェクトが多数ある
   *ボトムアップ式で、アイデアがひらめいたら先ずは20%プロジェクトとして開始
  ・ソフトウェアエンジニアの仕事
   *各エンジニアが開発のほとんどに関わる
    * アイディア出しから開発、テスト、保守まですべてに関わる
   *必要な文書は作るが、不要な文書を作るよりもデモを作ることの方が大切
   *言語は主にC++, Java, Python, JavaScript
    * 読みやすいコードを書くため、プログラム言語ごとにスタイルを全社で統一している
    * スタイルにあったコードを各一を社内で認定
   *コードの共有
    * 1つのソースコードを全世界で共有
    * どんなコードも同僚のチェックを受けなければサービスとしてアップ出来ない

●その他の仕事
  ・採用活動
   *基本的には、ソフトウェアエンジニアは開発に集中
   *重要な例外は採用活動への協力
   *面接の内容
    * コンピュータサイエンスの基礎
    * 社風に合いそうか?一緒に働いてお互いにハッピーか?
  ・業績評価
   *四半期ごとに目標の設定と評価
    * 一緒に仕事をした人の業績を評価する

●遊び
  ・遊びは重要
   *「遊びと仕事は両立する」という社風
  ・オフサイトイベント
   *年に数回、オフィスを離れてチームビルディング
  ・部活動
   *ジャグリング部
   *ラーメン部
   *マリオカート部

●私のケース
  ・入社動機
   *優秀な人たちと一緒に、世界中の人に向けてソフトウェア開発がしたい
  ・入ってみたら
   *人間的にも魅力のある人たちが本当に多かった
   *想像以上に動きが速い
    * やった仕事がすぐに世界に出て行く
    * ソフトウェアツールがどんどん改善されていく
   *誰が言ったのか?ではなく、その意見が本当に正しいか?が重視される
   *エンジニアは尊重/信頼されている
   *良いソフトウェアを開発するために、真剣に仕事に取り組んでおり、
    必要なら泥臭いことも厭わない

●心がけていること
  ・分かり易いコードを書く
  ・他人のコードを尊重する
   *全体としての生産性を重視する
  ・正確かつ簡潔なコミュニケーションをする
   *文化が異なる人との、母国語以外でのやり取り
   *受け手の負担を考える
  ・Easier To Ask Forgiveness Than Permission
  ・仮説立て/仮決定してとにかく進めてみる
  ・目先の仕事以外にも目を向ける
  ・良き仲間たれ
   *結局これが一番重要

●Q&A
  ・Googleはどこに向かっているのですか?
   →Googleのミッションは世界中の情報を整理し、どこからでもアクセス出来るようにすること
  ・公開されている他プロジェクトのソースコードは、共有されているだけでなく実際よく見られているのですか?
   →関係する他プロジェクトのソースを見たり、新しいメンバが過去に書いたソースを見たり、
    新しいプロジェクトに参考になりそうなソースを見たりと、結構な頻度で見ています

テーマ : Google
ジャンル : コンピュータ

[GoogleAPI][event]Google Developer Day 2008 Tokyoに行ってきた - Google Maps API for Flash

2008年6月10日(火) 16:00-16:45
「Google Maps API for Flash」@パシフィコ横浜(会議センター) L-4会議室
グーグル株式会社 ソフトウェアエンジニア 加藤定幸氏

●Google Maps API for Flash概要
  ・Google MapsをFlash上で表示するためのAPI
   *http://code.google.com/apis/maps/documentation/flash/
  ・2008年5月15日にリリースされたばかり
  ・ActionScriptを使ってプログラミング可能
   *FlashCS3ではなく、FlexBuilderもしくはFlexSDKでのみ開発可能
  ・作成にあたって
   *開発環境は無料で配信されているソフトで構築可能
   *APIキーが必要だが、AJAX用のキーを取得していればそれをそのまま使用出来る

●Google Maps API for FlashでHello World(デモンストレーション)
  1. Adobe Flex SDKを用意
  2. Interface Libraryの取得
  3. アプリケーションのパッケージ名を定義
  4. Interface Libraryのパッケージをインポート
  5. イベントリスナーを関数として定義し、イベントと関連づける
   *Maps API for Flashはイベント駆動型だから
  6. Maps APIを使用するため、Mapsクラスを拡張したクラスを作成する
  7. MXMLファイルを作成
  8. ビルドを行う
  9. サーバ上にUPする

●Google Maps API for Flashのさまざまな機能
  ・現在用意されているイベントは4つ
   *http://code.google.com/apis/maps/documentation/flash/events.html
   *onMapReady
   *onMapMoveEnd
   *onMapReady
   *onMapClick
  ・用意されているコントロールも4つ
   *http://code.google.com/apis/maps/documentation/flash/controls.html
   *PositionControl
   *ZoomControl
   *MapTypeControl
   *OverViewMapControl
  ・オーバーレイについてはこちらを参照
   *http://code.google.com/apis/maps/documentation/flash/overlays.html

●基調講演で見せようとしていたアプリケーション
  ・加速度センサーとアプリケーションが連動し、センサーを動かすことでGoogle Mapsが動く
   フライトシミュレータのようなアプリケーション

●Google Maps APIの使い分け
  ・Flash
   *Flashの視覚効果を活かしたい
   *Flashで開発中のアプリケーションと連動させたい
   *JavaScriptよりもActionScriptが得意 という場合に使うと良い

●Flash開発者へのメッセージ
  ・Google Mapsの開発チームも日本初のアプリケーションに注目している
  ・是非開発された際には、簡単で良いので英語のReadMeも用意して欲しい

●Q&A
  ・携帯電話のFlashには対応していますか?
   →FlashLiteには未対応ですし、対応の目処も具体的にはたっておりません
  ・AJAX版とFlash版でパフォーマンスは異なりますか?どちらが良いですか?
   →きちんと比較検討したことがないので分かりません
    少し前まででしたらFlashの方が上かと思いましたが、FireFoxのバージョン3などで
    JavaScriptの速度も上がっているので、どちらが早いかは検証してみないと分かりません
  ・CS3やAIRには対応予定ですか?
   →開発チームとしては強い要望があることは把握しておりますが、
    具体的な対応日時については未定です
  ・AJAX版で出来て、Flash版で出来ないことはありますか?
   →多分あると思います
  ・カスタムアイコンを使って表示をする場合に、影は自動生成されますか?
   →AJAX版と同様に、自分で用意をする必要があると思います

テーマ : Google
ジャンル : コンピュータ

[GoogleAPI][event]Google Developer Day 2008 Tokyoに行ってきた - マッシュアップアプリケーションとGoogleAPI

2008年6月10日(火) 13:00- 13:45
株式会社リクルート メディアテクノロジーラボ 川崎有亮氏
「マッシュアップアプリケーションとGoogleAPI」

●はじめに
 ・GoogleのAPIはいくつあるのか?
  *毎月増えていて、現在は60
  *http://kawa.at.webry.info/200806/article_1.htmlで確認出来る
 ・プレゼンテーションツールとGoogleAPIのマッシュアップ
  *マッシュアップとGoogleAPIについての話題なので、実際にGoogle AJAX Language APIを使って
   スライドの内容を翻訳しながらトークする
 ・本日のアジェンダ
  *Google Language API
  *Webサービスとマッシュアップ
  *Google Maps API
  *Google Chart API
 ・自己紹介
  *http://www.kawa.net/

●マッシュアップとは?
 ・元々は音楽用語、複数の曲を組み合わせて1つの曲を作る手法
  →転じて、複数のWebサービスのAPIを組み合わせて、1つのサービスを作ること
 ・世界のAPIの総数は?
  *programmablewe.comに登録されているだけで775
 ・リクルートでも14媒体(事業)のAPIを公開中
  *http://webservice.recruit.co.jp/
  *Mashup Award 4thも開催中

●マッシュアップ開発サンプル
 ・Google MapsとHot Pepper Webサービスを使って、2時間くらいで作った
 ・リクルート WEBサービス UI Library
  *http://mtl.recruit.co.jp/sandbox/rui/
  *リクルートが提供しているAPI使ってサービスを作る際に利用出来るJavascript ライブラリ

●Google Maps API
 ・Google Maps APIを使用するには、APIキーが必要
 ・Google Maps API for FlashやGoogle Static Maps APIなど、Google Maps APIのファミリーも増えている
  *GIF, JPEG, PNG対応
  *さらにmaptypeをmobileにすると「携帯電話で見やすいように」出力してくれる

●Google Chart API
 ・折れ線、棒、円グラフなどの基本的なグラフから白地図機能まで利用可能
  *http://code.google.com/intl/ja/apis/chart/

●AJAX Libraries API
 ・人気のJavaScriptライブラリをGoogleが配信してくれる
  *http://code.google.com/apis/ajaxlibs/
 ・インターネットプラットフォームの3レベル
  Level1 - Access API
   :各企業が持っているデータを提供してもらい、それを利用する
  Level2 - Plug-In API
   :企業から提供されたサービスを、自分のサービスにプラグインとして組み込める
  Level3 - Runtime Environment(online platform)
   :Google App Engineのように、ローカルマシン上ではなく共通のプラットフォーム上でサービスが提供出来る
 ・Wiiリモコンを使ったデモンストレーション
  *PCのインタフェースはキーボード(1D)から、マウス(2D)へと発展
  *さらに3D,4Dへと発展するのでは?

●まとめ
 ・APIの利用は手軽になり、開発者の裾野も広がった
 ・黎明期の「マッシュアップのためのアプリ開発」から、「サイトを活かすマッシュアップ」へ

テーマ : Google
ジャンル : コンピュータ

[GoogleAPI][event]Google Developer Day 2008 Tokyoに行ってきた - 基調講演

Google Developer Day 2008 Tokyo

2008年6月10日(火) 10:00- 12:00
基調講演@パシフィコ横浜(会議センター) メインホール

シニアプロダクトマネージャ 及川卓也氏
「次世代ウェブに向けて クライアント(client)、コネクティビティ(connectivity)、そしてクラウド(cloud)」

●3つのC
  ・メインフレームの時代(30年前)
   *処理能力やデータ容量は高い
   *実際にユーザに使ってもらう展開の容易さはあった
   *しかしながらUIの観点から見ると使いやすい環境ではなかった
  ・パーソナルコンピュータの時代
   *処理能力やデータ容量は低い
   *個人のPCにアプリケーションを入れて使ってもらうことは難しかった(個々の環境によって動作が異なるため)
  ・インターネットの時代
   *メインフレームの時代に戻ったような感覚

    →インターネットの時代を経て、現在の課題は
     「クラウド」をよりアクセスしやすく、
     「コネクティビティ」をユビキタスに、
     「クライアント」をよりパワフルに という3つのC

  しかしすべての人のコンセンサスを取りながら、物事が決まっていくのがウェブの標準であり、
  Googleが一方的に解決策を決める訳ではない

●Client(よりパワフルに)
  ・1年前に発表したGears
   *ブラウザを拡張することでリッチウェブアプリケーションの開発を可能に
   *ローカルデータベース、ローカルサーバを利用することでよりリッチなアプリケーションを提供
  ・Android
   *実際にAndroidが載った端末でデモンストレーション
   *Google Mapsで特定の場所を選んだら、その場所での視点が再生されてた、すごい

●Cloud(よりアクセスしやすく)
  ・Google App Engine(ソフトウェアエンジニア鵜飼氏)
   *Google App Engineを使うことで、Googleのプラットフォームを使って自由に開発が可能となる
   *なぜGoogle App Engineを用意したのか?
    →アプリケーションを開発するのは、
     物理的にマシンを用意し、Linux,Apache,MySQL,PHPなどを準備する必要があり、
     初期コストや運用コストがかかり、非常に大変なことである
     これを助けるのがGoogle App Engine(みんなが作ったシステムを実際に動かせるプラットフォーム)
   *どうやってGoogle App Engineを使うのか?
    1. 先ずはコードを書く
    2. ローカルマシンで動作を確認する
    3. Googleに対してコードをデプロイするだけ!
   *Google App Engineを使った事例
    a) Twitter Wheel
     http://www.tweetwheel.com/
    b) Later Loop
     http://www.laterloop.com/
   *日本のキャリアの対応が遅れてはいるが、近々に解決する予定
   *GData(プロトコル)を用いて、Googleをデータエンジンとして使うことが出来る

●3つのC以外に・・・ソーシャル化
  ・ウェブが人やサービスを結びつける基盤となり、よりいっそうソーシャル化が進んでいく
  ・Googleの提供するソーシャル技術
   *iGoogle
   *Google Maps
   *Youtube
  ・OpenSocial
   *2007年11月に発表された完全なオープンソースプロジェクト
    * 利用者は2億7千5百万人
    * 開発者は2百万人
    * サポート表明コンテンツパートナーには日本企業も多い
   *既存のソーシャルサービスは、各サービスごとに閉じてしまっている
   *そこを共通部分化することで、どのサービスでも共通で使えるアプリケーションが開発出来るようにしたい
   *開発事例(株式会社リクルート メディアテクノロジーラボ 近藤氏)
    a) コマーシャライザー
     http://cmizer.com/
    b) ドコイク?
     http://www.doko.jp/
   *Google Friend Connect
    * オープン標準に基づく
    * 単純なコピー&ペーストでサイトを構築可能
    * OpenSocialコンテナや開発者に対しての新しい可能性の提示
    * これを用いることで、よりユーザにリーチ出来る場が広がる

●3つのC以外に・・・ウェブアプリケーションの開発をより身近に
  ・ウェブデザイナや一般ユーザにもGoogleのサービスを取り込んでもらえるように
  ・Google Maps API for Flash
   *FlashでGoogle Mapsの機能を利用したアプリケーションの開発が可能になる
   *今までのJavaScriptと同じように、ActionScriptからAPIが使えるようになった
   *実際のデモンストレーション(ソフトウェアエンジニア 加藤氏)
    * 加速度センサーとアプリケーションが連動し、センサーを動かすことでGoogle Mapsが動く(はず)
    * フライトシミュレータのようなアプリケーション
  ・Google Earth API
   *Google Earthのにより提供される3次元のレンダリング機能をウェブサイトに組み込める
   *現時点ではWindows環境のみ
   *実際のデモンストレーション(Mano Marks氏)
    * MONSTER MILKTRUCK!
     http://www.google.com/earth/plugin/examples/milktruck/
  ・Chart API
   http://code.google.com/intl/ja/apis/chart/
   *URLのパラメタで値を渡すことで、グラフ、チャートをPNG形式のファイルで返してくれる
   *このAPIを使うことでチャートの作成を動的に行うことが出来る
   *このAPIがRESTful対応の例のひとつ

●One more C
  ・課題に対しての完全な形を見つけきれている訳ではなく、みんなと一緒に解決し、
   ウェブをあるべき姿に成長させていければと考えている
  ・もうひとつのC(執行役員 辻野氏)
   *Cloud, Connectivity, Client, and One more C is Communication
   *ニーズの高いドキュメントから、今後も随時日本語化を進めていく予定
   *Googleが用意した土壌に、デベロッパが自由に種を蒔き、育った木がコミュニティとなっていって欲しい
   *デベロッパをサポートするプログラム
    * デベロッパ交流会を開催
     http://groups.google.co.jp/group/developer-round-table
    * Google API experts program(各APIの認定エキスパートを中心として、サポート活動を行う)
     http://googlejapan.blogspot.com/2008/06/google-developer-day-2008-japan-ask.html
   *Be Social

テーマ : Google
ジャンル : コンピュータ

[other]MacBook買って最初にしたこと

先日MacBookを購入したので、その時の金額やセットアップを記録しておく。

購入したのは白でメモリが2GBのMacBook、買った場所は近くの電機屋さん。
イーモバイルのD02HW(USBタイプのデータ通信カード)と一緒に買ったら、D02HWの本体価格が無料になって、かつMacBookから21,000円割り引いてくれるということだったので即決。

税込149,800円のMabBookから、21,000円引いて128,800円。
現金値引ではなくてポイントバックのお店だったので、貰ったポイントでiPod nanoも購入、23,800円の8GB iPod nanoが7,600円で買えたのでご満悦、Podcastは楽しいし、iPodMapのブログパーツも使ってみたい、わくわくが広がるー。

「このMacBookはあなたに出会うために作られたのです」

そんなムービーに感動して、このMacBookをずっと愛そうと誓いつつ、先ずはFirefox2を入れた。
(本当はFirefox3のベータを入れたんだけれど、個人的に必須なアドオンたちが対応していなくて諦めた)
高校生くらいの時にIEが全盛期を迎えていて、その頃は「こんなに普及しちゃったら、もうひっくり返らないだろうな」と思っていたのに、昨今のFirefoxの普及の仕方は目覚ましいですね。

続けてFireFoxのアドオンたちをインストール。
次に新しい環境でセットアップする時のために、ちょっと丁寧に書いておく。

1. Sage
 ・Firefoxアドオンとして使えるRSSリーダ
 ・スタイルシートを変更することで、見た目をカスタマイズすることも可能
2. タブカタログ
 ・たくさん開いたタブをサムネイルで表示出来る
3. TwitterFox
 ・右下に出るポップアップからTwitterを読み書き出来る
4. Pearl Crescent Page Saver Basic
 ・ブラウザで見ている画面をそのままpngに落とせるツール
 ・これがあるとPrintScreenキーの出番が殆どなくなる(あ、MacBookにはPrintScreenキーが見当たらないことに今気づいた)
5. Greasemonkey + AutoPagerize
 ・インストールの手順はウノウラボのエントリを参照
 ・GoogleやTwitterのページ送りが不要になる
 ・どのアドオンよりもこのアドオンをお勧めする

土曜の午後に購入して、「MacBook愛してるー」と呟きながら、結局月曜の朝までずっと遊んでいた。
これで気持ちよい夏の日にお外で開発が出来る、何か物を買ってこんなに胸がときめいたのは久しぶりかも知れない。

テーマ : Mac
ジャンル : コンピュータ

プロフィール

Author:mochiko
前職は携帯コンテンツ会社のエンジニア、現在は独立系SIerで色々。
GenesisLightningTalksのお手伝いをしたり、気になる勉強会に参加したりしつつ、毎日本を読んで過ごしています。
どれだけ本を読んでいるのか、はライトニングトークの動画を見てもらえれば・・・。

テクノラティお気に入りに追加する
はてな
mixi
SlideShare
Ustream.TV
YouTube
Wassr

最近の記事
最近のコメント
最近のトラックバック
全記事表示リンク

全ての記事を表示する

月別アーカイブ
カテゴリー
mochikoAsTechCnt
ブログ内検索
RSSフィード