Schema::LoaderでどうやってModel定義するのか全然わからん。定義したところでどうやって使うのかわからん。
$c->model('Hoge')->search(...);
しようとするとsearch() なんてないって言われるし。./scripts/hoge_create.plのヘルプ情報は嘘ばっかだし。
Schema::LoaderでどうやってModel定義するのか全然わからん。定義したところでどうやって使うのかわからん。
$c->model('Hoge')->search(...);
しようとするとsearch() なんてないって言われるし。./scripts/hoge_create.plのヘルプ情報は嘘ばっかだし。
http://unknownplace.org/memo/2006/06/21#e002
id:typesterさんの書き込みとかを見て、再度挑戦。
./scripts/hoge_create.pl model Foo DBIC::Schema Hoge::Model::Schema \
create=dynamic 'dbi:Pg:dbname=hoge;host=1.1.1.1' hoge
<snip>
-bash-2.05b$ ./script/hoge_server.pl -r
Couldn't load "Hoge::Model::Foo", "Can't locate object method "config" via package "Hoge::Model::Foo" at /home/daisuke/svn/Hoge/script/../lib/Hoge/Model/Foo.pm line 6.
Compilation failed in require at /usr/local/lib/perl5/site_perl/5.8.8/Module/Pluggable/Fast.pm line 82.
" at /usr/local/lib/perl5/site_perl/5.8.8/Module/Pluggable/Fast.pm line 84.
Compilation failed in require at ./script/hoge_server.pl line 49.
-bash-2.05b$
ハァ?!Foo.pmを見ると
package Hoge::Model::Foo;
use strict;
use base 'Catalyst::Model::DBIC::Schema';
Catalyst::Model::DBIC::Schema は Catalyst::Model、Catalyst::Componentから継承しているのでconfig()はあって当たり前なんだが。どういうことよ・・・
ああああああ、もう、ストレス。
恵比寿「俺のハンバーグ」で昼食。夜、豆腐と豚肉で作ったハンバーグ。
id:toyaさんとこで見たのでちょいとやってみたよ。
「辰巳琢郎」が出てきたのって、絶対「アスパラガス」を選んだからだと思う。
100人に聞きました。
「ズバリ、牧大輔さんといえば?」
面白い …40人
趣味が社交ダンス …36人
お金にうるさい …17人
物まねがうまい …5人
早口 …2人
100人に聞きました。
「牧大輔さんは誰に似てる?」
辰巳琢郎 …40人
岡村隆史 …36人
田原俊彦 …17人
緒形拳 …5人
きよ彦 …2人
100人に聞きました。
「最後に、牧大輔さんに一言!」
例の件よろしく …40人
愛してます …36人
帰ってこい …17人
握手して下さい …5人
知らね~! …2人
Module::Build cant upgrade anything XS it uses (or couldnt/cant without a modern EU::I) on Win32. So since Pathtools is a dual build module, the only way you can install it on Win32 is to install it from a clean shell with nothing running, and then to use the EU::MM install infrastructure as it avoids locking the files (by not using Perl to do the install).
Holy shit.まじかい。
MEGUMIは好きだ。
Web上でモノを書き始めたのがワールドカップフランス大会のあった年だった。あの年はまだSt. Louisの寮に住んでて、男二人の所帯で好き勝手に色々遊んでた。毎週のようにボウリングしてた。ワールドカップ決勝をブラジルで見るためにわざわざ帰ったのに3-0で負けるなんて事があった年だったなぁ。
近所のやすーいピザ(一枚150円)と、たまにお金があると食べれる怪しい中華食堂の肉うどんばっかり食ってた。自炊したかったけどルームメイトが「魚の出汁は臭い」とか言うのでなかなか作れなかった。700kmの道のりを何回も何回も往復した。あの夏は暑かった。摂氏45度の中だった。
プール。ざばざば。体格が良くて筋肉もついてて、って人でも泳ぐのは意外と遅くて結構見てておもしろい。泡ばっかりたてて全然前に進まないでやんの。
税理士さんが来て帳簿の帳尻合わせ。
眠気で仕事がはかどらない事が容易に想像できたので長年の懸念事項であった(?)旧PowerBookの修理のために銀座へ。もう何ヶ月も放っておいたのだが、今日はがんばって行ってきたよ。以前渋谷のマックストアにも持って行った事があるんだが、多忙だかなんだかしらんけど、午前中に行ったのに相談できるのが午後5時とか言われてむかついて以来断念したのであった。
ってことで銀座。修理依頼はいたって簡単。20分でおわった。その後木村屋に行っておみやげ用あんパン購入。木村屋本店のあんパンはうまい。
うはー、なんと2週間ぶりの休肝日。
毎回ではないのだけれども、再放送でやってる「きみはペット」を今更ながら見てる。なんかおもしろくねーか、これ。今度ちゃんと見よう。っていうか読もう。14冊か・・・文庫でないかな・・・
しょぼ。しょぼい。しょぼい!
これですよ、これ。得点シーンもいいけど、ロナウジ-ニョの背面パスとか、ロナウドのカカへのパスとか、そういう細かい技が見てて楽しい。あとロベルトカルロスとか、ゼ・カルロスとかがカバーに入ると、きっと止めてくれるという安心感。サッカーはこうでなくては。
多分後で書く。とりあえず箇条書き
俺のバグじゃなかったーーーーーーーー!わーい!
ところで昨日は期せずして徹夜してしまった。まぁ差し迫った問題もあったんだが、正直徹夜するつもりではなくて・・・でも気づいたら明け方。7時過ぎに寝て、11時半くらいに起床。その後メールとかぼちぼちやって、素麺とオクラを食べて今にいたる。
「いいとも」に国生さゆりがでてきた。この人に感じの似た人の事をちと思い出した。
思い出したと言えば、この間2年半ぶりくらいに会った人がいて、ほんの30分くらいなんだけどちょっと胸がいっぱいになった。
しかし眠い。インデックスファイルの再構築はまだ終わらない。
最近オランダ人のAと仲が良いのでこんな事書くのはアレなんだが、この試合ずーっと見ててもう一試合みたい!と思ったのはオランダじゃなくてコートジボアール。ちょっと詰めが甘いけど、パスワーク、ドリブル、どっちもコートジボアールのほうが美しいし楽しい。
勝負は詰め将棋のように必然的に勝つようにして勝つのももちろんありなんだけど、やっぱり瞬間的な閃きから生まれる動きは美しい。コートジボアール、ここで消えてしまうのはちょっともったいないなぁ。
代々木上原で飲んでたら高橋克己と遭遇。おもわず、へぇ。
ちなみにこれ、皆はまるところなので昨日の続き:
sub match_me
{
my ($regexp, $string) = @_;
return $string =~ /$regexp/o;
}
これは一見速くなりそうだけど、実はNG。/oを使うと、最初に$regexpに渡した値でこの正規表現はコンパイルされてしまうので、次に違う値を$regexpに渡しても前回の正規表現を使用してしまう。以下テスト:
use strict;
sub poop { my($regexp, $string) = @_ ; return $string =~ /$regexp/o };
my $RE1 = "foo";
my $RE2 = "bar";
my $STRING1 = "foo" x 2;
my $STRING2 = "bar" x 2;
if (poop($RE1, $STRING1)) {
print "$RE1 matches $STRING1\n";
}
if (poop($RE2, $STRING1)) {
print "$RE2 matches $STRING1\n";
}
if (poop($RE1, $STRING2)) {
print "$RE1 matches $STRING2\n";
}
if (poop($RE2, $STRING2)) {
print "$RE2 matches $STRING2\n";
}
daisuke@beefcake daisuke$ perl poop.pl
foo matches foofoo
bar matches foofoo
本当は最初のと最後のがあたるはずなのに、最初の二つしかあたらない。これはどういうことかというと、/oが$regexpをコンパイルするのは最初のpoop()呼び出しの時だけだから。だからこうやって動的に正規表現を作成して使用する場合には/oは使っちゃ駄目駄目。
例えばpoop()の中で繰り返し同じ同じ正規表現を使う場合はqr()を使うと吉:
sub poop {
my($regexp, $string) = @_;
my $compiled = qr($regexp);
for (1..10) {
$string =~ /$compiled/;
}
}