2008年7月の投稿

ひたちなか海浜鉄道が WordPress 採用
今年4月発足した、ひたちなか海浜鉄道が独自ドメイン HITACHINAKA-RAIL.CO.JP を取得して、本日7月1日より、公式サイトを移設していました。ドメイン名も妥当かつシンプルでいいですよね。そして、サイト全体を WordPress 2.5.1 で構築していることが注目点です!!
残念ながら、契約したサーバーが PHP4 なので、携帯対応がまだとのことです。Mobile Eye+ とか、MobiePress とか PHP4 対応のツールもあることはあるんですが、運営担当者は「Ktai Style 以外眼中にない」のかもしれませんね
残念ながら、Ktai Style の PHP4 サポートは予定がまったくありませんので、サーバー側が PHP5 になってもらうまで待つしかないでしょう。実は、PHP 5.2.0 以降という制約を少し緩和して PHP 5.0.0 以降にするべく作業中です。しばらくお待ちください。

チャンク形式の HTTP 返答に対応する
Ktai Style 1.41 をリリースすべくテストを重ねていますが、細かいバグが少しずつ発見されてしまい、それを修正してはまたテストする、というサイクルに陥っています……。1.3x 系統がバギーだっため、その尻拭いという状況ですね で、今日は「外部サイトのリンクをクリックしたとき、携帯サイトの検出時に不正な URL を拾ってしまう」という現象を発見しました。具体的には、「ひたちなか海浜鉄道が WordPress 採用」で、http://finder.music.coocan.jp/?p=152 へのリンクをクリックしたとき「http://finder.music.coocan.jp/?p=15224http://finder.music.coocan.jp/?p=1525」にジャンプしようとしました。http:// がダブっているのは、検出した URL が相対 URL であったとき、飛び先の URL をベースとして補完したためです。つまり、携帯サイトとして検出した URL 自体は「24http://finder.music.coocan.jp/?p=1525」でした。
これはとっても不可思議なので、redir.php をいじって実際に受信したデーターを見てみました。すると、以下のような内容だったのです。
fa <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head profile="http://gmpg.org/xfn/11"> <meta http-equiv="Content-Type" content=" 9 text/html a ; charset= ……中略…… 2e <link rel="alternate" media="handheld" href=" 24 http://finder.music.coocan.jp/?p=152 5 " />
実際のデーターの前にバイト数がくっついた形式になっています。はて、PHP の fgets()
はこんな形式になったっけ、と思ったのですが、よく調べると、これは HTTP のチャンク形式のデータなのでした。RFC2616に詳しく書かれていますが、とほほの WWW 入門の解説がシンプルで分かりやすいでしょう。
このサーバーはえらく細切れにデーターを返していて、肝心の rel=”altinate” media=”handheld” の URL 部分の前後でチャンクが切れてて、バイト数が挟まってしまっていたのです。その結果、「24http://finder.music.coocan.jp/?p=1525」が携帯サイトの URL であると検出していました。数回リトライしてもほぼ同じ結果です。なお、たいていのサーバーでは 1024 バイトぐらいは一括して返してくるので、こういう現象はめったに起きません。
redir.php のコードは、wp-includes/comment.php の discover_pingback_server_uri()
を参考にしていますが、このコードがチャンク形式を考慮していないため、今回の現象が発生しました。対応させるためには、HTTP ヘッダで「Transfer-Encoding: chunked」の有無を確認し、あれば「バイト数・コンテンツ」のペアで受信させることが必要になります。WordPress コアの不具合なので、trac にも報告(#7224)しておきました。添付ファイルを2回送ってしまったのはちょっとしたミスです
これで、携帯サイトの検出も問題なくできるようになりました。もうちょっとテストしたいので、Ktai Style 1.41 のリリースは金曜日ぐらいかな〜〜。
[追記] trac のコメントで「HTTP/1.0 ならばチャンク形式がないので、リクエスト自体を HTTP/1.0 にすればよいのでは」という提案がされています。そういう手もあるかと思いますが、それでいいのかな??

WILLCOM 9 は PC 通信未対応
本日、ウィルコムから W-SIM 対応ジャケットの新機種「WILLCOM 9 (WS018KE)」が発表されました。前作 nine (9) と違って折り畳み型でカメラ付きです。しかし、nine (9) 登場時から要望されていた、PC 接続時のモデム機能は搭載を見送られました……。またも、しょぼい端末になってしまいました。(追記: ポケベル入力 (2タッチ入力) も非対応のようです。これでわたし的にはパスですね)
ウィコムには、イー・モバイルを見習って、自身の立ち位置を考えた端末を作ってもらいたいものです。全国どこでも安価にデーター通信ができること・ウィルコム同士なら通話無料 (ウィルコム定額プランの場合) がメリットのはずなのに、それを生かした端末が少ないんですよね。両者を両立させるには、多くの音声端末にモデム機能を搭載して Bluetooth 対応 (DUN-GW あり) にするべきです。少なくともイー・モバイルはすべての音声端末とスマートフォンがそうなっています (安価端末 H11HW ですら BT 対応)。ウィルコムからイー・モバイルに移った人には、ウィルコムの端末のふがいなさに見切りを付けた人も多いはずです。
WILLCOM 9 の前に発売されたスマートフォン WILLCOM 03 は、やっと Bluetooth 搭載しましたが、なんと DUN-GW 未対応という体たらくです!! イー・モバイルへの顧客流出を本気で止める、という気がないんでしょうか……。次世代 PHS が出ても現状と同様の端末ラインナップになるなら、イー・モバイルから客を取り返せないと思います。ベル打ち、Bluetooth, GPS, Felica, ワンセグ, WILLCOM CORE 対応の「全部入り」音声端末がぜひとも欲しいところです。(個人的にはワンセグはなくてもいいですが)
結局、わたし的には WX310K が最強端末で、このまま機種変更できなさそうです……。Bluetooth DUN-GW 対応の音声端末 (非 Windows Mobile 機) をさっさと出して〜〜。
ソフトバンク PDC は 2010年3月末まで
ソフトバンクモバイルが、第2世代携帯電話 (PDC) サービスを2010年3月末をもって終了することを発表しました。端末については「ソフトバンク」になって以後新規開発はされておらず、新規契約については今年4月1日に終了していますが、それから2年というスパンでサービス終了となります。
今年は、ドコモ PHS、ツーカー、シティオ (シティフォン) の停波が相次ぎましたが、もう1つの1.5GHz 帯の携帯電話サービスの終了時期が判明したことになります。もともと、1.5GHz 帯は再編のため 2010 年3月末までの使用期限となっていて、その期限ギリギリまでサービスを継続することとなるわけですね。ソフトバンク契約者の約2割が PDC だそうですが、どうやって移行・巻取りを行うかが見物でしょう。
ドコモ mova が使う 800MHz 帯は、2012年7月まで使用可能なので、mova もそれぐらいまでサービス継続すると思われますが、ソフトバンク PDC の終了に絡めて、サービス終了を前倒しするかもしれませんね。停波イべントに参加するためには、mova を新規契約しといた方がいいかなあ??

WordPress 2.6 対応つづき
拙作プラグインの WordPress 2.6 対応をすすめていますが、他にも考慮しなければならない新機能がありました。それは WP_CONTENT_DIR, WP_PLUGIN_DIR 定数の設定です。Codex にある WordPress 2.6 の新機能では特に説明がありませんが、これらはおそらく「wp-content/ ディレクトリーや plugins ディレクトリーをデフォルト以外に設定するための仕掛け」だと思われます。
Ktai Style, Ktai Entry では、プラグインの持つリソース (言語リソースや携帯テーマなど) のアクセスのため、PLUGINDIR 定数をもとにパスを変数に保存しています。このため、WordPress 2.6 対応させるためには、WP_PLUGIN_DIR 定数を基準にしなければなりません。他の置き場所に変更した場合に不具合が出ないようにするためにも、対応は必須ですね。
Ktai Style 1.41, Ktai Entry 0.86 はほぼリリースできる状態になっていたのですが、これらの対応をするために、もうちょっと手直しが必要なようです。
[追記] 「What Plugin Coders Must Know About WordPress 2.6」のコメント欄で指摘されていますが、プラグインディレクトリーを移設する機能を使うと、wp-config.php を include するスクリプトが正常動作しなくなりそうです。wp-load.php への相対パスが一意に決まらないため、「WordPress 2.6 対応」で書いたように dirname(dirname(dirname(dirname(__FILE__))));
で WordPress ルートに辿り付くとは限らないためです。うーん。これは困りました。事実上、「プラグインディレクトリーを移設する機能は使いものにならない」ということですよね。
チケット #6938 にコメントしました。Ryan さんからは wp-content/wp-load.php を提案されたものの、それに対する反対意見も出ていて、対応策はどうなるやら。とりあえず、WP_PLUGIN_DIR 定数の設定機能は使用禁止という制限をつけざるを得ないようです。

H11HW のユーザーエージェントは emobile じゃない
イー・モバイルから先日発表された新端末2機種ですが、技術情報ページにユーザーエージェントが掲載されていました。なんと、音声端末 H11HW は「オープンブラウザ」しか搭載してなくて、そのため、ユーザーエージェントは「emobile/」で始まる文字列ではありません……。これでは、Ktai Style で見ても PC 向け表示になってしまいます。
単純に「Huawei/」を携帯判別文字列として追加してもいいのですが、実際に H11HW で絵文字を含む携帯表示が適切にレンダリングされるかを確認しないとリリースはできませんね……。店頭で H11HW のホットモックを探して、(店員に承諾を得た上で) 自分の SIM を入れてみて確認でしょうか。
グリーンウッドが実写ドラマになっていた
今ごろ気がつきましたが、那州雪絵氏のコミック「ここはグリーン・ウッド」が実写ドラマとなって、7月から テレビ神奈川 (tvk) や TOKYO MX など各地の独立 UHF 局で放送されます。tvk は水曜日に放送ずみ、MX ではあす深夜放送です。MX の放送時刻である日曜日の23時30分から、というのは「サラリーマン NEO」の直後ですが、この時間帯は見逃すことが多いんですよね……。
グリーンウッドはだいぶ前に OVA 化されていていますが、実写ドラマ化は初めてですね。「何で今ごろ?」という気もするんですが、「イケメンが出てくる」「女の子っぽい男子がいる」「これらの男子が女装するシーンが多い」という面では、今ドキかもしれません 深夜帯なので、最終回の「キスシーン」もあったりして!?
キャストを見ると、如月瞬くん (鈴木拡樹さん) はちょっと厳しい気がしますが、他は妥当ですね。瞬くん役は思い切って女性を持ってきた方がよかったような 光流の弟、忍の姉が不明ですが、いずれ登場するのかな?? この2人は出て欲しいですね〜〜。
コミックスは全11巻を持っていますが、CD は持っていません。OVA はキッズステーションで再放送されたものを見ていますが、あくまで OVA なのでコミックスのエピソードが全部出ているわけではありませんでした。わたしが好きなエピソードは運動会の話と、光流・忍の1年生時代の出来事です。いかにも学園モノらしい話で、高校生活にあこがれたものです (読んだ当初はまだ中学生)。「外伝」もおもしろいのですが、割愛されてしまうかもしれませんね……。文化祭での演劇、というやり方で使ってしまうかもしれませんが。

携帯対応プラグイン Ktai Style バージョン 1.41 リリース
絵文字対応の WordPress 携帯対応プラグイン「Ktai Style」の安定版バージョン 1.41 をリリースいたしました。1.40 からの変更点は次の通りです。
- PHP 5.0, 5.1 でも動くように調整しました。ただし、PHP 5.0.x, 5.1.x でのテストは行なっていません。動かない場合はあきらめてください;-)
- WordPress 2.6 ベータ版への対応を盛り込みました。
- Compact テーマのフッターで、固定ページへのリンクメニューをやめて、固定ページ一覧ページへのリンクとしました (Redportal メニューと同じ表示)。
- 各社スマートフォンなど「その他」端末での絵文字画像に style=”border:0 none;” 属性を付与しました。絵文字が a 要素に含まれるとき、絵文字画像に枠がつかないようになります。
- PC やスマートフォンにおいて、より多くの絵文字が画像表示できるよう、絵文字と画像の対応を調整しました (画像自体は増えていません)。
- 中継ページを出さずに直接リンクするウェブサイトに「楽天アフィリエイト」を追加しました。
- 新規投稿および投稿編集で投稿スラッグが入力・編集できるようになりました。
- WordPress 2.3 以降では、ダッシュボードに下書きの件数を表示し、また、投稿管理画面で公開ステータス (投稿ステータス) での絞り込みができるようになりました。WordPress 2.2 では、投稿一覧の上部に、自分の草稿に加えて他人の草稿も表示するようにしました。
- ktai_style/admin/ 配下の管理機能に直接アクセスしてログイン画面にリダイレクトされたとき、ログイン後にアクセスしようとした管理画面にジャンプするようにしました。(PC の管理機能と同じ動作)
- 下書き投稿は作成日時を 0000-00-00 00:00:00 となるようにしました。(PC での下書き作成と同じ動作)
- au の機種判別で、7月に発売する新機種に対応しました。
- 携帯向けサムネールを作らないぐらい小さい画像 (長辺が 96 ピクセル以下) が表示されない不具合を修正しました (Ktai Style 1.35 以後発生していたバグ)。
- PNG, GIF 画像をインライン表示ではなくリンクに変換している場合 (mova, ソフトバンク PDC 等) において、PC 向けサムネールまたは中サイズ画像へのリンクが見つからない (Not Found) になっていた不具合を修正しました。
- Palm OS ハンドヘルド、シャープ Zaurus で閲覧したとき、WP-Cache 等キャッシュプラグインに携帯表示がキャッシュされてしまう不具合を修正しました。
- リンク先に Mobile Link Discovery があるかの確認で、相手先サーバーがチェンク形式のデーター (Transfer-Encoding: chunked) を返したときに、モバイル版ページの URL をうまく抽出できないことがあった不具合を修正しました。
- leave_scheme, mobile_same_url, none_mobile_url フィルターフックを使うためのフィルター関数を、携帯テーマの functions.php に書いても呼び出されるようにしました。(従来は、フィルター関数を my-hacks.php に書く必要がありました)
- 作者権限ではコメントを編集できないことがある不具合を修正しました。
- プロフィール編集で日本語ニックネームを入力しても空白になってしまう不具合を修正しました。また、WordPress 2.5 以降で、メッセージが英語の「Profile Updated.」になっていたのを日本語メッセージになるように調整しました。
- Ktai_Style::request_path() メソッドを廃止しました。代わりに
$_SERVER['REQEUST_URI']
を使用してください。 - 独自テンプレートタグ
ks_get_wp_version()
を廃止してks_check_wp_version()
を新設しました。
今回は細かいバグ修正がメインで、PHP 5.0, 5.1 および WordPress 2.6 ベータ版への対応を試みています。お手数ですがバージョンアップして頂きますようお願いします。
[追記] WordPress 2.6 対応ですが、README にも書いてあります通り、wp-config.php の移設しか対応していません。WP_PLUGIN_DIR 定数の設定でプラグインディレクトリーを移動する機能を使うと不具合が発生します。これは WordPress コア側の対応が必要なので、それまで待ってください。

