和イタリア アルポルト

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

京都最高!

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

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

  • 微妙に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とかもいけんのかな?

どう書くの「出力の一時停止と再開」をperlのthreadで

書いてみた

最初に書いたのがこれ。

use strict;
use threads;
use threads::shared;

$| = 1; 

my $f : shared;
my $ob = threads->create(\&observe);
my $pr = threads->create(\&print_a); 

$ob->join();
$pr->join();

sub observe {
 my $i;
 while(1){
   $i = <STDIN>;
   chomp($i);
   exit if $i eq 'q';
   if ($i eq 'p'){
     $f == 1 ? $f-- : $f++;
   } 
 }
}

sub print_a {
 while(1){
   if($f == 1){
     print "a";
     sleep 1;
   } 
 }
}

Term::ReadLineがよくわからなかったので、あえて使わずに書いてみたら相当ダメな感じになってしまったので、Web+DB Pressを引っ張りだしてきて書き直して投稿。

つけ麺TETSU

品川駅の近くのとこのラーメン屋がいっぱいはいってるところ

1211631803 1211631809 1211631801

麺が太い、削り節が濃厚でうまい。ガシガシ食べる系。