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.

2008年12月

今年一年の主な出来事、及び心に残った事象:

  • 執筆活動は想像以上にハード
  • いいチームに恵まれて、良い仕事ができた
  • 京都はやっぱり良い
  • 今住んでるところは芸能人が多すぎる。らーめんず、カウカウ、次長課長等々、やたらと駅前で買い物してると出会う。来年はさまぁ〜ずに出会いたい。
  • 取引企業が倒産した。初体験。
  • 今年はさらに輪が広がった。来年はさらに上を見る年だな
年の瀬の町を歩きながら、今日はなんか書こうと思ったのであった。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

元々まわりに居る人が意外と酒を飲まない人で埋められているのに加え、2008年ようやく弊社に加わった酒飲みの33rpmが風が吹くと痛い病気にかかってしまったために最近また酒を飲む機会が減ってきてしまいました。今年の弊社の忘年会なんて、俺一人だけで後でバーに行ったんだぜ!

というわけで新年会は酒飲みのための新年会、「no Alcohol; no Life '2009';」を開催したいと密かに思っております。1/16か1/30辺りで(詳細日は未定ー希望日受け付けます)私か弊社になんらかの関係がある人をメインに酒を飲みた(ry新しい年を祝いたいと思います。参加希望者はdaisuke @ エンデワークスまでご連絡を。(追記:伝助でイベントを作成してみた。参加表明はそちらにどうぞ)

日本酒が壁一面に置いてある店とか、興味あるかたは是非。誰もあつまんなかったら?一人だったとしてもどちらにしろいつもの店で飲んでるから万事OK。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

4年越しの思いを成就させて大型テレビを買いました。散々迷った末フルスペックハイビジョンのLC-32DS5-Bに決定。前から32インチがいいと思っていたのだがどのテレビを買うか迷っていた時に33rpmが37インチ・・・37インチと呪詛を投げつけてくるのでどうしようか本気で考え込んでしまったのだが、結局32インチに。 午後7時半くらいに配送されて昨日の夜はテレビに釘付けになっておりました。画像きれいやなー

本来のクリスマス的な行事は23日にすでにすませておいた。例年通り鶏肉を丸ごと焼き、ケーキ。プレゼントとかは面倒なので特にせず。鶏肉の残りは次の日にスープにして処理しました!
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

JPAは社団法人で公益法人はとりあえず面倒くさいのと人手がないので目指さないものの、公益性の高い法人として活動していく予定で、今そういう方向の定款をがんがん書いております。

ところでこの間某社を訪れた時に「この時期にこういう事をするなんてチャレンジャーだね」的な事を言われました。この経済情勢の中、というのはよくわかりますが、私は今こそがチャンスだと思っています。不景気と言われるときこそ器用なPerl技術者は重宝されるはず。今年弊社endeworksで雇ったFさんにしてもそうだけれども、Perlプログラマはとにかく現実的・合理的、そして広い知識を持っている。buzzword満載の言語ではなく、質実剛健なPerlを助成・発展させるための団体を作るならば時期は今こそ、でしょう。

また、協賛してくれる各社は今が我慢のしどきだと思っていますが、我慢とは同時に次の飛躍の時のための準備をしていく期間だと認識しています。JPAはその次のチャンスのために協力できるということ、それをやり遂げる意思があることをここに改めて宣言します。

私事ですが昨日弊社endeworksの忘年会がありました。その際私は2009年は飛躍の年だと宣言しました。不況だからこそ、今は我々の底力を見せつけるチャンスです。弊社もJPAもそして世のPerl技術者達も、皆さんがつらいときだからこそ、きっと期待に応えられると考えています。

来年はJPA、そしてJPAに注力する私を放し飼いにしてくれる弊社スタッフを何卒よろしくお願いいたします。

P.S. 年末の挨拶みたいになっちゃったけど、別に普通に更新していく予定ですw

P.P.S. ちなみに昨日ようやく原稿書きが概ね終了しました。JPAの準備が済んで正式発表の頃には刊行されそうです。やったね!
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

Tim Bunceがちょっと時間がないってことでMemcached::libmemcachedのメンテナになった。libmemcached本体にはあんまり関わってないんだけど、Perlラッパーはおいらが担当ですよ。なにか問題あったら連絡してください!
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

12/13と12/14、泊まりがけでWadit・・・っていうかオモロキの面々と弊社スタッフで千葉のほうに合宿に行ってきました。いい大人が総勢六人、ただのがきんちょの団体になってましたよ。

行った場所は和風の旅館なんだけど、値段の割に部屋は広いわ(布団は敷いてくれるが、部屋の感じからすると基本雑魚寝仕様)飯はうまいわ風呂もそれなりに広くて良い感じだわ・・・おまけに無線LANも使える!これは大きい。紹介してもらったyusukebe++。是非YAPC::Tokyo 0.5みたいなのをここでやりたいとか思った。食堂にプロジェクタ用のスクリーンまであるんだぜ!

レンタカーを借りて行ったのですが、運転手の僕がナビの指示を読み損ねて首都高一周してしまうとか色々あり、行きははんぱなく時間をロスしてしまいました。すんませんすんません。

現地で僕は諸事情により開発ではなく原稿を書いておりましたが、他の人たちは結構色々できてたもよう。よいねぇ。なんか書きたい内容は色々あるんだけど、正直下ネタばかりだ。自重します。

また是非いきたい!なお、タイトルは行った先の旅館で「歓迎○○様」って書かれているところに書かれていた内容。どうやら横文字は少々苦手のようです。

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

昨日いろいろと言われていた件でネット上の情報を探していたら一般社団法人法ががっつりそのまま載ってるところを発見した。そこで基金制度というのを見たら・・・アーッ。そうだったのか・・・資本金の代わりに基金を作るというオプションもあるんだね。しまった不勉強だった。

原稿を超スピードで1章書き終えたので、昨日公証人のおじさまに言われた事を反芻しつつ、定款とにらめっこをしている。

昨日のエントリにさらに加えるメモ:

  • 企業には「基金」を出してもらえると大変よい。
  • 基金は「借金」。しかし株式会社の「資本金」のように利益を出資者に返還する必要はなく、あくまで運営の基礎のための出資で基本的に元の額を返す。
  • 基金の返還ができるのは解散時、およびある事業年度の純資産額が基金の元の評価額を超えた場合。
  • 社団法人が破産した場合は業務執行者(この場合、きっと僕だね!)が負債を負う。
  • 別の話。社団法人の社員は「入会金」と「会費」を払うという項は消さずに入れておくとよい。どうせ社員になるためには会員になるので、その分を充てる形にしておけば問題なし。
というわけで、これを踏まえて詳細についての話をまたしなくては。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

公証人役場にJPAの定款を持って行ってきた。そしてある意味我々の期待通り、ぼろくそ言われて帰ってきた。まぁいいでしょう。しかし行ってみて分かった点が数点あるので、メモと周知のために書いておく:

  • 「社員」は議決権を持つ。JPAに社員はそんなにいらない。当初は5人とかでもいいと思う
  • 一般的に社団法人内で決定しなければいけない物事は社員総会で決める
  • 理事会はその社員達の「上」にいる。社員総会での決定事項を承認する。つまり拒否権もある。
  • 理事会を設置する場合は必ず監事が必要となる。
  • 企業にしろ、個人にしろ、大多数の人は「会員」になる。会員は議決権を持たない。昨日まで賛同企業は議決権を持つような事を考えていたけど、持たないで会員になってもらったほうが色々好ましいということを理解した。
  • JPA は社員だけにするか、少人数な理事会を設けるのがいいと思う。
とりあえずメモまでに。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

HTTP::Responseに格納された日本語ページをちゃんとデコードしてunicodeで持ちたかったので最初
my $body = $response->decoded_content();

ってやってたんだけど、これだとcp932 (!= Shift-JIS)でこけることが多くて、とりあえずヘッダーとMETAヘッダで見るかと思って以下のようにして、decoded_content() にcharsetが必要であれば渡されるようにした。
my %opts; if ( my $ct = $res->content_type ) { if ($ct =~ /charset=Shift_JIS/) { $opts{charset} = 'cp932'; } } if ( my $ref = $res->content_ref ) { if ($$ref =~ /charset=Shift_JIS/) { $opts{charset} = 'cp932'; } } my $body = $res->decoded_content(%opts);

しかしこれでも化ける。一番化けるのはcontent-typeにもMETA部分にもchrasetが指定されてない場合。ここでようやくHTTP::Responseのコードを読んだら、charset_strictってオプションつけるとFB_CROAK() をEncode::decode() に渡してくれる事に気づいた。これならせめてエラーは分かるだろ、と思って以下のようにした。
my %opts = ( charset_strict => 1, ); if ( my $ct = $res->content_type ) { if ($ct =~ /charset=Shift_JIS/) { $opts{charset} = 'cp932'; } } if ( my $ref = $res->content_ref ) { if ($$ref =~ /charset=Shift_JIS/) { $opts{charset} = 'cp932'; } } my $body = $res->decoded_content(%opts);

それでもまだ駄目。っていうかFB_CROAK()してるのにcroakしないでやんの。と、思ってもう一回ソースコードを読んだら、
my $charset = $opt{charset} || $ct_param{charset} || $opt{default_charset} || "ISO-8859-1";

とかしてcharsetに何も指定しないとiso-8859-1とかになるようになってる!これじゃあなんでも適当にデコードしちゃうじゃないか。というわけで、このような状態の時に最も使われている確率の高いcp932をデフォルトの文字コードとして使用するようにしてみた。これでとりあえず動いた:
my %opts = ( charset_strict => 1, default_charset => 'cp932', ); if ( my $ct = $res->content_type ) { if ($ct =~ /charset=Shift_JIS/) { $opts{charset} = 'cp932'; } } if ( my $ref = $res->content_ref ) { if ($$ref =~ /charset=Shift_JIS/) { $opts{charset} = 'cp932'; } } my $body = $res->decoded_content(%opts);
追記:なんか書き忘れてるなぁ、と思っていたらやっぱり忘れてた。ここまでだと、まだcp932じゃないページで、なおかつヘッダー等から情報が得られない場合はまだ変なことになる。なので、さっきのcharset_strictとあわせて、さらにハック
my %opts = ( charset_strict => 1, default_charset => 'cp932', ); if ( my $ct = $res->content_type ) { if ($ct =~ /charset=Shift_JIS/) { $opts{charset} = 'cp932'; } } if ( my $ref = $res->content_ref ) { if ($$ref =~ /charset=Shift_JIS/) { $opts{charset} = 'cp932'; } } my $body; eval { $body = $res->decoded_content(%opts); }; if ($@) { foreach my $charset qw(cp932 euc-jp iso-2022-jp utf8) { eval { $body = $res->decoded_content(%opts, charset => $charset); }; last unless $@; } }
まぁハックだけどとりあえず動く。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

原稿の締め切りに脅えながら、ウィイレを進めております。実質買ってから4回しか起動させてないんだけど、毎回5時間とかぶっ続けでやってるからもう20時間くらいプレイしている(なんかアマゾンのレビューが思ったより低いけど、正直意味がわからない。チームの名前なんてどうでもいいんです)。

俺をそこに駆り立てているのは今回から導入されたレジェンドモード。

レジェンドモードはこれまでのチーム全体の指揮を執るのではなくて一人のサッカー選手を17歳から育て、クラブを渡り歩いたり母国の代表選手としてワールドカップ的な物を戦ったりする。それだけでも熱いのだが、最初実力がまだまだないうちはそもそも試合に出られるかどうかさえもわからず、数試合「最強のベンチウォーマー」状態で待機、なんてこともあり得る。そしていざ試合に出してもらえたとしても体力が追っつかなかったり、単純にヘマばっかりやってると降ろされてしまう。・・・これがやきもきしてすごく良い!

もちろんちゃんと育ててれば「そんなのありえねーよ」って早さで出世していくのだけれども、そこはゲームだからご愛敬。ともかく、この試合の途中の良いところでし合いから外されるかもしれない恐怖に耐えつつ、自分の選手を必要な時には全力疾走させ、それ以外の時はスタミナを気にしつつポジショニングしていくという駆け引きが「らしく」ていい。

あとこのモードだと選手一人しかコントロールできないので、AIが相当頭がよくないとストレスばかりがたまるゲームになってしまうのだがこれがなかなかどうしてAIが頭いいんだな。フォワードあたりの選手は全く協調性なくて勝手にシュートして自滅したりすることもあるけど、かなりの高確率でこっちの予測したあたりにうまく動いてくれる。これはAIの開発スタッフ++としか言えない。昔のゲームでも選手一人を動かすのってあったような気がするんだけど、ここまでストレス無しってのはすごいよ。

まぁ、というようなモードで育てているのがブラジル人選手の「マキ・サントス」。良いプレイをしたときに実況のジョン・カビラが「マーキッ!」って言うと正直燃える。ジョン・カビラの声で燃える事があるなんて想像できなかったなwwww。

ポジションは一応ベジクタシュのOMFから始めて、今は3季目でレアル・マドリーに移った段階でCMFに回されている。でもぶっちゃけMFなんて言われつつ、ポジショニングはSTのそれに近い超攻撃的なMFをやっていて、ファン・ニステルローイとほぼツートップ状態。ブラジル代表ですでにインターナショナルカップ(このゲームにおけるワールドカップ)で優勝も経験しているので3季目にして年俸2048ポイントだよ!

はよ原稿終わらせて3日くらい没頭したいなぁ・・・俺としては育て上げた選手がブラジル代表になれるっつーのがもうたまらん。鼻血でそう。みんなもやるといいお!
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

ちょっとだけ時間があいたので備忘録的ななにかを:

  • 原稿で忙しい。これはつらい稼業だ。
  • Shibuya.pm/Yokohama.pmで連荘プレゼンしてきた。帰りはhirataraさんと色々話した。
  • Mac が調子悪い。
  • ウィイレが面白すぎるけど、週末に15時間やった以外はできてない。
  • H堂さんの忘年会で今年も忘年会シーズンが始まりました。
  • 一般社団法人の設立準備が着々と整いつつある。
  • 弾さんのブログからリンクが貼られた瞬間にTracにスパムがきたよ!
  • スパイダーがぶっこわれたので今修理中。テレビのない生活。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

このページのトップヘ