ラベル Google Gears の投稿を表示しています。 すべての投稿を表示
ラベル Google Gears の投稿を表示しています。 すべての投稿を表示

2009-12-03

Google、Gears から HTML5 へ

昨日、ぼくの twitter の TL はこの話題で持ち切りだった。情報元は Engadget Japanese。

Gears は Google が出してるブラウザー・プラグイン。IE, Firefox, Opera, Safari とほとんどのウェブ・ブラウザーをサポートし、Google Chrome では組み込み済みでリリースされていた。

Gears を一言で言えば、オフライン・アプリケーション開発におけるノウハウのつまったプラグイン。詳しいことは、clmemo@aka: GDD2008「Google Gears から Gears へ」 を参照してもらうとして、大まかな機能を書くとかうなる。

  • Local Server (ウェブ・ページをローカルに保存する)
  • Web Database (そのまんま。DB)
  • Worker Pool (JavaScript のスレッド化)
  • Geolocation (現在位置の取得)

そして、これらの機能は HTML5 の API 仕様に含まれている。

どちらかというと、Gears の仕様を HTML5 に盛り込んで行った、という方が正しいのかな?

HTML5 が Gears と同じ機能をサポートすることの意味合いは非常に大きい。まず、仕様が Google 一社に独占されないこと。オフィシャルな仕様になると、開発者は突然の仕様変更などに悩まされなくなるので、開発における心理的なハードルが低くなる。そして、Google も各ブラウザー毎にプラグインを開発しないで済むこと。また、ユーザーに対して「プラグインのインストール」という手間をかけさせないで済むということ。

Gears は他の Gears サポート・サイトのために、すぐには消滅しない。けれど、これからは HTML5 へと道を譲る。それは悲しくも嬉しい。

2009-10-02

HTML5 Tech Talk -- API 編

告知通り HTML5 の Tech Talk に参加した。セッションは二つ。

  • オフライン・ウェブ・アプリケーションを作るための API の説明
  • HTML5 で絵を描くための Canvas の説明

本エントリーは前者の API セッションのメモ書き。

HTML5 でオフライン・ウェブ・アプリケーションが作れる

HTML5 では、オフライン・ウェブ・アプリケーションを作る仕組みが整い始めている。その大部分は、Google が Gears で行なっていたもの。ところが、Gears を使ったウェブ・サービスは少ない。数えるほどしかない。

その理由に、「Gears がブラウザーのプラグイン形式」であったことを挙げていた。

HTML という規格自身が、オフライン・ウェブ・アプリケーションの機能を持つメリットとして次の 3 つを挙げていた。

  1. モバイル端末・ネット端末への普及 (特にこれらの機器にはオフライン・アプリのニーズがある)
  2. プラグインという足枷からの解放 (何といってもウェブ・ブラウザー自身がサポートするのだから)
  3. 標準化による開発者の増加 (今はどうしてもノウハウと人材が不足している)

講演はオフライン・ウェブ・アプリケーションを作る 4 つの API の説明と、自作ライブラリーの紹介だった。ただ、自作ライブラリーは今年中の公開予定といふことなので、今回のエントリーでは割合。4 つの API 名は以下の通り。

  1. Application Cache
  2. Web DB
  3. Web Storage
  4. Web Workers

以下、列挙式にメモを書いていく。

Application Cache

  • manifest ファイルに、ローカルに保存するファイル (HTML, JavaScript, CSS, Images, etc.) を書いておく
  • ウェブ・サーバー側で、manifest 用の MIMETYPE を設定する
  • <html manifest="foo.manifest"> のように指定する
  • manifest file がサーバー側とローカル側で一致しないと、キャッシュのやり直しが始まる
  • コメント (バージョン番号) を変えたりするのがコツ? (でも Firefox は最新版でも未対応?)
  • キャッシュ・ファイルを編集してもアップデートはされない (あくまで、manifest ファイルのアップデートがトリガー)
  • Application Cache を ON にしていると、開発しづらい。開発時は使わないか、manifest を自動生成させると良い。
  • JavaScript である程度、Notification の制御も可能

