Home > Latest topics

Latest topics 近況報告

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

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

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

Page 55/80: « 51 52 53 54 55 56 57 58 59 »

開発するならLeak Monitor入れとかなあかんな - Mar 30, 2007

Leak Monitorっててっきりもっとディープな人向けの物だと思ってたんだけど、入れてみたら、ふつうにJavaScriptのコードの中で起こってるメモリーリークを指摘してくれるツールだった……いろいろなプラットフォームで動くようなので、拡張機能の開発やるなら入れておいて損は無いと思う。

Firefoxのウィンドウを閉じたときに、本来は開放されていなければいけないのに開放されていないオブジェクトがあった場合、そのオブジェクトと、オブジェクトが定義されているコードのURIを表示してくれる。よくあるのはイベントリスナとかプログレスリスナとかオブザーバとかの登録解除のし忘れ。あとXBLのdestructorが動いてくれてないこともあったりするから手動で破棄するべきポイントのあぶり出しにも使える。と思う。Split Browser2 Pane Bookmarksでずっと気付いてなかったメモリーリークをつぶすことができたのは、これのおかげだ。

ただ、「このオブジェクトが開放されてないよ」ということは教えてくれるんだけど、その原因までは教えてくれない(そこは自分でコードを精査して分析しないといけない)のが、微妙に残念だった。まあそれが当り前なのかも知れんけどさあ。

それはそうと、なんかうちの環境だとこのページ見るだけでメモリーリークが発生してるんですが。

タブキラー復活 - Mar 28, 2007

Firefoxの主要機能を開発するために投じられた多くの人々の多大な努力をぶち壊しにする悪夢の拡張機能、タブキラーがFirefox 2のために帰ってきましたよ。

Firefox 2正式対応は伊達じゃない。今回のアップデートではなななななんと! Firefox 2の新機能の「最近閉じたタブをもう一度開き直す」機能をいじくり倒して、「最近閉じたウィンドウをもう一度開き直す」という機能に作り替えてみました。ああ激しく無駄な努力。

ソース見ればだいたい分かると思うけど、一応、実装の仕方を以下に説明しておく。

続きを表示する ...

nsIContentPolicyによる内部でのリダイレクト - Mar 27, 2007

URNサポートをさらに更新して、今度こそあらゆる場面でちゃんとURNをURLにリダイレクトできるようにした。

何かヒントはないかと思ってbbs2chreaderのb2rThreadRedirector.jsを見たら、nsIContentPolicyの実装?を使って内部的にリダイレクトを行えるようだということが分かった。リダイレクト処理をプロトコルハンドラから分離して同様の実装に移してみたところ、うまくいった。URN用のプロトコルハンドラは現在では、単にurn:というスキーマのURIへのアクセスを受け付けるための役割しか果たしていない。

というわけで、以下、Firefox内部でリダイレクトを行う方法をメモしておこう。

続きを表示する ...

URNサポートを超久しぶりに更新した - Mar 27, 2007

なんで独自プロトコルへの対応方法なんか訳してたのかというと、URNサポートを抜本的に改善したかったからなのですよ、と。

今までは、URIの読み込みを行う関数やメソッドについて、URNが渡されたらURLに置き換えてから本来の処理に渡すようにあちこち書き換えるという、とてつもなく泥臭いことをしていたので、場面によってはURNをリダイレクトできないこともあった。今回の更新ではこのやり方を全面的に改めて、プロトコルハンドラを使って「urn:」というスキーマへ対応するという形に構造を作り替えたので、基本的にはどんな場面からでもURNを対応するURLにリダイレクトできるようになった。

チャンネルの生成時にそのままリダイレクト先のURLを渡すとロケーションバーにURNが表示されてるのにAmazonのページが表示される、みたいな問題を回避するのにだいぶ手こずった。結論から言うと、data: URLでHTML文書片を渡したところなんとかうまくいくようになった。と思う。

……あ。逆に、browser以外で読み込んだらこれじゃマズいことになるか……

Firefoxで独自プロトコルを定義する方法 - Mar 26, 2007

独自のプロトコルというか独自のスキーマを使えるようにしたくてやり方を調べてみたら、あちこちでAdding a New Protocol to Mozillaという文書が紹介されてたんだけど、日本語訳が無かったのでとりあえず気合いと勘で訳してみた。誤訳があったらゴメンナサイ。

続きを表示する ...

Mozilla Add-ons - Mar 26, 2007

Public Nomination(Sandbox(一般ユーザからは見えない、未承認状態の拡張機能が一時的に置かれている場所)にある拡張機能を一般公開してもらうための申請)してた拡張機能のいくつかが無事公開された。ユーザのプロフィールで見れるのがそれ。

しかし今見たら、承認されて公開されたやつだけでもう800件以上いっちゃってるようなんだけど。公開する拡張機能を200件程度に絞りこむっていう話はどうなったんだ?

柔軟性の高い開発環境が持つ危険性と、それへの対策 - Mar 24, 2007

プログラムというのはそういうものだで採り上げられているいろんな意味でしゃれにならないApolloという記事は、Firefoxの拡張機能の「危険性」についての話と同じようなことを言っているなと思った。

