2010-12-19

Intel Atomの上でのJavaScriptパフォーマンス

このデータはSunSpiderAtom Z560 (VAIO P) + Ubuntu 10.10上でのFirefox 4.0b9pre (2010-12-18)とGoogle Chrome 10.0.612.1 devで走らせた結果なんだけど、すごく興味深い。FROMはChromeでTOはFirefoxね。

TEST                   COMPARISON            FROM                 TO             DETAILS

=============================================================================

** TOTAL **:           1.38x as fast     1361.8ms +/- 5.4%   987.8ms +/- 1.0%     significant

=============================================================================

  3d:                  1.41x as fast      224.0ms +/- 11.6%   158.5ms +/- 0.9%     significant
    cube:              ??                  61.7ms +/- 23.3%    64.0ms +/- 1.8%     not conclusive: might be *1.037x as slow*
    morph:             1.48x as fast       47.2ms +/- 8.7%    31.9ms +/- 3.1%     significant
    raytrace:          1.84x as fast      115.1ms +/- 9.3%    62.6ms +/- 1.1%     significant

  access:              -                  130.6ms +/- 12.0%   128.7ms +/- 2.5% 
    binary-trees:      *2.02x as slow*      9.7ms +/- 42.8%    19.6ms +/- 12.8%     significant
    fannkuch:          1.42x as fast       53.3ms +/- 18.4%    37.6ms +/- 2.7%     significant
    nbody:             1.73x as fast       48.4ms +/- 11.9%    27.9ms +/- 2.2%     significant
    nsieve:            *2.27x as slow*     19.2ms +/- 7.6%    43.6ms +/- 2.5%     significant

  bitops:              1.77x as fast       87.6ms +/- 19.7%    49.5ms +/- 4.9%     significant
    3bit-bits-in-byte: 2.79x as fast        7.8ms +/- 5.8%     2.8ms +/- 10.8%     significant
    bits-in-byte:      ??                  17.8ms +/- 37.5%    19.6ms +/- 3.1%     not conclusive: might be *1.101x as slow*
    bitwise-and:       4.19x as fast       30.6ms +/- 22.5%     7.3ms +/- 6.6%     significant
    nsieve-bits:       1.59x as fast       31.4ms +/- 14.6%    19.8ms +/- 8.3%     significant

  controlflow:         1.49x as fast       12.7ms +/- 14.0%     8.5ms +/- 5.9%     significant
    recursive:         1.49x as fast       12.7ms +/- 14.0%     8.5ms +/- 5.9%     significant

  crypto:              1.65x as fast      111.6ms +/- 6.8%    67.6ms +/- 1.1%     significant
    aes:               1.61x as fast       59.7ms +/- 14.7%    37.1ms +/- 2.8%     significant
    md5:               1.64x as fast       26.0ms +/- 7.3%    15.9ms +/- 1.4%     significant
    sha1:              1.77x as fast       25.9ms +/- 7.1%    14.6ms +/- 3.4%     significant

  date:                1.50x as fast      241.3ms +/- 3.7%   161.3ms +/- 1.4%     significant
    format-tofte:      *1.116x as slow*    84.7ms +/- 8.2%    94.5ms +/- 1.2%     significant
    format-xparb:      2.34x as fast      156.6ms +/- 4.6%    66.8ms +/- 4.2%     significant

  math:                ??                  88.1ms +/- 4.4%    91.6ms +/- 1.3%     not conclusive: might be *1.040x as slow*
    cordic:            *1.47x as slow*     19.4ms +/- 10.7%    28.5ms +/- 2.7%     significant
    partial-sums:      1.27x as fast       51.0ms +/- 5.3%    40.1ms +/- 1.0%     significant
    spectral-norm:     *1.30x as slow*     17.7ms +/- 6.0%    23.0ms +/- 2.1%     significant

  regexp:              1.34x as fast       50.2ms +/- 8.4%    37.5ms +/- 7.6%     significant
    dna:               1.34x as fast       50.2ms +/- 8.4%    37.5ms +/- 7.6%     significant

  string:              1.46x as fast      415.7ms +/- 12.6%   284.6ms +/- 1.9%     significant
    base64:            1.44x as fast       30.2ms +/- 6.4%    21.0ms +/- 6.2%     significant
    fasta:             1.25x as fast       60.7ms +/- 5.1%    48.5ms +/- 2.6%     significant
    tagcloud:          1.31x as fast      114.1ms +/- 9.5%    87.2ms +/- 1.4%     significant
    unpack-code:       1.60x as fast      137.3ms +/- 22.0%    85.6ms +/- 2.5%     significant
    validate-input:    1.74x as fast       73.4ms +/- 20.7%    42.3ms +/- 6.5%     significant

いろんなサイトで見るデータってのは、Core 2 DuoとかCore i7で走らせたものだから、互角 (新しいV8を採用してるChromeだからV8の方が速いかも?)なんだけど、Chrome OSがターゲットにしてるであろうIntel Atomプロセッサだと、V8って遅いんだよね。実際の理由は調べてないけど、CPUキャッシュの量が少ないからとかなのかもしれない。

2010-12-03

最近の作ったプレゼン資料

これは、KOF 2010で使った物で、Fennecの話。

インストールサイズを少なくするために、libdlさえもカスタム版になってしまってるとか、NDKをそのまま使えない(使い物にならないともいう)から、独自版になっていってるという話とか、合計60分話せる資料を20分でやる暴挙でしたが。

これは、Firefox Developers Conference 2010の資料。上はFirefox 4の話。下は、LTで使ったモバイルの話。

2010-11-26

困った人たち - CSS WG編

最近、提灯記事とか読んでて、分かってない人たちが多すぎなので、実際の話を書こうと思う。CSS縦書きのホントの話。

publickey (この人も何も分かってないっていうか、Webメディアの人にちゃんとしたジャーナリズムを要求するのは間違ってるのかもしれない) とか見てると、彼らは日本のために頑張ってるなぁ、なんでCSS WGの動きが遅いんだろって思えるかもしれないけど、実際は、全くもって話が違う。

一番重要な点は、推進しようとしている人たち (困ったことにエディタ張本人) が、requirementとconvenienceの違いを分かってないってことなんだ。

まず、なんで話がずっと進まないかというと、エディタが論理プロパティと物理プロパティの話にこだわりすぎてる (このループで約半年以上かかってて、まだそのループ中なんだよ、実は!!) ってこと。一番重要なのは、彼の意見では、"これがあると便利だ"という話をしているんだけど、そもそも"便利"であって、"必須"ではないんだ。

で、必須な話 (writing-modeを変えるとCSSの各プロパティに影響を与えるから、どう与えるのかをちゃんとSpecに入れるとかってこと) が一切議論出来てないんだよ、マジで。必須な話が片づいた後にその話 (便利な機能の話) をするんだったら、全然いいんだけどさ、必須なことをないがしろにしている状況なんで、話が進むわけないじゃん。

また彼らの話では、XSLではこう出来るのになんでCSSだとダメなの!なんて話をしてるのを聞いたことがあるんだけど、だったら、EPUBでXSL使えばすべてハッピーになるんじゃない?ってこっちだって思うよね。EPUBの論理をCSSに持ち込むのは違う。EPUBのためにCSS作ってるわけでもないし。

あとさ、CSS WGはIRCミーティングとかを定期的にやってるんだけど、そこに日本人のエディタが参加してるんだが、彼はIRCでほとんど発言しない。tate-cho-yokoの話をそこに参加している日本人が話さなくてRichard Ishidaが説明してるような状況。ミニッツログ見てて、ウケる状況だよ。"お前の番だろ、そこ!"ってさ。

そもそもエディタの仕事ってのは、みんなの意見をまとめて、合意を取ることであって、自分の考える仕様を推し進めることじゃない。HTML5のエディタのIanのやり方を見れば分かるけど、彼の所属会社 (Google。彼は元MozillaのCommitterだったり、前はOperaにいたりする人だけどさ) の意見を推すことはそんなにせずにコンセンサスを取ることに終始しているよね。だから、みんなが活発にいい物を作ろうと考えるんだ。反対意見を言ったからって、罵倒するようなことをすることはないしね。

