YAPCスピーカー絶賛募集中です

今まで参加されてこなかった方達、是非応募してみてください。最先端技術に関して喋る必要はありません。

最先端技術等は比較的「○○の紹介」という感じのトークになることが多いですが、それ以外のトークを発表する際に大事なのはあるテーマを「どうやって」成し遂げたのかを発表する事です。「ほら、みてかっこいいでしょう」ではなく「こういう仕様要求があって、これを達成するための問題はこれで、こうやって解決した」というような内容であれば必ず誰かのためになります。そしてそのテーマは特に難しいものである必要はないのです。「ログ解析」のようにありふれているものでも「ファイルの整理の仕方」とか一件技術っぽくないものでも、知らない人から見たら有用なものって必ずあるはずです。

気張る必要はありません。トーク内容にアドバイスが必要でしたら運営側にもご相談ください。一人でも多く、今までYAPCで登壇されたことの内方に発表していただければと思います。

もちろん、今まで参加してきた方も是非どうぞ!今年はベストスピーカーになるとちょっとした商品がもらえるそうですよ

皆様の参加をお待ちしております。
IMG_0291.jpg IMG_0298.jpg
すっぽん料理怖い。

というわけですっぽん料理食ってきた。場所は住宅街と慶應くらいしかない日吉の、しかもメインの通りとかじゃなくて中原街道から蟹ヶ谷とかのほうに向かうほっそい道の途中にある「鳥八」。実はここは良く通ってて「怪しい店だなぁ」と常々思っていたのだが、ある年テレビでこの店が紹介されてて「あ、あの店本当にやってるんだ!」とわかった次第。

基本的にはすっぽん鍋を食べたんだけど、味は激ウマ。鍋は本当にうまい。三つ葉とかニラとかとスッポン肉の入った鍋で、これは出汁が本当に濃くてうまかった。みんなでむさぼりくった。食べ終わったらそこにご飯と卵が入ってスッポン雑炊。うめー!隠し味の酢橘がすげーうめぇぜッ!

というわけで鍋はすごいうまかったのだが、しかし飲み物類物がなんというか、怪しいとしか言いようがない。スッポンの生き血、胆汁。「マル秘」という名前のお酒(マムシとスッポンの卵と入ってるらしい)。写真は生き血。見て分かるとおりすごい色。もうこれが中世ヨーロッパだったら絶対に魔女狩りに合ってそうな勢い。ひー。

生き血にしろ胆汁にしろ、焼酎で割ってあるので全然飲み口は悪くない。ただ、あとで妙な感じw マル秘のほうは後味になにか動物的な香りがして俺はちょっと駄目だった。半分くらい連れて行ってくれたOさんにお願いしてしまった。

というわけで、うまいんだけどこれってやっぱり現代人が食っても栄養摂取過剰じゃないの?って感じ。値段は安いし、味はうまい。おいしい雑炊は是非!興味ある人は予約して是非ゴー!


おまけ:店のにゃんこちゃんが超かわいかった
IMG_0307.jpg

本日はラム肉を食べよう!ということで「サフォーク 大地」を二人で予約して午後7時スタート。

まずこれだけ言っておきます。
「ロース肉の鍋」の肉の質は大変よかったです。
しかし結果的にはCPが見合わないというか、気分が悪いという状態でまだ空腹のまま帰りました。

というわけでいきさつ:

まず7時に入店して、ちょっと迷ってからモモの刺身、サラダとウーロン茶、生ビールを注文。生ビールはすぐ来たものの、ウーロン茶は「すぐお持ちしますので」と言ってずっと来ない。結局サラダとウーロン茶は20分後、こちらがリマインドしたらようやく登場。もうこの時点でちょっとおかしい。

モモの刺身。これが写真ではおいしそうな大ぶりのラム肉が載ってるんだけど、
我々の前に出てきたのは直径3cmくらいのもも肉の薄っぺらいロースト。
写真のあれはどーした!

その肉は中心は生だけど、大分冷たいので(冷蔵庫に入れたものをすぐ出した感じ?)硬いし、舌の上ではとろけるとかは全然ない。つーか、値段と釣り合わないだろ・・・

これではいかん、ちゃんとメインに張っているメニューを食べようと思って
高い方(2980円)の「ロース肉の鍋」を注文。

その間にモモ肉を食べ終わりましたが、前述の通りウーロン茶も出なければサラダも来ませんでした。後ろの団体客はどんどん注文が通るけど、こっちはなんの確認もナシ。しびれをきらして注意したらすぐでてきた。

ど う い う こ と だ。

その後ロース肉が出てきて、男性の眼鏡を掛けた店員が応対。説明がしどろもどろ。
まずガーリック醤油的なものが出されて、「ガーリック醤油です」とだけ宣言される。

で、次にポン酢が出てくる「お野菜はこちらでお食べください」「お肉はそちらの
お塩で(ちなみに塩は10種類くらいテーブルの上にあるんだけど、なんの説明もなし)」

え?じゃあさっきのガーリック醤油は?でも説明しないでどっか言っちゃった。

えー。

そして肉好きで、ラム肉も特に大好きな自分が許せなかったのがこの点:
この店は店員がその肉と野菜を調理することになっているのに、この店員の調理が
少なくとも自分の考える肉のおいしい焼き方からするとちょっとひどい事してた。

例えば熱くなった鍋が諸々(野菜を入れたのとコンロの火を弱めたのと)の理由で
熱が下がったところにおもむろに肉を投下してる。
その後肉を裏返しまくる。これでは弱火で両面をジクジク温めているだけで、
メニューに書いてある「レアで食べると一番おいしいです!」に明らかに反してるのでは・・・? 折角うまい肉なのに・・・

できあがった肉自体は大変おいしかったですが、正直もっともっとうまくできたのでは・・・

というわけでもうすでにその時点で大分印象が悪かったのと、少なくとも
自分の好みにはあわないと判断し追加注文を諦めて、お腹が減っている状態で入店1時間もせずに退店を決意。

ちなみにお会計も頼んでから来るのに10分ほどかかって、これでもう俺の堪忍袋は限界。

もう一回言うけど肉はおいしかった。
一番印象悪いのは男性の眼鏡の店員。

最後に静かに「あれはないだろ」って文句を言いに行ったんだけど、対応してくれた店長らしきおばちゃんはいい人そうでした。

しかしお値段からすると数段階上のサービスを期待したいところ。


正直な感想:「金返せ」
まぁあの店員だけだったのかもだけど、すこぶる印象が悪い。多分今後機会があっても5年くらいは再訪しない。

Perl 5.6 とか Perl 5.8を今だに使ってるあなた!そうです、これを読んでるそこのあなたです。Perl5の開発チームは後方互換に関しては大変神経をつかっていますので、 Perl 5.6とかで動いてたコードをいきなり 5.12で走らせても基本的には動くはずです(多分警告とかは一杯でるだろうけど)。でもだからといって新しいバージョンで施されている様々な最適化や新しい機能を使えないのはちょっと悲しくないですか?

ということで新しい Perlを使いましょう!最新安定版は5.12.1ですよ!ちなみにどのバージョンを2010年8月時点で使うべきか、はこちらのエントリを参照してください

え?アップグレードできない?システム管理者が許してくれない?前入れてたアプリが壊れる?いやいやいや、全然いけますって。自分用のPerlをインストールすればいいんですよ!

ここではそれを簡単に解説しましょう。

まず短い説明は 「perlbrewを使え」です。以上です。

でもそれだけじゃわかんねーよ!って方は以下をご覧下さい。

まず perlbrewをインストールします。こんな感じでスクリプトを一個ダウンロードするだけです:
    > curl -L http://xrl.us/perlbrew > perlbrew

curlってなってるところはwgetでもlwp-downloadでも、なんでも好きなツールを使って下さいね。

そしたらこのツールを「インストール」します。/usr/localとかじゃなくて自分のホームディレクトリに入れてくれますのでご安心を。
    > perl perlbrew install

一瞬で終わるので、今落としてきたファイルを消しておきます。もう使わないし。
    > rm  perlbrew

で、まずperlbrewを認識できるようにちょっと調整をします:
    # パスやシェルの種類は適時自分のものに変えて下さい
    > echo 'source /home/daisuke/perl5/perlbrew/etc/bashrc' >> ~/.bashrc
    > source ~/.bashrc
    > perlbrew init

