2007-01-31(水) [長年日記]
■ 嘘つき新横浜
新横浜がでっかい駅ビルを建ててる影響か、通勤経路が頻繁に変わる。今は地下道にいったん下りてから交差点をくぐるのが安全で早い。
ところで写真は、その地下道に掲げてある方向案内なんだが、これが大嘘なんである。市営地下鉄を降りて横浜線に乗り換えようという人は、この看板を見て右に曲がるだろうが、実は横浜線の改札は新幹線と同じ左方向に行くほうが断然近い。右に行くと駅の外れに放り出されてしまうのだ。
たぶん、混雑を避けるための方便なんだろうけど、信じた人はかなりバカを見るよなぁ。
■ 左利き用財布を買ったよ
思えば、新しい財布を買おうと決心したのは昨年4月のことであった。10ヶ月近くしないと実現しない「決心」ってどうよ。
実は昨年のクリスマスプレゼントにかみさんが買ってくれることになったのだが、発注先のクラフトさらがオーダーメイドなので、モノが届くまでまるまる一ヶ月以上かかったというわけ。
オーダーメイドといっても、型とオプションから選択するセミオーダーだが、オプションの組み合わせは1万通りにもなるのだから、十分だろう。もっともおれはこういうところは保守的なので、前に使っていたのとほとんど同じ、全面ヌメ革のシンプルな仕様にしたが。糸だけ強いのを使ってもらった。
前のよりひと回り大きい上に、新品の革は硬いので、しばらくは使いづらいだろうが、先代のようにいい色になる頃には、柔らかくていい感じになるだろう。そういう点も楽しみのひとつである。
2007-01-30(火) [長年日記]
■ tDiary: Akismetスパムフィルタを書いてみた(2)
昨日書いたAkismet spamフィルタだが、従来の「NGワード」によるフィルタリングと併用、双方のフィルタリング状況を比較するためにログを記録してみたところ、NGワードで排除していたspamはすべてAkismetもspam認定しているという、たいへん好成績を収めていることがわかった。もっともすべて英語spamだが。
昨日は1通だけ、日本語のTrackBackが来ていたんだけれど、残念ながらこれもAskimet的にはspamと断じられてしまった。まぁ、本文末尾にほんの申し訳程度にリンクが置いてある、本当に中身のないTBだったので、ある意味spamだと言えなくもないが……。
いずれにしても、完全に信用して、spam判定したものは問答無用で削除するのはまだ怖い。かといって、非表示モードで運用すると、1日に何十通もツッコミメールを受け取ってしまうのでたまらない。
ということで、特性が把握できるまでしばらくは、Akismetフィルタの方だけを強制的に非表示にして、通常のspamフィルタは通常通り削除するようにした。従来のNGワードフィルタの方が先に作動するので、こちらでspam扱いされたものは削除され、メールが発信されることはない。運良く(悪く?)すり抜けたものだけが、Akismetの神託にかけられる。
しばらくは普通のツッコミもspam扱いされる可能性があるけれど、あとから表示しておくので、すぐに反映されなくても気にしないで待っていてください >読者の方々
■ Windows Vista、本日世界同時発売!
という情報を、未来のおれのために残しておいた方がいいような気がする。「みごとなくらい盛り上がってなかったぞ!」と。
おれはまぁ……SP2くらいになってから買うかな。Microsoft製品はVer.3からが買い時。
2007-01-29(月) [長年日記]
■ tDiary: Akismetスパムフィルタを書いてみた
2007-01-30修正: プラグインによる設定を追加したので、少し設定方法が変わった。
半年ほど前に、メールアドレスを入力してくるツッコミをすべてspam扱いするようにして以来、ほとんどのspamを排除できるようになった。が、今日はとうとう、名前欄にメールアドレスを入力するという技を使われてしまい、1通通り抜けられてしまった。
悔しい。
悔しいので、ついにAkismetに手を出すことにした。とりあえずフィルタ部分だけ書けたので、coreのtrunkにcommit済み。CVS最新版のtDiaryでないと動かないと思われ。あとで設定用のプラグインも書く。
ちなみに、↑は表向きの理由で、本当はToDo2.2に残ったタスクに、ちょっと食指がのびるネタがなかったからなんだが。つまり逃避。
Akismetスパムフィルタの使い方
(0) tDiaryを最新版にする
少なくとも、2007-01-30作成のスナップショットか、同レベルのCVS trunkにする。core、pluginとも。
(1) Akismet API keyを取得する
個人利用向けのフリーなAPIキーを取得する。といっても読めばわかるとおり、WordPress.comのアカウントを取得するのと同義である。tDiaryのフィルタを使うためにWordPressのアカウントを取るという矛盾を楽しみたまえ。
メールによるconfirmation後、profileの編集画面に「Your API Key」という12桁の文字列が表示される。というか、英語がよくわからん人はこのへんを参照。
(2) tDiary上で設定
プラグイン選択で「akismet.rb」を有効にすると、「セキュリティ」の中に「Akismet spamフィルタ」が追加されるので、設定画面を開く。(1)で取得したkeyを入力し、フィルタを有効にする。
なお、Akismetは日本語のコメントをspam扱いしがちという噂もあるので、spamフィルタの設定画面で「spamと判定されたツッコミを非表示にする」としておき、有無を言わさずに捨てられないようにしておいた方がいいと思う。
(3) あとはspamが来るのを待つ
おれのところにはまだ来てないので、本当に動いているのかどうか不明。よって効果も不明。そもそも他のフィルタですでに十分にフィルタリングできているから、いつになったら作動するのやら……。試しに、他のフィルタを切ってみようかしらん(←本末転倒)。
(おまけ)実装の話
なんだかくだけた感じのAPIリファレンスを見ながら実装。Ruby実装がすでにあることに気づいたのは出来てからだったが。
しかし、ドキュメントには一言も「REST」の文字がないものの、APIのエンドポイントにがっちり「rest」の文字が躍ってるってことは、WordPressの中の人も、これがRESTだと思ってるんだろうなぁ。もう、完全に誤った「REST」が定着してるね、全世界的に。
■ ドメイン名の長さでspam判定してみる(2)
spamつながりで、先日の細工の続き。
Apacheのログをじっくり眺めていたら、最近の「長いドメイン名のreferer spam」には、重大な特徴が。末尾にみんな「#」がくっついているのである。なにそれ。普通にブラウザ使ってたら、絶対にこんなrefererが発生するわけがない。こいつら、自分からbotだって主張してるわけか?
だったら、これで十分だよなぁ。
# badreferer.rb require 'uri' module TDiary::Filter class BadrefererFilter < Filter def referer_filter( referer ) return (referer !~ /#/ ) end end end
◆ おでん田中 [つい先日、馬鹿を見ました。 苦情を言っても、マニュアルの回答しか返ってこなさそうだったので、苦情も言いませんでしたけ..]
◆ ただただし [それはご愁傷様です…]
◆ shun [道路標識とかもだけど、この国は「正直者にバカを見させる」システムが多すぎますね。]