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

2007年1月29日 月曜日

ぺらぺらーず漫遊記 乙女の巻 – ソード・ワールド短編集

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

 ぺらぺらーずのヒロイン、魔法剣士ベルカナにスポットを当てた短編集。乙女度アップだそうです(笑)

Comments (0)

Gigazine の威力

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

 アクセスログを見たら、一昨日の訪問者数が普段の2倍に。「更新すらしていなかったのに何で?」と主なリンク先を確認してみると、超大手の Gigazineさんが約74%です。ちなみに、2位は Google で14.6%でした。

 さっそく見に行ってみたところ、夕方の記事からリンクされているではありませんか。

 リンク先は Akismet のハックを扱った記事。しかも、日本語に特化した詳しい使い方の説明として紹介されています。
 紹介のされ方がいいとかスパム関連とかあるとしても、リンクひとつで普段の倍のアクセスをもたらすとは。いやはや、恐れ入ります。

 しかし、使い方の説明はまったくないと思うんですが、いいんでしょうか。ダブルバイトを含むスパムだけ表示するようにする方法のところ?うーん・・・。
 多分、普通に使う分には WordPress Japan ので十分だと思います。基本的には設定したら、あとはほったらかせばスパム判定されたものは消えてゆきますので。

Comments (0)

2007年1月28日 日曜日

FreeBSDアップグレードでDNSが行方不明に

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

 予定より1週間遅れましたが、ローカルサーバーの FreeBSD を 5.4 から 6.2 にバイナリアップグレードしました。イメージファイルをダウンロードして CD-R に焼いて起動させて実行。何の問題もなく終了。

 そのはずでした。

 念のためチェックしていると、ウェブサーバーが応答しないことが判明。Webmin で確認してみると Apache が起動していません。手動で起動させてみると、今度は名前の解決ができないとかでエラー。名前の解決を手動で試みるも、やはりエラー。
 DNS サーバーの BIND を調べてみると、起動していますが設定ファイルが書き換えられています。不安を感じながらも手作業で修復。でもエラー。

 散々調べた結果、問い合わせ先がローカル IP アドレスだとサーバーを見つけられないようです。localhost にしてやるとグローバルサーバーのドメインも含めて名前解決できます。まったく持って謎です。

 現在はプロバイダの DNS を参照することで何とかなっていますが、ローカルマシンの名前解決ができないので不便です。原因に思い当たる方いらっしゃいましたらお助けください。

dig コマンドによる問い合わせ

  1. # dig @localhost example.com
  2.  
  3. ; < <>> DiG 9.3.3 < <>> @localhost example.com
  4. ; (2 servers found)
  5. ;; global options:  printcmd
  6. ;; Got answer:
  7. ;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 31756
  8. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
  9.  
  10. ;; QUESTION SECTION:
  11. ;example.com.                   IN      A
  12.  
  13. ;; ANSWER SECTION:
  14. example.com.            172800  IN      A       192.0.34.166
  15.  
  16. ;; AUTHORITY SECTION:
  17. example.com.            21600   IN      NS      a.iana-servers.net.
  18. example.com.            21600   IN      NS      b.iana-servers.net.
  19.  
  20. ;; ADDITIONAL SECTION:
  21. a.iana-servers.net.     172800  IN      A       192.0.34.43
  22. b.iana-servers.net.     172800  IN      A       193.0.0.236
  23.  
  24. ;; Query time: 1075 msec
  25. ;; SERVER: 127.0.0.1#53(127.0.0.1)
  26. ;; WHEN: Sun Jan 28 17:09:25 2007
  27. ;; MSG SIZE  rcvd: 125
  28.  
  29. # dig @192.168.0.1 example.com
  30.  
  31. ; <<>> DiG 9.3.3 < <>> @192.168.0.1 example.com
  32. ; (1 server found)
  33. ;; global options:  printcmd
  34. ;; connection timed out; no servers could be reached

2007年1月29日 追記

 /var/log/message を見てみると、次のようなエラーが出てました。

  1. Jan 29 06:08:29 server named[668]: could not listen on UDP socket: permission denied
  2. Jan 29 06:08:29 server named[668]: creating IPv4 interface fxp0 failed; interface ignored
  3. Jan 29 06:08:29 server named[668]: could not listen on UDP socket: permission denied
  4. Jan 29 06:08:29 server named[668]: creating IPv4 interface fxp0 failed; interface ignored

 エラーメッセージを見つけたらインターネット検索が最近のお約束です。早速 Google 様に伺うことに。1時間ごとに同様のエラーが出るというブログ記事を発見。

 次のようにあったので、早速実行。

BIND9を再起動すると解消するが、BIND9はHUPシグナルを受け取らないため、「kill -HUP pid」ではなくrndcを使うか、一度終了させてから再度起動させないとうまくいかない。

 うまく名前解決できました。一歩前進です。

 また、次のような情報もありました。こちらはすでにやっているので違うかもしれませんが、有用に思えたので書いておきます。

 options セクションに、次のコードを追加することでリクエストを受け付けてくれるようになるとのことです。自分自身への問い合わせのため、127.0.0.1 は必須です。

  1. listen-on { 172.16.1.16 ; 127.0.0.1 ; } ;

 また、調査してなくてよくわかっていないのですが、interface-interval というオプションの値を0にするといいらしいです。

googleして、named.confに以下を追加

options {
interface-interval 0;
};

 このオプションについては、またあとで調べてみようと思います。

2007年2月1日 追記

 listen-on で、LAN の IP アドレスを追加することで解決しました。このサブセクションに記述された IP アドレス宛の要求を処理するとのこと。
 interface-interval は、ネットワークインターフェースのチェックをする間隔だそうです。増減することはまずないので0にしておきました。

Comments (0)

Wホワイト併用の分かれ目

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

 今月の25日にホワイトプラン専用のオプションである『Wホワイト』がソフトバンクより発表されました。その内容は、通常30秒で21円の通話料金が半分の10.5円になるというものです。

 Wホワイトを併用するかどうかは、無料でない通話時間が1ヶ月にどれくらいあるかです。そこで、境目がどこにあるかシミュレートしてみました。

Wホワイトシミュレート

 左から順に、1ヶ月の通話時間、ホワイトプラン単体の通話料金、Wホワイトを併用したときの通話料金にWホワイトの料金を足したもの、単体の金額から併用した場合の金額を引いた差額です。通話時間が46.5分までは差額がマイナスになっていますが、47分からはプラスとなり、Wホワイトを併用することで通話料金を抑えられることがわかります。

 というわけで、併用の決め手となる通話時間は47分でした。

Comments (0)

2007年1月25日 木曜日

ダッシュボードの『その他の WordPress サイト』が更新されない

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

 ダッシュボードの『その他の WordPress サイト』が更新されていないことが最近多いです。RSS リーダー代わりに結構参照しているのですが、1日経っても同じままだとちょっとさびしいです。
 この部分ははてなのRSSサービスを利用していることがすでにわかっているので、ソースコードから探し出して直接見てみました。

 まったく違う内容でした。どこかにキャッシュされているんでしょうか。そのうちハックしてみます。

ダッシュボードについて

 WordPress を使った事のない方のために簡単に説明。
 ダッシュボードは、WordPress の管理画面の一番最初に表示されるページで、ニュース情報や最近のコメント・投稿した記事などが表示されます。

Comments (0)

自分割引と長期利用割引は併用できない

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

 ソフトバンクのオレンジプランには、自分割引と年間割引の2つの割引プランがあります。以前割引額をシミュレートしたときには、これに長期利用割引を含めた金額も算出していましたが、併用することはできないことが判明しました。

 今月のオンライン料金案内によると、基本料金 3,280円に適用された割引は、自分割引の -1,706円だけでした。長期利用割引の15%は引かれていません。金額にして492円が予定よりかかってしまいました。

 加入時にこれくらいになりますねと算出された金額は、シミュレーションと一致していました。別の日に行ったときのスタッフによると、基本料金に対する割引オプションは長期利用割引と併用できないとのこと。どうやらまだ混乱は収まっていなかったようです。

 たかが492円。
 されど492円。

 基本料金の安いプランだったかからこれくらいですんでいますが、最も高いLLプランでは2,220円です。これこそ予想外でしょう。

 というわけで、併用しないシミュレートをしました。

ソフトバンクプランシミュレート

Comments (0)

2007年1月23日 火曜日

鋼の国の魔法戦士 – 魔法戦士リウイ ファーラムの剣

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

 魔精霊アトンを倒すために必要なファーラムの剣を探す最終章の第4弾。今回の主な舞台は、鋼の国ロドーリルに占領された城塞都市プリシスです。

Comments (0)

2007年1月21日 日曜日

ページランクがつきました

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

 今までGoogleのページランクは0のままでしたが、先週から2になっていました。
 運営開始が2006年10月7日なので、2ヶ月ちょっとですね。アクセスも順調に増えてきていて、うれしい限りです。

Comments (0)

2007年1月18日 木曜日

