Home > Latest topics

Latest topics 近況報告

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

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

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

Page 58/248: « 54 55 56 57 58 59 60 61 62 »

無効にするべき10の拡張機能 - Apr 11, 2007

無効にするべき10の拡張機能。リンクされてたので見てみた。

要約すると、以下の10の拡張機能はこういう風にダメだから窓から投げ捨てろと書いてある。

  • Fasterfox(Firefoxの通信に関する設定を変更して高速化する):帯域を食い潰して迷惑だからヤメレ。
  • NoScript(ページ内のスクリプトを全て無効にして、許可したサイトでだけ有効にするようにする):他の部分で穴だらけなのにスクリプトのことだけ気にするなんてちゃんちゃらおかしいね。
  • Adblock / Adblock Plus(広告バナーを表示しなくする):無料サービスが潰れるからヤメレ。
  • PDF Download(PDFのファイルを読み込もうとした時、ダウンロードするか、HTML版を表示するか、選択できるようにする):場合によってフリーズすることがある。
  • VideoDownloader(YouTubeなどのサイトの動画をダウンロードする):サーバ資源を食い潰して迷惑だからヤメレ。
  • Greasemonkey(ユーザー定義スクリプト機能を加える):危険なスクリプトじゃないかどうかちゃんと確認してるの? 確認できるスキルが無いなら危険でしかない。
  • ScribeFire(ブログ用の高機能なエディタ機能を追加):ブログツール内蔵のエディタで十分だろ、常識的に考えて……
  • TrackMeNot(ダミーの検索クエリを送りまくって、自分が本当は何を検索していたのかを管理者に分からなくする):検索の傾向とかが取れなくなってサービス提供者に迷惑だからヤメレ。
  • Tabbrowser Preference(タブ関係の隠し設定を変更するUIを提供する):アンインストールした後に設定を元に戻せなくなって困る。
  • Tabbrowser Extensions:開発者自身が使うなと言ってるようなバグだらけの物なんだから使うなよ。

大別すると「迷惑だから使うな」系と「大して役に立たないよ(メリットとデメリットが釣り合わないよ)」系に分類できるか。

後者のグループについては、大きなお世話という気がする。本人が感じるメリットとデメリットを天秤にかけて選んでるんだから、他人の感覚でどうこう言う筋合いではない。まあ、有効に活用してない人を見ると確かに「あーあ」って気はするけど。All-in-One Gesturesをわざわざ導入してるのに「戻る」と「進む」くらいにしかジェスチャ使ってない、とかね。

オブジェクト署名済みパッケージの作り方まとめ - Apr 09, 2007

m.tamaki氏によるエントリとFirefox Hacksを見ながら自分でも試してみた。オブジェクト署名証明書が無いので、とりあえずオレオレ証明書での実験だけど。

続きを表示する ...

多数のHTML Canvasを使用する時の、反応速度向上テクニック - Apr 03, 2007

Tab Catalogの一覧表示を開く時にもたつく問題の改善方法を、実験を交えながら改めて検討してみた。

色々試してみて分かったのは、どうもHTML CanvasをDOMツリーに埋め込んだ後、描画されるまでの間がもたついているらしいということ。何も描画していなくても、Canvas要素を埋め込むだけでだいぶ時間がかかるっぽい。

ということでサムネイル用のプレースホルダーだけ用意しておいてCanvas要素をタイマーで一つずつ追加するようにしてみたところ、ホットキーを入力した直後の反応が格段に良くなった。トータルではあまり変わってないか、むしろ遅くなってる可能性もあるけど、体感的にはこっちのほうがずっといい。

開発するなら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に提案できやしません……

Page 58/248: « 54 55 56 57 58 59 60 61 62 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき