2008/07/19(土)SpamPalの可能性

2008/07/19 14:57 PC(全般)
最近WindowsマシンにはSpamPalを入れてスパム対策をしている。

以前はspamassassinをサーバに入れてスパム対策をかけていたのだが、spamassassinの動きが時折不審であったことと、重いこと、それに加えカスタマイズが結構めんどくさいので自宅サーバではもうやめてしまった。あれからspamassassinもApacheに入ったので今とは状況が違うとは思うがおそらくベースの使い勝手は変わっていないと思う。

今はデスクトップ機の方がリソースに余裕があるし、クライアントマシンに入れた方がカスタマイズしやすい。POPFILEの存在は認識していたのだが、重さと振り分けの動作がいまいち所望と違う。そうこうしてるうちにSpamPalに巡り会った。

SpamPalはURIBLや発信国振り分けに重きを置いたスパムフィルタである。売りとしては初期から使えるBLの豊富さと、スパムフィルタとしては比較的動作が軽快であること。プラグインでベイジアンフィルタも含め機能追加に対応できるところなどだ。

スパムメール対策といえば、

* 発信国判定
* ブラックリスト、ホワイトリスト
* キーワードでの除外、ハム化
* 逆引き一致
* メールアドレス判定
* ベイジアンフィルタ

などが多く使われている。網羅しているわけではないが、スタンダードなところだとこのあたりだろう。

一般的に1つ2つを使うだけでは対策としては不十分で、複数のフィルタを組み合わせたり、あるいは点数付けによってスパム/ハムを振り分ける。

やっかいなことではあるが、実感としては取り扱うメールの量によってどの対策が有効であるかが大きく変わるようだ。

導入コストや動作コストの問題もあるが、受信あるいは通過するメールの量が相当多くないとベイジアンフィルタは今ひとつ効果が薄い。

特に個人ユースでデスクトップに入れる場合には、thunderbirdの例を引くまでもなくベイジアンフィルタの効用を実感できないことが多い。理由は明らかで初見のスパムが多いからである。

またベイジアンフィルタの動作は一般的に重いこともあげておこう。ちなみにspamassassinが重いのはベイジアンフィルタというよりたぶん生Perlが1通ごとに大量の正規表現検索をかけるからである。

spamassassinをいじったときの実感としては、対策方法の中で一番効くのはURIBLなどblacklistだった。細かい正規表現・キーワード判定は確かに精度を上げるが大勢には影響を与えない。逆引きはどうしても癌で、正規のプロバイダメールを落としてしまうことがある。

そういった経験則からSpamPalはどうも使えそうだという見込みがあった。

現在はまだ使いはじめの段階だが、特に英文のメールに対する精度は非常に高くほぼ100%の除去率を誇っている。逆に日本語は今ひとつで、結構な割合ですり抜けてくる。またハムをスパムと判定するいわゆるフォールスポジティブは、特定の個人からのメール2件で起こっているだけとなっている。

様子を見ながら調整してみるつもり。

2008/07/19(土)serene bach -> adiaryへの乗り換え

2008/07/19 14:00 PC(全般)
serene bach -> adiaryへの乗り換えの理由。

* serene bach
o 記事-記事リンクがめんどくさい
o プレビューできない
o wiki記法(sbtext)の使い辛さ(記法が独自で少な目)
o ソース張りのあたりで若干いじらないと表示がうまくいかない
o ちょっと遅い
o 微妙に更新がめんどくさい
o 一部設計が不可解(インポート時の連番とか)
o 記事編集にいちいち管理ボタンから入る必要がある

* adiary
o 記事-記事リンクが書きやすい
o プレビューはできないが動作が軽快なので何とか
o wiki記法は比較的互換性が高く使いやすい
o ソース張りOK
o 動作軽快
o 多機能
o ログインすれば各記事に編集ボタン表示
o 実行ファイルは1ファイルなので更新容易

さて、まずは人によっていろいろ意見が分かれるのを前提で、自分の意見としてはこうであるということを宣言しておく。

日記・あるいは記事作成システムとして、「機能の有無」だけで判断するなら選択肢はいくらでもある。

自分の欲しい機能はせいぜい、

