Firefox Developers Conference 2009に参加して適当にメモを取っていたので一応公開。
とても読みづらく、まとまっていません。 またトークセッションなど力尽きているところもあるので真剣に読んではいけない。

キックオフ

女王の挨拶

The next 3 years

今の進化はブラウザに依存
identity
OpenID
失敗
HTML5 local storage
サービス側が情報を持つ必要がなく、ブラウザ内に保持していける時代
ソーシャル
99 – 中国のチャットクライアント
統合性
Firefox 3.5のGPSサポート
すべてブラウザ経由で行えるように
タスク中心(ユビキタス)
GUI – 言語というものを無視してる
今まで、サービスにいってサービスを受けていたが、今はサービスを持ってきてその場で実行できる。
今やりたいことをその場でできるので、ユーザーはその場で何をするのかだけを考える
ハッカー性
jetpack
jetpackはすぐ書ける
jQueryとの相性が良い。
ブラウザのrestartが必要なくその場で適応できる
将来の互換性は保持する方向(API方式)
jetpackとセキュリティ
スケーラブルな仕組みを作る
jetpackギャラリーは来週公開
jetpack
superpower
低レベルなところ
Library
今のjetpack
APIを叩く際に仕様
sandbox
サンドボックス
the web is now yours

「Mozilla: Web の未来を定義する」

プラットフォーム
3つの視点でブラウザを見る
POWER
local storage
scriptable hardware
リッチメディア
バッテリー、 GPS 、デバイスもブラウザの API で操作
ハードとの結合
まだ実験段階 - WebGLより前の段階
BONDIとの取り組み
audio & video
web file
ogg
フリーで使用できるので使いやすい
Canvas
Geolocation
wifiからの場所の検知
http://mozilla.jp/firefox/features/geolocation/
http://lab.cirius.co.jp/FirefoxGeolocationTest
方向の検知(モバイル向け)
app cache
application cache
一つのページをローカルに保存に、バージョンの変更のみを確認する
app内でもローカルに保存できる
オフラインでもアプリを利用できるように
Firefox 3.5で対応
beauty
タイポグラフィへの対応 3.6以降~
CSSでデザインフォント
CSS Transition は firefox 3.7 ~
media querity
画面の大きさに対してCSSを合わせる技術
Downloadable font
現在はTTFのみ対応
現在のフォントをダウンロードするには大きい
新しいフォント形式の定義 – WOFF
プラットフォームに依存しないフォント
SVC
ベクターグラフィックの画像
WebGL
ブラウザでの3D
o3D と WebGL
OGLは高いレイヤーなもの(API的) - Googleが取り組んでる
WebGLは低いレイヤーで使用できる
アプローチが違う
ハードウェアに個体差について
まだ判断できない
Speed
マルチコアを十分使えるように
コンテンツ処理部分を別のプロセスで実行できるように – Chromeと同様
Tracemonkeyエンジン
Web worker
javascript内でスレッド処理
負荷が大きいものを別スレッドで実行することでレンダリングに影響が出ない
native JSON
Agility
機敏な開発ができるように
モバイル
モバイル向けのブラウザ
デスクトップとの連動 – 同期機能 weave
年内にリリース予定
NOKIAとのアクティブに取り組み
WM と Androidの対応予定
Androidはいけいけ
iPhone向けの話
appleからの制約でブラウザの開発はできない
将来的にでる可能性は低い

B1 「3 分 Jetpacking」

あかつかだいすけ & Gomita
Jetpackとは
導入の敷居
再起動が必要ない
開発の敷居
JavaScriptオンリーで開発できる。(+API)
互換性
APIにより互換性は保持する
アドオンの問題点
再起動の必要性 – 試すのに億劫
作成方法が煩雑(XUL ,CSS ,javasript)
Firefoxのバージョンアップに対して対応仕切れてないアドオンがある。
Jetpackのインストール
Jetpackのfeatureがあるページではアドオンみたいなポップアップが表示される。
→確認ページに移動しインストール
編集したらリフレッシュページにアクセスすると反映される
featureの確認
about::jetpackページで確認する
開発手法
about::jetpackページからコードを入力してその場で実行
リアルタイムで動作を確認できる。
APIリファレンスもabout:jetpackで確認
console.log
statusBar
append
sideBar
append
jetpack.tabs
タブの配列にアクセスできる
onReady
タブを読み込んだ際の処理
UIのデザインにはhtml、E4Xを使える
jQueryがデフォルトで使用できる
課題
仕様が不透明
エディタが使いにくい
各自のエディタを使用できるように
別ファイルの使用の組み込みが難しい
1feature に対して1ファイル
セキュリティ
オートアップデートに対しての不安
APIとドキュメント不足
公開サイトが存在してない
modestでドキュメントを作成していく予定
http://dev.mozilla.jp/
Jetpack同士の連携ができない

A2 「ね、簡単でしょ? すぐできる拡張機能レシピ」

