工藤探偵事務所

Resarch and Investigation

Google Developer Day 2008 Japan に行ってきました。

kudo-shunsaku2008-06-14



先日、日本でも開催されたGoogleのカンファレンスに参加できました。

探偵は開催を心待ちにしており横浜まで行って聴くことが出来たので、聴けなかった皆様にも聴きながらの走り書きながら拝聴した*1セッションの内容*2をおすそ分けします。

探偵としては、雰囲気を味わえたのが最高の収穫です。

では宜しければ、どぞお楽しみ下さい。

Google Developer Day 2008 Japan 開催概要

開催日 : 2008 年 6 月 10 日(火)
会場 : パシフィコ横浜(会議棟) 〒220-0012 横浜市西区みなとみらい1-1-1 地図
対象 : デベロッパ
主催 : グーグル株式会社

開催文言

Google Developer Day 2008 Japan では、Google のテクノロジーで、Web アプリケーションの限界に挑戦します。Google のエンジニアや Web 開発のリーダーたちによる最新テクノロジーの紹介やコード ラボセッションなど、 1 日をとおして今後の Web 開発に役立つ情報を提供します。

Google Developer Day 2008 Japan は単に Google の情報発信の場だけではなく、デベロッパーの皆様との交流の場でもあります。さらに、デベロッパー同士が情報共有する場としても活用していただくのも、大事な目的のひとつと考えています。


以下、セッション個別に内容、所感を記載します。

基調講演

村上 憲郎
アンディ ルービン(Andy Rubin)
及川 卓也
鵜飼 文敏
ピート クーメン (Pete Koomen)

Google App Engine

Pete Koomen (ピート クーメン) プロダクト マネージャー


案内文言

Google App Engine を活用すると、Google のインフラを利用してウェブアプリケーションを構築することができるので、簡単にウェブアプリケーションを開始できます。また、作成したアプリケーションの成長を簡単にスケールできます。本セッションでは、プロダクト マネージャー (製品責任者) の ピート クーメン(Pete Koomen)が、Google App Engine がどのようなものか、どのように利用することができるのか、ウェブアプリケーション開発者にとって、大きな利点が何故あるのか、ご紹介します。また、ソフトウェア エンジニア のブレット スラトキン(Brett Slatkin)が、10 分ほどでスクラッチから構築できるというデモを行います。


以下にも記事ページがあります。ご参照ください。
【Google Developer Day 2008】 Google App Engineをおさらいしよう

Google App Engine セッション内容及び所感

現在使える言語としては、Python だけの様子。なので現在はちょっと敷居が高い。今後は他の言語でのインターフェースも考えているとのこと。

またデータを保存するためのコンポーネントとして "Datastore API" が用意されていて、SQL-like な "GQL" という言語でデータの操作が出来るそうです。

GQL Reference - Google App Engine.

使用出来る言語が、Python だけしかないというのがちょっと弱いです。*4

また、「Google のインフラを利用してウェブアプリケーションを構築することができる」というのは魅力かもしれませんが、企業ユーザには手を出し難いというか、手を出せないのが実際だと想います。使いたいと思っているのは、現在ホスティング・サービスを利用してウェブアプリケーションを実行している方々でしょうし、彼等が今後も何らかの新規のサービスをウェブで行っていこうと思っておられれば、それは朗報かもしれません。それに関しても全てのデータがGoogleにあるというのは抵抗があるかもしれません。

こういう利用法が浸透するにはまだ時間が必要であろうと考えられます。

随時、追記します。




Google Data API

半谷 明 (はんがい あきら) ソフトウェア エンジニア


案内文言

Google Data API とは、Google がウェブ上で提供している様々なデータにブラウザの代わりにプログラムでアクセス出来るサービスです。Google カレンダー や Picasa ウェブアルバム、YouTube などのデータを提供しています。このセッションでは Google Data API の活用方法などを、YouTubeAPI を中心に解説する予定です。

以下にも記事ページがあります。ご参照ください。
Google Developer Day 2008 Japanレポート 「Google Data API」編


Google Data API セッション内容

Google のサービスにブラウザを使わずにプログラムでアクセスするためのもの。
HTTP で XML をやり取りする。

What is Google Data API

Atom / APP *5

draft-ietf-atompub-protocol

Web based
Authentication *6
Simple
Light Weight (HTTP Request + XML/JSON)

Google Data Feature Summary
Entry "kind"
HTTP status code
Authenticate Architecture

Authenticate with Authorization Token

server specific token used for authentication upon requests

Password-Based Silent Login Interface
Password-less Authentication AuthSub

Browser only
SID, LSID, Auth

Serch Queries

ex.

  | HTTP_METHOD URI ? key1 = value1 [ & key2 = value2 ... N ]

common parameters - oderby, start-index, max-results, author

Serch Queries Parameters example

YouTube - vq, orderby, start-index, max-results, format

Serch Queriey example
  | QueryTerm = タモリ倶楽部
Additional Resources
Gallery of 3rd party GData Developers

Google Data API セッション所感

Google での様々なサービスでのインターフェースに実装される見込みだそうですが、基本はサービス毎のプロジェクトですので、サービスによっては実装に不向きなサービスなどもあって、全てに実装されるとは限らないそうです。

但し、どのサービスにもアクセス可能にするのは、Google 自身での方向性らしいですので、今後は各種サービスに実装される模様です。

但し、このAPIを使った利用方法は、実際にはイメージしづらいです。今回はYouTubeの例があったので、クエリを投げるイメージは感じました。しかしながら返り値が、Atom なので、利用する側には、このデータを元に何をするのか?がそれなりに明確になっていないと、問題なのはいうまでもありません。


また、これも Google App Engine 同様にサービスは Google が提供しているものですから、Google のデータを利用して何かしたいのでなければ、無意味なものでしょうし、Google のサービスを利用するための制限をクリアしなければならないために、企業ユーザにはちょっと敷居が高い部分があることでしょう。

こういう利用法が浸透するにはまだ時間が必要であろうと考えられます。

随時、追記します。




Android アプリケーションの構築 (基礎編)

Jason Chen (ジェイソン チェン) デベロッパー アドボケイト

案内文言

こちらのセッションは、開発ツールや SDK を活用して、どのように Android アプリケーションを構築するかをご紹介する実践的なセッションです。


Android セッション内容

Open Handset Alliance



Basic of an Android Application

Activity -- "molecule" chunk pof functionality
Intent Receiver
Service
Content Provider

Activities and Tasks


Activities

Process and Lifecycle

Developer Toolchain

Emulator - QEMU-Based ARM emulator runs same system image as a device
Eclipse Plug-in
Debugging

What does open mean ?

Under Apache 2.0 license
Source available after first handset ship
Users have control of their experience
They control what gets installed
Don't need premission to ship an application
No hidden or priviledged framework API's
Can integrate, extend, and replaces existing components

What about security ?
What does this mean for developers ?
Latest News

05 Nov 2007 - announced
12 Nov 2007 - SDK released
14 Dec 2007 - Bug fix SDK
03 Jan 2008 - Android Developer Challenge Started
13 feb 2008 - m5-rcl5 SDK released
...

Android セッション所感

自然な流れとして、以前から不自然であった携帯キャリアが王様で移動機ベンダが下僕といった構造が完全に崩壊しつつあります。技術的には先行していて世界的に競争力がある筈の日本の移動機ベンダは、その「困ったちゃん」の携帯キャリアの柵からグローバルに展開出来ない軟禁状態に陥り、仕舞いには携帯電話製造自体を止めてしまい、この分野から撤退せざる終えない製造業者まで出る始末。しかも、海外からはヨーロッパや韓国を筆頭とした日本参入も見えだしてきました。

このような実体化してきた業界内部での変化がありした。
さらに日本でも話題である Apple iPhone の発売に向けての進展もあり、黒船の波が携帯業界にも来て、日本における携帯電話のビジネスモデルが避けようも無く更に大きく変化する見込みであります。

更に大きな事象としてこのAndroidが携帯電話のプラットフォームの共通基盤となるようなことがあれば、パソコンに起きた事象と同様に大きな変革を齎すことは必死です。

これまでの完全にクローズドな各携帯電話毎の固有である仕組みが、オープンな共通基盤となることは、携帯電話をターゲットとした開発が促進されることになるでしょうし、移動時におけるインターネット端末としての一層の重要な役割を担う存在になると思われます。

その頃、携帯キャリアはどうなるのでしょうかね?
携帯キャリアが無数に起業し出して、あのインターネット・プロバイダ起業ブームみたいになったりしたりして。。。南無三。


随時、追記します。







Google Gears から Gears へ

