2008年5月の投稿

2008-05-15
くもり

Ktai Style 1.50-test1 配布

ゆりこ による 23:26:03 の投稿
カテゴリー: WordPressハック
タグ: ,

Ktai Style の次期バージョンのテスト版 (その1) を配布いたします。あくまで製作中のバージョンですので、新機能に興味ある方のみご利用ください。(Ktai Style を紹介してくださっている利用者の方へのトラバも省略です)

  • スマートフォン等の「その他」端末では、プラグイン画像をそのまま表示させるようにしました。例えば、FireStats の国旗・OS・ブラウザーアイコンが、プラグイン組み込みのものがそのまま出ます。
  • PC でも絵文字が画像で表示されるようにしました。今のところ、iモード絵文字のみすべて画像で出ます。それ以外の絵文字は順次対応する予定です。
  • 言語リソースを lang フォルダーに、電話キャリアー用ライブラリーを operators ディレクトリーに移動しました。
  • 管理機能は、WordPress 2.3 以降対応としました。
  • img 要素に alt 属性がないときに画像を隠していた不具合を修正しました。(Ktai Style 1.3.3, 1.34 で発生したバグ)
  • 作成者権限しかないユーザーが絵文字を含む投稿を編集すると、img 要素が壊れてしまう不具合を修正しました。
ダウンロード: ktai_style150-test1.tar.bz2(233KB)
テスト版その2を作成しました。

正式なバージョン 1.50 では、もうちょっと機能追加を検討しています。少なくとも、ウィルコム・スマートフォンで新規投稿するときに画像添付ができるようにする予定です。自動ログインも組み込みたいですが、まだ仕様や実装方法を決めていません。とりあえず、PC でも絵文字が見えるようにしたので、それを先行公開とします。

バージョン番号は 1.50 とします。WordPress ME 2.2.x 系統で管理機能を使うには 1.3x 系統を継続利用する必要があるため、ブランチを切る予定ですが、バグフィックスを 6回以上できるように、バージョン番号を離しておくためです ;-)

今さらですが、ビジュアルエディタで絵文字を含む投稿を編集すると絵文字が消えることが分かりました。ビジュアルエディタが <img localsec=”NNN” /> フォーマットのうち localsrc 属性を理解しないためです。対応させるのはかなり困難そうなので、当面は制限事項とさせてください。

2008-05-16
晴れ

Ktai Style と WP-Cache を併用する

ゆりこ による 12:38:09 の投稿
カテゴリー: WordPressハック
タグ: , ,

ページ表示をキャッシュするプラグイン WP-Cache (日本語版) は、そのままKtai Style による携帯電話向け表示で問題があって併用できません (携帯電話に PC 向け表示が出たり、携帯向け表示になっても文字化けしたり)。それを回避するコードを開発しましたので、公開してみます。まだ試験段階なので、別途配布の状態です。現在、「旅行記」の方で実運用しています。Ktai Style 1.35 で正式採用しました。

ダウンロード: wpcache0517.zip (777バイト)
CVS からダウンロード: patch-wpcache.php
Ktai Style 最新版に同梱している patch-wpcache.php を使ってください
  1. 圧縮ファイルを展開して、patch-wpcache.php をサーバーの wp-content/plugins/ktai_style/ ディレクトリーに入れます。(追記: wpcache.php から patch-wpcache.php にリネームしました)
  2. WP-Cache を入手し、展開します。wp-cache-config-sample.php を複製して wp-cache-config.php を作り、19行目 ($cache_rejected_user_agent を設定した直後) に以下のコードを書きます。
    if (file_exists(ABSPATH. 'wp-content/plugins/ktai_style/patch-wpcache.php')) {
            include ABSPATH. 'wp-content/plugins/ktai_style/patch-wpcache.php';
    }
  3. WP-Cache をインストールします。wp-cache-config.php は wp-content/ 直下に入れます。
  4. WP-Cache を有効にします。携帯電話で見て文字化けしていないことを確認してください。

以前から WP-Cache との併用をどうすればいいか検討していましたが、できるだけ簡単に設定する方法として、以上のような手法となりました。けっきょく、携帯電話では一切キャッシュしないという方法になっています。Mobile Eye+ と WP-Cache を併用する場合は、携帯電話向けコンテンツも別途キャッシュしていますが、Ktai Style の場合は、機種ごとに絵文字やページ分割位置が異なるため、「キャッシュしない」という方法を取らざるを得ません。携帯電話向けには、オブジェクトキャッシュを行う方向で検討してみます。

[追記] 少し問題が発生しました。スマートフォン等で「PC表示にする」と切り替えたときは、キャッシュされず、また、キャッシュを使いません。PC 表示をするかどうかはクッキーを使っていますが、wpcache.php でそのクッキーを見るようにしてみます。→配布ファイルを差し替えました。

