Shiro:log:2008前半

Shiro:log:2008前半

最新: Shiro
前: Shiro:log:2007後半
後: Shiro:log:2008後半


(2008/06/24 12:17:59 PDT Scheme Workshop)

ICFPに合わせて開催されるScheme Workshopですが、発表申し込み締切りが 延長されました。6/29までです。 つまりまだわりと余裕があるってことなので、ネタのある人はぜひ バンクーバーで喋りましょう。

http://www.ccs.neu.edu/home/will/scheme2008/

(2008/06/23 16:21:23 PDT ほんとのプログラマ?)

ほんとのプログラマーは扱いにくいけど良いのかい? - オレドコblog

たぶん、ほんとのプログラマが書いたコードはすばらしすぎて凡人には読めないと思いますね。

ここだけじゃなくて、ちょくちょくこの手の話を目にするんだけど、 なんか変じゃないかなあ。もっと変なのはこの手の話を根拠に、 「だから学生の頃からばりばりプログラムを書いてたようなのより 未経験者を一から教育したほうがいい」みたいな流れになること なんだけど (引用元がそうだというのではなく、そういう流れを ちょくちょく目にするような気がするので)。

職業脚本家は、誰にも理解できないようなシナリオを書いたら 失格だけど、だからといって「なまじ書けるやつより未経験者を 教育した方がいい」なんて話にならないよね。初心者が書いた シナリオとプロが書いたそれとじゃ天と地ほど違う。それでいて プロの作品が凡人に理解できないなんてことはないだろう。 (芸術として、オーディエンスを絞って書いてるものは除く。 あくまで依頼されて書くことができる「職業脚本家」の話)。

なんでプログラムだと (スキルが低い, 誰にでもわかる)と (スキルが高い, 難解) のふたつだけであるかのように論じられるんだろう。

シナリオの場合でも、オーディエンスに ある程度のバックグラウンドを仮定するのが普通で、 例えば違う文化のところに持ってくと理解されないってことは ある。プログラム界の状況はオーディエンス (ここでは コードの触れる他のプログラマ) のバックグラウンドの平均が 期待できるほどに高くないという状況になってしまっている、 という説明はあり得る。で、その状況で仕方なく「未経験者を…」 とやってると結局いつまでたっても底上げされないという悪循環なのかな。

今、インディペンデントの映画の撮影に参加している。 低予算でスタッフも最低限の人員しかいないし、みんな他の 仕事を持ってるからまとめて休暇を取れるこの2週間で全部撮りきらないと ならないんで1ショット1ショットを納得行くまで撮りきるってことは なかなかできないけれど、 スタッフもキャストも全員が自分の役割をわかってて チームとしていい感じで回ってる。ソフトの開発が同じように できない理由はないと思うのだ。

(2008/06/18 17:19:40 PDT)

職環境としての都市と田舎について、またはそれぞれのベンチャー企業について

私はshi3zさんほど人脈が広くなし直接シリコンバレーで 働いたことはないけれど、それでも見聞きしている範囲の話とは 一致する。そういえば昔、初めてこっちの友人から起業に誘われた時に 個人保証をしなくてよいというところがどうしても合点がいかなくて 何度も何度も確認したのを思い出した。

ただ上のエントリの、「ファーストクラスで移動し、スイートにしか泊まらない」 社長の話は例が偏ってるかなと思った。確かにITバブル期にはそういう 話をよく聞いたけれど、少なくとも現在はVCの方も厳しくなっているし、 起業家の方も「大きな資金を入れて会社のコントロールを奪われるよりも なるべく株は自分で握っておきたい」と思う人が増えてると感じる。 入れた資金が大きいほど、exitの戦略も限られるしね。

若い起業家が集まってるnews.ycでは よく「いかに安く暮らすか/安く会社を回すか」というツリーが立つし、 私が個人的に知っている起業家(シリアルアントレプルナー含む)達も 金にカタい人が多い。

(ケチ、というのではなく、無駄金を使わないということ。 例えばエコノミーでラップトップもろくに開けず よく休めもせずに移動して疲労を貯めるくらいなら ビジネスで飛ぶ方がトータルでは得だろうし、 ホテルのせわしないロビーでデモするよりはスイートを借りて デモした方が良い場合もあるだろう。また、優秀な人を獲れるなら 水準以上の給与を払ってもペイするだろう。ただ、 自分の生活は極力シンプルにして生活費を抑えてたりする。)

(2008/06/14 12:34:10 PDT Lisp求人?)

ITA Software hiring hackers

orbitzの航空運賃検索システムをLispで作ったところがハッカーを求めている。 中ではJavaとかも使ってるらしいので、必ずしもLispを使うポジションとは 限らないけど (でも "Computer Scientist" ポジションならLispの可能性は 高い?)。興味があったら 彼らのパズルにチャレンジしてみよう。

(2008/06/11 14:41:37 PDT)

らむ太語録

「らりるれろ」が「やいゆえよ」になるのでピノコみたいだ。 最近はひっきりなしに「みてみて」と言っていろんなものを 見せにくるようになった。

主語+副詞句+述語の順のセンテンスが組み立てられるようになった。 こういう文法をどうやって獲得してくのか不思議である。(主語,動詞) のペア(順不同)で叙述することを理解するってのはわからんでもないんだけど、 そこに修飾句が加わって一定の構造を持つことをどう見出すのか。

あと、「わからない単語/新しい単語」を分離してスポットできている。 これは私自身も英語の学習過程で経験がある。

(2008/06/06 12:57:34 PDT ソート)

ボクノス - ヒープソート

計算量はO(N log N)だけど、クイックソートより遅いし、安定じゃないので、あんまり活用法が見出せないところですが、バランスの良い木の作り方がわかったので収穫アリでした。

ときどきの雑記帳 i戦士編 - クイックソートって怖いよ?

クイックソートってある意味スゲー簡単にコーディングできる割に高速なアルゴリズムではあるんだけど、落とし穴がそこかしこにあるので使うときには注意が必要(な場合もある)。 […] ナイーブに組んでると、再帰のレベルが(ほぼ)データの長さになるのでスタックオーバーフローが簡単に起きる (で、大概の教科書にはそのナイーブなやり方しか解説がない)。

Gaucheの組み込みの(Cで実装された)ソートはデフォルトではQuick Sortで始めて、 再帰の深さが ceiling(2*log(N)) を越えた時にHeap Sortにスイッチするように してる。この技は(もう覚えてないけど、コメントによれば)TAOCPに出ていたようだ。 Quick SortもHeap Sortもin-placeでできるので、既にQuick Sortでソート済みの 連続領域がいくつかある状態でそれぞれの領域にそのままHeap Sortを適用できるのは便利。

ただ、このアルゴリズムは比較関数を省略してデフォルトのを使った場合に限られてて、 比較関数を渡した時はSchemeで書かれたMerge Sortになる。 Scheme関数をCからコールバックするオーバヘッドのせいで、pure Schemeの実装の 方が速かったからだ。(あと、stable-sortを使うと常にMerge Sortになる)。 必要以上に複雑になっている気はしないでもない。 思い切って全部Merge Sortにした方がすっきりするだろうけど、 アロケーション無しでソートしたい時もあるんだよなあ。

(2008/06/04 04:24:28 PDT)

obsolete - 黎明日記:

オーブン PC の時も思ったんだけど、私は生まれてくるのが二十年遅かった……気がする。

どの世代も、上の世代の昔話を聞いて、そう思って来たんじゃないかなあ。

上の世代が未知の荒野を開拓した冒険談を聞いてわくわくして、 でもかつての未知の荒野はすっかり開発されつくして高速道路が 通ってることに気づき、がっかりする。

でも、住宅地図を片手に未開の荒野を冒険しようって人はいないよね。 わくわくする冒険は、どの時代でも常に、地図の外側の領域にあるんだから。 20年前のわくわくは、やっぱりその時代の整備された領域の周辺にあったはずで。 創造の空間には物理的な限界がない。これからの人たちにとっても、 やっぱりマージナルなところにわくわくはいくらでも転がってるんだと思う。

(ただ、Paul Grahamがハッカーと画家で言ったように、 新しいメディアの主要な可能性というのがメディアが出現してから 数十年のうちに探索しつくされてしまうということはあるかもしれない。 その時代を過ぎると、メディア自身は探索の対象ではなくなるかもしれない (道具として使われ続けることはあるにせよ)。)

(2008/06/03 01:20:40 PDT 昔話)

普段はネットで若い世代のプログラマと自然に話してるんで世代間ギャップを 忘れそうになるんだけど、なんでターミナルでCtrl-Dを打つとEOFになるのかみたいな話を読むと 歳の差を感じてしまうなあ。

