2010-02-28

"Open"もbuzzワードだったんだ

昨日ソニーエリクソンのX10のイベントに行ってきた。

今回はソニエリのグローバル戦略の一環で、開発者向けエバンジェリストチームが世界ツアーをしているらしく、その流れで日本にやってきたということらしい。日本のDeveloperなんて日本の市場しか見てないケースが多いので、ヨーロッパ(彼らはグローバルと言ってたけど、どうみてもヨーロッパね)のマーケットについての宣伝で、ちょっと場違いな気がするけど、おそらくゲーム系のDeveloperとかターゲットかな?。

そこで言ってた話で、「私たちはオープンだ!。どこの会社よりもオープンだと思う」と言っていたんだけど、そのオープンってまさにMicrosoftが言う場合のオープンであって、オレも「Although you say "open", please explain to me about your "open" word」なんて聞きたいくらい、彼らの言うオープンはどこがオープンなのかを知りたかったね (別にどういうオープンだということくらい分かってるけど)。

そういうこと言っていたのに、timescapeという今回のウリの部分のAPIは公開しない(外部プラグインは基本的に作成不可。ソニエリのパートナーのみだって)だの言ってる時点で失笑って感じ。何がオープンやねんと。

"Open"って言葉は再定義が必要もかもね。

2010-02-21

昔話

メールデータを漁っていたら、面白い事を思い出した。見つかったのは、Mozilla Partyをやるきっかけになった、桃井さんのメール。しかもメールの宛先は、今だと誰も知らないかもしれない、"moz-huckers-ja"。
桃井です。

どうやら、Mozilla3周年記念パーティ日本版に出席できそうです。4月8日(土)
が今のところ最有力候補ということですが、その辺は日本に帰ってますので、で
きたら出席したいと思います。それで、考えたのですが、もしパーティをやるな
ら、土曜日でもあることだし、その前に2時間位時間を作って次のような小イベ
ントを出来ないでしょうか。

1.日本のMozilla ボランティアの方を中心に、現在の活動の紹介、報告のパネ
ル ディスカッションをする。インフォーマルなパネルで、現在やっているこ
と、将来の計画など、アクティブな方なら、殆ど準備なしで、やれるようなもの
にするのがいいと思います。

2.そのイベントは、このメールリストや他のモジラ関係のメールリストなどに
も流して、今まで活動をあまりしてない方にも呼びかける。更に新しいボンラン
ティアも募集する。そういうイベントにする。私はその他にも、もう一つのオー
プンソースの活動、ODP (Open Directory Project)について短い紹介をし、日本
のボランティアへ呼びかけたいと思います。

3.上記の1では、現在進行しているBugzilla日本版の有効な使用法などについ
ても、紹介、発表、討論などを計画する。

4.パネルには、何人か、このリストや、他のリストで活躍している人たちを呼
んでパネリストになってもらい、出来たらラップトップでデモもする。(Linux,
Win, Macのプラットフォームの代表を含む。)

4.その他にも、日本でのモジラ活動の推進、更に奨励するようなアイディアを
考える。

5.更に、Mozilla.orgにして欲しいことなどを議論して、まとめる。

6.もし、このイベントが出来るようでしたら、私はこちらのMozilla.orgの人
達にも話しを聞いて、日本の活動家に望むことなども、持って行きたいと思いま
す。

以上こんなところですが、その他にもアイディアはあると思います。適当な会場
か、会議室を借りることが出来るといいのですが、ボランティア活動を支持する
意味で、Netscape/Sun やAOLの会議室みたいなものがないか、聞くことは勿論出
来ます。その他にも、大学とか、..orgとかの援助を受けて、会場を出来たら無
料で貸して頂けるようだと一番です。誰か都内のそういう結構簡単に集まれる場
所をご存知ではないでしょうか。

