CodeZine(コードジン)

特集ページ一覧

Google流プログラミングの真髄を筑波大学で見てきた

「つくばコンピュータサイエンス産学オープンカレッジ 第4回」レポート

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/12/20 00:00

12月14日、筑波大学で、Googleを代表するAPIのキーパーソンを本社エンジニアリングチームから招聘して主要APIを解説するオープンカレッジが行われた。本稿では、その様子をお届けする。

目次

開催概要

 12月14日、「つくばコンピュータサイエンス産学オープンカレッジ 第4回」が筑波大学で開催された。同大学のシステム情報工学研究科コンピュータサイエンス専攻が主催するイベントで、各産業界の協力を得てIT技術の最新動向を解説というもの。

会場の様子
会場の様子

 今回は「Google流プログラミング」と題し、Googleを代表するAPIのキーパーソンを本社エンジニアリングチームから招聘し、主要API(Maps、Desktop、Gadget)の紹介と、Google社の紹介が行われた。世話人の加藤和彦教授によると、今回の講演は聴衆の関心が特に高く、用意した110席は30~40倍の倍率で、直ちに満席となったという。

加藤和彦教授
加藤和彦教授

 講演は次の流れで行われた。

  1. Google Maps API
  2. Google Gadgets API
  3. Google Desktop SDK
  4. Googleの会社紹介

Google Map API

 まず、Chris Atenasio氏によりGoogle Map APIの解説が行われた。Atenasio氏によると、Googleマップの長所はUIがよいこと(スムーズにドラッグやズームなどが行える)、地図上で場所やショップ、サービスなどを検索することができること、にあるという。

 Maps APIの実装は、HTMLやJavaScriptの基礎知識が必要となるものの、非常に簡単に行うことができる。例えば、下記は特定の緯度・経度を中心にもつ地図を表示し「Hello, world」と表示するもの。他にも、ランダムに複数のマーカーを表示するといった、実装例がいくつも紹介された。

Googleマップの実装例
<script src="http://maps.google.com/?file=api&v=2&key=..."></script>
<div id="map" style="width:100%;height:100%"></div>
<script>
function load() {
    var map = new GMap2(document.getElementById("map"));
    map.setCenter(new GLatLng(36.109, 140.0997), 18);
    map.openInfoWindow(map.getCenter(),
                       document.createTextNode("Hello, world"));
}

 なお、Maps APIを利用するにはサインアップし、Maps API keyを取得する必要がある。無償だが、「一日に50万PV以上が見込まれる場合はGoogleへの事前連絡が必要」「サイトが無償でなければいけない」「公開されていなければいけない(イントラネットや構内は不可)」など、いくつかの制限があるため、このような場合には、エンタープライズのオプションを検討するとよい。

 GoogleマップとGoogle Earthの違いについても触れられた。Googleマップはアクセス性がよく、どんなブラウザでも実行できる。Google Earthはスタンドアローンのため高機能を実現できる、という点が大きく異なる。APIは現時点で別物だが、将来的にはどちらでも使えるようにしたいと考えているという。なお、KML(keyhole markup language)というフォーマットを使えば、APIほどパワフルではないがGoogleマップとGoogle Earthで共用できる。

 現在のGoogleマップが抱えている問題として、地図がスタティックなイメージになっていることが挙げられた。たとえば、2つの言語をサポートする場合、2つのイメージを用意する必要がある。これはかなりのデータ容量を必要とするため、各地域のGoogleマップはローカルの言語でのみ提供されるようにしている。つまり、現時点では地図を別の言語に翻訳することなどはできない。

 また、「Googleマップはいつまで無料で提供されるのか」という質問に対しては、「Google社のビジネスポリシーとして、まず非常に使える製品を出してから、ビジネスはその後に考える。ユーザ側に迷惑のかかるコスト削減はしないと約束できる。ある日突然サービスをやめることは考えられない。ただ、基幹系の安定したサービスが必要であれば、エンタープライズのオプションをお勧めする」と述べた。

 Google Maps APIの詳細については、次のページを参照いただきたい。

Google Maps API