[追記 2008-05-23] WP Super Cache への対応も行いました。

2008-05-17
くもり時々晴れ

Ktai Entry + Ktai Location で XHTML 文法違反

ゆりこ による 02:29:58 の投稿
カテゴリー: WordPressハック
タグ: , , ,

Ktai EntryKtai Location を併用すると、Invalid な XHTML 出力になってしまうことが分かりました。例えば、「今度は入場時タッチ不良でエラー」という記事を Markup Validation Service で検査させてみると、「p 要素が始まってないのに終了タグがある」などのエラーになります。

旅行記の XHTML エラー結果画面

これは、Ktai Entry の投稿テンプレートと、Ktai Location が位置情報 URL を div 要素で囲む処理の相性が悪く、WordPress の XHTML 整形処理が正しく機能しなくなってしまうためです。投稿テンプレートは以下のように本文を p 要素で囲むようにしています。

<div class="photo">{images}</div>
<p>{text}</p>
<div class="photo-end"> </div>

で、本文に位置情報 URL があると、Ktai Location は locationurl というクラスで div ブロック化します。

<div class="photo">(画像)</div>
<p>(本文)
<div class="locationurl">(位置情報URL)</div>
</p>
<div class="photo-end"> </div>

これを WordPress は以下のように整形してしまいます。本文の直後に p 要素の閉じタグを入れるのです。このため、最初にあった p 要素閉じタグが浮いてしまうわけです。

<div class="photo">(画像)</div>
<p>(本文)</p>
<div class="locationurl">(位置情報URL)</div>
</p>
<div class="photo-end"> </div>

けっきょくのところ、p 要素の中に div 要素を入れてしまうのが不正なので、これは Ktai Location の処理が悪いわけですね。もしくは、Ktai Entry のテンプレートを変更して、本文を p 要素で囲まないようにしても OK です。wp-mta が生成する XHTML はそうなっていました。しかし、この場合、縦横の写真が混ざったときのレンダリングが変になってしまうため、Ktai Entry では本文を p で囲む処理としました。

つまり、Ktai Location の div 要素囲み処理を改善して、p 要素の外に出してやればいいわけです。どうせ class=”locationurl の部分は CSS で display:none となるので、位置をずらしても問題ありません。これは Ktai Location のバグフィックスとしたいと思います。現在のバージョンが 0.99 なので、ついに 1.00 とするか、0.991 と逃げるか……。

[追記] バージョンは 0.991 として、CVS に改良版をコミットしました。手元のテストでは動作良好ですが、これから生田緑地ばら苑見学で実テストする予定です。

[さらに追記] 実地テストはダメでした。今度は div 要素に </p> が入ってしまっていました。地図 URL として認識する部分に HTML タグ要素が入らないように修正してコミットしました。

2008-05-18
晴れ

またケータイ大喜利は没

ゆりこ による 01:20:23 の投稿
カテゴリー: テレビ・メディア
タグ: ,

今回のケータイ大喜利もあえなく没でした。元気田イクゾーは「畳にキス」というのを始め、あまりいいネタが出てきませんでした。「全校生徒を呼ぶ」は思いついて然るべきなので、悔しいですね。

居酒屋は「ビールをジョッキ半分しか注がない。」というのを送ろうとしたら「ジョッキに把手がない」というのが採用されていたので、厳しいですね…… (似たネタは採用されないので)。「『ポテトもいかがですか』と聞いてくる」「店員を呼ぶボタンが有料」というのは自信がありましたが、放送作家の好みに合わなかったのでしょう。「座席がブーブー座布団」も送りましたが、これは同案多数だと思うので没で仕方ないかと。あと「ブーブー座布団」が商品名かもしれない……。

お天気キャスターも難産で、「今日も長崎は雨でした」「この予報はオッズ2倍です」ぐらいしか出てきませんでした。NHK は「商品名がダメ」なもののアニメや歌は問題ないと思ったのですが、まあ平凡すぎましたね。「オッズ2倍」はいけるかと思いましたが、賭け事はダメという基準があるのかも??

40万も応募があるので、オモロイと思うのを送っても、放送作家や千原ジュニアさんが「こういう流れにしたい」という考えに合わない投稿が没になってしまうんですよね〜〜。一度メジャーに昇格してしまえばもっと早く投稿できるので、逆に、事前投稿の作品をもとに放送の流れを構成してくれるんでしょうが……。

Movable Type のモブログ環境って貧弱?

ゆりこ による 05:31:08 の投稿
カテゴリー: ソフトウェア
タグ: ,

TypeCast の動作を確認すべくテスト環境を作るために、MTOS にも手を出そうかと思っています。で、気になって Movable Type でのモブログ環境を調べてみたのですが、結構貧弱なことが分かってしまいました ;-)

