D-7 <altijd in beweging>

Day to day life of a Perl/Go/C/C++/whatever hacker. May include anything from tech, food, and family.

カテゴリ:日常

Lately I've been thinking about the influence that a given (natural) language has over the way we communicate and think.

I speak English and Japanese, I'm a used-to-be-fluent in Portuguese, and now I know a bit of Dutch. Please note that I'm in no way a trained linguist. These are just some random observations from a polyglot, DO read this with a grain of salt.

Okay?

Okay. here goes.


続きを読む
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

Fbとかにはちょこちょこ書いているが、人生で多分最長の、そして多分初の深刻な停滞期である。 続きを読む
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

2012 太宰府天満宮
一昨年の年末?くらいに人生で初めて「マトモ」なカメラを買った。まぁ本当に本気で写真撮ってる人にとってはこのカメラがどういう立ち位置なのかわからないのですが、ソニーのNEX-5 を買ったわけです。

専門的な事はわからないけど、気軽に比較的良い写真を撮りたいなーっていう俺みたいな素人にはNEX-5はわりといいなぁと思う。話とは全然関係ないけど、左の写真は先月行った福岡の太宰府天満宮ね。
続きを読む
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

というわけで1ヶ月ほど食事制限だけによるダイエットをしている。人生2度目のダイエット

ちょっと前に座っている時に何か服が小さい気がして、久しぶりに体重計にのってみたら「ひーーーー!」となったので一念発起してその日から食事の内容を見直した。

しばらくただ単純に量を減らしてたんだけど、数週間グラフと食事の記録を取って把握した結果、自分の体重は朝・昼の分量を調節するのが重要だと感じた。朝は基本的にご飯1膳、納豆、目玉焼きの繰り返し。昼は最初は迷ってたんだけど、最近はほぼ必ずおにぎり2個と炭酸水。夜は気持ち少なめ程度、野菜中心。週末は食べ過ぎにだけ気をつけてわりと好きに食べる。酒は通常飲んでてもあまり関係がない、というパターンが見えてきたのわりと普通に飲んでる。

特に「酒」と「週末はわりと緩く」というのはガス抜きという意味でも重要で、これがなかったら結構挫折の可能性が高いと思う。某バーには相変わらず出入りしている。酒くらい飲めなかったらこんなストレスのたまることできんわー。ちなみにそこのバーテンダーの皆様は俺が歯ぎしりしながらおつまみを何も頼まずに帰っているのを何回も見ている。これからもがんばる。

今のところ5キロちょい。7キロくらいでやっと体重3桁が2桁になる。挫折しないためにも公開しておいた。

このペースなら子供が生まれるまでには90kgくらいまで落とせるはず・・・ッ

    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

本日ちょうど嫁も妊娠時の検診をしようということで自分も一緒に歯医者で検診+歯石取りを受けてきた。1年ぶりにいったのだが、もう歯石取りが気持ちよくて気持ちよくて、途中何回も落ちそうだった。

知り合いはみんな歯石を取られてると痛いというんだけど、俺はこれ気持ちいいだけなんだよなぁ。

ちなみに実は一年前に歯医者に行ったのがそもそも15年ぶりで、それでも虫歯も一個もなく今回と同じ処置をされただけだったんだけど、前回はだいたい30分くらいで終わった歯石取りが今回はたっぷり1時間以上かかった。15年分の歯石を取るのが30分で1年分の歯石を取るのが1時間っておかしい・・・ということは前回俺を担当した女医さんが雑な処理をしたのだがな・・・というのが発覚。

まぁいいけど。また来年くらいに気持ちよく歯石を取ってもらおうと思う。

ああ、ちなみに今回も虫歯は一本もありませんでした。嫁は軽い虫歯2本発覚。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

あけましておめでとうございます。

2011年はいろんな人にとってもそうであるように後から考えると人生の転機になるかもしれない年でした。2012年はまだまだ色々自分の生き方というものが変わりそうな気がします。

これを書いている今は宮崎の相方の実家でくつろいでおります。ネット環境がないお宅なのでイーモバ経由でつなげていますが、正直回線スピードはイマイチ・・・。義理の姪っ子と遊んでなんかお父さんっぽい事をしてみたり、義理姉の新築の家の庭の造成をすこーーーしだけ手伝ったりしてます。

多分ここ15年くらいの間で一番エンジニアっぽくない正月を送ってますわ。

あー、2012年か。年明け早々色々やることがあるのでバタバタしそう。迷惑をかけることもあるかと思いますが、よろしくお願い致します。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

ここ1,2ヶ月で読んだ本。アウトプットの準備的に文章を取り入れてたので結構量がある。