* 日付やタイトルの位置・表示方式カスタマイズ
* 2階層掘れるカテゴリ
* 記事内リンクのやりやすさ
* リスト表示
* 簡易検索
* あればうれしいアクセス解析

等々で、当然のごとくMTもtDiaryもプラグインで対応可、あるいはハックでどうにかなるようなものばかりだ。

一方で、日記に使うようなシステムでプラグイン方式を徹底化されるとどうも煩わしさが先に立つ。

複雑化しやすく、人によって求める機能が違うようなシステム--
そういうシステムでは本体機能を最小限に抑え、プラグインで機能の追加を実現するようにした方がスマートだ。それは間違いない。

しかし、事件は突如「プラグイン同士の相互関係」という現場で起こる。

さすがに衝突は回避されることがほとんどだ。しかし、あるプラグインがデザインを変更し、あるプラグインが遷移状態を追加したとする。そうすると追加された遷移先でデザインが崩れる、といったことが起きる。。

それに加えて、各プラグインのバージョンアップ、当然本体のバージョンアップもあるから事態は混迷の一途をたどる。オプションの追加、パラメータのオプション化あたりで匙を投げたくなってくる。

ここら辺はコミュニティの人数にも関わってくるし、自分の使い方が大勢と異なっていればいるほど煩わしさが増すという苦難も伴う。あーめんどくさい。

自分で作る? もちろんそれもよい。あなたに相応の時間とセキュリティの知識があるのならば。

そんなわけで本体機能のみでリッチなシステムを求めたくなる。KShikiもserene bachもそういう発想で導入したCGIだった。そして今回adiaryに乗り換えた。

もちろん乗り換えたんだから過去の両システムともに不満はあった。ただそもそも不満が発生するのは当然「本体機能のみでリッチなシステム」を求めた自分が悪いわけでこれらが悪いものであるといっているわけではない。

当然後発組の方が出来がよいという実態もある。

adiaryのよい点はまさに単独でリッチ。本体のみでhatenaもどき+wikiもどきを実装できていること。おおまか自分の求める機能を備えていること。さらに動作の軽さも特筆すべき点としてあげてよいと思う。

2008/07/05(土)Memo移行しました

2008/07/05 15:42 PC(全般)
MemoのCGIエンジンを入れ替えて、serene bach -> adiaryに換え、アドレスも移行しました。

新アドレスは、
http://www.dt8.jp/cgi-bin/adiary/
(ここ)になります。

なお、当面旧版は残しておきます。

mod_rewriteしてリダイレクトっぽくしようと思ったら、sb側の記事番が日付順になってなかったので諦めました。本当は301 Moved Permanentlyとかも処置すべきなんでしょうが、そうアクセスがあるページでもないし、記事番リダイレクトもできないようではということで特にやってません。

入れ替えの理由は次の記事にでも書きます。

あー、それにしても書きやすくなりましたね。

2008/06/26(木)RADEON+リモートデスクトップ

2008/06/26 23:04 PC(全般)
リモートデスクトップで入っているマシンの電源を、リモートデスクトップ内からシャットダウンさせた場合に、Windowsがati2dvag.dllなどでブルースクリーンを吐いてストップしてしまう問題。

ああややこしい。

ちなみにうちの環境はAMD 690G(Radeon X1250) + Windows XP SP2。

前回調査したときの結論は、ドライバのバグである上に「解決方法無し」で終わっていた。一部、ドライバのバージョン次第で解決するという情報もあったのだが、どうやら環境依存らしく、

・新しくしたら直った
・古くしたら直った
・直らなかった

と要領を得られず。手元でも最新や1つ前など何度か試したものの、ダメだったので諦めていたのだった。

さて最近どうなったのかと思い立って久方ぶりに調べてみたのだが、

http://rip747.wordpress.com/2008/01/22/ati2dvagdll-bsod-and-erratic-behavior/
とある。

意訳すると、

「ヘイガイス! 今日は耳寄りな情報を教えようじゃないか。リモートデスクトップでブルースクリーンになる問題の件だけど、つい6日前に出たドライバ入れたら見事解決したんだぜ! ヤホーイ! 2008/1/22」という話。
これは、試してみる価値有りということで、さっそく690Gのドライバを更新(メモ忘れ -> 6.14.10.6822)してみた。

