Home

日記
BkASPilからPOPFileに移行した (13:51)Edit

スパムフィルターとして、BkASPil for Becky!2(http://b2antispam.s33.xrea.com/)をしばらく使っていたんだけど、仕事で頻繁にWindowsを落として(ブルースクリーン)いたら、そのたびに確実にBecky!が起動しなくなる原因がBkASPilにある(データファイルが一度壊れると致命的エラーになって起動しないっぽい)ことに気付き、しょうがないんでほかのスパムフィルターに移行することにした。で、ちょうどそこここで話題になっていたPOPFilehttp://popfile.sourceforge.net/)を使ってみることにした。

ちなみにBkASPilは、インターネット上に公開されているスパム送信元アドレスブラックリストを使ってスパムを判別しつつ、またユーザー宛に来たスパムを簡単にブラックリストに登録することが出来る機能を用意することで、ブラックリストの鮮度を保つ仕組みになっている。結構大きなDBにネットワーク越しにアクセスするせいか、起動が重いという欠点があったけれども、スパム判別性能は結構良かった。特に海外スパム系の判別に強い。反面、国内スパムの判別にはちょっと弱いかも。

で、POPFileの方はスパムフィルターとしてはもはや定番になりつつある、ベイジアン理論を使ったソフト。ベイジアン理論ってのは、過去の統計から未来を予測するという、至極まっとうな理屈をコンピュータ上に載っけるための理論、だったはず(うろ覚え&確認なし)。

スパムフィルターなんかで使う場合は、メールカテゴライズ(簡単にはスパムかスパムでないか)を人手によって行いつつ、そのメール中にどういう単語が含まれていたかを蓄積学習していき、その蓄積された情報を使って、新しいメールに含まれる単語情報から、そのメールがどのようにカテゴライズされるべきかを推測する、といった感じで使われる。

って仕組みなんで、別にスパムを判別するためだけにしか使えないわけではない。「文章中に含まれる単語(文章の構成要素)から、その文章をカテゴライズする」ことが可能なんで、汎用的なメール分類のためにも使える。というか、私の場合はPOPFileをスパムフィルターというよりは、スパムも判別してくれるメール分類ツールとして使っている。POPFileを使い始めてからは、今までBecky!のフィルタリングマネージャでいろいろ分類していたのをすっぱりやめて、すべてPOPFileに分類してもらうようにしてしまった(POPFileで分類された結果を、さらにフィルタリングマネージャで分類したりはしているけど)。

POPFileのインストールは、インストールマニュアル(http://popfile.sourceforge.net/manual/jp/manual.html)が充実しているんで、言うとおりに作業するだけで簡単に使えるだろう。ただ、結構仕組みはややこしいんで、使いこなすにはそれなりの知識が必要かも。

POPFileは、POP(メール受信プロトコル)のプロキシーサーバーとして自分のPC上で動作し、メールクライアントはまずPOPFileにアクセスし、POPFileが実際のメールサーバーにアクセスしてメールを取得し、妥当なフィルタリング(=加工)を行ってから、メールクライアントにメールを渡す、といった動作をするようになる。だから、メールクライアントの種類は選ばない。ただ、POPFile側の設定とメールクライアント側の設定の両方が必要。POPFileの設定はWebブラウザで出来るようになっている。単に動かすだけならばマニュアル通りにやればいいけど、理解して設定するにはそれなりの知識が必要だろう。

ちなみにベイジアンフィルターの説明のところで書いたように、この仕組みでは基本的に「まずユーザーがメールを手動で判別し、それによって学習した成果を利用して、新しいメールを自動的に分類する」ということになるんで、使い始めてしばらくの間は積極的にユーザーが判別情報を学習させる必要がある。作業としては、Webブラウザにメールのタイトル一覧が表示されるんで、それぞれのメールの種別をドロップダウンリストから選択していけばいい。

学習データが出来ると、POPFileはそれを元に自動判別を試みるようになる。けれど、最初のうちは情報が少ないんで結構間違える。間違っているものは正しい判別に修正して学習させると、次からは判別の精度が上がる。それを繰り返していくうちに、ほぼ自動的に正しい判別をしてくれるようになっていく。

POPFileでは、判別の種類は自由に設定できる。一番簡単な種類の設定としては、「スパム」「スパム以外」だろうけど、せっかく「あいまいっぽい」判別を行ってくれる仕組みがあるんだから、自分で便利なようにいろいろ種類を設定してしまったほうが楽しい。ポイントとしては、

  • 文字列一致などで確実に判別できるものは、POPFileで判別させる必要がない(メーラーの標準機能で判別できるだろう)
  • 単語要素があまりにも似通っていそうな分類は、POPFileは不得意そうなので、実用的にならないかも(やってみたら結構いけるかもしれないけど)
  • 学習によって精度を高めていく仕組みなんで、後から判別種類を大幅に変えてしまったりしたら、学習のやり直しになってしまう。ある程度長いスパンで使えるような分類にした方がいいかも
  • ベイジアンフィルターは結構負荷が高い処理らしいんで、あんまり無茶な数の分類にはしない方がいい(でも10個くらいなら平気そうだ)

ちなみに私は、「business」「personal」+[「admin」]+「commercial」「ml」「spam」「virus」+[「other」]+という分類で使ってみている。対象のメールアカウントは、私用・仕事あわせた全てのアカウント5個分。この分け方を使っていてうれしいのは、スパムとウイルスを判別してくれることと、正規の広告系メールをうまく分類してくれること。あと、仕事アドレスに来た私用メールとか、私用アドレスに来た仕事メールを分類してくれることも。このあたりが、通常の文字列一致系分類ではうまくいかなかったところ。

ただ残念なのは、POPFileは現時点ではAPOPには対応していないことか。せっかくうちのサーバーをAPOPサーバーにしたのにな。

Published At2003-12-02 00:00Updated At2003-12-02 00:00

日記
AH-N401Cのアンテナが折れた (13:51)Edit

2004/1/14

ああそういえば書き忘れていた。可動アンテナが折れた場合、根本の根本から完全に外してしまわないと、内蔵アンテナに切り替わってくれないので感度が悪くなる。しばらく気付かずに可動アンテナの根っこだけつけて使っていたところ、ものすごく感度が悪かったんだけど、それを引っこ抜いたら感度がまともになった。可動アンテナのもろさを考えると、普段は外して使っていて、どうしてもつけた方がいいときだけつけてみる、ってくらいの使い方の方がいいのかも。


2003/12/4

CF AirH"端末のAH-N401Cを使っているんだけど、これの可動アンテナって結構もろい。

今までも何度か外れてなくなりかけては、なんとか見つけてはめ直していたんだけど、2週間くらい前についになくしてしまった。でもまあ付け根の部分が残っていたんで、そこにほどよそうな長さの皮膜針金を結びつけてしばらく使っていた。ら、今度はその針金ごと付け根の部分もなくなってしまった。

補修部品で取り寄せたら3000円くらいするらしい。この壊れやすさで3000円はちょっときついかなー。

とか思いつつ、カタログページ(http://www.necinfrontia.co.jp/products/cf/ah_n401c.htm)を見ていたら、この可動アンテナって基本的には感度を上げるための補助アンテナって位置づけなんだね。可動アンテナがなくなっても、一応内蔵アンテナで使える(というか、そういう使い方も公式)みたいだ。

結構感度が落ちてはいるんだけど、でも日常使いではそれほど不便でもない(見た目の感度は落ちている(LEDの色が頻繁に赤になる)んだけど、それなりに通信は出来ている)んで、ひとまずこのまま使い続けよう。

Published At2003-12-04 00:00Updated At2003-12-04 00:00

日記
VAIOノートZ1を買うかどうか (13:51)Edit

最近仕事で私物ノートPCをメインにずっと使っていて(持ち歩く必要あり&PCカードスロット必須)、しかもその仕事が少なくともあと3ヶ月は続くことになっているんで、会社でノートPCを買ってもいいということになった。

けれども、ノートPCを2台持ち歩く気にはなれないんで、どうせ買うならば現在使っているSRX7の替わりに、普段私用でも使いつつ、会社ではメインマシンとして使えるようなものを買おうかと考えた。

が、結構選択が難しい。というのは、現在のSRX7(Pentium3-800MHz)+大容量バッテリ+RAM 384M+専用マルチドライブには特に不満がないから、日常使いもするとなると、現在の環境よりも落ちるようなものならば欲しくないし、環境移行の手間を考えたらかなり上回るくらいのスペックは欲しい。

で、ひとまず現在候補として残っているのはVAIOノートZ1PCG-Z1V/P)を1GバイトRAMに増設したパターン。これならば、多少大きく重くはなる(俺の場合はSRX7+大容量バッテリなんで、もともと2kgくらいある)点を除いては、スペック的に見劣りする部分はなさそうだし、画面が大きくなる(1400×1050)という利点は移行の手間分くらいカバーできそうだ。でも会社ノートとしてVAIOノートZ1ってのは今一歩踏み切れないところがある。

ThinkPadの高解像度モバイルPCがもうちょっと安ければいいんだけど、今どきプログラム開発系仕事マシンに40万円超のものなんて買えない(っつーか予算的に通らない)だろうしなー。DellのBTOノート(500mベースの奴)もそこそこではあるんだけど、重さとバッテリの持ちがいまいちなんだよなー。

XGAマシンで納得がいくものが見あたればもうちょっと選択肢が増えるんだけど、現在のSRX7を総合的に上回るものが見あたらない(持ち歩ける(家でも会社でも使う)メインマシンとしてのノートPCとして)。このままいくとVAIOノートZ1にいってしまいそうだけど、微妙に後悔しそうな気もする。一応会社マシンだから、個人データの管理も面倒くさくなるだろうしなー。


飯を食いがてら、VAIOノートZ1を見てきたんだけど、思ったよりもでかくて重いなー。これを常時持ち歩くのは結構つらいかも。これだったら、ThinkPadの小さい奴をコアとして買って、会社ではそれをドックとかで増設して使う、なんて方がいいかもなー。うーん。


ThinkPad T41って、今IBMのオンラインショップで買うと割引が効いて、結構安くなるんだな。VAIOノートZ1と値段が大して変わらないならば、こっちの方がいいかなー。メモリも2Gまで積めるし。ただこっちもA4 2kgを持ち歩くことが出来るかどうかが微妙だ。

Published At2003-12-04 00:00Updated At2003-12-04 00:00

日記
2003年最終戦 (13:50)Edit

土曜日は草野球の今期最終戦。

雨っぽい雰囲気だったんで多分ダメだと思っていたら、何とか天気がもってしまい(←いかにもやる気がない)、しょうがないんで根性出して(休日にしては)早く起きて、電車で二子玉川へ。すべてとりまとめていた監督が、朝っぱらから意味不明の病気(?)でダウンして連絡が取れなくなってしまいつつも、何とか現地で集合し、二人ばかり人数が足りなかったのを相手チームから借りて試合開始。

ここ二ヶ月くらいはばたばたしていて、運動どころか日常生活すらいっぱいいっぱいだったんで、俺的には目立たない面子としてそっとすごそうと思っていたんだけど、何せ面子が足りない状態だったんでそういうわけにもいかない。出だしから三塁を守ってぽろぽろとエラーしたり悪送球したりしつつ、大量に点を取られる。が、相手もなかなかいい感じでダメだったので、こっちも点を取り返し、泥仕合っぽい試合展開で中盤へ。

んでもって、途中からうちのチームの次期エース候補にピッチャーが代わった(ついでに俺はキャッチャーに代わった)ところ、なかなかいいピッチングを見せてくれた。もともと球自体は悪くないんだけど、投手経験がないんで実戦で結果が出ない感じだったのが、ようやくマウンド慣れしてくれたか。まだ若くて体力があるんで、安定してくれると投手力の計算がとても楽になる。ついでに俺もずいぶんキャッチャーに慣れたな。フライは捕れないけど、ファールチップとかショートバウンドのキャッチングがずいぶん良くなった気がする。

で、後半比較的締まった試合になりつつも、じわじわ追い上げる展開になっていたんだけど、相手チームも球の速いピッチャーに代わってしまい、こちらの勢いもかなり減衰。それでも一応食い下がったんだけど、最終回裏に3点差まで追いついたところで終了。14対11だったかな。

7回まで終わってもまだグラウンドの方の時間が40分ほど残っていたんで、しきり直してもう一試合。今度は先発。全然投げていなかったけれども、相変わらずストレートは使えるな。1回は三者凡退。俺もコントロールが良くなったもんだ。高校の頃なんて、ストライクゾーンに入れることすらままならなかったのに。ただ、さすがに練習不足のせいで遅い球のコントロールがぼろぼろ。カーブの握りで曲げずに抜くだけの球なんだけど、手離れがコントロールできずに調整しても全然思ったところにいかない。というのではまって2回に3失点。

そこで時間が尽きたんで、その回で最終回ということになり、残すはうちのチームの2回裏の攻撃。1点差を追う展開で2アウトから連打が出て1点を返して同点に追いつき、さらに走者2、3塁という状態。そこで、1塁後方へのフライがヒットになってさよなら。一応最終戦は勝利を収めた(ような気がする)ってことで。

Published At2003-12-07 00:00Updated At2003-12-07 00:00

日記
Re: 同好の士だけが見てくれるWebサイト from ただのにっき (13:51)Edit

>>最初のアクセスでセッションIDを発行して、クッキーに保存。そのIDのアクセス数(のようなもの。ポイントみたいな数値)をサーバに保存しておく。で、ポイントがある程度たまった人にだけ、新しい記事や人気のある記事を読ませてあげたり、インタラクティブなコンテンツへのアクセスを許可する。知合いにはあらかじめ、多めにポイントをあげてもいいだろう。

これって、HNSがやっているRURIコード(ランダムCookie)を使ったアクセス制限を、もっとユーザーが細かくコントロールできるようにしようって感じだよな。というか、俺がIch(仮)とかWikiLikeとかでずっとやろうとしていた「ユーザーを匿名のままに認証する」仕組みの利用方法の一つだ。

俺がこの技術をなんとかものにしようと努力している裏には、「ユーザー登録(=管理)なしで気軽に実現できるアクセス権限の制御を、一般のWebサイトに適用できるようにする」という目的がある。

昔この手の話題(儀礼的無関心)が流行ったときに、今回と同じような(技術論慣習儀礼)論の対立っぽい)展開になっていったのを見て、「技術的な問題は技術で解決できるだろう」と思って、その実現方法を考えてみたのがこのアプローチ(その頃のログがどこかにあるはずだけど、探すのが面倒)。

ただこのアプローチって、認証するところは簡単なんだけど、その設定回りが難しい。具体的には、「(技術的な知識のない)ユーザーが自由にアクセス制限を設定できるユーザーインターフェース(=制御の仕組み)」を考えるのが非常に難しい。特にCookieの挙動なんてのは一般ユーザーに理解してもらうのが結構面倒だし。

その辺りを何とかするために、

をうまく連携させることによって、使いやすい仕組みを作れないかなーといろいろ試している(ここでも使っている)んだけど、なかなかいいバランスが見つからない。しかも最近そういうネタで遊んでいる時間が取れないし。

たださん案の「ポイント制度」を使った管理ってのは考えたことがなかった(けれども、よく考えたら一昔前に女子小中高生の間で流行ったステップアップ機能付き掲示板なんかで、似たような考え方はすでに採用されていたか。あれってユーザーをどうやって特定していたのかな?)んで、それとの連携も考えてみよう。こういう正面から攻める(ID→権限)のではなく、搦め手から攻める(ID→ポイント(数値)→権限)アプローチって、いったん嵌ると全然思いつけなくなっちゃうんだよな。

と書いたところで今日も時間切れ。

Published At2003-12-09 00:00Updated At2003-12-09 00:00

日記
Suicaが壊れた (13:51)Edit

ソニーとドコモ合弁会社〜FeliCaを携帯に from ZDNet」で書いたように、壊れかけのまま使っていたSuicaがついに壊れた。今朝はふつうに使えていたんだけど、帰りに使おうとしたら自動改札がエラーを返す。駅員に渡したら、「ICが壊れているんで、最寄り駅で交換してもらって」とのこと。で、最寄り駅についてもう一度自動改札で試してみたら、今度はまったく反応しなくなっていた。駅員にその旨を伝えたところ、簡単な書類を書かされ、「翌日朝6時には渡せる」と、引換券みたいなものと壊れたSuicaを返された。特に身分証とかはいらないらしい。引き渡しの時にはいるのかな? 以下次号(明日)。


というわけで、新しいSuicaを受け取ってきましたよ。引換券は改札脇の窓口でもらったんだけど、引き替え自体はふつうの緑の窓口(っていうんだっけ? 切符とか定期とかを売っている窓口)の方で。引換券と壊れたSuicaを渡したところ、端末に16桁くらいのコードを打ち込んだら再発行されていた。申し込んでから1日必要だってのは、券の発行処理自体ではなく、その事前承認処理みたいなのに必要なのかな? ひとまず定期券としては使えたけど、チャージしていた金額がちゃんと入っているかは未確認。今日帰りに忘れていなかったら確認しておこう。

Published At2003-12-10 00:00Updated At2003-12-10 00:00

日記
TrackBackスパム対策にFOAFで認証 (13:51)Edit

フレンドスターネタのコメント欄(http://mylog.ishinao.net/id/684#c613)で思いついたネタをもうちょっとふくらませてまとめておく。

個人Webサイトは必ずFOAFデータを用意する。FOAFデータには必ずfoaf:homepage要素を用意し、人をWebサイトURLを使って特定できるようにする。また、サイト上の任意のURLから必ずそのサイトオーナーのFOAFデータのURLを解決できるような、何らかの仕組みを用意しておく(ヘッダにFOAF URLを埋め込むとか)。

TrackBack受信制限として、

FOAFDepth = 3

などのように記述する。

TrackBackを受信したら、そのURL要素からそのサイトオーナーのFOAFを解決する。続いて、自サイトのFOAFのfoaf:knowsrdfs:seeAlsoを使って、知り合いのFOAFをたどっていく。これによって、自分から始まって3階層以内のFOAF情報に、TrackBack送信元サイトオーナーが存在するかどうかを確認する。指定階層以内にFOAF情報が見つからないサイトからのTrackBackは、無条件で弾くなり別途承認処理が必要にするなり、まあ適当に。

という仕組みを、無断リンクの制御なんかに使ってもいい。Referer URLからFOAFを解決して、n階層以内のFOAF情報にReferer URLのサイトオーナーが見つからなかったら、HTTP 403にしちゃうとか。

#ああそういえば、最近blogmapのランキングによくtDiaryのリンク元経由RefererスパムURLが現れるんだよなー。あれって結構手動で弾くのが面倒だ。

って、相変わらず「重装備http://sho.tdiary.net/20031209.html#p03)」な方向のネタばかり考えてしまうのでした。

Published At2003-12-10 00:00Updated At2003-12-10 00:00

日記
黄泉がえり (13:51)Edit

死んだ人が蘇ってくるというホラーっぽい設定を使った、SFファンタジー。もっとミステリー(謎解き)っぽい話だと思っていたら、泣ける系の話だったとは、やられたぜ(←何を?)。これはこれでとても面白かったんだけど、もしも“彼”の話をほかの部分と同じくらいの分量書き込んでいたら、アルジャーノンとか並の傑作になっていたんじゃないか、とか思ったり。

Published At2003-12-10 00:00Updated At2003-12-10 00:00

日記
光と影の誘惑 (13:51)Edit

まあ良くできたミステリー短編(中編?)集。貫井徳郎らしい話だったけど、一つ間違えるとワンパターンに堕しかねないくらい、貫井徳郎っぽいネタ。「多分貫井徳郎だったら、この設定ならばこのオチに違いない」という予想がすごく当たった。

Published At2003-12-11 00:00Updated At2003-12-11 00:00

日記
迷宮遡行 (13:50)Edit

貫井徳郎らしい深みがあんまりなく、火曜サスペンス劇場的な、比較的薄いドラマチックな謎を追って動き続ける感じのストーリー。面白くなかったわけではないけれど、なんか俺の求める貫井徳郎とはちょっと違った。

Published At2003-12-16 00:00Updated At2003-12-16 00:00