Home > Latest topics

Latest topics 近況報告

たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。

萌えるふぉくす子さんだば子本制作プロジェクトの動向はもえじら組ブログで。

宣伝1。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! シス管系女子って何!? - 「シス管系女子」特設サイト

宣伝2。Firefox Hacks Rebooted発売中。本書の1/3を使って、再起動不要なアドオンの作り方のテクニックや非同期処理の効率のいい書き方などを解説しています。既刊のFirefox 3 Hacks拡張機能開発チュートリアルと併せてどうぞ。

Firefox Hacks Rebooted ―Mozillaテクノロジ徹底活用テクニック
浅井 智也 池田 譲治 小山田 昌史 五味渕 大賀 下田 洋志 寺田 真 松澤 太郎
オライリージャパン

Page 76/239: « 72 73 74 75 76 77 78 79 80 »

ウソ非モテ - Jul 08, 2008

rAdio-AktiV - 日本三大ウソ非モテ

最近は非モテ関係の話題に言及することもほとんどなくなってフェードアウトした感があったんだけど、時々こうして思い出したように引き合いに出されるのね。

「ウソ非モテってなんやねん」という人のために説明しておくと、「『他者からの承認を得られておらず承認に飢えて渇望している』状態を指す『非モテ』を名乗っていながらテメーはすでに承認されまくってるじゃねえか、テメーみてえな『こんな承認は要らない、理想の形の承認じゃなきゃヤダヤダヤダ!』なんて切実さのないのは非モテじゃなくてただの贅沢だろクソボケカス、そんなテメーが非モテを名乗るのは非モテの冒涜だ!! 死ね!!! 氏ねじゃなくて死ね!!!!!!」という感じのアレです。自分の認識が間違っていなければ。

僕が卑屈な事を言う度に、「卑屈な人は嫌い」という風なよくある意味ではなく上記のような感じで、僕のことを嫌いな人を刺激してしまうようなので、今は少なくとも「非モテ」という言葉を使うことはなるべく避けるようにしているつもりなんですが、それでも引っかかる人はいるようで、どないせえちゅう感じです。

しかしまあそんな感じで僕のことをある意味羨ましいと評してくれる人はいるみたいなんですけれども、ちょっと俯瞰してみたらその僕だって「Piroキメェwwwwww」「死ねキモヲタ」とかそんな感じのイジリなりイジメなりを受ける立場にいるわけで、前方からそんな感じの攻撃を受けつつ後方からも上記のような突き上げを食らっているわけで、人生ってなかなか楽にならないもんだなあと思います。

なんかもう色々駄目すぎる - Jul 08, 2008

もうすぐ26になるのに、何だろうこの幼稚さは。近年より一層退化に磨きがかかってきている、という風に自分では思うけどそれは単に元々幼稚であった自分の有り様を嫌々ながら理解できるようになってきただけに過ぎないのか。過去の自分がオトナだったとも思えないしなあ。

何だろなあ。この成長して無さ感が辛いのかもしれない。自分自身は精神的に成長できてなくて、それなのに身体や周囲の状況は否応なく進んで行ってて。体力の低下(元から低かったけど)とか体重の増加とか自炊率の低下とか、清く正しい独身男性的に順調にダメになっていってるんだよなあ。それで精神が退行していってるんだもの、始末に負えん。

遊びとか本気とか - Jul 07, 2008

前のエントリを見た哀さんに「楽しそうだなあ」的な事を言われたのだけれども、楽しいとか遊んでるとかいう感覚は自分にはなかった。

自分がこういう風にいちいち言葉を換えてねちねち書くのは大抵、なるべく一回の反論だけでいろんな角度からの再反論をあらかじめ防いで「さあどうだ」と勝ち誇りたい時だ。自分の価値観ではそういう態度こそ最も余裕がなくて無粋でカッコ悪い姿だと思っている。にもかかわらずそうしているのだから、相手を言い負かす事にカッカして冷静な判断ができなくなってるって事だ。不快感に突き動かされてなりふり構わず自己保身に精一杯になってるってことだ。

そんな風にすぐに熱くなる短絡的な性格の僕には、冷静に力のコントロールをして相手をてのひらの上で転がして遊ぶ、という風な芸当は多分できないと思う。ギャンブルをやって大負けするタイプだ。だから僕はギャンブルはしないようにしてる。