株式会社マピオン
http://labs.mapion.co.jp/
拡張の中身
install.rdf
idは一意である必要があるのでドメイン名など
overlay.xul
XULないでjavascriptを書ける
chrome.manifest
拡張で使用するリソースの定義
マピオンの宣伝

A3 「ビッツにおける拡張機能開発 (Wired-Marker 他)」

ピッツ株式会社 - 生命情報処理の専門家
Hyperanchor
位置をXPathを記録する
ハイライトの形式をCSSもURIに保存する
コンテキストメニューのような共有するノードに対して実装する場合は構造が変化する可能を考える
XSL
拡張可能なスタイルシート言語
XSLT
XML文章を構造の異なるXML構造に変換する
AMO
反映まで2週間程度
別途公開サイトを持っておくと良い
不具合があるバージョンを公開すると一気にユーザー数が減少する
AMOに不具合報告を書く人も多い
実験的なアドオン(sandbox)はほとんど反応がない
問い合わせの対応
同様の質問が多いのでFAQを充実させる
フィードバックの内訳: 賞賛:5-7割、質問:1-5割、苦情:2割、要望:2-4割、ビジネス:希少
日本人は問い合わせが少ない
海外は活発→英語ロケールの対応はメリット
welcomeページ (インストール後の起動で表示されるページ)
ここにバージョンを引数にして渡すことでバージョンや言語の割合などを把握
AMOでも言語の割合はとれるようになった。
新バージョンの通知なども可能(バージョンアップの促し)
公開後のまとめ
英語ロケールに対応
レビューがつきやすい
問い合わせが活発
Mozilla スタッフと仲良くなると、いろいろ助かる
辞書アドオン
SQLite
熟語の検索は長い単語列から単語を少なくしていく
企業とFirefox
宣伝/広告として作用
新規開発案件開発、各種媒体への露出などを獲得して回収
テーマが重要
ニッチな分野
3~4万程度のアクティブユーザー
ユーザーのエクスペリエンスとFirefoxの下位バージョンのサポートのバランス

トークセッション

ゲスト: Amachang (天野 仁史)、Piro (下田 洋志)、Aza Rakin
モデレータ: 有限会社オングス 後藤 大地

