停滞期

Fbとかにはちょこちょこ書いているが、人生で多分最長の、そして多分初の深刻な停滞期である。

理由は色々あるけど自分の場合は20代で好き勝手にやりたいことを大分やった後、30も中盤になって家族を持ったことが非常に大きく影響している気がしている。まぁそれが直接のどうこう、というわけではなく、人生の中でプライオリティがガクガクと変わってきたというか。

エンジニアリングに関しては・・・まぁ捨てるつもりはないけど、今この時点では興味のランキングの中では大分差のある2位に落ちてしまっている。ただ、蓄積された経験というアセットを持っているので、自分から何か作るというよりはこれからの人に教えたり、裏で支えたりする仕事をしたいと思ってる。が、今そういう仕事はないのでYAPCをがんばるかなぁという感じ。ちなみに今年のYAPCはTim BunceさんとAdam Kennedyさんが来るので非常にアツいです!初来日!俺も初対面!




開発仕事はメインでSTFをやっているが、これも今すでに実装済みの新機能を実地検証しながら調整する段階なのでこれはこれで楽しい物の、まぁいわゆる「攻め」の開発ではない。

自分から何か攻めて作るということに関しては、正直アイデアはあってもそこまでたどり着く気力がなかなかない。そこが自分でも気になっているのだがこれだけ続いている停滞を見るに、少なくともちょっとやそっとの充電では戻ってきそうもない感じがしてきた。

実は今一番興味あるのは人間の営みそのものや生活にまつわる食であったり毎日の一見つまらない事柄達なのだが、まぁこれはこれで充電、というのには違う気がしている。



というわけで、まぁじっくり充電ですね。

まず相変わらずアホみたいに本を読んでいた。もうまさに乱読。カバーが気に入れば手に取り、ちょっと聞いたプロットがおもしろそうなら読む。だがそれも3,40冊読んだ後でJ.P.ホーガンを読みあさったところでさすがに一通り尽きてしまった。本を読み続けるのはいいのだが、いかんせんネタがない。まぁこれはそのうちどこかで出会うだろう。

まぁそんななか、じゃあなにやるかって考えるも、妊娠中の嫁が持病持ちでいわゆるハイリスク出産なので家を空けるような形のなにかは始められないし、せいぜい週に数時間をちょこちょこ使う感じだろう・・・と考え、先々週からオランダ語を習いに行くことにした。

ゲルマン系の言語はいつか習おうと思っていたのだが、今回は諸々の流れでオランダ語。自分にとって通算4カ国語めにして、初めて「レッスン」という形で習う言語。今までは基本的に「その言葉を使う環境に放り投げられる」という形で言語を習得してきたので、不思議な感じ。先生がいて、"Is this a pen?" "This is a pen"的なやりとりがされるという空間は話に聞いたことがあっても実際見たことはなかったので「ほうほう、これが噂の・・・」と思いながら毎週2時間ほどおしゃべりな先生との時間を楽しんでいる。

親父が言語オタクで苦労してきたはずなのになんで新しい言語を覚えているんだろうか、という一抹の不安はあるが、オランダ語そのものはなんか1年くらい喋ってたらできそうなきがしてきたのでこれはこれで楽しみ。

あとは子供が生まれてこんなことをしている場合ではなくなるんだろうな。あー、怖ぇ。


写真と飯

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

専門的な事はわからないけど、気軽に比較的良い写真を撮りたいなーっていう俺みたいな素人にはNEX-5はわりといいなぁと思う。話とは全然関係ないけど、左の写真は先月行った福岡の太宰府天満宮ね。

ともあれ、そうして写真をパシャパシャ撮ってたら結構写真が溜まってきて、どうしようかなーとすこし考え始めていたところで嫁が妊娠したということがわかって、今度は本気で写真をなくしたらまずい!という状態になった。

・・・ので多分人生で初めてくらいの勢いで個人的にWebサービスにお金を払って、Flickrに登録した。や、マジでAmazonみたいなところで商品を買うの以外でサービスにお金を払うところまで使う必要がなかったんだよね。というわけで写真をガバガバアップロードしはじめたのです。そうかぁ、みんなこういう感じに写真をアップしてたのねーと理解した感じ。


flickr_food.pngただ我ながら業が深いなぁと思ったのが、いざ写真をアップしてみたら俺のこの1年くらいの食事が・・・わーお。まぁ肉やらスイーツやら揚げ物やら・・・

そりゃ太るよね。

