uri_forのやつ
uri_withも同じようにおかしかったのでそっちもなおしてもらった。
uri_forのパッチ
いまどきのperl使いな皆様におかれましては内部ではutf8フラグを立てたutf8 stringとして文字列を扱っていると思いますが、そういった場合は uri_for は正しく動作します。
そうではなく、utf8 bytes を渡した場合、今の uri_for では壊れたURIが帰って来るというバグがあります。単純なミスなのだけど。
かなり前からなんだけど誰も気がつかないのか必要ないのか一向に直らないので業を煮やしてメールでパッチ送ったところすぐに反映してくれた。ナイス。
パッチはこんなん。
canonical してないのは仕様らしい。(昔のはしてたよね?)
mst によれば
For RSS/atom feeds etc.
とのこと。どゆこと?
WWW::HatenaDiary
CPANの更新Feedで存在を知った罠。どんだけcoderepos見てないんだよ。。。
Fuse::Hatena のコードちょっと使ってるみたいなこと書いてあるけど、逆にこれを Fuse::Hatena で使わせてもらおうw
POE::Component::WWW::Google::Calculator とか
PoCo::Genericってもんを知らないのかなこの人は。。。
DBIx::Class::AsArrayHash - Hatena::Diary::Neko::kak 500 Internal Server Error
うんうん、DBICつかってるとmapまくりよね。僕ならこう書いてるな。
my @rets = map { $_->get_columns }, $rs->all;
DBIC::AsArrayHashいらないってのは同意。
retrieveとかCDBI的なのもあれ。
なんか荒れてるやつ読んだ
論点とは違うけど、ひとつ思ったこと。
自分の書いたコードが module author に気に入られず採用されなかったときには、テストケースにして送ってみるといいと思いますよ。
自分のコーディングポリシーと違うコードだとか、そもそもいけてないとかいう理由で送られてきたパッチをスルーするのはよくある話だと思いますが、そういう場合にはテストケースとして送りつけるというのが作者側としてはありがたいです。
送られてきたパッチを読んでどのようなことがしたいのかを読み取って自分で実装してもいいけれど、やりたいことが明確にわからなかったり、実装したけどこれであってるのかどうかよくわからなかったりして、その結果よくわからないからスルーなどということになるわけですが、テストがあればそれを通るようにするだけなので。
NEXT、C3
僕はわりと好きかも。
lighttpd+fastcgiで
fastcgiだけ再起動したい場合に、再起動中にアクセスあるとfastcgiプロセスが上がったあとも500になってしまうことがあるのだけど、みんなどうしてる?
タグクラウドモジュール
いろいろあるけどなんでどれもこれもHTML作っちゃうんだろう。もっとシンプルなのほしい。hashで返してくれればいいよ。
とりあえず WWW::CloudCreator つかって
$c->stash->{tags} = [
map +{
name => $_->[0],
level => do { $_->[2] =~ /(\d+)pt/ },
link => $c->uri_for('/tag', $_->[0]),
count => $_->[1]
},
grep {ref} $cloud->gencloud
];
こんなことして希望通りのものを作ってみてる。こういうのがほしいのだが。
上記の謎の grep {ref} はWWW::CloudCreatorがタグが空な場合空配列かえせばいいのになぜか空文字かえしてくるといううんこな実装なのでそれ対策。
mobirc-irssi が実用に耐えうるようになりましたのでお知らせします
この間ちょっと紹介したirssiのプラグインスクリプトとしてmobircをつかうmobirc.plスクリプトですが、実用に耐えうる段階まできましたので再度紹介しておきます。
画面サンプルはこんな感じ。(スクリーンショットが取れるPSPでの画面です)
素のmobircはIRCクライアント機能と、HTTPD機能を両方持ち、tiarraなどのIRCプロクシにつなぐことで使用するものになっていますが、こちらのirssiプラグインではmobircのIRCクライアント機能はirssiプラグインとして実装していますので、irssiさえあれは利用することができます。
イメージ的にはirssiがHTTPDを立てている感じになってます。
またキーワード設定などもirssiのハイライト設定を使用していますので、別途mobirc側でキーワード設定をする必要がないのもちょっとうれしいところです。
実際の使い方(インストールの仕方)としては
mobirc.plをirssiのスクリプトディレクトリ (~/.irssi/scripts) にコピーor symlink
irssi起動時にmobircのlibパスを環境変数に入れとく
PERL5LIB=/path/to/mobirc/lib irssiとか。同じ意味なら何でも。
irssi起動したらmobirc.plをロードする ( /script load mobirc )
ここで
Can't locate XXX.pm in @INCとか言われる場合モジュール足りないのでそれいれる。ロードしたら config.yaml 自分用にいじって、そのパスをirssiで設定する
/set mobirc_config_path /path/to/config.yaml設定完了したら /mobirc start すると HTTPD がたちあがる
mobirc started ってirssiコンソールに出てればOK。httpでつないで確認する。
とかでOK。
ほか機能としては、
/mobirc stopでhttpd停止。/mobirc stop->/mobirc startでyaml読み直してHTTPD再起/set mobirc_auto_start onしておけば次回から/script load mobircするだけでHTTPDたちあがる/script loadするのさえめんどいというひとはスクリプトを~/.irssi/scriptsにおくかわりに~/.irssi/scripts/autorunにおけば irssi 起動時に自動起動する
という感じ。irssi使いには必須のスクリプトかと思います!
Enjoy!