以上のようなアイディアですが、せっかくのMozilla 3.0パーティだから、更に
啓蒙のイベントを付け加えることが出来ればという提案です。ご意見、反応をお
聞かせ下さい。よろしくお願いいたします。

で、このイベント名は最初、「Mozilla 3.0 Japan Party/Conference (モジラ3.0 日本版:会議と懇親会)」だったんだけど、案内の頃には、「モジラ.パーティ.jp 1.0 (mozilla.party 3.0J)のご案内」になった。以下は甲府方さんから出たメール。

モジラ.パーティ.jp 1.0 (mozilla.party 3.0J)のご案内

 モジラソース3回目の誕生日を祝うため、カンファレンス&パーティを開催いた
します。

 「Mozilla にどっぷりつかっている人も、Mozilla って何?っていう人まで。
日本初のmozilla.party!」

*モジラ.パーティ.jp 1.0は、ボランティアベースで開催いたします。*

主催:モジラ.パーティ開催有志一同

日時:2000年4月8日(土曜日) 13:00 開始 18:00 終了 (受付開始12:30)
会場:日本オラクル株式会社(東京・赤坂)
      本社12Fセミナールーム(ニューオータニ ガーデンコート内)
      http://www.oracle.co.jp/corp/gcmap.html
      (交通手段については、上記URLを参照ください)。

もうWebリソースはほとんど残ってないけど、今頃思い出したよ。mozilla.party.jp 1.0ってそもそもMozilla3周年記念パーティ日本版って名前だったのを!

2010-02-15

onloadイベントの発生するタイミング

ブラウザによって、onloadイベントの発生するタイミングが異なるそうだ。

Firefox vs. chrome performance comparison
What metrics? Almost every page loading benchmark I've seen are based on the time when 'onload' event fires. That cannot reflect user's perception on browser speed and will give misleading result when used to compare different browsers -- different browser fires that event on different phase of the page loading (IIRC, chrome cheats by doing that before layout[1], firefox does that after layout but before rendering), so that's not comparing apple-to-apple.

Firefox (Gecko)は、レイアウトが完了した後だけど、WebKit (SafariやChrome) は、レイアウトが完了しなくてもコンテンツの解析が終って、初期のレイアウトが完了すれば (最終的なレイアウトが完了してなくても)、onloadイベントが発生するらしい。へぇー。

2010-02-12

Operaにバグ報告

とあるベンチマークがOpera 10.50のPre-alphaからクラッシュするんでバグ報告した。

バグ報告はhttps://bugs.opera.com/wizard/から行えるんだけど、JavaScriptとかで現在入っているプラグインとかOperaのバージョンが検出できるよようになっているので、バグを報告する場合には、現象が起きているOperaのバージョンでこのページを開くのがベター。

日本語のヘルプページにいろいろ注意点が書いてるけど、それを考慮してバグは報告すべき。っていうか、どのアプリでもこれは当然だけどさ。

バグ報告すると、DSK-バグ番号@bugs.opera.comというところから、バグ報告がされたよ!ってメールがくるようになってる。https://bugs.opera.com/secure/Dashboard.jspaでバグをみることができるんだと思うけど、アカウント作ってないから知らない。

2010-02-07

WiMAXを2週間試してみた

ソフトバンクのモバイルポイントの契約を持っているので、外でコードを書いたりするのはマクドナルドなことが多いんだけど、自分の行動範囲(正確には恵比寿と目黒)のマクドナルドの無線LANが非常に安定しなくて、繋がらなくなることがこの数カ月多くなった。

UQのWiMAXが2週間お試しをやっていたので、試しに使ってみた。

目黒、恵比寿らへんでは非常に安定してて、当然麹町 (Mozilla Japanのオフィス) や自宅でも切断されることなく安定してて、約2MB/sは出ている感触。サービス当初に繋がらないとかいろいろ言われていたので、どのくらい安定しないのだろうかと思っていたら、拍子抜け。都内だったら、別にWiMAXでもいいんじゃねって思うくらいよかった。

