Google Crisis Response(Google)
災害に関する情報源や、行方不明者情報の収集と検索を行う『パーソンファインダー』を初めとするツールの提供が行われています。

2007年1月11日 木曜日

Popularity Contest 日本語版 を導入

Filed under: プラグイン
時間:19時20分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 記事の人気度を表示する、Popularity Contest の日本語版を導入しました。

 インストールは一般的なプラグインと同じで、アップロードして有効にするだけ。記事本文の一番最後に、次のように人気度が自動的に挿入されます。

  1. <p class="akpc_pop">人気度: 20%</p>

 別の場所にしたいとか、デフォルトとは違うコードにしたい場合は、ファイルの上のほうにある変数(手元のファイルでは38行目)
$ak_show_popularity_with_post の値を1から0にします。
 プログラム上は1以外にすればいいと思いますが、次のように書かれているので一応0に。

  1. /* -- INSTALLATION --------------------- */
  2.  
  3. // Change this to "0" below if you don't want to show each post's popularity with the post content
  4.  
  5. $ak_show_popularity_with_post = 1;

 そして、挿入したいところに次のコードを入れます。ランク表示のテキストだけが出力されるので、好みのタグにすることができます。

  1. < ?php akpc_the_popularity(); ?>

 ランクはパーマリンクのクリックやトラックバックなど、さまざまなアクションの点数制によって決まります。アクションごとにどれくらい加算していくのかは、管理画面のオプション→人気度 で変更できます。
 また、ダッシュボード→人気記事一覧 から、詳細な人気記事のリストを見ることができます。

Comments (0)

2007年1月9日 火曜日

Amazon Search を試験的に設置してみました

Filed under: アフィリエイト
時間:16時49分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 このブログの左サイドバーにある画像付きの広告は、Amazon.co.jp のお任せリンクというアフィリエイトサービスによるものです。コンテンツにあわせて最適の商品が選ばれるという、非常にありがたいものです。
 こりゃいいやということで、導入してみたわけですが、どうも精度がいまいちで、「ほんとにお任せして大丈夫?」という感じ。初日はドンピシャだったんですけどねぇ・・・。

 お任せリンクとよく似たサービスに、Amazon Search というものがあります。Drk7jpさんによるものですが、実はお任せリンクよりも前からあります。ちなみに、現在はまだベータ版(ベータ3)です。
 このサービス、お任せリンクよりも精度がいいという記事を最近目にしまして、試験的に導入してみることにしました。

 精度の比較が主目的なので、お任せリンクのすぐ下に入れました。
 広告の設定は、どちらも同じにしてあります。サイズは160×600のワイド スカイスクレイパーというタイプで、商品ジャンルは書籍(多分和書+洋書。個人的には和書だけにしたい)です。

 さて、実際の精度ですが、今のところ Amazon Search の圧勝ですね。
 お任せリンクでは単なる一般向けのベストセラーのような感じ。ドラマの原作を並べられてもねぇ。たまに洋書専門になったりもしてます。
 Amazon Search ではコンピューター系が入ってくれます。去年の12月のアーカイブでは、ブロードバンドにサーバーにブログといい感じです。日本語ドメインに関する記事『日本語ドメインをクリック可能にするガイドライン』では、見事に関連するもので埋まってくれました。ちなみに、お任せリンクは一般向けベストセラーと未成年お断り物・・・。

 このまましばらく様子を見て、問題なさそうだったらお任せリンクをはずします。

Comments (0)

2007年1月7日 日曜日

Akismet 有名ハックの解説と追加ハック

Filed under: ハック,プラグイン
時間:18時16分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 Akismet de-spam view Hack と呼ばれるハック(プログラムの改造。不正アクセスではない)があります。

 WordPeress のスパムブロックプラグイン Akimet の捕獲したスパム一覧で、半角英数記号以外が含まれたスパム(以下、マルチバイトスパムと表記します)が含まれているものだけ表示するようにするというものです。

 大概のスパムは半角英数のみです。そして、多くの日本語サイトに届くスパムでないコメントやトラックバックは日本語によるものです。だったら、マルチバイトスパム以外を表示しなければすっきりするじゃないかというのが、このハックのコンセプトです。

 また、power source*さんによる、管理画面のダッシュボードにマルチバイトスパムの捕獲数を併記するハックがあります。

 今回、スパム対策の一環としてこの2つのハックを試してみました。効果抜群で、すっきりしたスパム一覧とマルチバイトスパムの捕獲数表示に喜んでおります。

 お二人への感謝と還元と自分への覚書として、この2つのハックの解説をしてみたいと思います。また、思いつきで追加ハックもしました。
 なお、ハックした WordPress のバージョンは2.04です。