村上春樹の作品は安定のおもしろさだけど、最初に「羊〜」を読んだので鼠やジェイがあちこちに出てきて若干混乱。ドラマ化された謎解き系のほうはまぁまぁ。飯を食いながら読んでも話は追えた。

小説は基本的に時期が来ると突然狂ったように読み出す。そしてその時興味があった作家のシリーズを読み終わるか、興味がなくなるとまたパタッと読まなくなる。そんなサイクルを繰り返してるな。

    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

ここ半年くらい諸事情でほぼ毎週実家に帰ってちょっと諸々用事を済ませている。

先週は嫁と一緒に行ったのだが、ちょっとコンビニに行きたいというので近くのコンビニに寄ったところ、なんだこりゃ、コンビニのくせして葉っぱが全部ついた大根とか白菜とか「ハナマサですか?」みたいな感じのびっくりな品揃え。うちの実家の近くは意外と畑とかある地域なんでどうも近くの畑で朝取れた野菜をそこで売ってるらしい。

嫁がカリカリ梅を買って外で待っていた間に白菜と葉っぱ付きの大根を購入したらてっきりジュースを買ってくると思ってた嫁にびっくりされた。

大根はまだ全然使ってないんだけど、葉っぱはいつまでもつけておくと(多分)そっちに大根の養分が吸われちゃってまずいので、まずはこれを先に調理。っていうか、個人的にはこっちのほうが主目的。なぜか子供の頃から大根の葉っぱを甘辛く炒めたのが大好きで大好きで・・・

まぁそんなわけで洗って5〜6ミリの長さに切った大根の葉っぱ・茎をざざざっと油で炒めて、お酒とつゆの素で基本の味付け。気持ち出汁の素を追加して、あとは砂糖と醤油で味を調える。できあがったところで火を止めてごま油。はー、うまそう。

苦みと甘みと醤油とごま油が渾然一体になってこりゃたまらん。炊きたてご飯と一緒にどうぞ。

もっと普段から葉っぱ付きの大根が買いたいよ!
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

最近嫁がアメリカンブレックファーストが嫌いじゃない、ということがわかったので2,3週間に一回パンケーキ的なものを食べるというのが続いている。この週末は自由が丘の「花きゃべつ」で朝ご飯を食べた。表参道のEggs N' Thingsよりかは完全に日本っぽい感じの味だったけど、うまかった。また行ってもいいけど、やっぱたけぇなぁ。二人で食べに行って2000円くらいが理想なんだけど。どっかにないだろうか。

ちょいとぶらぶらして、それでもまた嫁がなんか遊びたいオーラを出してたので急遽映画を見に行くことに。「すてきな金縛り」を見た。うわー!すげー!っていう映画ではなかったけど、2時間以上全く飽きなかったのでいい感じ。

夜は野菜が足りてなかったので大根とキュウリをスティック野菜にしたのと、デパ地下で鰤の刺身を買ってきたのでそれを食べた。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

今回複数の非常にたくさんのデータが入ったファイルをCoroとかでFurlを非同期に使いながらほげほげする・・・ってことをしたんだけど、その際わりとずーっと普通の動作をしてるのにどこかで突然使用メモリが倍々ゲームになる症状がでてしまった。

基本的にやってることはこう:
   my @files = @ARGV;
   foreach my $file (@files) {
      # use Coro::Semaphore and what not to limit the number of
      # simultaneous files being processed to < 5
      ... snip ...

      async_pool {
         while( my $line = <$fh> ) {
             do_furl_stuff( $line );
         }
      };
    }

で、まぁ多分async_poolしてるから、async_pool内でがっつり確保したメモリを解放してないとか、そういう理由な気がするんだけど。でもasyncしてた時も同じ症状だったし・・・まぁともかくなにかあるんだろうけど、それをデバッグしてる時間がなかった。それにそのメモリ部分以外はちゃんと動いてるし!

ってことでどうせ一回しか動かさないスクリプトなので、こんな形でざっくりとワークアラウンドした。これだとメモリを食う"realscript.pl"は5ファイル処理した後終了するので、少なくとも一定時間で入れ替わる。

    my @files = glob( "data/*.txt" );
    while ( @files ) {
         my @args = splice @files, 0, 5;
         system "realscript.pl", @args;
    }
というわけで本日の教訓は「メモリがないなら定期的に世代交代すればいいじゃない!」でした。本当の教訓は「Coroとか使うときはきちんとメモリの管理を考えようね!」だけど、TPOによってはこれもありかなー(と、お茶を濁す)。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

