2008/06/08

救いようがない男の独白

http://runxz.blog4.fc2.com/blog-entry-487.html

なかなか興味深い割に、全然注目を浴びていないようなので、紹介してみる。
反吐が出るような駄目な男だ。

2008/04/29

100人の囚人パズル

去年流れたパズル。これは相当難しかった。
出典はなんかのパズルの本?
100人の囚人がいて、100個の木箱の中にそれぞれの名前がかかれている紙が入っています。
100個の木箱はある小部屋に置かれており、囚人は一人ずつその小部屋に連れて行かれ、100個の木箱のうち50個を開く事が許されます。開いた50個の中に自分の名前があればセーフ。なければアウトです。囚人は部屋の状態を元通りに戻し、部屋を出ます。部屋を出た後は他の囚人と連絡を取る事はできませんが、入る前にみんなで作戦を立てる事はできます。
一人でも開いた50箱の中に自分の名前がなかった者がいれば、全員死刑です。みんな生き残りたいので、3割以上の確率で生き残れる戦略を考えて下さい。
常識的に考えて 0.5の50乗っぽいんだけど、実際3割で成功する戦略が存在する。

注意:
監視してる人を買収とか、こっそり紙を残して次に入って来る人に連絡とかそういうずるは無し。

プログラマがコードを書く速度は100倍差が出るのか?

GWだから色々書いてみるテスト。
生産性って実際100倍出るとかよく聞きますが、正直胡散臭いと思うんですよ。流石に100倍は「はじめてのJava」を読んだだけの大学生とかが比較対象にならないとそんな差はでねぇだろ、と。
で、まず生産性ってなんなんだよ、って適当に考えてみた訳なんですが、
  • コードを書く速度
  • コードの実行速度
  • コードの奇麗さ
CのHello worldのプログラム書くのにもレファレンス無しに書ける人もいればCを触った事もなければgccの使い方を知らない人もいるわけで、1分 vs 100分は十分出る差だとは思うんですよ。
実行速度とコードの奇麗さとかにも差が出るとは思うんですが、実行速度に関しては本当に重要なコードってそんな無茶苦茶多いわけでもないし(いや、あるんだけど)、コードの奇麗さはいまいち定量的に測れないので困ります。
コードを書く速度が重要かつ客観的に測りやすいわけなんだが、ぶっちゃけコードを書く速度は大抵書くコードの対象、言語、フレームワーク、APIを知ってるか知らないかで速度が違うくらいな気もする。レファレンス読みながらやってると遅いよね、というレベルな気がする。
知っていればオーバーヘッド無しで、知らなければオーバーヘッドが発生するわけなので、その知らなかった事を知る作業が、作業と比べて時間がかかればかかるほどコードを書く速度の倍率は高くなるわけです。

例:ServletでHello world
  • Java 憶える(1日)
  • Servletを憶える(1日)
  • 環境を整える(1日)
  • Hello worldのServletを書く(3分)
実際それぞれのステップがどのくらいかかるかはわかんないけど、サーブレットを書くのが3分なのに対して、そのために知らなくてはいけないことを知るのには3日かかる。一日8時間やったとして480倍くらいの生産性の違いがあります。すごい!
ただ、世の中はそんなに甘く無い訳で、3分で終わる仕事は少ないのです。

例:ServletでSNSのサイトを作る
  • Java 憶える(1日)
  • Servletを憶える(1日)
  • 環境を整える(1日)
  • SNSのサイトを作る(60日)
これもまた本当にそれぞれのステップにどのくらいかかんのかわかんないけど、こっちは60日 vs 63日とあまり差がない。どう見ても100倍生産性が高まってない。

そんなわけで、書くスピードに100倍差が出るプログラムというのは大学生の情報の授業の宿題程度のもので、現実的にはそんなに差が出ないと思う。

2008/04/15

日本に帰って来ている

まぁ、三月上旬には戻ってたんですが。
  • 世界樹2
    • 26階。鍵を取り忘れていたことに気づいて今6-9辺りをさまよってる
  • スマブラX
    • 難しい。
  • マリオカートwii
    • 難しい。
    • 反応悪過ぎる気がする
  • マリオカートDS
    • 対戦してきた
  • ポーカー
    • Texas Hold'emのルールを教わって来た。
  • Persona 4
    • 早く発売しないかね。先に真女神転生4が欲しいけど
  • Liar Game
    • ようやく一段落か
  • DMC
    • わけわかんない
  • Persona Trinity Soul
    • 全然核心に迫ってこない。懐かしいキャラが出て来た
  • NCIS Season 3
    • ようやくテロリスト死亡。
  • Las Vegas
    • おもすれー
  • 君が望む死に方
    • 前作と似たような構成だけど、視点が二つ。結構面白かった。
  • 零崎曲識の人間人間
    • 積読中。
  • 合コンの社会学
    • 王様ゲームとかやりそうな品の無い合コンの社会学についても読みたい
  • 数字力養成講座
    • なんかコンサルの面接の問題でこういうのがある、って話聞いたことあるなぁ。
    • 普通に知ってると便利な数字一覧表とその因果関係がまとまってる
  • 3年で辞めた若者はどこにいったのか?
    • 大雑把にまとめると、年功序列より職務給になるべきだよね、ワークライフバランスも重要だよね、という感じ?
    • 「左翼 != 労働者の味方」というのは面白かった
  • 「モテ」の構造
    • 男の話が多い。
    • 男がモテに対する考えの歴史的変移は興味深い。
  • 日本の10大宗教
    • PLの花火大会は行ってみたい。
    • 知らない宗教大杉。割と味気ない感じ。本当にそれぞれの宗教の生い立ちとかの説明がただ羅列されているだけ。宗教に興味なかったら多分そんな面白い本でもないと思う。
  • ケータイチルドレン
    • マーケットリサーチ的な本かと思ってたけど、あまりそういう感じではない。どちらかというと「うちの子は一体携帯で何をしてるのかしら?」と思う親向けっぽい?
  • ダイエット
    • 最近開始。夜は弁当を頼まずに代わりにローカロリーな春雨とか食ってる。
    • 1.5kgくらい痩せた
  • 2chnavi
    • 色々設定周りで試行錯誤。とりあえず一番のネックがプロセス数だということがわかった
      • VPSなので、プロセス数のハードリミットが設定されている(たしか80くらい)
      • 特にApacheが糞みたいにプロセスが必要なのが大きくネック。
    • Jettyのcontinuationとかでなんとかなる?
      • phpからJavaに移植しないといけないけど
  • tampopo hack
    • binary hackってすごく売れてるじゃないですか。羨ましいので、俺はtampopo hackっていう本を書こうと思うんですよ。マークアップエンジニア的なハックを100個集めた本を。ちなみに出版社はオライリーで、表紙はタンポポか刺身。
    • 20個くらい集まったところ。binary hackの中の人もいくつか教えてくれた。
  • Leopard
    • 会社のマシンがLeopard
    • 買う価値があるのはページをクリップしてダッシュボードに追加する機能くらい
    • Virtual desktopはフリーウェアのやつのほうが出来がいい。