アーカイブ

2007年 2月 8日 のアーカイブ
1691 letters | 956 views | コメントする

久し振りというか、もう忘れかけてた真魚を更新するぞと。
バグでもないんだけどまずい方法をやっていた部分で相性問題が出たので修正し、
ついでだからちょっとばかしいじろうかなとか思ってるところ。
しかしもうだいぶ忘れてるので、うまくいくかどうかわからない。
まぁ、どっちにしろ修正した分については近日中にアップするが。

で、問題とするのは掲示板にあったGrepの問題だ。
何と比べたかは忘れたが、比べて断然速かったので、遅いんじゃないかと疑いもしなかった。
しかし遅いっていうなら遅いのだろうから、速くなるように考えてみようじゃないか。
そのなんとかっていうソフトはダウンロードしてないので、見ないで書くけれども。

遅いってのは、何かをするのに時間がかかっているということだから、
真魚がなにか余計な事をして時間をかけている所を探してやめさせるしかない。
さて、Grepでどんな処理をしているか、ソースコードを追いかけてみる。

指定されたディレクトリでファイルをリストアップするとか、子ディレクトリをリストアップするとか、
ファイルIO周りはWindowsAPIなので、ソフトによって差が出ることはないはず。
いや、API使うよりもっと高速な独自アクセスをやってるというなら、それにはかなわないが。
現実的な話だけすれば、この後の、ファイルを読み込んで文字列を検索する部分だけの差だ。

真魚の場合、見つかったファイルはとりあえず丸ごと読み込んで、
文字コードの判定をしてから、行に分割し、BM法か鬼車で検索、という手順を踏む。

え?ということは、指定したディレクトリに巨大動画ファイルとかあったら最悪じゃん。
一応、そういうことがないようにするため、拡張子フィルタも付いているのだが、
そんな仕組みがわからなければどうせ*.*で全ファイルを検査しちゃうよな。
自分でもそんなフィルタを使ったことが一度もない。
じゃあさ、*.*を指定しても動画ファイルを全部読みこむことのないように工夫するか?
AdMenuによるテキストファイル判定はかなりの確率でバイナリファイルをはじくので、
ファイルを丸ごと読み込む前に判定ではじいてみようか。
しかそれは精度がよくないので、一部のテキストファイルさえもはじいてしまうのだが。

つぎに、ファイルを読み込んだ後、文字コードを自動判定してユニコードに変換する。
ファイルの中身がSJISだったらSJISのままで検索するなんて器用なことはせず、
すべてユニコードに直してからの検索なので、それ以外のファイルの検索は遅い。
変換の速度はこれ以上上がらないので、この部分を速くするのは不可能。
改行コードの変換もやっているが、これは¥nで¥r¥nも探させる都合上、やむを得ない。
検索スピードを上げるわけにもいかず、ほかにスピードを上げる術はない。

というわけで、Grepが遅くなる原因は、バイナリファイルをはじいていないことと、
テキストファイルをユニコードでLFなファイルに変換していることなのだが、
後者はどうしようもなく、前者は多少のデメリットがある。
つまりこれ、もう高速化できないっぽい。
でも、ユーザーが拡張子のフィルタではじいて高速化はできるので、
フィルタをもっと使いやすくできればいいのだがそれも面倒だな。
何も更新できないっぽい。

998 letters | 648 views | コメントする

今年も、一太郎買え、ATOK買え、というダイレクトメールが来る。
学生時代、ワードと比べて使いやすかったから一太郎を愛用していたが、
一緒に付いてきたATOKの方が大変気に入った。
その後、周囲との互換性を考えてワードに乗り換え、
ATOKもMS-IME互換入力に切り替え、それに伴い一部の機能はあきらめたが、
ATOK自体は必要だから、ほぼ毎年買っていたりする。
本当は毎年はいらないんだけど、毎年パワーアップしてお金取ろうとしてくるんだよ。

今までのATOKではこんな風に変換されてました、とか言って悪い例を挙げ、
今度のATOKではこんな風に変換されますとか言って良い例を挙げられちゃうと、
毎年乗り換えずには居られなくなってしまうんだな。
今年はこれ。
>人がいない傘がしてみる
>それ以外に模様とがあった
>責任感元もない、社会人らしくなってきた
これらがちゃんと変換されるようになるということで、確かに魅力的だ。
しかし逆に、今まで毎年お布施を要求しておきながら、まだこんなに性能悪かったのかと絶望。
たしかにATOKを使い始めた頃は、MS-IMEとの差が開きすぎて必須アプリだったが、
もうずーっとMS-IME使ってないからわからないんだけど、本当に差は開いたままだろうか?

というわけで、ここからはMS-IMEで。
>人がいないか探してみる
>それ以外にも用途があった
>責任感も伴い、社会人らしくなってきた
って、もろにATOKを凌駕してるジャン。
しばらくお休みしちゃうか?
でもATOKは「凌駕」って入力すると「凌駕」の意味まで表示してくれるから捨てがたいないあ。

あと、ATOK単品だけでなく、JUST製品抱き合わせセットの案内も来ていて、
MS-OFFICEと比較して、価格を考えるとものすごく得な内容だなと思った。

1825 letters | 576 views | コメントする

まだセットアップは終わっていなかったりする。
あれも必要だ、これも必要だ、オンラインアップデートだ、再起動だ、とかでなかなか進まない。

今とにかく不満なのは右クリック関連がどれもうまくいかないこと。
真魚のためのエクスプローラ拡張がうまくいかないだけなら、自分で解決方法を探すのだが、
解凍ソフトの右クリックも軒並みうまく動作してないようで、非常に困る。
いざというときに、使いたいソフトで解凍できなくてスタートメニューから起動したりとかする。
やっぱりβ版のVistaとはずいぶん変わったんだな。

それから、メニューのアクセルキーに下線が表示されてないこと。
98→2Kのとき、Delphiアプリ特有の不具合で似たことがあったので、
今回も自前でDelphiの不具合を直そうかと覚悟していたのだが、
よく見たら別にDelphi特有でもなんでもなく、自前で対処したらはまりそうな感じ。
メニューバー自体が初期で隠れてたり、MSはメニュー表示をやめようとしてるのかもしれない。

ウィンドウの透明表示と相性が悪いソフトはいろいろあるようで、
何かを起動したときに突然画面が消えて、不透明画面に切り替わることがある。
それとは別に、UACオンの警告も、いったんブラックアウトしてから出るからうざい。
真魚が大丈夫だったからこのままUACオンで使うつもりだったが、やっぱりオフにしたくなる。

新Alt+Tabが大変使いやすい。
せっかくの新GUIだから、最初はミ田+Tabで切り替えていたのだが、
それだと誤操作でスタートメニューがポップアップしたりするし、カッコイイだけで実用性は低い。
それよりも、Alt+Tabだが、今まではプログラムアイコンのみだったのに、
ウィンドウのプレビューを見ながら切り替えることが出来るようになり、それだけで使いやすい。
クラシックテーマにしちゃうとその機能が使えなくなるので、Aero使用は確定。
XPのルナは見た目だけだったから、重くなるくらいならクラシックを選んだけれども、
VistaのAeroはAlt+Tabのためだけに使いたくなる。

スタートメニューが使いづらくて、カスタマイズでどうにもならないのがつらい。
どんどんクリックして開いて行かなきゃいけない上、フォルダのアイコンがわかりづらい。
アプリによっては、メニューを階層分けしてきちっと整理しているのに、
Vistaではそういうソフトほど使いにくくなってしまった。
アクセサリにどんな物が入ってるかなど、ざっと探すだけでも大変。
これよりならやむを得ずクラシック表示にしようかと思っている。

サイドバーが全く邪魔なのでオフにした。
時計はトレイに入ってるし、RSSに登録する物なんてないし、天気じゃなくて気温表示だし、
オンラインで登録されてるのはゲームだし、常駐させるほどの物はなさそう。

IEやOEの使い勝手については、あたしゃモジラ移行しちゃったから戻る気はなく、
使いやすかろうが使いにくかろうがどうでもいい。

Windows Updateに日本語以外の言語パックがならび、ギガ単位の量になっている。
リストアップされた物は全部入れたいが、使わないものでギガはもったいないから迷う。

もちろん、使いづらくても完全移行の意志は揺るがない。
でも他人に勧めるなら、その他人はOS入れ替えしない一般人だとして、
今はXP搭載機を買って、次はVista搭載機しか売ってないだろうから移行、って答えるね。
まだ旧製品に慣れた人が移行するだけのメリットはないし、
旧製品にすらなれてない人にはサポート情報不足だし。