3/21/2008 ギークサロン「Erwan Loisant 氏と Flock について語る」参加レポート (by Ryosuke Matsuuchi)
サロンは 19:30 に開始しましたが、途中の 21:00 ごろの中締めを挟んで、夜中の 24:00 ごろまで実に様々な話題が飛び出しました。下記のレポートは、中締めの前・後の内容を順不同で要約したものです。Erwan さん、本当にありがとうございました。

■1. Erwan Loisantさんの経歴
2006年、東京都立大学とナント大学(パリ)の博士課程にて Navigation-based Image Retrieval という研究課題 (例: http://www.dbsj.org/Japanese/DBSJLetters/vol3/no1/papers/Loisant.pdf)
に取り組んでいた彼は、論文を目的とした研究ではなく、実際にユーザーに使われる仕事がしたいと考えるようになっていた。
そのとき学業の傍ら取り組んでいた Flock Extension の開発がきっかけとなり、Flock 社のブログを通じて応募のメールを出してみたところ、Erwan さんが XUL に詳しいこともプラスとなって1日で面接&採用決定、次の日にはビザの準備を開始という展開に。 Erwanさんは入社後、Blog Editor
(http://www.flock.com/user-guide/blog/posting.html) や Web Clipboard
(http://www.flock.com/user-guide/1.0/advshar.html) の開発エンジニアとして活躍中です。
Flock は、FireFox をベースに、People Sidebar、Blog Editor、Feed Reader、Media Minibar などの機能が追加された Web ブラウザです。 先日、iPhone SDK が1日で10万ダウンロードを記録したことが話題になった一方で、Flock は現在、延べ約 3 百万ダウンロードを達成しています
(http://www.flock.com/node/61397)。
Flock社の設立は2005年、最初はガレージでみんな作業していました
(http://www.flickr.com/photos/foolswisdom/61079990/)。 現在は Redwood City とカナダの Victoria にオフィスがあるそうです。 (参加者の廣島さんいわく、Redwood City にもある Beard Papa’s (http://www.muginohousa.com/index.php) のシュークリームは絶品とのこと)
■2. Flock社のビジネスモデル
Flock はどうやって利益を上げるのか? との問いに、「検索が中心です」と答える Erwan Loisant さん。 Google, Yahoo! などの検索広告の流通をめぐる市場の成熟により、 FireFox や Opera のようにブラウザを無料で配布しつつブラウザ開発者が利益を上げる仕組みができつつあります。 Flock 社のブログの Bart Decrem さんのエントリ (http://www.flock.com/blog/creating-sustainable-value) によれば、Webブラウザにはまだまだ改善の余地があり、「We firmly believe that doing right by our users is the best way to build a sustainable, successful company.」とのこと。
現在、Flock のライセンスは GPL (GNU General Public License)。 「それを利用したソフトも GPL で再配布しなければいけない」という厳しいものです。 Erwan さんは、「Flock の Philosophy として、利用したら貢献すべき、というのがあると思います」とのこと。これに対して MPL (Mozilla Public License) や(New) BSD License の場合は そこまでの制限はありません。
参加者の奥井さん曰く「オープンソースというと即『うちの製品はオープンソースではないので、オープンソースの技術は使ってはいけない』と勘違いしている人も多いのには困る」との体験談、まだ GPL 以外の形態のライセンスの認識が浸透するには時間がかかりそうです。
■3. FireFox/Flock Extension の開発手順
Erwan さんは Mozilla の歴史について簡単に紹介してくださったあと (Mozilla の名前の由来は “Mosaic Killer” を Godzilla (ゴジラ) 風に縮めたものだそうです)、さっそく FireFox Extension の開発手順の紹介へ。 開発プラットフォームとして FireFox Extension を選ぶことの Pros, Cons については、Pros としてはマルチプラットフォーム対応が容易であること、JavaScript は特別な開発環境を必要としないこと、 Cons としては multi threading が使えないこと (FireFox API の多くは残念ながら thread safe ではない)や、ドキュメントがあまり整備されていない点があるとのことだそうです。
次に、XPI package の仕組みなどについての紹介があったあと、 具体的に Extension のソースコードを紹介しながら Erwan さんがその開発手順を解説してくださいました。 Flock は、大きく分けて「UIモジュールの追加 (例: People Sidebar, Blog Editor, Feed Reader, Media Minibar, …)」「新しいサービス (twitter とか facebook とか) への対応」という 2 つの方法で拡張することができ、その拡張モジュールは JavaScript または C++ で記述可能です。 たとえば、Flock の API の flockIBlogWebService というインターフェースを使って、 ブログへの投稿をする UI を自分で自由に作ることができます。 基本的な手順は、.idl で定義されているインターフェースを拡張して、 JavaScript や C++ を用いてその実装を提供するという流れです。(具体的なインターフェースについては http://developer.flock.com/ とか http://developer.mozilla.org/ を参照してください。)
続いて、Erwan さんによる XLU (ズルー、と発音) 開発のデモ。 XLU は Mozilla, Flock などで利用されている UI 記述マークアップ言語で、Linux, Mac, Windows のどれでも動作するのが利点です。 ブラウザの中だけではなく、XLURunner (http://developer.mozilla.org/en/docs/XULRunner)
のようなツールを用いてスタンドアロンのアプリとして実行することもできます。 大変便利なマークアップ言語ですが、 Erwan さんによれば「XLU がスタンダードになることはおそらくないでしょう、 Mozilla はそれを意図してはいない」とのことです。
Flock では FireFox に搭載されている技術の一つである XPCOM を使って、JavaScript のモジュールと C++ のモジュールが相互に動作できるようにしています。 Erwan さんによると、「Singleton パターンを実現するためには従来は XPCOM を使うしかなかったけれど、 FireFox 3 からはそれが必要なくなる (新しい JavaScript の仕様でサポートされる?) のでその目的では XPCOM は使わなくてもいいと思う。けど、サービスを作るには必要だから、知ってて無駄ではありません」とのこと。
ブックマークは従来 Flock 独自で開発していたものの、FireFox 3 から登場する Places (http://wiki.mozilla.org/Places) に統合していく予定。 del.icio.us などのサービスも今後 Places を使うようになりそうなので、今後は ブックマークを複数の場所で管理する必要性は減っていきそうです。
この Extension の仕組みを使えば 基本的に何でもできてしまうので、 FireFox や Flock のExtension をインストールするときは (悪いモジュールではないかどうか) よく注意してください、とのことだそうです。
■4. Flock社内の開発プロセス
Flock や Mozilla の Extension を開発するとき、 javascript のデバッグはどうやっているのか、との問いに対しては、Erwanさんいわく「基本はログ出力ですね」。 ブラウザの about:config ページにてjavascript.options.showInConsole を true に設定し、DOM Inspector や Firebug を使いながら開発しているそうです。 Flock社には、Venkman を使っている人もいるそうです。「step実行ができない javascript と、デバッガ環境が充実した C++ と、どっちが生産性が高い?」という質問も出ましたが、C++ は環境ごとにコンパイルしなおす必要がある点がやはりデメリット。
Flock 社内では、trac (http://svn-mirror.flock.com/trac/flock/browser) と Bugzilla を使っていて、svn commit があるたびに自動的に build と automated test が走る仕組みになっているとのこと。 それぞれの Automated test は javascript で書かれていて、テストの成功・失敗を自動的に報告するようになっています。 Test driven とまではいかなくともこの種の自動テストの仕組みは、品質を落とさずにスピーディーに開発をすすめる上では重要な仕組みのようですね。
Mozilla や Flock について自分に必要なバグ修正がある場合は、 たとえば
http://www.mozilla.org/owners.html とかで該当モジュールの関係者 (Peers) を探し、その人に irc.mozilla.orgirc.flock.com で直接コンタクトをとって、 “Hi, do you know who can review bug ###?” とかきいてみるのが有効とのこと。 bug report に「私も困ってます」みたいなコメントを書くのもいいかもしれません。
■5. 今後の技術
ブラウザの未来形は? という質問には、Erwanさん曰く「スタンダードにならないとひろがらないと思います。 例えば SilverLight とかは一時的なものになりそうですね。 たぶん、HTML 5 がその未来を指し示していると思う」。


■■■■■■■■■■■■■■■■■■■
JTPA ギークサロン
「Erwan Loisant氏とFlockについて語る
〜 Firefox, Flock: Extend the Web Browsing Experience」
3月21日金曜日午後7時
■■■■■■■■■■■■■■■■■■■
今回のサロンは、ソーシャルWebブラウザFlockの開発者、Erwan Loisant氏がホストします。
人気のオープンソースWebブラウザFirefoxと、まだ新しいソーシャルウェブブラウザFlock両方のベースになっているMozillaプラットフォーム。ウェブデベロッパーが使い慣れているXMLやJavascript、CSSなどを使ったFirefox・Flockの拡張機能の作り方をご紹介します。一般的な拡張機能だけでなく、Flockの特徴であるPhoto SharingやSNSに関する拡張機能についてもお話します。
注)講義は日本語で行います。
スピーカー: Erwan Loisant (エルワン ロアゾン)
————————–
1978年パリ生まれ。ナント大学(仏)を卒業後日本に留学し、4年間滞在。東京都立大学で博士号取得。2006年にシリコンバレーのスタートアップFlockに就職。パロアルトのガレージにオフィスがあった頃からFlockを作っています。
——————————————————————-
日時:3月21日金曜日午後7時
場所: Wilson Sonsini Goodrich & Rosati
950 Page Mill Road, Terrace 2C
(メインエントランスがあるビルの280側の隣、レンガの建物の2階です。)
Palo Alto, California 94304-1050
進行:
19:00 開場、ネットワーキング
19:30−20:30 講義
20:30 Q&A、懇親会
食事:軽食が提供されます。
参加費用:賛助会員 10ドル、一般 15ドル
今回のサロン開催レポートを書いてくださる方1名を募集しています。希望の方はseminar@jtpa.org宛てに「参加レポート」と記載してお知らせください。参加費を無料にいたします。(先着1名様のみ。)
賛助会員につきましては、当日45ドルの寄付金を持参してご登録いただければ、その日のセミナーから10ドルになります。賛助会員についての詳しい情報は、こちらのリンクをご覧ください。https://www.jtpa.org/about/donation/
応募方法: Facebookアカウントをお持ちの方は、以下のURLよりイベント参加を申し込んでください。その際Wallに「サロンで聞いてみたいこと、話したいこと」を1−2行簡単に記載ください。http://www.facebook.com/event.php?eid=22300680374
メールでお申し込みを希望される方は、seminar@jtpa.org宛てに 「エルワンサロン参加希望」のsubjectでお申し込み下さい。なお、サロンで「聞いてみたいこと」「話したいこと」を1−2行簡単に記載ください。
頂いた情報は当日プリントアウトして参加者の方に配りますので、自己紹介も兼ねてご記入ください。
<Beta版>
講義の様子をUstreamでライブキャストします。ご興味のある方は以下のURLからご覧ください。
http://www.ustream.tv/channel/jtpa-geek-salon