Union Server Module - 手動でバージョンチェック
2010 年 5 月 8 日Unionのサーバーモジュールをそろそろ本格的に使おうかと思っている今日この頃、皆様いかがお過ごしでしょうか。
今回はswfからUnion Serverに接続した時点で手動でサーバーにバージョン情報を送って、Server Module側に書き込んであるバージョン情報と一致するかどうかを調べ、サーバーからClientの”compatible”属性に書き込む、ということをやってみました。これは、サーバーモジュールとswfを両方更新したときにswfがキャッシュで古いままだった場合、双方のコードが一致しなくて困ったことになることを防ぐためのものです。
FITC Toronto 2010 感想とか
2010 年 5 月 5 日FITC Toronto 2010が終わってはや1週間。今年はのんびり遊ぶ気分で行ったので、メモの量が去年の1/5くらいだけど日記的に投稿。
- Day 0
FITC開始前はコリン邸でUnionのコードやMegaphoneのデモを見せてもらったり、プレゼンの練習をしたり。夕方からホテルに行って夜はパーティ参加。最初に会話したのは北米の学生たちで、FITCって本当に学生が多い。この夜に一番ゆっくり話したのは去年の最終日に挨拶したJared Ficklinさんで、たまに僕のFacebookの日本語発言の解読をしたりしていると言ってた。酔狂な、と思ったけど、「人生には学べることが山のようにあって、日本語もその中の一つに過ぎない」的なことを仰っていて、学習に対する貪欲さに感動。これが今年学んだことの一点目。
- Day 1
初日はJames WhiteさんのBack to the FutureとClaus WahlersさんのHacking SWF、パネル対談のFrom Solo to CEOの3つに参加。昼はホテルから割と近くにある韓国レストランでビビンパ。この店、トロントで最高級にうまい米が出たかもしれない。韓国語は1フレーズ喋ってみたけど軽くスルーされた。夕方はスライド作りで忙しそうなyossyと日本にいるのと変わらないtweetを飛ばし続けるfladdictさんの部屋を訪ねたり、cbcnet栗田さんに初顔合わせしたり。夜はF13近くのSupermarketで食事してから、F13でJames Pattersonさんの作品を眺めたり、紙飛行機の群れをかわすポーズで写真撮ったり。この辺まででかなり燃焼し尽して、一応Rooftop Partyにも行ったけど半分くらいで帰ってしまい、自室でプレゼンの練習とかしてた。
- Day 2
この日の朝は日本人スピーカー二人と朝食ハンティングへ。8:00AMくらいだったけど店が全然あいてなくて延々歩いた結果、F13から300mほどしか離れてない中華街のGoldstone Noodle Restaurantという店で食事することになった。食事の後は皆さん部屋に引きこもってスピーチ作成。僕も午前はLarge, Physical, Flashを半分くらいしか見なかった。これは立ち見で疲れてしまったため(ただでさえなれない英語を聞くだけで疲れるのに)。
昼はサーバーの調子を見たり、昼寝したりして、いよいよColinのセッションの時間。Thijsにはこの時点で最初の顔合わせ(そのまま最後になったけど)。僕とThijsはちょっと離れた席で待機して、デモの時だけ壇上で喋った。大体スムースにいったけど反省点が二つあって、「スクリーンを見て欲しいタイミングでは、自分がスクリーンを見ないといけない」点と、「実際に遊べるURLをはっきり紹介しなかったので、ゲームの集客効果がなかった」点。でもあの舞台で実際に喋ってみるという経験ができたことはとにかく良かった。ここはColinに感謝してもしきれない。
夕食はColin, Derekたちとホテル近くの和食レストランで打ち上げ。日本語の接客とか日本語メニューとか出てきて、食事も完全に和食の味。こんな店もあったんだなあと驚き。雰囲気は若干居酒屋っぽかったけど。その後Derekと何時間かUnionのサーバーコードについて話したり教えてもらったり。そんな風にのんびり誰かとコード絡みの時間を過ごすなんてのは日本でもやったことがないので新鮮だった。一番近い経験は大学時代に誰かの家で寝るまで碁を打ったくらいか…。日本でもそういった雰囲気のSaloonが今欲しい。
- Day 3
朝はyossyを連れ出して近所のSUBWAYへ。とにかく朝はどうしたらいいのかよくわからない。この日は日本人二人のセッションがあったのでそれに参加。yossyの英語が去年よりはるかに上達していたのは若さか。その後は打ち上げ的な昼食でやたら辛い料理を食べて死ぬような思いをしたことだけを覚えている。
最終日ほかに参加して面白かったセッションはThe Cool Shit HourとEyes Can Hear, 5 waysの二つ。デモの内容はもちろん、うまく行かなかった場合のリカバリーもやたら参考になる。Jaredが会場に用意したデモ機でうまくいかなかった後に再生したビデオは冒頭で「このビデオを見ているということは、デモで何らかのトラブルがあったということだな」とか本人が喋ったりしていた。
夜はDerek宅にお邪魔してちょっとのんびりしたあと、クルージングの前半だけ参加。オンタリオ湖からみたトロントの夜景は、まあ、綺麗だった。あまりに寒かったので、あまりのんびり見てられなかったけど。
- Other
トロントから離れる日は適当に近所でサンドイッチを食べて、適当にシャトルバス予約して乗って、適当に空港で食事して、適当なおみやげを買った。
滞在中は去年知り合った現地の友人とFacebook越しに恋人って何だろう的なテーマでChatするというよくわからない事もしてたんだけど、そこから学んだことが「信頼すること」の大切さで、今回のトロント滞在で大きく学んだことの一つだったりする。いずれ別エントリーで詳しく書いときたい。
Union Alpha 7がリリースされました
2010 年 4 月 14 日http://www.unionplatform.com/ Alpha6からAlpha7にメジャーアップデートです!今回の機能的に大きな変更は
- スナップショット機能
- オブザーバーへのアクセス追加
- ユーザーアカウント周りの機能強化
など。入室者や属性などのイベントまわりが大分変わったので、Alpha6以前のコードはかなり書き換えないと動かないかもしれません。参考までに、WonderflのTypeShootで修正が必要だった部分を書きます。
- reactor.getClientManager().self() が廃止のため reactor.self() に変更
- 1の変更に伴ってself()の返り値の型が Client からIClientに修正されました
- CLIENTイベントはOCCUPANTとOBSERVERに分化。
- CLIENT_COUNT -> OCCUPANT_COUNT
- REMOVE_CLIENT -> REMOVE_OCCUPANT
- ADD_CLIENT -> ADD_OCCUPANT
- RoomEvent.UPDATE_ROOM_ATTRIBUTE は AttributeEvent.UPDATE に変更
- 4の変更に伴ってリスナーの引数も(e:RoomEvent) から (e:AttributeEvent)に変更
- 5の変更に伴って、属性を変更したクライアントの取得方法を RoomEvent.getClient() から AttributeEvent.getChangedAttr().byClient に変更
- getClients() メソッドもOccupantsとObserversに分化のため getOccupants() メソッドに変更
- JOINイベントの時点でSYNCHRONIZEDが完了している仕様になったので、onJoinとonSynchronizedといった具合に二つにわけていた処理をJOINイベントのリスナーに一本化
- カスタムクライアントが実装するべきIClientのインターフェースがもろもろ変更になったので対応
といったところです。オブザーバー情報が取れるようになったので、○人観戦中、というのもすぐに取れそうですね。(04/14 14:05 2番の記述を修正しました)
FITC Toronto 2010
2010 年 3 月 26 日今年は行けないな~と思ってましたが、やっぱり行けることになりました。
それで4,5分くらい壇上で何か喋る予定です。
たった数分で、しかもあと4週間あるのに、今からプレッシャーが凄いです。
頑張ってスピーチ原稿作ります!
