たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。
以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
mozIStorageStatement.finalize() メモ - 1/4ガロン
うっ。僕の知識は古かった。Firefox 3 Hacksで、createStatement()
で作ったステートメントは使い終わったらstatement.reset()
、と書いてましたが、statement.finalize()
が正解だったようです。
が、一律にこう置き換えるとよい、というわけでもないのがややこしい所です。mozIStorageStatementのfinalizeメソッドはどうやらFirefox 3.0.x(Gecko 1.9)で導入された物のようで、Gecko 1.8系では存在しません。なのでメソッドを呼ぶ前に存在確認をしておかないといけない。Firefox 2なんてもうサポート終了してんじゃん!と思うかもですが、Thunderbirdはまだ2.0.0.xが現役なのでもうしばらくは気をつけないといけないんですハイ。
ところで、僕はずっと誤解してしまってたんですが、ステートメントはstatement.reset()
でリセットすると、バインドするパラメータを変えて何度も使い回せるんですね。createStatement()
のオーバーヘッドがどのくらいなのかよく分からないのでアレなんですが、SQL文が変わらない時はキャッシュしたステートメントを使い回すようにするという形で、高速化を図れるでしょうか。XUL/Migemoに早速活かしてみたいと思います。
現時点までで、以下の設定項目が新設されたところまでは把握してる。
以下は削除された、と。
が、どれがどんな風に働くのかがごちゃごちゃして分からんようになってきた……
browser.urlbar.default.behavior(フラグを指定しておくことで、restrictとかmatchとかの指定をしたのと同じ状態から検索をスタートする)に3を指定するのと、browser.urlbar.search.sourcesに3を指定するのとの、違いがいまいち分からない。ので、ソースをあちこち辿ってみた。見てみた感じでは、どうやらnsNavHistoryのProcessTokensForSpecialSearchメソッドが鍵になってるっぽい。
検索対象のテーブルの指定や絞り込みの条件は、すべてmAutoCompleteCurrentBehaviorという1つの変数にフラグとして格納される。
これらを踏まえて、以下の順で処理されている。
ああややこしい……
その場での入力とデフォルト設定のどっちが優先されるのか、がパッと分からないのってどうかと思うんだけど……XUL/Migemoのスマートロケーションバー周りの挙動をこれに合わせないといけないんだけど、こういうわかりにくい挙動をそのまま再現するというのは、モチベーションが上がらないなあ。(ていうかバグ立ってそう)
21日追記。browser.urlbar.search.sourcesが廃止されてこのエントリの内容のかなりの部分は無駄になりました。
弊社の足永さんが、Windows Mobile(エミュレータ)上でMozillaが動作している様子のデモ動画を公開してくださいました。YouTubeを見てみた所、Windows XP上で動くFennecの動画はいくつかあるみたいですが、Windows Mobile上での物の動画となるとこれが一番乗りっぽい?
アドオン作者にとって、Mozilla Add-onsにアドオンを登録することには以下のようなメリットがある。
ただし、場合によっては「べつにAMOじゃなくてもいいじゃん」と言える事もある。例えば日本語圏のユーザに特化したアドオン、はてなのサービス専用のアドオンなどであれば、AMOにおける国際化や「グローバルを相手にアピールできるぜ」関係の機能のメリットはあまり意味がない。統計情報やセキュアな公開方法・更新方法(=SSL)、過去のバージョンの保存などを自前でできていて、ランキングやレビューも特にいらないということだったら、AMOに登録するメリットはほとんど無いということにもなるだろう。
それどころか、逆に、一般公開されるまでに審査待ちのタイムラグが生じるとか、そもそも一般公開されるために必要なレビューが集まらなかったりエディタの人に公開を承認してもらえなかったりすらする(今アクティブに活動してる人で日本語圏の人はいない状態だと以前聞いた)、そんな感じでデメリットの方が大きくなってしまうとも言える。
要は適材適所ということですね。
普段、ページをスクロールするのにスクロールバー上のクリックだとかホイールの回転だとかキーボードのPageUp/PageDownキーだとかスペースキーだとか色々使ってるんだけど、ここ数日、なんかスクロールバーの空白部分でのクリックだけ突っかかるっていうか詰まるっていうか急にスクロールしなくなる現象が自分の手元では起こっている。下方向にスクロールしてる時に、急に、クリックしても何も起こらなくなる。ホイールスクロールしたり、一度上方向にスクロールしたりすると、「詰まり」が解消されてまた下方向にスクロールできるようになる。
「click scrollbar」とかで検索しても他に同じ問題を報告してる人がいないような感じだったし、いまいち確実な再現条件が特定できない――他の環境でもこうすれば確実に発生しますよ!と断言できそうな条件が分からない、自分の手元の環境でも起こったり起こらなかったりしてるので、WORKSFORMEとかINVALIDとかにされてまた永久に放置食らいそうな気もするけど、問題が起こるようになってから数日経ってもなお現象が発生し続けているので、直れば儲け物だと思ってダメ元で一応登録してみた。
問題があるとしたらきっとC++の層での話だと思うので、条件が特定できたとしても僕には絶対にパッチ書けません。パッチ書ける人誰かフォローしてください。それか、僕には既にある同様のバグを見つけられませんでしたが、もしあるならDUPLICATEDにして下さい。
ってこんなネットの辺境で書いても誰も見てないんでしょうけどね。
追記。他の人の環境でも再現されて、どうやら原因になった改変が行われたバグなどが特定されたようです。中野さんのフォローのおかげです。ありがとうございます。
UxUにFirefox用のテストケースを実行する機能を加えるにはそもそもFirefox用のテストケースの仕様を調べないといけない、ということでそこら辺の文書をあたってみたら全然翻訳されてなかったので、次にパッチを書く時(あるのか?)のための勉強も兼ねて翻訳しまくってる。
アサーション用の関数の引数の順番の理解を間違えていた……というか元の英語の文書で「thingAとthingBを比較」とか酷い書かれ方になってたので、SimpleTestのソースを確認して、「actualValueとexpectedValueを比較」という風に読んだら意味が分かるようにしておいた。こういう事があると、確かに須藤さんの言う「駄目なことはできないような設計」というのは重要なのだなあと改めて思う。
「テストハーネス(test harness)」って一般的な用語なんだろうか。よく分かんなかったから全部「テスト実行環境」って訳した。問題あるようだったら誰かが勝手に直してくれることに期待してる。→やっぱりテストハーネスで統一した。一応訳註も入れてるけど。
Firefox 3.1 beta2のスタートページのロボをカトキ立ちさせてみたものに色を塗りました。
これで一応完成としとこう。
以下、設定。
ていうか色塗る前にGenさんのブログに捕捉されてしまって、慌てて完成させた。planet.mozilla.orgから来た人とか、カラー版に辿り着けるんだろうか? せめてもの……(?)ということで英語圏の人のために↑のネタを一部訳してみた。文化と言語の壁を越えてワロタしてもらえれば幸いだ。
ところで本家のイラストを描いたのはJosh Burcham氏という方だそうで、deviantARTにある絵を見ると、Shiretokoのアレは分かりやすいかっこよさをわざと外したところを狙って描いたんだろうということがよく分かる。モテる人のための音楽が苦手な僕が、聴くことをついためらう曲は…にもモテる人たちは「ベタすぎるのはかっこ悪い」と思ってるから、音楽の好みも、ベタベタなポップソングより「クールなBGM」っぽい音楽を好む
とあるように、元絵の方が世の中的にはずっとクールで格好良くて、僕の描いてるようなのはベタベタすぎてカッコ悪い訳です。
追記。うは、Mozilla Linksに載っちゃったよ。
Browser chrome tests - MDC 見ながらなんとか環境整えてビルドしてテスト実行して……という風な事をしてみたけど、テスト結果のあまりのわかりにくさに閉口した。しかも一個テストがこけたら後の物も続けて失敗するし。クリーンなプロファイルで起動してくれるのはいいけど、あとがもうメタメタすぎて、とても常用(?)する気にならないよ……
というわけでUxUの次のテーマはFirefoxのソースツリー上にある自動テストを実行する機能ということにしたいと思います。
waitForExplicitFinish()
とfinish()
での非同期テストをサポートする。この辺が鍵でしょうか。
追記。概要をつかむために説明を翻訳した。これによると、「browser_*.js」という名前のファイルだけがブラウザ用のテストとして認識されるようなので、ファイル名がこのルールに一致していたら上記のような特別な処理を行うようにする、という感じで行けそう。
beta1、beta2と描かれているアレを勝手にリファインしてみてるYO!
口元や胸の光ってるのをサイコフレームの燐光と勝手に解釈して激しくユニコーンガンダムくさいディティールに。腹の円は……まあ、GNドライブくさいけど位置も形もコレ以外にないよねえってことで。
こんな時に何をやってるんだろう自分は。
左手が元絵だと剣?っぽいのが何故かドリルになってるのは、日本の燃える男の武器といえばドリルだからです。ドリル。
バストアップ。
顔はこんな感じ。赤いアンテナをどうしようか悩んだけど、なるべくシルエットは残す方向で。
さらに追記。細かい手直しついでに、少しディティールを変えた。
さらに追記。色塗りました。