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

2007年1月16日 火曜日

FreeBSD 6.2-RELEASE が公開されました

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

 昨日の記事の中で次のバージョンがリリースされたらローカルサーバーの FreeBSD をアップグレードすると書いたばかりですが、ちょうどその日にリリースされてました。Xbox でも動くようになったようです。

 Opera9 を導入したので、土日あたりで BitTorrent からダウンロードしてアップグレードしようと思います。

Comments (0)

2007年1月15日 月曜日

記事にキーワードをつけるアイディアのメモ

Filed under: EntryKeywords,アフィリエイト,プラグイン
時間:22時34分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 ちょっと思いついたのでメモ。時間があればプラグインとして作ってみようと思いますが、今はただのメモ。

 実はもうある?ご存知の方ぜひ教えてください。面白そうだから作るよというのも大歓迎です。

アフィリエイト要に記事にキーワードを付ける

 Amazon.co.jp のライブリンクのように、ASP型のアフィリエイトサービスには、キーワードによって表示する商品を動的に決定することができるものがあります。お任せリンクではキーワードの抽出がどうなっているのかわからず曖昧になりがちですが、直接指定することで好きなように決めることができます。

 ブログでは、カテゴリーという概念があります。記事を大まかに分類するわけです。もう少し細かいものにタグがあります。これも一種のキーワードといえますが、アフィリエイト用としてはまだちょっと曖昧な気がします。細かくしすぎるとタグの意味がなくなってしまいますし。

キーワードを記事に紐付ける

 ということで、専用のキーワードという概念が必要であると私は結論付けました。そして、それを WordPress のカスタムフィールドでできないかと考えています。記事の ID と紐付けられた形でデータベースに記録されるようなので、記事 ID からたどって値(ここではキーワード)を取得することも可能なはずです。

 ここまでくればあとは簡単。アフィリエイトの広告表示コードを出力する関数を定義したプラグインを作るだけ。キーワードを URL エンコードして埋め込むようにしてやれば、投稿画面で設定したキーワードを広告表示コードに渡すことができるはずです。表示はテンプレートに関数を埋め込んでもらいます。

柔軟にする

 プラグインオプションの設定画面がほしいですね。
 広告コードを設定することができればいろいろ対応できますし、ほかにもいろいろオプションが必要になるかもしれません。

その他

 キーワードの設定がない場合はカテゴリーを使えばいいでしょうか。オプションで初期値を設定できるというのもありかも。

Comments (0)

死者の村の少女 – サーラの冒険Extra

Filed under: 読書中
タグ:, , ,
時間:21時39分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 ソードワールド・ノベルの長編シリーズ『サーラの冒険』の外伝です。本編はすでに完結してるため、シリーズ最後の作品となります。

サーラの冒険

 普通の少年が冒険者になるまでを描くことを目指した作品で、どちらというと頼りない印象の少年サーラが冒険者と出会い、魔物退治に同行させてほしいとせがむことから話は始まります。

 ちなみに、1巻の出版は1991年。6巻は2006年。完結まで10年以上かかっています。正直、よくぞ完結してくれたという気分で6巻を買いました。





Comments (0)

1年中働いています

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

 人間ではなく、コンピューターの話。

 プログラムのテスト場所目的でローカルサーバーを稼動させているのですが、その連続稼働日数が365日を越えていました。昨日で370日です。

 テスト場所といいつつも、NTP サーバーや DNS サーバーも兼ねてたりします。パソコンと一緒に起動させたりするのも面倒なので、結局24時間起動しっぱなし。どうせならファイルサーバーにと思って Samba も入れましたが、HDD の容量が少ないので保留。印刷エラーでプリンタサーバーにもできず。

 ちなみに、中身は AthlonXP ベースのただの自作パソコンです。OS は FreeBSD 5.x。6.2がリリースされたらアップグレードしようと思ってます。

 さいごに、サーバーに一言。
 1年間ありがとう。また1年よろしく。

Comments (0)

2007年1月13日 土曜日

ホワイトプランシミュレート

Filed under: 携帯電話
時間:18時31分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 ソフトバンクのホワイトプランの基本料金のシミュレートをしてみました。
 現状では専用の割引プランがないので、長期利用割引のみの適用です。

 契約期間が6年以上だと470円になるんですね。すさまじい安さです。
 今月15日までに携帯電話番号ポータビリティでソフトバンクに移ると、前キャリアの契約期間を引き継げます。期間の長い方はお早めに。

2007年1月14日変更

 ホワイトプランには長期利用割引は適用されないとのことです。なので、適用されることがあったらこんなに安くなるという架空のシミュレートということになりました。

ソフトバンク ホワイトプラン架空シミュレート

Comments (0)

ソフトバンクがホワイトプランのCM開始

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

 ソフトバンクのホワイトプランに注目している人はかなりいるようですね。以前は検索で来る人のほとんどがオレンジプランを目的にしていましたが、今はホワイトプランのほうが上回っています。

 そんなホワイトプランですが、テレビCMが始まっていました。
 白い冊子状のものをめくって行く映像に、男性の声で料金体系の説明が入るというシンプルなもの。まだ2回しか見てないので勘違いかもしれませんが、ソフトバンク以外にかけたときの金額を言っていない気がします。また突っ込まれそうです。
 ナレーションがないだけで、冊子には表示されていました。

 プランの詳細ですが、ウェブサイトで確認できます。また、ショップにカタログが置いてあるようです。
2007年1月14日 確認しました。

 『契約上のご注意・条件』のところに、6ヶ月契約というものについての説明があります。

「6ヵ月契約」は、「ハッピーボーナス」「年間割引」などの1年もしくは2年単位でのご契約のお客さまがホワイトプランに変更する際に変更後6ヵ月間のご利用をお約束いただくことにより、変更前のご契約の契約解除料を免除させていただく契約です。なお、「6ヵ月契約」は、ホワイトプランが適用された月から 6ヵ月間の契約となります。

 何かあるだろうと予想(または期待)していましたが、こうなりましたか。
 ハッピーボーナスなどのボーダーフォン時代の長期契約割引は引き継げるようにすることで解決しましたが、ホワイトプランには長期契約割引がありません。ソフトバンクになってから長期契約をしてしまった人は、時期的にプラン変更がかなり先になってしまいます。そのための対策なのでしょう。

 ソフトバンク加入者はオンラインでのプラン変更の申し込みがすでに可能になっていますが、もう少し様子を見たいと思います。

Comments (2)

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)

全面タッチパネルの携帯電話といえば・・・

Filed under: 携帯電話
時間:18時11分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 ニュースサイトやブログで Apple の携帯電話(Cisco に訴えられてしまいましたが、iPhone の名称は使えるんでしょうか)を見かけますが、液晶タッチパネルを採用しているということを知ったときには、驚きよりも懐かしさを感じました。かつての J-PHONE (現在のソフトバンクモバイル)のパナソニック端末ですでにあったためです。

 J-PE02(旧デジタルフォンの名称は DP-212)というのがそれです。カタログで知って、そのハイテク感にあこがれたものです。

 液晶がモノクロである点を除けば、外観はかなり似ていると思うんですが。似てないですか?

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)
Page 2 of 3123

HTML convert time: 2.254 sec. Powered by

Images is enhanced with WordPress Lightbox JS by Zeo