ここ5,6年ずっとお世話になっていたSPIDERの電源を先ほど落とした。前にもこのブログで紹介したこともあるし、ことある毎に宣伝してきた機械なので僕の知り合いなら聞いたことがあるかもしれない。地上派の放送を8チャンネル分全部、常に録画し続けるという素晴らしい機械。予約録画とかもう過去の遺物ですよ!と思わせてくれるすばらしすぎる機械。某社からいただいてもう本当、ここ数年の間の俺のテレビ視聴ライフを100%支えてきてくれた。

・・・なんだけど、地デジ対応してないからどうなるのかーとずっと思ってたんだけど、今年6月になってもなんも連絡もこないし、メールでのお知らせ登録をしてもなんも来ないしでとうとう今日アナログ放送が終了してしまった。なので電源オフ。

そんなわけでこの間代替物として REGZA ZG2を購入した。ヤマダ電機行ったらこの乗り換え時期だからか応対が整理券で順番に、とかなってるくらいで、納品も2週間後とか言われてしまった。なので今日から8月まで番組録画とはおさらば。

ちなみにこのZG2、多分発売時期とかから考えるとスパイダーの機能をパクリまくってると思うんだけど(違ってたら失礼)録画時間が30時間としょぼい。しょぼい!しょぼい!東芝はこういう機械をわざわざ買うユーザーのヘビーユーザーっぷりを甘く見てると思うなー。

ただ普通の予約録画機能は以前からある機能を使えるのでこれと併用する形で見たい番組を網羅する事になるだろう。確実に見たい番組は予約、いつ何がやってるのかわからん深夜番組の時間あたりは無差別録画、という形でやってくんだと思う。

ともあれ、早く1週間くらいは何も考えずに番組を保持しておける機械出して欲しいなー。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

Learn Python The Hard WayAdvice From An Old Programmerにとても良いことが書いてあった

Which programming language you learn and use does not matter. Do not get sucked into the religion surrounding programing languages as that will only blind you to their true purpose of being your tool for doing interesting things.

自分はJapan Perl Associationとかやってるけど、これはいつも思ってる。

根本的には正直みんなが選ぶ言語がPerlじゃなくてもいいとさえ思ってる。問題発言かもしれないけど、自分はPerlとその文化が好きだから是非みんなにPerlを選択肢の一つとして選んで欲しいし、Perlを選ぶことによって得られるメリットはたくさんあるとは思う物の、プログラマとしては別にどの言語を選ぶなんてどうでもいい

(じゃあなんでJPAとかやってるかというと、Perlという選択肢をみんなに公平に判断して欲しいから。まぁこれはまた別のエントリになる話だけど、要は古い情報や感情的な意見だけじゃなくて、ちゃんとメリットデメリットを判断できる形にしてからみんなに判断してほしい)

そのかわり上の引用の通り、一つの言語だけ知っててその「宗教」にはまりそれ以外を覚える必要がないと言ってる人とか、あまりにも抽象的な理由で言語の好き嫌い言ってる人は普通にエンジニアとしてはどうかな・・・と思う。

言語はツール・表現方法であって、ただ適材適所だと自分は思ってる。


自分はPerlは好きだけど、普段は必要に応じてCも書けばJavascriptも書くし、今まで「手を入れた」程度のプログラムだったらJavaもRubyもPHPもC++もLispもやってる(実はメジャーな言語でpythonだけは見ただけで書いた事がない)。どれも別に本質的には言語云々ではなく、たまたまやりたい事があったからそれに合う道具でやった、っていうだけ。

まぁ、そんなわけで言語Xのほうが言語Yより・・・とかどうでもいいし、みんなもっとゆるーくやんなよ。色々出来るってのが一番重宝がられると思うしね。




(ちなみに色々な言語を使えるようになるためには普段使ってる自然言語と一緒で、ひとつの「主言語」は奥深いところまで押さえておく必要はあると思うのでなんでもかんでも手を出せばいいというわけではないのでそこは注意が必要かな)


以上、雑文でした。

    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

@tomitaさんが書いた「CPANモジュールガイド」の刊行記念ということで池袋のジュンク堂本店で話して・・・もとい、コードを書いてきました。普段は滅多にこういう場に現れない「初めてのPerl」や「プログラミングPerl」の翻訳者である近藤嘉雪氏がもう一人のゲスト。司会がもはや技術界のタモリと化しつつある@yusukebe。あと@941さんがスタッフとして手伝いに来てくれました

近藤さんを見られるというだけでも実はすごいイベントだった気がする。ちなみに近藤さんは出番直前まで頑張ってスライドを書いていて、そのおかげで話にクロージャが含まれたそうです!

こちらは@tomitaさんが書いた店頭POP。「Placクマ」の二重のパクリがひどいですねwww !


イベントの内容自体は・・・なんだかリハーサルというか、ちゃんとした打ち合わせもしてなかったのに、すごく内容が良い感じになった気がしますね。Perlの基本を@tomitaさんと近藤さんが丁寧に説明してくれて、最後に僕がわーーーっとCPANモジュールを使ってコードを書く過程をなぞる、という感じ。

自分の発表はCPAN 30分クッキングということでCPANから色々ダウンロードしてきてFacebook::Graphとか使ったらこうなるよー的なコードをざくざく書きました。

最終的に書いたコードは、@sugyanさんのブログのパクリと、自分の友達のタイムラインからロケタッチのリンクを抜き出してきてHTMLを作る、というようなもの。本番では実はトラブルがあって最後のロケタッチページを作成するためのHTTPリクエストがうまく動かなかったので一瞬焦ったが、「CPAN 30分クッキング」ということで「すでにこちらに出来たものがございます」というものを用意しておいたので助かった。一応その程度のネタは仕込んでおいてよかった・・・

というわけでなかなか楽しかった!みんな、もっと僕らの本を買ってくれると次が出せるようになるからよろしくお願いします!w


さて、僕の発表ですが、全然中身はないですが、スライドは以下のような感じ:


あと一応こちらがコード。最初にconfig.plというファイルの中に自分のFacebookアプリ用のapp_idとsecretを入れておく

return {
    app_id => "XXX your app ID",
    secret  => "XXX your app secret"
};

まずはsugyanさんのパクリのヤツ。アクセストークンをコピペするのが面倒くさいのでコンフィグファイルにダンプするようにしてある:

use strict;
use Data::Dumper;
use Facebook::Graph;
use Plack::Request;

my $config = require "config.pl";
my $fb = Facebook::Graph->new(
    app_id => $config->{app_id},
    secret => $config->{secret},
    postback => "http://localhost:5000/"
);

return sub {
    my $env = shift;
    my $req = Plack::Request->new($env);

    if ( my $code = $req->param('code') ) {
      warn "requesting access_token";
        $fb->request_access_token( $code );
        my $dump = Dumper({
            %$config,
            access_token => $fb->access_token
        });
        $dump =~ s/\$VAR = //;

        open my $fh, '>', "config.pl" or
            die;
        print $fh $dump;
        close $fh;
        return [ 200, [], [ $fb->access_token ] ];
    }
      warn "redirect";

    return [
        302,
        [
            Location => $fb->authorize
                ->extend_permissions( "publish_stream" )

                ->uri_as_string
        ],
        []
    ];
}

で、こっちがFacebookにアクセスしてロケタッチのデータだけ抜き出してくるヤツ。普通にFacebook::GraphのAPI使ってたらおせーな、と思ったのでFurl+Coroしてみた。よくよく考えてみると CoroとCoro::LWPしとけばFurl使わなくても多重化できるから速くなる気がするが、まぁ後悔はしてない

use strict;
use Text::Xslate;
use JSON;
use Coro;
use Coro::Select;
use Furl::HTTP;
use Facebook::Graph;
use Data::Dumper::Concise;

my $config = require "config.pl";
my $fb = Facebook::Graph->new(
    app_id => $config->{app_id},
    secret => $config->{secret},
    access_token => $config->{access_token},
);
my $data = $fb->query->find("me/friends")->request->as_hashref;

my $furl = Furl::HTTP->new;
my @coros;
foreach my $friend ( @{ $data->{data} } ) {
    my $q = $fb->query->find( "$friend->{id}/feed" );
    push @coros, async {
        my (undef, $code, undef, undef, $body ) = $furl->get( $q->uri_as_string 
);
        return unless $code eq 200;
        return decode_json $body;
    } $q->uri_as_string;
}

my @spots;
foreach my $coro (@coros) {
    my $feed = $coro->join;
    next unless $feed;
    foreach my $entry ( @{ $feed->{data} } ) {
        if ( $entry->{caption} eq 'tou.ch' ) {
            push @spots, $entry->{link};
        }
    }

}

my $xslate = Text::Xslate->new(
    path => [ "." ],
    syntax => 'TTerse',
);

print $xslate->render_string( <<'EOM', { spots => \@spots } );
<script type="text/javascript" src="jquery-1.5.2.min.js">
<script type="text/javascript">
var urls = [ [% FOREACH spot IN spots %]"[% spot %]"[% IF ! loop.last %],[% END %][% END %] ];

$(document).ready( function() {
    var delay = 200;
    var f = function() {
        url = urls.pop();
        url = url.replace( /\/$/, "" );
        url = url.replace(/\/spot/, "/widget/spot");
        var iframe = $('<iframe frameborder="0" scrolling="no" allowtransparency="ture" height="321" width="350" src="' + url + '?i=0&m=1&t=blue&width=350"></iframe>');
        $("#container").append( iframe );
        setInterval(f, delay);
    };
    f();
} );

