たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。
以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
朝から打ち合わせのために某社に向かったわけなんですが。十分間に合う時間に出発したのに、余裕で遅刻してしまいましたとさ。
2回目のタイムロスはどう見てもJRの仕組んだ罠。
ひとつ前の話、やっぱりどうにもならないような雰囲気が漂ってきている。前のエントリで「horizon=横に分断?」と書いたけど、そもそもそういうことじゃないんじゃないかという気がしてきた。
「Arrange windows horizontally」という文章を読んだときに、たぶん、日本人と英語圏の人とではこう解釈が別れるんだと思う。
そうなんだとしたら、「Left-to-Right」と言おうと何と言おうと、日本人と彼らとの間で解釈が逆になってしまうことは永遠に避けられない。
分割ブラウザの「タブを横に並べる」「タブを縦に並べる」機能――タブで開かれて「スタック」状になっているWebページを、ウィンドウを横または縦に分割して「タイル」状に平面上に展開する機能――について、複数の人から「名前がおかしい」という指摘があった。
僕の作っている拡張機能に含まれている日本語以外のロケールは僕以外の人が英語ロケールを元に訳したものなので、当然、その内容は英語ロケールに準じている。指摘をしてきた人というのは、それらロケールを作成しているローカライザーの人達だ。
一人から言われるだけならまだしも、複数人から言われるというのは、説得とか説明とかそういうレベルの問題ではないと思って、気にはしていたものの、自分の考えが間違っているという確証を持てなかったので、現状維持のままでいたのだけれども、英語圏で生まれ育った人と話す機会があったので、せっかくだからとこの事を訊ねてみた。
AMOにアップしたけどダウンロードが0のままなので公開申請できずにいる。やはりレビュアーのほとんどが英語圏なのに「ローマ字で日本語検索」という日本べったりなコンセプトだから仕方ないのか。
というわけで釣り文句として、Safari風ハイライトのことを概要と説明に書いてみた。これで検索にヒットするようになればレビューが付くだろうか。
ダウンロード数上位を狙うとかそういうのはどうでもよくて、このサイト内のXUL/Migemoのページから「セキュアなダウンロード」で飛ばした先がログイン必須という状態をどうにかしたいだけなんですよ。マジで。
……とボヤいていたら、検索結果を画面の中央に表示する処理をパクらせていただいたalice0775氏がレビューを付けて下さった。大感謝!!
自分のしでかした不始末には自分で片を付けなくちゃいけない。例えそれが故意であろうと過失であろうと。――ということを、人はどのようにして学ぶのだろう。
僕自身の場合は、それだけがきっかけなのではないだろうけれども、一つ、強く覚えているエピソードがある。
小学校の給食の時間。僕の母校では牛乳は牛乳瓶で出されていたのだけれども、ある時、僕は瓶を倒して自分の牛乳をこぼしてしまった。わざと倒したわけではなく、手が布巾に引っかかってとか、そんな感じだったと思う。
その時の僕の考えは、こうだ。「あ、倒れちゃった。でも、わざとやったんじゃないんだから、僕が悪いわけじゃないよね。わざと倒したんだったら怒られて当然だけど、わざとじゃないんだから怒られる必然性はないよね。」それで、倒れた牛乳瓶のことなんかほっといて続きを食べていた。なんといっても、その日のメニューは僕の大好きなカレーだったのだから、そっちの方が僕にとってはずっと重大事だった。
やがて同じ班(僕の母校では6人くらいで机をひっつけあって班を作って給食を食べるルールになっていた)の人がぞうきんを持ってきて床を拭きだしたけど、関係なかった。だって、わざとやったんじゃないんだから、僕が罰として掃除をさせられるいわれはない。これは誰のせいでもない不幸な事故なんだ。みんなの机も汚れてしまったけれども、僕の机も汚れてしまったんだから、みんな被害者なんだ。だから、掃除当番の人か、掃除をするのが好きな人や片付けをするのが得意な人がやればいいじゃないか。
そしたら、先生に怒られた。「自分でこぼしといて食べ続けてるとは何事だ!! しかも関係ない他人に掃除させて!! 自分でやった事なんだから自分で責任取って掃除しなさい!!!」
僕はなんで怒られないといけないのか分からなくて泣いた。僕は「悪く」ない、わざと牛乳瓶を倒すような悪党じゃないのに。なんで先生が僕を怒るのか、ちっとも分からなかった。どうして「被害者」の僕が怒られるのか、理由が全然分からなかった。
いや、べつに、一字一句この通り当時の僕が考えていたわけではないし、先生がその通り言ったわけではない。今になって思えば僕はこう言いたかったんだろうし、先生はこう言いたかったんだろう、という事を再現ドラマ風に書いてみたという事なんだけど。
僕のこういう性質の根っこの所は、多分今でも変わっていないんだと思う。うっかりミスで何かを壊したり汚したりしてしまった時、怒りの矛先をどこに向けたらいいか分からなくて「ああもうっ!!」とイライラすることが今でもよくある。「自分のせいじゃない、誰か他の奴、あるいは、運命とかいう物のせいなんだ。なのに、どうして自分が責任取って後片付けしなきゃいけないんだ。ムカつく。」内心では多分そう思っている。
ただ、その感情を押さえつけて、世間様と波風立てずに生きていけるようにする、そのための技術は多少は身に付けた。誰のせいでもないとしても、発端が自分のした事であるなら、自分が責任を取らないといけない。自分がした事でなくても、自分の監督下で起こった事なら、自分が責任を取らないといけない。自分の監督下でなくても(以下略)、と。
僕と同種の人間が、そういう術を身に付けないままに大人になってしまうとこうなるのかな、ということを、今回の件では思った次第です。
それ以上の事、例えばも組の対応が適切だったのかとかそういったことについても思う所がないわけではないですが、それはまた、別の、お話。(森本レオ風に)
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にしてみた。
のりさんの伝える所によると、Firefox 3ではアドオンマネージャに表示される拡張機能の名前と説明文のローカライズ方法が変わるらしい。新しいやり方の解説がMDCにある。
方式 | 実際の手順とメカニズム | 利点 | 欠点 |
---|---|---|---|
現状 | 各ロケール内のpropertiesファイルに名前と説明文をローカライズした物を置いておき、デフォルトの設定ファイル(defaults/preferences/*.js)でそれを参照する。 | 各言語ごとのローカライズ済みリソースが言語ごとに一ヶ所にまとまるので、作者にとっては管理がしやすい。 | 拡張機能を無効化すると、名前や説明文がデフォルトの物(一般的には英語)になってしまい、削除や再度有効化する際に、どれが目的の拡張機能なのか分からなくなる。 |
今後 | install.rdfに各言語へローカライズ済みの名前と説明文をまとめて書く。 | 拡張機能を無効化した状態でも、自分が現在使っている設定の言語で名前と説明文が表示される。 | 各言語ごとのローカライズ済みリソースが分散するので、作者に取って管理の手間が増える。 |
現状の問題を目にする人はあまり多くないかもしれないけど、例えばSplit Browser/分割ブラウザのように英語と日本語のロケールそれぞれで名前を変えているアドオンを使うと、この問題が表面化する。新方式では作る手間や管理の手間が増えるのが気になるが、この問題を解決するためには仕方がないのか。めんどくさいと思う奴はinstall.rdfもビルドスクリプトで自動生成するようにしやがれってことなんだろう。
XUL/Migemo勝手改造版0.6.6にて、Safari風ハイライトのもう一つの要の、ヒット箇所のアニメーションを実装してみた。アニメーション処理そのものはたいしたことなかった(そして動作はかなり不格好)んだけど、別の所でだいぶ手こずった。
というのも、Firefoxではページ内のすべてのヒット箇所を強調表示する際に、WebページのDOMツリーをかなり激しく切った貼ったするせいで、せっかく検索でヒットした箇所が選択範囲になっても、その選択が吹っ飛んでしまうんだな。
というわけで、仕方がないから、ヒット箇所の強調表示を行う処理の前後に割り込んで、選択範囲があった場合はそれを自動的に復元するようにした。
ヒット箇所が要素ノードの子のテキストノード全体なら簡単なんだけど、テキストノードの一部だけがヒットしたといった場合に選択範囲を復元できないということで、だいぶ悩んだ。色々試してみた結果分かったのは、選択範囲が含まれているテキストノード(を含む要素ノード)に対してElementNode.normalize()
を実行すると、選択範囲が消えてしまうという事実。これもまた仕方がないので、テキストノードが連続している時などはノーマライズされた後の位置を割り出すようにしておいた。
という風な事を何時間もかけてやっていたんだけれども、そのうちすぐに陳腐化しちゃうのかなーと思うと切ないものだ。