Akismet de-spam view Hack

オリジナル

 ファイル /wp-content/plugins/akismet/akismet.php の267行目。

  1. $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = 'spam' ORDER BY comment_date DESC LIMIT 150");
ハック
  1. $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = 'spam' AND LENGTH(comment_content) <> CHAR_LENGTH(comment_content) ORDER BY comment_date DESC LIMIT 150");

 変更したのは、一覧に表示するデータを得る部分です。データベースサーバにスパム判定されたコメントのデータを要求しています。このハックでは、SQL の条件文(WHERE 節)にマルチバイトではないという条件を AND で加えています。

追加部分のコード
  1. AND LENGTH(comment_content) <> CHAR_LENGTH(comment_content)

 テーブル wp_comments のフィールド comment_content に格納されているコメントの本文に対し、関数 LENGTHCHAR_LENGTH の結果が一致していないというものです。LENGTH はバイト数を、CHAR_LENGTH は文字数を返します。マルチバイト文字は1文字が1バイトではないため、2つの結果は一致しません。

マルチバイトスパムの捕獲数をダッシュボードに併記するハック

Akismet ダッシュボードスクリーンショット

オリジナル

 ファイル /wp-content/plugins/akismet/akismet.php の323行目。関数 akismet_stats 付近。

  1. function akismet_stats() {
  2.     $count = get_option('akismet_spam_count');
  3.     if ( !$count )
  4.         return;
  5.     $path = plugin_basename(__FILE__);
  6.     echo '<h3>'.__('Spam').'</h3>';
  7.     echo '<p>'.sprintf(__('<a href="%1$s">Akismet</a> has protected your site from <a href="%2$s">%3$s spam comments</a>.'), 'http://akismet.com/', "edit.php?page=$path", number_format($count) ).'</p>';
  8. }
関数 akismet_stats のハック
  1. function akismet_stats() {
  2.     $count = get_option('akismet_spam_count');
  3. //  $count = ksd_spam_count();
  4.     $mbs_count = mb_spam_count();
  5.     if ( !$count )
  6.         return;
  7.     $path = plugin_basename(__FILE__);
  8.     echo '<h3>'.__('Spam').'</h3>';
  9.     echo '<p>'.sprintf(__('<a href="%1$s">Akismet</a> has protected your site from <a href="%2$s">%3$s spam comments</a>.'), 'http://akismet.com/', "edit.php?page=$path", number_format($count) ).'</p>';
  10.     if ( $mbs_count ) {
  11.         echo '<p><strong><a href="edit.php?page='.$path.'&amp;akismet_list=mb">要チェック</a></strong>: マルチバイト文字を含むものを '.$mbs_count.' 件捕獲中です。</p>';
  12.     } else {
  13.         echo '<p>この中にマルチバイト文字を含むものはありません。</p>';
  14.     }
  15. }

 マルチバイトスパムのカウントと表示を追加しています。4行目がマルチバイトスパムのカウント、10~14行目がダッシュボードに表示する部分です。
 もともとのハックではマルチバイトスパム以外も含めた捕獲数を捕獲中のものだけにしてありますが、私の好みで総数に戻してあります。捕獲中のものだけにしたい場合は、2行目のコメントアウトをはずし、3行目をコメントアウトするか削除してください。また、もとのハックではリスト表示にする変更をしてありますが、こちらも好みで段落にしてあります。

 4行目で呼び出している関数 mb_spam_count は、新たに定義したものです。関数 ksd_spam_count に、マルチバイトであることを条件に加えたものになっています。Akismet de-spam view Hack と同様の変更です。
 基本的にはどこに記述しても構いませんが、akismet_stats の近くが良いでしょう。私は akismet_stats の直後にしました。

mb_spam_count
  1. function mb_spam_count() { // マルチバイトスパムの件数
  2.     global $wpdb, $comments;
  3.     $count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_approved = 'spam' AND LENGTH(comment_content) <> CHAR_LENGTH(comment_content)");
  4.     return $count;
  5. }
ksd_spam_count

 ファイル /wp-content/plugins/akismet/akismet.php の195行目。

  1. function ksd_spam_count() {
  2.     global $wpdb, $comments;
  3.     $count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_approved = 'spam'");
  4.     return $count;
  5. }

