2006年8月アーカイブ

まるごとPerl



G君がまるごとPerl持ってたので中身をちらちら見てたら、拙作のモジュールがちょこちょこ紹介されているということを教えてくれた。言われたとたん、必死で探し始める。XangoとXML::RSS::LibXML、Text::MeCabがでてた。ちと嬉しい。


オープンソースで書くのは楽しいねぇ。


FF7のヤツ



昨日書いたFF7のヤツ、なんか少しはまってる。最初のリフの所でバレットがガトリングガンぶっぱなしてるのが目に浮かぶぜ。


自販機@120円



近所の自販機が全商品100円~120円で売られている。しかも4台も並んでて、結構よりどりみどり。最近こういう些細な事が嬉しかったりする。


速弾きは苦手だなぁ



一番ギターを弾いていた頃は6弦と5弦が大好きなメタル野郎で、しかもソロなんてどーでもいいから俺にリフを弾かせろ!派だったので速弾きはかなり苦手。そういうわけで昨日のFF7のヤツ、速いところが全然弾けん。出だしの所は超俺の好きなタイプの弾き方なんだけどなぁ。


っていうか、久しぶりにスウィーピングとか見たよ。


ギター/fingerpickin’



今度から日常カテゴリは常に開発の上に持ってくる事にした。



http://www.youtube.com/watch?v=PxtOlFo-1hE



勉強になります!小指でチョークは俺できねぇや・・・


lighttpd + FastCGI + Catalyst 誤算




  • includeは相対パスを要求する。/etc/lighttpd/lighttpd.confがメインの設定ファイルだとしたら、/etc/lighttpd/app.confとかにファイルを置いて、include "app.conf"としないと動かない。


追記。サービスごとにsymlinkを作る事で対処する、ゴルぁ



ln -s /www/myapp.com/misc/lighttpd.conf /etc/lighttpd/myapp.conf

# /etc/lighttpd/lighttpd.conf
include "myapp.conf"



  • 前のエントリで書いたフィックスは、lighttpdの前にプロキシがあると動かない。動かない。動かない!


追記。リダイレクト設定が^/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 proxy + lighttpd



まだ実装してないけど、メモ的に。現状として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
}
}


今のところ、コレは俺的に結構美しい解。


けっこうktkr



夜中に結構ショックな事実を知ってしまってちょっと寝れない感じ。ふーむふーむ。まぁ、でも本人の口から聞くのが優しさなのね、と思いつつも。スコッチ飲みながらがんばってコード書いて必死に気を紛らわしたのであります。


まぁそういう時期なのかもねぇ。色んな条件が重なって、今の俺は仕事するしかねぇのか。っていうかそう思う事にしましょう。


やり方もわかったので某案件のサーバーもCatalystで書き直したいなぁ。


ギター/ FF7




http://www.youtube.com/watch?v=GOE4H_zpco0



こっちなら少しひける!


INTERSECT / EXCEPT



タグとかを使って、タグ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分ぼーっとしてる時間があってコードを書く気があるなら書いていいじゃん。呼ばれたらすぐ止めるし。仕事中毒とかじゃなくて、寝る事、飯を食う事、そういうことと同じくらいの普通さでコードを書く事ができるだけなんだけどなぁ。


全く普通の事なのだ。


うへ



今日はかなり体に悪い食生活。野菜食いたいよう・・・


Apacheとlighttpd共存



さて、lighttpd + FastCGI + Catalystで一発簡単なサイト(全て静的なファイル・・・テンプレート使うだけ)をmod_perlベースから書き直してみたのだが、問題は今まで書いた数々のmod_perlサイトとの共存。


今まで書いてたヤツは何個も何個もvirtual hostを使って同じマシンで動かしてるのだが、これとさらにlighttpdを共存させるにはどーしたらいいもんだろうか。うーむ。とりあえずmod_perlのプロキシは残しておいて、裏のアプリケーションサーバーをlighttpdにするか・・・。


解決ktkr



Catalyst::Engine::CGIの140行目:



my $path = $base_path . ($ENV{PATH_INFO} || $ENV{SCRIPT_NAME} || '');

これで一応直る。ただ、これは根本的にいいのかどうかわからん。


lighttpd + FastCGIか、これは




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の中に入ってなきゃうまくうごかんわなぁ。うーん。


Catalyst on FastCGI



スタンドアロンサーバーならちゃんと動くのに、FastCGIにすると、namespace設定が全然効かなくなる。例えば



