Island Life

2006/10/31

Exitting

Y CombinatorのFounder Program 一期生、 Reddit卒業したようだ (via ogijunさんとこ)。 Y Combinator発のスタートアップとして最初のexitじゃないかな。

これで世界はまた一歩、Paul Grahamの野望の実現に近づいた。 Paulの野望、それはNerdによる世界征服である。 Y Combinator傘下には、Redditらと同様の技術と情熱を持ったNerd軍団が 大量に控えている。Pointy Haired Bossの没落は既に始まっているのだ。

Tag: YCombinator

2006/10/29

"Sunday Wind"関係

"Sunday Wind" がHawaii International Film Festivalで 若手監督に送られるcause & f(x) DREAM DIGITAL AWARDを受賞したそうだ (Starbulletinの記事HIFFオフィシャル)。 Mike、Shawn、おめでとう。 おかげでもう一回、10/29の6:15から上映されるらしい。ってもう今日じゃん。

なお、同時上映の "Na Kamalei: Men of Hula" はRobert Cazimero率いる 男のフラのチームを追ったドキュメンタリーで、かなりおもしろかった。これも HAWAII FILM AND VIDEOMAKER AWARDを受賞して、再び"Sunday Wind"と同時上映される。 前回見逃した人はぜひ。

もひとつ、これは映画祭前のだが、"Sunday Wind"の撮影後に亡くなったRay Bumatai氏に 触れた Honolulu Advertiserの記事。

(追記: ちゃんとポスターとか作ってたらしい。一枚記念にもらった。)

[image]

Tag: 芝居

2006/10/28

高林さん等による低レベル技術指南、 Binary Hacksが11/4に発売になるそうだ。私も序文を書かせてもらっている。

中身は、コンパイラやら機械に近いところをいじってきた人ならわりと知っている話だと思う。 ただ、その手の話ってみんな経験から学んでいる感じで、 まとまって明文化されることが少ないために、 新しい人が興味を持った時に どこから手を付けたらいいのかわかりにくかったのではないだろうか。 そういう場合に役に立つ一冊だと思う。

[image]

Tags: , Publication

2006/10/26

最近、"obsolute" という(多分obsoleteの)誤綴を相次いで見かけた。 absoluteと混同されたのか? (アクセントのあるシラブルだから発音から違ってくるはずだが… 発音も[-lu:t]になってるのかな?)

Tag: 英語

2006/10/26

少し前のIEEE Computer誌にNASAの人が、安全なコードを 書くための10の規則、みたいな記事を書いていたのだけれど、それが普段我々の ようなどっちかというと関数型言語よりのプログラマが考えていることと かなり隔たりがあって興味深かった。以下、主観的要約。 (深く知りたい人は原文をあたってほしい: Gerard J. Holzmann, "The Power of 10: Rules for Developing Safety-Critical Code, Computer 39(6) pp.95--97, June 2006.)

  1. 制御フローはシンプルに。gotoやsetjmp/longjmpはもちろん、再帰も禁止。
  2. ループを回す回数の上限は静的に決まらないとだめ。
  3. mallocは初期化時以外使用禁止。
  4. 印刷した時1ページ以上になる関数は書いちゃだめ。
  5. 関数のprecondition, postconditionを検査するためのassertionを活用せよ。 関数あたり平均で2個以上。
  6. データの宣言される範囲はなるべく小さく。
  7. void以外の関数の戻り値は必ず検査せよ。各関数は引数の妥当性を必ず検査せよ。
  8. プリプロセッサ(ここではcpp)の使用はファイルのincludeと簡単なマクロに留めよ。 ネストするマクロ展開禁止。トークンの合成禁止。
  9. 2レベル以上のポインタの間接参照禁止。typedefでポインタをそうじゃなく見せかけるの 禁止。関数ポインタ禁止。
  10. 開発初日から常に、コンパイラの警告レベルを最高にしても警告が出ないようなコードを書け。

1, 2, 3あたりはええええって感じだし、8, 9あたり禁止されると 私なんかはプログラムが書けなくなりそうな気がするんだけど、 これも経験に裏打ちされた話なのだから、こういうのが要求される 世界があるってことでしょう。宇宙とか。

ちなみに1, 2, 3, 9あたりは静的検証ツールを使うことを前提にしていて、 静的検証ツールが追いきれないコードは書くなって意図のようだ。

ところで興味があるのは、コンパイルが通ればバグはまず無い、と豪語するような 強い静的型言語ならこういう条件を言語側でサポートできるかってこと。 少なくとも1, 2, 3あたりは静的に処理量の上限が決まって欲しいってことだから MLやHaskellの型システムだけじゃ検証できないよね。依存型ならできるのかな。

昔、comp.lang.lispあたりで静的型vs動的型のflame合戦が起きた時に、 某毒舌Lisperが、「俺は静的型でバグが潰せるというのはまやかしの安心だと 思っているが、静的検証ツールでバグが潰せるというのは信じている。 マルチタスクのタイミング絡みの非常に微妙なバグを、静的検証ツールで 見つけたことがあるからだ。あれは人間が見つけるのは不可能だ」みたいな 発言をしていた気がする。そう、時間が絡む話も普通の静的型言語は まだ扱わないよね。扱えるのかな。

Tag: Programming

More entries ...