でも結局、WiMAXを正式契約せずに返却した。

というのも、モバイルポイントが安定しないだけなんで、NTT系の無線LANサービスはいればいいだけじゃんって今更気づいた。1500円になるけど、イーモバやUQよりも安いし。

それに。3Gにくらべて電波効率がいいはずなんだから、4500円という値段じゃなくて最初からでももっと安くできるんじゃないのかな?。そもそも値段的なインパクトがないからイーモバイルを選択するよな、普通。

2010-02-06

日経トレンディにJohn Lily

現在発売している日経トレンディにMozilla CorporationのJohn Lilyインタビューが載ってる。開発者以外でMozilla関係で名前がでる人って、 Mike Beltzner (Firefox の開発の親玉) とか、Mike Shaver (開発全体の親玉) とか、Mitchell Baker (Mozilla.orgを含むすべての親玉) なんだけど、このMichelの直属でMozilla Corporation CEOなのがJohn Lily。

日経トレンディにJohn Lilyが載っているってこと自体、マジかよ、似合わんって思うんだけど、一つだけ突っ込みどころ満載なこと言ってるのがウケた。雑誌の記事なので、細かく書けないけど。。。

コードのレビューをもらうためには

このエントリの続き。

昨日良い例見つけたから、それを例にして書く。OSS関係なくて、ソフトウェアの開発でよくあること。この例で出てきてる方、例に使っちゃってすみません。

Saitoさんって方が以前このバグに対してのパッチを書いていたようなんだけど、作ったパッチをことごとくリジェクトしてるBorisの言い分は簡単で、

  • 説明足りない (何故説明が必要かは以下に含まれる)
  • おまえ、直す必要のないところ弄っているけど、なんでこのバグでいじってるの?
  • 文字列作り直してからParseEnumValue読んでるけど、なんで先に正規化する必要があるのか、理解できん
  • こんなところで文字列作り変えることするんだったら、そもそもString APIがクソなんだから機能足そうよ

ってだけなんだよね、簡単に言えば。

Saitoさんは、ParseEnumValueを直接呼ばなくて文字列を組み立て直してから、ParseEnumValueを呼ぶようにしてる。そうすべきだって主張してるけど、個人的に見れば、パフォーマンス的にどうかと思う (エラーのリトライでやるんだったらわかるけど) のと、ここで文字列組み立て直す必要あんの?もっとEasyにやろうよって思うんだよね。数字以外の文字で切り捨てて、もう一度ParseEnumValueを呼ぶようにするとかさ (ついでにそういうシンプルなパッチ書いたけど)。

しかも文字列を組み直すところのやり方は非常にダメ。Borisも非常にダメだししてるけど、これはあり得んというか、String APIが非常に用意されているので、それを使えばいいのに、ANSI文字列を作ってそれをUNICODEに変換なんて発想がひどすぎ。すくなくとも直接UNICODEの文字列作ればいいのにさ。ちなみに、Mozilla的な感じだと、nsString::AppendIntとかnsString::Assignを駆使するのがベターで、ちょー簡単。

どのOSでもアプリでもOSSじゃなくてもプロプラでもそうだけど、大人数で作るプログラムというのは、豊富なライブラリも用意されてて、それを使うようにコーディングルールが作られている。Apacheだって、APR (Apache Portable Runtime)をできる限り使うとか決まっているし、Googleのコードだって、ルール通りに書かないといけないわけだ (そうじゃなければチェックインできないよ)。

日本人にとってはBorisの言い方はキツいのかもしれないけど、まだちゃんと細かく書いてくれるだけ、Boris優しいって思うよ。彼の言うように直せばたぶんSaitoさんの貢献がバグ修正という形になったと思うんだけど、そこでイヤになったか忙しくなったか、別の理由とかでそれ以上はパッチを書かなかったってのが、現在の状態ってところ。