河内 隆仁 (こうち たかよし) ソフトウェア エンジニア
市川 宙 (いちかわ ひろし) ソフトウェア エンジニア

案内文言

Google Gears は Gears と名称変更し、よりオープンにプロジェクトを進めていくことになりました。Gears はオフライン機能だけでなく、さらにウェブアプリケーションの可能性を拡げるための JavaScript API として日々開発が進んでいます。本セッションでは、Gears の基本的な使用方法と今後の機能拡張についてデモを交えてご紹介します。

以下にも記事ページがあります。ご参照ください。
Google Developer Day 2008 Japanレポート 「Google Gears から Gears へ」編

【Google Developer Day 2008】 Gearsはオフラインだけじゃない!

Gears セッション内容

Gears の基本
Gears + GreaseMonkey
今後の Gears

Google Gears --> Gears

ブラウザの extension
オープンソース
オープンな開発体制
オープンスタンダードの先取り
Google に限らないので、Gears だけに。

これまでのブラウザ環境

XmlHttpRequest(XHR) と AJAX
サービスプラットフォームとしてのウェブ

ブラウザの問題点

ローカルデータにアクセスできない
肝心なときにネットワークに繋がらない
レスポンスが遅い。ネットワークはローカルより遅い。
HTMLレンダリングだけに4コアCPUは不要。

理想的には

1 アプリケーション、1 URL
オンラインとオフラインのシームレスな切り替え
ローカルデータを利用可能
全プラットフォームの全ユーザが利用可能

Gears : インクリメンタルなアプローチ

ブラウザのプラグインJavaScript API
修正BSDライセンスオープンソース

AJAX アプリケーションのアーキテクチャ

XHRによりサーバへの非同期アクセス

Gears アプリケーションのアーキテクチャ


Gears 対応アプリケーション


Remember the Milk


Gears の基本構成要素

LocalServer
Database
WorkerPool *7

LocalServer

アプリケーションをオフラインで
ResourceStore - 個別のURLをキャッシュ
ManageResourceStore - リスト(manifest)*8

Database

ローカルRDB
SQLite 3 : オープンソース、コンパクト(500KB以下)
フル機能のリレーショナルデータベース。
厳格なsame-originセキュリティモデル。

demo : Database

dbquery.html、データベースのデモ
3rd party のツールも使える。SQLite なので。

WorkerPool

JavaScript にスレッドぽい機能を追加。実際には、インタプリタを複数動かす。
Worker 同士は、通信、状態、変数を共有しない。出来ない。
Timer, HTTPRequest のサポートが出来るようになりました。*9

demo : WorkerPool

WorkerPoolは、描画の処理を邪魔しないので、複雑な計算中でもスムースな描画を行えるというデモ。*10

GearsMonkey

Gears + GreaseMonkey
特定サイトでユーザ指定のJavaScriptを実行する Firefox アドオン。
はてなブックマークのデモ。(1文字文字を入れる毎に検索結果を変更していく。Gearsを使っているために、はてなサイトに負荷を掛けずに実行できる。)*11

今後の Gears

Desktop API - デスクトップにURLのショートカットが作成できる。
Notification API - メールが届いたなどのイベントをユーザに通知できる。ダイアログなど処理が止まってしまうものや、タブバーなどで選択している時だけヘッダーに表示されるものではなくて、デスクトップの下方にバルーン形式で表示できるものらしい。

Filisystem API - HTMLでは一個一個しか指定出来なかったファイルの選択が、複数のファイルをいっぺんに選択出来るような拡張。

Resumble Upload API - 大きいファイルのアップロードなどの場合に通信途中で止む負えず中断してしまった場合などで、再開時に先ほどの続きから開始できるような機能。分割してアップロードできるようにプロトコルレベルで変更を加えているそうな。

Geolocation API - 現在位置を取得できる機能。*12mapアプリなどであれば、キーワードで「すし屋」、「横浜」と二つのキーワードの入力が必要であるが、これを「すし屋」だけで検索できたりするかもしれない。

BLOB API

Gears セッション所感


随時、追記します。


探偵が、Gears に一番期待しているのは、取りも直さず、

  | 「シームレスなランタイム」として動作できること

それに尽きます。そこに関してはまだ実装があまり進んでいない感も否めません。

Googleのスピーカーさん達は、「Gearsはただ単にオフラインでも使えるといういうだけではないんですよ」と話していたが、一番肝要であり探偵が着目しているのは、そこなんですよ。

