ルービックキューブ二種

だいぶ前にRubic キューブと置換の乗算を読んで以来、ルービックキューブが欲しくてたまらなかったのだけど、ふと2x2のキューブがあるという事実を発見し、セットで購入。

ProductName ルービックの2×2 キューブ(CUBE)

メガハウス / ¥ 1,260 (2002-03-20)
通常24時間以内に発送

ProductName ルービックキューブ (6面完成攻略書付)

メガハウス / ¥ 2,079 (2005-01-23)
通常24時間以内に発送

2x2は娘が遊ぶかなと期待してたんだけど、揃える以前にまわす事ができず、怒って床に叩き付けてた。

とはいえ、自分で遊んでも、全面揃えるのは結構難しい。あとでhaskellのやつに倣って2x2の解き方を書いてみる。

マリオカート wii

二歳の娘でもハンドル握らせればできるかなと思って購入してみた。

ProductName マリオカートWii(「Wiiハンドル」×1同梱)

任天堂 / ¥ 5,800 (2008-04-10)
通常24時間以内に発送

が、無理だった。

wifi対戦がやたらと楽しい。ちょっと精進して勝てるように頑張るかも。

和イタリア アルポルト

ちょっとしたシンポジウムがあって京都にいってた。京都にいくたびに思うんやけど、

京都最高!

なんで静岡に住んでるんやろか?なんていまだに思う。

さて、シンポジウムではドワンゴの川上さんが「私の起業体験」とかいう話をされていたのだけど、大変興味深かった。

  • 微妙にsed使い
  • 行あたりいくらという勘定してたのでsedパワーで行を増やしてぼろ儲け
  • みんなが賛成するようなプロジェクトは実はライバルが多くてうまくいかないことが多い。むしろ反対されるほどうまくいった。
  • 誠心誠意つくすというよりは、最終的にユーザーがどう思うかの方が大切。

最後の二つは特に心に残った。

懇親会は「アルポルト」。お箸で食べるイタリアンといった感じ。終始ビールだったけど、ワインにするべきだったかも。

あと、同期とか先輩と話したりできて楽しかったし、いろいろ参考になった。

1212306153

前菜とホタテのソテー

1212306154 1212306138

牛肉の(ワイン煮かな?)とパスタ。パスタは見た目と違って酸味が少なくて驚いた。牛肉は柔らかさにびっくり。

1212306149 1212306158

そしてデザート

1212306140

こだましか停まらない駅に住んでると9時前に京都を発たないと帰れないといけないので、ちょっと早めにおいとまさせてもらった。

帰りに撮った京都タワーがやけに奇麗だったな。

1212306145

あー、また京都に住みたいなー。なんてのは最近また強く思うな

銀座【匠力】

京都拉麺小路内の行列の一番できてないところに並んだ。

1212306156 1212306147

結果として正解。ちょっと麺が好きな感じではなかったが、スープは旨かった。

こういう京都にいくチャンスの時は泊まるべきだとは思うんだけど、なぜか日帰りで帰っちゃうんだよな。

LL Futureのチケット購入

LL Futureのチケット購入した。

1212306142

メタモと合わせて二週連続のイベントで楽しみ。

草季庵でコースと日本酒

御殿場の杉名沢あたりにある蕎麦屋さんで。

1212276734 1212276727

日本酒は「國香」「磯自慢」あたり。

1212276732 1212276722

蕎麦せんべいに混じった塩昆布の塩気がいいアクセントになって酒がうまい。

蕎麦豆腐と出し巻き卵

1212276709 1212276720

揚げ蕎麦がきとホタテのサラダ

1212276717 1212276724

鴨焼きと天ぷら

1212276711 1212276736

蕎麦と菓子

1212276713 1212276715

満足

SRM173-DIV2-500

splitができなくて難儀した。

というわけでxでsplit。substrで前から切り刻んでいく。

#include <vector>
#include <string>
#include <iostream>

using namespace std;

int main(){
  string str = "..x..x.xxx.xxx.....x.x...x..x.x....x.x...";
  int cutAt;
  while( (cutAt = str.find_first_of('x')) != str.npos ){
    if(cutAt > 0)
      {
       cout << str.substr(0, cutAt).size() << endl;
      }
    str = str.substr(cutAt + 1);
  }
}

あーこれだと最後のstringは何もしないな。

しま坂

YAPC::Asia 2008のお昼は両日ともここで。

1211631795 1211631797 1211631799 1211631811

つけ麺よりも普通のラーメンのほうがうまかった。

c++で降順にソート

三番目の引数に設定する

sort(vc.begin(), vc.end(), greater<int>());

または

sort(vc.rbegin(), vc.rend());

catalystのres-&gt;bodyにファイルハンドルを渡す

Catalyst::Plugin::Static::Simpleで静的にサーブしているpdfとかの文書ファイルに(ベーシックとか)なんか適当な認証をかけたくて悩んでた。

そういうファイルはApacheとかに任せれば解決するんだろうけど、残念ながらApache動かせないというシチュエーション。

散々悩んだあげく別にStatic::Simple使わなくていいじゃんということに気づいてしまい、おもむろにStatic::Simpleのソースを読み始めた。

どうせFile::Slurpでもしてbodyに出力してるんだろうなぁと思ってたんだけど違った。

if ( Catalyst->VERSION le '5.33' ) {
    # old File::Slurp method
    my $content = File::Slurp::read_file( $full_path );
    $c->res->body( $content );
}
else {
    # new method, pass an IO::File object to body
    my $fh = IO::File->new( $full_path, 'r' );
    if ( defined $fh ) {
        binmode $fh;
        $c->res->body( $fh );
    }
    else {
        Catalyst::Exception->throw( 
            message => "Unable to open $full_path for reading" );
    }
}

最近のバージョンはファイルハンドルをres->bodyに渡せるのか。IO::Allとかもいけんのかな?