結果。まだ1回シャットダウン試行しただけではあるがブルースクリーンは出ず。今まで100%ブルースクリーンになっていたはずなので、OKになったようだ。

正直この問題が煩わしいがためにGeforceへの乗り換えを真剣に考えていたこともあり、個人的な使い勝手の向上として高得点である。まあしばらく様子を見てみよう。

2008/04/20(日)音量アイコンが消える

再起動、復帰時などにタスクトレイ上の音量アイコンが消える問題。

発生状況等まとめると、

1.[コントロールパネル->サウンドとオーディオデバイス->タスクバーに音量アイコンを配置する]にチェックは入っている。

2.にもかかわらず起動時に表示されないことが多い。

3.チェックを入れ直して適用すると表示される。

4.音量アイコン以外にも、「ハードウェアの安全な取り外し」や「Daemon Tools」のアイコンが表示されていない。
という状況。

さて、毎度のことながら原因ははっきりとはつかめなかったが対処方法は発見した。

http://hotstreet.vaio.sony.co.jp/article/article.php?id=6166
ここにあるとおり、どうもUPnPまわりのタスクトレイ表示で何か阻害が起こるらしい。

従って対処方法としては、

1.[マイネットワーク->ネットワークタスク->ネットワークに接続しているUPnPデバイスのアイコンを非表示する]をクリック

2.再起動
で終了。これで全部表示されるように改善された。やれやれ

ネットワークタスクが表示されていなければ、[ツール->フォルダオプション->フォルダに共通の作業を表示する]にチェックを入れ、フォルダの表示を切って、サイドバーにネットワークタスクが表示されるようにする。

なお、すでに[マイネットワーク->ネットワークタスク->ネットワークに接続しているUPnPデバイスのアイコンを表示する]となっていれば、この対処法は外れ。ごめんなさい。

起動時に重いタスクが走ってるとアイコン登録に失敗するという情報もキャッチしたのだが確認できなかった。ちゃんとログオンのステップを踏んでいる人はこの問題は発生しないかもしれない。

2008/02/13(水)BDS2006(Turbo C++)でBoostをコンパイルするときのあれこれ

先に結論から。通ったときのコマンド列と環境を書いておこう。

[環境]

BDS2006(Turbo C++) - bcc32(5.8.2)

Boost 1.34.1

boost-jam 3.1.16-1-ntx86



bjam.exe -sTOOLS=borland --toolset=borland --prefix="C:\Program Files\Borland\BDS\4.0" install



(cmd.exe上から)

さてこれは何度か失敗した上で結果的に成功したときの環境をメモしたもの。

失敗したときのことを思い返すに、何がダメだったのかよく分かっていないのだが、可能性がありそうなものを以下に全部列挙し次回の参考にしたいと思う次第。

・-sTOOLS=borlandだけだとborlandが無いといわれ、msvcでコンパイルされる(失敗)。



warning: No toolsets are configured.

warning: Configuring default toolset "msvc".

warning: If the default is wrong, you may not be able to build C++ programs.



・--toolset=borlandは必要なのかそれだけでいいのかよく分かっていないが、上記の失敗改善には有効。

・nyacusからだとダメかもしれない。

・Boost側がコンパイルさせるBCCのバージョンに対応していれば、BCBBoostは不要(おそらく通るライブラリは増えないし、コンパイルに失敗することがある)。

・今回のBoost-1.34.1はBCC32(5.8.2)には対応していた。(調査不足)

結局、

1.自分の使っているBCCのバージョンを調べ

2.Boostが対応しているか確認し

3.対応していなければBCBBoostを当て

4.--toolsetをつけてコンパイル
ということなのだろうか。しっくりこないなあ。

BCBBoostを当てたときは-STOOLの指定を自分のコンパイラに合わせたものにする。ここら辺はその都度BCBBoostのドキュメントやForumをあさること。

さて、Boostの対応はVC++のほうがしっかりしているのは周知の事実だ。Boostの機能をフルに使いたいならば、BCBは良い選択ではない。regexはいけそうだが、相変わらずtype_traits周りがダメくさい。

