Hatena::Grouporera

もし高校野球の女子マネージャーがOpera Browserを使ったら

logo
 | 

2009-09-25

MacWorld

07:25

超・超・超・適当訳。引用部分が全部ではない。


On a 2GHz Core 2 Duo MacBook, Opera rendered an XHTML test page in 1.83 seconds, slower than the .49 seconds posted by Safari 4 () but faster than the 2.66 seconds by Firefox 3.5 (). In a CSS test, Opera scored 152 miliseconds to Safari’s 35 ms and Firefox’s 361 ms.

XHTML テストページのレンダリングではどうのこうの、CSS テストではどうのこうの。(訳注・興味深いけどテスト自体が公開されていない)

The only real disappointment under Opera’s hood was its JavaScript performance. Opera 10 wheezed through the SunSpider JavaScript benchmark in 6144.6 ms, compared to Firefox’s 1464.4 ms and Safari’s 756.4 ms. In regular use, the browser felt no less responsive than Firefox or Safari. Aside from a couple of non-reproducible rendering glitches, Opera 10 gave me no troubles.

Sunspider ではどうのこうの。レンダリングがたまに途切れることがあって再現不可能 (訳注・これは僕も思う)。それ以外は快適と。

However, since it’s not as widely used as some rival browsers, certain Web apps, like Netflix streaming movies, simply don’t support it. That’s not Opera’s fault, but it’s still a drawback.

Netflix streaming movies のプラグインが動かないけど、Opera のせいじゃないんだよねー。でも欠点と言えるだろう。

Visual tabs, for example—drag down the tab bar to reveal thumbnail images of each open page—look nice, but seem to add little usefulness. And while I was amazed by the capabilities and easy installation of Opera’s built-in Widgets, I’m still not sure why a Web browser needs a full-featured drawing program or a solar-system simulator.

タブが可視化できるのはいいけど、便利かなあ? Widget があるのはおもしろい。でもブラウザにお絵描きアプリや太陽系シミュレーターが必要な気がしないんだけど。

Opera Turbo was another well-intentioned miss for me. It compresses pages for speedier downloads over slow networks. In my tests, pages did seem to load more quickly with Opera Turbo on, but the images on them were blocky and heavily artifacted. Turbo is a thoughtful idea, but in this age of ubiquitous broadband, I’m not sure it’s necessary.

ターボは狙いすぎて失敗してるよね。ユービキタス・ブロードバンド時代に必要なのか?

I found Speed Dial much more useful. A friendlier, more customizable version of Safari’s glossy Top Sites view

Speed Dial はいいね。Safari のより「ふれんどりー」で「かすたまいざぶる」だ。

The Panels also contain Opera’s handsome built-in email client, which is favorably reminiscent of Apple Mail. I especially liked how the Contacts panel in Opera Mail lets you display every message from a given individual. If you want all your online functions in one program, Opera Mail should do the job nicely.

パネルのアドレス帳は Apple Mail っぽくて良い。コンタクトパネルが特に良い。Opera Mail は良い選択肢になりうる。

There’s no support for multitouch gestures on Apple’s newer laptops, although Opera offers its own, less elegant set of gestural controls.

マルチタッチジェスチャーはサポートされてない。その代わり、より不細工なマウスジェスチャーがあるよ。(訳注・1ボタンしかないパソコンでマウスジェスチャーは使えないと思う)

And while it handles basic markup just fine, Opera doesn’t seem to support some of the more advanced features of the emerging HTML5 standard, including the tag.

(訳注・Opera 10がサポートしない標準仕様のこと)

Thoughtfully designed and superbly engineered, Opera 10 is an excellent choice for anyone wanting more speed than Firefox, but more flexibility than Safari. Aside from its second-class-citizen status with Netflix and other cutting-edge Web tech, Opera 10 hits all the right notes.

結論。Firefox よりスピードが欲しく、Safari よりカスタマイズしたい人にとっては最高だよ。


感想

僕としては公平な視点だと思ったけど、どうでしょう?


AquaSKKの件の続き

09:38

昨日のやつですが、案外簡単に出来ちゃいました。

f:id:edvakf:20090924203051p:image

大きな変更ではないのだけど、パッチを送ろうかどうしようか考え中。(SIMBL プラグインという形にもできるはず)

ちゃんとテストもしてないし。


あと、自分のやってる方法ではとあるメソッドの引数の一つを無視するように変更するのです。ちゃんと意味があって与えられてる引数だと思うし、無視しちゃってもいいのかなと。

無視しないでもいい方法もあった。dirty hack だけど他に影響は無さそうなのでこれで公開してみよう。

とりあえずパッチ。

% svn diff
Index: src/gui/MessengerWindow.mm
===================================================================
--- src/gui/MessengerWindow.mm	(revision 125)
+++ src/gui/MessengerWindow.mm	(working copy)
@@ -61,7 +61,7 @@
     
     [window_ setFrame:[view_ frame] display:NO];
     [window_ setFrameTopLeftPoint:topleft];
-    [window_ setLevel:level];
+    [window_ setLevel:level+1];
     [window_ setAlphaValue:1.0];
     [window_ orderFront:nil];
 
Index: src/gui/InputModeWindow.mm
===================================================================
--- src/gui/InputModeWindow.mm	(revision 125)
+++ src/gui/InputModeWindow.mm	(working copy)
@@ -94,7 +94,7 @@
     [self updateFrame];
 
     [window_ setFrameTopLeftPoint:topleft];
