Catalyst::Plugin::XSendFile

lightyのX-SendfileをCatalystから使うプラグインをつくった。

$c->res->sendfile("/path/to/file");

って感じで使えます。同じインタフェースでCatalystテストサーバーの時でも動くようになってます。

miyagawaさんの話だとperlbalでも同じようなことが出来るとのこと(もっと高機能)。でさらにそれにmogilefsを組み合わせるとかなりスケーラビリティが高そうな感じ。

ちょっと見てみるべきかなぁ。

by typester / at 2006-07-21T21:05:00 / perl · catalyst · lighttpd / Comment

CDBI で鬼はまる。

あーーーもう二度と触りたくない。

by typester / at 2006-07-20T23:53:00 / life · perl / Comment

miyagawaさんが作ってくれた!

Term::Encoding

cooool

by typester / at 2006-07-12T17:04:00 / perl / Comment

端末の文字コードを得たい

perlで端末の文字コードを知るにはどうやるのがいいんだろうと思って、LC_ALLとかでgrepした結果、

use Locale::Maketext::Lexicon { _encoding => 'locale' };

my $encoding = Locale::Maketext::Lexicon::encoding();

とかでました。いちおうこれでできるけど超微妙。

このencoding関数だけ外だしにしたようなモジュールないのかなぁ。

by typester / at 2006-07-12T13:59:00 / perl / Comment

naoyaグループ - naoyaの日記 - overload#2

あーそうか、だめじゃんオレ。うーむ、これやるにはどうするのがかっこいいんだろ。

by typester / at 2006-07-03T17:04:00 / perl / Comment

overload

naoyaグループ - naoyaの日記 - 正規表現 overload

これは普通に文字列参照のoverloadでいいんじゃない?

use strict;
use warnings;

{
    package NDOString;

    use overload (
        q{""} => sub { shift->stringify },
    );

    sub new {
        my ($class, $str) = @_;

        bless { string => $str }, $class;
    }

    sub stringify {
        shift->{string};
    }
}


my $str = NDOString->new('blah blah');

$str =~ s/a/u/g;

print $str;

こんな感じで。

by typester / at 2006-07-02T18:23:00 / perl / Comment

Action attribute

Catalyst 5.70 の dev リリースでサポートされた Action attribute 良いね。

http://search.cpan.org/~mramberg/Catalyst-Action-RenderView-0.01/lib/Catalyst/Action/RenderView.pm

こんなんとか簡単に作れる。cool。

sub foo : Action('+Foo::Bar')

sub foo : MyAction('Foo::Bar')

と等価。

by typester / at 2006-06-27T13:09:00 / perl · catalyst / Comment

Weak references are not implemented in the version of perl

なにげなく aptitude upgrade したら CRON からメールがきまくって

Weak references are not implemented in the version of perl at /usr/local/share/perl/5.8.4/DBIx/Class/Schema.pm line 7

とかで Scalar::Util::weaken 使ってるスクリプトが全滅。

おいおいなんだよこれ。

weaken は Catalyst でも DBIC でも使ってるのでこのままだと fastcgi プロセス再起したらこの鯖で動いてる Web アプリ全部死亡する危機w

なんでだろーとおもってとりあえず Scalar::Util 再インストールしたら直った。

謎過ぎる。。同じバージョンだったのに。

by typester / at 2006-06-26T22:47:00 / perl · debian / Comment

NEXT, Class::C3 のいいとこ

redefineが楽チン。

てかダメダメいってたけど最近はそうでもなくなってきた。

by typester / at 2006-06-23T13:13:00 / perl / Comment

マルチ language なアプリを作る練習もかねて、ちょっとしたサイトつくりはじめたんだけど、

msgid  "Logged in as %1"
msgstr "%1 としてログインしています"

こういうのが化ける。%1 とかはいってないのはいける。Unicodeフラグっぽい化けかたなので、MyApp.pm に

sub localize {
    my $c    = shift;
    my $text = shift;

    my $args = ref $_[0] eq 'ARRAY' ? $_[0] : [@_];

    for my $arg (@$args) {
        utf8::decode($arg);# unless utf8::is_utf8($arg);
    }

    $c->NEXT::localize( $text, $args );
}

とか書いてみたら直ったよ。しかし、is_utf8 のところコメント外すとうごかねーよ、なにこれ。

$args には is_utf8 は真だけど、perl utf8 じゃないのがはいってる?何かが悪さをしておる。

Unicode プラグインと併用してるのがまずいのかもしれん。

by typester / at 2006-06-23T02:47:00 / perl · catalyst / Comment

14 15 16 17 18 19 20 21 22 23

(Page 18 of 30)