でさ、ここからは、ちょっと話を変えて。

どうも政府の仕分け対象に電子出版関係が入ってたようで、それが対象に確定した後に、焦ってる人がこんなメールをwww-stylesに投げてる (名前は伏せておくけど、アーカイブ見れば分かるけどさ)

Some Japanese now point out that the CSS writing modes is not 
yet a FPWD even after the TPAC, and claim that Japan should not 
use CSS writing modes for E-book but rather use XMDF, DotBook 
(should not be confused with DocBook), or an upcoming "Japanese 
intermediate format" (supported by the Japanese government as a 
candidate for an IEC standard) in the near future at least.

これ見て、こっち的にはさぁ、いろいろと勘ぐりたくなるわけじゃん。そもそもそんなことメールすべきじゃないし、議論の場でしょ?ってことで。こんなメール書きたくなるじゃん(実際出しました)。

This is CSS WG, not EPUB WG.  Although CSS writing-mode is necessary
for some languages, I think that we need more discussions for agreed
specification.  If EPUB wants something like the XSL specification,
EPUB should use it instead of CSS.

Also, I look that your claim is a Japanese government / business
issue.  I think that CSS is for Web.  Web isn't the replacement of
paper media.  Of course, it is wonderful that EPUB uses CSS.

You should do the productive discussion instead of sending claim mail.

てか、焦ってそんなメール出す暇があったら、必須な項目についての議論を英語でしろ。日本語でツイートしたりブログエントリ書いてる場合じゃないと思うけどね、マジで。文句があるんだったら、日本語でツイートするんじゃなくて、www-stylesメーリングリストに投げろって。

というのが、本当の実情。議論が進まないのは、ただ単にCSS WGのせいじゃなくて、エディタ達の問題によるところが多いだけなんだよ。笑えないでしょ?

2010-11-03

ブラウザカンファレンス2010

ブラウザカンファレンス2010で話してきた。

あとの関係者の懇親会までUstで流したら、ある意味面白いコンテンツになるよね (懇親会の内容的には前のMozilla勉強会@名古屋の方が面白いかも)。ってか、そもそも今回のものUstって録画ってないんだ。

資料見てもわからない点を補足しておくと、SunSpiderみたいな前世代的なベンチマークってのは、ホント意味なくて、Firefoxが最速のベンチなんて、なんの実世界に意味を持たないベンチ。また、returnを入れるだけで、20倍遅くなるブラウザも出来てきている状態だよってはなし。Mozillaは今後画像編集とか音声編集みたいなことがJavaScriptで行われるようになると考えてて、数値計算量を増やしたベンチマークをリリースしてる。でもそんなのはベンチマークであって、REAL WORLDじゃないと思ってるから、REAL WORLDで遅いケースを探しているって感じの話です

Twitter(まとめはこれ)とか見てる限りは楽しんでくれてよかったです。関係者の方々ありがとうございました

2010-10-31

モー1(ワン)グランプリ

"喫茶店のモーニング=名古屋"ってイメージがあるけど、それ違うから。てか、名古屋だと貧素すぎる。

自分の地元は愛知県の一宮市というところで、ここの地域だけ無駄に進化してるってのが真実。

母親が名古屋に行くと、「名古屋はケチだよね、コーヒー頼んでも、乾き物とかゆで卵がつかない」っていうくらい、地元の喫茶店はモーニングだけじゃなくて昼間でもサービスが豪勢だったんだけど(ってことを気づいたのは、地元を離れてからだった)、モーニングなんて、トーストとかゆで卵とかサラダとかはまだいいんだけど、なにか間違ってるお店だと味噌汁まで付くところがあった。しかも、高校行く途中にあるところなんて、朝からバイキングやってたし (これはコーヒーの値段にはなってなかったけど、580円だったと思う)。

で、一年前に知ったのが、地元でモー1(ワン)グランプリってのをやってるってこと。その名前のつけ方がねー、ちょっと残念な気がしてきた。

2010-10-30

Firefox Developers Conference 2010

いろんなトラブルがあって、開催告知が非常に遅くなってしまいましたが、Firefox Developers Conference 2010が今年も11/20に開催されます。

自分もセッションを一つ受け持つことになってるんですが、最初の予定だと、わかるやつだけ付いて来いっていう難易度6??くらいのセッションになる予定だったんですが、いろいろとありまして、一般的なセッションをやることになりました。jQueryJohn Resingがちょうどアジアにいたりするので、shibuya.jsとのコラボもあります。

あと、来週とかはいろんなところで話すので、時間があるかたはどうぞ。資料は別途アップロードはします。

2010-10-21

Desktop Heap

スラド見てたら、デスクトップヒープの話があったんだけど、これといえば、こんなこといつも思い出すなぁと

-oオプション(どのプロセスがどのTCP/IPのセッションを利用しているかを表示するオプション)が使えるnetstatのWindows 2000版(XP版は-o使えるけど、2000版は使えないんだよ。その-oオプションを使うためにカーネルドライバをバイナリに隠して、それを動的ロードして、必要なメモリを読み込むという荒技をしてるツールだったはず)を作ってたIさんが、同じテクニックで必要な構造体のデータを読み込んでそれを計算すれば、大体のデスクトップヒープの使用量がわかるんじゃない?ってことに気付いて、同じようなツールのカーネルデバッガのエクステンションを作ってたNさん(or Mさん?)に相談。2日か3日くらいでコンソール版デスクトップヒープモニタを作りあげてた話を思い出す。結構裏では使われていた記憶が。

問題はWIN32K(だっけ?)のプライベートシンボルが必要なんでそれを外に出せなかった。今はそこら辺の解析の結果が、Desktop Heap Monitorにいかされてるんだけどね。今のパブリックシンボルにはそこらの情報をいれるようにしてもらっているから、プライベートシンボルが必要ということはないけど。

また、デスクトップヒープが枯渇した時くらい何かメッセージださんかいということで、バグファイルしてYさんに直してもらったんだけど、イベントログにちょっとしたメッセージ(気付くはずねーよ)出すしょぼいコード(確かWindows Server 2003以降だけだったと思う)があるだとか。

ちなみにいうと、64-bit OS上で32-bitプロセスを実行した場合は、それはWOWによって、64-bitコールに変更されるため、64-bit OSを使っている場合にはこの心配は無用。

今思うと結構昔の話だなぁ。っていうか年取った。

2010-10-10

ARMでのJITのステータスはどうなってるのか

Fennec 4 beta 1が出たんで、ARMのJavaScript JITのステータス。ARMのJacobがメインでやってるけど

  • PolyICのサポートが入ってない。言い換えると、JaegerMonkeyの高速化の重要ポイントの一つが入ってないってこと
  • YARR(JavaScriptCoreの正規表現ライブラリ)が入ってない。JITコードのメモリ同期の話が原因だったんで、これは次のベータでは修正されるというか、TraceMonkeyツリーには入ってる
  • Samsungのデバイス(Galaxy S)でJIT自体が無効になってる。たぶん、YARRと同じで同期系の話だと思うけど、どうもSamsungのCPU(SnapDragonとは違って、CPUのIPはCortex-A8だけど)でうまくいかない感じらしい

なので、x86とかx64と違って、若干フルサポートではないんだよね、今のところ

2010-09-22

IME API

Mozilla Skywriter (旧Bespin)で日本語が使えない理由ってのは、変換中文字列を持ってくる方法とかがないからなんだけど (しかも描画するのはCanvasに描きたいから、IMEが描画しないようにしないといけない)、それを解消するには、IMEをコントロールするようなDevice APIが必要な訳だ。

で、丁度Googleの坊野さんからIME APIの提案が出ている。いくつかもう少し練らなきゃいけないけど、この方向性のAPIが実装できれば、SkywriterでもIMEが使えるようになる。