ギリギリの所を楽しむのがイイとか、心理戦とか、そういう種類の「遊び」は僕には無理なんだと思う。そういうのが楽しめる人はよっぽど頭が良いんだろうと思う。羨ましい。僕に楽しめるのは、コツコツ積み重ねるとかの一人遊びだけなんだろうなあ。

僕があまりDocumentFragmentを使っていない理由 - Jul 07, 2008

自分にはちょっと承伏できない理由で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ツリーから切り離して、ツリーに対する処理を行い、最後に再挿入することで、パフォーマンスを向上する)を全面的には採用できません。

以下、長々とその説明。

続きを表示する ...

スマートロケーションバーでNOT検索できるようにしたXUL/Migemo 0.10.5をリリースしたよ - Jul 07, 2008

表題の通り、XUL/Migemo 0.10.5からロケーションバーでNOT検索を可能にしました。「mozilla -firefox」という風に入力すると、「Mozillaという単語は含むがFirefoxという単語は含まない」候補だけがヒットするようになります。当然Migemo検索との併用も可能。いらん候補が大量にヒットするのがウゼーと常々思っていたので、バグ修正のついでにサクッと実装してみました。

残念ながら、履歴とブックマークの管理、履歴サイドバー、ブックマークサイドバーでの検索については非対応です。これらの検索機能はPlacesのクエリ機能に依存していて、そのクエリ機能にNOT検索の機能がないためです。クエリにNOT検索の機能が付いたら対応できるかも。

スマートロケーションバーの検索に対応したXUL/Migemo 0.10.0をリリースしたよ - Jul 03, 2008

ということでXUL/Migemo 0.10.0やっとリリース。 (動作してる様子のスクリーンショット)

スクリーンショットを見ると分かるとおり、なにげにAND検索にも対応してます。仕掛けは単純といえば単純で、入力された文字列をスペースで区切ってそれぞれについて正規表現を生成した後に、それらの順列組み合わせを全展開した正規表現をさらに生成する(これを使ってマッチングするので、各単語の順番が入れ替わってもマッチする)という、ものすんごい力業。単語数が増えると組み合わせの数が爆発的に増えて正規表現がクソ長くなってマッチングがクソ重くなるので、実用的な速度が出るのはだいたい3語くらいまでが限界だと思います……

ちなみに順列組み合わせの展開には無駄にMozStorageを使ってます。JavaScriptで一体どーいうアルゴリズムでやりゃぁいいのかちっとも分からんかったのでググってみたら、順列組み合わせの総数を求める方法ばっかり引っかかる中で一つだけSQLの自己結合を使った解き方が見つかったので、それをそのまま使わしてもらいました。pIXMigemoTextUtilsのgetANDFindRegExpFromTermsというメソッドがそれなので、興味ある人は見てみてください。

しかしまあ、今回のこれはFirefox 3 HacksのためにPlacesのことを詳しく調べてたからやっと実現できたようなもんで、つまりFirefox 3 Hacksを読めばこんなことは楽勝でできるようになるかもねということで、皆さんゼヒ買って下さい、と宣伝しておきます。オライリーから8月発売予定です(再掲)。

5日追記。ページ内検索では考慮しなくてもよかった問題が表面化してフリーズする(全角スペース1文字だけにヒットした場合に無限ループに陥ってしまう)という現象が起こってしまっていて焦った。対策を入れて早速更新した。

意外なところでFirefox - Jul 03, 2008

前者は「ねんどろいど」等で有名なグッドスマイルカンパニーのブログ、後者はアイマスの双海亜美・真美役の下田麻美さんのブログ。まさかこんな所でFirefoxを見かける日が来るとは思わなかった。

どうでもいいけど、再販分のねんどろミク早くこないかなー……クオリティ落ちてないといいんだけど。

ロケーションバーでXUL/Migemoを使う計画がわりと現実的になってきたっぽい - Jul 02, 2008

places.sqliteが数十MBを超えているのりさんやdrryさんの環境では分単位で固まってしまって使い物にならん、ということだったので、お二人に協力してもらって各段階での処理の所要時間を調べてみた。

そしたらどうも、Placesデータベースから文字列をぶっこ抜いて正規表現でマッチングしてるところがものすごく重いらしいということが判明した。ログによると500万文字ある文字列に対してマッチングをかけようとしてたんだから、そりゃあ固まるわ、と。

固まる問題だけでもとりあえず何とかしよう、ということで数千件単位で文字列を取り出し→マッチング→取り出し→マッチング……という風に分割処理するようにしてみたところ、とりあえず固まる問題は何とかなったんだけど、でも検索結果が出るまで延々待ち続けないといけないのは相変わらずで。

と、そこでやっと気づいたんだけど、べつに正規表現でのマッチングとポップアップの内容の更新とを完全に分けて実行する必要はないんですよね。ちょっとずつマッチングしてちょっとずつ検索結果を取得してちょっとずつ結果のリストを更新していけば、全体ではものすごく時間がかかるようであっても、とりあえず最初の方の結果だけは見えるからストレスにはならない。必要な数だけ結果を取り出せたらそこで処理を打ち切ってしまえばいいんだし。

というわけであちこち書き直してみた結果、最初の実装に比べるとびっくりするほど快適に動くようになった。スレッド使ってなくてもそんなに重くない。のりさんにも「これなら常用できそう」と言ってもらえたし。

最終的にやってることは同じなんだけど、やり方を変えるだけでこんなにも体感速度に違いが出るものなんだなあ、ということをこれ以上ないほど実感した日でした。

それはそうと、途中の段階で分割処理を行うようにしたときのログを見てて気がついたんだけど、SQLite(というか RDBMS)ってすごいね。テストしてもらったのりさんの環境の場合、スマートロケーションバーの検索対象になる物だけでも46000件近く、そうじゃない物も含めればきっともっと大量のレコードがあるのに、「並べ替え後の順番で任意の箇所を取り出す」のに1秒もかからないというのには驚いた。今までちゃんとしたデータベースを触ったことがなかったから、こんなの未知の世界だ。世界規模のデータベースと世界規模の処理環境に憧れてグーグルを目指す人の気持ちが、少しは分かったような気がする。

ロケーションバーでXUL/Migemo - Jul 01, 2008

こないだから少しずつ取り組んでる。

当初は皆目見当も付かなかったけど、Firefox 3 Hacksを書くために調べた知識が早速役に立って、Places APIを使ってる「履歴とブックマークの管理」と「ブックマーク」「履歴」の各サイドバーについてはワリとあっさり実装できた。

ロケーションバーについては残念ながら普通のAPIを使っておらず、オートコンプリートの実装の中でガチガチに書かれてて、まともにやっても手出しできない。OR検索さえできればMigemoが使えるのに。ということで、まず最初は、オートコンプリートのコントローラに複数の単語を順番に渡して結果のリストを生成させてそれを最後にまとめる、という事をやってみた。これは結構イイ線いったんじゃないかと思ったんだけど、履歴の件数が増えたりヒットした単語数が増えたりするとえらい事になってしまって、実用的な速度は出なかった。

そこで諦めて腹をくくって、無い知恵絞ってSQL文書いて、なるべく効率よく処理するようにしてみた。これで速度はだいぶ上がって、3文字以上入力した先あたりならかなりサクサク動くようにはなったんだけど、1文字2文字程度しか入力していないとやっぱりズシッと重い感じがある。

XPCOMのスレッドを作る機能を使ってみた所、Firefoxが落ちたし。

Firefox 3 Hacks - Jun 24, 2008

組長が書いている本に僕も書いてます、っていうかやっと今日書き上がりました。ここのところ全然寝れてなかったけど、これでやっとゆっくり寝れる。

僕の担当パートは例によってアドオンがらみで、FUELとPlacesとJavaScriptコードモジュールとMcCoyあたりについて出せる物をすべて出し尽くしました。というか出せる物以上を書かないといけなかったのでFirefox 3のコードを追いかけて調べながら書きました。ATOK X3買ったのもこれのため。最終的に書いた物はサンプルのソースコードも含めてテキストファイルで360KBくらい? UTF-8だから何文字とかちょっとわかんない……

書いた内容はどれもまあソースコードを順番に読んでいけば分かる事っちゃ分かる事ばかりなんですが、まとめのようなものという事でどうか許してください。オライリーから8月発売予定です。

Page 76/239: « 72 73 74 75 76 77 78 79 80 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のつぶやき

オススメ

Mozilla Firefox ブラウザ無料ダウンロード