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年08月


すんげー暇なのでP3。



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


ビアガーデン→麻雀。11時ちょっと前に起床して仕事。半日遅れだけど、公約達成。


タラコスパでも作るかなぁ。



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


前のエントリに書いたようにやってみて一応動くんだけど、イマイチエレガントでないのと、なんかCatalyst側から呼び出す時に問題があるので考えていたのだが、



my $schema1 = Hoge::Schema->connection(..., { AutoCommit => 0 });
my $schema2 = Hoge::Schema->connection(..., { AutoCommit => 1 });

すればいいだけか、ひょっとして。今までずっとSchemaはインスタンスじゃなくてクラスとして使ってたからちょっと気づかなかった。



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


本物のデータはトランザクションベースで、もし全体として整合性が保たれない事があるなら全てロールバックしたい。もう一つ、ログ用の接続はAutoCommitで来る端からコミットしたい。


どうやるんだ、これ?後でちょっと調べよう。多分Schema二つ作ればいいんじゃないのかな、って気がする。



Hoge::Schema
Hoge::AutoCommitSchema

みたいなことをすればいいような気がする!



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


フラッシュかなんかで俺がタイプしている画面を見せたかった。↓はっと気づいて書くのをやめたところ。



$self->context->{log_rs}->create({
message => "Sex

・・・なんでだ?我ながらなんでだ?別にたまってねぇぞ?



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


今日は異常に腹減ってる。昨日の夜かなり少なめにしておいたからなぁ。



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


今日は完全にサビシンボウモードだ。うへー


ってことで四軒目



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


ドキュメント読むとちゃんと書いてあるんだけど、now()は「現在のトランザクションが始まった時間」であって、「現在時刻」ではない。つまりcommit()するまでに作った全てのnow()が同じ時刻になるんだよね。


これ、日記才人を書いてた時に薄々知ってたけど、ちゃんとこれと向き合わなくてはいけないのが今回が初めて。とりあえず回避方法というか、ちゃんと順番に並べるためにBIGSERIALなカラムとTIMESTAMP = now()のカラムを使ってそーとする事にした。


まぁ、しょうがないね。



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


sen_snipを使う時にはどうしてもopen_tagとclose_tagの領域を確保したまままわさないといけないのだが、PerlからSV内のSvPVXの値を保持しておくとかするとどうにもならんので、結局新たにstructを作って、char *を保持しておくようにしてみた。


これでid:yappoさんもハッピーさ!さっきSenna-0.50_04.tar.gzをアップしたよ!


でも正直すっっっっっっっっげぇ面倒。



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


0.50_03でバグ報告ないからそろそろ0.50として出すかなぁー



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


台所の片付け。〆はキッチンハイター。素麺。



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


直してるけど、opentagとclosetagがうまくいかん!変な文字列がまざる!うがーーー



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


バーの前を通って帰る。暑いしね。ジントニックいいよね。ああ、二杯目にダイキリもいいよね。シェリートニック。〆に強いものでね。スコッチとかね。マティーニとかね。


・・・って思いながら今日は休肝日なんだ!と心の中で声高に叫んで帰ってきたのであります。



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



http://www.delicious.ne.jp/html/toku02/kiji02/kiji02_0208_05.htm



SAVOYで二人でピザ二枚。一枚がオーダーして5分ででてきて、10分で食ってしまった。その後すぐ次のがでてきて、もう終わり。結局店には30分くらいしかいなかったよ(笑)


でもうまかったー。サクサクピザ。そんなにゴテゴテものは乗ってないんだけど、さっぱりうまい。きっとチーズもいいもの使ってるとみた。



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


今日はもう朝起きた瞬間から(8時50分)ずーーーーーーーーーっとコード書き。途中、回転寿司いきてぇ!とか思ったけどそれでもコード書き。


ようやくちょっと区切りがいいところまで来たので、これから風呂はいるよ。いくらコード職人でも風呂にははいらんと・・・



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


読みも直った。色々動いてるぞー。



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


/var/senna/logだ。



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



nohup /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/usr/local/var --user=mysql --pid-file=/usr/local/var/s0005.pid --skip-locking --port=3306 --socket=/tmp/mysql.sock >>/usr/local/var/s0005.err 2>&1



エラー



File size limit exceeded

どのファイルみても2GB超えてないのに・・・



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


DBIx::ClassでJOINを使用するには二つ目のハッシュにjoin要素を入れるんだが、ここにセットする名前ではまった。



My::Schema->resultset("Hoge")->search(
{ "hoga.poop" => $poop },
{
join => "hoga"
}
);

ってやってると、No such relationship...とか言われちゃう。色々と中身を見て最終的に



DBIx::Class::ResultSource->relationship_info($relation);

がundef返してる。さらに確かめるためにrelationshipの中身を見る:



use Data::Dumper;
print STDERR (My::Schema->resultset("Hoge")->result_source->_relationships), "\n";

で見ると、JOIN対象のテーブル名が"hoga"なのにたいして、ここで指定する名前はhogasと複数形になってる。ということで解決策:



My::Schema->resultset("Hoge")->search(
{ "hogas.poop" => $poop },
{
join => "hogas"
}
);

いやー、1時間くらいはまった。



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


jeeten、最近よくいくなぁ。鴨の薫製の揚げたヤツ、感動的にうまい。



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

このページのトップヘ