Kyoto GTUG 主催の Google Wave 勉強会に行ってきた
Google Wave は招待して貰ってから使用しただけで、プログラムを書いた事もなかったので、ちょうど良い機会だから参加してみた。
以下、勉強会中にとったメモ書き。
# 資料じたいは 勉強会 資料 - Google Developer Group 京都 で公開されている
Kyoto GTUG とは
- Google の技術を取得しようとするグループ
- 現在、全世界で 30 各国 70 を超える地域で活動中
- 参加してない人はしてね。
- ハッカソンとは
- 複数のチームでアプリケーションを作成して発表する
- 同じ日に東京でも Google Wave ハッカソンが行われ、発表の時にお互い中継する予定
Google Wave 勉強会
- 株式会社ルーツの北村研二さん
- Google Wave とは何か
- Google Wave 以前のコミュニケーション
- メール:リアルタイム性 -> 低
- 掲示板:リアルタイム性 -> 中
- チャット:リアルタイム性 -> 高
-
- Google Wave はリアルタイム性が低いものから高いものまでカバーできる
- コミュニケーションの始まりはメールのようにリアルタイム性は低い
- 話が盛り上がる or 議論の終盤になるとリアルタイム性があがる
- 最終的にはチャットの速度の情報交換ができる
- Google Wave の用語
- Wave:会話のための Wavelet を格納するコンテナ
- Wavelet:参加者が配置され、対話を行うスレッド
- Blip:各メッセージ
-
- 過去の状態を再現できる Playback
- メディアプレーヤのように、過去の状態を再現できる
- まとめ
- 参加者がメールのように情報交換でる
- それを Wiki のように多人数で編集できる
- リアルタイムで編集できる(ただしコンフリクトした場合は、マージする必要あり)
- プラットフォームとしての Google Wave
- API が提供され、それぞれの開発者が勝手に作成したガジェットやロボットを動かせられる。
- プロトコルとしての Google Wave
- Google Wave Federation Protocol により複数の Wave サーバを繋げ、拡張できる
- プロトコル自体は OSS で公開されている。独自にサーバを立てる事も可能
- Google Wave Gadgets
- Google Gadgets + Wave API
- 基本 Google Gadgets と同じなので HTML + JavaScript で開発
- Wave に貼付ける事ができる
- Wave 参加者全員で利用する事ができる
- Google Wave Gadgets 例
- 倉庫番やチェス
- 開発に必要なもの
- Google Wave アカウント
- ガジェットの XML ソースを配備する場所
- 一般の Web サーバ、Google Code の svn, Google Gadgets Editor
- Google は svn での管理を勧めている
- ハッカソンでは Google Gadgets Editor を使う予定
- 今日作る Gadgets
- Hello World
- 投票 Gadgets
- 画面を作る
- タグでクリックできる箇所を囲み、onClick 属性でクリックした時の動作を記述する
- Google Gadgets に Wave 用のライブラリを追加する必要がある
- require することで wave インスタンスを使用できるようになる
-
-
- JavaScript のコードを書く
- HTML 内部にスクリプトタグでくくって、記述する
-
var state1 = wave.getState().get('key'); var state2 = wave.getState().get('key', option); _gel('hoge').innerHTML = state1 // _gel は document.getElementById('') の略
-
- Google Wave Gadgets と Google Gadgets との違いは、多人数で状態をリアルタイムで共有できるかどうかの違い
-
- 状態変化時に画面を更新する(コールバックを登録する)
- ローカル変数に状態を持たない -> state にもつようにする
- ローカルに持つと他の人に共有できないため
- 初期化のイベントハンドラを登録するメソッドがある
- 状態変化時に画面を更新する(コールバックを登録する)
gadgets.util.registerOnLoadHandler(function() { // ここに初期化コード });
-
- State の初期化
- wave.getState.reset() で初期化するらしいが、動かなかった
- State の初期化
-
- まとめ
- 基本 Google Gadgets なので、Google Gadgets で可能な事は Wave でも可能
- まとめ
- Google Wave Robots
- Wave に参加者として追加するプログラム(ボット?)
- ユーザの Wave の操作に反応するプログラム
- 自動翻訳プログラムなど
- Google App Engine 上で動かす事になる
-
- 作成するに必要な開発環境
- Google Wave のアカウント
- Eclipse + Google Plugin for Eclipse
- Google Wave Robots のライブラリをダウンロードし、war/WEB-INF/lib にコピーする
- http://code.google.com/p/wave-robot-java-client/downloads/list
- プロジェクトのプロパティを開き、Java Build Path を開き、Libraries タブの Add JARs から追加
- ロボットクラスを作成する
- コードをがりがり書く
- 設定ファイルの変更をする(war/WEB-INF/web.xml)を変更する
- war/_wave/capabilities.xml を作成し、イベントハンドラを検知するように作成する
- 使うイベントを設定する
- もろもろデプロイの設定を行い、デプロイする
- 作成するに必要な開発環境
-
- ロボットを追加するにはコンタクトリストに追加する必要がある
- ApplicationID@appspot.com
- Wave にロボットを追加する
- + ボタンを押下してロボットを Wave に追加する
- Blip を作成し Done を押下すると
- ロボットを追加するにはコンタクトリストに追加する必要がある
-
- Java の外部ライブラリ(jar)を使用する方法
- war/WEB-INF/lib にコピーする
- クラスパスを追加する
- Java の外部ライブラリ(jar)を使用する方法
-
- 投稿には HTML が使用できるが、タグには制限がある
- img タグは使えない
- タグを追加するには、textView.appendMarkup('message') を使う
- 投稿には HTML が使用できるが、タグには制限がある
-
- Google Wave Robots のログ
- ログは Google App Engine の Web サイトからログを確認する
- ログレベルを指定できるが、severe, waring までしか認識しない
- Google Wave Robots のログ
-
- Google Wave サーバ
- FedOne
- すでに公開されている Wave サーバ
- Wave クライアントのソースも公開されている
-
- Google Wave Federation Protocol
Wave 上で動くプログラムの基礎的な所が押さえる事ができたのでとても良かった。
明日はセキュメロに行く予定。