MT では、XML-RPC で投稿処理を行なってくれるサービスを使うのが主流のようです。これだと、メール送信するだけで投稿処理がされるので簡単ですね。シックスアパートの平田さんによる moblog.uva.ne.jp がその草分けで、他のサービスとして、MTmailモブログくんSendMob などがあります。ただ、この仕組みだと、各サービスにユーザー登録登録する必要があること (== MT のユーザー名・パスワードを登録する必要がある)、サービスがメンテナンスしているとモブログできないこと、などが弱点です。特に、moblog.uva.ne.jp は個人運営ですから、サービスの継続性という面でリスクがあります (突然事故死される可能性はゼロではない)。といって、残り3つも運営状況があまりオープンではないのは不安です。現に、「ubicast Mail Blogger」というサービスは終了してしまったのか、サイトに接続できません→システム障害だったようでした (ここはトラブルが多そう)。また、SendMob 以外は「複数の写真を添付できない」のは明らかな欠点です。

となると、MT を入れたサーバーで動かすメール投稿ツールを使いたいわけですが、こちらは種類が少ないのです。osho さん作の mail-entry、ゆあささん作の mtmob、Noda さんの Moober があります (post2blog は開発止まってるっぽいのでパス)。前2つは mail-entry.cgi ないし mtmob.php を叩くと外部の POP サーバーに読みに行くタイプです。自動で投稿処理をするには、cron を使うとかメール着信したら投稿スクリプトが動く仕組みに改造をするしかないようです。Moober は MT が持つ定期実行タスク (run-periodic-tasks) をキーにメール取り込みを行うようです。添付ファイルも MT に登録されるなどモダンな設計ですね。

こうやってみると、各種 WordPress 用メール投稿ツールの方が進んでいますね。もちろん、ブログサービスのモブログ機能の方がもっと使いやすいわけですが ;-) Movable Type でモブログしている人って不満がないんでしょうか……。

2008-05-19
くもりのち雨

PC の投稿画面でも絵文字挿入したい

ゆりこ による 04:07:59 の投稿
カテゴリー: WordPressハック
タグ: ,

Six Apart が配布した携帯絵文字画像を Ktai Style に組み込んで、PC・スマートフォンでも絵文字を出す改造はすぐにできました。でも、そうなると、PC の投稿画面でも絵文字を入れられるようにしたくなってきました。今回配布された絵文字を MT 投稿画面で使えるプラグインがさっそく発表されていますので、それの WordPress 版とすればよいでしょうか。

また、Ktai Style の絵文字フォーマット (<img localsrc=”NNN” />) がビジュアルエディタと相性が悪い (絵文字が消えてしまう) ため、その改善を含めた改良としたいですね。そうなると、独立プラグインじゃなくて Ktai Style の1機能とした方がいいかもしれません。逆に、独立プラグインとしてしまって「PC での絵文字表示・入力対応プラグイン」とする手もあります (Ktai Style は絵文字画像の同梱をやめる)。

まずは、TinyMCE Advanced をダウンロードして、ビジュアルエディタに対するプラグインをどう書けばいいのか確認してみます。絵文字を含む投稿をビジュアルエディタで編集できないのは、けっこうまずい問題だと考えていますので、優先順位は少し高めです。Ktai Style に対しては「携帯用投稿画面でファイル添付」「自動ログイン」「外部リンクが携帯対応サイトか確認する」などの機能改善案もあるのですが、なかなか手がつけられませんね……。

どうしてもビジュアルエディタの問題が解決しなければ、絵文字フォーマットを変更するという大技も検討しています。:Ktai-NNNN: という感じでしょうか……。現行の <img localsrc=”NNN” /> フォーマットは、携帯向けテンプレートで <img localsrc=”NNN” alt=”XXXX” /> とすれば、alt 属性を使えるために採用したものです。テンプレートではこっちの方が自然な書き方ですよね。

2008-05-20
雨のちくもり

メール投稿ツール比較表に wpmob 追加

ゆりこ による 16:09:14 の投稿
カテゴリー: WordPressハック
タグ: , , , ,

以前当サイトで発表した「WordPress 用メール投稿ツール比較表」ですが、現在は Ktai Entry 説明書に掲載していて、そちらをメンテナンスしています。さきほど、ゆあささん作の wpmob を追加しました。

わたしの趣味で「メール投稿するだけで投稿される方が利便性が高い」と考えたため、wpmobExpress を優先して掲載していたのですが、ツール本体の機能としては wpmob の方が高く、また、wpmob, MobG のような「投稿処理を手動で行うツールの方が使いやすい」という人も存在するようなので、掲載することにしました。wpmob は XML-RPC 経由で投稿するため、画像がメディアライブラリに登録される (はず) なのもよい点ですね。のですが、画像は独自ディレクトリーに手動アップロードしてて、メディアライブラリへの登録はしないようです……。

