微文積文 extra stage
.log


2004.12. 3 (Fri)

2:10 __func__ (定義済マクロ)

C でプログラムを書く必要に迫られた。
DLL を書くのだ。Win32 と C (or C++) と JNI と Java Applet を同時に扱える人間は、世の中にはそうそういないらしい。

でもって、デバッグログは楽をしたい。うまいことやるには、__FILE__ (ソースファイル名)、__LINE__ (ソースファイル内の行番号) はもちろんだが、以下が参考になるはずじゃ。

C99 ってので、__func__ てのがあって、関数のスコープ中ではその関数の関数名が入っているらしい。
でもって、Microsoft C/C++ の場合は、__FUNCTION__ だそうな。

あとは、可変長リストのマクロ __VA_ARGS__ があるとらくちんなのだが。

2004.12.20 (Mon)

0:30 遺失物届け

携帯電話を渋谷で紛失した。orz

2004.12.26 (Sun)

20:13 緊急変更

1週間、発見されず。諦めて機種変更。
本当は、もとのモデルがよかったのであるが、残念ながら存在せず。かつ、上位機種も在庫ナシ。しかたなく、在庫機種にて選択…
いわゆるディグレード。

そもそも、数年分のメモリが消えてしまった時点で、もはやどうしようもないのだが…

2004.12.30 (Thu)

23:59 Hack - POPFile

"これ以上、受信フォルダを汚されてなるものか!!" と宣言したころ、既に対策は取られていて、POPFile というのを導入していた。
こいつは、「自動メール振り分けツール」であり、いわゆる「ベイズ理論による仕分けソフト」である。学習によって、メールをカテゴリ分けしてくれる。これを夏の頃から飼っていて、半年かけて教育 (メールを受信するたびに、手動で振り分けを行う。そのうち、自動的に振り分けをするようになる。間違っていれば正してやる) していたが、3ヶ月くらいで spam 判定は間違わなくなった。ちなみにウチでは、spam と判断されるメールは、カテゴリ "spam" に放り込まれる運命である。

問題は、こいつはカテゴリ分けしかしないことで、あとの振り分け (ゴミ箱行き、とか、即削除、など) は、メールソフトに依存している。でもって、カテゴリ分けされたメールに対して付けられる識別子は、基本的に、「件名の変更」か「X-Text-Classification ヘッダー」だけなのである。
残念ながら、僕の使用しているメールソフトは、任意のヘッダを、フォルダ振り分けのルールに使用できない。本格的に POPFile による振り分けを有効化する方法はふたつ。ひとつは件名を変更すること、もうひとつはメールソフトを変えること、である。
前者は、嫌である。POPFile とて万能ではない。ときに間違いも起こす。「パーティのお知らせ」という Subject が、「[spam] パーティのお知らせ」となるのは耐えられぬ。後者も、現実的ではない。慣れもあるし、現状、このソフトに不満はないのだ。

しかたない(?)ので、改造することにした。POPFile のメイン部分は、Perl で書かれている。ということは、読めばなんとかなるということだ。

目的
現在のメールソフトで、POPFile のカテゴリ分けを有効に利用する。
要件
現在のメールソフトで制御可能なヘッダを、カテゴリ分けの際に付与する。
検討
  • 現行のメールソフトで使用できるヘッダは、From:, To:, Cc:, X-Priority: など
  • 実際に来るメールに含まれている可能性のあるヘッダで、その値の選択肢の少ないもの (X-Priority) は使用できない。
  • 残るは、From, To, Cc だが、To と Cc は、通常、複数になり得るため、このヘッダを使用すると、いざというときの目視による区別が面倒である
  • というわけで From でいく。From であれば、通常は単一であるため、目視による区別が容易であると判断した。(ちなみに、From ヘッダは複数の使用が可能であるらしい。もしかしたら、解釈誤りがあるかもしれないが…)
結論
改造として、X-Text-Classification をつける状況において、From: にカテゴリ名をつけてしまおう。

以上により、改造したのは、Classifier/Bayes.pm である。以下、記録 (v0.21.2 に対する diff -c; ちなみに、本日時点での最新版は、v0.22.2 [2004/12/17] である)。

導入より、ひと月。なかなか調子がよい。「From: spam@POPFile」で来たメールは、即、開封済の扱いで、spam フォルダへ放り込みである。

2004.12.31 (Fri)

0:15 [bookmark] デスクトップ掃除(年末)

あれ、今回は少ない。

ついでに。Language C FAQ、C & C++ FAQ、C++ FAQ LITE (Marshall Cline)。


Valid HTML 4.01! written by Tetsuya Ishihara
stonefield(at)estyle.ne.jp