XPCOMを使えばFirefoxでも確認なしでファイルを削除できる。ファイルの削除時の確認のダイアログは、ExplorerやFinderやNautilusといったシェルが気を利かせて表示してくれているに過ぎない。Windows 98を強制的に再起動させて次の起動時にCドライブをフォーマットする、という拡張機能のサンプルを以前プレゼンで発表したけど、開発環境、特に柔軟性の高い開発環境というのは、そういうこともできてしまう物だということは、理解しておかないといけないんじゃないかと思う。開発者も、利用者も。

携帯でJava製のアプリケーションを実行する時、僕の機種だと、毎回「ネットワークへの接続を許可するか?」と訊ねられる。これは多分パケット通信が発生するから、知らず知らずのうちに大量の通信が発生して料金がヤバいことになるというのを事前に回避するための機構なんだと思うんだけど、こんな風な仕組みを拡張機能やApollo、あるいはOS上で普通に動くアプリケーションに対しても設けていいんじゃないかなー、と思う。

今号のSoftware Designの記事でも書いた、UniversalXPConnect特権を取得するためのコードは、それに近いものがあると思うんだけど、毎回聞かれるか永久に聞かれないかの二者択一というあんまりにあんまりな大雑把さで、ハッキリ言って、実用性の点では激しく疑問だ。Norton Internet Securityを使ってると、アプリケーションの初回起動時や、バイナリが更新されたあとの初回起動時にだけ、そのアプリケーションがインターネットと通信するのを許可するかどうかを訊ねられるんだけど、このくらいの頻度がちょうど良さそうな気がする。

つまり以下のような感じか。

  • アプリケーションなり拡張機能なりは、インストーラ内の情報やあるいは実行ファイルのメタデータに、動作するのに必要な特権の一覧を持っている。
  • 初回起動時、あるいはファイルが更新されたあとの初回起動時にだけ、それらの特権を付与するかどうかの確認が表示される。
  • 特権は、UniversalXPConnectのような「全許可」のようなものではなく、より具体的な、クリティカルな操作に対して個別に用意する。例えば、文字コードの変換やなんかには特権は必要ないだろう。ファイルの読み取り、ファイルの書き込み、インターネットとの通信、パスワードマネージャへのアクセス、Cookieデータベースへのアクセス、他のプロセスの実行、あたりは特権がなければアクセスできないようにしておくべきだろう。

まあ、こんなのただの妄想なんですけどねー。中の人でもなんでもないし、英語もできないし、こんなことBugzillaに提案できやしません……

MDCの技術情報の翻訳の訳注 - Mar 20, 2007

ふと思ったんだけど。

Mozilla Developer Centerで、元が英語の記事しかなかったものを日本語に翻訳するときに、分かりにくい箇所に訳注で技術的な補足説明を入れることってあるじゃないすか。じゃないすか、って同意求めるのもアレなんだけど、そういう場合がたまにあるし、他の人がそうしてるのもたまに見掛ける。

アレって、まあ英語独特の表現に対する説明であるとか、相当する語が無い場合の補足とかならまだわかるんすよ。でも、技術的な追加の説明が必要になるような原文って、そもそも原文見た人がちゃんと意味分かるの? って、ふと思った。

そもそもMDCってwiki形式で、誰でもどのページでも基本的には編集できるんですよね。だったら、英語の原文を日本語に翻訳するときに技術的な補足説明を付け加えた箇所は、積極的に英語の原文にも反映するべきなんじゃないの? と、思った。

なんか原文至上主義というか英語至上主義というか原典は触れてはならない聖域というかそんな空気がMDCの可能性を狭めてしまっているのなら、積極的に踏み越えていかないといけないんじゃないのかなあ。

とかなんとか思ってしまう僕はもしかしたらMDCにおける単なる秩序破壊者でしかないのかなあ。

Software Designの特集記事書いたよ(前にも宣伝したけど) - Mar 18, 2007

1章を担当されたlevelさんが紹介されているけれども、Firefoxの拡張機能の作り方について解説した特集記事が掲載された号のSoftware Designが発売された模様です。

自分の担当したパートではXULとXPCOMの使い方を紹介したけど、それらを組み合わせて使うためのJavaScriptの書き方やCSSとかの部分は全く解説していないので、ご注意ください。DHTMLでWebアプリケーションのフロントエンドを作ったことがある、というくらいの知識レベルの人を一応想定して書いてみました。

続きを表示する ...

XUL/Migemo [Forked Edition] 0.5.0 - Mar 14, 2007

XUL/Migemo勝手改造版の新版を公開した。目に見える所では、アイコンを追加したのと、クイックMigemo検索(自動的に始まる、もしくは「/」キーで開始する検索)の終了トリガーを変更できるようにしたくらいしか違いは無い。

根本的に変わったのはバックエンドで、先日から取り組んでた事の成果を反映して、主要な部分をXPCOMコンポーネント化した。以下、開発者向けの情報。

続きを表示する ...

Page 55/80: « 51 52 53 54 55 56 57 58 59 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき