2006年8月アーカイブ

2006083101.jpg

昔からカレーが大好きなボクですが、辛いのが苦手なので本格インドカレーとかはちょっと苦手です。

というわけで、今日は検索してひっかかった神保町にある大正13年創業という老舗のカレー屋さんの共栄堂に行ってきました。

メニューはとってもシンプルでカレー5種類とハヤシライスとサラダと焼き林檎(季節限定ってことで今日はありませんでした)だけです。

で、非常にお腹が減っていたのでポークカレーご飯大盛り、ルー大盛り(計1100円)を頼んで見ました。

予想外の量でした。

でも、最後まで飽きることなく食べきれました。

スマトラカレー自体はよく知らないのですが、ルーは写真で見るよりサラサラなスープ系です。辛いのが好みの人には物足りないかもしれませんが、ボクには丁度よかったです。

神保町 スマトラカレー 共栄堂
東京都千代田区神田神保町1-6サンビルB1
03-3291-1475
11:00 - 20:00 (ラストオーダー20時 / 定休日:日・祝日)

先週末にプレミアが開幕して今週末にはリーガが開幕します。

今年はバルサは円熟期に入って安定した強さを見せるだろうし、マドリーもいい補強をしたので盛り上がるシーズンになりそうな雰囲気がプンプンして今から楽しみです。

ってことで、録画予約でもしておくか・・・とEPGを眺めたのですが・・・

ない。

WOWOWの放送予定にはあるはずの番組がありません。

どーゆーことだ?ということで調べて見たら、まだ放映権を獲得できていないみたいです。

スペインサッカー リーガ・エスパニョーラ | WOWOW ONLINE
スペインサッカー リーガ・エスパニョーラにつきましては、
現在権利交渉中のため06-07シーズンの放送は未定となっております。
何らかの決定があり次第、WOWOW ONLINE等にてお知らせいたします。
ご了承くださいますよう、よろしくお願いいたします。

なんてこったい。

個人的には進藤さんの解説は嫌いではないのでWOWOWでやろうがスカパーでやろうが構わないのですが、開幕を見れないのだけは勘弁して欲しいです。

Super Departure
Super Departure
posted with amazlet on 06.08.23
i-dep
インディペンデントレーベル (2006/07/05)


i-dep - Super Departure

i-depの新譜です。

ボコーダーを通したボーカルは相変わらずですけど、ピコピコだけじゃなく厚い音作りになったかなぁって感じです。でも、この季節を狙ってかどうかは知りませんが全体的にとっても爽やか。

気になった曲は・・・まぁ全部なんですけど
M.02 Sign of summerはタイトル通り夏にぴったりの爽やかなナンバー。
M.09 G はかなりjazzyでこの曲だけ浮いてるけど、これまたよし。
M.12 Jump!はピッチカートファイブなポップナンバー。

こ~ゆ~の聴くと外に出かけたくなります。

オシムの言葉―フィールドの向こうに人生が見える
木村 元彦
集英社インターナショナル (2005/12)

発売当初から読もう読もうと思ってたのですが、ようやく読みました。

っていうか、一日で読みきりました。

祖国の内戦という平和な日本では想像もつかないような経験を経ての言葉の重さは、巷のマスコミで踊っているような「オシム語録」なんて生半可なものじゃないということが良く分かる本です。

そのサッカー観も「走るサッカー」なんて一言で片付けられるものではないことがよくわかる本です。

今サッカーをやっている若い人はもちろん、人に物を教える立場にある人、人を動かす立場にある人にも読んで欲しい本です。

この本を読んでから最近のインタビューなどを読み返してみたら、オシム監督の言葉や起用方法には選手だけではなく、マスコミ、協会、サポーターへのメッセージ、というか教訓が刻み込まれていることがわかると思います。

これを読んだだけで日本のサッカーの未来は明るい・・・なんてことは言うつもりはありませんが、確実に何かを残してくれそうな人だと思いました。問題は受け取るボクら日本人がどうするかということだと思います。

また、読み終わってから気がついたのですが、著者の木村元彦さんはボクが人生で最も感動した本の一つで、ストイコビッチの半生を描いた「誇り」の著者でした。

ボクはこれを読んでから90年ワールドカップのユーゴ代表の映像をもう一度見たのですが、アルゼンチン戦などは本当に涙が止まりませんでした。サッカーを見て涙を流したことは何回かあるけど、結果を知っていて泣いたのは生まれて初めてでした。

こっちもサッカーファンならずとも是非とも読んで欲しい名著です。

誇り―ドラガン・ストイコビッチの軌跡
木村 元彦
集英社 (2000/09)
売り上げランキング: 35,015

オールスター直後は中日と1.5ゲーム差くらいだったと思うのですが

あっ

という間に9ゲーム差になってしまい、もはや優勝は風前の灯と言えそうな雰囲気の中、観戦してきました。

結果は3-8の圧勝でした。

2006082001.jpg

先発の杉山はアップアップながらも3点でしのぎ切って今季初勝利。打線も5回に連打で5点の大量得点で、しかも兄貴の一発のおまけつき。ヒーローインタビューを受けていた関本は2安打が両方ともタイムリーというナイスな働きでした。

2006082002.jpg

ここんとこの打線は頼もしい限りでヤクルト3連戦で29点と猛爆発してるわけで、これで藤川や久保田が帰ってきたらと考えると、ちょびっとだけ希望が持てる試合でした。

通勤用

2006081701.jpg

社内履き

2006081702.jpg

普段は徹夜したら仮眠して午後出社もしくは自宅作業にしてもらうんだけど、今日は区切りがよかったので出社してみたら、なんと一番乗りです。

創業以来の珍事かもしれません。

20世紀FOX商法とはテレビドラマシリーズの1話だけを超格安で販売して、中毒症状を起こした善良な市民に高価なBOXセットを買わせる、もしくはレンタルさせて寝不足におとしめる非常にあくどい商法です。

それにいち早く気づいていたボクはこれ以上睡眠時間を削られるのはたまらないので、980円で売ってるプリズン・ブレイクの誘惑と戦いながらコンビニ弁当の温め時間と戦ってきました。

でも、24のシーズン5の第1話を990円で出されてしまいとうとう悪の手に落ちてしまいました

24 -TWENTY FOUR- シーズン5 「7:00」
20世紀フォックス・ホーム・エンターテイメント・ジャパン (2006/08/11)


しかも買ってから気づいたのですがプリズン・ブレイクの1話も収録されてました。
今までの我慢は一体なんだったのかと・・・

プリズン・ブレイク vol.1
20世紀フォックス・ホーム・エンターテイメント・ジャパン (2006/05/11)

プリズン・ブレイク面白いです。
多分全部見ます。
寝不足決定です。
最悪です。

で、24。

面白すぎますよ。

今回もしょっぱなから猛烈なオープニングです。
これで9月2日のレンタル開始まで待てと?
ましてや11月のBOX発売までなんかとても待てそうにありません。

しかも、シーズン1から4まで持ってるから絶対にBOXも買っちゃうんだろうな・・・

この収集癖、誰かどうにかしてください。

あーもーLOSTも見ちゃおうかな・・・

LOST シーズン1 DVD Complete Box
ブエナ・ビスタ・ホーム・エンターテイメント (2006/08/02)

欧州サッカーシーズンも始まるし

24じゃないけど24時間じゃ足らないですよ。

お後がよろしいようで。

ワールドカップが終わってJリーグも再開していよいよ後半戦に入ってきました。

というわけで、久々に埼玉スタジアムに帰ってきたレッズの試合に行ってきました。

当日は午後からこの世の終わりかと思うような雷雨で、正直テンションガタ落ちだったんですが行く寸前になって晴れてきて、スタジアムに着いたころには夕焼けが綺麗でした。

2006081201.jpg

席は2階席の端のほうだったのですが、思ったより見やすかったです。

2006081202.jpg

で、試合の方ですが・・・4-0の圧勝。

2006081203.jpg

前半は早々に右からの折り返しを達也がヘッドでそらしたところにフリーでいた小野が腿でのリフティングから左足で先制すると後は大した見所もなく正直眠たい展開でした。っていうかFC東京の攻撃に全然迫力を感じなかったです。右サイドの石川とアレックスのマッチアップを楽しみにしていたのですが、石川は中途半端な位置で足元でボールをもらう機会が多く、らしさを感じれなかったのが残念でした。

後半になるとFC東京が退場で10人なったこともあって一方的な展開でした。アレックスの右足とヘッドという貴重なシーンが見れたし、何より勝ったので良かったのですがサッカーの試合としてはレッズのいいとこばかりが目立つ試合でした。

2006081204.jpg

それにしても、先日の日本代表の試合からレッズの選手は調子いいです。アレックスはもちろんのこと、個人的には鈴木啓太のカバーリングの能力にはかなり惹かれました。こんなにうまかったっけと。代表の試合でも、この日のレッズの試合でもほとんど最終ラインまで脅かされることもなかったので目立たなかったですが、トゥーリオやサイドが上がったところにはしっかり啓太が入ってたし、何よりも中盤からの積極的なプレスが最終ラインまでボールを運ばせなかったように見えました。

とにもかくにも、これで首位に返り咲いたことだし、もう何も言う必要のない試合でした。

そうそう。いつもは中学時代の友達夫妻(しかも奥さんも中学の同級生)と観戦してるのですが、前回埼玉スタジアムに三人で行ったときの帰りの人ごみで奥さんが偶然友達を見つけたので、話を聞いて見ると何と彼女も中学の同級生。当然、ボクにとっても中学の同級生なはずですが、大変失礼な話覚えてなかったんですね。