package Hoge::Controller::Root;
sub index : Local { }

は動くんだけど、



package Hoge::Controller::Foo;
sub bar : Local { }

にアクセスしようと http://localhost:3000/foo/barにアクセスすると、/indexのハンドラが動き出す。なんじゃこれ・・・


お稲荷さん



もらったのでパクパク夕飯かわり。麦茶とあうねぇ。手作りって久しぶりだなぁ。


ペルソナ3



やっと山岸風花合流、文化部編入。25Fのボスを倒すのに時間がかかりすぎたなぁ。もう、せめてパーティー全滅でリタイヤならいいんだけど主人公が死ぬとおしまいって辛いわぁ。あと、軽く攻略サイトみたら最初っからでてる岳羽ゆかりもコミュとして存在するのね。ついつい女子マネージャー重点でやってしまったよ・・・ちっ。


ふーむ、このゲームクリアできるかなぁ。


AIO / Image Resizing using Imager




http://use.perl.org/~Matts/journal/30721



わー、勉強になるっす!あと、



http://use.perl.org/~Matts/journal/30758



IO::AIOってそういう時に使うのか・・・なるほど。AxKit2、この間こき下ろしたけどソースみるっす。id:miyagawaさんもなんか言ってた。


P3



すんげー暇なのでP3。


この半日をまとめるとこうなる。



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


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


なんか違う気がするぞ



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



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

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


Catalyst/DBIx::Class で、二つ以上のDB接続を保持



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


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



Hoge::Schema
Hoge::AutoCommitSchema

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


アホになっている



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



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

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


腹減った。



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


キタキタ



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


ってことで四軒目


PostgreSQL now()でちょっとはまる。



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


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


まぁ、しょうがないね。


Senna::Snippet、動くようにした。



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


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


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


Senn-Perl そろそろ出すか?



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


素麺



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


Senna::Snippet



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


強靭な精神力



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


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


Pizza @ Savoy




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超えてないのに・・・


はまった JOIN with DBIx::Class



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分くらい。するとあら不思議、すげーすっきり。ってことで今寝てきました。寝起きの顔に大槻ケンヂのような跡が残ってると言われました。


空気砲 ktkr



キタ━━━━(°∀°)━━━━ッ!!超楽しい。


Senna-Perl 0.50_03



あっぷしたんだけど、t/05-records.tを入れるの忘れた・・・


SVN::Notifyイイっ



Subversionとかでソースコード管理しはじめて大分たつけど、つい最近SVN::Notifyでコミットの情報をメールで出すようにした。これがなんかいい。ソースコードの遷移をdiff付きで見れるというのがなんかこう、達成感を感じさせる。自分の作業のペースとかも見れるし、いい感じ。


Senna-Perl 0.50_02



先ほどCPANにアップ。yappoさんサンクス!


父帰任



某国で単身赴任していたオヤジが今日帰任するので一家総出で成田までお迎え。待ち時間に妹に麻雀のルールを教授。予定時間ぴったりにオヤジ出現。うちの家族はこういう国際引っ越しとか空港までの見送り/迎えをものすごい数こなしているので多分これを読んでる人が思っているより遥かに淡々と、粛々と。夕飯の買い物して帰宅。


アントニオ猪木に遭遇



成田の某レストランで昼飯を食べていたら、アントニオ猪木が!でか!顎ながっ!妹に聞いたら成田で見るのは2度目だって。へぇ。しかし薄手とは言え、この陽気でマフラーをかけてるのはどうかと思う。


カッコいいおっちゃんでした。


酒酒



家に帰ってきて。近所のバーは午前4時とかまでやってる店多し。ということでテクテクそういうところに。なんか結局結構飲んだ。


宮崎料理



ちょっと前から約束してた飲み。この前相棒ちゃん達と行った宮崎料理の店→バー。嬉しさを隠しつつ、日本建築の柱について熱く語ってお開き。途中までタクシーで送ってもらって帰宅。


寺とかの柱と屋根の土台を結ぶ部分と寄せ木萌え。


Encode::Detect



はまり中



http://d.hatena.ne.jp/nopolicy/20060612#p2



どうやったらコンパイルできるんだ。


Senna-Perl



libsenna 0.8.0に対してコンパイルできところまで修正しておいた。でもテストがまだめちゃくちゃ。


AxKit2



AxKit2 がでてる。ここ数週間、axkit-dev MLの動きを見ていたのでそろそろでるだろうとは思っていた・・・が。