wpmob, wpmobExpress は古くから存在し、かつ、定期的にメンテナンスされているというすばらしいツールです。気になるとすれば、wpmob は XML-RPC 利用のため、WordPress のユーザーID、パスワードを記録する必要がある (==パスワード変更したら wpmob もパスワード変更しなくてはならない) のが面倒な点でしょうか。あと、画像がメディアライブラリに登録されないので、画像の管理がちょっと大変なところでしょうか。

Ktai Location の対応地図サービス追加

ゆりこ による 19:57:05 の投稿
カテゴリー: WordPressハック
タグ: ,

Ktai Location では、各種地図サービスの 地図 URL に対応していますが、さきほどチェックしてみると、iモード向けの駅探・乗換案内マップル地図ナビ乗り換えも、地図 URL に緯度・経度が出るようになっていました。逆に、ゼンリン地図ナビ (http://i.i.zenrin.co.jp/MapToLink/p1?… という URL) は、緯度経度がそのまま出なくなったため、非対応になりました。(追記: 3600 で割れば緯度・経度になることが判明したため、利用可能とします)

こうなると、テストをやり直さないといけないため、次のリリースを 1.0.0 にするのは無理ですね……。やはり 0.991 にせざるを得ないようです。また、ソフトバンク向け地図サービスの URL も要確認ですね。衝動買いした SoftBank 3G 端末 は GPS 非対応ですが、地図サービス自体は使えると思いますので、調査してみたいと思います。

[追記] ALPS を合併したためか、モバイル Yahoo! 地図情報が強化されていました。「この地図を友だちに教える」機能では緯度・経度が出ませんが、地図を表示させているページの URL には含まれているので、端末の機能として閲覧中ページの URL をメール送信すれば、位置情報 URL が取得できます。

Yahoo! まで対応するとなると、0.001 のバージョンアップとは言い難いので、きっちりテストしてバージョン 1.0.0 としたいと思います。

2008-05-21
晴れ

ついに FeliCa, GPS, Bluetooth, 防水, Rev.A が揃う?

ゆりこ による 00:19:14 の投稿
カテゴリー: モバイル・携帯電話
タグ: , , , , ,

ケータイ各社からなかなか FeliCa, GPS, Bluetooth, 防水, HSDPA/Rev.A の全部入りが出ないと思っていたんですが、au の夏モデルで噂されている W62CA は、ついにそうなるようです。噂サイトの情報によると、KCP+ (== Rev.A, Bluetooth), EZ Felica, 防水, G’z GEAR (電子コンパス/温度計 etc) 搭載だそうですよ!! 当然ポケベル入力対応でしょうから、わたし的には「究極の全部入り」になりそうです (ワンセグは正直どうでもいい)。

au はもう電子コンパスを搭載しないのかと思っていたのですが、復活するとなるとうれしいですね。ヘタすると E03CA を長持ちさせないといけないかと思っていましたが、夏モデルに機種変かな〜〜。6月3日にあると思われる発表が楽しみです。

ドコモは来週27日に夏モデルが発表されますが、防水機種がどれだけ出るかですね。SO906iWP という噂があるようなのですが、ソニー端末はあまり好みじゃない……。

短いコメントの拒否プラグイン Reject short comments 0.8.0

ゆりこ による 02:26:43 の投稿
カテゴリー: WordPressハック
タグ: , , ,

以前公開した、「内容が短いトラバを拒否するプラグイン」ですが、コメントスパムにも対応させました。名前も「Reject short comments」に変更しています。

  • トラックバックの拒否バイト数は 128 バイトに増やすかわり、0×80-0xfc が含まれる場合 (==マルチバイト文字列と推測される場合) は短い場合でも救済することにしました。
  • コメントスパムはマルチバイト文字列であっても 64 バイト未満を拒否します。64バイト以上であっても、全体がハイパーリンクである場合は拒否します。
ダウンロード⇒reject-short-commens080.zip (1.2KB)
reject-short-commens081.zip (1.2KB)

Akismet と違って、拒否したコメント等は記録に残りません。スパムをデータベースにすら記録させないことが目的なので、誤爆に対しては厳しい対応となっています ;-) とはいえ、まともなトラックバックならば、ある程度の長さがあると思われるので大丈夫でしょう。

[追記 2008-05-25] なんと、コメントが一切できないというバグがあったので、アーカイブを差し替えました。ご迷惑をおかけしました。あと「http:// のリンクが2つ以上あるとエラー」にする仕様になってて凶悪すぎるのでそれもやめました。