たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。
以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
XUL/Migemo更新した。0.3.8での変更点は以下の通り。
要するにバグフィックス。
searchcache改造版を更新。
Download and Install searchcache 2005.06.15.20060426012006042602
変更点は以下の通り。
突然検索できなくなる問題については、相変わらず原因不明で対処不能にて絶賛放置中。
ScrapBookの1.0がリリースされてたので入れてみたら、スクラップに対してマーカーを指定したりとか色々できるようになっててびびった。それに触発されたというのもあって、Line Markerを更新してみたよ。
数年前に開発した当時は全然見当もつかなかった「マーカーをサイトごとに保存する」という機能について、今ならできるかも!と思ったというのも理由の一つ。
一応解説しておくと、選択範囲からDOM2 Rangeのオブジェクトを取得して開始位置と終了位置を割り出し、開始位置と終了位置のそれぞれのノードをXPath式として保存、ページ読み込み時にはそのXPath式を評価してマーカーを復元、という要領です。式の生成にあたってはidやnameを一応見るようにはしてますが、ページの構造が変わるとマーカー位置を見付けられなくなりやすいので、検索を利用するなどしてこのあたりの処理をもう少し改善したいところです。
好きなWebページに好きなように付箋を貼り付けられる拡張機能でMyStickiesというものがあります。同名のWebサービスと連携して動作するもので、アカウントを作成すれば誰でもすぐに使えます。
で、試してみたんですが致命的な問題がひとつ。日本語が通らねえ!! いや保存した付箋が再読み込みされた段階で、日本語の文字がことごとくエスケープされて表示されてしまうんですね。これじゃ使い物になりません。
でもこれ、非ASCII文字がエスケープされてしまってるということだけが問題なので、ならばアンエスケープしてしまえばいいじゃまいか!と、ごにょごにょいじって作ってみました国際化対応版。
まあ、unescape関数を適当なところに2〜3個書いただけなんですが……
GmailのHTMLメール編集モードなどで使われているリッチテキストエリアは、HTMLのフォーム部品を使わず、JavaScriptでキーイベントを捕捉して諸々の処理を行うことで実現されている。
実はFirefoxでtextareaなどのフォーム部品でも内部的には同じ事をやっているのだけれども、XULアプリケーションの開発程度までのレベルでは、このあたりの処理はほぼ完全に隠蔽されているので、ユーザも開発者もこの実装の事を意識する必要はない。
でもGmailのような普通のWebページでこれをやられてしまうと、困ったことになる。入力がリッチテキストエリアの中で行われた物なのか、それとも他の部分で行われた物なのか、判別ができないのだ。しかも、サイトによってリッチテキストエリアの実装方法が違うので、それいっこ書いておけばどんなサイトでもきちんとリッチテキストエリアを検出できる!というようなコードを書くことは非常に難しいと考えられる。
Rewind/Fastforward ButtonsのようにXPath式をサイトごとに登録しておけるようにするとか、いくつか方法は考えられるけど、どれも面倒だなあ……
追記。この件、修正できました。
gooブログの「前の記事へ」「次の記事へ」のリンクを検出できなくなっていたのでXPath式を訂正したついでに、引っ越してしまうと1ヶ月近くは更新できない(する気力も多分ない)状態になると思うので、今のうちにと、ほとんど徹夜のやっつけ仕事で「戻る」「進む」ボタンに全ての機能を持たせる設定を加えた。
巻き戻しボタンや早送りボタンをツールバーに置かないときは、戻る・進むボタンがこれらの機能を持つようになる。元の機能を利用したい場合はポップアップメニューからアクセスできる。そんな感じ。
ほんとにやっつけ仕事もいいとこなので、きっと不具合が潜んでる。でも直す気力はもうない。
NoScriptは「基本的にJavaScriptもFlashも全て無効、でも許可したサイトだけは有効」といった使い方をする上で非常に便利な拡張機能です。さらに便利なことに「一時的に許可する」(Firefoxを終了するまでの間だけ、そのサイトでのスクリプト実行を許可する)という機能まであって、試しでJavaScriptを有効にしてみて、有用なら初めて永続的に有効に設定する、といった使い方もできます。
と、いいことずくめのようなこの拡張機能なんですが、困ったことが1点だけあります。それは、許可・禁止がスクリプトの置かれているドメイン単位か、または全体、という両極端な基準でしか設定できないため、複数のドメインのスクリプトを読み込んでいるページでは、禁止・許可を切り替えたいと思ったら、読み込まれているスクリプトのドメインの数だけ何度も操作を繰り返す必要があります(例:Webページでダイスを振るbookmarklet)。
これが死ぬほど面倒だったので、「これらのサイトをまとめて許可する」「一時的に許可する」「禁止する」の3つの機能をNoScriptに加えるような改造を考えてみました。
UIがわかりにくいという指摘を受けて、自分なりにもう少し表現を変えてみた。
普通の人向けのわかりやすさと、技術的に正しい用語と、どう折り合いを付けていけばよいのだろうか……え、用語とかの瑣末な問題じゃなくて、そもそも設計が腐ってるって?
Text LinkとLinkificationは用途が似てるのでよく比較されるようだ。前者は「リンクされてないURIをリンクのように読み込む機能」を加えるもので、後者は「リンクされてないURIをリンクにする機能」を加えるもの……という違いがあるけど、得られる結果は同じなので、ますます「何が違うねん」ということになる。
そんなわけで、Mozilla Updateに登録した当初は結構否定的なコメントが(っていうか全否定のコメントが)付いてたようだ。曰く、「Linkificationがあるんだから何でこんな無駄なものを登録する必要があるんだ?(大意)」とか。まあ確かに、似たようなのが乱立するとうぜえってのは事実なんだけどさ。「まったく同じ。無駄でしかない。」だなんて言われると、それはそれでカチンと来るわけで。
……というわけで必死になってアドバンテージを見出そうとしてみたんだけど、なんかショボい利点3つしか見つからんかった。しかも英語圏では全然嬉しくないし。
XUL/Migemo勝手改造版更新。変更点は以下の通り。
Shift-F3とか検索ツールバー上のボタンで前方検索しようとしてうまくいかんかったからというのが、上記の問題に気付いた理由。