http://use.perl.org/~Matts/journal/30658



遅い、遅すぎる。オープンソース開発に限らずなのだが、特にオープンソースに置いては放置されたプロジェクトの末路は悲惨だ。初期の頃、大ファンだった俺がAxKitで書いていたサイトはもうすでに他の物で代用してしまった。


最初こそmod_perl2対応やら色々やろうと思ってたのだが、開発者(達)のレスポンスが悪すぎたなぁ。TomKitという、フォーク版がでた時点でもうちょっといや~な感じがし始めてた。アプリケーションはもちろんあるのだと思うが、なんか最初の慣性というか、エネルギーがもうないわ。


・・・と、ここまで書いた時点で、AxKitのミニサーバー作るのもありだなぁ、とか思い始めちゃった。うーん。でもmod_perlと分離できない気がするなぁ・・・


システムはドラえもんの道具じゃない



しょうがないっちゃあしょうがないんだけど、システムを作る側に立った事ない人は「システム」を作るという行為が「なんかしらんけど、全部自動的にやってくれるんでしょ?」みたいな感覚で頼んでくる事が多い。でも実際はそれとは全く逆で、システムってのはあくまで人間がやるはずのところを自動的に処理するだけなので処理の内容を人間が決めなきゃなんもできない。システムは「なんでもやってくれる便利なもの」という夢みたいな物ではなく、あくまで「今まで人間がやってきたフローを自動化したもの」である事を分かって欲しいと切に思う。


だから業務フローの取り決めができてない部分に関してはなんにもできないわけですよ。人間が決めてくれないと決められないの。


業務内容を明かせないのでものすごく大雑把な事しか言えないんだけど、



データをもらう → 格納する → ごにょごにょする → 出力する

という処理の場合、入ってくるデータの形とか、どういうタイミングで入ってくるのか、とかそういう事が決まらないとなんもできない。そもそもその入ってくるデータが「RSS」みたいにきっちり決まっているものなら対応のしようがあるけど、人間が生成したもの(しかもその辺りの細かい取り決めを人間がすでに行っていない)ものだったら正直何を作ればいいのか困ってしまう。もちろんそれらしいものを作って納品、でバグでたら直す分のお金もらいますよー、的な商売もできるわけだけど、そんな商品売りつけたくないじゃん!人間ががんばって先に決められる事は全部決めて、それ以外の事をシステムが吸収する、ならいくらでもやるけどさ・・・。


何個か大きめの開発業者が絡んでくるプロジェクトを見てきたけど、察するに結構な数の会社がそのなんちゃってな物を作って後で保守費用でがっぽりもうけるみたいな事をしてる気がする。だって皆ヒアリングとか全然してねぇもん。そんなやりかたでいいなら俺もやりたい所だけど、自分の作ったものにはプライド持ちたいからなぁ。


Senna-Perl 0.50_01



アップロードした。とりあえずコンパイルするのと、テストは通る。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君とシミズの旦那、どう?


mofedgeのヤツ




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++だったリスト:



  • Boom Boom Satellites

  • Beat Crusaders / Your Song Is Good

  • Depapepe

  • Daniel Powter


がっかりリスト:



  • Deftones

  • Lostprophets


いやー、楽しかった。


Walkin’ Blues



やっぱりサマソニを見てきたせいもあって、なんとなくギターを弾く行為に力がこもる。前にも書いたがこの間鉄弦のギター買ってきたのと、スライドも買ってきたのでWalkin' Bluesなんか練習。チューニングがDGDGBD。ちょっとそれっぽく弾けるようになったけど、歌いにくいなぁ。


TR 社長



伏谷さんと出会った。どこかにいるかとは知ってたけど、道端で出会った(笑)


なんだこれは



ひげ大夫。要チェック


バテ気味



朝は微妙におそかったのでブンブンが始まるまでお笑いステージ鑑賞


その後ブンブン。ブンブンのライブすげぇ


ビートクルセーダーズ。入場制限あったので暫く場外で。ユアソングイズグッド。コラボのワムカバー曲


ロストプロフェッツ、三曲くらい。暑いし、音わりいし、無理。移動



アンドリュー


帰ってきた



家についてまず洗濯を開始。その間に湯船にお湯をはって、準備ができたところで「行列のできる法律相談所」を見ながら入浴。でてきてドラフトワン見ながら、ほぼ24時間ぶりのネットサーフィング。


マリンステー



これからはすで陣取ってるヘビメタファンを押しのけてどれだけ前に出れるかという戦い!まずデフトーンズ


