« 2007年03月 | メイン | 2007年05月 »

2007年04月23日

Re: PoCo::Client::HTTP が勝手に文字コードを変えてしまう件

 PoCo::Client::HTTPでGETしまくってたら、一部のサーバーのどの日本語ページも$res->content_typeの文字コードと実際の文字コードが合わなくておかしいと思ってたんだけど、こういうことだな?多分0.80以降のXangoベースのアプリも壊れる予感。

 うぅ、こいつは小さな親切、大きなお世話の類いだな・・・GunghoではしょうがないのでPOEエンジン内で、またエンコードしなおすという荒技を使う事にしてみる。

PoCo::Client::HTTP decodes content (w/o Permission) - D-5 出張版

 この件ですが、charset が宣言されていない場合にも ISO-8859-1 として decode してくれてしまうようです。その場合もエンコードしなおすとして、任意のバイト列について $bytes eq encode('iso-8859-1', decode('iso-8859-1', $bytes)) が成立するか自信がなかったので、逆変換ではなく変換自体を抑止するようなパッチを書いてみました

package HTTP::Response;

sub decoded_content {
    my ($self, %opt) = @_;
    my $caller = Devel::StackTrace->new()->frame(2)->subroutine;
    if ($caller eq 'POE::Component::Client::HTTP::Request::return_response') {
        $opt{charset} = 'none';
    }
    $self->SUPER::decoded_content(%opt);
}

 これで OK のはず。lestrrat さんのやりかたとどっちがいいのかは全然知りません (^^;

 ちょっとずれた感想ですが、スーパークラスのメソッドかどうか、あるいは AUTOLOAD かどうか、によってラッパーの書き方が変わるのが面倒だなと思いました。

投稿者 kazuho : 2007年04月23日 14:01 | コメント (2) | トラックバック (1) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2007年04月16日

Gungho をインライン化してみた

 ちょっとクローラーが必要になったのですが、POE の勉強は面倒なので Gungho を使って作ることにしました。開発が始まったばかりっぽいけど、使いやすそうだし期待大ということで。で、コードを読んでいて思ったのは、provider (URL をフィードするモジュール) と handler (ダウンロードしたコンテンツを処理するモジュール) は再利用されない (=各アプリケーション専用の処理になる) 場合も多いんじゃないかということ。だったらいちいちパッケージ定義して設定値渡しとか面倒だよねというか、ぶっちゃけ自分がクロージャで書きたいと思ったので、ラッパーを書いてみました。こんな感じで使えます。

続きを読む "Gungho をインライン化してみた"

投稿者 kazuho : 2007年04月16日 10:35 | コメント (2) | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2007年04月05日

Mylingual Slides @ YAPC::Asia 2007

 YAPC::Asia 2007 TokyoJapanizeMylingual の考え方と現在の状況、および将来について発表をしてきました。途中でパソコンが2回もハングして、スライドをすべてお見せすることができませんでした。申し訳ありません orz こちらにおいておきますので、ごらんいただければ幸いです。


[最初から] [戻る] [次へ] [PowerPoint をダウンロード]

投稿者 kazuho : 2007年04月05日 13:41 | トラックバック (1) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2007年04月03日

YAPC::Asia 2007 Tokyo が明日から開催

 明日から開催される YAPC::Asia 2007 Tokyo で発表をさせていただきます。

Japanize and Mylingual are user-based projects of translating web-based application user interfaces. The projects have gained more than 25,000 users within five month since its announcement. The talk will cover technical and social aspects behind its success as well as its future plans. (Japanize と Mylingual は、ウェブアプリケーションを翻訳するユーザーベースのプロジェクトです。Japanize は公開後5ヶ月間で25,000人以上のユーザーが利用するまでになりました。このセッションでは、同プロジェクトの技術的背景と社会的意図、将来の計画についてお話します。)

Mylingual - There's More Than One Language To Do It - YAPC::Asia 2007 Tokyo Sessions

 演題は「Mylingual」となっていますが、もちろん Japanize の話もするつもりです。参加される皆さまには、よろしくお願いいたします。

投稿者 kazuho : 2007年04月03日 16:47 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク