角川スニーカー文庫のオイレンシュピーゲル 壱と同時発行の、もう1つのシュピーゲル。オイレンシュピーゲルでは犬ですが、こちらは昆虫です。また、コードネームとしては宝石の名称が使われています。
舞台はオイレンシュピーゲルと同じく、未来のオーストリア。こちらの主人公のほうが個性が強いように感じます。むちゃくちゃです。
- Google Crisis Response(Google)
- 災害に関する情報源や、行方不明者情報の収集と検索を行う『パーソンファインダー』を初めとするツールの提供が行われています。
2007年2月28日 水曜日
2007年2月22日 木曜日
FreeBSD をアップグレードしてしばらく経ちますが、ある Perl ライブラリがバージョンアップできなくて悩んでました。ロケールが設定されてないとか何とか。環境変数を設定しなおしても同じメッセージが。
エラーメッセージを検索してみたりしているうちに、ロケールファイルというものがあるらしいという情報が。「FreeBSD ロケールファイル」で検索してみると、確かにあるようです。ロケールが名前になっているディレクトリがたくさんあり、その中にもなにやらファイルが。どうやらこれのことのようです。
で、さらに検索結果を眺めていると、6.0 からはロケールファイルのフォーマットが変わっているという情報が。6.0 以前の環境でコンパイルしたプログラムは、このせいでうまく動作しないとか。問題のライブラリは Perl スクリプトでコンパイルするようです。そして、インストールされている Perl は FreeBSD をアップグレードする前に Ports からインストールしたものです。 perl -v で同じメッセージも出ます。
というわけで、Perl の再インストールをしてみました。perl -v でエラーメッセージが出なくなりました。
2007年2月18日 日曜日
未来のオーストリアを舞台にしたアクションもの。タイトルは『いたずら』とか『悪ふざけ』の意味らしいです。
この小説、初めはまったくのノーマークで、認識すらしてませんでした。買いすぎると読むのが追いつかなくなるのはわかっているので、基本的に新しいシリーズには手を出さないのです。
買うきっかけになったのは、先日まで読んでいた『機動戦士ガンダム MSイグルー 黙示録0079』に挟まっていた角川スニーカー文庫のしおり。新刊の宣伝を兼ねたもので、その片面がこの小説でした。著者の名前もしっかり入っていて、マルドゥックシリーズと同じ人であることに気がつき、翌日には購入していました。
なお、富士見書房のドラゴンマガジンで同時連載中の『スプライトシュピーゲル』の1巻も出版されています。
『公開迫る』といいつつ、結局2週間も過ぎてしまいました。自作 WordPress プラグインの EntryKeywords 0.5.0 をやっと公開です。
- 2007年2月5日の記事 オリジナルプラグイン EntryKeywords の公開迫る
公開場所は、予定通り JSeries になりました。その中に専用のページを作り、リリース情報などを掲載するようにしています。
また、このブログに専用のカテゴリーを新設しました。JSeries はコメントやトラックバックができませんので、必要な場合はカテゴリー内の記事にでもしていただければと思います。
2007年2月15日 木曜日
今朝移管が完了したようです。特にメールが来たりはしないようで、VALUE-DOMAIN.COM(以降、VDC と表記)管理メニューの『移管中のドメインの状態を確認』で確認しました。
注意が必要なのは、移管すると DNS の再設定が必要なこと。割引価格で移管した場合は、DNS サーバーが eNom から VDC のものに変更になります。その場合、設定が引き継がれたりはしません。
しかも、以前設定したページは VDC 用のものに変えられてしまって、以前のものは見ることができません。現在移管中や移管の予定の方は、設定画面で『VALUE-DOMAIN独自のDNS機能で、同等の設定内容を表示するにはここをクリックしてください。』で設定を表示させ、テキストファイルに保存するなどしておくことをお勧めします。
というわけで、設定が間違えてなければうまく切り替わるはずです。間違ってた場合は数日でエラーが・・・。
- 2007年2月5日の記事:ドメイン移管のお知らせ
2007年2月17日追記
無事切り替えられたようです。
フック admin_head
の do_action
を実行している直前で $wp_filter の中身をすべて表示させてみたところ、あっさり解決しました。
関数名を検索してみるとしっかり登録されていたので登録内容を確認。フックのところを見たとき愕然としました。
フック名は、「admin_head 」。後ろに余計なスペースが・・・。
はい。単なる入力ミスです。こんなのに3日も悩んでたんですか。
スペルを間違えないようにコピーしてきたときにスペースが入ってしまったのではないかと。本末転倒もいいところです(^^;
フックは開発者が自由に決められる仕組みなので、スペルミスには注意が必要ですね。構文エラーなら PHP が面倒を見てくれますが、今回のような論理エラーは思い込みなどで気がつくのに時間がかかります。皆さんもご注意くださいませ。
自作プラグイン EntryKeywords のオプション設定画面を CSS で装飾したくて作業中。
マニュアルを見ていて add_action('admin_head ', '関数');
とすればいいはずと目星をつけていましたが、なぜか動いてくれません。2日以上悩み続けています。仕方がないので流れを追いかけてみることに。
結局動くまでには至っていませんが、せっかくなので仕組みをメモ。
登録
まず、関数 add_action
でフックに対応する関数の登録を行います。2.0.7 では add_filter
を呼び出すだけなので、実際の処理は 関数 add_filter
を見ます。定義は、/wp-includes/functions.php
にあります。
- function add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
- global $wp_filter;
- // check that we don't already have the same filter at the same priority
- if ( isset($wp_filter[$tag]["$priority"]) ) {
- foreach($wp_filter[$tag]["$priority"] as $filter) {
- // uncomment if we want to match function AND accepted_args
- // if ( $filter == array($function, $accepted_args) ) {
- if ( $filter['function'] == $function_to_add ) {
- return true;
- }
- }
- }
- // So the format is wp_filter['tag']['array of priorities']['array of ['array (functions, accepted_args)]']
- $wp_filter[$tag]["$priority"][] = array('function'=>$function_to_add, 'accepted_args'=>$accepted_args);
- return true;
- }
フックの登録は、グローバル変数 $wp_filter に配列として登録されます。関数 add_filter
の処理は大きく2つに分かれていて、登録処理は後半の部分で行います。前半は重複して登録しないためのチェックです。
登録処理のコメントにもありますが、登録情報はフックと優先度で分類されています。また、関数にはオブジェクトのメンバー関数も登録できます。その場合は、array(オブジェクトインスタンス, 関数名)
という配列を使います。オブジェクトインスタンスは参照渡しする必要があります。そのため、PHP 4 では変数の頭に & をつけて明示的に参照渡しにする必要があります。
実行
登録した関数を実行するには、関数 do_action
を使います。この定義も /wp-includes/functions.php
にあります。
- function do_action($tag, $arg = '') {
- global $wp_filter;
- $extra_args = array_slice(func_get_args(), 2);
- if ( is_array($arg) )
- $args = array_merge($arg, $extra_args);
- else
- $args = array_merge(array($arg), $extra_args);
- merge_filters($tag);
- if ( !isset($wp_filter[$tag]) ) {
- return;
- }
- foreach ($wp_filter[$tag] as $priority => $functions) {
- if ( !is_null($functions) ) {
- foreach($functions as $function) {
- $function_name = $function['function'];
- $accepted_args = $function['accepted_args'];
- if ( $accepted_args == 1 ) {
- if ( is_array($arg) )
- $the_args = $arg;
- else
- $the_args = array($arg);
- } elseif ( $accepted_args > 1 ) {
- $the_args = array_slice($args, 0, $accepted_args);
- } elseif ( $accepted_args == 0 ) {
- $the_args = NULL;
- } else {
- $the_args = $args;
- }
- $string = call_user_func_array($function_name, $the_args);
- }
- }
- }
- }
前半は飛ばして、後半の foreach
を見ます。
特定のフックに対する登録情報を順に処理しています。情報を取り出し、引数の処理をし、最後に組み込み関数 call_user_func_array
で関数をコールします。
どこまでは動いているのか
調べた結果、少なくとも add_filter
での重複チェックを通過していることはわかりました。最後の return
の直前($wp_filter への登録直後)で $wp_filter[$tag]["$priority"] の値を表示させて確認しました。
add_action
を経由しないで直接登録した場合ではきちんと動作しましたので、何らかの理由により登録を削除されているのではないかと考えています。
2007年2月13日 火曜日
ドスパラで電源ユニット買って来ました。エバーグリーンのサイレントキング4の450W。5,980円でした。
で、実は昨日から異音がしなくなってます。原因がなくなったのか嵐の前の静けさなのかわかりませんが、とにかく今は治まっています。なので、買ってきただけで交換はしていません。しばらく様子見です。
- 2007年2月11日の記事『パソコンから甲高い異音が』
2007年2月11日 日曜日
機動戦士ガンダム MSイグルー 1年戦争秘録(小説版)の続編に当たり、試験支援艦ヨーツンヘイムが引き続き舞台となっています。
MS イグルーはもともとバンダイミュージアムで上映されていたもので、黙示録0079 はその続編として製作された OVA でもあります。
昨日くらいから、パソコンが甲高い異音を発していることに気がつきました。最初のころは金属的なキュルキュルといった感じでしたが、今は耳鳴りのようなキーンという感じ。
いろいろ調べていると、どうやらCPU負荷に関係がありそうです。3Dゲームを起動していると音が聞こえ、終了すると収まります。負荷をキーワードに検索を繰り返していると、電源ユニットが原因だったという情報を発見。その方の場合はコンデンサの不良だったようです。
この情報を元に改めて音の出元を探ってみることに。蓋をはずしたパソコンの横からだと HDD 付近が一番大きいような気がしましたが、裏側で探してみると電源ユニットのファンの穴からかなり大きな音が。HDD の比ではありません。
現在使っている電源ユニットは、TORICA の Sei Plus 360W。買ってきたのは1年9ヶ月前でした。2年以上使い続ける気でいたんですけどねぇ。
明日新しいのを買ってこようと思います。サービスコンセントつきのがいいんですけど、最近少ないんですよね・・・。