f:id:lestrrat:20060812170155j:image


D. パウター



雨も降ってきてこのあとはずっと屋外だし、ってことでダニエルパウターはまったり座って鑑賞決定。後ろ~~のほうで座り込む。


ダニエルパウターの曲はちょっとモダンなビリー・ジョエル風だなあ


Cardigans



期待してたのだが、機材の不調かなんかでハウリングしまくり


びみょ~なでき


PHOENIX



聞いたことなかったのだが、M君がオススメらしいのでチェック!


65DAYS m-flo



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もってないんだけど・・・


早速買った




http://www.amazon.co.jp/gp/product/B000FOSSE6/250-8208125-2905815



id:naoyaさんのブックマークで発見。即予約。






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

ディモォォォォルトッ


きっとPerlな人しか面白くないんだろうな

DBIx::Class::Componentized - なんで?




package # hide from PAUSE
DBIx::Class::Componentised;

素朴に疑問。


麻布十番



六本木ヒルズに行く用事ができたので、仕事の後麻布十番で飲み。ビールビール。


寝れてません



会社の人と飲みに行って家に自転車で帰って、ぐーすか寝たら2時半頃になぜか起床。そのまま3、4通メールして、寝ようと思ったらなんだか寝れず。録画してあるあれやらこれやらを見ながら仕事を始めちゃったらもう5時。自動処理のプロセスのログを収集、表示とか。俺、こういうユーザーが介在しない(UIがない)システム書くのやっぱり好きだなぁ。


純豆腐チゲ



昨日、今日とランチは同じ店で。明日からオープンの純豆腐チゲの店が、プレオープン価格でなんとランチ一律500円。これは嬉しい。というわけで相棒ちゃんとM君と。昨日は海鮮純豆腐、今日はチーズ純豆腐。チーズがチゲに合うとは思わなかったが、これが結構うまい。さすがに2日続けて行ったのでもうしばらくはいいけど、またきっと行く。


萌え発言



「最近社長の萌え発言が多いんでちょっと・・・」ってなことをM君に言われました。ちょっとショックです。確かにこの間もゴスロリ(っつーか、ゴスロリの格好してるのに中身がかわいかった)に萌えてました。すみません。


サイレントヒル



そういえばこの間サイレントヒルを見たのだった。


ゲーム原作の映画って正直微妙な気がするのだけど、これは意外とおもしろかった。最後まで飽きずに見れたですよ。まぁホラーなので別にすごい考えさせられるような映画ではないけど、ちょっとスプラッタみてもいいなら、良い感じ。


みなとみらい



仕事でみなとみらいへ。3時間ほど費やしてヘロヘロ。もっと元気かと思ったんだけど、結構きてましたよ。ってことで今実家。こっちのほうが近いのでよらせていただいた。


S or M



サクラんとこでみかけたので




あなたの”サドマゾ指数”は
ズバリ
サド度:112%です
マゾ度:88%です

あなたはSともMともどちらとも言えない中間タイプです。どちらの要素も平均的に入っているようです。それぞれの気質は、子供の頃から先天的にもっています。ちなみに、サド的男の子は、非常に活発で冒険好きな、いわゆるガキ大将型です。マゾ的男の子は、いつも小さくなって、誰かの保護を求める傾向があります。恋愛面では、一般に、サド的女性は積極的で、マゾ的女性は受動的です。サド的男性は、一時的な愛欲の享楽者で、目的を達するためにせっかちになります。サド的男性にとっては、プラトニック・ラブなどという叙情的な感情は無縁ですが、マゾ的男性は、恋愛を神秘化し、彼女に対する慕情を長い間、大きな秘密として胸にいだき、思いを打ち明ける時も、ストレートに愛情を表現できず、贈り物や第3者に託したりして、遠回しにしか言えません。そして、途中で、サド的男性のライバルが現れたりすると、自ら退却してしまいます



うむうむ、どちらかというとSだな。おけ!

麺房砦



以前VVV6でも見た事のある「砦」。肉もやし麺をオーダー。細麺+カタ麺。スープがいつまでたっても熱々だ。叉焼も味がしみてていい感じ。ってことで大満足。


ゴスロリと巡り会う



仕事でちょっと煮詰まったのでコンビニに逃避しにいったわけです。サクっと買い物をして、帰る途中にこの炎天下の中ゴスロリの人がっ!長袖!フリフリ!黒いストッキング!暑そう!これはこれは・・・と思ってこっそり顔を見たら結構可愛かったので微妙に萌えが入り、ついついこんなエントリを書いてしまった。