-    [window_ setLevel:level];
+    [window_ setLevel:level+1];
     [window_ orderFront:nil];
 
     [rootLayer_ addAnimation:animation_ forKey:@"fadeOut"];
Index: src/gui/CompletionWindow.mm
===================================================================
--- src/gui/CompletionWindow.mm	(revision 125)
+++ src/gui/CompletionWindow.mm	(working copy)
@@ -61,7 +61,7 @@
     frame.origin.y -= frame.size.height;
 
     [window_ setFrame:frame display:NO];
-    [window_ setLevel:level];
+    [window_ setLevel:level+1];
     [window_ orderFront:nil];
 }
 
Index: src/gui/AnnotationWindow.mm
===================================================================
--- src/gui/AnnotationWindow.mm	(revision 125)
+++ src/gui/AnnotationWindow.mm	(working copy)
@@ -73,7 +73,7 @@
     }
 
     [window_ setFrameOrigin:origin];
-    [window_ setLevel:level];
+    [window_ setLevel:level+1];
 
     [self performSelector:@selector(activate:) withObject:self afterDelay:1.0];
 }
Index: src/gui/CandidateWindow.mm
===================================================================
--- src/gui/CandidateWindow.mm	(revision 125)
+++ src/gui/CandidateWindow.mm	(working copy)
@@ -76,7 +76,7 @@
 
 - (void)showAt:(NSPoint)origin level:(int)level {
     [window_ setFrameOrigin:origin];
-    [window_ setLevel:level];
+    [window_ setLevel:level+1];
     [window_ orderFront:nil];
 }

適用方法

適当なディレクトリを作って

% svn checkout http://svn.sourceforge.jp/svnroot/aquaskk/aquaskk/trunk/

とやってソースをダウンロードし、中に入る。

% cd trunk/platform/mac
% ls    
Makefile plist    proj     src

ここの src というディレクトリが上のパッチ中の src ディレクトリにあたる。

あとは上のパッチを適用して (svn diff はあるけど svn merge で diff ファイルを適用することは出来ないっぽい? ので手動でやるしかないと思う)、さっきの Makefile のあるディレクトリまで戻り、

% make

と打つ。ここは Xcode が必須。

そうすると proj/build/Debug/AquaSKK.app というところにアプリが出来るので、それを今動いているアプリに上書きする。上書きするときは今のアプリは終了しておく。正しいやり方は知らないので強制終了。IME をことえり等に変更しておいてから、

% ps aux | grep AquaSKK | grep -v grep                           
atsushi   5927   0.5  1.5   368652  32436   ??  S    10:03pm   0:09.66 /Library/Input Methods/AquaSKK.app/Contents/MacOS/AquaSKK

として pid を調べ、

% kill -9 5927

で殺す。それでようやく以下を実行して完成。

% sudo cp -r proj/build/Debug/AquaSKK.app /Library/Input\ Methods/

あとは普通に AquaSKK を使って大丈夫。のはず。

(以上、敢えて分かりにくく書いているのは、よくわからずに安易に試してほしくないのと、自分もよくわかってないから)


何がおかしかったか

Mac OS X はウィンドウのレイヤーを WindowLevel という整数で管理している。Opera はアドレスバーの補完小窓を自分の WindowLevel+1 のレイヤーで開く。そうすると当然自分自身のウィンドウより前に来る。

AquaSKK は、入力欄の WindowLevel を指定して変換候補などを表示する。一つの WindowLevel で複数のウィンドウが開くことも可能で、orderFront: というメソッドを実行すると、その複数のウィンドウの中で一番上に来ることができる。

なので Opera の場合は AquaSKK のウィンドウがアドレスバー補完より1つ下のレイヤーにあったというわけ。

逆にことえりなんかは (おそらく) WindowLevel を決め打ちで指定しているっぽい。よくわからんけど。


えー、僕は Cocoa の流儀はよく知らないんですが、たぶんこれは Opera のほうが別のレイヤーまで出しゃばらずお行儀よくしてるべきなんじゃないかなーと思ったりした。

とりあえず、id:t_suwa さんを ID 指定してパッチ申請してみたいと思う。

GenkiGenki2009/09/25 22:42Macworldの記事は、結構ズケズケ書いてあって、Opera社員(開発者)も呼んでるといいな〜と思ってました。
視点については、僕も公平だと思いました。もっと正確に言うと「正直」な感じがしたというか。今のOperaを初めてつかった(他のブラウザもある程度使った上で)人はきっと大抵こういう印象だろうな〜と。

edvakfedvakf2009/09/26 01:52ここに書かれてるような批判的な部分は、他の媒体にもいっぱい書かれているので開発者の人にも届いていると思いますよ。
褒められた部分は嬉しいんじゃないかな。

t_suwat_suwa2009/09/29 23:40Opera の件は一応確認してみますが、ウィンドウレベルを +1 するだけで解消するのであれば、そのように修正しておきます。

edvakfedvakf2009/09/30 01:01t_suwa さん、お返事をどうもありがとうございます。

+1 だけだと「入力モードアイコンを表示する」になっているときに、アドレスバーにフォーカス→入力モードアイコンが出る→何か打ちはじめる→アドレスバー補完が出る→入力モードアイコンが隠れる、ということが起こります。これは僕が入力モードアイコンを表示しない設定にしていることからノータッチとしました。

恐縮ならが私見を申しあげるなら、漢字変換中は変換候補を選ぶことに人間の集中があると思います。その変換候補を他のウィンドウより下に出すことに意味は無いと思うんですよね。だから NSScreenSaverWindowLevel-1 あたりに決め打ちしてもいいんじゃないかと思いました。

 |