Home > Latest topics

Latest topics 近況報告

たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。

萌えるふぉくす子さんだば子本制作プロジェクトの動向はもえじら組ブログで。

宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! シス管系女子って何!? - 「シス管系女子」特設サイト

Page 29/80: « 25 26 27 28 29 30 31 32 33 »

MozillaがWindows Mobile上で動いてる様子のデモ - Jan 08, 2009

弊社の足永さんが、Windows Mobile(エミュレータ)上でMozillaが動作している様子のデモ動画を公開してくださいました。YouTubeを見てみた所、Windows XP上で動くFennecの動画はいくつかあるみたいですが、Windows Mobile上での物の動画となるとこれが一番乗りっぽい?

Mozilla Add-onsのメリットデメリット - Dec 16, 2008

アドオン作者にとって、Mozilla Add-onsにアドオンを登録することには以下のようなメリットがある。

  • アドオンの配布ページを簡単に国際化できる(翻訳は誰かがしないといけないけど、ページの方はシステムで用意してくれて、ユーザの言語に合わせて適切な物が自動選択される)。
  • 統計情報を利用できる(日々のダウンロード数、アクティブユーザ数など)。
  • セキュアな方法で公開できる。ユーザは、第三者によって改竄されていないことを保証された状態で安心してアドオンをインストールできる。
  • 過去のバージョンの更新履歴とインストールパッケージを自動で残してくれる。ユーザが「古いバージョンに戻したい」と思った時にいつでも好きなバージョンを入れられる。
  • レビューを付けたりランキングを付けたりといった機能。
  • アドオンのポータル、ということになっているので、利用者増が見込める(利用者は基本的に世界規模)。

ただし、場合によっては「べつにAMOじゃなくてもいいじゃん」と言える事もある。例えば日本語圏のユーザに特化したアドオン、はてなのサービス専用のアドオンなどであれば、AMOにおける国際化や「グローバルを相手にアピールできるぜ」関係の機能のメリットはあまり意味がない。統計情報やセキュアな公開方法・更新方法(=SSL)、過去のバージョンの保存などを自前でできていて、ランキングやレビューも特にいらないということだったら、AMOに登録するメリットはほとんど無いということにもなるだろう。

それどころか、逆に、一般公開されるまでに審査待ちのタイムラグが生じるとか、そもそも一般公開されるために必要なレビューが集まらなかったりエディタの人に公開を承認してもらえなかったりすらする(今アクティブに活動してる人で日本語圏の人はいない状態だと以前聞いた)、そんな感じでデメリットの方が大きくなってしまうとも言える。

要は適材適所ということですね。

スクロールバーのクリックでスクロールしなくなる現象 - Dec 15, 2008

普段、ページをスクロールするのにスクロールバー上のクリックだとかホイールの回転だとかキーボードのPageUp/PageDownキーだとかスペースキーだとか色々使ってるんだけど、ここ数日、なんかスクロールバーの空白部分でのクリックだけ突っかかるっていうか詰まるっていうか急にスクロールしなくなる現象が自分の手元では起こっている。下方向にスクロールしてる時に、急に、クリックしても何も起こらなくなる。ホイールスクロールしたり、一度上方向にスクロールしたりすると、「詰まり」が解消されてまた下方向にスクロールできるようになる。

「click scrollbar」とかで検索しても他に同じ問題を報告してる人がいないような感じだったし、いまいち確実な再現条件が特定できない――他の環境でもこうすれば確実に発生しますよ!と断言できそうな条件が分からない、自分の手元の環境でも起こったり起こらなかったりしてるので、WORKSFORMEとかINVALIDとかにされてまた永久に放置食らいそうな気もするけど、問題が起こるようになってから数日経ってもなお現象が発生し続けているので、直れば儲け物だと思ってダメ元で一応登録してみた。

Bug 469613 - Clickings on scrollbar's blank areas (above or below the thumb) don't scroll the page, if the page is very long.

問題があるとしたらきっとC++の層での話だと思うので、条件が特定できたとしても僕には絶対にパッチ書けません。パッチ書ける人誰かフォローしてください。それか、僕には既にある同様のバグを見つけられませんでしたが、もしあるならDUPLICATEDにして下さい。

ってこんなネットの辺境で書いても誰も見てないんでしょうけどね。

追記。他の人の環境でも再現されて、どうやら原因になった改変が行われたバグなどが特定されたようです。中野さんのフォローのおかげです。ありがとうございます。

MDCの自動テスト関係のドキュメントの翻訳 - Dec 12, 2008

UxUにFirefox用のテストケースを実行する機能を加えるにはそもそもFirefox用のテストケースの仕様を調べないといけない、ということでそこら辺の文書をあたってみたら全然翻訳されてなかったので、次にパッチを書く時(あるのか?)のための勉強も兼ねて翻訳しまくってる。

アサーション用の関数の引数の順番の理解を間違えていた……というか元の英語の文書で「thingAとthingBを比較」とか酷い書かれ方になってたので、SimpleTestのソースを確認して、「actualValueとexpectedValueを比較」という風に読んだら意味が分かるようにしておいた。こういう事があると、確かに須藤さんの言う「駄目なことはできないような設計」というのは重要なのだなあと改めて思う。