要するに、今までのウェブを利用するのに最大の欠陥は「シームレス・ランタイム」がな無い。つまり、この機能が欲しいだけなんですよ。だから AdobeAIR でも Google の Gears でも何でもいいんですよ。もしかしたら、MicrosoftSilverlight ですら良いとも思ってますし、ちゃんと「Widnows以外でも」動くのであればね。
そういった機能を持ったプラットフォームがあれば、そして簡易に利用できればいい、それだけなんです。

しかしながら、彼等の言葉通りなのか、周辺がAPIとして拡充されてきている様子です。これにより今後利用する開発者も増えるかもしれませんね。


ご参考までに、以前にもこの件に関しての探偵想いが書いてあります。宜しければ御覧下さい。

Sherlock Holms in Adobe Digital Editions
Adobe AIR Developers Night 2007 in Ebisu




Google AJAX API を活用した、進化したガジェットと UI (ユーザーインターフェース) の開発


Derek Collison (デレック コリソン) エンジニアリング テクニカル ディレクター

案内文言

Google AJAX API は、洗練されたガジェットや、ウェブの UI (ユーザーインターフェース)を管理するのに活用できます。たとえば、複合的なサーバー側のプロキシーを回避し、Feed API を利用した 2-3 行の JavaScript を活用することによって、直接フィードをマッシュアップすることができます。本セッションでは、より進歩した Feed API や Search API の活用方法をご紹介します。また、Google の最新の API を利用して、いかに作成したウェブアプリケーションをグローバルに広げることができるかご紹介します。 本セッションは、JavaScript や ダイナミックウェブアプリケーション の知識が必要です。

Google AJAX API セッション内容

The Application Concept
The Basic Building Blocks

HTML/DOM
CSS
JavaScript
Tools
The Google Ajax APIs - Seach, Feed, Language

Tools

Firebug

The Google Ajax APIs

Restful data access layer
JSON/JSON-P
JavaScript Runtime - Designed for ease of use
JavaScript controls and UI elements
Custom integration and styling

The Google Ajax APIs background
The Google Ajax Search APIs
The Google Ajax Feed APIs

load, find, lookup

The Google Ajax Language APIs

translation, language detection

The Application Prototype
What we saw

the tag cloud view

How do we build it

getting started

  google.load()
  google.setOnLOadCallback()
CSE : Custom Search Engine

Better alternative than site restriction large # of sites

Building the Application
iGoogle Template

gmodule.com

Google AJAX API セッション所感

Google gadget をゴリゴリ JavaScriptで書きましょうという内容でしたが、探偵自身はちょっと使うことはないでしょう。ガジェット自体をほとんど使っていませんし。しかしセッションでは講師の方がコードの一部まで紹介して丁寧に説明してくださったのでJavaScriptながらも割と簡単に書けるのかも?という錯覚を起こしました。テンプレートも用意されているそうなので、見栄えもよくなるのかもしれません。デモで見せてくれた検索ガジェットはタグビューなどがあって綺麗でした。但し、紹介してくれたAPIが3つだけというので使用用途はかなり限定されているのかもしれません。元々ガジェット自体がそういうものなのでしょうけど。

随時、追記します。




Google Web Toolkit と AJAX

Adam Schuck (アダム シュック) ソフトウェア エンジニア


案内文言

AJAX のパワーは、新しいウェブアプリケーションで明らかになっています。ただ JavaScript は、少量のコーディングで簡易性と柔軟性を発揮するので魅力的ですが、大量のコーディングをするには、扱いにくいので、使う気が起きない言語です。大きな AJAX アプリケーションは、多くの場合コードを書くのは大変ですし、ブラウザごとに事情が違うのも厄介です。本セッションでは、デベロッパーの皆様に、どのように Google Web Toolkit を利用すれば Java 言語で AJAX アプリケーションを作成できることをご紹介します。具体的には、Google Web Toolkit を活用すると、自分の好みに合う IDEJava ライブラリ、デバッガを利用できます。Google Web Toolkit を利用すれば、高速で、効率的な AJAX アプリケーションを開発できることがお分かりいただけるはずです。

GWT セッション内容

potentional of Ajax
GWT brings ...

The Status Quo

Every ...page .. is ...so.... slow ... and ...disconnected ...

Ajax Architectual Shift

図省略。

Aax Slippery Slopw

... quit job

To Be Crystal Clean
What is GWT

build Ajax apps with Java technology
use Java Debugger