グリーンウッド1回目感想
実写版「ここはグリーン・ウッド」の放送を MXTV で見てみました。他の人の感想と同様、原作にかなり沿っていると感じました。「動物のお医者さん」は原作に忠実すぎて失敗したのですが、グリーンウッドはそうにはなってないようです。
瞬くんは、かわいいけど「どう見ても男」ですね〜〜。初回の「女の子だと騙す」イタズラをやるにはちょっと無理がありました (以後のストーリーでは問題ないわけですが)。バレるきっかけが風呂場というのは、テレビらしい変更と言えますね。(原作は小用トイレ)
部屋での宴会は、原作ではアルコール出まくりでしたが、2008 年のテレビドラマではそういう訳にも生かず、ソフトドリンクしか出てませんでしたね……。オープニング映像を見る限り、「外伝」もありそうな雰囲気です。OVA と同様「学園祭での出し物」という方向のようです。ゲーセン青木もそのままありました (PS3 がチラリ)。
次回は新聞部ネタのようです。忍先輩のキャラを描くにはよいエピソードですね。体育祭はその次ぐらいでしょうか。瞬のチアガールは撮影中のようですし。
次回以降は面倒なので感想は省略の方向で……;-)
スパム軽減プラグイン Nonce! Please 1.0.0 リリース
WordPress プラグインコンペ用に作っていたプラグインを公開します。名称は「Nonce! Please」をそのまま採用し、説明を「スパム軽減プラグイン」としました。コンペの趣旨に乗っ取り、説明ページを英文の固定ページで作っています。
動作は、コメント/トラックバック受け付け URL に nonce (ランダム文字列) を必須とする、ものです。nonce は12時間ごとに変化するため、スパマーがトラックバック URL を蒐集しても、送信時には無効になっていることが期待されます。コメントも、コメントフォームを使わずに直接 wp-comments-post.php に送信してくるようなものは拒否されるわけです。
リリースに時間がかかったのは単にドキュメントが書けてなかっただけです。今回、えいやっで英作文しまして、とりあえず形にしました。めちゃめちゃ稚拙な英文で恥しいですが、non-native が書く技術文書であれば、うまい/へたはあまり関係ないでしょうし……。
あとは、固定ページの体裁をもうちょっと整えて、コンペに参加するだけですね〜〜。実はもう1本ネタがあるので、これもさっさとでっち上げる予定です。
[追記 22:05] 固定ページは作ってあったものの「非公開」のままでした……。さきほど公開しました。せっかくなので、ダウンロードリンクをこの記事に入れておきます。