追加ハック

 解説は以上ですが、思いつきで従来の一覧表示もできるようにしてみました。

267行目(Akismet de-spam view Hack の場所)

 引数を見て、どちらの表示にするか処理を分岐させています。引数の名前は被らなければなんでもいいのですが、とりあえず akismet_spam_list としました。値が mb ならマルチバイトスパムのみ、それ以外なら従来の表示になります。

  1. switch ($_GET['akismet_spam_list'])
  2. {
  3.     case 'mb':
  4.         $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = 'spam' AND LENGTH(comment_content) <> CHAR_LENGTH(comment_content) ORDER BY comment_date DESC LIMIT 150");
  5.         break;
  6.     default:
  7.         $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = 'spam' ORDER BY comment_date DESC LIMIT 150");
  8. }
関数 akismet_stats

 せっかくなので、ダッシュボードのリンクも変更します。マルチバイトスパムがあったときの表示をする行(ハックの11行目)を、次のようにします。

  1. echo '<p><strong><a href="edit.php?page='.$path.'&amp;akismet_spam_list=mb">要チェック</a></strong>: マルチバイト文字を含むものを '.$mbs_count.' 件捕獲中です。</p>';

 これで、要チェックのときはマルチバイトスパムだけの表示にでき、最近の傾向を見たいときなどでは従来の表示にすることができます。

参考情報

Function Reference/wpdb Class « WordPress Codex:
データベースアクセス用クラス
Database Description « WordPress Codex:
データベーステーブル
Comments (1)

2007年1月5日 金曜日

アキバBlogが2年以上ぶりのお休み

Filed under: ブログ
時間:17時00分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 秋葉原専門ブログとしてトップクラス(ブログランキングドットネットで総合2位)のアキバBlogさんですが、今日2007年1月5日は2年以上ぶりの休みだそうです。

 コンピューター関連の情報をメインにいつも拝見させていただいていますが、休みの日があった記憶がありません。雨の日も風の日も毎日のように秋葉原を巡回しているのですね。台風の日の記事も何度かありましたね。
 怒涛の更新に頭の下がる思いです。うちなんか、1週間更新なしなんてざらですから・・・。

 ちょっと気になったのが、関連リンクの下のアマゾンアフィリエイト。キーワードが指定できるタイプなのですが、この記事ではキーワードが過労死。相当お疲れなんでしょうか(・_・;
 6日からはまた更新再開だそうです。倒れたりしないでくださいね。

2007年1月8日 22時19分追記

 記事のアドレスが間違っていたようなので修正しました。ちゃんと見れたので安心してたのですが、どこで間違えたんでしょう・・・。

 http://www.akibablog.net/archives/2007/01/2blog.html
 http://www.akibablog.net/archives/2007/01/2blog_1.html

Comments (0)

Re. 投稿画面へベタ書き派? エディタ派?

Filed under: ブログ
時間:4時07分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 plasticdreamsさんの記事、投稿画面へベタ書き派? エディタ派?より。

ふと気になった事なんですけど,WordPress の記事(他のブログツールでもいいですけど)を書く時に WP の管理画面の Write Post から書くのか,それとも何か XMLRPC 対応のエディタで書いて送信するのか,はたまた単なるエディタ(メモ帳とか秀丸とかサクラとか)で書いた上で Write Post にコピペするのか,皆さんはどの方法で書いてるんでしょう?

 私はテキストエリアベタ書き派ですね。画像のアップロードを含めて上から順に書いていきたいからです。ほかのサイトを参照しながら書くときはブラウザだけで完結できますしね。(私はFirefoxを愛用しています)
 ほかの方も書いているように、うっかり入力したものを消してしまう危険性はあります。実際、何度かやってしまったこともあります。それでもフォームで書くのは、私がタグをバンバン入れるからかもしれません。タグ入力支援機能が便利で便利で(笑)

 べた書き派として注意しているのは、保存は頻繁にすること。
 これは普通のテキストエディタを使っている場合にも当てはまりますが、ウェブベースの場合は特に注意が必要です。自動保存とかしてくれませんので。保存が面倒な場合は、とりあえず投稿する文章だけでもコピーしておくと良いですね。
 あとは、タグ入力支援のため、WP-AddQuicktag を導入しています。結構便利です。

Comments (0)

2007年1月4日 木曜日

SDカード安くなりましたね

Filed under: コンピューター
時間:18時17分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 アキバBlogさんの記事によると、SDカードの値段がかなり下がっているようです。買う側としてはうれしいです。

 去年の年末にMicroSDカードの1GBが2千円台になってると知ったときにすでに驚いてましたが、秋葉原ではSDカードの1GBの最安値が1,500円を切って1,479円とのこと。
 なお、価格.COMでの最安値はバルクの1,480円(2007年1月4日 18時2分現在)でした。この値段を意識したのかもしれませんね。

 ちなみに、Amazon.co.jp での最安値は、POWER GROBAL INDEX というメーカーの物でした。2007年1月4日 18時2分の時点で、2,680円です。最新の値段は、下記表示で確認してください。

2007年6月30日 追記

 千円以上安くなって、新品の価格が1300円くらいになってました。パソコン用のメモリは少し値上がりらしいですが、SDカードはどっちに向かうんでしょうか。

Comments (0)

スパム対策の効果報告

Filed under: WordPress
時間:16時33分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 2006年12月28日に行ったコメントスパム対策ですが、効果があったようです。アクセスログを確認したところ、wp-comments-post.php へのアクセス数が激減していました。
 ただ、トラックバックスパムは相変わらずです。残念ながら、この対策でスパムを完全に追い出すのは難しいようです。前回の記事にトラックバックをいただいたTSJ付゛録゛IIさんでは効果がないとのことですが、同じ状況なのかもしれません。

 なお、アクセスログを見ていて気が付いたのですが、コメントスパムとして処理されたアクセスは、ユーザーエージェント情報が次のようになっていることが多いようです。

  1. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)

 Maxthon について検索したところ同名のブラウザが見つかりましたが、これがスパマーに直結するとは判断できません。掲示板スパムでの書き込みに使われていることが多いようですが、まじめな書き込みでも使われています。残念ながら、決定的なものとはいえないですね。