私が研究室に入った時の環境は、大きめの冷蔵庫くらいのMicroVAXで BSDが走ってて、私が確保したのはVT-220だったかな、オレンジ色の 文字が出る端末だった。あとはDOS PCをがしがしシリアル接続して 端末エミュレータにしてたかな。RS232Cのケーブルはよく作ったなあ。 (PCにEthernetなんてついてなかった。そもそもEthernetといえば直径1cm くらいある太くて黄色いケーブルにぐりぐり錐で穴をあけてつなぐものだった のだ。)

シリアルポートでの端末接続はサーバマシン管理には重宝するんで、 そんなにobsoleteな技術でも無いとは思っていたのだけれど、考えてみたら 最後に使ったのは2000年か? SIGGRAPHの展示会場で最終調整する時に ノートPCからシリアルでつないだ覚えがあるが。もう過去の技術なのかなあ。 うちの押入れには未だに非常用にD-sub 9pinや25pinのコネクタの買い置きが 埋まってるのだが。

あと、上記ひげぽんさんのところのコメントで書ききれなかったことの 補足:

(なおこの話題がおじさんホイホイであることは承知している。語りたい人は 各自、自分のページで語るように。)

(追記@2008/06/04 14:04:00 PDT: さんの「シリアル端末」見るまで気づかなかった んだけど確かに最近のノートPCにRS232C出てないな。今使ってるX60sは もちろん、先代のX22も無いや。上記のSIGGRAPHの時はその前の代だったから、 東芝のサブノート(portegeとかなんとか)だった。今世紀初頭に USBの普及で取って代わられたってことかな。)

(2008/06/01 15:27:06 PDT Congratulations)

既婚者の世界へようこそ、Paul

(2008/05/21 01:16:41 PDT ビデオいくつか)

3月に日本に行った際に、Google Japanにお邪魔してGaucheの実装について 喋らせてもらったのだけれど、Google Channel Japanで ビデオが公開されたとのこと。 急遽準備したうえ当日電車の乗り継ぎにしくじって遅刻したりして、 今見るとばたばたしてテンポ悪すぎなトークですが、 興味ある方はどうぞ。 (風邪気味だったかも。鼻をすする音が五月蝿い。) スライドはこちら

あと、最近またいくつかピアノ弾いて録ってみた。 人に聴かせる段階じゃないけど、Release earlyの精神で バージョン0.1公開。Release oftenできるかどうかはわからないけれど、 フィードバックは大歓迎。

ショパンの練習曲は死ぬまでにOp.10と25を全部弾きたいなあと 思いたったのがたしか6〜7年前。やっと半分、間違えつつも止まらずに 弾けるようになったので、また6年後くらいにOp.25を録音できたら いいなあ。ただ今でも速度は3/4くらい。 死ぬまでに指定速度で弾けるようになるだろうか。

(2008/05/18 06:11:47 PDT 本の選択)

Paul Grahamがなにげに凄いと思うのは、エッセイに引用する書籍の 多様さだ。「ピーター・メール『どうして離婚するの?』」 (『子供につく嘘』で引用)とか、 1880年刊行の『ビートン夫人の賢い主婦マニュアル』 (『ハッカーと画家』収録の『格差を考える』で引用)とか、 エッセイの主題を決めてから資料を集めてるとは考えにくいんだけど、 普段からこういうのを読みまくってるんだろうか?

(2008/05/17 05:53:33 PDT 理性と感情)

データとか論理とか理性とかを感情よりも重視することを「知性」というなら、怒りや疑問をとりあえず表現することのほうが大事だと考える私は反知性主義者で別にいい

内容よりこのタイトルの文章について反応。

感情はエンジン、理性はハンドル、どっちが欠けても困るよなあ、どっちも 大事だよなあ、とまず思う。

ただ、感情には気をつけた方がいい。強い感情はエンジンをぶんまわして 大きな行動力をもたらす、ということを私たちは意識よりも深いところで 良く知っている。そのため、 明確に意識されないような隠れた動機が感情を利用して自分に何かをさせようとすることがある(*)。 これは表層の意識に登るような理性の働きよりも下のレイヤで起きる ことで、意識から見るとまるで「感情が自発的に湧き起こってきた」かのように 感じられる。 人の心は実に巧妙で、自分に嘘をつくことに長けている。 例えば自分が表立っては認めたくない何かをやりたい時に、怒りや不快感を生じさせることで、 自分を衝き動かすといった具合だ。 表層の意識は、怒りに衝き動かされてやったことだと行動を 正当化できる(本気でそう思い込める)のでまことに都合がよろしい。

怒ってはだめと言ってるのではない。というか怒りは素晴らしいエネルギー源なので 使わない手はない。ただ、なぜ怒っているのかということについて目を瞑らないように するには客観的になる必要があり、それには理性や論理が役に立つ。 感情の奔流に飲み込まれ、全力で疾走しながらも、目を逸らさずにその理由を見つけようと する態度を知性と言うんじゃない?

目指すべきは、理性を重視することでも、感情を重視することでもない。 一方で爆発する感情でうなるエンジンの振動を全身で感じながら、 もう一方で理性の回路で感覚を冷静に処理してゆくことを同時に行うって ところではなかろうか。

-*-*-

(*) このことは役者なら誰でも知っている。役者の仕事の一部は、 自分の心にあるこのメカニズムをハックすることだからだ。 近代の演劇術が発見したのは、 「意識によって直接特定の感情を呼び起こすことは出来ない。 しかし、目的の感情が起きる条件を揃えてさえやれば、 その感情は自然に呼び起こされる。」ということだった。 もちろんその条件は人それぞれ。その人が生きてきた人生がまるごと 関係している。 自分はどういう時に怒るのか、笑うのか、悲しくなるのか、嬉しくなるのか、 せつなくなるのか、良い役者は自分の心のカタチを良く知っているのだろうと 思う。

(2008/05/12 03:53:44 PDT 外から見た東京)

こないだDVDで『Lost in translation』 を観た。Scarlett Johanssonいいなあ。 映画自体も良くできてると思った。

で、ネット上の感想をちらほら見ていたんだけど、日本からの感想で 「東京の描かれ方がひどい」というものが少なくないのにちょっと びっくりした。『Babel』の時も日本パートについて似たような 感想を見たなあ。 27年間東京に住んでて、離れて10年以上経った身からすると、あの描き方は 外から見た東京を非常にうまくとらえていたと思うんだが。

そりゃあ、あそこに映像化されてたものが「東京の全て」であるわけはない。 そもそも創作は対象のある一面を切り取ってみせるものなんだから。 観客として「ああいうふうに見られたくは無い」と思うのは自由だけど、 創作者が「ああいうふうに見る」のもまた自由だよねぇ。 「ああいうふうにしか見られないというのは(創作者は)東京の何たるかを

わかってない」という論はあり得るけどあんまり意味が無い。 そもそもあの映画については「東京の何たるかをわからない」こと自体に 意味があったわけだし。

ちなみにハワイもメディアによく登場するけど、映らないところは たくさんある。創作者に切り取られた時点である程度はフィクションに ならざるを得ないわけで。ただ、だからと言って観客が自分の目で 直接見たら全てが見られるかというと、結局それもその人の視点で 切り取られた断片にすぎない。創作物が力を持っているのは、 切り取られたフィクションの中に真実の投影が潜んでいるからだ。 ホログラムのように、それ自体に真実が記録されていなくても、 観客の視点と合わさった時に真実のひとつが浮かび上がってくる。 それが、創作物を鑑賞する醍醐味なのではないか。

(2008/05/09 06:40:46 PDT 天災)

スルーしようかと思ってたけどつい。 ギフテッドの概念ってやっぱりあんまり理解されてないんかなあ。 (はてブで一人だけ指摘してるけど)。

偏差値80も偏差値20も、普通じゃないという意味では同じで、 普通の教育にはついてけないから、特別なフォローが必要ってことだよねぇ。 (別に普通が良いとか悪いとかじゃなくて、文字通りの意味で平均的なカリキュラムってこと)。 上の方に外れている場合でも、学校の勉強に意味を見出せなかったり 何を求められてるかわからなかったりして、傍目には問題行動取りまくりってことになる。

他人にIQ200であることを指摘されるのが呪いなんじゃなくて、 そういう特性を持ってしまったことが既に呪いなのだ。 才能は、それを使うスキルを身につけない限り、本人の身を滅ぼす (前にも書いた→Shiro:log:2005後半 2005/11/25 21:56:29。 しつこいけど、David Morrelの "Orange is for anguish, Blue for insanity" はこのテーマにおける名作)。 あと、呪いと祝福は同じものの裏と表である。とスティーヴン・キングがどっかで 書いてなかったっけ。

そこまでひどく上の方に外れてない場合で、 授業を一切聞かずに勝手なことをしてても黙認してくれる先生に運良く当たり続けると、 特別扱いされなくてもサバイブできる場合がある。私は運が良かった。 小中高と授業にほとんど参加した覚えが無いんだけど(出席はしてた)、放任しててくれたからなあ。

あと、才能って本人のものっていうよりみんなのものって気がする。 全員全く同じ能力だと種としての生存が危ういでしょう。 集合体としての人類が、サバイバルのために遺伝子プールにバリエーションを 持たせてるって感じじゃないかな。

(追記2008/05/09 16:50:10 PDT: 能力の呪いと祝福という点については、キングの "Firestarter" に その風味があると思う。超能力ものという点では "Carrie" や "Dead Zone" と同系列に 見えるけれど、"Firestarter" では主人公の一人が「生まれながらに能力を持たされ」、 「幼年期に苦労してその能力を制御することを覚え」、 「思春期に(多少のうしろめたさを持って)能力を解放することを覚える」という 要素が入ってて、私はそれに単なるキングの純粋なイマジネーション以上のものを感じる。 つまり、キング自身が子供の頃から「書かずにはいられない」{呪い|祝福}をかけられて いたことが反映しているんじゃないかと。)

(2008/05/03 03:08:16 PDT Scheme Workshop)

今年のWorkshop on Scheme and Functional ProgrammingのCFPが出てます。 論文締切りは6/20。今年はプログラム委員を拝命しています。 難しい話ばかりでなく、「こんな実用案件に使ってみたら、こんな発見があった。 」というような 話題も歓迎です。世界のSchemerに向けてあなたのアイディアや 経験をシェアできるチャンス!

http://www.ccs.neu.edu/home/will/scheme2008/

(2008/04/27 01:55:59 PDT 趣味2)

昨日の「趣味と仕事」の話に対して、「できるかな」の平林さんが 新しい軸、「楽しむかどうか/心を豊かにするかどうか」を導入して プロットしてくれた: 「"複雑極まりない"複素平面」上に「仕事」と「趣味」を描く

この軸は、下で示した「人生を賭けるかどうか」という軸とはほぼ独立 であると思う。下の図で画面に鉛直な軸を考え、手前を 「心の中の豊さ・楽しさ」がプラスになる方向とすれば、 「趣味」は左反面手前の空間に位置する。喰えない役者は右下手前だ。 平林さんの図はそれを横方向から見ている形になる。

なお、昨日言った「人生を賭ける」というのは大げさな話ではなくて、 自分が今まで持っていたもの(それが、単なる自己イメージであっても)を 失うかもしれないというリスクがあるかどうかという話 (Paul Grahamが知っておきたかったことで「不安」と言っていたもの)。 村上龍は明らかに「趣味」という言葉を、そういうリスクのない営みと している。

人によっては趣味をもう少し広く考えるだろうけれど、 そのエリアと「喰えない役者」の間にはやっぱり 境界があると思うんだよなあ。

(2008/04/25 19:49:55 PDT 趣味)

住みたいところに住める俺より、 村上龍氏の「無趣味のすすめ」を孫引き:

現在まわりに溢れている「趣味」は、必ずその人が属す共同体の内部にあり、 洗練されていて、極めて安全なものだ。考え方や生き方をリアルに考え直し、 ときには変えてしまうというようなものではない。

だから趣味の世界には、自分を脅かすものがない代わりに、 人生を揺るがすような出会いも発見もない。 心を震わせ、精神をエクスパンドするような、失望も歓喜も興奮もない。

真の達成感や充実感は、多大なコストとリスクと危機感を伴った作業の中にあり、 常に失意や絶望と隣り合わせに存在している。

つまりそれらはわたしたちの「仕事」の中にしかない。

趣味を訊かれるといつもちょっと困る。 私には趣味と仕事の違いがよくわからないからだ。 継続して力を注いでいることはどれも自分にとっては人生に関わる重要なことがらで、 そのうちのひとつであるプログラミングがたまたま喰っていける収入をもたらして くれたので、それを仕事と称しているにすぎない。

世間的には、それで金を稼いでいれば仕事、そうでなければ趣味、という ことになるのであろうが、それではday jobをこなしながら喰えない舞台俳優を 続けている人にとって、舞台は何なのだろう。喰えていないなら、仕事ではないの かもしれない。でも「趣味」には、人生を賭けるほどのことではないという ニュアンスがある。彼らはday jobを変えることはあっても、舞台を完全に やめてしまうことはないだろう。 そういうものを趣味と呼ぶのは失礼にあたると感じる。

とは言っても自分のやっていることになると、それによってまとまった収入を 得ていないもの、あるいは到底収入を得られる域に達していないものを「仕事です」 と言うのには抵抗がある。自分にとっては人生に関わる重要なことであるけれど、 それが収入に結びつくレベルには至っていないという自虐的なニュアンスを込めて それを「趣味である」と言うことはある。また趣味を訊かれたらそういうものを 答えることもある。 だが本来の意味での趣味ということなら、「無い」としか言いようがない。

それによって収入が得られるかどうかということは、 自分がそれに賭けているかどうかのひとつの目安になることはあるだろう。 普通は、中途半端にしかやらない人よりは責任を持って 結果を出してくれる人の方に金を払いたいと思うからだ。 ただ、金銭のやりとりは直接的には需要と供給の関係で決まるもので、 仕事の質は副次的な要因にすぎない。 ピアノを人に聴かせて充分な収入を得て行くには 世界的にもトップクラスでなければならないけれど、 プログラムを書いて充分な収入を得て行くためにICPCで優勝する必要はない。 単純に、後者の方が需要がはるかに大きいからだ。 将来、実用プログラミングが全自動化され、 人間が行うプログラミングがすべてCode Golfになったら、 プロのプログラマとはCode golf competitionで優勝して賞金を稼ぐ人を指すように なるかもしれない。

また、結果の相対的なレベルと、その結果を出すことでどのくらい本人の人生が 変わるかということにも、あまり関係は無いのではないかと思っている。 たとえ出てきたものが周囲から見て稚拙であっても、 それが本人の人生への挑戦から出てくるものであるなら、 そういう活動は趣味というべきではないだろう。 (これは、「結果は出なくても努力すれば良い」という努力主義とは異なる。 人生に向き合わない単なる苦行で流す汗と、 山の向こうの世界を見るために流す汗は違うものだ。)

結果を他人に見せてフィードバックを受けるというのは、 自分の活動がただの自慰に陥っていないかどうかのチェックである。 他人の賞賛を得るためにやることではない (そりゃ褒められれば嬉しいけど、 それはおまけ)。

もしかすると、趣味と仕事の関係というのは ありがちな2次元チャートで示すならこんな感じなのかもしれない:

[image]

私がやりたいことは常にこの図の右半分にある。それが収入に結びつくかどうかに 関わらず、それをやることで新しい世界を見られることを やっていきたい。「趣味」に時間を費やすには人生はあまりに短い。

(2008/04/23 02:26:30 PDT The Mist)

DVDで鑑賞。

スティーヴン・キング作品は多くが映画化されているが、 スーパーナチュラルな要素が物語に深く関わっている原作の映画化は ほとんど全てうまくいっていない。例外はキューブリック版『Shining』 くらいか。うまくいったのは、もともとスーパーナチュラル要素が ほぼ無い作品( 『Stand By Me』 『Shawshank Redemption』 『Dolores Claibourne』 『Green Mile』)か、サイコホラー的なもの( 『Misery』)ではないか。 原作の想像喚起力があまりに強いため、 スクリーン上のモンスターはどうしても読者の脳内のモンスターに比べて 見劣りしてしまう。

だが、キング作品においてスーパーナチュラルな要素は きっかけ、もしくは背景にすぎず、本当に描かれているのはその状況に 置かれた人間がどう振る舞うかということであるはずだ。 『The Woman in The Room』『Shawshank Redemption』 『Green Mile』とキング作品の映像化を成功させてきたFrank Darabont監督は そこんとこよーく分かっていらっしゃる。

『The Mist』はキング初期のスーパーナチュラル中編。異世界のクリーチャーを 出さないわけにはいかない。けれど、物語の主体はあくまで「その状況に 追い込まれた人間」にあるわけで、クリーチャー達は人間を追い込むのに 充分なだけconvincingであれば良いのだ。 (ただ、原作にもラスト近くで登場する巨大クリーチャーの映像は 実に美しかった。あれは私の脳内映像を越えてくれた。) そして肝心の人間ドラマの方は実にうまく、『蝿の王』的状況に落ちて行く 群集を描いている。

ラストは好みが分かれるところだろう。私は素晴らしいと思う。 特に、"Don't let those monsters take me." という Billyの台詞との関連を考えれば。あと『蝿の王』との関連も。

(2008/04/16 19:15:25 PDT 大学の勉強2)

大学の話 - wiseler : WAR IS PEACE

大学院にいければそれにこしたことはないですね。 大学なんて大学院へ行きやすくなるだけの切符みたいなものですから。 ただ、大学院へ入るまで、大学の四年間は苦痛を味わう必要があるのです。

大学によって事情は違うだろうけど、 既にやりたいことが決まってて、でも今いる環境で刺激が足りないと思ってる人は、 そっち方面のカンファレンスやワークショップに積極的に出てみると いいと思う。それもインターナショナルなやつ。 学生の場合、参加費がバカ安になるので。 (旅行+宿泊費は学生にはきついかもしれないけれど、 自分への投資という意味ではレジャーとしての旅行とは比べ物にならない。 あと、英語でのコミュニケーションがある程度できるなら student volunteerになれば、宿泊費タダになったり旅費援助が出たりすることがある。)

ドメスティックな学会じゃだめっていうわけじゃないけれど、 刺激を受けるという点では国際会議の方がずっといい。 まわりが日本語だと安心しちゃうってのもあるし、 国際会議の方がバラエティに富む人間が集まりやすいってのもある。 また、昨日書いたように、専門分野は先に行くほど急速に広がるので、 興味が一致する人間がある程度以上集まるためには母集団が大きい方がいいってこともある。 (逆に、大学の一学科というだけでは(自分の興味に対して)充分な濃度 が確保できないだろうことも想像つく。)

大学で教えている友人達からちらほら聞くに、 やっぱりそこらへんのバランスは難しいらしくて。 本人も本当に面白いところをやろうと思うと、それを受けられる学生が 偏り過ぎちゃう。講義が成り立つ程度集めようと思ったら内容を薄めざるを得ない。 (学生側からは、教官が実はもっと面白いことを教えたい〜けれど出来ない〜という ジレンマを持ってるってことに思いを馳せてみるといいかもしれない。 人によるけど、オフィスアワーに個人的に話をしに行ったりしてみると 面白いかもよ)。

(2008/04/16 00:05:21 PDT 大学の勉強)

黎明日記2008-4-16

しかし今の日本では、勉強を続けて某一流大学へ進学できたとしても、 授業でコンパイラを書くだけなのです。不思議!
「理想の子供」の話 - wiseler : WAR IS PEACE

えー! もっとこう、数学とかやらないんですか? 個人的に思っている大学の利点は、 数学と英語の勉強です。この二つは独学では結構難しい。 なぜなら、この二つは補助的なモノなので、どうしても必要な状況にならないと、 優先順位が低くなっちゃうからです。

私はかなり不真面目な学生だったのだけれど、 大学に行って良かったこと (面白い連中と知り合うとかキャンパス内に小劇場が あるとかではなくて、本来大学が提供している機能のうちで良かったと思うこと):

一方、英語についてはあまり役に立たなかった。 私が駒場に居た時は文学作品を輪読形式でひたすら訳してくって 講義ばかりだったからなあ。何読んだかもほとんど覚えてない (カポーティの短篇を読んだのだけ覚えてる)。 この時期、趣味でペーパーバックを読みまくっていたことの方が むしろ英語習得には役に立ってると思う。

少し下の学年からは実用重視になったらしいけど、 本気で英語を使えるようにするつもりなら週数コマの講義じゃ 時間的に足りないと思う。講義の多くを英語でやって、かつ 一方向じゃなくてディスカッション中心にするとかでないと。 そういう大学もあるとは思うが、 駒場はまだ語学以外は日本語中心じゃないんかな。

ただ、英語だけでなくいろんな外国語の講座が開かれてたので、 第3外国語をいくつもつまみ食いしてて、 色々な言葉に触れるという意味では面白かった。身についてはいないけど。

で、上の引用部に「授業でコンパイラを書くだけ」とあるけれど、 大学学部で扱うトピックがさほど深いものにならないのはある意味仕方無いことだと思う。 深く突き詰めるには進む方向がある程度見えてないとならないんだけど、 専門分野ってのは先へ行くほど急速に広がっているんで、 学部くらいでは進む方向を定めることが難しい。 後でどっちにも進めるような共通部分の基礎固めをしようとすると、 あんまりエキサイティングでないトピックとか、 現実の問題との結びつきがピンとこない抽象的な話とかに なっちゃうんじゃないかなあ。

ただ、それは「大学側から提供するプログラムとしては、 あんまり尖ったものにできない」というだけであって、自分で やりたい方向のある学生がそっちに深入りして行こうと思ったら それなりのリソースへのアクセス手段が揃っているところだと思うよ、 大学は。

(2008/04/14 17:46:25 PDT)

Why There Aren't More Googles

Howard Aiken said "Don't worry about people stealing your ideas. If your ideas are any good, you'll have to ram them down people's throats." I have a similar feeling when I'm trying to convince VCs to invest in startups Y Combinator has funded.

(2008/04/10 03:13:16 PDT)

PPL2008の論文が公開されたようです (via d.y.d.さん):

http://www.nue.riec.tohoku.ac.jp/ppl2008/program.html

私のは小ネタです。笹田さんのと一緒に読んでもらえるとおもしろいかと。 なお、この論文の実装はGaucheのCVSからexperiment_ffxというブランチで チェックアウトできます。

ところでd.y.d.さん が触れているTyped Virtual Addressingって、発想は BIBOPですよね。 BIBOPはアドレス空間が広く(32bitに)なった時に効率が悪いからってことで 現在ポピュラーなLSB数ビットにタグを埋め込む方式に取って替わられた ってな話をどっかで読んだ気がするんですが、64bit時代になって復活 してきたのは面白いですね。

(2008/04/07 12:01:34 PDT)

ようつべを何となく見ていたら初音ミクにYMOをカバーさせてるクリップが たくさんあって朝っぱらから思わず聴きまくってしまった。懐かし。

今、改めて聴いて、 「Ongaku」の曲の意味が(字面でなく、実感で)やっとわかった。
「待ってる、一緒に歌うとき」。
しかしらむ太にピアノに登らせるのはまずい。 勝手にプリペアドピアノにされてしまう。

BGMとTechnodelicは神アルバムだったなあ。久々に聴きたくなったけど レコードは処分しちゃったしカセットテープは既に再生機器がない。 オンラインで買えないかな。iTunes Storeには無いようだしなあ。

(2008/04/07 00:05:59 PDT)

継続Festのプログラムが出ました。 かなり濃いイベントになりそうです。 私は残念ながら参加できないので、参加者によるレポートを 楽しみにしておきます。

http://logic.cs.tsukuba.ac.jp/Continuation/program-j.html

(2008/03/16 09:48:58 PDT 砂糖菓子と死体)

日本に来るとつい本屋に入り浸りになってしまう。きりが無いので衝動買いは 避けているのだが、気がつくと本が増えている…

ネットで評判を見てずっと気になっていた『砂糖菓子の弾丸は撃ちぬけない』を読んだ。良かった。個人的には星5つ。 ただ、読んでて痛い話ではあるので手放しで人に薦めるのははばかられる感じ。

私はこれを「子供が現実と闘って、生き延びたり生き延びられなかったりする話」と読んだ のだけれど、これはスティーヴン・キングの"The Body" (『スタンド・バイ・ミー』)と同じだ。 『砂糖菓子〜』は13歳の女の子。『スタンド・バイ・ミー』は12歳の男の子。 どちらも彼らを守ってくれるべき人々がそうしてくれなくて、 そのままでいたら溺れ死んでしまいそうなのを、彼らは自分達の力だけで 生き延びようともがかなくちゃならない。 で、どちらも結局生き延びられた子供だけが大人になる。 (背景となる家庭事情は『砂糖菓子〜』の方が切迫しているけど、これは60年代アメリカと 現代日本との違いかな。現代アメリカが舞台ならやっぱりかなり切迫したものになりそうだ。)

興味深い違いは、「実弾」と「砂糖菓子」の役割の差だ。 『砂糖菓子〜』では、実弾を探すなぎさは藻屑の放つファンタジーを効き目のない砂糖菓子と 評する (そして、生き延びたもう一人は文字通りの実弾を撃つようになる)。 『スタンド・バイ・ミー』では逆で、文字通りの実弾は一時的な解決でしかなく、 本当にサバイブするための実弾はゴーディの持つ言葉、物語る力であることを クリスが見抜く。 『砂糖菓子〜』の読後感がレクイエムみたいなのに対して、『スタンド・バイ・ミー』の それにかすかな希望があるのはそのせいだろうか。

(なお『スタンド・バイ・ミー』の文庫版を書店で見てみたが 翻訳の問題は 直ってなかった。残念なことだ。)

(2008/03/11 08:36:18 PDT)

この春,製造業に就職する情報系の学生へ:

あなた方がこの春最もやってはいけない事は,Ruby,Python,schemeなどの最先端の言語に触れる事である.

正確には,それを会社で利用しようと思って触れることである.趣味で行うことにボクは口を出すつもりはない.

あなたがこの春,就職するまでにするべき事は,2つ

  • Java,組み込み技術が必要な現場であればC++と言ったビジネスにおいて十分な実績のある言語の取得
  • あなたが今までに作成したプログラムのKL(キロライン)とそれを作成するのに必要とした時間の把握

先日のPPLの講演では、マイナー言語で喰って行く方法のとっかかりとして 会社内でゲリラ的にマイナー言語を使って行くという手も紹介したので、 この件には触れておかねばなるまい (なお、PPLでの講演内容については読み物としてまとめてソフトウェア科学会誌 に寄稿するように頼まれたので、いずれそういう形で出せると思う)。

ちなみに元記事の内容は現実を踏まえた極めてまっとうな論だと思う。

自分の好きなマイナー言語を大きな組織の中での仕事で使って行くために、 個人の裁量でできるワークフロー改善からこっそり導入してゆくという手は とても有効だと私は思っているけれど、それはあくまでゲリラ戦であることを 承知しておかないとならない。組織の一員である以上、正規の仕事(ここではJavaやC++)も ちゃんとこなさなければならないし、むしろゲリラ的に動く自由を確保するためには 人並み以上に正規仕事ができなければならない。

この春、就職する人で、好きなマイナー言語を仕事でも使ってゆきたいという人に 私がアドバイスするとしたら、「Java帝国に潜入したScheme連合の諜報部員」 (JavaとSchemeのところは好きな言語に置き換えよ)に自分がなったつもりになる、 のが良いと思う。あなたのミッションはJava帝国を内側から崩すことである。 しかしあなたがSchemerであることは大っぴらに知られてはならない。少なくとも 内部に協力者を増やすまでは。さらに、帝国の上層部から信頼を得て権限のある 立場に昇るために、帝国の言語であるJavaについても人並み以上に使えなければならない。 道は険しい。Schemeへの愛が唯一の支えなのだ。だが 同志の集会で あなたは決して孤独な戦いに挑んでいるのではないことを知るのだ。

なんてね。 まあ、現状を変えてゆこうとするなら、現状にまかせて流れてゆくよりも 余分に泳がなけりゃならないのは仕方ない。 無理にならない範囲であれば、かわりに人と違うことをするって密かな楽しみを 得ることができるってわけだ。

それに、PPLでも言ったけれど、もし将来独立して技術コンサルやスモールビジネスを始めようと した時に、たとえ強力な言語を自分のコンペティティブエッジとするつもりであっても、 好き嫌いは別にしてメジャーな言語もちゃんと書けるようにしておくことは重要。 取れる仕事に幅ができるというのは余裕を持って仕事を選べるということだし、 現実社会の多くがメジャー言語で動いている以上、そことのインタフェースでは 相手の言語を理解している必要があるからだ。

(2008/03/09 19:26:33 PDT)

日本に来ている。寒い。

3/5〜3/7はPPL2008参加。 shudoさんの日記(3/5, 3/6, 3/7)に写真入りレポが。 色々な人に会えて楽しかった。主催者の皆様お疲れ様でした。

3/8はお台場にてgauche.night。 言語処理系作成者の醍醐味は、作ったものが自分の想像を越えたところで使われる ことだと思う。そういう意味でgauche gongの発表はどれもエキサイティングだったし、 満場の参加者も含めこれだけ関心を持っていただけるのはありがたいことだと思った。

Amazonにもようやく出たようなので貼っておこう:プログラミングGauche (@Amazon), サポートページ

プログラミングGauche

(2008/02/28 01:15:47 PST)

『オンラインゲームでSOS、難病男性を無事救護』

 男性によると、意識を失ったのは1月上旬の午前11時すぎ。家族の留守中に頭痛に襲われ、体を動かせなくなった。近くにある情報機器はパソコンだけ。時折楽しむオンラインゲームに参加者が文字で会話を交わすチャット機能があることを思い出し、接続した。

 「救急車を呼んでくれ」と記して電話番号を書き込んだ後、「身体が」と入力して意識が遠のいた。

大西科学さんのこの掌篇 を思い起こした。

(2008/02/23 23:11:46 PST US版高学歴ワーキングプア)

古いドキュメント(1999年)だけど、Hacker Newsで上がっていたので 今日知った。

Don't Become a Scientist!:

I have known more people whose lives have been ruined by getting a Ph.D. in physics than by drugs.

Washington Universityの物理学教授による、 「若者よ、科学者を目指すな」という話。 サイエンスの分野では人材の需要よりもPhDの供給の方がずっと多く、 しかしtenure positionの給料はあまり下がってないので、結果的に バッファとなっているポスドク期間がどんどん長くなってると。 そうなると日本と事情はあまり変わらんのかな。1999年の時点で これを言っているということはUSが先行してたのかな。

計算機科学のPhDは別だとここにも書いてある。やはりいっしょくたにして 議論するわけにはいかないようだ。

(2008/02/20 23:41:11 PST)

らむ太語録。

これはBaby EinsteinのDVDを観てて覚えたらしい。

(2008/02/19 16:44:17 PST 継続祭りのおしらせ)

4/13に東京で、継続(continuation)について語り合うイベントが開催されます。 http://logic.cs.tsukuba.ac.jp/~kam/Continuation2008/

Scheme界ではSXMLkanrenの作者として、 またR5RSマクロの魔術師としても 名高いOleg Kiselyov氏が別の国際会議で来日するのに合わせたものです。 CFPの体裁だけ見ると一般のワークショップみたいですが、 むしろgauche.nightのようなインフォーマルで活発に議論できるような場 にしたいとのことなので、ネタがある人はぜひ発表を考えてみてください。 個人的には、理論的にクールな話だけではなくて、 実稼働に応用して得られた具体的な数値や経験なんかも知りたいところです。

(2008/02/16 03:13:23 PST 自分探しんぐ)

404 Blog Not Found: 探すな決めろ - 書評 - 自分探しが止まらない

それでは、なぜ著者も含め自分探しが止まらない人々はそれを止められないのか。

自分を決めるのが、怖いからだ。

そして社会も、自分を決めることを若者たちに強いなくなったからだ。

しかし、0x20歳、すなわち32歳あたりを過ぎても「自分が見つからない」人々は、 無理矢理にでも自分を決めてしまった方がいい。「自分を決めた者」を、 自分探しをしている人々が嗤うのは確かだが、嗤わせておけばいい。

自分がないものに嗤われても、本当は痛くも痒くもないのだから。

元ネタの本は読んでないけど、 自分は決めるものか探すものかって訊かれたら、私は圧倒的に「探すもの」派だなあ。

ただ、「探す」という言葉はちょっと誤解されやすい。「本当の自分」という完成品が どっかに転がってて、それを見つければゴール、みたいな感じにとられるおそれがあるから。

ここでの「探す」は、 木の塊を彫ったり粘土をこねたりして像をつくるとか、そういう感じ。 それは探すじゃなくてつくるじゃないか、と思うかもしれないが、 「もっともふさわしい表現を探す」とか「いちばんしっくりくるデザインを探す」 とかそういう時の「探す」って、「つくる」のとほとんど同義じゃないかな。

「自分探し」をこの意味でとらえると、二つ重要なことがわかる。

こういう「自分探し」なら、止まらないのは大いに結構。むしろ一生探し続けるのが面白い。 探せば探すほど、自分も気づいていなかった新たな自分が、自分の中にもともと 埋まっていたことを発見するだろう。

あと、「自分がない」というのもよくわからない。 私は、自分というのはある人生を表現する媒体にすぎないというような気がしている。 ちょうど、役者が役を表現する媒体であるように。 そこに「ある」ものはあくまで表現された出力であって、その出力の積み重ねが 事後的に自分という存在の特性を規定する。なにも表現しないうちから 自分とは何かを考えても意味が無いことだ。

(2008/02/09 15:17:56 PST 即戦力)

なぜ大学で即戦力は育たないか

仕事ぶりを観察させ、少しずつ仕事を任せて、失敗できる環境で場数を踏ませることは、大学ではなく企業がやるべき人材育成だろう。

すぐに結果が出ないと我慢ならないメンタリティ

私も含め多くの人は、目の前の結果・即座に分かる結果に一喜一憂してしまいがちだ。すぐに出る結果でなければ我慢しきれずに、無意味だったとか言い出してやめてしまいがちだ。そんなことで、他人(や自分自身)を伸ばしてやれるんだろうか?

この「即戦力」とか「結果を出す」という話もどうも問題のとらえかたがずれている のではないかという気がする。

私にとって戦力となりそうな人というのは、どんなに小さくてもいいから状況の中で 問題点を見つけだし、解決策を考え、コミュニケーションを取りながら実行し、 評価可能な結果(成功でも失敗でも良い)を得られる人だなあ。特定の問題解決の スキルは最初は低くて全然構わない。例えば経験のないことをやらなくちゃ ならなくなった時、最初の問題の一つは、自分は何が出来て何が出来ないのかを 把握しなければならいということに気づくことだ。 それから、出来ると思ったことをとりあえずやってみて、結果を 検討できること。ジュニアで入ってくる人ならそれで充分だと思う。

ジュニアとシニアに期待するのは結果の確実性と大きさの違いであって、 ものすごく細くてもいいから入り口から結果(良い結果でも悪い結果でも、とにかく 検討できるような結果)までを自分でつなげられることが重要だと思う。 後はそれを太くして確実性を増してゆけばいいだけで。

で、そういうことはやっぱり大学とかでやっとくべきなんじゃないかと思うんだよね。 レポート出した、試験受けた、成績つきました、じゃなくて、 自分はこれでいけると思ってレポートを出した→意外なところで議論の漏れを 指摘されてorz、とか、こんなアクロバティックな手法でいいのかしらん→ ユニークと評価されたやったぜ、とか。そういう、自分で考える・やってみる・ 評価を受ける・検討して次に活かす、っていうサイクルが身についてることが 「戦力」の前提なんじゃないかなあ。(その意味では、大学時代、 レポートにせよ試験にせよ講評が返らないものが多かったのは非常に不満だった。 出しっぱなしで返ってくるのが点数だけじゃ、それは学生の尻を叩いて 勉強させるだけの意味しか無いではないか。フィードバックに耳を傾け、 自覚的にプロセスを改善するという点こそが成長の要なのに。)

もちろん、入ったら直ちにシステムを把握してがりがりコードが 書ける人が今すぐ必要、という要請が出ることはあるが、それならシニアを 雇えばいいんだし、それをしている時間も無ければそういう時のために ソフトウェアコンサルタントが居るわけだ (日本でこういう呼び名が一般的 かどうかは知らないけど、USではソフトウェアコンサルと言ったら 呼ばれるや否や仕様を把握してがしがしコードを書き、 短期間で要請された機能を実装する職人のことである)。 当然、新人よりもはるかに高い料金をチャージする。

いわゆる「即戦力」というのがそういうスキルを指しているとしたら、 ストレートで(社会人を経由せずに)学校を卒業したばかりの新人に それを求めるのは無茶な話だし、新人料金でそういうスキルを得たいというのも 虫が良すぎる。この意味での即戦力はどうしたって実戦経験をある程度 積まないと身につかない。大学をどう変えようが、いきなりそういう人間を 輩出させるようにするのは無理だろう。 (在学中に修羅場をくぐらせて生き残った人間だけ卒業させるとかいう 話ならまだわからんでもないが、そうすると逆にサバイバル能力にだけ 不自然に特化してしまいそうな気もするしなあ)。

(2008/02/08 19:44:54 PST 努力と成功)

不倒城: 努力という免罪符より:

「努力したからといって成功するとは限らないが、成功した人は皆努力している」。いい言葉だ。いい言葉なんだが、これ、本当だろうか。

世の中、「努力しないで失敗した人」、というのは多分星の数程いる。ただ、その一方、「努力しないで成功した人」「努力しないで結果を出した人」というのもそれなりにはいるんじゃないか、と私は思っている。

[...]

彼は、運なり天賦の才能に恵まれて、それ程努力をすることもなく何だか成功してしまった。成功の内容はなんでもいい、「大会社の重役になった」でも「Webサービスを立ち上げてみたら覿面大成功して大金持ちになった」でも「東大・京大に受かった」でもいい。

「成功」の定義によるけど、一回ごとの挑戦に対する良い結果というのは運の要素が 大きく絡んでくるので、たまたま結果が出てしまうこともある。 「大金を得ること」を成功とするなら宝くじの存在が努力が不要であることを 示している。

私も昔は誤解していたのだけれど、難しいのは一回良い結果を得ることじゃなくて、 それを続け、積み上げてゆくことなんだよね。

上のエントリでは「東大に受かる」という例が出てくるけど、 当然のことながら、大学でやる勉強って受験勉強よりはるかに難しいわけだ。 (受験勉強は意味のない勉強だって話もあるかもしれないけど、東大は少なくとも 後の人生で役に立たないようなテクニックを覚えなくても受かる。) 就職もそう。問われるのは面接を突破したかどうかなんてことじゃなくて、 仕事場で現実の問題に直面してそれを解けるかどうかってことだ。 もっと難関である、例えば小説の新人賞に入賞したとかピアノのコンクールで 優勝したとかだって、本当に難しいのはそっから先どうやってプロとして 継続してゆくかだ。

ベンチャーで一山当てて大儲けって話だって、 エジケンさんも言ってるけど、 その前に何度も挑戦してることが多いわけで (Paul GrahamもViawebの前に一回 失敗してるしね)。最初の会社で成功した人だって、会社が危機に瀕するような 事態が何度もあって、そこを諦めなかったから成功したわけだ (Cf. 死なないために)。

そういうわかりやすい外面の成功だけじゃなくて、「自分が満足のゆくものを 作れた」という内面的な成功も、ひとつ山に登ったら向こうにもっと高い山が見えて、 もっと先に進みたくなる。

そんで、ひとつの成功ってのを例えばそれまで持っていた値に対してプラス100以上の何かを 得るっておおざっぱに抽象化すると、確かに運だけでゼロからぽんと1000くらい成果を出しちゃう ケースもある。一方で、10000くらいまで積み上げた人が200くらいの成果を出して 成功と騒がれることもある。ただ、0からプラス1000出すよりも、10000からプラス200出す方が はるかに楽なんじゃなかろうか。 (まあ、その10000を維持することとか、10000持っちゃうと立場的に5000の成果を出すことを 期待されるとか、そういうのが最初に言った「継続することが難しい」ってことになる わけだけれども。) だから個々の成功事例を精査すれば確かにほぼ運だけで 出した人はいるだろうけれど、全体を見ると既に高い値を持っていた人が出した成功の 方がずっと多いんじゃないかと思う。

で、そういう人がなんで既に高い値を持ってたかっていうとそれは地味に10とか50とか、 耳目を集めないような地味な成果を積み上げてきたからでしょ。

「努力」という言葉は色々な使われ方をするので私は好きじゃないけれど、 そういう積み上げを努力って言う人はいるよね。

いいとか悪いとか、それが美徳かどうかとかそういう話ではなくて、 単に積み上げがあった方が成功がしやすい、という事実があるだけではなかろうか。

追記(2008/02/09 05:34:49 PST): 当然だけど成功ってスカラ量じゃなくていろんな方向が あるベクタだから、大学だって就職だってベンチャーだってそういう方向で積み上げてって その先に何があるか見たいって人がそうすればいいわけであって、別にそうしなかったから 人生失敗だなんてわけはない。 先への興味がないのに周囲に乗せられて積み上げちゃった人は、 それに気づいた時、虚しくなるかもしれないけれど、 まあ新しい方向を見出した時に積み上げた中から何かしら使えるものは取り出せるんじゃ なかろうか。結局成功だ失敗だっていう話自体、どっちに転んでも人生にとって何かしらの 役には立つもので、むしろそういう話を自分の行きたい方向にどうやって意識的に 「使って」ゆくかってのが重要なんだと思う (たとえば短期的な成功目標をゲーム的にクリアすることで積み上げる行為にメリハリを もたせるとか)。

(2008/02/08 03:39:07 PST 音韻構造の獲得)

らむ太に話しかけるときは日本語のみを使っている (混ぜると良くないらしい) のだが、 借りてきたビデオを見たり近所の子供に遊んでもらったりする時は英語も耳にしている。 ただ、それで両方を聞いた通りに覚えるかというとそうでもないようで、 どうやら日本語の音韻構造 (VもしくはCV) が先に頭に刷り込まれたようだ。 英単語を耳で拾う時でも、ぶっくぅ (book)、ぐっどぅ (good)、ばいくぅ (bike) のように必ず後に母音が入る (何故か必ず後にアクセントが来る。ふぁぃやー (fire) とか たぃやー (tire) とかも。)

まあ今年はいよいよプリスクールに入れるから、すぐ英語をピックアップしちゃうだろうけど。

3シラブル以上の単語はまだうまく言えない。

(2008/02/07 22:39:29 PST) Paul Grahamのlazy evaluation戦略)

先日Arcがリリースされたが、 これまでの言語の概念を吹き飛ばすようなすっごいものを 期待していた人々にとってはちょっと拍子抜けするような小さなものだった。 ASCIIしかサポートしないとか、ドキュメントもソースコードリポジトリも無いとか、 普通のソフトのちゃんとした「リリース」に比べればずいぶん原始的である。

ところがそれに不満を持ったユーザ達の手で、ほんの1週間ほどで Unicodeがサポートされリポジトリが立ち上がりドキュメントも整備されつつある。一種のlazyな戦略が効を奏してる わけだ。

要するに、「リリースするからには、きちんとしてなければならない」 っていうのはある意味杞憂にすぎないってことだ。

もちろんこれはターゲットオーディエンスに密接に関連してて、 エンドユーザに使ってもらいたいならインストールに手間をかけさせちゃだめだろうし、 便利な道具として使いたいのにいちいちソースを読まなくちゃ使い方がわからないんじゃ 使えねぇよっていうような層(私もその一部)へ向けるならリファレンスを整備しないと だめだが、何でも良いから使ってみたいという層向けなら不完全でも晒すことの方が 有効であるということが示されたわけだ。 (これは決してリリースにまつわる諸々の作業を低く見ているわけではない。 実際Gaucheだってできる限りの手間はかけてる。でも場合によっては そういう作業が必須のものであるとは限らないってことだ。)

まあこう書いちゃうと当然のことのようだけど、Paulはあれだけエッセイで Arcに対する期待を上げてたわけで、普通はステークが上がれば上がるほど 「ちゃんとしたものを出さなくちゃ」ってプレッシャーを感じるよなあ。 ただ、その「ちゃんとした」っていうのが何に対してなのか、はよく 考えないといけないね。

(2008/01/30 18:49:58 PST Arc)

Arc出た

ぱっと見、リッチな機能を備えてるわけでもないし、 いろんなものがハードコードされててあんまり遊びがいがなさそうだし、 関数名やマクロ名が暗号的でとっつきにくさはあるけど、 中身をみてみると作りにポリシーがあることがわかる。

よく、「Schemeはdefine, quote, if, lambda, set!の基本構文が あれば残りの構文はそれで書ける」と言うけれど、ほんとにそれを やっちゃった。コアで定義されている構文は quote, quasiquote, if, fn (lambdaに相当), set (defineとset!に相当)だけ。 あと50個ほどのプリミティブな関数が実装言語であるSchemeで 定義されてるけど、残りはArc自身で記述されている。

ただ、この方針がどこまでスケールするかは未知数だなあ。 Paulには"This is what JavaScript should have been." と 伝えたけど、ちょっとしたスクリプティングには充分便利だと 思う。ただ今のところ使うまでの手間が多いね。

チュートリアル以外にドキュメントが無いので、 Arc Cross Reference を作り始めてみた。

ところで現在のArcをどう見るべきかだけど、私の意見はHacker Newsにポスト したのでこっちにも載っけておく。

I think its more like going back to the initial spirit of Scheme and making it right: "Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary."

So, criticizing lack of features is meaningless to Arc. Valid criticism may be to find weaknesses and restrictions.

(2008/01/24 19:46:49 PST なんという良問)

住井さんのところから C入門第1回

課題1-A:シェルを実装せよ。

課題2-A:データを圧縮・解凍するプログラムを実装せよ。

課題3-A:スパムフィルタを実装せよ。

良問だと思う所以:

プログラム本を書く最大のポイントは、いかにして こういう良い例を見つけるかにかかってると思う。 Kernighan/Pikeの"The Unix Programming Environment" も例の選び方がうまいんだよなあ。

(2008/01/20 17:30:43 PST 元東大生による就職活動異論)

この人は至極正しいことを言っているのだけれど、 その前提が語られていないのが気になった。

東大生による就職活動論より:

自分のいままでの人生を振り返って、自分の人生目標・将来の夢を心の底から 設定できることは必須です。それは、どんなに辛くても、その実現のためには 如何なる苦労も厭わない覚悟があることを意味します。

1段目で心の底から設定した夢・目標から現在に至るまで、きちんとブレークダウンして、 語れなければなりません。夢の実現、なりたい将来像の実現のためには、 無数の方法があるはずです。その中で、なぜこの道なのか。論理立てて語れる必要があります。 要するに、自分の人生ちゃんと考えて行動してるのか、ってことです。

「大学時代○○成し遂げました」系は多いですし、誰にも真似できない 凄いことをやっている学生もたくさんいます。ただし、それって再現性あるの? まぐれじゃないの?社会に出て、この会社でその強みを発揮できる保障あるの? と聞かれたら答えられますか?

細心の注意を払って、努力すべきポイントです。あなたの話し方、言葉遣い、 ちょっとした動き、雰囲気など全てを総合的に判断されます。いかに企業が 求める人物像を読み取り、アピールし、一緒に仕事をしたいと思わせるか。 ここまできたら、自分のコミュニケーション能力をフル稼働し、 何が何でも説得するしかありません。

前提というのは、この話が就職のひとつの形態、すなわち、 「毎年決まった時期になると、特定の学年の学生と企業が会社説明会から 始まる一連の行事を経て、最終的に一部の学生が内定というゴールに至る」 というプロセスを対象にしている、というものだ (さらにその前提には、中学校から高校へ、高校から大学へ進む時に入試が あったように、学生から「社会人」になる時に就職という関門があるという 錯覚があるように思われる。 Cf.Hiring is Obsolete)

実際には就職へのパスは新卒就職活動だけではないし、 学生と社会人は排他的なものではない。 特定の形態の新卒就職活動が広まったのは、ひとえに効率が良いからだろう。 (職種が多様化し、かつ情報流通コストが下がった現代において 本当にそれが社会的コストを最小化しているかどうかには若干疑問があるが)。

元エントリは、この「新卒就職活動」というゲーム(そしてより広義には、 それを選択している特定の企業社会)において勝つために 最適化されたアドバイスだ。それ自体にケチをつけるつもりはない。 ただ、それが特定のゲームにすぎないことを読者が自覚していないと、 少々危険であり、またもったいなくもある。

もったいないの方から行こう。自分のやりたいことを知り、実現方法を選択し、 さらに相手に一緒に仕事をしたいと思わせる、これは就職活動に限らず、 人生のあらゆる面で何かを実現しようとする時に最終的に必要になることだ。 当然「新卒就職活動」という特定の場面でも役に立つのだが、 そのコンテキストに限定して語れるほど小さなテーマでもない。

なにしろ本当に自分のやりたいことを知り、とことん一緒に仕事をしていきたいと 思ってもらえる相手を見つけるのは、ものすごく難しいことなのだ。 一生かけて追い求め、人生の最後に振り返って一度でもそれができてたら ラッキー、というくらいの。 たまたま自分の特性を早期にピンポイントで発見できたごく少数の人間以外にとって、 たかだか20年ばかりの経験と頭で考えるような「本当にやりたいこと」など たかが知れている。

人生は、その気になれば尽きせぬ発見の泉だ。「本当にやりたいと思ってること」を やっているうちに思わず新しい鉱脈を発見して、それまで思っていた「やりたいこと」は 単なる通過点にすぎなかったのだと気づく。少なくとも私にとってはそれが人生の楽しみだ。 だからあまり早期に「将来の夢」を設定して細かくブレークダウンすることにより、 逆に自分の将来を固定してしまうのは、ひどくもったいないことだと感じる (Cf. What You'll Wish You'd Known)。

(人生における発見を重視するなら、「就職のために自己分析をしましょう」 というのは話が逆なのだ。やりたいことをやってゆくうちに、自分が何者かということは 自ずと明らかになってゆくものだし、それでも自分という地層は厚く積み重なっており やればやるだけ新たな自分を発見できる。自分が何者かを問われるようなことを やってこなかったのに、頭で考えて自己分析が出来るというのは滑稽だし、 その程度のことで人生を決めてしまうのももったいない。 自分が何者かを知りたければ、自分が何者かを考えざるを得なくなるような ことをやることだ。今までそれをやってこなかったのなら、自己分析なんての に時間を無駄にせず、今すぐ始めることだ。)

そして無自覚にゲームに乗ることの危険は、そこでの勝負が全てのように思ってしまう ことだ。同エントリーより:

私は「就職活動を成功させられない人が、人生成功できる訳がない」と思っています。 一度目標を設定したら、(まして就職活動くらい)成し遂げるのが当然なのです。

「そういう人生」を選択した人にとっては。だが別の人生もある。

私は年にほんの数回だが、役者としてオーディションに臨んでいる。 オーディションはいわば就職活動の凝縮版だ。そこから色々学ぶことができる。 重要な教訓のひとつは、広い意味での就職活動というのは 入学試験のように一度越えれば別の世界に行けるという関門ではなく、 むしろ仕事を続ける限り継続する日常の一部であるということだ。

新卒就職活動のようなルーチン的な就職活動というのはその一例にすぎず、 必ず通らなければならないものでもない。そもそも世の中というのはそんなに 厳密にはできていない。就職なんてもともと、手が足りてないところがあって、 その手を提供できる人がいて、じゃあよろしくねっていうようなものであって、 それを人生の試練に仕立てあげる必要は無いんである。

努力が不要というわけではない。 チャンスは気まぐれにやってきて、それを左右することはできない。 掴む準備ができている人だけがそれを掴むことができる。 従って、日頃から基本的な準備を怠らず、かつ毎回の挑戦に万全を期して臨むこと、 それを努力と呼ぶなら努力は必要だろう。 (実際には、準備ができていない人はチャンスを認識することができない、ということの方が ありそうだが。) しかし「新卒就職活動」にむけてよっこらしょと腰を上げて あたかもそれが人生の勝敗を決するイベントであるかのように悲壮な決意を持って臨むことは、 あまり良い戦略ではない。

