コード書き
粛々とtodoを作っては投げ、作っては投げ。
Ian(Ianというのは、もちろんわれらが天才Ian Piumarta、ハンサムボーイIan Piumarta、料理も上手なIan Piumartaのことだ)がhttp://www.piumarta.com/photos/olpcに写真をおいたところ、世界各地からアクセスがあったわけである。ログの解析結果を見ると、このサイトからの訪問がかなり多かったことがわかったようで、Ianはいったいどんなことを書いているのだろうかとbabelfish経由で見て、その結果を俺の前で声を出して読んでいじめていた。しょうがないので、仕返しとしてこんなことを書いているわけだ。
OLPCのディスプレイの写真
二日前に載せたOLPCの新型ディスプレイの写真は、開発チームのIRCや他のblogを経由して一気に世界に広まったようである。
http://www.engadget.com/2006/09/12/olpc-dual-mode-display-gets-for-reals/や
http://japanese.engadget.com/2006/09/12/olpc-2b1-dualmode-display/や
http://diegogomezdeck.blogspot.com/2006/09/fotos-de-squeak-corriendo-en-la.htmlや
http://www.zive.sk/h/Spravy/AR.asp?ARI=119185&CAI=2105や
http://journals.tuxreports.com/lch/archives/003847.htmlや
http://croquetweak.blogspot.com/2006/09/squeak-for-every-child.html
がメジャーどころのようですね。
最後のやつは写真にも写っているBertが書いているので安心できるのですが、あちこちに流布している「カラーモードは800x600」という情報は必ずしも正確ではなくて。DCONと呼ばれているチップがハードウェアでアンチエイリアシング(というかサブピクセルレンダリング風の処理)をして、論理的には最高1200x900のカラー画面をかなりの再現度で表示することができます。下から二番目のblogには「Scratchの画面だ」、と書いてありますが、もちろん生Squeakです。最初のやつには「22.2 frames/secはそれほど悪くない」と書かれていますが、これは車などを走らせているSqueakがソフトウェアで計算しているフレームレートであって、ディスプレイのハードウェア性能そのものとは無関係です。まあうわさレベルではありますが、プロジェクトが進展しているのだ、ということが広まるのは良いことではあります。
Squeak in OLPC Display
今日からCambridgeのOLPCオフィスで仕事。Mary Louのデザインした新しいボードはまだ世界に15枚位しかなくて、OLPCのオフィスには2枚しかないのだが、そのうちの一台が繋がったボードにSqueakを載せてどのように見えるかを実験。
1200x900のディスプレイで、カラーモードにしても結構まともに見えるのに驚き。ディスプレイは新しいもので、「安く作る」という目標の中で新しいディスプレイをデザインする、というのがなかなか野心的だったのだが、低消費電力で安くてちゃんと見えるものが出てきたのはなかなかすごい。
他の写真もhttp://www.piumarta.com/photos/olpc/にあります。
Jolt
「Ianのやつ」と呼ばれているものの一部、というか途中形態であるJoltがMac以外でも使えるようになってきた。せっかくなので速度比較ということでid:sumimさんのhttp://d.hatena.ne.jp/sumim/20060220を測ってみました。
Ackの方は、Sqeuakのメソッド版が132msに対して61msくらい、Taraiの方は、Squeakのメソッド版が2350msに対して240msくらいでした(Joltの結果は、cygwinのtimeコマンドでコマンドラインから測りました)。Joltは起動時のオーバーヘッドがある程度あるので、Ackの方は実際の実行時間が短すぎるのでしょうね。(空のファイルを食わせても45msくらいかかりますし。)ただ、Taraiを見ると、Squeakよりも約10倍速いと言えるような速度になっています。
まあこれからの進歩にも期待しましょう。
PythonやRubyやJavaScriptも同じシステムに落とせるようにすることを狙っているので、それらの言語もこのくらいの速度で動くようになるはずです。
ついでに、関数呼び出し依存ではなくてループ依存のミニプログラムのテストもしてみました。
(define z 100)
(define y 1)
(while (> z 0)
(define x 1000000)
(while (> x 0) (set x (- x 1)) (set y (+ y 1)))
(set z (- z 1)))
((_dlsym _RTLD_DEFAULT "printf") "%d" y)というコードだと、ざっと725msくらいですね(これがJoltとCokeのコードです)。-Oを付けないCと大体似たようなスピードでしょうか。
Jolt同様に対話的な言語で似たような性能を示す処理系はあまたありますが、本当に言語の中の中まで変えられる(ことを目指している)処理系として、Ianのやつは興味深いものがあります。