Comments (2)

2007年1月3日 水曜日

FON の性能は?

Filed under: インターネット
時間:4時02分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 まずは、あけましておめでとうございます。2007年1回目の記事です。
 WordPress としてはまだ1年未満ですが、その前の MovableType では2004年4月15日からスタート。さらにその前の手打ち時代は2001年2月15日がスタート。始めた時は長続きしないだろうと思っていましたが、気が付けばまもなく6年。できるものですね。

 さて、ユーザー増加中の FON というサービスがあります。詳しいことは公式のサイトに譲りますが、一言で言うと無線インターネットを共有しようというものです。加入することで、アクセスポイントが近くにあれば世界中でインターネットにアクセスできるようになります。
 ここまではノートパソコンを持っていないと意味がないサービスに思えますが、無線LANを導入しようとしている人にもメリットがあります。FON 専用ルーターですが、なんと税込みで1,980円です。送料と代引き手数料でプラス900円ですが、それでも市販の無線ルーターよりも安い。

 私も気になっていろいろ情報を集めたりしているのですが、導入しましたというブログの記事を多数見かけます。今日も、通信速度が3Mbps以上、消費電力が5W以下という記事を拝見しました。

 今気になっているのは、ほかの部屋との通信速度がどれくらいまで出るのか。それも鉄骨入りの住宅で。
 今住んでいる家は、鉄骨入りの一戸建て。鉄骨の枠で作られたユニットを組み合わせた構造になっているのですが、これが無線LANに与える影響が不明です。隣の部屋に行ったら速度が半減してしまうとか、そういうことがないか心配して導入に踏み切れません。同じような環境で計測した方いらっしゃいましたら、ぜひお教えください。

Comments (0)

2006年12月28日 木曜日

コメントスパム対策

