28 February, 2010

[Joke] How do you trap a programmer in the shower?

redditのHow do you trap a programmer in the shower? (list.cs.brown.edu)経由。

[plt-scheme] OT: How do you trap a programmer in the shower?を翻訳してみました。

オチが判らなかった箇所が幾つかあって、それはつまり誤訳してる可能性が高いので、間違っていたら指摘して頂けると嬉しいです。

----

ある生徒が教室で1つ目のジョークを言い、この類にはもっと色々考えられる様な気がした。これは最初の試みなので批判や追加を歓迎する。代名詞の性別についてはご容赦を。男性と女性を入れ替えたりすべきかどうか自信が無いし、彼/彼女と書くのは変だし、複数形で書くと複数人でシャワーを浴びている様なニュアンスがでてしまって本意じゃないし。:-)

Todd

Schemeプログラマをシャワー室に閉じ込めるには?
シャンプーを一瓶渡せ。(Hand him a bottle of shampoo.)

Visual Basicプログラマをシャワー室に閉じ込めるには?
カーテンをオープンするウィジェットを隠せ。

BASICプログラマをシャワー室に閉じ込めるには?
彼のCommodore-64をタイルに固定する為にシリコン接着剤を使え。

アセンブラプログラマをシャワー室に閉じ込めるには?
えーと、まず彼はシャワーをビルドしないと。

Javaプログラマをシャワー室に閉じ込めるには?
どこかにexitShower()メソッドがあると彼を説得し、ドキュメント全体を精査し終わるまで笑ってやれ。

Pythonプログラマをシャワー室に閉じ込めるには?
Guidoがそこにいることを望んでいると彼に伝えろ。

Cプログラマをシャワー室に閉じ込めるには?
そんなことをするな。彼は風呂桶をオーバーフローさせて君の家のコントロールを奪うだろう。

----

以下はredditで追加された物を幾つかピックアップして紹介。

C#プログラマをシャワー室に閉じ込めるには?
> インテリセンスをオフにしろ。

PHPプログラマをシャワー室に閉じ込めるには?
1. その頃、PHPプログラマは芝生に裸で立ち、庭用ホースと驚く程沢山のアタッチメントを手にして、どうして他の全ての人がシャワーの方が良いと言っているのか理解出来ない。
2. PHPプログラマをシャワーの外に出そうとしても出来ない。全ての現実の仕事はシャワーの中でだけ起き、外でのことは単にアカデミックでエリートぶった連中のすることだと主張するだろう。
3. 必要ない。ドキュメントをチェックしないと呼ぶべきメソッドがopen_door(), door_open(), openDoor(), doorOpen() のどれなのか思い出せないから。

LISPプログラマをシャワー室に閉じ込めるには?
1. 冗談を。LISPプログラマはシャワーを浴びない。(don't _take_ showers : 副作用が無いという話?)
2. ")"キーを奪え。

Rubyプログラマをシャワー室に閉じ込めるには?
彼が中に入ったらCurtain#openメソッドにモンキーパッチを当てろ。追加で一つ引数を取る様にして、その引数が何なのかドキュメントに書いておかない。
> 彼は単に引数が不要になるモンキーパッチを当てて戻すだけだが、そのパッチは一回以上使うとsegfaultする様な代物だ。

Prologプログラマをシャワー室に閉じ込めるには?
1. Yes (ってオチが良く解らん)
2. inShower(Programmer) :- inShower(Programmer).

Haskellプログラマをシャワー室に閉じ込めるには?
1. < 圏論に関する馬鹿馬鹿しい程に長い小論を挿入せよ >
2. 何もする必要が無い。シャワーの水で洗って純粋になったならば、シャワーから出るには出力が必要だと気付くから。
3. 必要ない。彼は怠惰(lazy)なので外に出ない。

JavaScriptプログラマをシャワー室に閉じ込めるには?
1. 気にする必要は無い。同時に2つのシャワーは動作しないので、それを修正しようと時間を費やすから。
2. IE6のロゴをシャワーカーテンに張ってデバッグする様に頼め。

Erlangプログラマをシャワー室に閉じ込めるには?
出来ない。彼は自分自身をクローンして、別々のシャワーで全てのクローンに身体の別々の部位を洗わせる。もし閉じ込められたら単にそれを殺すだけだ。

C++プログラマをシャワー室に閉じ込めるには?
C++プログラマはシャワーをvoidポインタにキャストして、ドアの存在を消す。
> 「これは正しいやり方ではないがしかし...」という注釈を付けるのを忘れてるよ。

Perlプログラマをシャワー室に閉じ込めるには?
1. 彼はどうやったら自分のシャワーが動くのか思い出せない。
2. 彼の脱出用の針金の余りで、閉じたシャワーカーテンとシャワーの向きを固定しているダクトテープとをくっ付けておく。

Objective-Cプログラマをシャワー室に閉じ込めるには?
[[NSShower standardShower] addPerson:[NSObjectiveCProgrammer programmerWithRSI]];
SEL removeSelector = @selector(removePerson:);
Method removeMethod = class_getInstanceMethod([NSShower class], removeSelector);
removeMethod->method_imp = voidMethod;

14 February, 2010

[Coq][FM] Formal Methods Forum #1

 2010/02/08に第1回FormalMethods勉強会というのがありました。
 形式手法って、企業内の勉強会とか、あるいは有料の研修コースはあるのだけど (i.e. ビジネスになる、ということなんだろう)、無料のIT勉強会はほとんどありませんでした。
 「形式手法の勉強会欲しいよね〜」という話から勉強会を始めることになり、まず第1回は各自の持ちネタを持ち寄る感じで開催されました。
 私はCoqとWhy (INRIAで作っているプログラムの検証用ツール) の話をしました。発表資料をSlideshareに上げたので興味のある方はどうぞ。

 Coqに限らず、形式仕様記述 (B, Zとか)、あるいは各種モデル検査 (SPIN, Alloyとか)、Lightweight Formal Method (VDMとか) なんでもありの勉強会なので興味のある方はどうぞ。
 開催場所は新宿の豆蔵オフィスを利用させて頂く事が多いのではないかと思うが、Coqという意味では一度名古屋遠征したいなぁ。

Formal Methods Forum : 勉強会のGoogle group
fm-forum @ ウィキ : 勉強会のWiki

11 February, 2010

[Scala] Articles about Scala 2.8 on ITpro

 Scala 2.8に関する紹介記事をITproに書きました。ほぼ年末年始休暇を費やして書き、2010年の1,2月に分けて掲載。

第15回 Scala 2.8の新機能 (1)
第16回 Scala 2.8の新機能 (2) --- コレクションライブラリの再実装

 記事を書く機会を与えてくださった羽生田さんに感謝を。