ということでまだダイエットは続行中でありますが、今週末はまぁお店の予約をしなくちゃいけないとか、参加者の予定がここじゃないと合わないとか、そもそも俺がもういい加減塊肉が食いたくて我慢ができないとか、そういうこともありましてとあるイタリアンの店に行って肉祭りと称して肉をメインで食べてきました。子羊のローストとか自家製のソーセージとか・・・ああああああ、うめぇ。うめぇ。うめぇ。これでしばらくまた野菜メインの生活に戻れるよ・・・

2012 家族でイタリアン 2012 家族でイタリアン

まぁ、ダイエット中と言っても週末は割と普通に食ってるからそんなにガッツリ節制してるわけでもないんだけどね!

ダイエット警報発動中

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

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

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

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

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

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

q4m-balancer

balancer.png
至極簡単なハックなんだけど、q4m-balancerというスクリプト書いてみた。シナリオとしては、(1) q4mが複数あって、(2)それぞれに繋がってるワーカーの数・処理能力にバランスの不整合があって (3) キューの中身について処理順番等が関係ない、という状況においてq4mに入っているメッセージの数にかたよりが見られている状態をある程度改善するスクリプト。

入っているメッセージ数が最大のキューと最小のキューの差が 最大 > 最小 * 2 だった場合に最大のほうのキューの中身を40%最小のほうに移す、ってだけ。グラフを見れば分かるとおり、右側のほうにグラフの内容がイーブンになっているのが見えると思う。これを定期的に動かす事によって処理能力の高いワーカーのほうにより処理を任せられる。

まぁくだらないっちゃくだらないですが、ワーカーを遊ばせておくのもあほらしいのでちょっと書いてみた次第。

ZMQ Perl バインディング

ZeroMQ.pmをつい相続してしまってから本家libzmqの変更についていけず大分悩んだんだけど、ここのところ直してリクエストが多かったので一念発起してlibzmqのPerlバインディングを大幅リニューアルしました。まだ正式リリースは出してないので、何か文句を言うなら今のうち!英語での解説はこちら

いままでlibzmqの直接バインディング、定数、Perlっぽいシンタックスシュガーのラッパーを全部同じディストリビューションにいれていたのをばらしました。これまでZeroMQ::Raw とされていたのは ZMQ::LibZMQ2 ならびに ZMQ::LibZMQ3 となりました。ZMQはこれらのバインディングをうまいことオブジェクト風味にするPPモジュール。ZMQ::Constantsはlibzmqのバージョン毎にやたらと変わるので別モジュールで切り出しました。あとすごくざっくりですが CZMQのラッパも書きました。こちらはZMQ::CZMQというもの。

なおZeroMQ → ZMQの変更についてはlibzmqのメンテナから名前を変えてくださいという半強制的なお願いが出ていたので名前の変更はもう大分前から予定してました。


というわけでお父ちゃん疲れたよ。

STF supports multiple queues for redunduncy

STFではキューへのジョブ挿入は基本的にはエラーが起ころうとなんだろうと無視して次の処理に移るように最初から書いていたけど、挿入時にDBが接続を受け付けるけどそこでブロックしてしまった場合の考慮をしてなかったので、厳しめのタイムアウトを設定するとともに、そういうエラーが起こった際にキューがSPOFにならないようにkazeburoさんのアドバイスの元 複数のキューに書き込みをできるようにしました

現時点ではこの機能はQ4MだけでTheSchwartzはまだ実装してない。ドキュメント書かないとな・・・

小ネタ。GETした内容のMD5が欲しかったので。

    use strict;
    use Furl::HTTP;
    use Digest::MD5;

    my $digest = Digest::MD5->new;
    my $furl = Furl::HTTP->new;
    $furl->request(
        method => "GET",
        url => "http://whatever/text.txt",
        write_code => sub {
            my ($code, $msg, $hdrs, $partial) = @_;
            return unless $code ne 200;

            $digest->add( $partial );
        }
    );
    print $digest->hexdigest;

歯科検診

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

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

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

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

ああ、ちなみに今回も虫歯は一本もありませんでした。嫁は軽い虫歯2本発覚。

STF supports MOVE, adds storage meta fields

STFでMOVEをサポートした。オブジェクト名を変更できるヤツ。あとSTF_ENABLE_STORAGE_METAってのを1にすると管理画面からストレージ毎にコメントをつけられるようになる。

あと次に時間があるときに指定フラグがオンだったらオブジェクトのMD5とエンティティのMD5を記録するようにしようと思う。ただし、これはあくまでもオプションとして実装する予定。
というわけで寄稿しました。2ページだけ。僕のオススメは"Introduction to Algorithms"です。読み物としておもしろいかっていうとそうではないんだけど、ソフトウェア書く人は一回真面目に読んでみても全く損がない、渋い良書だと思います。

ちなみに昨日デブサミに行ったらなぜか真っ先にMatzにサインをするハメになった。シュールだった。

Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