Google Gadgets API

 続いてSophia Brueckner氏により、Googleパーソナライズドホームページ、Google Gadgets APIの説明が行われた。

 「Googleパーソナライズドホームページ」とは、通常のGoogleホームページの機能(検索ボックスなど)に加え、さまざまな情報の入ったボックス(ガジェット)を表示できるというもの。

 ガジェットは、世界中の開発者によって何千もの作品が作られており、ディレクトリ型の検索エンジンから探し出して、自由に追加できる。Gmailの受信トレイ、カレンダー、ニュース、天気予報、路線図、ゲームなど、さまざまなものが用意されており、GmailやGoogleアカウントでサインインしていれば、どのPCからでも自分のホームページを見れるのが特徴的だ。

Googleガジェットの作成

 Google Gadgets APIを利用すると、自分でガジェットを作成することもできる。APIというと学ぶべきことが多いように感じるが、できるだけ簡単に修得できるように工夫されているので、非常に簡単だ。

 また、ガジェットのデータはGoogleのサーバ側に保存されるため、TODOリストのようなものを作成して、さまざまなPCから自分のTODOリストを確認するといった使い方も可能。

 Brueckner氏によると、「なぜGoogleガジェットを書きたくなるのか」というと「とても楽しいからに尽きる」とのこと。実際、仕事ではなく、ただ楽しいから書いているという人も多いらしい。

 また、開発者は「非常にすばらしいコードを書いたが、ユーザを見つけることができない」といった問題に直面することがあるかと思う。Googleガジェットの場合、23カ国、16言語に対応しており、ユーザが世界各国にいるため、そのような心配はない。

 例えば、Wikipediaを検索するガジェットは、オランダの13歳の少年が、楽しいからという理由で数時間で書き上げたもの。現在では、世界でもっとも人気を博しているガジェットの一つになっているらしい。

 いかに簡単で、いかに多くの人たちの目に留まる可能性があるかが、知れよう。

ガジェットのコーディング

 ガジェットは、XML、HTML、JavaScriptを利用して作成するため、すでにHTMLとJavaScriptを知っていれば、特に難しいことはない。実際、ガジェットの書き方はとても簡単で、たとえば、Hello, worldのガジェットは次のようになる。

Hello, worldのガジェット
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
  <ModulePrefs title="題名" />
  <Content type="html">
    <![CDATA[こんにちは]]>
  </Content>
</Module>

 あとは、Googleのサイトにホスティングすれば利用できるようになる。その他にも、既存のガジェットを再利用してガジェットを作成する方法なども示された。

 ちなみに、XMLを使っているのはコンピュータも人間も簡単に読めるという理由から。タグが<Module>なのは、以前ガジェットをモジュールと呼んでいたからと補足された。

ガジェットの多言語化と登録

 Googleガジェットでは、多言語化の対応も簡単だ。表示を変えたい部分は「MSG_」で始まるプレースホルダで指定しておき、言語ごとのXMLファイル(「ja.xml」「en.xml」など)を別途用意すればよい。パーソナライズドホームページで選択しているロケールに合わせて、自動的に適用される。

 また、作成したガジェットをGoogleディレクトリに登録するには、サムネイルやガジェットのスクリーンショット、説明、著者情報を用意し、Submitページで申請を行う。

 その他にも、ほとんどのガジェットはパーソナライズドホームページ以外に、たとえば自分のホームページに載せることができるので、利用目的は幅広い。

悪意のあるガジェット

 「悪意のあるガジェットがGmailの情報を読んだりすることができるのか」という質問に対しては、すべてのメール情報を見ることはできないが、確かに悪意のあるガジェットを作ることはできると回答した。

 ただ、危険性のある場合には警告を表示、不正ガジェットの報告があったらすぐに削除、というように対策は講じられている。なお、従来はインラインのガジェットでしかできなかったことが、ほとんどIFRAMEのガジェットでもできるようになってきたので、IFRAMEガジェットの利用を勧めるとも述べた。

 その他、Google Gadgets APIの詳細については、次のページを参照いただきたい。

Create Google Gadgets

  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2006/12/20 12:22 誤字修正:想像的→創造的

バックナンバー

連載:イベントレポート

もっと読む

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5