これで環境設定はOK。でもこのままではなんにもできないので、ここで使いたいperlのバージョンを指定してperlbrewにインストールさせます。こんな感じでやるだけで5.12.1をダウンロードし、コンパイルをしてくれます
    > perlbrew install perl-5.12.1

ここでトイレに行くとか、軽く掃除をするとか、用事を済ませてきて下さい。perlほど大きなプログラムをコンパイルするにはそれなりに時間がかかります。

コンパイルが失敗した場合はインストールログを見るといいでしょう。多分落ちてるとしてもどっかテストが一個こけてるとかだけだと思うので「まぁいいや」と思えるなら(コンパイルはやりなおしになってしまいますが)、-fをつけてもう一回インストールすると無理やりインストールしてくれます
    > perlbrew install -f perl-5.12.1

できたらこんな感じでスイッチ!次から"perl"って打つとperl 5.12.1を使えてます!
    > perlbrew switch perl-5.12.1
    > perl -v
    This is perl 5, version 12, subversion 1 (v5.12.1) built for darwin-2level

この後、違うバージョンのperlを入れたければ同じようにインストールしてからswitchすればおk!
    > perlbrew install perl-5.13.3
    > perlbrew switch perl-5.13.3 # 開発版!

普段作業するときにはperl hoge.plとやれば良きにはからってもらえます。

スクリプトのshebangに書く場合は「どれでもいいからperlbrewの指定するperlを使ってくれよ!」という時と「確実にこのバージョンのperlを使ってくれ!」という場合がありますが、前者の場合はenvでこんな感じにすればいいですし、
    #/usr/bin/env perl

後者の場合は絶対パスを指定すればおkです。
    #!/home/username/perl5/perlbrew/perls/perl-5.12.1/bin/perl

パワーユーザー的にはこの仕組みの良い点はコンパイルオプションが違う、同一バージョンのPerlを混在させる、とかもできるところですね。例えばスレッド込みでコンパイルされたPerlを扱いたいなら以下のように-D(コンパイル時に渡すフラグ)を渡してやって、インストール時の名前を変えてやればOK!
    > perlbrew install perl-5.12.1 -as perl-5.12.1-threaded -D=useithreads
    > perlbrew switch perl-5.12.1-threaded

お気軽ユーザーにとっては、perl本体とモジュール群がそれぞれ別のディレクトリで管理されるので最後に「もういらね」状態になったらそのperlをrm -rfすれば全部一緒に消えてくれ、あんまり後で問題になる事がないってもグッド。やー、楽ちん!

さあ、これで新しいPerlをインストールできないから使えないとか言ってられませんよ!是非新しいPerlを使ってみてください。
7/31に久しぶりに岡山に行ってOkayama.pmに参加してきました!
途中から僕の独壇場になってしまったっぽいですが、大丈夫だったかなぁ。

やはり東京のような都市との情報の格差があるんだなぁ、というのが正直な感想。XslateやCatalystの情報は結構あるはずだ、と思っていてもやはりそれの方向に興味を向けてくれる方法がないとなかなか広まらないんでしょうね。

今はtwitterやらなにやらあるから、うまく活用して情報を拾ってくるといいと思います! twitterで #perlをつけて発言するとか、 IRCで#perl-casualとかに参加するといいですね :)

ちなみに資料は来週アップ予定です。
http://xslate.org/

tokuhiromがざーっと雛形作って、あとはどかどかみんなでコミットしてたらいつのまにかできてたよ。
geohash値を計算するためのモジュール、Geo::HashってのがすでにCPANにあるんだけれども、それのXS版Geo::Hash::XSを作ってアップしておきました。実は特に使うアテもないんだけど、目の前で開発が進んでたロケタッチでいざ使おうと思った時にあったらいいかなぁ、と思って現実逃避のために作りました。

もしご意見等ございましたらお気軽にどうぞ。
えー、とうとう33歳になってしまいまして。

で思い返すに最近・・・そうですなぁ、ここ2年くらいですかね。なんだか急速に体の衰えを感じているのです。特に飯。どうもね満腹中枢と理性と内蔵の処理能力がいまいちシンクロしてないのです。

例えばお昼に出るじゃないですか。気分的にはお腹も減っていてそれこそ近所のもうやんカレーとか食べられるんじゃないかという感じなんですが、最近それをやってしまうともう後で膨満感で仕事にならない。他の店でも例えば昔はぺろりといけていた大盛り注文も最近は後で来るので食べられない。その食べてる瞬間はいける、と思うし実際完食まではできるんだけど、後でくるんだよなぁ・・・