Web DB

  • オフライン・ウェブ・アプリケーションを作る時の核になる
  • JavaScript の中から SQL を叩ける
  • 他ドメインの DB にはアクセスできない
  • ドメインごとに複数の DB、複数の Table を作れる
  • 非同期型と同期型がある
  • ウェブ・サーバーなしでも動く

Web Storage

  • 他ドメインのストレージにはアクセスできない
  • Local Storage (永続的) と Session Storage (ウィンドウごと) の二種類がある。後者は JavaScript のグローバル変数のやうなもの?
  • Webkit は file:// だと使えない
localStorage.setItem("key", "value")
var val = localStorage.getItem("key")

Web Workers

  • バックグラウンドで動作するスレッドのようなもの
  • でも本当のスレッドではない
  • 変数を共有できない
  • window, document にもアクセスできない
  • DOM にもアクセスできない
  • デバッガーで止められない
  • すぐ複雑になる
  • Worker 間の通信には Message を使う (DOM へのアクセスは UI Thread にやってもらうよう Message を送る)

課題

  • ノウハウの蓄積が少なすぎる
  • 差分アップロード/ダウンロードをどうやって実現しよう
  • フェイル・セーフ対策は?
  • 同じデータを他の人が変更してたら Conflict しちゃうよ
  • LocalDB のないブラウザーがある (Fx)

あとがき

ここら辺のメモを少し深く勉強して、明後日の (というかもう明日か) の Hachathon に臨む。ドキドキ。

2008-06-23

GDD2008「Google Gears から Gears へ」

このエントリーは、Google Developer Day 2008 に関するレポート記事の一部です。

Google の日本人エンジニア二人 (河内隆二・市川宙) による 45 分のセッション。Google Developer Day 2008 の中で、一番面白かった。

セッションの内容は、Gears の基本説明。

Gears は、ウェブ・ブラウザーにオフライン機能を追加するためのプラグイン。ユーザーは Gears 対応サービスにオフラインでもアクセスできて、情報の追加・更新・削除が出来る。そして、オンライン復帰時には、オフライン中の編集が同期される。

ブランディングの変更

「Google Gears」から Google が抜けて、「Gears」という名称に変更になった。

理由は、Gears の開発がオープンに行なわれていることを強調するため。Google Code のプロジェクト・ページを見ると、確かにライセンスは New BSD License (修正 BSD ライセンス)。リポジトリーも公開されているし、Wiki も読めれば、バグの追跡も行なえる。

同じ Add On の Google Toolbar では、開発中のリポジトリーはおろか、バグのチケット (?) を発行することすら出来ない。せいぜい、Google Groups で問題を報告する位い。Gears が「オープンな開発プロジェクト」と言うのは嘘偽りない。

「ブラウザーの拡張を目指す『オープンなプロジェクト Gears』が、Google という一企業の政治下にあるわけではない (@aka 的異訳)」ことを強調するためにも、「Google Gears」から「Gears」にブランド名を変更した、とのこと。

Gears の今

Gears の目指すところは、オンラインとオフラインのシームレスな切り替え。

そのためには、オフラインでもオンラインと同じデータにアクセスできないといけない。オフライン中にアクセスできる場所は、ローカル環境しかない。けれど今のブラウザーは、ローカル・データにアクセスすることが制限されている。

そこで、Gears は次の機能を提供する。

  • ローカル環境に DB を用意して、ネット側の情報をバックアップする仕組み
  • ウェブ・ブラウザーから、ローカルの DB にアクセスする仕組み
  • オンラインに復帰した時、ローカルとネットの情報を更新・同期する仕組み

現在、Gears はブラウザーのプラグイン (アドオン) という形で提供されている。その実態は、JavaScript の API。JavaScript の動くブラウザーは全てサポートする意向らしい。

