今年もいじり始めた

1637 letters | 784 views | コメントする

不動産屋は三月が一番忙しいのだが、なぜか三月が一番プログラミングもしたくなる。
現在の真魚のエディタエンジンを作り始めたのも三月だったな。
案の定、今年もちょっと真魚をいじり始めた。

12月に予告した二つの部分をいじり終わった。
一つは、Yahoo!辞書への文字列の転送方法だ。
Yahoo!はなんか昔からEUCにこだわっていて、サイトのエンコードもEUCだったので、
わざわざEUCにエンコードしてから開いていたが、いつしかUTF-8がデフォになったようで、
これでようやく、辞書検索もユニコード対応できるなと思って、さっさと真魚で対応したかった。
別にエンコードがUTF-8だからって、他言語辞書になってるわけではないから意味がないが、
これは気になったからやっておいたに過ぎない。

もう一つはGrepの速度の問題で、一つ納得したことがあって対策を打った。
真魚のGrepはこれ以上どうしようもないほど速いのだが、それでも掲示板には遅いと報告され、
いったいどんな使い方をすれば遅くなるのか、何を探してるのか見てみたかったのだが、
その遅いって言ってる人が、今度はバイナリの読み込みについて書いていて、ひとつ合点がいった。
でかいバイナリファイルとかがある場所に検索をかけた時はメチャ遅い。
しかも、せっかくでかいファイルを読み込んでも、バイナリであるという理由で検索対象外になる。
テキストファイルしかない場所か、もしくは、画像くらいのサイズのファイルなら混じってもいいが、
CDとかDVDをまるごと抽出したものや、それを圧縮したものとかがあるフォルダで検索されたら、
そのでかいファイルをいちいちメモリーに読み込んでいるから超遅い。
だって読み込まなきゃ、それがテキストファイルかどうかもわからないんだから仕方がない。
割れ物とシリアル集を同一フォルダに置いてGrepしてる人の場合は、フリーズしたかと思うほど遅くなる。

一切読み込まなきゃテキストファイルかどうかわからないが、ちょっと読み込めばだいたいわかる。
Admenuとかでやってるように、自動判定を最初にやってから読み込むように変更した。
その、自動判定を全ファイルに対して毎回やることで遅くなるかと思って、
自動判定をするかどうかのオプションもいったん用意したのだが、結局なくした。
自動判定有りでも十分速いし、そのオプションをわかりやすく名づけることも出来なかったため。

自動判定と言っても、完璧に判定するには全部読み込まなきゃいけないわけだから、
最初の方をちょっとだけ読んでの自動判定は不完全だ。
バイナリはじきの手法をとっているので、バイナリをテキストだと判定することはあっても、
テキストをバイナリだと判定することはない。
検索したいのにひっかからないファイルがあって困るということは起らないはず。
でも、たまにはじくことが出来なかったバイナリファイルを読み込んでしまうことはあるだろう。
例えば捏造ファイルなんかは、中身が完全にランダムだったりするから、バイナリはじきが通用しない。
それは仕方ない。

ということで再開。
またすぐやめてしばらくやらないこともありえるが。
一応、ついでにどこまでやるか検討するかな。

たぶん関連のある記事:

コメントは終了しています。