で、今回は彼女も参加することになって4人で帰りに地元で夕飯を食べたのですが、ここで4人が中学2年の時同じクラスだったことが発覚。思い出話とサッカーの話(彼女が結構なサッカーオタク)で夜中まで盛り上がってしまいました。世の中って狭いです。

CatalystでSessionを使うときexpireが動的に変えれないのがナニなので、Catalyst::Plugin::Session::DynamicExpiryを無理やり最近のバージョンのC::P::Sessionで使えるよう実装しなおしてMLにポストしたらYavalがC::P::Sessionを書き直してまで実装してくれました。

Catalyst::Plugin::Session::DynamicExpiry 0.02

C::P::Session 0.11以上と一緒に動作します。"remember me"なんかでお得です。

使い方はMyAppで

use Catalyst  qw/
    Session::Dynamic::Expiry
    Session
    Session::Store::FastMmap
    Session::State::Cookie
    /;

として

sub foo {
	my ($self, $c) = @_;
	...
	if ($c->req->param('remeber')) {
		$c->session_time_to_live( 604800 );
	}
	...
}

とかすればOK。

ただ、cookieと一緒に使うときにconfigでcookie_expiresを直接設定してるとcookieのexpireだけ変更されません。

C::P::Session::State::Cookieのcalculate_session_cookie_expiresをオーバーライドしちゃダメ?と提案したのですが本人がcookie_expiresの実装が気に入ってないらしくあえなく却下されました。食い下がろうと思ったのですが、英語が苦手なのでスゴスゴ引き下がった次第です。

で、ボクなりの解決策としてはC::P::Session::DynamicExpiryを継承して

sub calculate_session_cookie_expires {
    my $c = shift;

    if ( defined(my $ttl = $c->session_time_to_live) ) {
        $c->log->debug("Overridden cookie time to live: $ttl") if $c->debug;
        return time() + $ttl;
    }

    return $c->NEXT::calculate_session_cookie_expires( @_ );
}

でオーバーライドしたのを使えばいいかなと。

ただ、expireを延長するときはいいのですが逆の場合、例えばsession cookie(ブラウザを閉じるまでのみ有効なcookie、つまりexpires = 0)に変更したい場合はダメですね。

$c->config->{session} = {
	expires			=> 3600,
	cookie_expires  => 0
}

とかしておいてsession_time_to_liveで延長する分には問題ないかと思われます。

何気にウロウロしてたらこんなサイト発見しました。

ALL ABOUT ベーマガ

ナツカシス!

16bitCPUが高級品だった時代。
CD-ROMはおろかHDDもフロッピーもなく、記憶媒体がテープだった時代。
パソコンじゃなくてマイコンまたはパピコンだった時代。
雑誌に載っていたプログラムを電気屋のパソコンでセコセコ入力してゲームしてた時代。
パソコンが買えなかったのでポケコンでお茶を濁していた時代。
ゲームセンターあらしがBASICの解説をしていた時代。

実はこの雑誌に当時中学生だったボクはゲームを投稿して掲載されたことがあります。

で、検索して見ると・・・

あった!

1985年(涙)

ポケコンで二行のディスプレイというありえない制約の中作ったゲームでした。

pc2001.jpg

当時、レポート用紙という存在を知らなかったボクは原稿用紙に縦書きでゲームの解説を書いた記憶があります。

ちなみに印税は1万円で手取り9千円でした。

これがボクの原点です。

色んな意味でワールドカップボケがまだ冷めあらぬボクですが、色んな意味で記憶に残ったのはやっぱり神様・・・っていっても日本に鳴り物入りで降臨したわりにいまいちだったブラジルの神様じゃなくて、ドイツに降臨した子供のように無邪気なアルゼンチンの神様の方です。

セルビア・モンテネグロ戦で大騒ぎの神様



ご満悦の神様でしたが・・・

マラドーナ氏、母国の大一番観戦できず - MSN特集:ドイツW杯2006
 FIFAによると、マラドーナ氏は現地時間30日の準々決勝・ドイツ戦のため4枚のVIPチケットを確保していた。ところが当日スタジアムを訪れたのは5人。チケットを持たない人物の入場が認められなかったため、「揃って観戦できないのなら」と会場をあとにしたという。


で、今月のSportivaに珍しく神様のインタビューが載っていたので読んで見ると・・・

Sportiva 9月号 - 世界のサッカー識者10人が選ぶWorld Cup Best Scene
すべてはペケルマンの采配ミスに尽きる。彼はこの試合で重大なミスをふたつ犯した。ひとつはリードしている場面で、リケルメに代えてカンビアッソを入れたこと。あの場面は絶対にアイマールを投入すべきだった。

