Antispamツールをリリースしているとspamの酷さがそのダウンロード数の多少によってわかるというのが皮肉なところですね。
さて、先日のDNSBLのみなおし中にてお試し中のDNSBLの設定については結構成績がよいようなので、早めにjp6をリリースしたくなってきました。Kimitakeさんのところでツッコまれてしまった部分(NP_Blacklist の大文字・小文字判定)の修正もこのリリースに含めるつもりです。
今週末を目処にリリースしますので今しばらくお待ちください。でも、すぐにでも効果が体感してみたい人のために改造のポイントを書いておきます。
最近またトラックバックスパムが多くなってきたので、「プラグイン入れてみました!」みたいなspamでないトラックバックが来ると本当に心が和むような状況です。
でも、僕も決して指をくわえて静観しているわけではなく、常にいろいろな対策を施すことによって事が大きくなる前に難を逃れているわけですが、これを仕組みとしてある程度Nucleusのユーザの方に還元できないかと考えています。
そのひとつがNP_Blacklist jpなわけですが、その防御力をさらに高めるべく、どのようなDNSBLを参照させたら効果的なのかということをいろいろと調査してみました。
リリースの説明文の書き方が悪くていろいろ混乱させてしまったようなのですが、2.0.3jp1から短縮URLでトラックバックを受信することができるようになっています。
ただ、どのサーバでも確実に動くという確認が取れていないので、<%TrackBack(url)%>のURLはそのままでは変更されません*1。このため、表示上のトラックバックURLを変更する方法として<%TrackBack(url)%>を<%sitevar(url)%>item/<%itemid%>.trackbackもしくは<%itemlink%>.trackbackとするようにとのお願いを書いていたのですが、それだけだと<%TrackBack(code)%>の中に表示されるトラックバックURLが従来の表記のままになってしまうことに気づきました。
<%TrackBack(code)%>に記載されているトラックバックURLはAuto Discovery用のものなので、長くても問題がないはずですが、こちらも同じ短縮URLに統一したいという人のために改造のポイントを書いておきます。
この改造の内容はNP_ShowBlogs v2.5に取り込まれています。
このページで紹介している改造を施すよりもNP_ShowBlogs最新版を使うことを強く推奨します。
(06/07/30 23:10追記)
うちもエントリの一覧表示にNP_ShowBlogs Ver2.004を使っています。ページング指定は「2」のphpbb方式にしていたのですがちょっと見にくいような気がしたので、このページングをGoogleライクに改造してみました。
ソースコードを見るとphpbb方式って結構複雑な条件式でできていますね。
Googleライクなページングの方がシンプルな実装になりました。
現在リリースしているプラグインのライセンスを変更します。といっても、公開が停止になるとか、有料になるとかといったことはありませんので安心してください。
今回のライセンス変更は僕のプラグインの現状とライセンスの不整合を是正するために実施するものです。
† PEARの問題
僕のリリースしているプラグインはPEARを積極的に使っているものがいくつかあるのですが(NP_Moblogとか、NP_TypeKeyとか)、このPEARに含まれるファイル群のライセンスというのがちょっと曲者でファイルによってPHP Licenceだったり、LGPLだったり、BSD Licenceだったりとまちまちなのです。
しかしながら、これらのライセンスにGPLと矛盾しているものがあるという認識が僕になかったので、これらのどのライセンスが適用されていても自分のプラグインとリンクすることができ、かつ、再配布可能であるとの解釈のもとにこれまでプラグインをリリースしてきました。
NP_Paintの動作確認報告で教えていただいたのですが、動的パレットPalette-Selfyの配布元がなくなってしまったようです。ということで、次回リリース分よりはPalette-Selfyのサポートを標準からはずすことを検討しています。
† 2006/06/11追記
おそらくNP_TrackBack v2.x系でスキンやテンプレートに書くことができるタグをまとめてあるページはなかった*1と思うので、ちょっとまとめておきます。
※詳細な使い方についてはplugins:trackback [Nucleus CMS Japan Wiki]にまとまっています。
Nucleusのエディタにボタンを追加する方法については、これまでにまみおさんや、ネケトさんが紹介されている(参考を参照)のですが、紹介されているとおりに改造した場合Firefoxではうまく動作しません。
最近、僕のブラウザはすっかりFirefoxがデフォルトになっているのでこのjavascriptをFirefox対応に書き直してみたいと思います。Javascriptはちょっと苦手なんですががんばってみます。
あるNucleusサイトでblogpetを導入したいと相談されたので、早速blogpetのヘルプを調べてみると「BlogPetに対応しているBlogはどれですか?」の項目にNucleusは「機能は全て使えると思われるが、確認できていないもの」というステータスで掲載されていました。
この意味深なステータスの謎を解くために早速テストをしてみると、テスト投稿に失敗したという表示が。xmlrpc(metaWeblog.newPost)経由なのでトラブルなく接続されるだろうと思っていたのですが、僕の考えが甘かったようです。
NP_Trackbackが重いといわれてしまったので、トラックバックが格納されているplugin_tbテーブルをちょっと調べてみたら、驚くべきことにまったくインデックスが張られていませんでした。
例えば、トップページなんかでTrackBack(nn)のようにエントリごとにトラックバックの件数表示なんかをやってしまったりすると、この数字一つ一つを計算するためにMySQLは一回一回テーブルをフルスキャンをするというなんとも恐ろしい状況になっていたわけです。これはトラックバックをたくさん抱えている人にとっては大変なサーバの負荷になります。
† ということでインデックスを張るには
おそらく単にインデックスを張ればすむ問題だと思うので、コンソールやphpMyAdminを通じてSQLが直に打てる場合には以下のクエリを実行することでこの状況を回避することができます。
インデックス作成SQL
† SQLを打つのが面倒な場合には、プラグインのバージョンアップで
これだけではあまりにも不親切なので、SQLが直に打てない人のためにフォーラムやうちのサイトで公開中のNP_Trackbackをバージョンアップしておきました。ファイル上書きの後、プラグインを一旦アンインストールし、再度インストールすることでインデックスの生成が行われるようになっています。NP_Trackback 2.01jpを使っている方にはバージョンアップを強くお勧めします。