2007-02-23(金) [長年日記]
■ tDiary: もりもりとspam対策
2.2のリリースに向けて、今月はspam対策関連のcommitをもりもり実行。ひととおりのフィルタは実装できたかな。
fragment入りのリンク元をspam認定
リンク元(referer)に、(通常のブラウザからは送られないはずの)「#」が含まれている場合はspamとみなす。標準のspamフィルタで強制的に適用。最近のreferer spamはたいていこれで防げている。なんでspam業者がわざわざ「#」を入れてくるのかわからないけど、ありがたいことだ(感謝してどうする)。
hide-mail-fieldプラグイン
夏に実装した、E-mail欄を隠すプラグイン。JavaScriptではなく、CSSを使うように実装しなおした。いっぽう、モバイルモードではtype=hiddenにして誤入力を防ぐように配慮。毎日50〜100通くらい来るツッコミspamは、ほとんどがこれで防げている。
spamlinkcheckフィルタ
1年半前に実装し、contribに入れてあった、リンクのないTrackBackをはじくプラグイン。標準のspamフィルタの設定画面でON/OFFできるようにして、coreに移動。(現時点では)たいていのTrackBack spamはこれで弾ける。
spamakismetフィルタ
先月実装した、Akismetのサービスを使うフィルタ。上のhide-mail-fieldプラグインをすり抜けてきた数通のツッコミspamはすべてこれで捕獲できており、実績は少ないながらも今のところ誤認識はない。
同様に先月入れてみた長いドメイン名spamフィルタは、ビミョーな感じなので今回は見送り。
このほかに、tdiary.confの初心者向けサンプル「tdiary.conf.beginner」には、spamフィルタのオススメ設定を書いてあるので、これを使って最初のセットアップをすれば、それだけでspamに強い日記が構築できる……はず。こっちはもうちょっとチューニングしたいところだが。
2007-02-22(木) [長年日記]
■ アニメ版『ロケットガール』始まる
アニメ版のロケットガールが、WOWOWのノンスクランブルで始まったので観てみた。この時間ならリアルタイムに見られるねぃ。
まず言いたいのだが、SSA基地にある30mクラスとおぼしき大型のパラボラアンテナ、副鏡支持が4本なのはいかがなものか。あれは3本こそが美しいというものですぞ。どうせなら、内之浦の34mをモデルにしてくれればいいのに*1。
他にも、汚しが足らずにFlashアニメみたいにのっぺりしちゃったCGとか、背景から浮くほど色数が少ない絵作りとか、やっぱ深夜アニメは低予算だなぁ……と、しみじみ思う*2。まぁ、しゃあないか。
とは言うものの、予算に関係ない部分でのこだわりは多く、打ち上げシーケンスの雰囲気とか、声優の演技とかはけっこういい感じ。あと、ゆかりが同級生と比べて本当にチビに描かれていて笑った。あれが一番リアルだ。
とりあえず次週以降も観る。
女子高生、リフトオフ!―ロケットガール〈1〉 (富士見ファンタジア文庫)
富士見書房
¥1
2007-02-21(水) [長年日記]
■ 高速HTMLパーサー「Hpricot」を使ってみる
2000個以上ある手作りHTMLファイルの一部分を全自動で書き換える、という楽し〜いお仕事(棒読み)をもらったので、エンジンがCで書かれていて速いと評判のHpricotを使ってみることにした。
……その前に、(いい加減逃げてばかりもいられないので)とうとうRubygemsを導入したわけだが、そのへんは割愛。$HOME配下に入れてあるruby 1.8.5-p12の環境に入れようとしたのに、コマンドファイルのshebangが「#!/usr/bin/env ruby」のままだったというのが唯一のハマりポイント。
Rubygemsさえあれば、インストールは簡単:
% gem install hpricot
ライブラリの使い方はHpricot Showcase-Jaを参考にした。つっても、狙ったdiv要素を探して別の何かに置き換える、なんてコードは、この程度だ:
require 'rubygems' require 'hpricot' doc = open( ARGV.shift ){|f| Hpricot( f ) } elem = doc / 'div.foo' # この「/」メソッドがキモい elem.remove elem.before( '<!-- bar -->' ) print doc.to_html
実は、Elements#beforeやafterの挙動がおかしくて……というか親要素とのからみでおれが期待する動作にならないので……、wrapメソッドを使ってゴミ要素を挿入したのち、別途正規表現を使って変換するという美しくないコードになっちゃったけどまぁいいや。
評判どおりかなり速くて、2000個のHTMLファイルを処理するのに、数分で済んだ。年中メモリ不足であえいでいるウチのcoLinux環境にしてはかなりの速度である。ValidでないHTMLでもエラー吐いて死んだりせず、それどころか正しい要素を補ってくれたりするのは良し悪しだが、今回はOKとした。
◆ 中川 [> キモい crazy とか insane で感じが出てるんじゃないかな。]
◆ ただただし [>crazy とか insane 人物に対してならいいけど、ライブラリのAPIに対してはちょっと雰囲気違くないですか..]
◆ 中川 [> キモい weird がいいかも。odd だとちと固い感じかな。 まあ、「キモい」という語感はなくなるけど、単に ..]
◆ ただただし [あー、意味的にはまさに「does not fit」ですねぇ。weirdもそれっぽい。 >crazy は人物じゃない..]
◆ 本当にただのとおりすがり [すいません。 日本語でキモイっていわれる側の人種(変態ヲタクなど)によってとは肯定的な意味にとるのかと思っていました..]
◆ ただただし [「キモい」と発言する側とされる側、それぞれに肯定的・否定的立場があって、マトリックスにすると4通りの状況があるという..]
◆ まちゅ [hide-mail-fieldプラグインに対応するフィルタが必要ではないでしょうか? 勘違いだったらすみません。]
◆ ただただし [ヘルプの方に、メールアドレスでフィルタをかけるように説明してあります: http://docs.tdiary.org..]