Gears のサポート情況はこんな感じ。

  • IE
  • Firefox2+ (Windows, Mac, Linux)
  • Windows Mobile
  • Safari (もうすぐ
  • Opera (間もなく)

Gears に対応したサービスはこんな所がある。

Gears の中身

外から見た Gears

Ajax の仕組みを簡単に書くと、次のやうになる。

Internet - XHR.UI

ここで、XHR は XMLHttpRequest のこと。非同期通信機能と思ってもいい。UI は、ユーザー・インターフェース。

一方の Gears はかうなる。

Internet - XHR.Sync - Local DB - UI

非同期通信と UI の間にローカル・データベースを持つ。また、ネットとローカルの同期をとるために、「Sync」用の緩衝モジュールが入っている。

ネット側のデータを全て「Local DB」に持って来れば、ネットとの通信を行なわずに処理が可能になる。これは、大量の通信量が発生するため敬遠されてた処理を、行なうことが出来る可能性が出てきたということ。

内から見た Gears

Gears の基本構成はこんな感じ。

Local Server
ウェブ・アプリケーションの HTML などをローカルに保存。個別の URL をキャッシュする「ResourceStore」と、どのファイルをキャッシュするかを指定する「ManageResourceStore」の組み合わせ。
Database
SQLite3 を利用。GB 単位のデータも保存可能。セキュリティ向上のため、厳格な sema-origin セキュリティ・モデル (同じ URL からアクセスされた時に限り、データにアクセスできる) を採用。
Worker Pool
JavaScript に擬似スレッド機能を提供する。JS のインタープリターを複数動かすイメージで実現。正確な意味のスレッドではないので、ワーカーと呼んでいる。

Gears の未来

Gears は、「オンラインとオフラインのシームレス化」のため、更なる進化をとげてゆく。

Desktop API
デスクトップ上にアイコンを作れるようになる。お手軽さとサービス固有のアイコンを用意できることがウリ。
Desktop Notification API
ポップアップお知らせ機能。ブラウザーのウィンドウと独立していて、ブラウザーを閉じてても OK。
File System Access API
複数のファイルをアップロードする仕組み。
Large Upload (Resumable Uploader)
アップロードの進捗表示。再接続機能の提供。
Geolocation
現在位置を取得する試み。GPS や IP アドレスの情報を使うらしい。ローカル検索する時、便利そう。

Gears の未来は明るいやうに思える。セッションを聞いて、真面目に勉強したくなった。

2008-06-18

ぼくが使ってる Firefox Extentions (Firefox 3 版)

ぼくが Firefox 3 に入れてるアドオン (Extentions) をリスト・アップしてみる。これは、2006/05 に書いた記事の続き。

Google Toolbar for firefox

ご存じ、Google Toolbar。Google の各種検索 (画像検索・ローカル検索・サイト内検索 etc.)、簡易英和機能、Google Bookmark への簡易アクセス。これがないと、もうやってけない。

Firefox 3 への対応は遅れていたけれど、2008-06-15 前後に対応版がリリースされた。

設定については、過去記事もどうぞ。

Greasemonkey

ブラウザー側でサイトを JavaScript で編集するアドオン。ここで言う JavaScript は Greasemonkey Script と呼ばれユーザーが Gseasemonkey 環境に追加インストールする。Greasemonkey Script はUserscripts.org で入手可能。

6 月に Firefox 3 に対応した、Greasemonkey Version 8.0 がリリースされた。

Greasemonkeyスクリプティング TIPS&SAMPLES

FaviconizeTab

Firefox のタブを小さくしてくれるアドオン。名前の由来は、小さくしたタブには favicon しか残らないところから。

ぼくはタブを沢山開くので、すぐゴチャゴチャしてしまう。Faviconize を使ってスッキリなタブを見てからは、もう元には戻れない。

MakeLink

コピーしたテキストを自動編集するアドオン。CopyURL+ と同じ。違いは 2 つ。

  1. Firefox 2.0+ に対応している
  2. 自動編集機能の追加・編集・削除がアドオンの設定からできる (CopyURL+ は user.js を編集する必要があった)

公式ページの最新バージョンは、Makelink 3.0.2 だけれども、ぼくが入れてるのは 8.06。公式ページの情報が古い気がする。

clmemo@aka は Makelink についてスルーだったので、後日エントリーにしやう。

Gears

旧称 Google Gears。ウェブ・ブラウザーにオフライン接続機能を提供するアドオン。Gears のオフライン機能に対応したページは、まだ少ない。ぼくの知る限り、Google Reader, Remember the Milk そして Google Docs の三つ。どれも「使える」ウェブ・サービスなので、Gears をインストールする意味はある。

最近はデスクトップ PC の Firefox にも Gears をインストールするやうになった。デスクトップ PC はオフラインにならないのに? と疑問を持たれると思ふ。実は、デスクトップにアイコンを作る機能が「Gears」に追加されてる。例へば、Remember the Milk のアイコンをダブル・クリックすると、いきなり firefox が起動して Remember the Milk のサイトを開く。

この他にも、Gears は色々と進化のきざしを見せている。現在、ぼくの最注目アドオン。

diigo Toolbar

最近は、Diigo といふソーシャル・ブックマークがお気に入り。気になるテキストをハイライトする機能が便利。教科書に蛍光ペンを走らせる感覚が、ウェブ・ページでも出来る。

ちゃんとしたレビュー・エントリーは、まだ一本も書いてない。diigo は機能が多すぎて、使いこなせない。でも一番魅力的なサービス。

Google Notebook

Google Notebook を使おうとすると外せない。diigo と半々で使ってる。

Firebug

ウェブ開発者用アドオン。JavaScript, CSS のデバッグができる。

あとがき

「Emacs は環境である」とか「カスタマイズしない Emacs は使いものにならない」なんて昔は言っていた (もちろん、今でも言っているけど)。最近は、Firefox も同じやうに言える。「Firefox は (ウェブ・ブラウザーを越えた) 環境」のやうな存在で、「カスタマイズしない Firefox は使いものにならない」。アドオンは、本当に楽しい。

2008-06-12

GDD2008 基調講演

このエントリーは、Google Developer Day 2008 に関するレポート記事の一部です。

最初に、今昔物語。メイン・フレームはダム端末メインで、ユーザーのニーズに合っていたかどうか疑問だったけど、新しいソフトのインストールは一か所にインストールするだけで良かった。PC に時代に入って、Dll 地獄 etc... が待っていた。そして、今のウェブ・アプリは、再びメイン・フレームの時代に戻り始めてる。サービスのアップデートは、サーバー一か所の修正で済む。その代わり、ウェブ・ブラウザーがユーザーのニーズを 100% 満たしている状況ではない、と。。。

そんな状況を、Google は変えて行きたい。さう言って、Google Developer Day 2008 のキーワード「3 つの C」が出た:

  1. Client
  2. Connectivity
  3. Cloud

以下、ポイントのみを列挙。

Gears (Client)

  • Google Gears から Gears へ。ブランディングを変更。
  • HTML5 で組み込まれることを、先取りしている。
  • Gears はオフライン・アクセスを可能にする。また、Gears はそれだけにとどまらず、ウェブ・ブラウザーをより使い易い端末にするため、機能強化に取りくんでいる。

Android (Connectivity)

Google の携帯向け OS。デモを公開。ストリート・ビューを表示。更に、携帯端末を持ったまま回れ右すると、その場で回れ右したかのようにストリート・ビューも表示が変わった。Google Maps で経路検索していると、経路が地図上にオーバーレイされる。

アシモフの SF 小説「ファウンデーション」に同じやうな描写がある。その世界が、もうすぐ近くに来ていると感じた。

Google App Engine (Cloud)

  • Google のインフラを使って、ウェブ・サービスが作れる
  • 現在、日本ではアカウント開設が出来ない (ユーザー認証に SMS を使うため)。今週、日本でも Google App Engine のアカウントを開けるようにするとのこと。

その他

  • Social 化。Friend Connect に取り組んでるよ
  • Google Maps API for Flash - Flash から Google Maps 呼び出し。外部デバイスの情報取り込みが出来る。デモを行なうも失敗。
  • Google Earth API - 現在、Windows のみで利用可能
  • Restful 対応 - URL の ? 以下にパラメータを入れて、データを受け取る方法。Chart API や Google Static Maps API が対応。

最後に、Google の 10 の技術文書が日本語化されたとのアナウンスがあった。

そして、Google Developer Day 2008 Japan の開催にあわせ、さらに多くのドキュメントと映像を日本語化しました。

Google Japan Blog: 日本のデベロッパーの要望に応え、多くの技術ドキュメントを日本語化しました より引用

日本語化された文書は次の通り。

2007-06-07

Remember the Milk も Google Gears をサポート

clmemo@aka でも何度も紹介しているオンライン ToDo 管理サービス Remember the Milk が、Google Gears に対応した。これは、今までネットに繋がっていないと出来なかった ToDo 管理が、オフラインでも出来るやうになった、ということを意味する。

Google Gears のインストール方法は、過去記事を参照のこと。

既に Google Gears をインストールしている場合は、何もする必要はない。Remember the Milk のサイトに行くと、一度だけ Google Gears と Remember the Milk が通信する旨、確認が取られる。OK を押せば、Google Gears が使用可能になる。

Remember the Milk の優れている所は、ブラウザーがオフラインになると、自動的に「オフライン・モード」に移行するところ。これは、Google Reader 版にはなかった機能。なんで、Google Reader にこの機能がないのか考えてみたのだけど、オフラインになる度に、2000 もの記事をローカルに保存するのは、処理が重すぎるからじゃないかな。特にぼくの MacBook は、ディスプレーを閉じるとオフラインになる。で、頻繁に開け閉めを繰り返すことがあって、その度に 30 秒近くも 2000 の記事を同期させたりするかと思うとゾッとする。Remember the Milk の場合、2000 の記事よりは情報量が少なさそう。だから、オフライン自動検出を働かせるメリットが大きいのかな?

さて、これから Google Gears に対応したサービスが増えてくると、手動でオフライン・モードにする手間は大きくなってくる。これからのサービスには、オフライン・オンラインの自動検出は必須になるでせうね。それから、Google Gears も、複数のサービスを一括でオフライン・オンラインを切り替える仕組みを用意してくるかな。

2007-05-31

Google Gears リリース: Google Reader がオフラインで記事を読めるようになった

Google が Google Gears なるブラウザー拡張機能を公開した。これは、オフラインでウェブ・アプリケーションを使えるようにするための JavaScript API。早い話が、今までネットに繋がないと使えなかったウェブ系サービスをオフライン時にも使えるようにしましょうというもの。Google Gears は、サービスのオンライン時とオフライン時を橋渡しするソフトで、いきなり全てのサービスをオフラインで使えるやうになるわけじゃない。サービス側も Google Gears に対応する必要がある。Google では、Google Gears 対応サービスの第一弾として、Google Reader に白羽の矢を立てた。

Google Gears のインストール

Google Gears は、現在、firefox の拡張機能版のみが公開されている (Windows 版は IE のサポートもあり)。下記ページから、拡張機能のインストールをするだけ。対応 OS は、Windows, MacOS, Linux。

Google Gears API Blog によると、Google Gears チームは Adobe, Mozilla そして Opera とも一緒に動くように開発を進めているらしい。また、Google Gears はオープン・ソースで提供されているので、興味のある人は開発に参加できるとのこと。思わぬブラウザーやサービスが、Google Gears に対応するかもしれない。

Google Reader in Off-line

Google Reader は、Google Gears をインストールすることで、オフラインでも記事を閲覧できるようになる。

Google Gears - OfflineGoogle Reader をオフラインで使うには、右上にある薄緑色の下矢印アイコンをクリックする。数秒、長くても 1 分程で記事がダウンロードされ、オフラインでも記事を閲覧できるようになる。

Google Gears - Sync

ネットに再接続したら、青色の上矢印アイコンをクリック。これで、オフライン中に読んだ記事の既読情報や記事につけたタグ情報がアップされる。

Google Gears - Upload

Google Reader のオフライン・モードの特徴は以下の通り。

  • ローカルにダウンロードされる記事の数は 2000。
  • 画像およびビデオはダウンロードされない (ので見られない)
  • オフライン中に読んだ記事は、オンラインに戻るとウェブ版にも既読が反映される。
  • オフライン中につけたタグは、オンラインに戻るとウェブ版にも反映される。
  • オフライン中は、新規フィードを登録できない。

一番痛いのは、画像・ビデオの閲覧が出来ないこと。画像・ビデオを含まないフィードに「offline」といったタグをつけて、オフライン時は「offline」タグのついたフィードだけを読む、といった工夫が必要そう。あと、Google Reader で気に入った記事をはてなブックマークなんかにブックマークすることも出来ない。さういうことの必要なフィードには、スターをつけるか、「b.hatena」といったタグを付けて、後日ブックマークするしかないのかなぁ。