「テストハーネス(test harness)」って一般的な用語なんだろうか。よく分かんなかったから全部「テスト実行環境」って訳した。問題あるようだったら誰かが勝手に直してくれることに期待してる。→やっぱりテストハーネスで統一した。一応訳註も入れてるけど。

Firefoxのテスト環境が…… - Dec 10, 2008

Browser chrome tests - MDC 見ながらなんとか環境整えてビルドしてテスト実行して……という風な事をしてみたけど、テスト結果のあまりのわかりにくさに閉口した。しかも一個テストがこけたら後の物も続けて失敗するし。クリーンなプロファイルで起動してくれるのはいいけど、あとがもうメタメタすぎて、とても常用(?)する気にならないよ……

というわけでUxUの次のテーマはFirefoxのソースツリー上にある自動テストを実行する機能ということにしたいと思います。

  • イベント関係のユーティリティのエイリアスを作る。
  • waitForExplicitFinish()finish()での非同期テストをサポートする。
  • 実行コンテキストを新しく開いたブラウザウィンドウに固定する(テストごとにウィンドウを破棄)。

この辺が鍵でしょうか。

追記。概要をつかむために説明を翻訳した。これによると、「browser_*.js」という名前のファイルだけがブラウザ用のテストとして認識されるようなので、ファイル名がこのルールに一致していたら上記のような特別な処理を行うようにする、という感じで行けそう。

XUL/Migemoで、非表示の要素の中にマッチする文字列があったときに検索結果がおかしくなる問題で悩んでる - Dec 05, 2008

掲示板の方で障害報告を受けていた、正規表現にマッチするはずなのに強調表示される物とされない物があるという問題。原因を色々調べてみたら、非表示の要素が問題を引き起こしていた。

<fieldset>
<legend style="display:none">b</legend>
<p>a b a c</p>
</fieldset>

例えばこんな箇所を検索対象にして、a|bという正規表現で検索するとする。

XUL/Migemoはまず一旦検索対象の範囲をDOM Rangeで取得して、文字列に変換し、それに対して正規表現のマッチングを行う。この場合、Rangeからは「b a b a c」という風な文字列が得られ、最初にマッチした「b」がヒット箇所ということになる。

次に、この「実際にヒットした文字列」を使ってFirefox自身の持つ検索機能を呼ぶんだけど、ここで問題が起こる。Rangeの文字列化では要素が表示されてるかどうかというのは考慮されないんだけど、nsIFindのRange内検索では、ヒット箇所が非表示の要素の中だった場合はヒットしなかったものとして次候補を探してしまう。上記の例では、非表示のlegend要素の中に「b」という文字列を見つけても、非表示だからということでスルーされてしまい、実際には次のp要素内の「b」という文字列の方にヒットしてしまう。

XUL/Migemoで次候補を検索すると、次の(2つ目の)「a」にはヒットする。さらに次候補を検索すると、文書の終了に達して文書先頭から検索し直されるのだけれども、この時も上記のような事が起こって、p要素内の1つ目の「a」ではなくp要素内の「b」がヒットする。よって、普通の前方検索を行っている間は永久に、p要素内の1つ目の「a」にはマッチしないという現象が起こる。

Rangeを文字列化する時に、非表示の要素を除外できればいいんだけど……

ちなみに現在のところ、Rangeを文字列化する時は、DOM3 XPathを使ってscript要素などを検出してそこを避けるように文字列化してるんだけど、要素の表示・非表示をキーにしようとするとDOM2 TraversalのTreeWalkerを使わないといけないと思う。TreeWalkerではすべての要素ノードに対してJavaScriptの関数呼び出しと条件判定が行われるので、長いページだとヤバイくらいに速度低下が起こりそう……という懸念があって、手を出せずにいる。

追記。実際にそのように実装して試してみたところ、確かに正しく検索できるようにはなるんだけど、Rangeを文字列化する処理自体が10倍遅くなった。これはまずいなあ。

危険なアドオン、悪意あるアドオン、低品質なアドオン - Dec 05, 2008

FirefoxでAmazonの商品ページを見た時に違法ダウンロードのリンクを自動挿入するという、倫理的に宜しくないアドオンの話のコメントでタブブラウザ拡張の話が引き合いに出されていたので久しぶりに読み返してみた。

ああ、懐かしいなあ。こんな時もあったなあ。

この時はTBEが叩かれてTabMixが祭り上げられてたけど、今となってはTabMixPlusがこの時のTBEと同じような叩かれ方をしてる(TMPがアップデートされるまでFirefox 2から3に移行できない、とか、ロックインのような状態も発生してる)というのは、性格の悪い僕としては「ざまみろプギャー」と思わずにはいられません。