でも、何がウケたかって、反応しているのが、GoogleとMozillaだけだってことかな。

2010-09-21

ss-math-cordic

IE9でチートしているという噂のSunSpiderのmath-cordicだけど、ちょっと最近おもしろい話を見つけてしまった。っていうか、なんでFirefoxのWindowsのビルドだけ遅いのかってことだけどさ。

  1. そもそも、jimbがWin64のコードレビューをしてくれない (MSVCのバグのおかげで計算結果がおかしいので、そのバグを回避するコードなんだけどさ。これさえチェックインできれば、Win64はテストをオールパスする)
  2. ねじ込む理由でも考えるために、いろいろ調べ始める。
  3. うちの開発環境のMacとノートPCのWindows 7でパフォーマンス見たら、なぜかMacが圧倒的に速い。両方ともCore 2 Duo 2GHz (世代は違うけど)。しかもCore i7 920よりもCore 2 Duoが速いなんて、納得いかないし!
  4. 納得いかないから調べると、とあるところがボトルネックになってそうなことが判明。しかもそこ、gcc x86だけ使うパスがある。そこをMSVCとgcc x86_64でも有効にすると同じパフォーマンスを得る。
  5. IEEの浮動小数点フォーマット見る限り、同じパスが使えるのは確認済みだし、バグファイルする。これやばくね?
  6. な、馬鹿な!って全員思う。っていうかみんなMac使いすぎ
  7. とある関数が、TraceMonkeyとnon-JITのみ使うパスで約30万回呼び出されると指摘する。(というか、JaegerMonkeyでもビット計算の時も通ると思うんだけど) <--- いまここ

2010-09-17

VAIO Pを買った

今までは、DELLのXPS M1210をずっと使い続けていたんだけど、重さに嫌気がさして、VAIO Pを買った。

自分がノートPCを買う基準は、英語キーボード必須なので、ソニーとかレノボとかDELL(パーツ後買い)になるんだけど、初めてのATOM+US15W機

US15Wって実際PowerVR SGXなんだけど、こいつって、OpenGL ESのドライバつかないだね。ちょっと残念。OpenGL ESのドライバ付きだったら、WebGL動かすことできそうなのにさ。

あと、傾きセンサーついてるけど、これって、Sensor API経由で触れるのかな?ちょっと調べる必要があるかも (当然Firefoxで使いたいし)。

Windowsだとちょっと重いので、FedoraかUbuntuいれて、それ専用機にする予定

2010-09-16

アウェイ会場

お呼ばれしたので、アウェイでプレゼンやってきた。USTもあるのでそちらもどうぞ

以下雑感

  • 誕生日会みたいな雰囲気期待してたのに、製品説明会かよ!って感じの内容を見せられる。っていうか、だから無料バナナがなくなるような会社になってしまってるんだよ (これは言い過ぎですね、スミマセン)。遊び心がないとね!
  • リアルにケーキ用意してるとマジ期待してたんだけど。。。ネタでウチ側が(Firefox or IE)ケーキ持ってこようかなんてのを考えてたんだが。しかもケーキの写真自体が出てきたのが、私のプレゼン (最後の最後) って。。。
  • WebGLはほんと面白いから、IEでも実装してほしいなぁ、マジで。今年あったMozilla SummitでWebGL+Audio Data APIでのデモだらけなくらい、みんなおもしろいと感じてる
  • 一番シェアが高いMicrosoftが実装を作ってしまえば、後はそれが世の中で広まるんじゃないかなんて質問してた人と、トンチンカンな回答が出てたけど、そもそもwhatwgとかCSS working groupでやってることをわかってなさすぎ。

    実際よくあるパターンは、GoogleとかAppleが実装を先に作ってきて、MozillaとかOperaがダメ出しして仕様が変わるパターン。CSS GradientとかCSS Transitionとかなんて、そんな感じ。なんでwhatwgが2つの実装にこだわるかというところをよく考えれば分かるんじゃない?。

    重要なのはシェアが高いところがデファクトということではなくて、各ベンダ間で合意をとること (この意味をわかってないのが、今日はいなかったけど、CSS縦書きやろうと思ってる人たちだけどさ、その話はいつか書く)。それが過去のブラウザ戦争との違いだと思う。

あと、聞くの忘れてたのは、x64版のIEのJavaScriptエンジンが妙に遅いってことかなぁ。実測値で約3倍くらいx86よりも遅い。Adobe Flash Playerのx64版がでたばかりだから、なおさら気になった。

2010-08-31

JaegerMonkey Part2

前にバイトコードをただ単にネイティブ化するのが目的というのが、JaegerMonkeyだという話をしたと思うけど、触れるのを忘れてた話。

ただバイトコードをネイティブ化したって遅いので、JMだけでも速度を出すために、SpiderMonkeyの関数を直接呼ばずに、最適化したアセンブラを生成するfastpath (そのままSpiderMonkeyのコードを呼び出すのは、SlowCallとかStubCallとか呼んでるけど) とinline cacheというのを使っている。

fastpathはその名の通りなんだけど、inline cahceは二通りあって、polymorphic inline caching (PIC) と Monomorphic inline cahce (MIC) の両方を使ってる。ここらはプロパティアクセス等に使われてて、これが速度的なメリット (SunSpiderだと顕著というかTracingよりも速くなる結果) を与えている。

ここらは動的言語の最適化でよく使われるテクニックなんで、http://en.wikipedia.org/wiki/Inline_cachingでも参照してください。

2010-08-27

FroyoのV8古くない?

Froyo (2.2)で、AndroidのブラウザのJavaScriptエンジンがV8ベースになったから、TraceMonkeyよりも圧倒的に速いと思い込んでいたんだけど、どうもベースのリビジョンが古いらしい。

SunSpiderのベンチをNexus One上で見てみた。

まずは、Android内蔵のブラウザ

で、Fennecの最新版

Androidに入っているブラウザが思ったよりも遅いんだなってところが、ちょっとがっかり。

最新のコードベースであれば、MozillaのJavaScriptチームのデータでは、V8の方が速いんだけどなぁ。。。JaegerMonkeyはThumb2のところをどうするか考慮中らしいけど。

2010-08-25

Ovi Map

Nokiaのケータイに入ってるOvi Mapなんて日本の地図の情報がそんなに入ってないから使うことなかったんだけど、カナダとかヨーロッパ行って、このOvi Mapの強力なことに気がついた。

オフライン地図のサポート

ソフバン回線だとフランスは定額サポート内だけど、国によって定額サポートがない(今回行ったベルギーがそうだった!)。しかもSIMを買おうにしても、プリペイドのSIMに定額のデータプランがなかったりするから、Google Mapを使おうにもパケット代が非常に気になる。Ovi Mapはオフライン地図をサポートしてて、それを使えば、パケット通信することなく地図を参照できる。行く前にダウンロードしておけばオッケー。

ネットワークにつながってるのが当然で定額のデータプランの世界であれば、これは別にどうでもいい話だけど、国や地域によっては便利すぎた。

ナビゲーション機能

車を借りる時にTomTomのナビをつけ忘れたので、このナビがなければ、ホテルに帰れなかった、マジで。というか、ブリュッセル難しすぎ。

ちゃんと流行っぽく、3Dで地図出してくれるおかげで、結構迷わずに現地(ゲントから車で30分くらいのキャンプ場みたいなところ)ついたし、帰りも深夜に関わらず、なんとかなった。

ということで、ケータイに入るべき地図ソフトはオフラインサポートとナビゲーションは実は必須なんじゃないかといまさら気づいたよ

2010-08-24

タリスで無線LAN

ベルギーでやってたレイヴに行ってきたんだけど、パリからブリュッセル間の移動にタリスという高速鉄道を使った。ブリュッセルからはレンタカーだけど。

チケット自体は、自動券売機で買えるんで、英語とかフランス語とかオランダ語出来なくても、簡単に買える (ネットでも購入可能!)。ファーストだと食事とかも付くらしいんだけど、そこまで金かける気もないので、普通の車両を利用。

