Google Developer Day 2011に行って来ました。

f:id:yosuke_furukawa:20111102000737j:image:w640

Googleの最新テクノロジーを紹介するセミナー、Google Developer Dayに行って来ました。
たくさん刺激を受けましたね。

上の写真はお土産の数々です。
今回のセミナーは色々とコラボレイティブな仕掛けがたくさんありました。
特に面白かったのは、コレ。
f:id:yosuke_furukawa:20111101123936j:image:w640

これはGoogleのテクノロジーにちなんだ缶バッチで、Google+系バッチ(5種類)、Android系バッチ(5種類)、
HTML5系バッチ(5種類)の計15種類のバッチが会場内に配られています。
参加者は最初に1種類の缶バッチを10個だけ配られます。これをトレードを繰り返して2つのテクノロジーを
コンプリートするというゲームです。
写真では少し見にくいですが、Google+系が5種類、Android系が5種類コンプリートされています。

誰が何を持っているのか分からないので、とりあえず最初は手当たり次第に声をかけてトレード、
ある程度バラけてきた所で所望の缶バッチを見せている人に持ち前の図々しさで交渉を繰り返して
コンプリートしました。でもコンプした所でもらえるのはGoogle キャップなんですけどね。
f:id:yosuke_furukawa:20111102000804j:image:w640

さて、肝心のテクノロジーの話です。
今回、目玉となるテクノロジーは3つありました。

  1. Android, Ice cream sandwichの話
  2. HTML5の実装の話
  3. Google+の話

Android, Ice cream sandwichの話


NFC連携と顔認識ロック解除が面白かった。
NFC連携はAndroid同士を合わせるだけで見ているページを共有したりできるみたい。
情報共有はこの方が直感的な感じはした。
顔認識ロック解除は本人が前に立てば勝手にスマートフォンが認証してロックを解除する
仕組みをデモしていた。この機能はまさに必要だと思った。
色々とiPhoneもロックしてても起動できるようなアプリとか作っているけど、
それよりも認証がスムーズだったらそんな機能いらないんだよなー、と思った。

実機も触らせてもらって、より高速に直感的になった感じをつかむことができた。

HTML5の話


やっぱりここではWebSocketなどのリアルタイム系の技術、WebGL等のレンダリング
WebAudio, Videoなんかがデモ受けしやすい形で紹介されていました。
特にすげー、と思ったのは最後のライトニングトークのところで紹介されていた、
Web Instrumental
ですね。

スマホや加速度センサー付きのノートパソコンだと振るだけで楽器になり、音が出る
というアプリケーションです。MBAでは残念ながら振っても音は出ませんでしたが、
クリックで音が出ました。

これも中ではSocketIoやWebAudioが動いていて、リアルタイムに音を出す処理を
しているみたいです。

振ると音が出る仕組みはdevice orientation apiというchromeのブラウザで実装されている
デバイスの方向を取得するAPIで実施しているみたいです。

Google+の話


面白かったのはGoogle Hangout。
一応Video chat機能ですが、単なるVideo chatだけではなく、組み込めば
色んなエフェクトを出して遊べる仕組みになっていました。
デモで紹介されていたのはVideo chatだけじゃなく、ドロイド君がコーラを飲んだり
音楽をかけたりと、アメーバピグみたいに遊べるようにしていました。

非常に刺激を受けました、特にHTML5
サーバーサイドに生きる身としてはぜひ実装していきたいところです。

最後にGoogle DevQuizの解説


今回の問題はレベルが高く、スライドパズルはGooglerですら全問解いていないということでした。
特に6x6の中には純粋にアルゴリズムだけでは解けない問題も含まれていたようです。

解法に参考になるアルゴリズムとして下記のようなものが紹介されていました。
・反復進化 + A*
一番効率的で今回のデータはメモリにセンシティブなのでこれを実装するのが一番効果的だということでした。
・パターンデータベース
詳しくは:http://www.ise.bgu.ac.il/faculty/felner/research/jairpdb.pdf
・Zobrist hashing
詳しくは:http://yowaken.dip.jp/tdiary/20081001.html

今回の内容をきっかけにアルゴリズム勉強しなおしたほうがいいかなぁ。
何かおすすめの本があればぜひ教えて下さい。