たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
1巻読んだ段階では、殺し屋の世界に引きずり込まれて卑怯な手を使いながらどうにかこうにか生き延びていくサラリーマン、てな感じの話だと思ってたんだけど……話が進むにつれてだんだん「秘められた才能を発揮」していって、読むのが辛くなってきた。で、5巻で「本部」の人間が彼を評価するようなセリフを言った所で、「あ、もうダメだ」と。何か自分の中で受け入れ難い一線を越えちゃったなと。なのでこの辺で僕はドロップアウトしようと思った。
なんというか、ラブひなと違う所がハーレム状態で囲まれる対象が女であるか「カッコイイ殺し屋」という立場であるかの違いでしかないような気がしてしまったんですよ。何も失わずに美味しいとこだけ手に入ってしまうという都合のいい展開が、「これを見続けてたらどんどん自分がダメになる」という危機感を抱かせた。
いや、トーキチさんは多分代償として平穏な生活を失ったりとか気分が休まらなくなってしまったとか、それなりの物は支払ってるのかもしれない。でも、そういう所にはこの作品ではフォーカスを当てていない、「それらは物語上必要ないもの」として省略されている感じがした。対する僕は、尊い物を片っ端から失ってボロボロに疲弊していった最後にやっと何かちょっとだけの見返りを得られる、そんな展開にカタルシスを感じる性格のようで。大当たりのジャンジャンバリバリフィーバー状態で美味しいとこばかり垂れ流されると、体が拒否反応を示してしまうようなんです。
殺し屋として大活躍するのは、せめて、ファントムオブインフェルノのツヴァイくらいの修行を経てからにして欲しい……
そういう事であれば確かにおっしゃる事はごもっともです。適用対象がすべてのWebページとなっていたのは、僕の記憶する限りでは改変元の物がそうなっていたのを手を加えずにいたからだと思いますが、そこをそのままにしておくのは確かに思慮不足でした。基本的に自分は「とりあえず自分がイメージしていた所まで辿り着いたらすぐ公開」をポリシーにしていますし、少なくとも趣味レベルや実験レベルでやっている事については、自分が気付いていない・当初の想定になかった問題は突き詰めると人に指摘されてから直せばよいと考えていますので、思慮不足である場合も少なくないです。ある時点(特に修正のサイクルが動き出す前のような時点)を切り取って「バカかおめーは」と言われれば、「その時点での自分は確かにバカでしたごめんなさい」と謝って修正するしかないです。
Jintrick氏がやり玉に挙げているスクリプトを僕が何故修正もせずに放置しているのかというと、本家配布元が変更を取り込んで開発を継続されたため、自分の作った物の役割は終わった、自分がこれをメンテナンスし続ける必要はない、後の事は先方が責任を持ってくれることだ、と考えたからです。「もう古いから本家の新しい物を使うように」という誘導が無くてこれが最新最終版ととられかねないような状態で置いておくのがよくない、と言われたら、それについても「誘導忘れてました放置してましたごめんなさい」と謝るしかないわけですけれども。
とはいえ件のコードの品質の低さや、品質が低いまま放置している事というのは、以下に詳しく述べますが自分としては一応理由があっての事で、僕のコードがいついかなる場合でも低品質で僕の姿勢が総じて宜しくないという風に思われるのは心外だとも思っています。
自分はGreasemonkeyスクリプトやuserChrome.js用のコードなどについては、品質が低いまま公開してもさほど問題ないと考えています。こういった、コードがむき出しで、インストールされたスクリプトの自動更新機能も持たない、スクリプト作者が後々のサポートができないタイプの拡張機能は、自助努力で問題を解決できる人、あるいはどんなトラブルが起こっても自己責任と納得できる人だけが使うべきだというのが自分の考えです。僕はやっつけ仕事で自分の必要最小限の物だけ書いたから、使いたい人は使ってくれて構わないけど、後はどうなっても知らんよ、というのがGreasemonkeyスクリプトに対する自分のスタンスです。ましてや、僕の加えた変更が本家に完全にマージされて、派生版が派生版としての存在意義を失い、本家の開発がきちんと継続されているのだから、役目を終えた古い派生版に文句を言われても、僕としては「知らんがな。開発を継続してる本家に言うてくれ。」というのが正直な感想です。
しかし、普通の拡張機能については、それとは違う態度で自分は取り組んでいるつもりです。Firefoxの拡張機能は自動アップデートが可能で、インストールもアンインストールも簡単という、純粋なエンドユーザに「さあ使ってくれ」とでも言わんばかりの仕様で、必要ない部分はとことん隠蔽されていますから、その様式に則って物を作るならそれ相応の覚悟が必要だというのが自分の認識です。
例えばXUL/Migemoを派生版としてメンテナンスする中で、ネットワークを通じての辞書の自動インストール機能やユーザ辞書機能といった風な「上級ユーザ向けには明らかにどうでもいい機能」を積極的に加えていったのも、そういう考えがあったからです。件のコードのようにFirefoxをフリーズさせかねないような機能、最近のスマートロケーションバーでの検索への対応でも、のりさんやdrryさんにまで協力してもらって何度も検証を行った上で、常用で問題が起きない程度の速度が出るようにできた時点でやっと一般向けにリリースしました。またその上で、AMOに頼らず自動アップデートのための環境を自前でも整えて、修正をエンドユーザに迅速に提供できるようにも努めているつもりです。(修正が追いつかずに後回しになっている事も多々ありますが、最初から修正する気がないのとは違うと自分では考えています。まあ、それを指して、結果的に不幸を垂れ流してるからダメだと言わたら、「そうですね」としか言えませんが。)
こういう、相手によって力の振り分け加減を変える姿勢を、不誠実だと言われてしまえば返す言葉はありませんが、自分は現時点では、これを「今自分ができる中で一番マシな形」と考えています。
まーとりあえず言える事は、Piroは自己弁護に必死だなと。
Yさんがセリフの発声サンプルを集めておいでだったので自分も試しにセリフを読んだ物を録音してみたけれど、同じセリフを読んだ哀さんの物と聴き比べてみて大いに凹んだ。
以前CNETのFirefox特集コーナーの記事用に作った映像の声だけやった時にもキモいって叩かれたけど、自分の声って典型的なヲタ声だよね。滑舌悪くて抑揚が無くてモソモソ喋ってる感じで、そのくせセリフの中身だけは妙にかっこつけてたり凝った言い回しをしてたりっていう。声を出して喋る機会が基本的にないから、その辺りの筋肉が発達してなくてボンヤリした声になるんだ……それがヲタ声。対人コミュニケーションがヘタクソなヲタに特有の「表情筋の発達してないボンヤリした顔」ってのと同じように、きっと、非常にありがちなパターン。
気持ちの上では、もっとハキハキ喋ろうと思うだけは思ってやってみたんだけど、ダメ、体がついていかない。老人が車道を横断しようとして、遠くに見えてる車の移動速度と自分の移動速度とを頭の中で計算して「大丈夫、渡りきれる」と思っても実際には身体が衰えてて思うように動かなくて予想より全然もたついてしまって車に轢かれてしまう、みたいなのと同じだ。違うのは、老人が「衰えてそうなった」のに対してヲタ声のヲタは「最初からそうである」という事くらいか。
最近は非モテ関係の話題に言及することもほとんどなくなってフェードアウトした感があったんだけど、時々こうして思い出したように引き合いに出されるのね。
「ウソ非モテってなんやねん」という人のために説明しておくと、「『他者からの承認を得られておらず承認に飢えて渇望している』状態を指す『非モテ』を名乗っていながらテメーはすでに承認されまくってるじゃねえか、テメーみてえな『こんな承認は要らない、理想の形の承認じゃなきゃヤダヤダヤダ!』なんて切実さのないのは非モテじゃなくてただの贅沢だろクソボケカス、そんなテメーが非モテを名乗るのは非モテの冒涜だ!! 死ね!!! 氏ねじゃなくて死ね!!!!!!」という感じのアレです。自分の認識が間違っていなければ。
僕が卑屈な事を言う度に、「卑屈な人は嫌い」という風なよくある意味ではなく上記のような感じで、僕のことを嫌いな人を刺激してしまうようなので、今は少なくとも「非モテ」という言葉を使うことはなるべく避けるようにしているつもりなんですが、それでも引っかかる人はいるようで、どないせえちゅう感じです。
しかしまあそんな感じで僕のことをある意味羨ましいと評してくれる人はいるみたいなんですけれども、ちょっと俯瞰してみたらその僕だって「Piroキメェwwwwww」「死ねキモヲタ」とかそんな感じのイジリなりイジメなりを受ける立場にいるわけで、前方からそんな感じの攻撃を受けつつ後方からも上記のような突き上げを食らっているわけで、人生ってなかなか楽にならないもんだなあと思います。
もうすぐ26になるのに、何だろうこの幼稚さは。近年より一層退化に磨きがかかってきている、という風に自分では思うけどそれは単に元々幼稚であった自分の有り様を嫌々ながら理解できるようになってきただけに過ぎないのか。過去の自分がオトナだったとも思えないしなあ。
何だろなあ。この成長して無さ感が辛いのかもしれない。自分自身は精神的に成長できてなくて、それなのに身体や周囲の状況は否応なく進んで行ってて。体力の低下(元から低かったけど)とか体重の増加とか自炊率の低下とか、清く正しい独身男性的に順調にダメになっていってるんだよなあ。それで精神が退行していってるんだもの、始末に負えん。
前のエントリを見た哀さんに「楽しそうだなあ」的な事を言われたのだけれども、楽しいとか遊んでるとかいう感覚は自分にはなかった。
自分がこういう風にいちいち言葉を換えてねちねち書くのは大抵、なるべく一回の反論だけでいろんな角度からの再反論をあらかじめ防いで「さあどうだ」と勝ち誇りたい時だ。自分の価値観ではそういう態度こそ最も余裕がなくて無粋でカッコ悪い姿だと思っている。にもかかわらずそうしているのだから、相手を言い負かす事にカッカして冷静な判断ができなくなってるって事だ。不快感に突き動かされてなりふり構わず自己保身に精一杯になってるってことだ。
そんな風にすぐに熱くなる短絡的な性格の僕には、冷静に力のコントロールをして相手をてのひらの上で転がして遊ぶ、という風な芸当は多分できないと思う。ギャンブルをやって大負けするタイプだ。だから僕はギャンブルはしないようにしてる。
ギリギリの所を楽しむのがイイとか、心理戦とか、そういう種類の「遊び」は僕には無理なんだと思う。そういうのが楽しめる人はよっぽど頭が良いんだろうと思う。羨ましい。僕に楽しめるのは、コツコツ積み重ねるとかの一人遊びだけなんだろうなあ。
自分にはちょっと承伏できない理由でJintrick氏にDISられてるので、一応釈明しておきます。
――「一応」と書いておきながら、Jintrick氏に「バカじゃねーの」みたいに煽られたような気がして感情的になってクドクド書き過ぎてしまったので、最初に例だけ示しておきます。
<?xml version="1.0"?>
<html xml:lang="ja">
<head>
<title>テスト</title>
</head>
<body onload="init()">
<script type="application/x-javascript">
function init()
{
var ul = document.getElementById('indicator');
document.addEventListener('keypress', function(aEvent) {
var li = document.createElement('li');
li.appendChild(
document.createTextNode(
[
aEvent.type,
aEvent.keyCode,
String.fromCharCode(aEvent.charCode) +'('+aEvent.charCode+')',
aEvent.target,
aEvent.target.localName,
(new Date()).getTime()
].join(' : ')
)
);
ul.insertBefore(li, ul.firstChild);
}, false);
}
</script>
<textarea rows="5" cols="50">ここに文字を入力すると、イベントの詳細を表示します。</textarea>
<ul id="indicator" style="height: 15em; overflow: auto;">
</ul>
</body>
</html>
これが正常に動作しなくなるというただそれだけの理由で、僕はJintrick氏の勧める方法(上位のDOMノードをゴソッとDOMツリーから切り離して、ツリーに対する処理を行い、最後に再挿入することで、パフォーマンスを向上する)を全面的には採用できません。
以下、長々とその説明。
表題の通り、XUL/Migemo 0.10.5からロケーションバーでNOT検索を可能にしました。「mozilla -firefox」という風に入力すると、「Mozillaという単語は含むがFirefoxという単語は含まない」候補だけがヒットするようになります。当然Migemo検索との併用も可能。いらん候補が大量にヒットするのがウゼーと常々思っていたので、バグ修正のついでにサクッと実装してみました。
残念ながら、履歴とブックマークの管理、履歴サイドバー、ブックマークサイドバーでの検索については非対応です。これらの検索機能はPlacesのクエリ機能に依存していて、そのクエリ機能にNOT検索の機能がないためです。クエリにNOT検索の機能が付いたら対応できるかも。
ということでXUL/Migemo 0.10.0やっとリリース。
スクリーンショットを見ると分かるとおり、なにげにAND検索にも対応してます。仕掛けは単純といえば単純で、入力された文字列をスペースで区切ってそれぞれについて正規表現を生成した後に、それらの順列組み合わせを全展開した正規表現をさらに生成する(これを使ってマッチングするので、各単語の順番が入れ替わってもマッチする)という、ものすんごい力業。単語数が増えると組み合わせの数が爆発的に増えて正規表現がクソ長くなってマッチングがクソ重くなるので、実用的な速度が出るのはだいたい3語くらいまでが限界だと思います……
ちなみに順列組み合わせの展開には無駄にMozStorageを使ってます。JavaScriptで一体どーいうアルゴリズムでやりゃぁいいのかちっとも分からんかったのでググってみたら、順列組み合わせの総数を求める方法ばっかり引っかかる中で一つだけSQLの自己結合を使った解き方が見つかったので、それをそのまま使わしてもらいました。pIXMigemoTextUtilsのgetANDFindRegExpFromTermsというメソッドがそれなので、興味ある人は見てみてください。
しかしまあ、今回のこれはFirefox 3 HacksのためにPlacesのことを詳しく調べてたからやっと実現できたようなもんで、つまりFirefox 3 Hacksを読めばこんなことは楽勝でできるようになるかもねということで、皆さんゼヒ買って下さい、と宣伝しておきます。オライリーから8月発売予定です(再掲)。
5日追記。ページ内検索では考慮しなくてもよかった問題が表面化してフリーズする(全角スペース1文字だけにヒットした場合に無限ループに陥ってしまう)という現象が起こってしまっていて焦った。対策を入れて早速更新した。
前者は「ねんどろいど」等で有名なグッドスマイルカンパニーのブログ、後者はアイマスの双海亜美・真美役の下田麻美さんのブログ。まさかこんな所でFirefoxを見かける日が来るとは思わなかった。
どうでもいいけど、再販分のねんどろミク早くこないかなー……クオリティ落ちてないといいんだけど。