たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。
以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
縦横水平垂直の話の続きといえば続きなんだけど。
タブを縦置きするVertigoは、ずっと以前試したときは完成度がまだまだだなーと思ってたんだけど、今入れてみたらわりかし普通に使える感じになってた。これをインストールしてタブのクローズボックスを表示する設定にして、情報化タブとマルチプルタブハンドラをインストールすれば、僕が今Firefox 1.5でTBEでやってる使いかたに相当近い状態になる。まあそのなんだ、平たく言うとiRiderもどき。
なんかもうめんどいから、Firefox 2への乗り換えはこれでいいかなー、的な諦めムードも漂いつつある今日この頃です。
AMOにアップしたけどダウンロードが0のままなので公開申請できずにいる。やはりレビュアーのほとんどが英語圏なのに「ローマ字で日本語検索」という日本べったりなコンセプトだから仕方ないのか。
というわけで釣り文句として、Safari風ハイライトのことを概要と説明に書いてみた。これで検索にヒットするようになればレビューが付くだろうか。
ダウンロード数上位を狙うとかそういうのはどうでもよくて、このサイト内のXUL/Migemoのページから「セキュアなダウンロード」で飛ばした先がログイン必須という状態をどうにかしたいだけなんですよ。マジで。
……とボヤいていたら、検索結果を画面の中央に表示する処理をパクらせていただいたalice0775氏がレビューを付けて下さった。大感謝!!
AMOに置いてもレビューする人が意味ワカランのじゃないかと思ってビデオ作ってみた。おまけで日本語版も。
なんかピントのずれた方向に頑張りすぎてる気がするよ……
表題の通り。AMOにうpした。
レビューがついたら公開申請するつもり。これが契機になって中国語エンジンとか韓国語エンジンとか実装する人が出てきたら面白いんだけどなぁ。
XUL/Migemo 0.7.0公開した。このバージョンから「Forked Edition」を外して、おこがましくも本家XUL/Migemoの後継とさせていただくことにした。
前のバージョンからの最大の変更点は、ローマ字と平仮名の相互変換処理部分にRuby/Romkanを移植して採用したこと。これはMigemoの大本であるRuby/Migemoが使用しているライブラリでもある。今までは元の処理に増築に増築を重ねたみたいなややこしい物になってたけど、これで、平仮名からローマ字への逆変換も含めて大部分のコードを共通化できて見通しが良くなった、と思う。ただ、速度面で若干遅くなってないかどうか心配ではある。体感できる程の差は無いと思うんだけど。
Ruby/Romkanのコードって無駄がない感じですごいなーと思った。Ruby自体、エレガントにそういう物を作れる言語なんだな、とも。Rubyでたった7KBちょいの物がJavaScriptへの移植で30KB近くにまで膨れ上がってしまうとは……いや、これは単に僕の技術力がヘボいだけか。
あと、Ruby/Romkan自体はRubyのライセンスに準拠していて、RubyはGPL2ということで、XUL/Migemo全体もこの際だからGPL2にしてみた。
XUL/Migemo勝手改造版0.6.6にて、Safari風ハイライトのもう一つの要の、ヒット箇所のアニメーションを実装してみた。アニメーション処理そのものはたいしたことなかった(そして動作はかなり不格好)んだけど、別の所でだいぶ手こずった。
というのも、Firefoxではページ内のすべてのヒット箇所を強調表示する際に、WebページのDOMツリーをかなり激しく切った貼ったするせいで、せっかく検索でヒットした箇所が選択範囲になっても、その選択が吹っ飛んでしまうんだな。
というわけで、仕方がないから、ヒット箇所の強調表示を行う処理の前後に割り込んで、選択範囲があった場合はそれを自動的に復元するようにした。
ヒット箇所が要素ノードの子のテキストノード全体なら簡単なんだけど、テキストノードの一部だけがヒットしたといった場合に選択範囲を復元できないということで、だいぶ悩んだ。色々試してみた結果分かったのは、選択範囲が含まれているテキストノード(を含む要素ノード)に対してElementNode.normalize()
を実行すると、選択範囲が消えてしまうという事実。これもまた仕方がないので、テキストノードが連続している時などはノーマライズされた後の位置を割り出すようにしておいた。
という風な事を何時間もかけてやっていたんだけれども、そのうちすぐに陳腐化しちゃうのかなーと思うと切ないものだ。
- Name: plus7
- Date: 2007/06/22 08:42
多分もうXUL/Migemoを改良することはない(するにしても別物を一から作り直すかPiroさんにパッチ投げる方向で)ので、これはPiroさんの気分しだいですけれども、正当な後継を名乗っていただいても結構ですよ。
とのことなので、そのうち [Forked Edition] ではなくNext GenerationとかLesser VersionとかFuture Xとかに名前を変えようかなと思います。あとライセンスの明記とかも。
Safariのアレは実装されないの?とか訊いた直後でアレなんだけど、Dear Periwinkle氏という方がSafariのアレをuserChrome.js用に実装したスクリプトを公開されていることを知ったので、XUL/Migemo勝手改造版 0.6.4に速攻で組み込んで、XUL/Migemo勝手改造版単体でもSafari 3風のインライン検索のアレを使えるようにしてみた。
XUL/Migemoの設定で検索ツールバーの「すべてを強調」を初期状態で有効にするようにしておくと、Safariっぽい体験が少しはできるかもしれない。
件の機能の部分の処理は基本的にいじってないので、元のバージョンにある問題もそのまま引き継いでる。よって、このページのようにz-indexを指定されたボックスがあるページではうまく機能してくれないという……
分割ブラウザで、分割した領域を移動したりFirefoxを起動・終了したりした時にフォームの入力内容が失われるのが地味に不便、っていうかそこまで含めて完璧に再現するFx 2デフォルトのセッション復元機能がよくできてるっていう話なんだけど、とにかく、その処理を参考にして分割ブラウザ内のフォームの入力内容やスクロール位置も保存・復元できるようにしてみた。
nsSessionStore.jsではユーザの入力を常時監視してるんだけど、これはクラッシュからの復帰のためのもので、分割ブラウザでは起動時と終了時と分割領域を移動する時にしか情報を保存しないから、そこだけ手抜きしてる。
一カ所、フォームの内容を取得できなくてそこでハマッてしまった。XPCNativeWrapperでラッピングされたHTMLの要素ノードは、value
プロパティを参照しても入力内容を返してくれないのか……知らんかったよ。仕方がないのでちょっと怖いけどwrappedJSObject
を参照するようにしたところ、正常に動くようになった。
新バージョンのファイルをアップロードした後「さてアップロードし忘れはないかな」と思って一覧を眺めてみたら「Pending Review」になってる奴の数が一個少なくて「んんんんんん?」と思ってよく見てみたら、タブカタログがアップロードした直後に速攻で承認されて「Public」になっていた。
30秒くらいしか経ってない気がするんだけど……ほんとにちゃんとレビューされてるのか?