タリス自体乗ってびっくりしたのは、まさかの無線LANサービス。しかも笑えるのは、タリスの無線LANサービスはどうやって動いているのかというのを説明するページまであって、実際、衛星経由でこういう風に動かしているんです!っていう説明だった。

別に使わなくてもよかったんだけど、試してみるかということで使ってみた。

サービスは、1時間と1日を選べるんだけど(ファーストだと無料)、乗っている時間が1時間20分くらいなので、1時間のサービスを選択。使ってみたけど、若干レイテンシの問題があるにしろ、普通に使える。メールとかであれば、問題なさげ。今度パリからアムスとかケルンとかに行くことがあっても使えるかなって思った。

それよりもだ。ブリュッセルの駅 (タリスの発着だからMIDIね) の公衆無線LAN、一日20ユーロはボリすぎだと思う。マジで。タリスの1時間6.5ユーロがリーズナブルにしか見えないよ。

2010-08-09

カラオケボックスでのマーケティング

最近、知り合いとカラオケに行くことがあって、行ったときのこと。

カラオケって大勢で行くと、別に空き時間ってできないけど、少数 (1から3人) でいくとちょっと曲が入ってない時間帯ってできるよね。その隙間ってなんか使えないかな?って考えたことはあったんだけど、今回行ったところ (パセラリゾート) では、その隙間にCM流してた。

流してたのは、戦国BASARA3のCMで、ちょうどタイアップしてたらしく、BASARAとコラボした期間限定のドリンクとかもやってた。

パセラリゾートとBASARAをかけてるってところがちょっとおもしろいなと思ったんだけど、そもそもパセラに来る層とBASARAをやる層(カジュアルゲーじゃないゲーマー層?)って、同じか?って疑問があるよね。戦国ネタということころで食いつく人もいるかもしれないけどさ。

しかもパセラってハニートーストとか出すようなところで、若い女性をターゲットにしてる感じのところじゃない?。若い女性層とゲームって。。。だから、そこカプコンの営業違うだろって思ってたんだが、

横を見ると、そのCMに食いついてる、オレの知り合い。。。しかも思いっきりガン見 & 口空いてるし。

その子、見かけによらずちょっとゲーマーだったの忘れてた。。。

帰りに戦国BASARAをドンキで買ってたのは言うまでもない。カプコンの営業やるなってマジで感じた。

2010-07-31

JaegerMonkeyおさらい

ネット見てたら、全然わかってない人多すぎなんで。

SquirrelFish

WebKitのJavaScriptCoreに入っているJavaScriptエンジン。非常に優秀なバイトコードを生成、実行する

SquirrelFish Extreme (Nitro / SFX)

SquirrelFishをJIT化+バイトコードの最適化など

JaegerMonkey

baseline JIT。SpiderMonkeyをJIT化しただけのもの

TraceMonkey

Tracingのアルゴリズムを利用したJIT。ポイントにはまれば生成されるコードは最速(のはず)

JaegerMonkeyはJavaScriptCoreのコードを持ってきたという話があるけど、バイトコードをネイティブコード化するライトウェイトなJITコンパイラだけを持ってきている。SquirrelFishの肝は優秀なバイトコード生成+最適化なので、JaegerMonkeyだけだと、バイトコードの質でSFXには勝てない。

JavaScriptチームが欲したのは、シンプルにバイトコードをネイティブコード化する方法を求めていて、自分たちで書くかどこからかコードを持ってくるかという二択だったんだけど、自分たちの用途だと、SFXのコンパイラが適していたので、それを持ってきただけ。今は自分たちのバイトコード用に最適化中。

で、

fatvals

JavaScriptの型情報を64ビット化して、バイトコードの生成・実行効率とJaegerMonkeyでのJIT化時の効率化を狙ったもの。それってSFXでも同じことやってた気が。

今は、JaegerMonkeyの2ndステージで、fatvalsとマージしたものを開発中。まともな速度が出ているのは、x86だけだけどさ。x64は先月中ごろから手を入れ始めた。ARMは、Jacob(ARMの人)の頑張り次第だし、SPARCは(Sun China次第かな)

JavaScriptチームとしては、JaegerMoneky+TraceMonkeyでV8やSFX並みのベンチに結果になる予測で今開発してるって感じ

あとついで。

Tamarin

Adobeと共同で作ってたJIT。あまりにも遅くてプロジェクト終了

NanoJIT

TraceMonekyに使われるJITエンジン。ARM (V5以降でTHUMBはなし)、x86、x64、SPARC、MIPS対応。Tracingの実装時に持ってきたJITエンジン。TamarinがなくなったおかげでAdobeも使ってる(tamarin-redux)。

Yarr

JavaScriptCoreで使われる正規表現エンジン。これをSpiderMonkeyに持ってきたら速くなるんじゃねーのって話も。。。まぁ、ベンチマークの大部分は正規表現のところだしなぁ

2010-07-18

外国人だから日本語を知らないと思っちゃいけない

Mozillaにいると、なんか日本語できる人が多くて笑えるんだけど。

例えば、AzaとかMitchoは当然のこと、日本に住んでるJohnさんはもちろんだし、SVG Animationの実装やってるBrianとかも日本語話すし、その他にもJonoとかもいるし、Mozillaの規模から考えると日本語できる人の数は異常。

で、とあるメーリングリストで笑える流れが。スレッド自体は、http://lists.w3.org/Archives/Public/public-html-ig-jp/2010Jun/0018.htmlから。

この発言は、元Microsoftの人でWordとかのPMやってた人(だったはず)

ありがとうございます。私がMLに参加する前のお話ですね。
アーカイブで見つけました。
http://lists.w3.org/Archives/Public/www-style/2010Jun/0255.html

Johnの言うことは、縦書きを全く理解していない人からすればまったく尤もだと思います。
理解してもらう努力が日本側に必要ですね。

(このメール見た瞬間、Johnさんと日本語読めるのバレてないねって話をしてたんだけどさ)

で、このメールに対して、村田さんが、

> Johnの言うことは、縦書きを全く理解していない人からすればまったく尤もだと思います。
> 理解してもらう努力が日本側に必要ですね。

いえ、彼は相当よく分かってますよ。日本語組版の要件を読んでいるし、日本に
住んでいるし、日本語で講演をするぐらいだから。

ってツッコミが(笑)。個人情報漏れまくり。しかも漢字結構読めるしなぁ。

ちなみにJohnさんは、縦書きの議論をする前に各言語の資料を集めて調査した上で議論に参加してるので、こう思われるのは非常に残念だったなぁと、僕個人的には感じた。先入観って怖いよね。ホント気をつけなきゃ

縦書きの話については、個人的には、EPUBで作った仕様をそのままCSS3に持ってこようとしているってのが、一番賛同できない。Webは紙のメディアのリプレースではないので、一から本当に必要なものって何?ってところから議論すべきかと思う。シンプルさにかける点が一番dislikeって感じかな。実装する側とか使う側のことを一切考えてないって感じで (それを考えなければ、XHTMLみたいにポシャるだけかと)。

それよりもだ。

HTML5 Japanese Interest Groupのゴールに、CSS3なんて言葉が一切入ってないのに、CSS3の議論ばかりになってるんだけど、CSS3 IGを別にするとか、ゴールに入れるとかした方がいいんじゃね?

2010-07-08

Mozilla Summit 2010

こんな時期 (ワールドカップ) にやるってのは、ホント、アメリカ人は気が利かないっていうか

ただ、ワールドカップ中継の時間はセッションをやらないという笑える展開になってた。なぜかユニフォーム持ってきてるスペイン人とかドイツ人がちらほら。。。

2010-07-06

Mozilla Messaging

バンクーバーに来ているので、Mozilla MessagingのOfficeに行ってきた。

今借りているオフィスは、スタートアップ企業が使うような場所らしく、3つの会社でオフィスをシェアしている状態だそうです。だから、キッチンがあるくつろぐ場所は共有スペースになってました。

ここで働いている人は、ほぼMessaging関係(Raindropも含む)ばかりで、オフィス自体は非常に小さく、Mozilla JapanのOfficeの2/3くらいの広さでした。でも中は結構おしゃれ。さすがCEOがフランス生まれだね!

2010-07-02

iPhoneの申し込みが取り消された理由

ソフトバンクすげーよ。ソフトバンククオリティを久々に体感した

iPhone買ったら負けだと思ってたけど、ちょっと試したくなってオーダーしてたんだけど、こんなことになった。

■■■■■■■■■■ お手続き不能のお詫び ■■■■■■■■■■

xxxx xx 様

ソフトバンクオンラインショップをご利用いただき、ありがとうございます。
お客さまのお申し込みについて、下記の通りご連絡いたします。

せっかくお申し込みいただきましたが、下記の理由により、手続きを行うことが出来ませんでした。
つきましては、誠に恐れ入りますが、今回のお申し込みはお取り消しさせていただきますので、ご了承ください。

----------------------------------------------------------------------
■お申し込み受付番号
3U10600000xxxxxN
----------------------------------------------------------------------
■受付不能理由
ポイント利用が出来ないため、受付できません。
----------------------------------------------------------------------

キャンセルになった理由が、ポイント利用が出来ないからって、すげーよな。確かに6月末でポイントが失効したおかげでポイント使えなくなったんだけど(予約の段階では当然失効していない)、普通は確認をもう一度するとか、使える限りのポイント利用に変えてくれるじゃん。ソフトバンクは、これを理由にオーダーをキャンセルするって。笑える。

っていうか、素直にiPhone買うのやめろって神様が言ってるようなものだよね。人間ポリシーを曲げてはいけないってことだな。

2010-06-20

楽天が社内の公用語を英語にしたそうだが

どの会社だって、全員が母国語を話す場合は、その言葉でミーティングするわけだし、話せなければ英語になるのは、当然。

そもそも、会社のトップがこんなこと言ってる自体、自分どころのHiring Teamは日本語できる人しか採ってませんって言ってるだけだろうに。まぁ、これから変わるんだろうけど、そもそもHiring Teamの問題じゃね?

そもそも、「英語が出来る」という表現は非常にまずくて、英語でネゴれるとかケンカを売ることができるとかが重要で、それができない人が多すぎる。TOEIC800以上の人をいっぱい見てきたけど、ネゴシエーション能力のない人が多すぎ。駆け引きとかさ。相手は人間なんだから、ちゃんと現地行ったら、お土産を持ってくとか、一緒に飲みに行って仲良くなるとかが結構重要。ずっと前にいた会社で、BARで某製品のPMのスティーブと「No! ○○○ (会社名)」と肩組んで叫んでたっけ。

2010-06-16

ARM上での暗号化を速くする

去年どっかのタイミングでやろうと思っていたけど出来てなかったこと。ふと思い出したので、昨日頭使ってARMのアセンブラを書いてみた。ちなみにARMv4以降で動くヤツね。Thumbはやる気ゼロ

rsaperf (RSAアルゴリズムのテストツール) でのテスト上 (テスト機は、i.MX515/Cortex-A8 800MHz。まぁNetWalkerね) では、40ops/sから、70ops/sなので75%くらい速くなっている。

ちなみに、Phenom 9750上で4スレッドで動かすと、646ops/sくらいだったみたいなので、単純計算で1スレッドが160ops/sだから、現在のx86PCにくらべて約1/3くらいの速度になる。クロック数から考えるとまぁ上出来かな。

ただ、ここ1、2年のチェックインログ見たてたら、NSSのOptimizeはほぼオレが関わってるってのが、なんか嫌。

2010-06-11

WebMのレビュープロセス

どうもIssue Trackerにバグをファイルしてもreviewツールでレビュー出せって怒られるようなので、レビュー投げてみた。そのメモ。英語での説明はこれ

  1. http://review.webmproject.org/でアカウント作成する。OpenIDとかGoogleアカウントが使える
  2. SettingでSSHキーの登録
  3. 続いてAgreements。住所とかI AGREEとか入力。OSSでよくあるサインだね
  4. Indentitiesで必要であればアドレス登録

これでアカウントの登録完了。そして、

  1. git上で修正コードを作って、普通にcommit
  2. レビューを投げるために、ここでプッシュする必要がある。
    git push ssh://username@review.webmproject.org:29418/libvpx HEAD:refs/for/master
  3. これで、http://review.webmproject.org/のダッシュボードにパッチが載る

レビューがOKだと、UI上からマージができるらしいけど。まだレビュー中だからよくわかんない。

そんなとこ

2010-06-10

Open Process

Interop Tokyo 2010カンファレンスでパネラーとして話してきたので、その資料。

テーマがテーマ (Web on TV)だったけど、オレだけ会社の話とかプロダクト話とかがゼロという、ある意味場違いだったのかもしれない。。。

このプレゼン見ても何話したかわからないかと思うけど、偉い人が密室で決めるよりも、開かれた場で物事を議論すれば、もっと新しいことができるんじゃないのって感じの話です。

だから、Web技術で何か不満な点があれば、HTML5 Japanese Interest Groupとかで疑問を投げかけてください。役職や立場なんて関係ないと思うから。

2010-06-07

ブラウザについて話してきた

先週末に日本ウェブ協会でブラウザの歴史という講演をしたので、その資料

ustreamはここに置いてあるはず (でも消えちゃうかも)。

よりによって、一番胸が痛くなるような質問が出てくるものだね(質疑応答コーナーのビデオ見れば分かるけど)。Consumer BusinessとEnterprise Businessの違いを分かる人って、世の中少ないしなぁぁと

あとブラウザのことだったら、個人的にはNHKの新・電子立国日本のネットスケープの回が非常におすすめなのだけど、これは本は出版されているんだけど、映像(DVD)が出ていないんだよね。しかもNHKアーカイブスにもないし。どうにかして出してほしいなぁ。

2010-06-03

Expansys仕事速すぎ

Motorola Milestoneをちょっといろいろ事情があって、expansysから入手した。

何が驚いたっていうか、火曜日の夕方にオーダーしたんだけど、届いたのが次の日のPM3:00。Amazon並みの仕事の速さ。送料と言語さえ考えなければ、香港の業者の方が日本の通販業者よりも速い気がする (もちろん在庫の問題とかもあるけど)。

2010-05-30

Windows x64のNightly buildができるまで

  1. TorontoのビルドチームのQ2の目標にWindows x64ビルドのTinderbox設置が設定される
  2. 5月中旬くらに、Armen (Build Teamの人)からどうしたらいい?って相談。
  3. こっちからは、VC2005だとこのくらいのHotfixを適用する必要があるから、当てるかVC2008推奨という話と、環境についてアドバイス
  4. 試しにひさびさにビルドしてみるとビルドブレーク多発。しょうがないから、一つづつパッチ作成。
  5. 動かないってArmenからメールが。「VC2010使って環境構築したけど、ビルドしたバイナリ動かない」。ヤツにVC2008使えって言ったのに、なんでVC2010使ってんねん。しょうがないからVS2010セットアップしていろいろ試す。確かに動かない。
  6. 原因を調査して新たなパッチ作成+別のところのLandingでのビルドブレークがまた発生してるのを確認して、修正コードの作成。
  7. 直したけど、leak buildのtinderboxがこけてる。そんなコードあったのか!って初めて知ったところだったんだけど、修正コードの作成
  8. 一方、ArmenはTorontoとかMVで誰か詳しい人いない?って探す。みんなInterestingだったけど、コード誰も書かねー。
  9. 最低限の修正をLandingしてやっとNightlyのビルドができるように。
  10. 来週からNightlyでるぜ!ってArmenアピール。シェーバー歓喜 ← 今ここ

っていうかさー、ベルツナーのプレゼンで知ったんだよね。x64もやるよ!って話。。。

2010-05-04

時代なんてループに過ぎない

TechCrunchには載ってなかったけどHewittがtwitterで紹介していた The web sucks. Browsers need to innovate – Sachin’s Posterous この記事は秀逸だ。いかにブラウザを基盤としたウェブアプリがだめで、ネイティブプラットホーム上のアプリが優れているかについて細かく例を挙げて教えてくれる。
http://ido.nu/kuma/2010/05/04/stop-laughing-at-flash/

そんなん、時代なんて常にループに過ぎない。Web Applicationの考え方なんて、相当というかさ、今は亡きNetscapeがそもそも目指していた世界であって、なんにも新しいことじゃない。PCのパワフルな計算能力であれば、現在は(分野によっては)Web Applicationが使い物になっているけど、Netscapeが目指していたころのPCのスペックだとそれができなかっただけ。そのころのPCのスペックと今のモバイルデバイスで考えれば、モバイルデバイスの方が速いとは思うけど、現在のモバイルデバイスにとってまだWeb Applicationがファットすぎるのかもしれない。

Java Appletが出てきた時だってそうだけど、どの環境でも動く共通ランタイム環境というのは理想としてよく考えるのは当然。Flashだって、そうだよね。所詮共通ランタイムなんて最大公約数的なものなので、(デバイスの機能をフル活用できる)Native Applicationの方がいいに決まっている。もちろんこっちにだって、開発コストとか、別の問題は発生することになるから、どっちが最高なんて議論意味がない。

だから、Web Applicationがいいか、Native Applicationがいいのかなんていう議論、ずっとループするんじゃね、というかそんなんもうループ中だよ。何年周期で流行りが変わるだけでさ

2010-04-30

global-messages-db.sqliteを開いてクエリーを行う方法

ちょっと相談されたのだけど、皆さんに共有すべき内容かもしれないのでエントリとして残しておく。

Thunderbird 3ではメールの全文検索のために、SQLite3を利用しているのだけど、日本語や中国語をサポートするために、mozporterという名前の専用のtokenizerを持っている。なので、Thunderbird 3のプロファイルの中にあるglobal-messages-db.sqliteを開いて、SELECT * FROM messageTextなんてやっても、tokenizerがないということでエラーになる。

で、どうやってこのテーブルを開くかなんだけど、このテーブルを開くには、ダミーのmozporterを登録すればいい。以下の方法はsqlite3のシェルでのやり方

  1. porter tokenizerのアドレスを取得
    sqlite> select hex(fts3_tokenizer('porter'));
    00EF420A8C7F0000
  2. ダミーのmozporterをそのアドレスで登録
    sqlite> select fts3_tokenizer('mozporter',X'00EF420A8C7F0000');

こうすることで、messageTextとかを開くことができる。インデックスを更新する(データの挿入、更新等)をしなければ、おそらく大丈夫かと。ただし、MATCH検索等、インデックスが必要なクエリーは正しく動作しないはず。(ASCII文字は問題ないはずで、それ以外は自分でbi-gram化するとかすれば検索できるとは思う)

2010-04-22

各社JITの現状のまとめ

Microsoft以外のブラウザの最新版はJavaScriptエンジンにJITを搭載しているのだけど、現状および今後搭載されるものの対応アーキテクチャのまとめ。

エンジンの名称対応ブラウザx86x86-64ARMPowerPCMIPSSparc
TraceMonkeyFirefox 3.5以降
JaegerMonkeyFirefox.next×××
V8Chromium/Chrome××
SFX (Nitro)Safari 4以降×××
CarakanOpera 10.5以降N/AN/AN/AN/A
ChakraInternet Explorer 9以降N/AN/AN/AN/AN/A

2010-04-21

ESET Smart Securityとの戦い

昔、NOD32というのは、非常に軽いという評判だったんで興味はあったんだけど(オレは昔からNorton AntiVirusの英語版を使ってて、ちょっと前はCAのe-Trustに浮気した覚えが。x64版があったんで)、今現在オフィスでESET Smart Securityというのを使ってる。

で、それを使ってからあった出来事。

  • Windows x64版のFirefoxをビルドする際に、インストーラを作成する段階で、7-ZIPな自己解凍形式のEXEファイルを作成するとき、その部分をUPXで圧縮をかけるんだけど、その圧縮かけたファイルをウィルスと常に誤検知。ということで、ビルドするときはESETをオフにするとかする羽目に
  • Symbianは今形だけオープンソースな感じなんだけど (カーネルビルドするのにRealView Complation Tools 2.2が必要で、これ約60万円。その状況でオープンソースです!ってアホすぎでしょ?。MicrosoftのShared Sourceと変わらない気が)、そのソースキットのとあるファイルをウィルスと誤検知してくれるおかげで、ソースキットのZIPファイルをダウンロードする際には、ESETをオフ
  • そうこうするうちに、NightlyのFirefox 3.7a5preのビルドがウィルスっぽいから、提出しますか?というダイアログが表示。これは昨日

当然提出しても、一向に変わる気配もないので(半年前から送り続けてる)、仕事では、ESET使いものにならないんで、非常に困ってる。。。この件で個人で買うことは絶対あり得ん。

なお、個人的にもう買うことはないと思っているものはもう一つあって、どこかのウィルス対策ソフトウェア。というのも、こいつのカーネルモードドライバが、ファイルアクセスを横取りするためにやってるやり方が、非常に行儀良くないやり方(Windowsのカーネルモード的にやるんだったら、フィルタドライバをファイルシステムの前にかますのが一番行儀いいやり方というか、それでやれよ)やるんで、ちょー嫌いだったからだけど。クラッシュダンプ見ると、もー消えてなくなれって感じだったし。NtCreateFileにジャンプ入れてなんて、DOS時代のフックアプリじゃねーんだから。

2010-04-13

Opera Miniが承認されたそうだが

おそらく承認されなければ、OperaはEUとかに暴れる予定だったと思うのだけど、アップルがまさかの承認。個人的には予想外。

というかさ、サーバーレンダリングが許されるんだったら、Skyfire(エンジンはGecko使ってて、なおかつオフィスも現Mozillaのオフィスの2ブロックくらいそばにある)もたぶん作ってくるだろうけど、そうすれば、Flashが動くことになるよね?(iPhone上じゃなくて、Skyfireのサーバー上でFlashが動くような仕組みになるんだと思うけど)。

2010-04-07

SIMフリー化でドコモとかイーモバiPhoneが使えるって言ってるヤツはもっと知るべきことがある

まず、i-modeはデータ通信の規格が違うので、それには接続できない。 (Nokiaはドコモから発売してた端末(S60採用)で接続できるようにしていたのでソフトウェア的にやる方はあるとは思うけど、その仕様は公開されない) だから、一般ユーザーはスマートフォン用のアクセスポイントを使う必要があるわけだ。Biz・ホーダイ定額かMoperaだね。

一部のユーザーでは有名な話だけど、ドコモのスマートフォン用のBizの定額アクセスポイントってのは、確か一定時間おきでポーリングしてて、そのポーリングをしないと強制切断する仕様になってる。これはNokia馬鹿な人たちなどの検証結果を見ればあきらか。

ということは、SIMフリーになっても定額のアクセスポイントは使えないってこと。Mopera経由で最大13,650円払うということになるわけだ。倍以上のデータ通信料を払っても使いたいということであれば、いいけどさ。

あと、イーモバはW-CDMAを採用しているけど、そもそも周波数帯が異なる (イーモバが使っている1.7GHzってのは世界で利用しているキャリアは日本のみ。T-Mobile USの1.7GHzは別の周波数帯)。なので、イーモバでiPhoneを使うことなんて、Pocket Wifi経由でしかない。

だから、一番恩恵を受けられるのは、ソフトバンクへ接続したいユーザーだけじゃないかと。ネットワークの質の問題はあるかもしれないけど、プッシュメール(MMS)なりデータ通信規格なり周波数帯(W-CDMA 2100はヨーロッパでも使われている)なり通信方式が、世界標準を採用しているおかげで、移行先としては一番恩恵受けられるんじゃない?。日本語UIなXpediaをソフトバンクに持ってくると、(ドコモネットワークでは使えない)プッシュメール(MMS)使えるわけだし。