piro「UIを大きくいじるものはまだできない。
リファレンスが貧弱で更新が行き届いていない。
とっかかりとなるところが少ない」
Aza「使いやすさ、機能、セキュリティのどの位置にJetpack位置づけるのかを考える。
すべての一度に解決するとどれも解決できない→セカンドシンドローム
なので、どれかの機能をあきらめなければならない。
ハイエンドユーザーがJetpack自体を拡張できるような形を作りたい。」
piro「多くのユーザー使っているAPIは他の人が安心して使っていける。
今は頻繁に変わって開発者も触りにくい」
Aza「1.0までは自由にいじれる。1.0からは安定したものを渡せる」
Amachang「なんでjQueryがデフォルト?」
Aza「好きだから。」
Amachang「重くならない?」
Aza「ライブラリを使わないのはクレイジー」
piro「jQueryはjQuery言語だから新しく覚えないといけない」
Aza「jQueryは作りやすい。将来的には他のものを使えるようにしたい」
piro「今回Jetpack featureを作ったとき、アニメーションは楽に適応できた。
そういう点ではライブラリは簡単でいいもの。
他のライブラリ(dojo,prototype.js)は使えるようになるの?」
Aza「URLでのimportで他のライブラリを使えるようにする。
CPAN的な仕組み。
セキュリティについてもチェックする必要がある。」
piro「古いアドオンが将来的には0になるの?」
Aza「古いスタイルのアドオンが0になるのは望んでいない
Firefox4の段階でJetpackが優勢になる状態を作りたい。」
piro「オブジェクト汚染や他のアドオンに影響を与える可能性は?」
Aza「Jetpackは他のものに影響を与える可能性は大きい。」
piro「今のJetpackはhttpsでは無いところにアップデート見に行ってる」
Aza「将来的にはアドオンと同じような仕組みもあり得る。
後はmanifestの仕組み。manifestは将来変わらないように作る」
Amachang「UIについて。今のUIについて不満に思っていることは?」
Aza「まだまだ改善余地があるところが多い」
piro「オレオレUIが多いなか、一般化(標準的なデザインを用意)する必要があるとは思う?」
Aza「iPhoneみたいに統一されているものは使いやすい。
何か標準的なものを用意した方がわかりやすい。」
Amachang「WebのUIについて思うところは?」
Aza「Flashでリッチなものを作るとき、リッチにすることを目的にしないで何をするのかを考えていくことでよりよいものが作れる。ユーザーの立場を考えていく。」
Amachang「日本と海外のUIの違い」
Aza「物理学者のUIはひどい。
文化によってUIは大きく違う。
対象毎にUIを変えていくのは良いこと。
中国の場合は複数のことを同時に行っている。→待っている間に何も表示されない、シンプルなGoogleのページはつまらない。
グローバルにするにはローカルにする必要がある。」
piro「about:jetpackがhtmlベースな理由は?」
Aza「webを使っている以上はwebライクなものを使う方がいいのではないか」
Amachang「jetpackはWeb上で書くが、将来はWeb上でコーディングするようになると思うか?」
Aza「YES!!! web開発者はWebに多く関わっている方がよい」
piro「Webサービスがアプリと呼ばれるようになってがそれについてどう思う?」
Aza「WebOSという考え方のように、ブラウザと関わっている時間は大きくなっている」
Amachang「Fennec(Firefoxのモバイル版)のいいとこと悪いところは?」
Aza「Fennecはまだほとんど使える端末がない。
safariは一部の機能制限を設けていると思う。
Fennecは深く扱えるようなものになる。」
piro「FennecもFirefoxと同じようにオーバーヘッドが大きいので、ハードウェアの進歩が必要になる。」
Amachang「Webkitの活躍について」
Aza「ブラウザ業界全体を活性化させていると思う。
他のレンダリングも活性化すれば、ユーザーはレンダリングを意識する必要がなくなる。
UX(ユーザーエクスピアレンス)が重要視される」
piro「mozilla lab に入るにはどうすればいいか?」
Aza「ラーメンで買収。(違」
Amachang「Ubiquityはシェルのコマンドみたいだけど、どの辺からの発想?」
Aza「Ubiquityは人が中心(タスク中心)の考え方というのが発想の元。
おばあさんに電話で説明できるものを目標にしている。
Ubiquity2はマルチランゲージに対応してるよ!!」
Aza「javascriptライブラリなしでどうやって開発するの?」
piro「アドオン開発メインだからライブラリなんて気にしたことない
spindermonkey の仕様に対する忠実さのおかげで10年やってきました」
Amachang「自分でライブラリ書いて使ってる。
jQueryはクロージャーすると重くなる。」
Aza「日本は組み込み系のデバイスですごい
Geckoのプラットフォーム変えるならどこを変えたい?」
piro「XPCOMがわかりづらい」
Amachang「ディレクトリなどのファイル構成がわかりにくい」
piro「誰でも作りやすい環境ができると、良いものも必然的に出てくる」
Aza「Firefox向けの開発しているとエラーがいつの間にか消えているのか不満。
pythonみたいにエラーをしっかりしたい。」

ライトニングトーク

位置情報通知機能の利用について(30min)
位置情報サービスは最近流行っていた
wifiの位置情報機能を利用したランチマップ
位置情報取得するのは簡単→でもあんまり利用されてない
twitter+位置情報を進めていく
Weather Japan
無職という自由な職業
気象データを集めて表示する拡張
北海道専門ページも見えるよ。
利用者増えるタイミング
天候が荒れる時
気象災害が起きたとき
結論 : NetWalkerが欲しい
goo辞書、gooツールバー、緑のgoo
1997年~
goo辞書
履歴を記録して、参照した回数も記録してる
緑のgoo
検索サービス
検索によって得た利益を環境保護に募金
エコ気分
gooツールバー
いろんなものを統合したもの
placeEngeinに連動している
位置情報を取得ができる→地図との連携
placeEnginはユーザーの補正で精度が上がる
NAVERツールバーとFirefoxテーマ
NAVERの日本サイトは日本向けにすべて作り直している。
「探し合う検索」コンセプト
NAVERツールバー
他のポータルサイトの検索も含まれている
Autopagerize for firefox & google Chrome
swdyh : えすだぶるでぃーだぶるえいち
greasemonkeyから始まった
拡張化するのは難しい
ChromeにもGreasemokeyと同様にcontentに対して実行できる仕組みがある。
自作ツールとAPIを使ってFirefox拡張を作成
http://github.com/swdyh/chlorine
Chrome拡張はFx拡張のいいところ悪いところを踏まえてデザインされている
Twitter Plus
スパムと偽造から成り立つ
みんな開発がんばれ!
about:ぼかろFx
Firefoxの似た目が初音ミク
スキン切り替え ペルソナ(再起動が必要ない)
ペルソナはいじれるところは少ないので別途作成した
Dropfox
プロファイルの共有
windowsとlinuxではパスフォーマットが違う
この共有できる仕組みを提供する。
javascriptでOSをまたぐものが作成できる。
環境変数 ${環境変数}が使用できる。
Userscriptは起動時に実行される。
シェルコマンドを実行できる
学年別ひらがな切り替えアドオン
メニューからロケール変更
小学生の学年別の漢字に合わせたメニューを切り替える
小学生1ー6年生
エラーメッセージや他のアドオンも漢字をひらがなに変換する。
Google Apps Help & Google Ad planner
Google Apps Help
Google全体のアプリ
ヘルプメニューをプルダウンでその場でヘルプの中身をたどれる。
Google Ad Planner
Google側が難読化しているので非公開