プラグインテスト用兼メモ

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

 プラグイン製作に挑むことにしました。このページはそのテスト用です。
 普通の記事ページでもいいのですが、何かあったときの影響範囲を狭めるのと、個別に開くと人気度が変化してしまうために専用の記事を使うことにしました。

メモ

カスタムフィールド
キー
yo_keyword
値を得る

 指定の記事のカスタムフィールドの値を得る。

  1. get_post_meta($post->ID, 'yo_keyword', true);
$post->ID
記事ID
‘yo_keyword’
値がほしいキー
true
このキーが1つだけのときtrue。falseだとリストになる。

プラグインオプションの処理

Saving Plugin Data to the Database

get_option($option):値の取得
add_option($name, $value, $description, $autoload):新規追加
update_option($option_name, $newvalue):更新。ない場合は add_option() が呼ばれる
delete_option($name):オプションの削除

class を使う場合のオプションページ登録

 class を使っている場合(OOP)、add_options_page() の第5引数は次のようにする。

  1. array(&$this, 'function_name')

 この引数が、call_user_func_array() の第1引数になる。これをやらないと、「First argument is expected to be a valid callback」と警告が出る。

フォームの値

 フォームからの値はグローバル変数の $_POST$_GET で得られるが、WordPressはどちらも独自の方法でエスケープしている。(/wp-settings.php
 このエスケープは強制的に行われるため、フォームを使う場合は stripslashes によるアンエスケープが必要。

  1. // If already slashed, strip.
  2. if ( get_magic_quotes_gpc() ) {
  3.     $_GET    = stripslashes_deep($_GET   );
  4.     $_POST   = stripslashes_deep($_POST  );
  5.     $_COOKIE = stripslashes_deep($_COOKIE);
  6. }
  7.  
  8. // Escape with wpdb.
  9. $_GET    = add_magic_quotes($_GET   );
  10. $_POST   = add_magic_quotes($_POST  );
  11. $_COOKIE = add_magic_quotes($_COOKIE);
  12. $_SERVER = add_magic_quotes($_SERVER);

 エスケープ処理を行っている関数 add_magic_quotes() は、/wp-includes/functions.php で定義されている。
 再起処理により、階層の深い配列にも対応するようになっている。

  1. function add_magic_quotes($array) {
  2.     global $wpdb;
  3.  
  4.     foreach ($array as $k => $v) {
  5.         if ( is_array($v) ) {
  6.             $array[$k] = add_magic_quotes($v);
  7.         } else {
  8.             $array[$k] = $wpdb->escape($v);
  9.         }
  10.     }
  11.     return $array;
  12. }

 最終的なエスケープ処理をする $wpdb->escape() は、/wp-includes/wp-db.php で定義されている。$wpdb は クラス wpdb のインスタンス。

  1. // ====================================================================
  2.     //  Format a string correctly for safe insert under all PHP conditions
  3.    
  4.     function escape($string) {
  5.         return addslashes( $string ); // Disable rest for now, causing problems
  6.         if( !$this->dbh || version_compare( phpversion(), '4.3.0' ) == '-1' )
  7.             return mysql_escape_string( $string );
  8.         else
  9.             return mysql_real_escape_string( $string, $this->dbh );
  10.     }

進行具合

 デバッグ&テスト中。
 本番テストということで、アフィリエイト広告のキーワードとして使ってみています。
 記事のメタ情報を利用するため、記事ループの中でないと使えないことが判明。サイドバーのアフィリエイト広告に使いたかったのでちょっと残念。

管理画面スクリーンショット

TODO

  • オプションを保持している変数をクラスオブジェクトにする。
  • メソッドの引数によるオプションの上書き処理を、オプション用クラスのメソッドとして切り離す。
  • 管理画面のオプション設定画面の表示を専用クラスに切り離す。
  • キーワードをランダムに1つ選択するメソッドの実装。
  • オプション設定画面の整理。
  • カスタムフィールドに改行で区切って複数のキーワードが入れられるようにする。
  • キーワードを得る方法に、配列とJSONを追加。

参考資料

Comments (0)

2007年1月16日 火曜日

お任せリンクを削除しました

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

 設置から1週間が経ち、Amazon Search のほうが広告の選択がいいことが判明したため、左サイドバーのAmazon.co.jp のお任せリンクを削除しました。

 お任せリンクとの比較のために商品ジャンルを書籍に限定していましたが、あとでほかのジャンルも含まれるようにする予定です。
 また、ちょっと特殊なコードを埋め込んだので(規約違反にはなっていないはずです)、そのレポートもしたいと思います。

Comments (0)
Page 1 of 3123

HTML convert time: 5.537 sec. Powered by

Images is enhanced with WordPress Lightbox JS by Zeo