ということで、SIMフリーにしても得になることないし、端末価格が上がる理由になるだけだから、総務省は無駄に関わるのをやめてほしい。

2010-03-31

JavaScriptのベンチをCortex-A8上で取ってみると

先週末にNetWalkerを弄っていて、Ubuntu 10.04ベースに変えたんだけど (カーネルはまだ変えてないけど、ポーティングは終了してるから動作テストとかしないと)、ARM版の10.04だと、Chromiumがレポジトリに入っているんだよね。起動速度はFirefoxよりは速いんだけど、ちょっとした疑問が。"V8ってARMでも速いの?"

そもそもTraceMonkeyのアーキテクチャとして、CPUへの依存コードというのは最小限になっていて、LIRをコンパイルするだけになっている。なので、TraceMonkeyの肝はLIRの質とTracing可能な条件を増やすことで、そんなに各CPU毎の最適化は必要ない(もちろん最終的には必要なのだが)。また、V8ってのはそのような形式ではなくて、ゴリ押しでコンパイルするだけという割り切った仕様になってる。だから、各CPU毎の最適化ってのはちょー必要で、x86以外ちゃんとやってるのかどうかってのが疑問だった。

また、W3C Japanese IGでアクセスのNetFrontの開発の方にお会いした時に、各社ARM上でのJITってどうするのって話になって、「MozillaはARM用のJITは投入されているけど、他社はまだまだ正式投入はまだみたいだね。知る限りNitroもARMのJIT持ってるし、V8もARMのJITあるよ。」という風に答えていたんだけど、実測したことなかったし、ARM上のベンチマークも見たことがない

ということで、いろいろとテストしてみた。

グラフが汚いのはGoogle Docsのせいだけど、TraceMonkeyの方が速いってどんだけ他の会社手を抜いてんねん。Mobileだって重要だろうに。でも、凄く興味があるデータがとれた。

ちなみに、V8ベンチはTraceMonkeyよりもV8の方が速いのは当然。でもx86の時と比べて差が低くなってる。

2010-03-29

プレゼン資料二つアップロード

今月2回も話す場所があったので、その際に作成した資料をアップロードしました。

一つ目はW3C SVG IG JapanでMozillaとSVGの話。Acid3テストが100点じゃない理由が書いてあります。

もう一つは、JAGATのクロスメディア研究会で話してきたCSS3の話。Webフォントの話はまだドラフトのドラフトですけど。

ご参考まで

2010-03-24

OperaがOpera MiniをApp Storeに申請したらしいが

アップルは、(iPhoneに内蔵している)WebKitをレンダリングエンジンとして利用したブラウザ以外は許可しないということを許諾書に書いていたはずなので、おそらく事前にアップルとの協議で物別れになったんだろう。

なので、App Storeに申請 -> Appleに却下 -> 世論を味方につける or アップルをEU政府に訴えるってところを狙ってやってんじゃないかな。以前のGoogle Voiceの時と一緒でね。

で、 Firefoxは?っていうと、ノーコメント。
http://hg.mozilla.org/users/dougt_mozilla.com/arcticfox-patches/

2010-03-22

イノベーションには必要なものは?

いつもとは全然違う話になるけど。

そもそも十代の頃からクラブに行くようになってたんだけど、ここ1、2年はDJ環境もPCDJがある程度多くなってきてる。そこらは、Final Scratchから始まったものだけど、複数のトラックのつなぎに3台のターンテーブルを使わなくても、即座に切り替えられるので、結構やりたい放題のDJってのができる。

いろいろな自由度が増してるからDJはより面白くなるはずなんだけど、オレが年取っただけかもしれないが、PCDJのDJを見てると、なんかやり過ぎ感があってていうか、グルーヴ感がなくなってる気がする。

世の中の音楽の歴史上、自由度が増すから新しいものが出てくるってのはそんなにない。テクノとかハウスだって、TB-303とかTR-808とかの音の作り方に制限のある機材を本来の目的とは異なった使い方で使うことでイノベーションしたわけだしね。また、サンプラーを使う場合においても同様で、ブレイクビーツの再発明においては、逆に音を悪くする(サンプラーで打ち込むネタを取り込む時にS950を使うとザラついた感がでるとかね)とか、制限を利用して新たなものを作りだしたわけだ。

前、Google Chromeの拡張のAPI Expertのos0xさんと話した時に、「Chromeの拡張APIだとこういう制限があって、その制限でやりくりするために、いろんなアイデアが必要になる」という話を聞いた。例えば、No Referrerをやるような拡張を作る場合は、正攻法で攻めるとやる方法がないので、Data URLからhttpへはReferrerがセットされないことを利用して、上手くごまかすようにするとか。自由度がなければ、その中でいろんなアイデアって人の中で生まれるんだなっと。

いろんなイノベーションを起こすには、自由だということは必ずしも必要がないかも。人間の思考ってのは、ある程度制限を加えた方が、より面白いことができるんじゃないかなって。

こんなことを、ちょっとクラブ行った時に思った。そんだけ。

2010-03-17

canvasベンチ

canvasタグを8倍高速化する方法&FlashCanvasが4倍速くなったに書いてあるベンチマーク、Firefox 3.7 + Direct2Dバックエンドで動作させると、大体Safari 4.0と同様のスピードになる (Chrome 5.0は全部の中で最速)。

また、putImageDataとかgetImageDataはFirefox 3.6までだと相当遅いので、これは3.7になれば、約数倍早くなるよ。(割り算はクロック数使うから、割り算しないロジックに変更した結果)

あと、Canvas系で遅いのは、大体TraceMonkeyがJIT化にコケる場合が多い (結果としてインタープリタのまま実行されてしまうことになってしまうため)。JaegerMonkeyがLandされれば、TracingのJITがコケてもJIT化されるから、1.2倍から2倍くらいは速度が改善すると思う。

ちなみに今日の昼、テストでWindows x64用のJaegerMonkey対応コードを書いていたけど、V8のベンチが項目によっては最大2倍くらい早くなってた。特にV8のベンチは、TraceMonkey的には苦手なものだらけなので、TracingがAbortingした後にJaegeMonkeyによって高速化できれば、相当改善が可能になるだろうね。

2010-03-14

そういや、MeeGoってどうなるの?

IntelとNokiaの発表でmaemomoblinが合体して、MeeGoになるらしいんだけど、今ある情報からすると、、、

  • Nokiaの偉い人 (Maemo部門のトップ) は、いろんなところで、「Nokiaの戦略としてスーパーハイエンドはすべてMaemoで行くつもり」って発言してる
  • Maemo 6はQtベースで作ってる。(だから、Maemo 6用のFirefoxはQtベースにしようとしているため、モバイルチームがQtのコードをいろいろ実装中)
  • MoblinはGTK+Cutterじゃなかったっけ?。もろQtと被ってるけど、Maemoな人たちは、Qtで作業してるよね
  • Maemoはdebベース。でもMoblinってRPMじゃなかったっけ?。でもMaemo 6やってる人たちはRPMに変わるなんて一切言っていないから、おそらくdebベースのまま。

ということは、Moblinの成果ってカーネルだけで、すべてサヨウナラってこと?。インテルがソフトウェアで成功した試しがないという伝説の新たな一ページになっただけか、Moblinって。

2010-03-13

Ubuntuの新しいテーマ

ATOKのツールバーが非常にダサくなってしまったよ。

それよりも、Ubuntuのlibnotifyでクリッカブルの通知受け付けないのは納得いかない。通知メッセージがクリッカブルを受け付けないデスクトップの場合は、XULベースの通知ウィンドウだすのではなくて、クリックを受け付けないようにする設定作った方がいいのか?

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に対してボコボコに言う気持ちはわかる。

2010-01-29

途中で投げ出したくなる気持ちはよーくわかる