あの頃と状況が変わった点と言えば、当時はリリース版よりナイトリービルドの方を使うようなマニアな人の方が多かったから毎日のようにTBEが本体の変更の影響を受けてマトモに動かなくなって大問題になってたけど、今ではリリース版を使う人の方が多くてその手の「昨日は動いたのに今日はもう駄目になってる」という事態が発生することが減ったことと、あと、わりかしザル気味とはいえAMOのチェック機構のおかげで、入れた瞬間に必ずクラッシュするようなひどいアドオンにぶち当たることが少なくなったこと、あたりがあるでしょうか。他にも、Mozilla自体の作りがだいぶマシになって余計な危険なことをしなくてもよくなったとか、MDC等でドキュメントが充実してきて平均的な技術レベルが向上したとか、そういうのもあるのかも。

僕個人についても、自動テストを導入し始めたとか、他のアドオンとなるべく衝突しなくてすむようなやり方を色々考えるようになったとか、色々変わったとは思う。

しかしこういう(悪意有るアドオン云々の)話題だったらむしろ、以前にプレゼンしたCドライブを強制的にフォーマットするようなヤバイ拡張機能の話の方が適してるような気もするんだけど。でもこの時のはプレゼン資料しか公開してないんだよなあ。これだけ見ても意味分からんか。

リンクから開かれた新しいタブでも「戻る」を使えるようにするTab Historyがイイ - Dec 03, 2008

Firefoxタブ常用者のための最新エクステンションガイド - SourceForge.JP Magazine で「ツリー型タブを入れてるとTab History が無効になる」と書かれてたので「なに!」と思って入れてみたんだけど今の所特に不具合無く動いてるように見える。一応ソースも見てみたけど、特に衝突する点も無いような……一カ所「もしかして、ここか?」と思う所は無くもないんだけど。そこだけ次版で手を入れておくか……(追記:ツリー型タブ 0.7.2008120401で一応手を入れてみた)

その問題はさておき、Tab Historyは確かに良い。万人にお勧めできると思う。よくある「初心者ユーザがリンクをクリックした時に勝手に新しいウィンドウが開かれて、それが全画面表示になっているせいで、『元のページに戻りたいのに戻るボタンを押しても何も起こらないムキー!!!』となってしまう」という現象、のタブ版を防ぐ物だと言えるだろう。自分はよく、あるタブから子タブを開く→子タブを見ている間に親タブを閉じる→やっぱり親タブをもう一度見たくなる→閉じたタブを開き直す という操作をやるのだけれども、Tab Historyが入っていれば、子タブしか残っていない状態でも「戻る」ボタンで親タブで見てたページに戻れる。

ていうかソース覗いてみて思ったけど、これ作った人頭いいなー。タブが開かれる時に引数でリファラが指定されていたら現在アクティブなタブから開かれたタブであると見なしてセッションヒストリを引き継ぐ、という判定をしていて、最小限の変更で適切な動作になるようにしてる。まあリファラを偽装する系の他のアドオンと組み合わせた時には問題が起こるかもしれないけど。僕にもこういうピンポイントで問題を解決する力が欲しい。

あとPrint All Tabsにちょっと興味を引かれたので、マルチプルタブハンドラのタブ選択時のメニューに「選択したタブを印刷」を加えるようにしてみてる(Print All Tabsをバックエンドに使うので、Print All Tabsが入っていない場合は使えない機能となる)。

劣化品 - Dec 03, 2008

Ctrl-Tabタブカタログを比較して良し悪しを語るのはいいんだけど、2年近く先行して開発された(一覧の表示方法を現行の形式に変更した時で比較しても、約1年先行)物をとっつかまえて、後から出た物の劣化品呼ばわりは、さすがに無いと思うんだ。「時代遅れ」なら許せる。

あと、タブカタログが劣化品と言うなら、Ctrl-Tabのサムネイルの上で右クリックした時にタブの上と同じコンテキストメニューくらい出して欲しいです。

コンテキストメニュー拡張の機能を減らした - Dec 02, 2008

コンテキストメニュー拡張を久しぶりにアップデートした……けどアップデートの内容は実質デグレードみたいなものだ。外部アプリケーションでソースを表示する機能、mailto:のリンクをメールソフトやWebメールのサービスに渡す機能、ユーザスタイルシートを編集する機能、任意のスタイルシートを登録して切り替える機能、あたりをゴッソリ削除した。

  • ソースを他のアプリケーションで開く機能はFirefox 3本体にあるし、ソース表示タブあたりを使えばGUIで設定できる。もはや用済み。
  • mailto:の処理をコントロールする機能もFirefox 3に標準で付いてる。オプション→プログラム→mailtoで、外部アプリケーションを指定することもYahoo!メールやGmailを指定することもできる。もはや用済み。
  • スタイルシート関係の機能は、そもそもまともに動かなくなってからだいぶ経ってた。今ではStylishもあればuserstyle.orgもあり、そっち使った方が絶対にいい。

できれば無駄にRDFを使ってるバックエンドも全部捨てたいんだけど、これを捨てると旧版の設定が全部失われてしまうことになるというのが痛い。

Page 29/80: « 25 26 27 28 29 30 31 32 33 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき