Matt Mahoney が、Data Compression Explained という本(?)を執筆しているそうです(まだ完成してはいない様子)。本の内容がオンライン上で公開されているのでざっと斜め読みしてみましたが、かなり読み応えがありそうです。
ActionScript を多用した Flash アプリケーションを開発していると(私だけかもしれませんが)よく、外部の ActionScript ファイルがコンパイルされなくなってしまう問題に遭遇します。Flash 開発を始めてから長いことこの問題に悩まされてきましたが、この度ようやく原因を突き止め、対処することができました。
この問題はたいてい、SVN などのリポジトリの最新版で ActionScript ファイルを含むローカルのソースファイルを更新したり、エクスプローラで ActionScript のファイルを差し替えたりした後に発生するので、ActionScript をコンパイルした結果がメモリ上かどこかにキャッシュされているのではないかと推測していました。
コンパイル結果がメモリ上にキャッシュされているのであれば、Flash の開発環境(Flash CS4)を再起動すれば解決するはずです。ですが、実際に再起動しても問題が解決することはまれで、ほとんどの場合は解決することはありません。よって、ファイルシステム上のどこかにコンパイル結果のキャッシュファイルが存在するのは確実だったのですが、ActionScript のソースファイルの配置ディレクトリにもなく、.fla ファイルの付近にもなく、どこにもそれらしきものは見当たりませんでした。
そして最近になって、ASO ファイル なるものの存在を知ることになりました。このファイルがまさに、ActionScript ファイルをコンパイルした結果のキャッシュの役割を果たしていたわけです。この ASO ファイルは "\Document and Settings\ユーザ名\Local Settings\Application Data\〜" と続く、Flash CS4 関連のあるディレクトリに出力されます。このディレクトリ内にある ASO ファイルを削除することで、ActionScript ファイルがコンパイルされない問題は解消することができます。
・・・個人的な意見ではありますが、ASO ファイルのような中間ファイルの類は、もうちょっと分かりやすいディレクトリ(ソースと同じディレクトリなど)に出力してほしいなー、と思いました。
会社の後輩に薦められて、Logicool の M500 というマウスを買いました。高速スクロールがとても気持ちよくて、クセになっちゃいます。
ちなみに、今まで使っていたのは IBM のバルク品でした。結構な頻度でマウスカーソルがドリフトしてしまう困ったちゃんでしたが、クリックの軽さ、握ったときのフィット感、滑らせたときのスムーズさにおいて、このマウスを超えるものが存在しなかったのでながらく愛用させてもらいました。
M03exp で使われている BW 圧縮アルゴリズム "M03" を、考案者ご本人が実装した評価用プログラムが公開されています (昨年の 10 月上旬より公開されていたようですが、そのことにしばらく気づきませんでした・・・)。ダウンロードは こちらのページ からできます。
せっかくなので、Calgary corpus と Silesia corpus で M03 の圧縮率を測定してみました。結果は Comparisons of the Burrows-Wheeler compression algorithms を参照ください。
最近 Windows のリモートデスクトップ接続を使っていて、ふとしたきっかけでローカル PC のCPU 利用率が 100% 近くなり、かつメモリの空き領域がなくなってしまう現象に遭遇しました。タスクマネージャを開いて確認したところ、リモートデスクトップ接続に関係する mstsc.exe というプログラムが、どうやら CPU・メモリのリソースを浪費するようです。
このリソース浪費の状況に陥った場合、浪費を起こしている mstsc.exe を強制終了すればとりあえず難を逃れられます。がしかし、リソース浪費に気付かずにそのまま放置していると、最悪の場合はローカル PC の操作ができなくなってしまいます。最大化してリモートデスクトップを使っていたら、リソースの浪費が発生していようともなかなか気付きませんよね・・・
この問題について色々調べてみましたが、これといった原因、対処法は判明していないようです。チップセットのドライバをインストールしなおすと直るよ、なんて意見もあったり (*)、クリップボード関連のユーティリティを使っていると問題が発生するよ、などの意見も (*)。
チップセットのインストールは面倒だったので、後者の意見に関連してリモートでのクリップボード操作を確認してみることにしました。すると、リモート側でクリップボードにコピーをした瞬間からローカル PC の CPU 100%&メモリ浪費が始まることが判りました。クリップボード周りに原因があるのは確かなようです。しかし、クリップボード関連のユーティリティは特に利用していないのですが・・・なぜでしょう?
とりあえず、リモートデスクトップ接続の際に、クリップボードをリモートセッションで使用しないように(下図参照)すればリソース浪費の問題は解消できるようなので、ちょっと不便だけどこの対応でしのいでいます。