たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。
以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
プログラムというのはそういうものだで採り上げられているいろんな意味でしゃれにならないApolloという記事は、Firefoxの拡張機能の「危険性」についての話と同じようなことを言っているなと思った。
XPCOMを使えばFirefoxでも確認なしでファイルを削除できる。ファイルの削除時の確認のダイアログは、ExplorerやFinderやNautilusといったシェルが気を利かせて表示してくれているに過ぎない。Windows 98を強制的に再起動させて次の起動時にCドライブをフォーマットする、という拡張機能のサンプルを以前プレゼンで発表したけど、開発環境、特に柔軟性の高い開発環境というのは、そういうこともできてしまう物だということは、理解しておかないといけないんじゃないかと思う。開発者も、利用者も。
携帯でJava製のアプリケーションを実行する時、僕の機種だと、毎回「ネットワークへの接続を許可するか?」と訊ねられる。これは多分パケット通信が発生するから、知らず知らずのうちに大量の通信が発生して料金がヤバいことになるというのを事前に回避するための機構なんだと思うんだけど、こんな風な仕組みを拡張機能やApollo、あるいはOS上で普通に動くアプリケーションに対しても設けていいんじゃないかなー、と思う。
今号のSoftware Designの記事でも書いた、UniversalXPConnect特権を取得するためのコードは、それに近いものがあると思うんだけど、毎回聞かれるか永久に聞かれないかの二者択一というあんまりにあんまりな大雑把さで、ハッキリ言って、実用性の点では激しく疑問だ。Norton Internet Securityを使ってると、アプリケーションの初回起動時や、バイナリが更新されたあとの初回起動時にだけ、そのアプリケーションがインターネットと通信するのを許可するかどうかを訊ねられるんだけど、このくらいの頻度がちょうど良さそうな気がする。
つまり以下のような感じか。
まあ、こんなのただの妄想なんですけどねー。中の人でもなんでもないし、英語もできないし、こんなことBugzillaに提案できやしません……
1章を担当されたlevelさんが紹介されているけれども、Firefoxの拡張機能の作り方について解説した特集記事が掲載された号のSoftware Designが発売された模様です。
自分の担当したパートではXULとXPCOMの使い方を紹介したけど、それらを組み合わせて使うためのJavaScriptの書き方やCSSとかの部分は全く解説していないので、ご注意ください。DHTMLでWebアプリケーションのフロントエンドを作ったことがある、というくらいの知識レベルの人を一応想定して書いてみました。
XUL/Migemo勝手改造版の新版を公開した。目に見える所では、アイコンを追加したのと、クイックMigemo検索(自動的に始まる、もしくは「/」キーで開始する検索)の終了トリガーを変更できるようにしたくらいしか違いは無い。
根本的に変わったのはバックエンドで、先日から取り組んでた事の成果を反映して、主要な部分をXPCOMコンポーネント化した。以下、開発者向けの情報。
Gomitaさんが訳し残された所を訳してみた。children要素のincludes属性の解説はちょっと分かりにくいような気がしたんで勝手に英語版にも例示を追加してみた(リファレンスを勝手にド素人が書き換えるなんて差し出がましいにも程がある)。ところで、複数タブでページ内の部分的な編集をしてると、タブを開いた時点のバージョンの記述が他の部分にも影響してしまうっぽい? なんか何度も無駄な書き換えをしてしまった。こんな荒しまがいの事をやってるとそのうちアカウント停止されてしまうだろうか。
JavaScriptによるXPCOMコンポーネント作成の練習に、XUL/Migemo勝手改造版の主要な部分をXPCOMコンポーネントにするという実験をやってみた。
ブランチ切って昨日一日作業してたんだけど、それなりにうまくいったようなので、すでにTrunkにマージはしてある(Subversionでブランチ切ったものを再び統合するやり方が分からなくて右往左往したのは秘密だ)。
まとめサイトのXPCOMコンポーネント開発の資料に、須藤さんがLinuxとMac OS XでのC++でのコンポーネント開発のチュートリアルを書き加えてくださった。というわけでそれに触発されて自分もJavaScriptで実際にコンポーネント作ってみた。
以前からこのページにあった解説はコンポーネント名やなんかが全部「xxx」という形になってて何がなんだか分からなかったので読む気がしなかったんだけど、須藤さんが書いてくれた部分は英語の原文と同様にコンポーネント名とかもちゃんと具体例を示してあったので、それを見ながら試してみることで、やっと理解することができた。というわけでJSの例も具体例を示すように書き直しておいた。
世の中的には、どうなんだろう。具体例から原則を見出すチュートリアル式のやり方と、原則から具体例を導き出すやり方の、どっちがウケがいいんだろうか? 先日書いたSoftware Designの記事(次号掲載予定)はチュートリアル的な書き方を意識して書いたし、自分が記事を書くときはなるべくそうするようにしてるんだけど、思考回路が全く自分と異なる人から見たら、こんなのまどろっこしくてとてもじゃないけど読んでられねえ、というものなのかもしれない。
そしてもし頭の良い人達にそういう人の方が多いのだったら、馬鹿な僕がサンプルを勝手に具体的な物に書き換えたことによって、彼らの足を引っ張ることになってしまっているのかもしれない。だとしたら申し訳ない限りだ。
plus7さんによるXUL/Migemoの実装の解説を見ると分かる通り、XUL/Migemoでは正規表現での全文検索を実現するためにDOM2 Rangeの機能を使っている。この方法は素直に使うとscript要素の内容やstyle要素の内容、その他非表示の要素の内容にまでヒットしてしまうということで、氏は色々と工夫されていた。
takenさんが紹介されている、nsIScriptableUnescapeHTMLを使えばこの件について改善できるか……? と思ったけど、調べてみたらこの機能はFirefox 2以降でしか使えないっぽい(Fx 1.5では使えない)。残念。
まあ、軽く見た感じでは、全然別のDOMDocumentFragmentを生成するものということで、どちらにしろXUL/Migemoでは利用できなかったかもしれないんだけど。
XUL/Migemo [Forked Edition]の挙動がおかしいのを直そうとしてハマってしまった。検索欄に長い文字列をペーストして検索を実行しても正常に検索できないという問題。
色々条件を変えて試してみたら、どうも、検索できなくなってるんじゃなくて、リンク内の文字列のみ検索するモードに強制的に切り替えられてしまっているようだった。しかし検索モードを指定するフラグの値を変更しても全然効果が現れない。
Type Ahead Findの実装の深いところを見てみてびっくらこいた。検索バッファ(最後に検索した文字列)が空の状態で検索を始めて、且つ、accessibility.typeaheadfind.linksonlyがtrueの時は、強制的にリンク内検索モードになるように書かれてるじゃあないですか。そりゃあ、いくらやっても無駄なはずだよ……
つうかコレ書いた人何考えてんだろう? 普通のページ内検索でこの設定を参照する意図が全然わからない。これってクイック検索の時専用の設定じゃないのん? まあ、そもそもこの問題に引っかかったのは何らかの理由でaccessibility.typeaheadfind.linksonlyがtrueになってしまってた(初期状態はfalse)のが原因なので、こっちのせいといえばこっちのせいなんだけど。
とりあえず、検索を実行する前に検索文字列の最初の1文字で検索してからもう一度長い文字列で検索するようにしてみたところ、accessibility.typeaheadfind.linksonlyがtrueでも問題なく意図通りの動作をするようになってくれるところまでは確認できた。でも、これって変なやり方だよなあ。たぶんaccessibility.typeaheadfind.linksonlyをfalseに設定するのが本道なんだと思う。でもこの設定を本来の目的で使いたい人はどうすればいいんだろう? 全く訳がわからない。
Fx2でこの問題が起こることを確認したけど、Fx3ではどうなのかは未確認。そっちでも起こってるようならいよいよバグ報告してみようか(どちらかというと機能要望?)。
Multiple Item Packaging……必要になったのでちょっと検索してみたら、MDCの方は未訳だったので、訳してみた。他の文書でマルチアイテム拡張XPI
という訳があったから、それに倣って「マルチアイテムパッケージ」としてみたけど……勝手に造語増やすなよと怒られたりせんかな?
高橋メソッド in XUL リターンズを元に開発されたXUL Slideshow Toolkitというものがあるようです。会社のロゴを入れられるとか、グラデーションの背景が使えるとか、色々改良されてるらしい。
見てみたら、どうやら結構前のバージョンの高橋XULをベースにしてるみたいだった。グラデーション背景は画像が添付されてるのを使うだけみたい。
でもこうやって僕の作ったヘボヘボスクリプトが他の言語圏でも評価されるのって嬉しいです。
追記。ロゴ部分だけ高橋XULに逆輸入してみました。CSSでなんか指定したら使えると思われます。