2007/12/16
Spectrum, Stalin
普段あんまりちゃんと読んでないIEEE Spectrumなのだが、今月号はおもしろかった。 Taser銃の仕組みとか、MMORPGのbotとRMTで稼いでいた人の話とか。
-*-*-
comp.lang.schemeの 速いScheme処理系は?というスレッドにて
- Stalinは速いぜ。チューニングされたCより速い。
- ホント? 単に比較してるCコードの方がタコなんじゃないの?
という流れにStalinの作者Jeffrey Mark Siskind本人が 有無を言わさぬベンチマークをひっさげて降臨。おもしろいことになってる。
言語の速度の比較で忘れられがちなのが、最適化はトレードオフである ってところだ。StalinはCを経由してネイティブコードを出してるんだから、 Stalinが出すCコードと同じものを手で書いてやれば、Cだって同じ速度が 出るわけで。でもそれだとあまりに不便なので、利便性と天秤にかけた 結果として現在のCの処理系に落ち着いてる。Stalinがすごいのは Schemeだからではなくて、バランスの秤を実行時の速度という方向に 振り切ったらどうなるかというのを 実装して動かしてる ところだ。 理屈の上ではどんな言語でも出来る。それを実際にやってるかどうかという 問題。
Tag: Scheme
2007/12/13
"Acting for the camera" 終了
8週間のクラス終了。内容のまとめは少し落ち着いてから。 最後の最後まで濃いクラスだった。周囲のレベルも高くてついてくのに必死だったけど、 今まで取ったクラスの中では一番身になったように思う。 これを忘れないうちに応用できるチャンスがあるといいのだけれど。
別の参加者に先生が言ってたこと:
「役者としてのキャリアを続けるつもりなら、絶対に中途半端(half ass)な準備で シーンに臨むな。一度でも自分にそれを許すと、二度、三度とついつい基準を下げてしまう。 自分のつくるものが高い基準を満たすことに、常に厳格であれ。」
これは役者に限らないよね。プログラマでもフリーランスなら、 今自分がつくっているものの出来が良ければ次につながるし悪ければ次が無くなるわけで。
プロとアマの違いは何だろうかと時々考えるのだけれど、ひとつ確実に言えるのは、 プロはどんな場合でも仕事の質がある下限以上であることが期待されているということだ。 フィールドによっては、アマチュアがプロよりも良い仕事をする場合がある。 ただ、それは上のピークを見た場合。どんな人でも長く続けてれば波はあるもので、 プロかどうかを分けるのは山の頂きではなく谷底の標高が一定の高さをクリアしている ことではないかと思う。
Tag: 芝居
2007/12/09
「好き」のいろいろ
どんなにプログラミングが好きな人でも、毎日休まずプログラムを書き続けないと
生活できないとなると、それはだんだん苦痛になってくる。
好きなことを仕事にして生きていく、というのは、本質的にそういうことなのだ。
好きなことを仕事にしたとたん、「好き」はあなたを縛り付け、苦痛を与え続ける拷問台になる。
「好きなことを仕事にする」というのは耳あたりが良い言葉だが、 「何が好きなのか」に注意深くないと、このように困ったことになる。
私は確かにある種のプログラミングが大好きで、その種のプログラミングを やらせてもらえるならそれが毎日続いても全く苦痛ではない。 もちろん仕事とする場合、9割方はその本当にやりたいプログラミングを 成立させるために必要な雑事だったりするわけだが、その雑事も やりたい1割のことにつながっていさえすれば(つまり、やりたいことを やるための準備になっていれば)どうってことはない。
けれど、自分がやりたい種類のことにつながりがないプログラミングは 非常に苦痛だ。だから、「好きなことはプログラミング」と言い切る自信は さらさら無い。
自分の経験から考えると、「好きなこと」というのは仕事の名前で括れるような 大雑把なものではなく、もっとずっとずっとspecificなものだ。 Joel Spolskyが述べたように、 ソフトウェア開発だけ見てもその世界は細分化されている。 ひとつのジャンルでうまくやっていける人が他のジャンルでもうまくやれるとは 限らない。それだけでなく、同一のジャンルの中でさえ、個々のソフトウェア開発者が 担っている役割は大きく異なり、ある役割にフィットしている人が別の 役割にもフィットするとは限らない。例えばひとくちに「ゲームプログラマ」と言っても、 レンダリングエンジンをチューニングするのと、 プランナーやシナリオライターと連携を取りながらスクリプトエンジンを開発するのと、 CGデザイナーと連携を取りながらデータのコンバータや実機上のモデルエディタを開発するのと、 マルチプラットフォーム対応のためのフレームワークを開発するのでは、 やっている仕事の「感じ」はかなり違ってくる。 さらに、小さなスタジオでこれらの役割をいくつも兼ねながら小規模のゲームを 作って行くのと、大きなスタジオで単一の役割だけを極めてゆくというのも、 また全然違うことだ。
結局、「プログラミング」とか「ソフトウェア開発」とかというのは、 好きなことをやるための手段にすぎない。「プログラミングが好き」と言って 仕事をしていたとしても、本当に好きなことというのは多分ひとそれぞれ、 大きく違うものだと思う。単に手段としてたまたまプログラミングを選んだというだけで。
しかも、好きなことをやるための手段はそれだけではないかもしれない。 例えばピアノを弾いたり演技をしたりすることも、私の中では同じ「好きなこと」 の根源につながっているようだ。その根源が何かということは言葉でうまく説明 できないのだけれど。(というより、そこに何か一定の「根源」があると考えることが 間違いなのかもしれない。もっと高次の、演算子みたいなものがあって、 移り変わる状況のそれぞれに適用するとそれぞれの具体的な何かが出てきて それが次の状況に影響を与える、みたいな。)
手段に惑わされずに好きなことを追う方法は、常に好きなことに対する嗅覚を 磨いておき、うまそうな匂いをかぎつけたらすぐにそっちへいける準備を 怠らないことだ。そういう目で見るとfromdusktildawn氏は充分に好きなことを 追い続けているように見える。
Tag: Career
2007/11/29
Fitts's law
最近になってFC6からFedora 8に変えた際にようやくFirefox 2.0系列を 使い出したのだけれど、タブを消すボタンがデフォルトで各タブにつくように なっててこいつが鬼門だ。タブをクリックするつもりで消すボタンをクリック してしまって肝心のタブを消してしまうことしきり。 タブ上右クリックのメニューからも消せるんだから、ここに消すボタンは 要らないとおもうけどなあ。user.jsいじれば消せるんだろうか。
あ、browser.tabs.closeButtonsだな。消えた。
しかし間違いやすいのがデフォルトになってるのは不自然なので、 私のマウスの動作が平均よりもケアレスなのかな。実はpersonal toolbarも 出しておくとタブをクリックしようとして行きすぎてクリックしちゃうことがあって 不便なのだ。
Tag: 生活
2007/11/27
あのGRAPE開発者・伊藤智義が目指す三次元TV実現: 「クレージー☆エンジニア」の連載は読んで元気が出る記事が多いがこれも良かった。 おっ、と思ったのはこの人、高校の数年上の先輩にあたるんだ。 少し前に「好きなことをとことん追求する自由」と書いたが(2007/9/9)、 あの高校は全体的にそれを許す雰囲気があったと思う。 (東大云々のくだりは私の世代ではちょっと変わってて、確か現浪合わせて10人くらい いたはず)。
Tag: Hack

Comment (1)