たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
XUL/Migemo勝手改造版のXPCOMコンポーネントの機能のうち、日本語の検索に特化した部分とそれ以外とを分割して、国際化というか多言語対応できるようにしてみた。……まぁ、一番メンドクサイ所(入力から正規表現を作る部分)は実質的に日本語専用なので、あんまり意味が無いと言われればその通りなんだけど。
それだけじゃ何なので、おまけとしてやっつけ仕事で英語用のエンジンを作ってみた。「fx a-o」で「Firefox Add-ons」にヒットするようになったりしてちょっと面白いけど、あんまり役に立たないね……
独自エンジンの作り方も書いたので、暇な人が中国語(ピーイン)入力用エンジンとか作ってみてくれることに期待しておきます。
※21日追記。他人(Mozilla)のことには文句言うくせに性凝りもなくAPIをかなり大幅に変更した。誰もまだ手を付けてないことを祈ろう。
※21日追記(2)。APIの使い方とかエンジンの開発の仕方を英訳した。
分割ブラウザで、分割した領域を移動したりFirefoxを起動・終了したりした時にフォームの入力内容が失われるのが地味に不便、っていうかそこまで含めて完璧に再現するFx 2デフォルトのセッション復元機能がよくできてるっていう話なんだけど、とにかく、その処理を参考にして分割ブラウザ内のフォームの入力内容やスクロール位置も保存・復元できるようにしてみた。
nsSessionStore.jsではユーザの入力を常時監視してるんだけど、これはクラッシュからの復帰のためのもので、分割ブラウザでは起動時と終了時と分割領域を移動する時にしか情報を保存しないから、そこだけ手抜きしてる。
一カ所、フォームの内容を取得できなくてそこでハマッてしまった。XPCNativeWrapperでラッピングされたHTMLの要素ノードは、value
プロパティを参照しても入力内容を返してくれないのか……知らんかったよ。仕方がないのでちょっと怖いけどwrappedJSObject
を参照するようにしたところ、正常に動くようになった。
Firefox Developers Conference Summer 2007に向けてまた手を入れている。
ていうかプレゼンツール作ってないでプレゼン資料の方をとっとと作れよと。
掲示板で、XUL/Migemo勝手改造版の辞書フォルダの置き場所について相対パスでの指定もできるようにならないか、という要望が出てたのでがんばってみたよ。
以下、解説。
さすがに公式にサポートが終了したバージョン向けの解説本をいつまでも宣伝してるのはどうかと思ったので、Mozilla 24の宣伝にしてみた。
イベントの宣伝に使えるバナーとかあればいいのにねえ。
残り日数を表示する簡単なスクリプトを加えてみた。使いたい人はどーぞ。
<script type="text/javascript">
function getRestDays(aYear, aMonth, aDay)
{
var present = new Date();
var future = new Date(aYear, aMonth-1, aDay);
var rest = present.getTime() - future.getTime();
return -Math.floor(rest / (1000*60*60*24));
}
document.write('企画受付〆切まで<em>あと'+getRestDays(2007, 6, 30)+'日</em>、');
document.write('開催まで<em>あと'+getRestDays(2007, 9, 15)+'日</em>。');
</script>
分割ブラウザに、Webページ内のスクリプトから任意の方向に表示領域を分割するAPIを加えた。
今回、最終的に「スクリプトを実行しているページのドキュメントのルート要素に属性値を設定することで挙動を制御する」というあんまりスマートでない仕様に落ち着いたんだけど、これは結構苦肉の策というか、本来やりたかったものとは違う形のソリューションになってしまっている。
そもそもなんでこういう機能(?)を加えたかというと、Stylishという拡張機能の作者さんから「そういうAPIを作ったらどうかね」という意見を頂いたからだ。
第2回拡張機能勉強会でTab Scopeのプロトタイプを見てから、公開されたらぜひタブカタログでこの機能を使わせてもらおうと思っていて、気がついたら公開されてたので早速見てみたんだけども、他の拡張機能とかで機能を利用できるような設計になってなかったので、仕方ないから関係してるコードをコピペしてタブカタログに仕込んでみた。
ただ、画像を含むリンクで画像の前後に改行があったりすると上手くいかなかったので、そこだけ手を加えた。
分割ブラウザを更新した。機能的には目新しい変化はなくて、じゃあ何が変わったのかというと、機能の見せ方。「ブラウズ領域を分割する」というメンタルモデルだけでなく、「タブブラウズのタブをひっぺがして横に貼り付ける」という風なメンタルモデルで利用できるようなメニュー項目を加えてみた。それが「横に並べる」と「縦に並べる」という物。また、「分割されたブラウズ領域をタブブラウザのタブにまとめる」機能も同時に加えた。これを使うことで、あたかもOperaでタブ表示とタイル表示を切り替えるかのような感覚で使えるようになる……といいなあ、という目論見だ。
また、マルチプルタブハンドラのAPIのデモンストレーションも兼ねて、こいつとも連携して動くようにした。全部のタブではなくて一部のタブだけタブブラウザから切り離して横に並べる、とかそんな事ができるようになる。
追記。めんどくさくてスルーしてたけど、タブの数から水平・垂直方向の分割数を割り出してほんとにタイル状に配置する機能も実装した。これでようやく、実用的なレベルになったんじゃないだろうか。
Split BrowserのAPIのドキュメントを用意してみた。まあ、こんなもん使う人がどれだけいるんだか、はなはだ疑問なんだけど……
「諦めた」と宣言したそばからナンだけど、あの後もう少しがんばって、どうにか対応してみた。aioContent
のリダイレクタになるオブジェクトを定義するだとかの珍妙なテクニックを駆使しまくって、やっとのことで。
AiO Gesturesのためだけに7KBくらいはコード書いた気がする……あまりにハック用コードが膨大になってきたから別ファイルに分離しちゃったよ(リンク先の半分あたりから先は全部AiO Gestures用のコード)。