unknownplace.org

前の日 | 最新のメモ | 次の日

# 2005-10-08

出社。スリーエフの店内の配置が変わっていた。ど真ん中にアイスコーナー。チョコがどこにあるかわからずさまよう。

コーヒー沸かしてスタンバったらノートのバッテリーが少ないことに気づいた。

会社行かなきゃ。

Markdown書式でclmemo

を書くようにする。そのうちchalowみたいのを書く。

正規表現の「?」

人のプログラムに kmd?\.sonymusic みたいな正規表現書いたら km(d|)\.sonymusic と直されていた。わかりにくかったのかな。

SQLiteでMySQLのtimestamp not nullみたいな挙動をさせる

create table sessions ( id varchar(32) not null, asession text, mtime timestamp default CURRENTTIMESTAMP );

ref: http://www.sqlite.org/lang_createtable.htmlより。version 3.1.0 以上。

だめだ

下記方法だとupdate時にはmtimeは更新されない。mtime timestamp default NOW() と同じということ。

Catalyst設定をばらばらに書くのが嫌

MyApp::M::CDBI とか MyApp::V::TT とかあったときにそれぞれの設定をそれぞれのファイルに書くのはだるい。

これをすべて MyApp の config で行うには MyApp::(M|V|C)::Foo などというコンポーネントモジュールの new を以下のように定義してやれば良い。

sub new {
    my $self = shift;

    $self->config($_[-1]);
    $self->NEXT::new(@_);
}

このようにしておけば MyApp で

MyApp->config(
    'M::Foo' => {
        some => 'settings',
    },
);

などとすれば MyApp::M::Foo の設定を MyApp 内で行える。Config::YAML と併用すれば外部ファイルの使用もOK。

emacsにyaml-modeあれば使う気になるんだけどなぁ。。

ふむ

NEXT モジュールを使わず

sub new {
    my $self = shift;

    $self->config($_[-1]);
    $self->SUPER::new(@_);
}

としたほうがよさげ。

やっぱり

NEXT モジュールつかわないと挙動がおかしい。Catalyst は no strict 'refs' してモジュールをいろんな名前空間に読んでるからいまだによくわからない。

もっとソース読まなくちゃ。


comments


Fork me on GitHub