また、彼は別のところを直そうともしてるんだけど、このバグで一緒にやるから面倒なことになる。それをやるんだったら、新しいバグ立てるべきなんだ。

こういう風にバグを分けるべきというのかOSS特有のことじゃなくて、プロプラな会社(しかも外資とか)内でのバグ報告とか修正の話だったら、当然すべきこと (そういう会社に居たときに、こういうこと分からない人が結構居てて、そういう人には説教してた)。アメリカ人というか欧米人だったらそうやるのが普通だから、それに従ってやるべきなんだ。

こんなこと書いてるけど、最後に言いたいのは、<font size="-0.5">とかで変なことになるGeckoにはウケたけど、同様な問題 (-0.5とか-2.5とか+2.5とかを指定) がWebKitにも存在してたこと。マジウケる。

2010-02-01

Firefox 3.6のクラッシュ傾向

クラッシュ報告の状況ってのは、http://crash-stats.mozilla.com/から見えるんだけど、現在のFirefox 3.6の状況を見てみた。

1UserCallWinProcCheckWowGoogle TalkのプラグインとかAdobe Readerのプラグインのせいっぽい
2nsXHREventTarget::GetParentObject(nsIScriptGlobalObject**)Googleのアドオンが原因
3nsFrame::BoxReflow(nsBoxLayoutState&, nsPresContext*, nsHTMLReflowMetrics&, nsIRenderingContext*, int, int, int, int, int)なんかのアドオンがFirefoxのコンテンツを書き換えるタイミングとかに依存するというか、dbaronいわく、アドオン
4RtlpWaitForCriticalSection | RtlEnterCriticalSectionFlashのせい
5(null signature)わからない
6nsGlobalWindow::cycleCollection::UnmarkPurple(nsISupports*)リサイクルコレクタの問題だけど、原因不明
7XPCWrappedNative::GetNewOrUsed(XPCCallContext&, nsISupports*, XPCWrappedNativeScope*, XPCNativeInterface*, nsWrapperCache*, int, XPCWrappedNative**)JavaScriptエンジン側の問題
8nsHttpTransaction::DeleteSelfOnConsumerThread()ネットワークトランザクションのタイミング?
9_PR_MD_SENDLSP(http://en.wikipedia.org/wiki/Layered_Service_Provider)がらみ
10nsAppShell::ProcessNextNativeEvent(int)不明
11_woutput_lトレンドマイクロのツールバーのせい
12GCGraphBuilder::NoteXPCOMChild(nsISupports*)ガーベージコレクタ?
13NormalizeColorOSのバグ。Windows XP SP3で直ってるみたい
14nsEventTargetSH::PreCreate(nsISupports*, JSContext*, JSObject*, JSObject**)たぶんTraceMonkeyのバグ
15ntdll.dll@0x38c39LSP(http://en.wikipedia.org/wiki/Layered_Service_Provider)がらみ
16StrChrIALSP(http://en.wikipedia.org/wiki/Layered_Service_Provider)がらみ
17js_TraceObjectたぶんTraceMonkeyのバグ
18_raise_exc_exTraceMonekyがらみ
19KERNELBASE.dll@0xb727アドオン(TFPUPWDBankEx.dllってなに?)のせい
20GraphWalker::DoWalk(nsDeque&)ガーベージコレクタ?

Firefoxに入れていないアドオンであっても、LSP(http://en.wikipedia.org/wiki/Layered_Service_Provider)がらみのように、そのせいで落ちることもある。TOP20のうち3つはそれ。また、アンチウィルス系のソフトウェアでも唯一トレンドマイクロの原因のものがTOP20に含まれている。

このように、TOP20のうち判明しているだけども、8つはサードパーティのソフトウェアが原因となってる。

ちなみに、Mac OS Xだけで絞ると、TOP10に4つもFlashのせいだというクラッシュ報告が上がっているから、そりゃ、ジョブスもFlashに対してボコボコに言う気持ちはわかる。