しかし真夏の午後2時にその格好は本当やめたほうがいいよ・・・顔が溶けるぞ。


多分検証はしませんが



自分で作った、1行毎にデータが入っている構造のデータファイルを<FILE>とかで読みながらデータを抽出していくのと、md5でハッシュしたファイル (a/ab/abc/abcdef...) File::Find等で探し当てるのとどっちが速いのかなぁ。


どうも書き込み要素を考えると、よく参照するデータはインデックスファイルに入れて、あとは上記のmd5ハッシュした値でファイルシステムに入れとくほうがいいような気がしてきた。


バージョンで縛られるのは結構辛い



諸事情で



  • XSモジュールをインストールできない

  • Perlバージョン5.005003までサポート

  • perl Makefile.PLとかを走らせられない


というタイトな条件のプログラムを書いているのだが、もうつまずきまくり。自分がいつも使ってるモジュールがなにも使えん。


で、今日つまづいたのはYAMLですよ。utf8フラグをうまく使わないと日本語使えないって思い出したのもあるんだけど、モジュール自体がuse 5.006001だよ・・・。


さらに忘れてたのはYAMLってメモリの食い方が尋常じゃないこと。うーーーん。


ああ、わかんねぇもう。寝る。


カクテル



この間、"マスター"田中さんが出してくれたカクテル。飲んだ時にぴょん子に写真付きメールだして名前を送ったのだが、その後名前を忘れてしまった。で、さっきまたメールを出して「この間のカクテルなんて名前だったっけ?」って聞いたらあれですよ、確かに俺がメールした内容はその名前なんだが、ググってもそのカクテルに行き当たらない。うーーーーむ。


ま、そんなわけで名前があってるのかわからないのだが、シュパルト・ウント・アイゼン。なんかちょっとイソジンの味がする感じで苦みが多少ある。これが結構うまい。田中さん曰くまず他のバーではでてこないとの事なのでまぁマイナーなカクテルなんだろうなぁ。


ちなみに今日飲んだのではなく、木曜の話。


追記:id:charsbarさんがその道のプロだということをうっかり忘れてた。そうそう、それです。Underbergってのがこの苦みの元なのかな。酒は奥が深いなぁ。


DBIx::Classでself join



わからない・・・全然わからないぞ。



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品目の野菜が入った栄養バランスのいい、シェフが手作りするお子様セット」


あんまり接点なかったけど、彼女は普通にいい人だと思います。が、「堀江さんの秘書」をなんで世間がもてはやすのか全然わかりません。


XML-LibXML / XML-LibXSLT



キタコレ!



http://search.cpan.org/~pajas/XML-LibXSLT-1.59/


http://search.cpan.org/~pajas/XML-LibXML-1.59/



1年ぶりリリースかよ!やー、ようやくいろんなフィックスが入ったなぁ。いままでは1.58_01とか使ってがんばってたけど。


You Are What You Eat.



ひじきの総菜、オクラと豆腐のサラダ、焼売。ビール。むひ。昨日の「結婚できない男」を見つつ。


地酒



なんかお土産でもらったよ。


開発なんだけど



簡単な事でも、こう、15分くらいできれーいにコードかけてきれーいに結果がポンっとでてくると「俺様って本当頭いいな」と言いたくなる。


でも事務所に他の人がいる場合はやらない。そういうことで日記に書いてみた。


鈴木京香美しい・・・




http://cinematoday.jp/page/A0001123



仕事中にしばらく見とれてた。


受ける日記/ブログを書くのがわからない



他人の日記を読みまくってもうかれこれ10年がたとうとしてるわけですが・・・Webに公開する以上他人が読む事を考えて日記なりブログを書くなりするのはわかるんだが、受ける要素を考えて、構文やらネタやらに力を入れるのがよくわからない。オチはいらないから俺は日常とか考えを読みたいなぁ。アマチュアが書く文章なんてもっと素朴なものでいいと思うのだ。


体重



正直体重はそんなにやせんでもいいわーと思ってるのだが、ここだけは超えたくない、というポイントがあって、現在レッドゾーン。で、ちゃんと体重を毎日はかっているのだがなんでこう差があるのだ?別に運動とかせんでも最高3キロくらい違うんだけど・・・。


ま、とりあえず節制中。一時期確かに飲んだ後に食うとかやりすぎた。


Author

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)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