smf(Solaris10) 

いじってみたが、不便で使う気になれない。自分でサービスを登録したいときにmanifestのxmlファイルを作らなければならないが、何かツールを使わないと面倒で仕方ない。ツールも用意されていない模様。
Solaris10で導入されたZONEを管理するために必要になったのかもしれないが、ZONEって何の役に立つのか良く分からない。セキュリティ向上や仮想マシンの実現、ということのように思えるが、chrootやそれ以上に使いにくそう。

取り敢えず自分は/etc/init.d/SERVICEでいいや。

データマイニング 

大量のデータを特定目的で解析できるようになったのは最近の事だろう。
データマイニングは大量のデータから傾向や関連を見つけるための手法だ。
これまでこうしたデータを集められなかった小さな組織でも、POSデータから簡単に大量のデータを集められる。

会社組織であれば、それ以上のデータを集めることは問題ではないはずだ。
未開拓の肥沃な原野が目の前に広がっている。データマイニングが心理歴史学を見付け出す可能性すらあるのではないだろうか。

日本語spamとMessage-Id 

日本語spamのMessage-Id:の値は<>で括られていない場合があるとふが日記に書かれている。spam対策のために利用できるかどうか、興味が湧いたので調べてみた。
ポイントは次の通り。
(a)日本語spamでは<>で括られていない場合がある(のかどうか)
(b)非spamでは<>で括られていない場合が(殆ど)ない(のかどうか)
上記(a)および(b)の両方が満たされていれば、spam判定の条件の一つとして利用できるはずである。
調査方法は次の通り。
(1)調査対象データは私が利用しているメーラBecky!の受信メールデータとする。取り敢えず2006年のものを対象とし、非spamとspamとで分けた。
(2)非spamとspamそれぞれについてメールヘッダMessage-Id:の値が<>で括られているもの、括られていないものを数える。
具体的には次のようにコマンドを実行。
■非spamの計数

find . -type f ! -path './no_spam/*' -exec grep -h -i ^message-id: {} \; > /tmp/mail_ok

perl -e 'while(<>) {if($_=~m/^message-id:\s*<.*>\s*$/i) {$ok++;}else{$bad++;}} print("\nOK->$ok\nBAD->$bad");' /tmp/mail_ok


■spamの計数

find . -type f ! -path './spam/*' -exec grep -h -i ^message-id: {} \; > /tmp/mail_spam

perl -e 'while(<>) {if($_=~m/^message-id:\s*<.*>\s*$/i) {$ok++;}else{$bad++;}} print("\nOK->$ok\nBAD->$bad");' /tmp/mail_spam



出力はこんな感じ。
○非spamの場合
OK->13583
BAD->13

○spamの場合
OK->12962
BAD->541

実際に有意な違いがあるようだ。ただ、この条件を満たしたメールをそれだけでspamとして扱うのはちょっと無理があるようだ。半年で13通のメールを失うのは(私としては)辛い。
商用spam対策システムで採用しているように、条件を満たす度にspamスコアを増やしていき、閾値を超えた際にspamと判定するアプローチがより良さそうだ。
実際、そうしたシステムで、こうした条件が採用されているのかもしれない。