・・・中略・・・

もうひとつはメッシを起用しなかったこと。



あなたがスタジアムにいなかったのが全ての敗因だと思います。

ほんとにお茶目な神様だこと。

DBIx::ClassでmysqlのFULLTEXTインデックスに対する検索をより美しく使うにはどうすればいいかなぁ、と考えた結果search_literalを使えば良いかと思い立った次第です。

こんなテーブルで
CREATE TABLE table01 (
    id INT UNSIGNED AUTO_INCREMENT NOT NULL, PRIMARY KEY(id),
    title VARCHAR(255),
    artist VARCHAR(255),
    review TEXT,
    FULLTEXT(review)
);

Schemaを作って、こんな感じに走らせると

use strict;
use warnings;

use CD::Schema;

my $schema = CD::Schema->connection('dbi:mysql:cd', 'user', 'password');
$schema->storage->debug(1);

my $albums = $schema->resultset('Album')->search(
    {
        artist => 'Metallica'
    },
    {
        page => 1,
        limit => 10,
        order_by => 'id desc'
})->search_literal('match(review) against(?)', '最高');

while (my $album = $albums->next) {
    print $album->title,"\n";
}

実行されるSQLはこんな感じ。

SELECT me.id, me.title, me.artist, me.review FROM albums me WHERE ( ( match(revi
ew) against(?) AND ( artist = ? ) ) ) ORDER BY id desc LIMIT 10: '最高', 'Metall
ica'

確かに動くけどsearch_literal美しくない・・・

とっても便利なDBIx::Class::InflateColumn::DateTimeですが、前にも書いたとおり作成日時、更新日時などの設定が面倒です。

LyoさんのDBIx::Class::DateTimeColumnsはその辺がRails likeになっていてお気に入りだったので取り込んで見ました。

package DBIx::Class::InflateColumn::DateTime::Auto;

use strict;
use warnings;

our $VERSION = '0.01';

use base qw/DBIx::Class::InflateColumn::DateTime/;

use DateTime;

__PACKAGE__->mk_classdata( datetime_timezone => 'local' );
__PACKAGE__->mk_classdata( _auto_create_datetime_columns =>
        [ qw/created_on created_at/ ] );
__PACKAGE__->mk_classdata( _auto_update_datetime_columns =>
        [qw/updated_on updated_at/] );

sub auto_create_datetime_columns {
    my $self = shift;
    for (@_) {
        $self->throw_exception("column $_ doesn't exist")
            unless $self->has_column($_);
    }
    $self->_auto_create_datetime_columns( \@_ ) if @_;
    $self->_auto_create_datetime_columns;
}

sub auto_update_datetime_columns {
    my $self = shift;
    for (@_) {
        $self->throw_exception("column $_ doesn't exist")
            unless $self->has_column($_);
    }
    $self->_auto_update_datetime_columns( \@_ )
        if @_;
    $self->_auto_update_datetime_columns;
}

sub new {
    my ( $self, $attrs ) = @_;

    my $now = $self->get_current_datetime;
    for my $column (
        @{ $self->auto_create_datetime_columns },
        @{ $self->auto_update_datetime_columns }
        )
    {
        if (   $self->has_column($column)
            && $self->column_info($column)->{_inflate_info}
            && !defined( $attrs->{$column} ) )
        {
            $attrs->{$column} = $now;
        }
    }
    $self->next::method( $attrs, @_ );
}

sub update {
    my ( $self, $attrs ) = @_;

    my $now = $self->get_current_datetime;
    for my $column ( @{ $self->auto_update_datetime_columns } ) {
        if (   $self->has_column($column)
            && $self->column_info($column)->{_inflate_info}
            && !defined( $attrs->{$column} ) )
        {
            $attrs->{$column} = $now;
            $self->{_dirty_columns}{$column} = 1;
        }
    }
    $self->next::method( $attrs, @_ );
}

sub get_current_datetime {
    my $self = shift;
    return DateTime->now( time_zone => $self->datetime_timezone );
}

1;

っていうかそのままです。
ゴメンナサイ

使い方はこんな感じ。InflateColumn::DateTime::Autoをロードするだけ。かなり楽チン。

package Album;

use strict;
use warnings;

use base qw/DBIx::Class/;

__PACKAGE__->load_components(qw/PK::Auto InflateColumn::DateTime::Auto Core/);
__PACKAGE__->table('albums');
__PACKAGE__->add_columns(
    qw/id title artist/,
    created_on => {data_type => 'datetime'},
    modified_on => {data_type => 'datetime'}
);
 __PACKAGE__->set_primary_key('id');

1;

プロフィール

このアーカイブについて

このページには、2006年8月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2006年7月です。

次のアーカイブは2006年9月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。