PHPで実装されたベイズフィルタ

PHPで実装されたベイズフィルタを見かけました。
http://www.atomicmpc.com.au/forums.asp?s=2&c=10&t=4466
ライセンスはGPLライセンスです。

ソースコードを見ると当然ですが半角スペースでトークンに分解しているので日本語では使えません。しかし、mecabなどを使用して使えるようにするのはそう難しくありません。もともとベイズフィルタは難しいアルゴリズムではないので読むと直ぐに理解できると思います。PHPで利用できる形態素解析モジュールは幾つかあります。

しばらく前には毎日数百のコメントスパムが送信されてきていました。b2evolutionデフォルト設定でコメントのモデレートが必須化されてから時間が経過してきたので今はかなり減ってきています。必要性は減ってきてはいますが時間があったら改善したい所です。

日本仕様のメールアドレス…

言いたいことのほとんどが書いてある素晴らしいブログ記事です。

ドコモもauもいいかげんにメールアドレス設定の仕様を直せ。
http://neta.ywcafe.net/000799.html

ドコモもauもいいかげんにメールアドレス設定の仕様を直せ。の続きと補足
http://neta.ywcafe.net/000803.html

AuはMNPを機会にDoCoMoの独自仕様メールアドレスと同じにしたと記憶しています。いい加減にしてほしい、と強く感じたのでよく覚えています。KDDIに至ってはDion等でも他のメールサーバやクライアントで受信できないメールアドレスを作成できるようにしているようです。まさに嘘を隠すためにまた嘘をついている状態です… しばらくすれば事態は良くなると思っていたのですが悪くなっているようです…

ルールを守りたくないなら中国のように独自TLDでも作って(そういった計画があったと聞いていますがその後どうなったかは不明)その中でやれば良いでしょう。ユニバーサルに使えない自爆メールアドレスを作ってしまうのはエンドユーザの問題ではなく、サービス提供者の姿勢の問題だと思います。

いくら技術が分からない人間でも「他のキャリアの電話をかけようとした時に電話できなかったら困りますよね?同じよう他のメールサーバ宛にメール送信しようとしたときにメールが送信ができなかったら困りますよね?」といった単純な議論も通用し無いのでしょうか? すでに作ってしまったメールアドレスを強制的に変えるのは難しくても、新しいアドレスは標準に則ったアドレスのみ許可するのは簡単です…

RFCが絶対か、というとRFC通りに作ると動かなくなるものもあるのでそこは適当に対処しなければならない場合もあります。しかし、わざわざ動かなくなる(メールの送受信に問題発生する可能性がある)メールアドレスを作れるようにするのは責任ある企業として適当な対応とは言えないと思います。

公開し忘れたブログを公開

ブログアプリを更新したのでダッシュボート機能が使えるようになりました。

最近のコメント、未公開のブログ、最近編集したブログが参照できるようになりました。かなり公開し忘れていたブログがありました。

いくつは削除して、いくつかは記録の為に公開状態にしました。2,3年前のブログも含まれているので多少場違い(時期違い)な感じがするかと思います。

一つ困った事は以前のブログではタイトルをクリックすると参考にしたURLへリンクされていたのですが、現在は各ブログのページが表示されます。近いうちにテンプレートを修正したいと思います。

Rails 1.2.6 リリース

1.2.4などで修正を試みたセキュリティ上の問題が完全ではなかったようです。
セッションIDの固定化が可能な脆弱性が(こんどは完全に?)修正されたようです。

The rails core team has released ruby on rails 1.2.6 to address a bug in the fix for session fixation attacks (CVE-2007-5380). The CVE Identifier for this new issue is CVE-2007-6077.

PHPの場合、Session Adoptionに脆弱(普通にアプリを作るとSession Fixationにも脆弱なる設定がついこの間までデフォルト…)ですがいつ直すつもりなんでしょう… パッチはあるのですけどね…

ブログアプリを更新

ちょっと試してみたらb2evlution 2.1.0 betaでも結構まともに動作するようなので1.10.3から2.1.0 betaにしてみました。

B2Evolution
http://b2evolution.net/

前の設定ファイル
conf/_basic_conf.php
をコピーして、ロケールファイル
conf/_locales.php
にutf-8を設定し、インストール用スクリプトを実行しただけです。
# この環境は全ての文字エンコーディングをUTF-8に統一しています。

スキンの互換性は無いので作り直す必要があります。

あまりテストしていないので問題があるかも知れません。問題があったら教えてください。

追記:
メール送信には以前にあった問題があったのですが、仮想サーバ単位で設定していたmbstring.languageとmbstring.func_overload設定を削除するとUTF-8形式で正しくメール送信できるようになりました。これは前の環境でも同じ設定を行うとメール送信に問題がなくなるのかも知れません。

RSSのURLが変わったような気がします。Atom, RSS1でRSSで購読されている方はURLを変更してください。

リンクが正しく表示されない状態をかなり長く放置していたのですがバージョンアップで直ったようです。日本語テキスト中のWikiへのリンクなども正しく表示できるようです。

ちなみにこの環境は

  • Apache 2.0.61
  • PHP 5.2.5

です。

前のバージョンのb2evolutionはあまりお勧めできるものでは無かったですが、2.1.0は日本語環境でもかなりそのまま使えるような感じです。