広い意味ではあらゆる日常の決断は人生を左右する。ただ、ひとつの挑戦にあまりに とらわれてしまうと、力が入りすぎてかえってうまくいかないし、 失敗した時のダメージも大きい。 これもオーディション、そして演技一般から学んだことだが、二重の態度が有効なようだ。 つまり、一面では成功するためにその時持てる全てのリソースをつぎ込むのだが、 同時にこれもまた繰り返す日常の一部にすぎないというリラックスした姿勢で臨むのだ。 失敗もまた、長い人生の一部である。一つの分岐点で成功するか失敗するかは 確かに人生を左右するが、失敗の先にも人生は続いているし、失敗からしか 学べないこともある。右と左のどちらが良かったかなんて結局わからないものだ。

学生は就職して社会人になるのではない。誰かの役に立つことをできるようになれば、 既にその人は社会の一員だ。就職は「誰かの役に立つことをする」ひとつの 効率の良い手段にすぎない。ただ、その状況に特有のルールと普遍的なルールの 区別を自覚していないと、流されるままに自分の行き先を見失うおそれがあるだろう。 ゲームに乗っていることを自覚せずに勝つとか負けるとか言っているのは、 流されている証拠なので注意が必要だ。

(2008/01/16 03:34:35 PST)

おー、gauche.nightの情報出た。 ところで「R6RSを斬る」って誰が斬るのかな?

Emergency Alert Broadcast用の日本語アナウンスの収録のため髭を剃った。 らむ太は髭が突然消えたことがよっぽど不思議だったらしく、 何度も私の顔をさわさわして、「ひげ、ないな〜い」と繰り返していた。

(収録したアナウンスは、津波、台風、地震などの非常時に ワイキキのホテルのTV放送に割り込んで流されるもの。 もともとハワイ全域で、非常時にTVとラジオに割り込むシステムは あるのだけれど、ワイキキは日本人観光客が多いということで 特別に日本語版を作ることになったらしい。 もしワイキキ滞在中に非常事態が発生したらアナウンス に従って落ち着いて行動してくださいな。)

(2008/01/12 01:24:46 PST Chief)

来週から始まるSundance Film Festivalの 短篇映画部門で、ハワイ在住のBrett Wagner監督の 『Chief』が上映される。 今日試写会に行ってきたのだが、 20分とは思えない密度で完成度も高い。 (脚本を読んだ時は1時間くらいの印象を受けたほど。 実際、ラッシュで35分あったのを削って削って20分にしたそうだ。) もし期間中ユタに居る方がいればぜひどうぞ。 私も「タクシーの乗客」役で3秒くらい映ってる。

(追記2008/01/14 03:33:55 PST: 地元紙に非常に読み応えのある記事が出てた。)

(追記2008/01/19 21:25:21 PST: 地元のTV局のニュース)

(2008/01/11 02:34:07 PST テスト)

ひがやすを blogより:

実は、テストを書くのは結構工数かかるんですよ。スクリプト言語は、 コンパイラがミスを教えてくれることはないので、Javaと比べると、 より多くのテストを書く必要があります。でも、そんな話ほとんど聞いたことないですよね。

気持ち的には平均して実装:テストは1:1くらいだと思っている。 平均だから、場合によってはテストの方が工数がかかることももちろんある。 あとドキュメントが気持ち的に0.5くらい。 だから、実装がひととおり済んだというのは 道程にして40%にすぎない。もっともやっと動いたところでまだ4合目というのでは 士気が保てないので、ドキュメントもテストも平行してやるようにしてるけど。

なぜ実装の方が楽なことがあるかというと、実装ってよく考えないでも とりあえず動くものは出来ちゃうことがあるんだよね。でもテストは ちゃんと隅から隅まで考えないと作れない。

特に、何年も潜んでいてある特殊な条件が重なった場合にようやく露見するような バグは、滅多に通らないパスの、それもそのパスを通るかどうかの境界条件まわり に居ることが多いと思う。そんな面倒なところをちゃんと詰めて考えないでも、 ほとんどの場合に動くものは作れる。もう少し真面目にコードパスのカバレッジを 100%にしようと思うなら、多少試行錯誤すれば滅多に通らないパスを 通るようなテストデータを用意することもできる。

でも、そのパスに入るか入らないかのクリティカルな判断がされるところを テストしようとしたら、どういう条件でパスのスイッチが起きるのかを定量的に 把握してないとならない。

型の整合性がちゃんとチェックされる言語、MLやHaskellなどで時々 「コンパイルが通ればほとんどバグはない」みたいに言われることがあるけど、 これらの言語の型システムも上で言ったような境界条件回りの整合性を検出できる ほどには強力ではないはずだ(ちゃんとやろうと思ったら依存型が要るのでは)。 「コンパイルが通れば〜」と言えるのは、 こういう言語で書いている人は実装段階から「ちゃんと考える」ことを ある程度システムに強要されるためではないか、という気がする。

(ところでテストファーストというのは基本的には良いことだと思うのだけれど、 上記のとおりちゃんとしたテストというのは実装で使った具体的なアルゴリズムや パラメータにべたべたに依存するので、特に性能評価などでいくつものアルゴリズムや パラメータを試した場合などは採用したものを基にして改めて境界条件を つっつくテストを書く必要があると思う。みたいなことはちゃんとしたTDDのドキュメントには 書いてあったりするのかしらん。)

(2008/01/10 01:39:32 PST Pythonでモナド)

Monads in Python (with nice syntax!):

デコレータとジェネレータを使ってる。 Scheme:ExplicitMonadで考えたように、 動的型言語でモナドを書く場合の困難はreturnを多相にするところ (具体的にどのreturnを使えば良いかが、引数でなく呼び出し側が期待している 返り値の型に依存すること)だ。 このアイディアではモナドのreturnで例外を投げて、 デコレータ中で例外を捕捉してその時点でアクティブなモナドの unitメソッドを起動するというふうにしている。 実行時に有効なモナドをトラックするという原理はScheme:ExplicitMonadと同じだ。

しかしモナド演算に入る度にtryブロックを作って、returnの度に例外を 投げるんで性能は大丈夫なんだろうか。Pythonだと例外処理と捕捉は 軽いのかなあ。

(2008/01/09 04:13:18 PST 駒小)

東大で学んだ卒業論文の書き方という 文章を読んでいた。いろいろな分野から引いてきた余談がまた楽しいのだが、 突然懐かしい話が登場した。

今思い出したが、東大には駒場小劇場というハコがあった。この劇場は駒場寮の中にあり、東大最強と言われた寮委員会が支配していた。外部からの統制は不可能であった。
 寮委員会は、寮の美観や耐久性をすでに見切っていて、壊れる前に使い倒そうという方針があったように見えた。舞台に水を張って芝居をするなど、普通の劇場では絶対に無理なことが出来たらしい。
 駒場にはアゴラ劇場があるし、下北沢や渋谷へは歩いていけるが、こういうハコは外には無い。

水を張ったのはTaBreという劇団だ。 この伝説の舞台は私が入る前(2〜3年前だったかな?)なので観てはいないが、 私が観た中でももっと他の劇場では絶対に出来ないだろうということをやってた。 ちょっと縁があって手伝ったり出させてもらったりしたことがある。

駒場小劇場が無くなって、今は学内の劇団は駒場小空間という小屋で公演を 打っているようだけれど、小劇場のころほど無茶はできないらしい。 もっとも、今も小劇場があったとして、同じような無茶を現役生に勧めたい かというと微妙な気もする。無茶というのは「止むに止まれずやってしまう」もので あって、その効用は認めるけれど積極的に奨励するようなものでもない。 というより、無茶というのは上の世代が想定した範囲を越えてゆくから 無茶なのであって、「わしも若いころはよくやったもんだよ」と年寄りが 言うようなことをなぞっても仕方がないのだ。今の世代は今の世代の無茶を やってることだろう。それが何だかは知らないけれど。

(2008/01/07 02:15:11 PST すっきり)

1年以上前に実験してそれなりの結果が出ていたネタを、色々な忙しさに かまけてちゃんとまとめる機会を逸していた。というか2度ばかり投稿 しようとして途中で挫折してたんだけど。 3月にPPL2008に呼ばれたので、 せっかく行くのなら論文発表もトライしてみようってことで改めてコードを改善し、 データを取り直して論文にしてみた。 まあ通るかどうかはわからないけど、一度完成させるってのはやっぱり気分が すっきりする。そう、ちょうと便秘に悩んだ後で宿便が出るとこんな感じなんでは なかろうか。あまり便秘にならないので想像だけれど。アウトプットしないっていうのは 知的な便秘という感じがする。

なお招待講演の方は技術的な話じゃなくて、好きなマイナー言語を書いて 飯を喰ってゆくにはどうすればいいか、みたいなことを喋るつもり。 本人が明日をも知れぬ生活をしてるので、ソリューションを示すんじゃなくて むしろ教えてほしいくらいだけど、ここから面白いつながりができたら いいなと思ってる。

ところで昨年頭に今年こそはこのメモ書きをWiLiKiベースのblogにしようと 考えたわけだがたちまち1年経ってしまった。時々ネットで言及されることがあるけど permalinkが貼れないので不便をおかけしている。もうちょっと待ってくださいな。

More ...