D-7 <altijd in beweging>

Day to day life of a Perl/Go/C/C++/whatever hacker. May include anything from tech, food, and family.

2006年06月


Schema::LoaderでどうやってModel定義するのか全然わからん。定義したところでどうやって使うのかわからん。



$c->model('Hoge')->search(...);

しようとするとsearch() なんてないって言われるし。./scripts/hoge_create.plのヘルプ情報は嘘ばっかだし。



    このエントリーをはてなブックマークに追加 mixiチェック



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()はあって当たり前なんだが。どういうことよ・・・


ああああああ、もう、ストレス。



    このエントリーをはてなブックマークに追加 mixiチェック


恵比寿「俺のハンバーグ」で昼食。夜、豆腐と豚肉で作ったハンバーグ。



    このエントリーをはてなブックマークに追加 mixiチェック


id:toyaさんとこで見たのでちょいとやってみたよ。



http://u-maker.com/o/100nin/



「辰巳琢郎」が出てきたのって、絶対「アスパラガス」を選んだからだと思う。





100人に聞きました。
「ズバリ、牧大輔さんといえば?」
 面白い …40人
 趣味が社交ダンス …36人
 お金にうるさい …17人
 物まねがうまい …5人
 早口 …2人

100人に聞きました。
「牧大輔さんは誰に似てる?」
 辰巳琢郎 …40人
 岡村隆史 …36人
 田原俊彦 …17人
 緒形拳 …5人
 きよ彦 …2人

100人に聞きました。
「最後に、牧大輔さんに一言!」
 例の件よろしく …40人
 愛してます …36人
 帰ってこい …17人
 握手して下さい …5人
 知らね~! …2人


    このエントリーをはてなブックマークに追加 mixiチェック



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.まじかい。



    このエントリーをはてなブックマークに追加 mixiチェック


MEGUMIは好きだ。



    このエントリーをはてなブックマークに追加 mixiチェック

http://twitter.com/lestrrat/statuses/110765392
    このエントリーをはてなブックマークに追加 mixiチェック


Web上でモノを書き始めたのがワールドカップフランス大会のあった年だった。あの年はまだSt. Louisの寮に住んでて、男二人の所帯で好き勝手に色々遊んでた。毎週のようにボウリングしてた。ワールドカップ決勝をブラジルで見るためにわざわざ帰ったのに3-0で負けるなんて事があった年だったなぁ。


近所のやすーいピザ(一枚150円)と、たまにお金があると食べれる怪しい中華食堂の肉うどんばっかり食ってた。自炊したかったけどルームメイトが「魚の出汁は臭い」とか言うのでなかなか作れなかった。700kmの道のりを何回も何回も往復した。あの夏は暑かった。摂氏45度の中だった。



    このエントリーをはてなブックマークに追加 mixiチェック


プール。ざばざば。体格が良くて筋肉もついてて、って人でも泳ぐのは意外と遅くて結構見てておもしろい。泡ばっかりたてて全然前に進まないでやんの。


税理士さんが来て帳簿の帳尻合わせ。


眠気で仕事がはかどらない事が容易に想像できたので長年の懸念事項であった(?)旧PowerBookの修理のために銀座へ。もう何ヶ月も放っておいたのだが、今日はがんばって行ってきたよ。以前渋谷のマックストアにも持って行った事があるんだが、多忙だかなんだかしらんけど、午前中に行ったのに相談できるのが午後5時とか言われてむかついて以来断念したのであった。


ってことで銀座。修理依頼はいたって簡単。20分でおわった。その後木村屋に行っておみやげ用あんパン購入。木村屋本店のあんパンはうまい。



    このエントリーをはてなブックマークに追加 mixiチェック


うはー、なんと2週間ぶりの休肝日。



    このエントリーをはてなブックマークに追加 mixiチェック


毎回ではないのだけれども、再放送でやってる「きみはペット」を今更ながら見てる。なんかおもしろくねーか、これ。今度ちゃんと見よう。っていうか読もう。14冊か・・・文庫でないかな・・・



    このエントリーをはてなブックマークに追加 mixiチェック


しょぼ。しょぼい。しょぼい!



    このエントリーをはてなブックマークに追加 mixiチェック


これですよ、これ。得点シーンもいいけど、ロナウジ-ニョの背面パスとか、ロナウドのカカへのパスとか、そういう細かい技が見てて楽しい。あとロベルトカルロスとか、ゼ・カルロスとかがカバーに入ると、きっと止めてくれるという安心感。サッカーはこうでなくては。



    このエントリーをはてなブックマークに追加 mixiチェック


多分後で書く。とりあえず箇条書き



  • バーゲン。日本の服は俺の体型に喧嘩うってる。腹がおさまらんのなら、俺のせいでゆるす。でも腹がおさまるのに、胸囲がおさまらんのはわからん。胸筋がある人はどーせいっちゅうんじゃ。

  • ひさしぶりに銀座をぶらぶら。なぜか午後4時に昼飯。

  • TRICK 2見た。すげー馬鹿馬鹿しかった。大好き。

  • バーに移動、実に6時間近くもワールドカップみながら酒。




    このエントリーをはてなブックマークに追加 mixiチェック


俺のバグじゃなかったーーーーーーーー!わーい!



    このエントリーをはてなブックマークに追加 mixiチェック


ところで昨日は期せずして徹夜してしまった。まぁ差し迫った問題もあったんだが、正直徹夜するつもりではなくて・・・でも気づいたら明け方。7時過ぎに寝て、11時半くらいに起床。その後メールとかぼちぼちやって、素麺とオクラを食べて今にいたる。


「いいとも」に国生さゆりがでてきた。この人に感じの似た人の事をちと思い出した。


思い出したと言えば、この間2年半ぶりくらいに会った人がいて、ほんの30分くらいなんだけどちょっと胸がいっぱいになった。


しかし眠い。インデックスファイルの再構築はまだ終わらない。



    このエントリーをはてなブックマークに追加 mixiチェック


    このエントリーをはてなブックマークに追加 mixiチェック


最近オランダ人のAと仲が良いのでこんな事書くのはアレなんだが、この試合ずーっと見ててもう一試合みたい!と思ったのはオランダじゃなくてコートジボアール。ちょっと詰めが甘いけど、パスワーク、ドリブル、どっちもコートジボアールのほうが美しいし楽しい。


勝負は詰め将棋のように必然的に勝つようにして勝つのももちろんありなんだけど、やっぱり瞬間的な閃きから生まれる動きは美しい。コートジボアール、ここで消えてしまうのはちょっともったいないなぁ。



    このエントリーをはてなブックマークに追加 mixiチェック


代々木上原で飲んでたら高橋克己と遭遇。おもわず、へぇ。



    このエントリーをはてなブックマークに追加 mixiチェック


ちなみにこれ、皆はまるところなので昨日の続き:



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/;
}
}


    このエントリーをはてなブックマークに追加 mixiチェック

このページのトップヘ