G君がまるごとPerl持ってたので中身をちらちら見てたら、拙作のモジュールがちょこちょこ紹介されているということを教えてくれた。言われたとたん、必死で探し始める。XangoとXML::RSS::LibXML、Text::MeCabがでてた。ちと嬉しい。
オープンソースで書くのは楽しいねぇ。
G君がまるごとPerl持ってたので中身をちらちら見てたら、拙作のモジュールがちょこちょこ紹介されているということを教えてくれた。言われたとたん、必死で探し始める。XangoとXML::RSS::LibXML、Text::MeCabがでてた。ちと嬉しい。
オープンソースで書くのは楽しいねぇ。
昨日書いたFF7のヤツ、なんか少しはまってる。最初のリフの所でバレットがガトリングガンぶっぱなしてるのが目に浮かぶぜ。
近所の自販機が全商品100円~120円で売られている。しかも4台も並んでて、結構よりどりみどり。最近こういう些細な事が嬉しかったりする。
一番ギターを弾いていた頃は6弦と5弦が大好きなメタル野郎で、しかもソロなんてどーでもいいから俺にリフを弾かせろ!派だったので速弾きはかなり苦手。そういうわけで昨日のFF7のヤツ、速いところが全然弾けん。出だしの所は超俺の好きなタイプの弾き方なんだけどなぁ。
っていうか、久しぶりにスウィーピングとか見たよ。
追記。サービスごとにsymlinkを作る事で対処する、ゴルぁ
ln -s /www/myapp.com/misc/lighttpd.conf /etc/lighttpd/myapp.conf# /etc/lighttpd/lighttpd.conf
include "myapp.conf"
追記。リダイレクト設定が^/myapp/に行ってる場合はREQUEST_URIからその部分を削除しないといけない。
BEGIN
{
if ($ENV{CATALYST_ENGINE} eq 'FastCGI') {
use Data::Dumper;
eval <<' EOCODE';
sub prepare_request {
my $self = shift;
my %args = @_;my $env = $args{env};
$env->{PATH_INFO} = $env->{REQUEST_URI};
$env->{PATH_INFO} =~ s{^/myapp}{};
$self->NEXT::prepare_request(%args);
}
EOCODE
}
}
まだ実装してないけど、メモ的に。現状としてApache+mod_perlが生きていて、他のサービスもバーチャルホストで走っているマシン。このApache + mod_perlもプロキシ+アプリサーバーという設定。
ここで一部のアプリサーバーをlighttpdに変えたい。
基本的にはメインのlighttpd.confを作り、そこからinclude でそれぞれのサービス設定を反映させるのがよろしいような気がする。
ってことで。基本的に http://myapp1.com/ にアクセスが来たらhttp://app:8080/myapp1/にリダイレクトして、lighttpdに渡す事にする。ということで、まずApache proxyのほうで、
<VirtualHost myapp.com:80>
...
RewriteRule ^/+(.*) http://localhost:8080/myapp/$1 [P]# プロキシ設定
</VirtualHost>
で、lighttpdの設定はそれぞれのアプリのmiscディレクトリにlighttpd.confを作って、その後はmod_rewriteを使ってふりわける:
url.rewrite-once = (
"^/myapp/(.*)" => "/myapp.fcgi/$1"
);fastcgi.server = (
"/myapp.fcgi/" => ( ... ),
)
これで多分できると思う。ひとつ心配なのは、includeを繰り返して上の設定を何個ものサービスからファイルを持ってきた場合fastcgi.server とかの設定が上書きじゃなくて追加されるかどうかが気になるな。これは要検証。
昨日の%ENVの問題、やっぱり他の人もぶちあたってた。奇しくも昨日同じ時間帯に同じ事で悩んでる人がCatalyst MLに投稿して、「あ、俺もそうだった!」的な人が書いた回答が以下
http://lists.rawmode.org/pipermail/catalyst/2006-June/008361.html
これだこれ。
ただその後のメールのやりとりを見ているとApache + FastCGIの設定ではもう少し工夫がいる、という報告がされている。
で、この後ちょっと色々試してみてたら、結局 ルートパスにそのままFastCGIハンドラをひもづけるとPATH_INFOが正しく設定されないってことらしい。
とりあえずデバッグ的にも問題なので、デフォルトで書いたlighttpd.confでstaticファイルはCatalystを通らないように設定。Perl互換正規表現が使えるのが嬉しい:
server.modules = (
...,
"mod_fastcgi",
"mod_rewrite"
);...
url.rewrite-once = (
"^/((?!static).*)" => "/fastcgi.fcgi/$1"
)
fastcgi.server = (
"/fastcgi.fcgi/" => (
"MyApp" => (
....
)
)
)
で、状況把握のためにMyApp.pmでprepare_requestをオーバーライド:
BEGIN
{
if ($ENV{CATALYST_ENGINE} eq 'FastCGI') {
use Data::Dumper;
eval <<' EOCODE';
sub prepare_request {
my $self = shift;
my %args = @_;my $env = $args{env};
print STDERR Dumper($env);
$self->NEXT::prepare_request(%args);
}
EOCODE
}
}
さて、これでhttp://myapp.com/hogeにアクセスしてログを見ると、%ENVの中身で気になるのはこの辺り:
'SCRIPT_NAME' => '/fastcgi.fcgi/hoge',
'HTTP_REFERER' => 'http://myapp.com/hoge’,
'SCRIPT_FILENAME' => '/path/to/MyApp/root/fastcgi.fcgi/hoge',
'REDIRECT_URI' => '/fastcgi.fcgi/hoge',
'REQUEST_URI' => '/hoge',
'DOCUMENT_ROOT' => '/path/to/root',
おーっと。REQUEST_URIに俺の欲しい物がそのまま入ってる!ってことで先ほどのMyAppの中に1行追加。
BEGIN
{
if ($ENV{CATALYST_ENGINE} eq 'FastCGI') {
use Data::Dumper;
eval <<' EOCODE';
sub prepare_request {
my $self = shift;
my %args = @_;my $env = $args{env};
$env->{PATH_INFO} = $env->{REQUEST_URI};
$self->NEXT::prepare_request(%args);
}
EOCODE
}
}
今のところ、コレは俺的に結構美しい解。
夜中に結構ショックな事実を知ってしまってちょっと寝れない感じ。ふーむふーむ。まぁ、でも本人の口から聞くのが優しさなのね、と思いつつも。スコッチ飲みながらがんばってコード書いて必死に気を紛らわしたのであります。
まぁそういう時期なのかもねぇ。色んな条件が重なって、今の俺は仕事するしかねぇのか。っていうかそう思う事にしましょう。
やり方もわかったので某案件のサーバーもCatalystで書き直したいなぁ。
タグとかを使って、タグA B Cを含むけどD E Fを含まない、みたいなのをデータベースレベルで実装しようと思ったのでちょっと四苦八苦。概要としてはこんな感じでできたっぽい:
SELECT id FROM ... WHERE <A> INTERSECT
SELECT id FROM ... WHERE <B> INTERSECT
SELECT id FROM ... WHERE <C> EXCEPT
SELECT id FROM ... WHERE <D> EXCEPT
SELECT id FROM ... WHERE <E> EXCEPT
SELECT id FROM ... WHERE <F>
ただ、これって全文検索できればもっと簡単にできるよね。tag カラムに入れておいてA B C -D -E -Fみたいな感じで一発でできるわな。
仕事をすること、特にコードを書く事は俺の日常生活の一部であり、切り離す事が今の時点ではできない。自然時間さえあればいつでも仕事してる。別にだからといって遊びに行く時間が減るってことではないのだけれども家にいて他にする事なかったら調子悪いとかじゃなければ絶対仕事してる。漫画を読んでることがあったり、ゲームをしてることがあったり、その辺をプラプラ散歩してたりはあるけど、ぼーっとしてるのはほとんどない。
切り替えができないからむかつくみたいな事を言われた事もあったけど、とにかくやる事がたくさんあるんだもの。切り替えができてないなんて事ないのになぁ。別に家で15分ぼーっとしてる時間があってコードを書く気があるなら書いていいじゃん。呼ばれたらすぐ止めるし。仕事中毒とかじゃなくて、寝る事、飯を食う事、そういうことと同じくらいの普通さでコードを書く事ができるだけなんだけどなぁ。
全く普通の事なのだ。
今日はかなり体に悪い食生活。野菜食いたいよう・・・
さて、lighttpd + FastCGI + Catalystで一発簡単なサイト(全て静的なファイル・・・テンプレート使うだけ)をmod_perlベースから書き直してみたのだが、問題は今まで書いた数々のmod_perlサイトとの共存。
今まで書いてたヤツは何個も何個もvirtual hostを使って同じマシンで動かしてるのだが、これとさらにlighttpdを共存させるにはどーしたらいいもんだろうか。うーむ。とりあえずmod_perlのプロキシは残しておいて、裏のアプリケーションサーバーをlighttpdにするか・・・。
Catalyst::Engine::CGIの140行目:
my $path = $base_path . ($ENV{PATH_INFO} || $ENV{SCRIPT_NAME} || '');
これで一応直る。ただ、これは根本的にいいのかどうかわからん。
use Data::Dumper;
sub index : Local {
print STDERR Dumper(\%ENV);
}
してみると、PATH_INFOとか、いわゆるCGI変数が見当たらない。これを使ってるのがCatalyst::Engine::CGI::prepare_path()で、ここの中で
my $path = $base_path . ($ENV{PATH_INFO} || '');
してるわけだから、PATH_INFOが%ENVの中に入ってなきゃうまくうごかんわなぁ。うーん。
スタンドアロンサーバーならちゃんと動くのに、FastCGIにすると、namespace設定が全然効かなくなる。例えば
package Hoge::Controller::Root;
sub index : Local { }
は動くんだけど、
package Hoge::Controller::Foo;
sub bar : Local { }
にアクセスしようと http://localhost:3000/foo/barにアクセスすると、/indexのハンドラが動き出す。なんじゃこれ・・・
もらったのでパクパク夕飯かわり。麦茶とあうねぇ。手作りって久しぶりだなぁ。
やっと山岸風花合流、文化部編入。25Fのボスを倒すのに時間がかかりすぎたなぁ。もう、せめてパーティー全滅でリタイヤならいいんだけど主人公が死ぬとおしまいって辛いわぁ。あと、軽く攻略サイトみたら最初っからでてる岳羽ゆかりもコミュとして存在するのね。ついつい女子マネージャー重点でやってしまったよ・・・ちっ。
ふーむ、このゲームクリアできるかなぁ。
http://use.perl.org/~Matts/journal/30721
わー、勉強になるっす!あと、
http://use.perl.org/~Matts/journal/30758
IO::AIOってそういう時に使うのか・・・なるほど。AxKit2、この間こき下ろしたけどソースみるっす。id:miyagawaさんもなんか言ってた。
すんげー暇なのでP3。
ビアガーデン→麻雀。11時ちょっと前に起床して仕事。半日遅れだけど、公約達成。
タラコスパでも作るかなぁ。
前のエントリに書いたようにやってみて一応動くんだけど、イマイチエレガントでないのと、なんかCatalyst側から呼び出す時に問題があるので考えていたのだが、
my $schema1 = Hoge::Schema->connection(..., { AutoCommit => 0 });
my $schema2 = Hoge::Schema->connection(..., { AutoCommit => 1 });
すればいいだけか、ひょっとして。今までずっとSchemaはインスタンスじゃなくてクラスとして使ってたからちょっと気づかなかった。
本物のデータはトランザクションベースで、もし全体として整合性が保たれない事があるなら全てロールバックしたい。もう一つ、ログ用の接続はAutoCommitで来る端からコミットしたい。
どうやるんだ、これ?後でちょっと調べよう。多分Schema二つ作ればいいんじゃないのかな、って気がする。
Hoge::Schema
Hoge::AutoCommitSchema
みたいなことをすればいいような気がする!
フラッシュかなんかで俺がタイプしている画面を見せたかった。↓はっと気づいて書くのをやめたところ。
$self->context->{log_rs}->create({
message => "Sex
・・・なんでだ?我ながらなんでだ?別にたまってねぇぞ?
今日は異常に腹減ってる。昨日の夜かなり少なめにしておいたからなぁ。
今日は完全にサビシンボウモードだ。うへー
ってことで四軒目
ドキュメント読むとちゃんと書いてあるんだけど、now()は「現在のトランザクションが始まった時間」であって、「現在時刻」ではない。つまりcommit()するまでに作った全てのnow()が同じ時刻になるんだよね。
これ、日記才人を書いてた時に薄々知ってたけど、ちゃんとこれと向き合わなくてはいけないのが今回が初めて。とりあえず回避方法というか、ちゃんと順番に並べるためにBIGSERIALなカラムとTIMESTAMP = now()のカラムを使ってそーとする事にした。
まぁ、しょうがないね。
sen_snipを使う時にはどうしてもopen_tagとclose_tagの領域を確保したまままわさないといけないのだが、PerlからSV内のSvPVXの値を保持しておくとかするとどうにもならんので、結局新たにstructを作って、char *を保持しておくようにしてみた。
これでid:yappoさんもハッピーさ!さっきSenna-0.50_04.tar.gzをアップしたよ!
でも正直すっっっっっっっっげぇ面倒。
0.50_03でバグ報告ないからそろそろ0.50として出すかなぁー
台所の片付け。〆はキッチンハイター。素麺。
直してるけど、opentagとclosetagがうまくいかん!変な文字列がまざる!うがーーー
バーの前を通って帰る。暑いしね。ジントニックいいよね。ああ、二杯目にダイキリもいいよね。シェリートニック。〆に強いものでね。スコッチとかね。マティーニとかね。
・・・って思いながら今日は休肝日なんだ!と心の中で声高に叫んで帰ってきたのであります。
http://www.delicious.ne.jp/html/toku02/kiji02/kiji02_0208_05.htm
SAVOYで二人でピザ二枚。一枚がオーダーして5分ででてきて、10分で食ってしまった。その後すぐ次のがでてきて、もう終わり。結局店には30分くらいしかいなかったよ(笑)
でもうまかったー。サクサクピザ。そんなにゴテゴテものは乗ってないんだけど、さっぱりうまい。きっとチーズもいいもの使ってるとみた。
今日はもう朝起きた瞬間から(8時50分)ずーーーーーーーーーっとコード書き。途中、回転寿司いきてぇ!とか思ったけどそれでもコード書き。
ようやくちょっと区切りがいいところまで来たので、これから風呂はいるよ。いくらコード職人でも風呂にははいらんと・・・
読みも直った。色々動いてるぞー。
/var/senna/logだ。
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超えてないのに・・・
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時間くらいはまった。
jeeten、最近よくいくなぁ。鴨の薫製の揚げたヤツ、感動的にうまい。
夜遅いと一瞬だけ寝る。15分くらい。するとあら不思議、すげーすっきり。ってことで今寝てきました。寝起きの顔に大槻ケンヂのような跡が残ってると言われました。
キタ━━━━(°∀°)━━━━ッ!!超楽しい。
あっぷしたんだけど、t/05-records.tを入れるの忘れた・・・
Subversionとかでソースコード管理しはじめて大分たつけど、つい最近SVN::Notifyでコミットの情報をメールで出すようにした。これがなんかいい。ソースコードの遷移をdiff付きで見れるというのがなんかこう、達成感を感じさせる。自分の作業のペースとかも見れるし、いい感じ。
先ほどCPANにアップ。yappoさんサンクス!
某国で単身赴任していたオヤジが今日帰任するので一家総出で成田までお迎え。待ち時間に妹に麻雀のルールを教授。予定時間ぴったりにオヤジ出現。うちの家族はこういう国際引っ越しとか空港までの見送り/迎えをものすごい数こなしているので多分これを読んでる人が思っているより遥かに淡々と、粛々と。夕飯の買い物して帰宅。
成田の某レストランで昼飯を食べていたら、アントニオ猪木が!でか!顎ながっ!妹に聞いたら成田で見るのは2度目だって。へぇ。しかし薄手とは言え、この陽気でマフラーをかけてるのはどうかと思う。
カッコいいおっちゃんでした。
家に帰ってきて。近所のバーは午前4時とかまでやってる店多し。ということでテクテクそういうところに。なんか結局結構飲んだ。
ちょっと前から約束してた飲み。この前相棒ちゃん達と行った宮崎料理の店→バー。嬉しさを隠しつつ、日本建築の柱について熱く語ってお開き。途中までタクシーで送ってもらって帰宅。
寺とかの柱と屋根の土台を結ぶ部分と寄せ木萌え。
libsenna 0.8.0に対してコンパイルできところまで修正しておいた。でもテストがまだめちゃくちゃ。
AxKit2 がでてる。ここ数週間、axkit-dev MLの動きを見ていたのでそろそろでるだろうとは思っていた・・・が。
http://use.perl.org/~Matts/journal/30658
遅い、遅すぎる。オープンソース開発に限らずなのだが、特にオープンソースに置いては放置されたプロジェクトの末路は悲惨だ。初期の頃、大ファンだった俺がAxKitで書いていたサイトはもうすでに他の物で代用してしまった。
最初こそmod_perl2対応やら色々やろうと思ってたのだが、開発者(達)のレスポンスが悪すぎたなぁ。TomKitという、フォーク版がでた時点でもうちょっといや~な感じがし始めてた。アプリケーションはもちろんあるのだと思うが、なんか最初の慣性というか、エネルギーがもうないわ。
・・・と、ここまで書いた時点で、AxKitのミニサーバー作るのもありだなぁ、とか思い始めちゃった。うーん。でもmod_perlと分離できない気がするなぁ・・・
しょうがないっちゃあしょうがないんだけど、システムを作る側に立った事ない人は「システム」を作るという行為が「なんかしらんけど、全部自動的にやってくれるんでしょ?」みたいな感覚で頼んでくる事が多い。でも実際はそれとは全く逆で、システムってのはあくまで人間がやるはずのところを自動的に処理するだけなので処理の内容を人間が決めなきゃなんもできない。システムは「なんでもやってくれる便利なもの」という夢みたいな物ではなく、あくまで「今まで人間がやってきたフローを自動化したもの」である事を分かって欲しいと切に思う。
だから業務フローの取り決めができてない部分に関してはなんにもできないわけですよ。人間が決めてくれないと決められないの。
業務内容を明かせないのでものすごく大雑把な事しか言えないんだけど、
データをもらう → 格納する → ごにょごにょする → 出力する
という処理の場合、入ってくるデータの形とか、どういうタイミングで入ってくるのか、とかそういう事が決まらないとなんもできない。そもそもその入ってくるデータが「RSS」みたいにきっちり決まっているものなら対応のしようがあるけど、人間が生成したもの(しかもその辺りの細かい取り決めを人間がすでに行っていない)ものだったら正直何を作ればいいのか困ってしまう。もちろんそれらしいものを作って納品、でバグでたら直す分のお金もらいますよー、的な商売もできるわけだけど、そんな商品売りつけたくないじゃん!人間ががんばって先に決められる事は全部決めて、それ以外の事をシステムが吸収する、ならいくらでもやるけどさ・・・。
何個か大きめの開発業者が絡んでくるプロジェクトを見てきたけど、察するに結構な数の会社がそのなんちゃってな物を作って後で保守費用でがっぽりもうけるみたいな事をしてる気がする。だって皆ヒアリングとか全然してねぇもん。そんなやりかたでいいなら俺もやりたい所だけど、自分の作ったものにはプライド持ちたいからなぁ。
アップロードした。とりあえずコンパイルするのと、テストは通る。Advanced APIのテストはあんまり・・・全然してません。
ぴょん子からもらったのでやるっす。追記↑直した
■生まれて初めて行ったライブは中3ん時のGuns N' Roses。前座はSoundgardenという、今から考えると結構レアなものを見た。
案の定GN'Rは予定時間より1時間半遅れてでてまいりました。楽しかったけどな。■一番最近のライブの感想
サマソニに行ってきたわけだが、その一番最後というとTOOLですな。ボーカルがセットの
一番後ろにいて、スポットライトも浴びてない、というバンドを初めて見たよ。変態的に
技術力のあるバンドでしたわ。最後の曲はシャウトしまくりで、前日のメタリカですでに
つぶれてた喉にさらにダメージを与えてしまった。ぴょん子が「年かしら」と言っていたが、俺も同じような感想を。あの若人どもの中に入って
行くのは結構つらかった。■ライブの定番の服装は?バンドTシャツ着る?
別に無し。あったら着る>バンドT
■ダイブ賛成派?反対派?
基本的に音楽を聞きたいので、できれば許可エリアと不許可エリアをもうけてほしい今日この頃。
■あなたにとってライブは?
アーティスト感謝デー。もしくは生演奏を見てお勉強する日。
■想い出に残っているライブは?
初めてのメタリカ。毎日6時間も弾き続けたあの曲を初めて生で聞いた時の感激と言ったら。
■見逃し含み見ておきたかった(行きたい)バンドのライブ
Sarah McLachlan
Red Hot Chilli Peppers
宇多田ヒカル
Eric Clapton
Paul McCartney■1番好きなフェスもしくはイベントは?
別になし。
■1番好きなライブ会場は?
特にないなぁ。どこでも楽しめる。
■ミュージシャンが投げた物をゲットしたことある?
無し。
■ライブで見掛けたミュージシャンのかっこいい出来事は?
だいたい見に行ってる時点でその人のことカッコいいと思ってるんだから全部カッコいいわぁ。
■ライブで見たミュージシャンのお茶目な一面は?
やっぱ失敗したところで笑いながら演奏とかはお茶目ですわな。
■ライブで自分の身に起きた事件は?
ローリングストーンズのコンサートで時計を強奪された。普通に留め具をはめていたのに、
ガッとひっぱられて取られた。エアロスミスを見に行った時、誰かが前のほうで発砲して取り押さえられてた。
B.B. Kingがライブの途中で疲れて普通に中座してた。これ事件ちゃうか・・・
■今まで参戦したライブの数は?
20とか30とかじゃないだろうか。
■ライブ参戦回数が最も多いバンドは?
明らかにメタリカ。
■参戦の必需品は?
っつーか手ぶら。
■今までつまらなかったライブはありますか?
ライブがつまらなかったというか、見に行ったアーティスト(John Scofield)が好き
じゃない人と行ったのが大失敗。もう気を使っちゃって気を使っちゃって、もったいなかった。■ライブを楽しむ自分なりのコツは?
無理に他人と行こうとしない。一人で十分楽しい(上記参照)
■他人の『これはないな』というライブの行動
モッシュ。っつーか、最低限、モッシュしてもいいからモッシュしたい同士でやるとか
にしてくれ。多少のとばっちりは許す。普通に見てるヤツの背後から体当たりはやめてくれ。あと、モッシュってのは基本的に殴る蹴るはしないもののはずです。
■CDとライブの違い・良さをそれぞれ
ライブのほうが実力がわかるみたいな感じはする。パフォーマーとして、って事だけど。
でもやっぱり観客との掛け合いみたいな事をしながらとか、ミスをした時とかにどれだけ
うまく対処できるとかではっきりと差がでると思う。あとやっぱりアレンジをして驚かせて
くれるのがいいね>ライブCDは実は最近あんまり聞いてない・・・。
■グッズは買いますか?
シャツは買う。
■野外の経験はありますか?
あんまないや。
■今行きたいライブは?
サマソニで燃え尽きたばかりだからなぁ・・・。今度はなんかジャズとか見に行きたい。
■現時点で参戦が決まっているライブはありますか?
とりあえず無し。多分突発的になにか行くと思う。Billy Joelはちょっと行きたいなぁ。
■大体何人で行きますか?
ひとり
■1人でライブに行きますか?
普通に
んで、最後にこのバトンをまわす7人 。7人も無理。373君とeco君とシミズの旦那、どう?
http://d.hatena.ne.jp/nekokak/20060811/1155306658
belongs_to はDBIx::Class::Schema::Loaderが勝手にやってくれる予感がするんだけど、どうなんだろう。それ以上の事ができるのかなぁ。
結構切実にお金が無い事に気がついた。ひょっとしたら2000年、OPTビザが切れそうになってたのに年収300万(税金はそのうち39%ですよ!)の仕事で東京並みに物価の高かった当時のベイエリアに住んでた頃以来の貧乏かも。給料制って辛いなぁ。
結構パニクってる自分がいる。ひーん。
つーことでしばらく節制生活しねぇとなぁ。しばらく夕飯は素麺だけとか納豆だけとかだな、こりゃ。
午前4時によく見るアナウンサー杉崎美香さんがネプリーグにっ。間違えた時の顔がキュート。フジテレビのアナウンサーの基準は好きっす。
そろそろ食べないとやばいキャベツとピーマンで回鍋肉。所要時間15分。我ながら手際がいい。
携帯から更新してたので昨日、一昨日のエントリーは正直自分でもようわけわからん。ってなわけでまとめ。
一番楽しみだったメタリカ。4回目です。何回行ってもがっかりした事ない。周りが皆全ての曲のどこで声をあげるかどうかわかっているのがちょっと恐ろしいようで同時にうれしかったりする。で、今回の目玉はもちろん「Master of Puppets」のアルバムそのまま再現。BatteryからDamage Inc.まで全曲ですよ!すげぇ!Leaper Messiahは初めてライブで聞いた。すごいよ、すごすぎるよ。
メタリカの手前のデフトーンズからステージから7メートルくらいの距離にいたんだが、これがひどい。おまえら、モッシュって周りにいる人手当たり次第に蹴る行為じゃねぇぞ。Batteryが終わった後で相当消耗してて、ふとMaster of Puppetsの曲のリストを思い出すと5番目と8番目がやばいと気づいて、Sanitariumあたりで退却。っつーか、無理。 俺、もう18歳じゃないんだね。とほほ。
Toolはかーなり近くで。Maynard、本当に後ろ向きで歌ってる!(笑)っつーか、この人たち本当に変態だね。おかしいよ、あの超絶テク。その上あの・・・変態っぷり。最後の曲がAenimaですよ!すげぇ歌いまくった。もうごめん、ステージみてなかった。歌うのとヘッドバングに集中。Learn to Swim, learn to swim!!!うがああ!!
あとのバンドについても書きたい事あるんだけど、とりあえずその他Good++だったリスト:
がっかりリスト:
いやー、楽しかった。
やっぱりサマソニを見てきたせいもあって、なんとなくギターを弾く行為に力がこもる。前にも書いたがこの間鉄弦のギター買ってきたのと、スライドも買ってきたのでWalkin' Bluesなんか練習。チューニングがDGDGBD。ちょっとそれっぽく弾けるようになったけど、歌いにくいなぁ。
伏谷さんと出会った。どこかにいるかとは知ってたけど、道端で出会った(笑)
ひげ大夫。要チェック
朝は微妙におそかったのでブンブンが始まるまでお笑いステージ鑑賞
その後ブンブン。ブンブンのライブすげぇ
ビートクルセーダーズ。入場制限あったので暫く場外で。ユアソングイズグッド。コラボのワムカバー曲
ロストプロフェッツ、三曲くらい。暑いし、音わりいし、無理。移動
アンドリュー
家についてまず洗濯を開始。その間に湯船にお湯をはって、準備ができたところで「行列のできる法律相談所」を見ながら入浴。でてきてドラフトワン見ながら、ほぼ24時間ぶりのネットサーフィング。
雨も降ってきてこのあとはずっと屋外だし、ってことでダニエルパウターはまったり座って鑑賞決定。後ろ~~のほうで座り込む。
ダニエルパウターの曲はちょっとモダンなビリー・ジョエル風だなあ
期待してたのだが、機材の不調かなんかでハウリングしまくり
びみょ~なでき
聞いたことなかったのだが、M君がオススメらしいのでチェック!
65DAYS OF STATICは最後のリフだけ間に合った。良い感じだったので後でチェックしよう
m-floは自分だと聞かない部類の音楽。予想に反してかなり楽しめた
初めて聞いた。イイ!アルバム買おう
グッズ販売エリアでかれこれ40分ほどすでに列んでる。いつたどり着くのかなあとは思いつつ、すでに俺が列び始めたころより列が相当のびてるのを見るとまだ俺のほうが恵まれてるのかと思い直したり。
マリンの中も軽く偵察してきたけど、開始一時間以上前で陣取ってる気合いの入れっぷりはすごいなあ。
到着。まだ開始まで時間があるので散策中
結局仕事したりして一睡も出来ず。早めに行こうかと思いながらもこの間買ったスライドでEric Clapton弾いたりしてボケボケ。
サクッとシャワー浴びて、出発。5分歩いたところで渡すものを忘れた事に気付き、引き返し今に至る。
メタリカ、最高だった。ほぼ3時間弱のセットには「Master of Puppets」を全てそのまま通して演奏するというサービスっぷり。Load、Reload、St. Angerからは一曲もなし!
最初はステージ真正面に陣取って超間近で見てたのだけど、Batteryが終わった時点でほとんど死亡状態だったので素直に前線から退却。
あとは席に座って鑑賞
後は家に帰って書く
メタリカとTOOLが待ち遠しい。ところで今は"The only one, who could ever reach me was a sweet talking son of a preacher man..."のあの曲と、Smash Mouthが聞きたい気分です。両方ともCDもってないんだけど・・・
package MySchema;
use strict;
use base qw(DBIx::Class::Schema::Loader);__PACKAGE__->loader_options(...);
sub connection {
my $class = shift;
my $schema = $class->SUPER::connection(@_);
my $classes = $schema->loader->classes;while (my($table, $schema_class) = each %$classes) {
foreach my $column ($schema_class->columns) {
# do something with $column
}
}
$schema;
}
俺の場合、ただ"_on"で終わるカラムを全てDateTimeにしたかったので、
package MySchema::Base;
use strict;sub has_datetime {
my $class = shift;
foreach my $column (@_) {
$class->inflate_column($column, {
inflate => sub { DateTime::format::Pg->parse_datetime(shift) },
deflate => sub { DateTime::format::Pg->format_datetime(shift) },
});
}
}package MySchema;
__PACKAGE__->loader_options(..., additiona_base_classes => [ qw(MySchema::Base) ], ...);
で、さっきの"do something with..."のところで
while (my($table, $schema_class) = each %$classes) {
$schema_class->has_datetime(grep { /_on$/ } $schema_class->columns);
}
ディモォォォォルトッ
package # hide from PAUSE
DBIx::Class::Componentised;
素朴に疑問。
六本木ヒルズに行く用事ができたので、仕事の後麻布十番で飲み。ビールビール。
会社の人と飲みに行って家に自転車で帰って、ぐーすか寝たら2時半頃になぜか起床。そのまま3、4通メールして、寝ようと思ったらなんだか寝れず。録画してあるあれやらこれやらを見ながら仕事を始めちゃったらもう5時。自動処理のプロセスのログを収集、表示とか。俺、こういうユーザーが介在しない(UIがない)システム書くのやっぱり好きだなぁ。
昨日、今日とランチは同じ店で。明日からオープンの純豆腐チゲの店が、プレオープン価格でなんとランチ一律500円。これは嬉しい。というわけで相棒ちゃんとM君と。昨日は海鮮純豆腐、今日はチーズ純豆腐。チーズがチゲに合うとは思わなかったが、これが結構うまい。さすがに2日続けて行ったのでもうしばらくはいいけど、またきっと行く。
「最近社長の萌え発言が多いんでちょっと・・・」ってなことをM君に言われました。ちょっとショックです。確かにこの間もゴスロリ(っつーか、ゴスロリの格好してるのに中身がかわいかった)に萌えてました。すみません。
そういえばこの間サイレントヒルを見たのだった。
ゲーム原作の映画って正直微妙な気がするのだけど、これは意外とおもしろかった。最後まで飽きずに見れたですよ。まぁホラーなので別にすごい考えさせられるような映画ではないけど、ちょっとスプラッタみてもいいなら、良い感じ。
仕事でみなとみらいへ。3時間ほど費やしてヘロヘロ。もっと元気かと思ったんだけど、結構きてましたよ。ってことで今実家。こっちのほうが近いのでよらせていただいた。
サクラんとこでみかけたので
あなたの”サドマゾ指数”は
ズバリ
サド度:112%です
マゾ度:88%です
あなたはSともMともどちらとも言えない中間タイプです。どちらの要素も平均的に入っているようです。それぞれの気質は、子供の頃から先天的にもっています。ちなみに、サド的男の子は、非常に活発で冒険好きな、いわゆるガキ大将型です。マゾ的男の子は、いつも小さくなって、誰かの保護を求める傾向があります。恋愛面では、一般に、サド的女性は積極的で、マゾ的女性は受動的です。サド的男性は、一時的な愛欲の享楽者で、目的を達するためにせっかちになります。サド的男性にとっては、プラトニック・ラブなどという叙情的な感情は無縁ですが、マゾ的男性は、恋愛を神秘化し、彼女に対する慕情を長い間、大きな秘密として胸にいだき、思いを打ち明ける時も、ストレートに愛情を表現できず、贈り物や第3者に託したりして、遠回しにしか言えません。そして、途中で、サド的男性のライバルが現れたりすると、自ら退却してしまいます
うむうむ、どちらかというとSだな。おけ!
以前VVV6でも見た事のある「砦」。肉もやし麺をオーダー。細麺+カタ麺。スープがいつまでたっても熱々だ。叉焼も味がしみてていい感じ。ってことで大満足。
仕事でちょっと煮詰まったのでコンビニに逃避しにいったわけです。サクっと買い物をして、帰る途中にこの炎天下の中ゴスロリの人がっ!長袖!フリフリ!黒いストッキング!暑そう!これはこれは・・・と思ってこっそり顔を見たら結構可愛かったので微妙に萌えが入り、ついついこんなエントリを書いてしまった。
しかし真夏の午後2時にその格好は本当やめたほうがいいよ・・・顔が溶けるぞ。
自分で作った、1行毎にデータが入っている構造のデータファイルを<FILE>とかで読みながらデータを抽出していくのと、md5でハッシュしたファイル (a/ab/abc/abcdef...) File::Find等で探し当てるのとどっちが速いのかなぁ。
どうも書き込み要素を考えると、よく参照するデータはインデックスファイルに入れて、あとは上記のmd5ハッシュした値でファイルシステムに入れとくほうがいいような気がしてきた。
諸事情で
というタイトな条件のプログラムを書いているのだが、もうつまずきまくり。自分がいつも使ってるモジュールがなにも使えん。
で、今日つまづいたのはYAMLですよ。utf8フラグをうまく使わないと日本語使えないって思い出したのもあるんだけど、モジュール自体がuse 5.006001だよ・・・。
さらに忘れてたのはYAMLってメモリの食い方が尋常じゃないこと。うーーーん。
ああ、わかんねぇもう。寝る。
この間、"マスター"田中さんが出してくれたカクテル。飲んだ時にぴょん子に写真付きメールだして名前を送ったのだが、その後名前を忘れてしまった。で、さっきまたメールを出して「この間のカクテルなんて名前だったっけ?」って聞いたらあれですよ、確かに俺がメールした内容はその名前なんだが、ググってもそのカクテルに行き当たらない。うーーーーむ。
ま、そんなわけで名前があってるのかわからないのだが、シュパルト・ウント・アイゼン。なんかちょっとイソジンの味がする感じで苦みが多少ある。これが結構うまい。田中さん曰くまず他のバーではでてこないとの事なのでまぁマイナーなカクテルなんだろうなぁ。
ちなみに今日飲んだのではなく、木曜の話。
追記:id:charsbarさんがその道のプロだということをうっかり忘れてた。そうそう、それです。Underbergってのがこの苦みの元なのかな。酒は奥が深いなぁ。
わからない・・・全然わからないぞ。
SELECT A.* FROM A
JOIN B AS B1 ON B1.a_id = A.id
JOIN B AS B2 ON B2.a_id = A.id
WHERE B1.field = 'X' AND B2.field = 'Y'
ってしたいんだけど、これってDBIx::Classでハンドルできるのかなぁ。
相棒ちゃんが幸せそ~~~~~~~~~な顔でくずもち食べてます。こんなに幸せそうな顔は前回わらび餅を食べてた時以来見ていないかもしれません。この人が仕事の相棒じゃなくて、俺の家にいたら俺は今の2倍くらい太るような気がします。っつーか、どうしてそれで太らないんだ>相棒。
写真参照。CHINA QUICKのチラシなんですが、「乙部綾子さん考案」「乙部さんのアイデア満載。12品目の野菜が入った栄養バランスのいい、シェフが手作りするお子様セット」
あんまり接点なかったけど、彼女は普通にいい人だと思います。が、「堀江さんの秘書」をなんで世間がもてはやすのか全然わかりません。
キタコレ!
http://search.cpan.org/~pajas/XML-LibXSLT-1.59/
http://search.cpan.org/~pajas/XML-LibXML-1.59/
1年ぶりリリースかよ!やー、ようやくいろんなフィックスが入ったなぁ。いままでは1.58_01とか使ってがんばってたけど。
ひじきの総菜、オクラと豆腐のサラダ、焼売。ビール。むひ。昨日の「結婚できない男」を見つつ。
なんかお土産でもらったよ。
簡単な事でも、こう、15分くらいできれーいにコードかけてきれーいに結果がポンっとでてくると「俺様って本当頭いいな」と言いたくなる。
でも事務所に他の人がいる場合はやらない。そういうことで日記に書いてみた。
他人の日記を読みまくってもうかれこれ10年がたとうとしてるわけですが・・・Webに公開する以上他人が読む事を考えて日記なりブログを書くなりするのはわかるんだが、受ける要素を考えて、構文やらネタやらに力を入れるのがよくわからない。オチはいらないから俺は日常とか考えを読みたいなぁ。アマチュアが書く文章なんてもっと素朴なものでいいと思うのだ。
正直体重はそんなにやせんでもいいわーと思ってるのだが、ここだけは超えたくない、というポイントがあって、現在レッドゾーン。で、ちゃんと体重を毎日はかっているのだがなんでこう差があるのだ?別に運動とかせんでも最高3キロくらい違うんだけど・・・。
ま、とりあえず節制中。一時期確かに飲んだ後に食うとかやりすぎた。
Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)
#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar
翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><