まぁそんなわけでさすがに僕も馬鹿じゃないのでだんだんその事が分かってきて昼飯は今までと比べると軽めにしてみてうどんとか食べたりしてるわけですが、それでもやっぱり「あ、この店大盛りがあるんだ・・・」とか見てると腹のほうは「いけるいける、おまえ食えるぞ!」って言ってくるんですな。そこは理性でなんとか抑えるんだけど、なんか一抹の残念感というかなんというか・・・そういうものをもって店を出たりするわけです。で、歩いているとだんだんこなれてきて「あ、やっぱり大盛りにしなくてよかった」とかなるんで、まぁ最終的にはいいんですが。

とまぁこんな感じで、理性では「おれはもう大食いはできない」と分かっていても今までの癖で「まだ食える」と感じてしまうというちぐはぐな状態なわけです。

これからはなるたけ若人連中に食わせてそれを見て喜ぶ人になろうかと思います。
去年相方に連れられて初めてPUFFYのライブに行きました。で、今年もなんかいつのまにやらどこからかチケットを手に入れてきたらしく、この間三軒茶屋の昭和女子大学人見記念講堂でのライブにも行ってきました。

あいにくの雨の中、満席状態。デビュー14周年とか言ってたけど、好きな人も多いんですなぁ。

正直自分はそんなにファンでもないので大盛り上がりはしないんだけど、でも一つだけ言いたかったのは、自分みたいに「え、PUFFYってなんちゃってアイドルくずれポップでしょ?」とか思ってると意外とライブではびっくりさせられるということ。

PUFFY達のトークとかもまったりしてていいんだけど、バックバンドがまぁなんというか、こういう言い方は失礼かもしれないけど「ちゃんとしたロックバンド」なんだよね。骨太ロックが聴けます。おかげでそんなにPUFFYファンじゃない自分も大変楽しかったです。あ、ちなみに別にPUFFY嫌いとかでもないんで。要はフツーの観客です。



ところでやっぱり「大人の席」が欲しいです。1人3万円くらい、4人席で10万円くらいでボックス席になってて、ビールの一杯も着く感じの席。遠くていいので、落ち着いてライブを見られる場所。そんなのがメタリカライブとかであったら絶対いく!

以前ここで書いたTest::mysqldの仕組み、すこーしずつ毎回変えながら使ってる。今は継承はしてないが、まぁやってることはだいたい一緒。

で、テーブルのインデックスとか使ってるクエリとかを確認したいなーと思って、slow query logと general log をぼこっと出せるようにした。

    if (! $ENV{ TEST_DSN }) {
        my %my_cnf = (
            'skip_networking'     => '',
        );

        if ( $ENV{SLOW_QUERY_LOG} ) {
            $my_cnf{ slow_query_log } = 1;
            $my_cnf{ slow_query_log_file } = $ENV{SLOW_QUERY_LOG};
            $my_cnf{ long_query_time } = $ENV{SLOW_QUERY_TIME} || 0.1;
        }
        if ( $ENV{GENERAL_QUERY_LOG} ) {
            $my_cnf{ general_log } = 1;
            $my_cnf{ general_log_file } = $ENV{GENERAL_QUERY_LOG};
        }
        my $mysql = Test::mysqld->new(
            my_cnf => \%my_cnf,
        );

        if (! $mysql) {
            confess "Could not establish mysqld";
        }

        $ENV{TEST_DSN} = $mysql->dsn();
        $self->{_mysql} = $mysql;
    }
一回もう少しハードコードに近い形にしてみたんだけど、テストなので環境変数が一番楽だという結論にいたった。使うときはこんな感じ。ログの位置を絶対パスにしないと Test::mysqldが閉じると同時に消されるディレクトリに書き込まれるので要注意。

    SLOW_QUERY_LOG=`pwd`/slow_query.log \
    GENERAL_QUERY_LOG=`pwd`/general_query.log \
        make test

筆者

daisuke - a.k.a. "lestrrat", Perl hacker at Livedoor Inc, Japan Perl Association 代表理事
Powered by Movable Type 4.1