WeakEvent パターン
Dependency PropertyはWeakEvent パターンで実装されているみたいだ。
BindingのターゲットがGCによって解放されると、値の連動が行われない。
好きなアルゴリズム
Rekisaでも使ってるLongest Common SequenceとかShortest Edit Sequenceとか呼ばれてる配列比較アルゴリズムが一番好きだな、と思ったら既に一番最初に回答されてた。
やっぱり、あのアルゴリズムを知ると感動するよね。
ベイズ理論
アルゴリズムとはちょっと違うけど、今のRekisaの文字コード判別に使ってるベイズ統計も感動した。
テキストファイルを学習させると、手書きで書いた文字判別コード以上の精度が出るプログラムができてしまうってのが面白い。
Rekisaの文字コード判別にベイズ統計を使ってなかった頃に、
- ユーザ:文字コードが判別がうまく動かないよ。
- 私:直したよ〜
- ユーザ:別のファイルが判別失敗するようになった!(`へ´*)プンプン!
- 私:文字コード判別は「あっちを立てるとこっちが立たず・・」みたいな処理なんだよ。
- 私:というかそれ。判別不能データじゃん!
みたいなやり取りがあったんだけど、ベイズ統計を使ってれば、ユーザ毎に文字コード判別処理も学習可能だったなぁ・・・、と後から思ったり。
とはいえ、今のRekisaも追加学習には対応せず、学習済みデータを搭載してるだけだけど。
CLR Add-In
Visual Studio 2008もリリースされたので、CLR Add-Inについて調べてみた。
http://blogs.msdn.com/clraddins/:Title=CLR Add-In Team Blog
と機能的には非常に素晴らしい。
ただし、アドインとホストアプリケーションを繋ぐためのコードを書く必要があり、イベントを使用したアドインや複雑なオブジェクトを扱うアドインに対応させるとなると、結構面倒そう。
また、相互参照によるメモリリークにも気をつける必要がありそうだ。
プロセスハンドルが残る
Process.Startを使用してショートカットを開くとProcess.Disposeを呼び出しても開いたアプリケーションのプロセスハンドルが解放されない。なぜだろう?
新刊チェック
Amazon Web Serviceを使って新刊チェックソフトでも作ろうかと思ったが、少し調べてみると、
DISCOVER Your Favoriteや
ブックススケジューラ
のような素晴らしいソフトがあることに気づく。
とりあえず、独自色が出るようなアイディアを思いつくまで保留とする。