今週はThunderbirdばかりやってるんだけど (正確には全文検索エンジンのアップデート。3.0のリリース前にからわかってて、やってなかったものをやってる。テーブル作るのが面倒でやらなかった、全角・半角を区別しないで検索できるようにするとか、non-asciiの大文字・小文字区別をしちゃうんで、しないようにするとか)、人が投げ出したものとか中途半端になっているものもいろいろ見てる。

OSSをやると無駄なコミュニケーションが発生するというのは、このブログでたまに言っているど、大体途中で投げ出したくなるものがいっぱいあるよね。僕もMozilla以外でもパッチを投げたりするんだけど、リプライ内容がうざいとやる気なくすというか、シネって思う時もあるから、それが非常に重要なもの以外は、もうそれ以上口出す気なくなるし。

Mozillaでもいろいろ中途半端になっているパッチってのがいろいろあるんだけど、それが有用なパッチだと思うんだったら、レビューを通るようにこっちで直してあげないといけないと思ってて、そういうのはたまに手を出すようにしてるんだよね。

もし、そういう感じで止まってるものがあれば、BugzillaのCCに私入れてもいいですよ。やれる範囲で動きます。

2010-01-23

W3C HTML5 Japanese IG 第一回ミーティング

昨日、慶応大学の日吉キャンパスでW3C HTML5 Japanese IGミーティングに行ってきました。来ていただいた方はホントにありがとうございます。私自身も外で話すのは1、2ヶ月に一回くらい(しかも内容が全部まったく違う)なので、ちょっと手際が悪くてすみません。

以下雑感。

  • 事前に各々どういう話をするのか決まってない状態だったので、被らないか冷や冷やしてた。
  • なぜか二回も椅子から転げ落ちる及川さん@Google
  • 自虐ネタに終始する五寶(ごほう)さん@Microsoft
  • Q&Aのところで、ウチ呼ばれてないという発言をする某社 (NetFront作ってるところね。あとで、ARMのJITの話をちょっとしました)
  • Firefox 3.6のリリースがカブってたので、深夜にFirefox 3.6の灯(ともしび)を見ながらオフィスで資料を作っていたんだけど、そこで自分のノートPCでWebGLのデモが動かないのが発覚してちょっと残念。というかさ、OpenGL使うとインテルのドライバの中でクラッシュするんだけど。
  • たぶん時間使ったのオレだよね。すみません。

日吉なのに(日吉の人たちすみません)、金曜の夜に100人くらい集まったのは正直凄いと思う。Webクライアントサイドからの視点でカンファレンスみたいの出来たらいいよね。どこの会社も日本にちゃんとオフィスあるし(大体のところは技術を話せる人もいるしね!)、日本のベンダもあるし。

なお、次回は3ヶ月後だそうです。参加人数が多くなっても300人くらいはイケる部屋があるそうですよ!

2010-01-22

Firefoxクッキー

ランチでたびたびお世話になっている麹町カフェさんに、Firefoxクッキーを作ってもらいました。

ちょうどFirefox 3.6のリリースと被ってしまったのは、ホント偶然でしたが。

2010-01-21

"退行バグ"って言葉

自分はOS/2のコードを書いてたこともあるので、OS/2の日本語ドキュメントを読んでたことがあるんだけど、OS/2 2.1の頃のドキュメントってのは、もう奇跡に近い感じ。

まず面喰ったのは、"適用業務"って言葉。何の訳かと思ったら、"Application"の訳とのこと。ヤバい。そんな感じで開発用のドキュメントは変な日本語を多用してる。その頃みんなが言うには、「日本語ドキュメント読むくらいだったら、英語の方がまだわかるから」。確かに英語の方がわかるよねってことで、英語のドキュメント使ってコード書いてた。

そんな感じで、カタカタ使えばいいのに敢えて日本語使っちゃって意味わかんなくなってるのってない?。中国語じゃないんだからって。

いつもそれを思うのは、"退行バグ"って言葉。英語だと"Regression"とかなんだけど、オレの10数年のエンジニア生活 (普通のSI会社から外資系、およびベンチャーな小さい会社) の中で退行バグなんて言葉が出てきたことがない。オレ自身はリグレッションという言葉を使うけど、エンバグくらいでしょ、それに対しての日本語訳って。

"夜間ビルド"もクソ日本語訳だと思う (スナップショットビルドとかでいいじゃん) けど、初めにやっつけで訳してずっと使われる例ってたまにあるよね。

2010-01-18

W3Cで話します

HTML5 Japanese Interest Groupのミーティングが今週1月22日にあるそうですが、2010-01-22 第一回ミーティングで話をすることになりました。主要ブラウザメーカーの人たちが集まってプレゼンするという機会はそんなにないかと思いますので、時間がある方は是非来てみてください。

補足 (2010/01/22)

資料を張り付けておきます。

Thunderbird 3.1

とりあえず、IMAPの2G/4Gフォルダ制限はなくなることで動いている。ローカルフォルダの制限については、全プラットフォーム4GBになるはず (今まではWindowsだけ4GBでそれ以外は2GB)。パッチはすべて作成済みなんだけど、自動テストで6GBのIMAPフォルダをダミーで作るとか2GB越えのローカルフォルダを作成するとかやることになるけど。

あと、asuthと僕がどこまでやるかにはよるけど、Glodaの検索はちょっとは手を入れると思う。全角半角の区別なくすとか、ASCII以外の大文字・小文字の制限無くすとか。

RSSは今回も手を入れないとは思うけど、RSSのデータだけsqliteデータベースに移行できるかどうかは考えてみます。今まではmorkベースだから問題ありありだし。

2010-01-13

去年買ってしまったもの

自分への戒めということで書いておく。

iPhoneとPalm PreNokia N97以外はすべて押さえているような気がする。Droidは現物見たときに買わなくてよかった。

ARMデバイスばっか買いすぎ。

2010-01-12

Google Chromeのユーザー設定

ちょっと実験をしてた関係で、Google Chromeのユーザー設定がどこの入っているのかを調べてた。

ブックマークについては、ユーザーのプロファイル内のBookmarksファイルにJSON形式で保存されてて、ブラウザの設定内容もPreferencesにJSON形式で入ってる。sqlite使ってると思ったから案外意外。ブックマーク自体をする人が少なくなるだろうと思って設計したのかなって感じ。

ただ、Cookieと履歴に関しては、sqliteのデータベース (CookiesとHistory) に入ってる。しかもなぜか日付のデータ形式がFILETIME使ってる。Windows以外のプラットフォームだと面倒かと思うけど、新しいデータ構造を作るよりは既存のもので64-bitのものを採用しただけだろう。あと、フォームのオートコンプリートとかも同じディレクトリにあるファイルに入ってる。

なるほどねって感じだけど、そんなに工夫を入れてるわけでもないというところだね。

実験というのは、このことだけど、C++からJSONを簡単に扱える方法が既存コードではないようなので、JavaScriptベースで実装テストしてただけ。

2010-01-04

Nokia N900

勢いで買ったんだけど、金どうしよう。今月ヤバいんだよな。

本体はHTC Touch Proのような厚さ。Touch Proよりは若干薄いかな。でも液晶はiPhoneなみに非常に大きい。キー入力は結構いい。Fnキーにあたる部分をシフトキーの上に持ってきたのは正解。

充電はMicroUSB経由。今後はMicroUSB経由になっていくみたいだし

日本語入力は、SCIM入れればできるらしいけどまだ試してない。あと、日本語表示は普通にできる。

OMAP3でPowerVR使ってれば、このくらいのUIは作れるよという感じだね。これを見ると、(ATIのGPUほとんど使えてない) NetWalkerの残念な感じが。。。

2010-01-02

Thunderbird for Mac OS X 64-bit

画像だけ

ファイル添付のところとEudoraのメールインポートのところが、Carbonライクのコードになっているので、面倒くさいということはわかった。あとは、ドックのところが古臭いコードだから、それもどうかしないといけないらいしい。