対応状況はBoostのtest項目などを調べればわかる。pythonは全滅しているようだが、python環境のインストールによってはいけるのかどうか?

[参考サイト]

http://www.kmonos.net/alang/boost/build.html

http://www.gesource.jp/weblog/archives/2006/12/borland_developer_studio_2006_1.html

http://d.hatena.ne.jp/ex_2/searchdiary?word=Boost

http://www.gesource.jp/programming/bcb/46.html

2008/02/12(火)BDS2006(Turbo C++)でSTLportをコンパイルするときのあれこれ

[環境]

BDS2006(Turbo C++)

STLport5.1.5

minGW5.1.3
STLportのインストールで軽くはまったのでメモ。

STLportのドキュメント通りに作業したのだが、どうもパスがらみでmakeが上手く通らない。色々やってみたのだが、%BDS_DIR%\Binの.cfgを見にいっていないようである。プロンプトやシステム環境変数で指定してみたのだが、やっぱりダメ。むむ手強い。

一応の解決方法だが、まずSTLport内のREADME.borlandの指定通りに.cfgを書き換え(今回は必要なかった)、コマンドライン上でset INCLUDE=%BDS_DIR%\INCLUDE をしておく。しかしこれでも通らないようなので、.cfgをビルド作業ディレクトリ(%STLport_DIR%\Build\Lib)にコピーし、bcc.mak内の



STLPORT_INCLUDE_DIR = ../../stlport







STLPORT_INCLUDE_DIR = "../../stlport";"C:\Program Files\Borland\BDS\4.0\include"



に書き換える。

で、


mingw32-make.exe -fbcc.mak install

やっとコンパイル完了。

うーん、なにか根本的なところで理解が足りてない気がするなあ。ただ、やっぱりBCC32あたりの検索パスは何か変ではある。

http://members.jcom.home.ne.jp/komina/wiki/424453323030362F53544C706F7274A4F2BBC8A4A4A4BFA4A4.html
でやってるように、エラーが出たら-I/-Lオプション足して打ち込み直す方がシンプルな解答である気もする。

2008/02/12(火)BCC32周りの仕様

C++ BuilderやBCCを使っているときにも感じたのだが、どうもBorlandのC++関連Bin群の振る舞いは妙に感じるときがある。

C++ Compilerとしての性能云々以前に、コマンドラインから扱う上でライブラリ検索の仕様が妙に整合性がない。Borland(Inprise)の中の人がこんなことに気づいてないはずはないのだが、一度出してしまってる以上影響が大きすぎて変えようがないのだろう。IDEとかどっかで吸収してくれということのようだ。

ライブラリやインクルードパスについて、まずBCC32,BRCC32,ilink32のいずれでも、PATH変数で汚く指定する方法では検索しにいってくれない。コマンドラインオプションで明示するか、.cfgに書く必要がある。bcc32,ilink32はこれでよいが、BRCC用の.cfgは無いようだ。

.cfgに書くときであるが、どうも.cfgをBinの中において、Binにパスを通しても見てくれないときがある。確実なのは、コンパイル作業するときの作業ディレクトリにコピーしてやること。これなら確実に見てくれるようだ。

ただこれらは、minGWからの中からの話なので、実のところ何かPATH継承外のシェルをforkしてるだけかもしれない。ということで、ここらへんはあくまでそうかもしれないという話だけで、次記事のSTLportコンパイルの時に具体的な話を書くことにする。

2008/02/03(日)Mechanize + Hpricot恐るべし

流行りのMechanizeの実力を見たく、ちょっとプログラミング。Yahooオークションにログインして、マイオークションから取引ナビの履歴を取得してローカルに保存するプログラム。コメント付きで90行でかけた。恐ろしい。全然例外処理してないけど。

さてMechanizeに関して、どうもセレクタの仕様がよく分からない。Hpricotを取り込んでいる以上XPathやCSSセレクタが使えるはずなのだが…… バージョンが絡むからなあ。結局linksで全部返させたあとの処理は、select{} 使った方がわかりやすい感じ。安全確実。