ex.

  | public class Hello implements EntryPoint {
  |     public void onModuleLoad () {
GWT Brings Software Engineering To Ajax

Any Java IDE
Using testing
OO design patterns

The GWT Mission

Users First
Developers Second
Gee-whiz technology*13 is a distant third.

Web Usability Fundamentals Remain Intact
History

Do not click reload!
Do not click back!

GWT brings a simple history API - ... History.addHistoryListner(controller) ...

Localised Messages

Efficient I18N

Styling with CSS
public ListBox(String caption) ...
Usability Without Sacrificing Speed (Demo)

Kitchen Sink - MVC and on-the-fly UI Creation
Lombardi: Blueprint

Lombardi: Blueprint

Lots of Stuff Here
Fast is Better Than Slow

Speed is a critical component of usability

Optimised Permutating

Single Java Code Base

JSNI: JavaScript Native Interface

Implement native methods using JavaScript
Javaコードの中にJavaScriptを直接書ける。

Branding Relity
Fantastic Independent Monolithic Codes
Browser-Specific Optimization
Only Pay For What You Use
Better Usability From Less Bandwidth
HTTP Traffic Optimizations
RPC Speed Optimizations
Not Enough Time To Demo Everything

Unit Tests, Benchmarking, Internationalizations
Automatic inclusion of external JS and CSS

Fully Open Source

Licensed under Apache 2.0
Making GWT Better
Great Community

Documentation Included
The Growing Eco System
Introducing GWT 1.5 RC 1

Java 1.5 support
DOM API simplified DOM programming
Peformance

What's next

Out-of-process hosted mode
Widgets I18N
JavaScript API

Summary

You need leverage to use Ajax well low risk

PhD ...

GWT セッション所感

GWT の良い点が強調された内容でした。「JavaJavaScriptが書ける」というのは素晴らしいのです。*14これをまんま鵜呑みにすれば可也良いとは想いますが、実際どの程度使いやすいのか?が問題です。

またGWTで提供されている GUI Widget で全てが足りるとは到底思えませんし、その場合、外部に既に存在している JavaScript の他のライブラリやウィジェットと組み合わせて使えるのか?が可也重要な点になると想像出来ます。


随時、追記します。



カンファレンス全体所感

Google での各種サービスAPIやツールキットなどの紹介などであったが、全て実際に使ってみたことがないため非常に参考になった。特に以前から興味を持っていたGears*15は、予想通りの展開をみせ、当初は陳腐なものであった様子だが、かなり進歩してしてきていると感じた。以降で私たちが希望する機能を実装してくれることを望むばかりです。道を外れなければ、ですけどね。


随時、追記します。

繰り返しになりますが、探偵としては、当日の熱い雰囲気を味わえたのが最高の収穫です。





*1:-翻訳器つけるの嫌なので、探偵の拙いヒアリング能力には限界があります。それゆえ聞き間違いもあろうことを予め御容赦下さいませ。-

*2:-書き写せなくて細切れだったりしますが、其の点も重ねて御容赦下さいませ。-

*3:-元ソニーコクーン部門の責任者だった様子です。現在は、Google 製品企画本部長。-

*4:-現行では手を出せません。-

*5:-APP: Atom Publishing Protocol. Atom パブリッシング プロトコル。これはウェブ リソースをパブリッシュおよび編集するための HTTP ベースのプロトコルです。APP 規格は、まだ完成されていない新しい標準規格であり、現在 IETF が開発中です。-

*6:-ログインが出来るという意味だそうです。-

*7:-JavaScriptのスレッドの様なもの。-

*8:-manifestは、version番号で管理する。番号が新しいとキャッシュを破棄するといったような動作だそうです。実際にチェックするのは、store.checkForUpdates()というメソッドを呼んでチェックするみたい。-

*9:-Gears 0.2 以降でサポート。-

*10:-計算処理はバックグラウンドのインタプリタで処理していると憶測されます。-

*11:-MySpaceメールでもこれを使っているらしい。-

*12:-PCであればIPアドレス、携帯であればGPSなどから情報を取得するらしいです。-

*13:-意味不明。たぶん、びっくりするような目新しい技術のことみたいです。-

*14:-実際に自分でJavaScriptをゴリゴリと書きたくないですし、Javaで生成出来るというならコレに越したことはないです、私にとってはですが。-

*15:-研究対象でもありましたが、触ったことは無かったです。-