Filed under: WordPress
時間:22時27分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 ブログサイトをふらふらしていたら、気になる記事を見つけました。

 ここ数日、ボット達の活動が賑やかですね。どこかのお国のスパマーが世界中に伝染させたゾンビを目覚めさせたのでしょうか?SpamKarma殿が頑張ってくれているのでほとんどは防いでくれているので表面上は問題ないのですが、アクセスログを見ると、wp-comments-post.phpを直接叩かれまくっていることに気が付きました。

 さっそくサーバー会社のサービスでアクセスを確認してみると、アクセスランキング1位が wp-comments-post.php !

 上記の記事では Apache の Rewrite を使った対策を紹介しています。コメントの投稿は記事ページから POST で送信されるのが本来の形ですが、スパムの場合は記事ページを飛ばして直接アクセスしているようです。この違いを利用した次のコードが掲載されています。

  1. RewriteEngine On
  2. RewriteCond %{REQUEST_METHOD} POST
  3. RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
  4. RewriteCond %{HTTP_REFERER} !.*ブログのドメイン.*
  5. RewriteRule (.*) http://%{REMOTE_ADDR}/

 参考にしたという Codex のコードは、恐らくこれだと思います。

  1. RewriteEngine On
  2. RewriteCond %{REQUEST_METHOD} POST
  3. RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
  4. RewriteCond %{HTTP_REFERER} !.*yourdomain.com.* [OR]
  5. RewriteCond %{HTTP_USER_AGENT} ^$
  6. RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

 どちらも、直接アクセスしてきていたら送り返すという点は一緒です。
 Codex のほうは、リファラが正しくてもユーザーエージェント情報が得られない場合はスパム扱いにするという点(4~5行目)と、送り返すときのステータスがデフォルトの302(一時的なアドレスの変更)ではなく301(恒久的なアドレスの変更)になるようにしている点(6行目)が違います。後者の記述は、次回のスパムアクセスの時に実際のサイトを見に来なくなるという効果があります。

 さて、セキュリティソフトの中にはリファラをカットしてしまうものがあります。また、同じ機能を実装しているブラウザもあります。カットされた場合は4行目のところでスパムと判定されてしまうため、そのパソコンからはコメントの書き込みができません。これでは困りますので、リファラが空の場合はスパム扱いしない処理が必要になってきます。次のコードを4行目に入れればいいかと思います。

  1. RewriteCond %{HTTP_REFERER} !^$

 ただ、スパムコメントを行うプログラム(通称ロボット)がリファラをちゃんと返すのかという問題があります。恐らく返さないでしょう。すばやい動きをするために、なくても困らない処理は初めから入れていないはずです。少なくとも、私だったら入れません。

 試してみましたという内容にするつもりだったのですが、袋小路に自分から飛び込んでしまったようです。効果を期待しないで試してみます・・・。
 試すコードは、次のようにしました。

  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteCond %{REQUEST_METHOD} POST
  4. RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
  5. RewriteCond %{HTTP_REFERER} !^$
  6. RewriteCond %{HTTP_REFERER} !.*yoshitomo.org.*
  7. RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
Comments (1)

機能を実現しているプラグインを知らせたい

Filed under: WordPress,プラグイン
時間:19時09分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 WordPress はプラグインを使うことでさまざまな機能の拡張が可能になっています。有名なプラグインは配布元にたどり着きやすいですが、マイナーなものだったりすると結構大変です。ここしばらくいろいろ探し回っていて、そのことを実感しました。

 使用中のプラグインのリストを作っているサイトは多いです。また、最近はスクリーンショットに書き込みをすることで、視覚的なプラグインの紹介という試みも行われています。どちらも有意義ですが、それぞれ問題点があります。

プラグイン紹介の問題点

リスト形式の場合

 リスト形式の場合は、そのプラグインがどこに使われているかわかりにくいという問題があります。リストの項目が増えるほど顕著になり、数十種類使用していたりすると何がなんだかです。もちろん、きちんと分類するとかすれば大分わかりやすくはなりますが。

視覚的な場合

 スクリーンショットによる視覚的な形式の場合は、プラグインの名前がわかっても、直接配布元に行くことができません。名前を検索して、その中から目的のサイトを探り当てる必要があります。クリッカブルマップにすればリンクさせることも可能ですが、メンテナンスが楽ではありません。ツールなしではやりたくない作業です。

どうすればいいのか

 思いついたのが、プラグインによって表示されている近くに配布元へのテキストリンクを入れてしまうという方法です。この方法であれば、視覚的でもあるし、テキストリンクなのでメンテナンスも簡単です。私は、直接テーマファイルに書き込んでしまいました。「by プラグイン名」という形でリンクを入れてあります。
 現時点では、右サイドバーのアーカイブ、各記事の下の評価、複数ページにわたるアーカイブの一番下にあるページナビゲーションの3箇所がプラグインに拠るもので、全て上記の方法で配布元へのリンクを張っています。

 この方法、いかがでしょうか。

Comments (0)
Page 20 of 31« First...10...1819202122...30...Last »

HTML convert time: 2.230 sec. Powered by

Images is enhanced with WordPress Lightbox JS by Zeo