2008-04-02
■ [tetris] (C)SHIRASEの足きりをぎりぎりで通過するムービー
というのを撮りました。emaさん、土居チャレンジャーの店員さんに感謝感謝。
自分のプレイを客観的に見るのは初めてなのですが、遅いですね(笑)。 トッププレイヤーの方の動画と比べると、 本当に下入れしてんのかと思うくらい。
これからは気合を入れて下入れしたいと思いますが…はたして島根県内にTi の基盤が存在するのか…。orz
■ [biwascheme] BiwaScheme 0.5 (CometとかTupleSpaceとか) を公開しました
どうも今月中は家でネットできなさそうな雰囲気なので、適当ですが現在のtrunkをパッケージングしました。
0.5には、秘蔵のCometによるブラウザ間通信機能のデモが含まれています。 簡単に言うと
- ブラウザAで (alert (ts-read '(1 _ _)) を実行
- ブラウザBで (ts-write '(1 2 3)) を実行
- その瞬間、ブラウザAで「(1 2 3)」が表示される
のようなことが出来ます。
動かしかた
スレッド機能を有効にしたGaucheが必要です。goshで(use gauche.threads)と入力してエラーが出なければOK。
あとは
$ cd tuplespace $ gosh chat_server.scm 8888
でサーバを起動して、http://localhost:8888/tuplespace/chat.html にアクセスするとチャット画面が出る。はずです。 または http://localhost:8888/index.html でREPLが開くのでいろいろ遊んでみてください。
API
- (ts-write データ)
- Schemeのオブジェクトを一つタプル空間に書き込みます。
- (ts-read パターン)
- パターンに当てはまるタプルを探します。無ければ見つかるまで待ちます。パターンにはgaucheのutil.matchの書式がそのまま使えます。
例:
(ts-read '(1 2 _)) ; (1 2 3), (1 2 "foo"), (1 2 (3 4)) などにマッチ (ts-read '(1 (? (lambda (x) (and (number? x) (> x 3)))))) ; (1 4), (1 5), (1 6) などにマッチ
- (ts-take パターン)
- ts-readと同じですが見つかったタプルをタプル空間から取り除きます。
- (ts-readp パターン)
- ts-readと同じですが見つからなかったら待たずに#fを返します。
- (ts-takep パターン)
- ts-takeと同じですが見つからなかったら待たずに#fを返します。