</script>
<div id="container"></div>
EOM
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

(I posted this in Japanese a few days ago. I'm reposting in English... well, because I can :)

So on that day, I was working as usual: With my headphones on, chugging some code. At first I didn't realize that anything was going on - I thought maybe I was making some noises myself. Then I realized that my monitor was shaking. Now there was something going on.

I immediately sent a skype message to a friend living in Iwate -- to which there was no response, because apparently the lines went down over there.

I was in the 25th floor, so things were shaking pretty badly. It was hard to even be standing at times. The building that we can see from our floor was visibly shaking -- it was wobbling (note: most Japanese buildings are made to shake  instead of flat out collapsing). I started sensing this is no ordinary quake.

It took a long time for the shake to subside. Perhaps the ground was fine, but since we were in the 25th floor, maybe the building shook a bit longer.

When things started to calm down, somebody in the office noticed that there was a huge flame towards southeast (note: turns out this was the gas tank in Chiba)

It was obvious something really bad just happened. I was pretty much decided at this point to go pick my wife up and go home ASAP. I started packing, and luckily the we were told pretty quickly that we were free to go home. I said that I'd be leaving to my coworkers, and headed for the stairs.

While I was going down the stairs, I noticed that the paint on the walls had come down from the quake. I was pretty relieved in knowing that the building didn't seem to have any other significant damage. On the way done, I came across a few people actually coming UP the stairs. "I wouldn't do that," I thought, but oh well. I headed out.

There were a lot of people in the lobby. Outside, in front of the building I saw our CEO along with others from work. I guess they were on the way back from their usual late lunch.

I read that the quake took place around 2:46 afterwards. On that day, I had already left work at around 3:10. I knew I was pushing my luck, but I kept calling my wife. Luckily, she was able to pick up the phone pretty quickly. I checked if everything was okay, and told her that I'd be coming to pick her up. BTW, I tried calling my family that day, but wasn't able to reach anybody until later in the night.

I still didn't know exactly how big this earthquake was, so I headed towards the closest station to check out what the status of public transportation was. As I was reaching the station entrance, another big aftershock hit, and people inside the building started running out.

I don't remember how exactly I heard, or decided to myself, but at this point I knew the trains weren't going to move. So I started walking towards my wife's workplace.

On a regular day, it would take about 30 minutes to reach her workplace on foot, but there were crowds of people on the street (note: actually the situation was much better off than what it would have been a few hours later), so it was hard to proceed. There were also areas where the police had shut out people from (for whatever reason -- I didn't bother checking) so I took alternate routes. I felt secure though -- I knew the place inside out, because of the regular Tokyo-walks that I had been taking for years. I knew exactly where I was headed even without a map.

On the way, I found a crowd of people staring at a TV at a store. I glanced and saw the immense tsunami for the first time. "Holy sh*t!". This was not an earthquake. It was a disaster of proportions which I had never seen before. I was so glad that I had the chance to hear my wife's voice earlier. Otherwise I must have felt much much worse. Anyway, the TV image was enough to pick up the pace to my wife's place.

There was a convenience store open on the way. I clapped and cheered inside my head to the owners of this joint, and went to buy a bottle of green tea just in case.

All this time, I'd been checking twitter to find out what the hell is happening. Some people were claiming aftershocks after aftershocks, but I didn't really notice them while I was walking. I also emailed many friends and of course my family on the way.

At around 4:00pm, I finally got to my wife's workplace. Apparently her boss was just about to continue business as usual. Since I didn't want to just burst in, I emailed her from all the addresses I had, to all the addresses she had. Apparently only gmail delivered on time, and she came out of the door. She briefly went back inside to tell her boss that I came to pick her up, and we headed home.

We kept walking, and at around 5:00pm, we realized that we were pretty hungry. My wife apparently got hit by the quake when she started eating lunch. So when we found a noodle shop open on the way, we went in and had a nice, warm meal. God, I love Japanese noodles.

Then we avoided the big streets (for fear of having to walk through big crowds or having something collapse on us), and kept walking. At around 6:00pm, we were getting pretty close to our home. I was relieved to see that things looked normal around there -- I was now confident that infrastructures like electricity and water would be up at home.

Right before we got home, we went into another convenience store, which still had decent supply. Looking back, this was a good decision, as food and water quickly disappeared from the shelves in the coming days.

And we finally made it back. Looking at twitter, my friends are starting to head home themselves. There were a few people walking a really long distance home too. I was so glad to making it home before nightfall.

I actually don't remember much after arriving home. I guess I felt saved. I zapped through the TV, and talked to my family on the phone.

I started receiving replies from people who I sent emails to the next day. They apparently got my email pretty quickly, but their replies just didn't make it to our servers.

And then in the following days my employer told us that we should stay at home and do what we could as far as work was concerned. That lasted for two weeks.

And here I am now.
There's no punchline or dramatic build up in this story. I just wanted to keep a memo of what I went through on that date. Maybe this will of interest to someone.
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

地震があった時は当然会社にいた。いつも通り適当なDVDを流しながらヘッドフォンをかけて仕事をしていたため最初は全く気づかず、まわりがガヤガヤ言い出して、それでも自分がコードを書きながら足を踏みならしてたせいかと思った。モニターがガタガタ揺れ始めて初めてなんかやばそうな事に気がついてまわりと顔を見合わせた。
揺れに気づいた時に岩手の友達のほうにメッセージを送ったが、届かなかった(あとで確認)。

25階というせいもあり、途中縦揺れが始まると立ってるのも若干辛くなる。座らずにはいられない。目の前に見える野村ビルがプリンのような感じで揺れていると回りの人が言い出して、それを見る。いよいよやばい気がしてくる。

大分長い。いつ終わるんだ。もっとも、揺れていたのは地面ではなくビルかもしれないが。

だんだん落ち着き始めた頃、遠くのほうで赤い炎が見えた。誰かがあれはお台場のほうだと言う。

さすがにこれはやばいのは誰の目からみても明らかだったのでその時点で誰になんと言われようと妻を迎えに行って家に帰ることに決めてた。まだ若干揺れていたが、手早くいつも通り片付けを始め帰る準備は万端。ラッキーな事にうちの会社は比較的すぐに帰って良い事になったため、回りに軽く声をかけて階段に。

17、8階までおりたあたりで元々そうだったのかどうか知らないが、壁の塗装がはげてるのが見える。これくらいならこのビルは大丈夫だな、と思いつつさらに下へ。上にあがろうとしている人もいるが、正直「今から外に行くならともかく上がるなんてどういうことだ」と思いつつ外へ。

ロビーではたくさんの人がガヤガヤと集まっていた。会社の前の広場では社長を含めて数人がいる。いつもの遅い昼食に行っていたであろう同僚達だろう。

後から調べたところ地震があったのは2時46分だという。3時10分すぎには会社を出ていた。途中埒があかないなーとは思いつつも妻に電話をかけ続ける。会社を出たところで奇跡的に1回繋がり、手短に彼女の安全を確かめた後、迎えに行くからそこにいるよう伝える。その後は夜になるまで妻は当然のことほかの誰とも電話は繋がらなかった。

その時点ではまだどれほどの地震だかわからなかったのでとりあえず新宿駅へ向かって、鉄道がどういう状態なのか見てみようとした。さすがに騒然としている。いつものJRの改札のあたりにさしかかるところで余震。かなり揺れて、駅の中のほうから人がかけだしてくる。

もう混乱しててどこでそう読んだのか、そう確信したのかわからないが、電車が動かなさそうと判断したので、妻の会社方面まで移動。

いつも都内ハイキングと称した散歩をしていてよかった。まったく迷う気がしない。普通の日だったら30分でつく距離だが、さすがに人が多くて進みづらい。途中代々木駅あたりで道が通行止めになっていた。なんでかは全然わからなかったが、ちょっと迂回しててくてく歩く。

途中どこかの店先でテレビに食い入るように見入る集団を発見。ちょうど津波の映像が流れているところだった。ここで初めて「こいつは*本気で*やばい」と思い始める。その時点で妻の声をすでに聞いてなければかなり焦っていたことだろう。とにかくこれで多分交通網は絶望的だからとにかく早い内に帰ろうと余計に決心した。

途中どこかのファミリーマートでお茶を一本購入。店の人達偉い!と思いつつさらに移動。この間ずっとtwitterで状態を確認しながら歩いている。余震の発言とかも見るが歩いているのでよくわからない。あとは知り合いや家族にメール。

歩いている人が実はこの時点で大分少ない。みんなどちらかというとぼーっとしてる感じ。

4時過ぎ、ようやく妻の会社前に到着。自分の持ってる全てのメールアドレスから、妻のもってるありとあらゆるメールアドレスにメールを送信。gmailだけが届くと妻が外に出てきた。妻の会社は下手するとそのまま営業を続行しそうな感じだったらしく、「旦那が来たから帰る」と言って二人で移動。

そのまま歩き続ける。5時過ぎに腹が減ってきた。妻もランチ中に地震があったらしくご飯をまともに食べていなかったらしく同意。でもさすがに俺にいつもつきあって歩いているだけあって、足取りは全く持って普通。いつも横を通るところにある蕎麦屋が営業していたのでそこでさくっと温かい蕎麦を。五臓六腑にしみる。

その後は大きい道を避けて歩く。6時ちょっと前にやっと家の手前に到着。もうここまで来て町並みが被害を受けていないならうちも大丈夫だろうと安心する。あと電気がついている家もちらほら見受けられたので停電もないという確信があった。

家に行く手前でいつも行ってるコンビニに寄った。もうすでに品薄になり始めてたが、まだまだ十分に色々とあったので、おにぎりを二個ずつ、ポテトチップとかの乾き物を少量、それに飲み物をちょっと購入。後から考えるとこの判断も正しかった。

6時ちょうど頃家に着く。twitterとかを見てるとボチボチ帰宅難民の人達が本気の悲鳴を上げ始めている。もちろんすでに大分前から遠距離を歩いてる猛者もtwitterで見てた。日が暮れる前に家にたどり着けて本当に良かった。

家につき、安堵したのか、とりあえずここから先はあんまり記憶に残ってない。テレビを見たり、twitterを見たり。

家族にはその晩連絡がついて、無事を知って安心。

それ以外の人達は翌日の夕方になってメールの返信が届き始めた。みんな俺のメールは比較的早い内に受け取っていたみたいだけど、返事が全然こちらに来ていなかった。

土日があって、次の日からは自宅待機。ある時点からは出社禁止。そしてようやく次の月曜から出社。

というわけでとりあえず 3/11の記憶を記録してみた。特に落ちはない。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

DSC_0006.jpg
まぁそんなわけで久しぶりにdocomoユーザーになったでござる。画面は正直iPhoneより全然美しい。日本語入力もATOKを使えるので大分良い感じ。

写真は今日築地に遊びに行った際に小田保さんでブランチで食べたアジフライ定食をXperia arcで撮影したもの。Macを母艦としてるのでやっぱりiPhoneのようなタイトなインテグレーションは望めないが、まぁそこはdropboxとかを駆使すれば特に問題はなし。音楽はもともとこういう機械では聞かないし。

本当はPocket Wifi的なものも欲しかったんだけど、あれってやっぱり別途回線契約必要なのよね(?)もうFOMA回線があるんだからそれを使わせてくれればそれでいいのになー
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

何かしら問題が起こって(もしくは問題が起こったのかどうか切り分ける段階で)それを解決する際に出てきてる表示が英語で読めなくてうろたえる、って経験ありますか。回りの人に聞いてるとよくある現象くさいですね。

自分は幸運にも海外育ちなので英語は全く問題ではありませんけど、同時にハッキリと言えることは仕事でプログラムを書いたり、パッケージをインストールしたり際にいちいち律儀に画面に出てくる英文を読んだりはしてない、ということです。

重要な事なのでもう一回言いますね:「いちいち律儀に画面に出てくる英文を読んだりしてない」です。

まず、大前提。その切り分けができなくてうろたえてる状態に陥ってるあなたは確実にそのソフトなり環境なりのエキスパートではないですよね?エキスパートだったら多分その状態についてすでに知っているか、調べる方法を知ってるはず。エキスパートじゃないから困ってる。ということは自分で解決するのはできるとしても多少時間がかかるでしょう。趣味のプログラミングはそれでもいいですが、仕事だったらその多少の時間がもったいないです。とっとと回りの人に聞いて、次回同じ状況に陥らないための方法とかをメモしながら作業したほうが早い。なので自分一人で困るのはやめましょう。

でも回りに聞くためにはある程度の切り分けができないとダメです。その現象がなんなのか具体的に分からなくとも、以下の2点が分かればもっと分かっている誰か(例:Google先生)に質問することが可能になるとはずです:

  1. それはそもそもエラーなのか?
  2. エラーならばどこの部分が具体的にそのエラーの状況を表しているのか?

この際、英文を読める必要はほとんどありません。エンジニアであればほぼ確実に出会ういくつかのキーワードを知っていればOKです。あくまで一例ですが、

  • "Error"
  • "Fail"
  • "Abort"
  • "Exited"
  • "Stop"
  • "Give up"
  • "Fatal"
・・・等々、この辺りのキーワードだけ覚えてください(実際にはもっと他にパターンがあるかもしれませんが、これだけでも6,7割はあたるはず)。あとはこのキーワードを使って、表示されてる文内を検索してください。その言葉の前後にエラーくさい(普通処理と異なる)出力がしてあれば、十中八九それがエラーです。

で、エラー文さえ入手できれば少なくとも「質問をする」という行為にたどり着くまでに収集可能な情報はほぼ全て揃ってます。あとはなるたけ状況を理解しやすいようにそこまえいたった背景をエラーメッセージとともに指定すればOKです。

ね、英文なんて読む必要ないでしょ?be動詞がどうたらとか、どうでもいい!エラー文の場所さえわかればいいんです。そういう勘がつけば、あとは少しずつ定型文の語彙を増やしていくだけで少なくともプログラム関連の英語に関しては結構実用的なノウハウがつくはずです。




ちなみにこれ、ちょっと前に Perl Casual で行ったライブコーディングの際にも話した内容と同じです。その際はPerlモジュールを扱う際にPODで記されたドキュメントをどうやって読むか、という話をしました。

PODも実はほとんど内容を読んでません。まずSYNOPSISでコードは読めるし、DESCRIPTIONはモジュール名を見てわからない時だけ読みます(でもそもそもモジュール名を見て内容がわからないモジュールは使えない事のほうが多いので、結局読まなくてよかった、みたいなこともあり得る)。

で、前述のごとくこういう状況でも自分はほとんどドキュメント自体は読んでません。キーワードだけ追ってます。

関数の使い方は "Returns"とか"Takes"とか "Parameter"とか"On error"とか、キーワードだけ見てます。戻り値が知りたいならReturnsの前後の文脈だけ読めばよく、引数はTakesの前後で大体事足ります。もしそれぞれの説明がわからなくても、誰かに「Takes XXX のXXXってどういう意味?」と聞けますよね。「この関数どうやって使うの〜?」という大雑把すぎて聞かれたほうにははた迷惑な質問に比べたらピンポイントで単語の意味やその部分の挙動について聞かれたほうがはるかに質問する行為のコストパフォーマンスがあがるはず。

というわけで、僕の言いたいことはまとめるとこうです:文学作品を書くわけじゃなし、技術資料を読むのに語学力なんて大していらない。まずはキーワードを覚えろ。覚えたらその回りの文章を読みほどくか、とっとと誰かに聞くべし。それを反復すべし。

読めなくても必要な情報だけ抜き出せるように練習するとぐっと楽になりますよ!
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

最近風邪ばっかひいてて、さすがに大晦日から三が日全部風邪でつぶしたのはとほほだったので2011年はちゃんと体を鍛えようということにしたのであります。

手始めに先週末、相方と水着を買いに行った。結構したけどまぁ万が一これで水泳しなかったらお金無駄になっちゃうね!ってことで自分にプレッシャー。

で、今日前々から調べてあった近くの某公立中学校のプールへ。一般開放してるらしいってことで気になっていたのだ。2時間400円なんだけど、10月から5月までの間は2時間分のお金を払うといくらでも泳げるらしい。

行ってみたらすごいいいプール。室内、温水、25メートルレーンが6つもある!最近の中学生はこんな贅沢なプールで泳いでるのか!監視もちゃんとしてるしすばらしい。税金払ってるんだからこれは是非使うべき。

何往復したのか数えてなかったけど、休憩も挟みつつ2時間弱泳いできた。開始20分くらいで上腕部の筋肉が痛くなり始めてもう体が鈍ってるのを痛感。さすがに4年泳いでないとこのざまか・・・悲しい・・・が、とにかく泳ぎ続けた。1時間くらい泳いでたら少しずつ勘が戻ってきてだんだん力を抜いて泳げるようになって良い感じ。

帰りにビールを買って帰宅。やっぱり水泳は性に合ってるわ・・・どこまで続けられるかな!
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

や、冬があるから雪見で一杯ができる風情があるとかそういうのはわかってんだけどさ。

大人になって、いよいよ自分は「南国育ち」なんだなぁと思う。もうね、寒いってのが理解できないのよ。意味がわからない。「ここは人間の活動区域ではない!」と心の底から思う。

日本は四季があっていいなぁとは思うけど、自分はどんなに寒くても摂氏15度以上ある場所から雪とかを見ていたい、と今朝通勤中に思ったわけであります。


最近「つぶやき」はみんなtwitterでやっちゃうからつまんないな、ブログとかに残るっていいな、とこの間ひっっっさしぶりにshuさんの日記を見つけて思ったのでちょっと書いてみた。

あとJPAブログのほうを更新しました!就職してしまったのでこちらのほう更新が進まなくて申し訳ないです。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

7/31に久しぶりに岡山に行ってOkayama.pmに参加してきました!
途中から僕の独壇場になってしまったっぽいですが、大丈夫だったかなぁ。

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

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

ちなみに資料は来週アップ予定です。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

このページのトップヘ