日記

SWFを勉強しよう

そろそろSceme-abc - みずぴー日記で、Flashを作りたい。そのためにはswfファイルの仕様について知らないといけないので勉強しようと思う。 以下、参考リンク。 SWF File Format Specification - 仕様書。とりあえず印刷したので、ファイル構造に関するとこ…

OSC nagoyaの発表時間が決まったらしい

オープンソースカンファレンス2008 Nagoya - ハックの日(8/9)は、名古屋へ 行こみゃぁ!OSC nagoyaでid:yoshihiro503さんの発表する日程が決まったらしいです。 2008-08-09 (土) OCamlでらくらく関数型プログラミング 講師:今井 宜洋(ocaml-nagoya) …

irssiいいじゃん

TwitterもMSNもIRCにまとめちゃう - みずぴー日記でがんばって、TwitterをMSNもIRCで使えるようにした。で、コンソールで使えるIRCクライアントのirssiがいい感じ。Emacsのバッファみたいな感じのウインドウというものがある。複数のチャンネルをCtrl-p、Ctr…

UbunutuのCDを作った

画像: DIYMarketing - Ubuntu Wikiこの前、HP 2133に入れるためにUbuntuをCD-Rに焼いた。これに、汚ない字で「Ubunutu 8.04」とか書くのは嫌だったので、ちゃんとしたラベルを印刷してみた。ついでに、だいぶ前に焼いた7.04のほうもラベルを印刷しておいた。

polipo入れてみた

w3mユーザ必携らしいのでpolipoを入れてみた。 $ sudo port install polipoで入れたあと、w3mのプロクシにhttp://localhost:8123を設定した。あと、起動時に自動で立ち上がるようにlaunchdに組み込んでおく。 /Library/LaunchDaemons/polipo.plistに

ByteCodeDisassemblerを作ってます

http://www.libspark.org/browser/air/ByteCodeDisassemblerscheme-abcをswfを吐けるようにしたい。というわけで、as3/ByteCodeDisassemblerをAIRに移植しつつ勉強してます。とりあえず、SWFの仕様書は印刷してみました。

入門Cocoa

入門Cocoa作者: Inc. AppleComputer,長瀬嘉秀,テクノロジックアート出版社/メーカー: オライリー・ジャパン発売日: 2002/03メディア: 単行本 クリック: 13回この商品を含むブログ (9件) を見る入門Cocoaが読み終わった。やっぱ技術書は、こういう網羅的なや…

HP2133 mini-note買ったよ

b:id:dmp939に名古屋 - マル得速報!-にHP2133が載ってるよ、と言われたので行ってきた。まさか本当に買えるとは。とりあえずデフォルトのWindowsを試してみたけれどやっぱり無理なので、さっさとUbuntuを入れよう。LaptopTestingTeam/HP2133 - Ubuntu Wiki…

Coocaいいよ、Cocoa

入門Cocoa作者: Inc. AppleComputer,長瀬嘉秀,テクノロジックアート出版社/メーカー: オライリー・ジャパン発売日: 2002/03メディア: 単行本 クリック: 13回この商品を含むブログ (9件) を見る最近、入門Cooca(asin:4873110769)を読んでる。 VC++は、イベン…

多相Setが欲しい

標準のSetモジュールは型が固定されてしまうので、使いづらい。 多相なSetは無いのかなぁ、と探してみたらJane Street CapitalのCoreライブラリには含まれていた。さすがだ。 多相Setだけのために使うにはちょっと大きすぎるかなぁ、と迷い中。GODIにも「god…

SparkProjectのコミッタになりました。

Spark Projectの人たちがとても楽しそうなので、仲間にいれてもらいました。でも、コミットするまでは兄弟と認めてもらえないらしいので、早めにコミットしようと思います。 とりあえずByteCodeDisassemblerをAIRアプリにしようと考えてます。

Problem51、難しい

昨日のid:mzp:20080624:eulerをもにょもにょいじくってたけれど、どうも解けない。 明日は、ちょっと方針を変えてトライしてみよう。

Leopard買った

XCode 3.0が使いたかったので、Leopard買ってきた。OPムービーがあるOSってそんなにないんじゃないだろうか。

浮動少数サポート

http://github.com/mzp/scheme-abc/commit/3cf6fa7c5c3719ebce25bdebcc17d21d1bed76c8 id:llaさんとid:MaDさんのおかげで浮動小数が使えるようになった。 (print (+. 1.0 2.2)) 浮動小数演算は、OCaml風に+.や*.にしてみた。Gauche風とも言える。

再帰サポート

http://github.com/mzp/scheme-abc/commit/520b7e7a3f4ebe086a5aaedfb0b51627333b1909再帰が使えるようになったぜいっ!letrecでもdefineでも使えるようになってます。 (letrec ([fact (lambda (n) (if (<= n 1) 1 (* n (fact (- n 1)))))]) (print (fact 10)…

no warnings 'recursion';

404 Blog Not Found:perl - use warnings; # -w でなくてのはてブコメントに何気なく use warningsで再帰を書くと、毎回警告されるのがうざい。 と書いたら、dankogaiとid:fbisさん(id:fbis:20080620)から凄い勢いで「no warnings 'recursion';使え」とツコ…

ユニットテストの結果出力を改善

http://github.com/mzp/scheme-abc/commit/cabe7a3139fbab0bb5b885e466f127a8f96d0538再帰を実装するまえに、細かい部分の手直しを。ユニットテストの出力がものすごく見づらいので、ちゃんと読めるようにした。昔の。 OUnit: expected: ("", 0, 0, 0, [15; …

hparserがforkされたー

昔、書いたはてな記法パーサが、id:secondlifeさんによってforkされました(g:subtech:id:secondlife:20080618)。ありがとうございます。http://github.com/hotchpotch/hparser/tree/masterたしかこれを書いた動機は、当時のはてな記法にはなかったシンタック…

スーパー牛さんパワー

$ apt-get .... This APT has Super Cow Powers. $ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"...$ aptitude help ... この aptitude にはスーパー牛さんパワーなどはありません。 $ aptitude moo このプログラム…

ObjectiveCはLLっぽい

詳解 Objective-C 2.0作者: 荻原剛志出版社/メーカー: ソフトバンククリエイティブ発売日: 2008/05/28メディア: 大型本購入: 52人 クリック: 603回この商品を含むブログ (146件) を見る最近、詳解 Objective-C 2.0を読んでる。id:banjunにいつまでも負けてら…

クロージャ対応

やっとクロージャが使えるようになった。 (define (k x) (lambda (y) x)) (print ((k 10) 20)) 大変だったけれど、できてしまえばたいしたことない。 実現するにあたって、レキシカルスコープの実現方法を変更した。 レキシカルスコープの実現 いままでは、P…

クロージャむずい

クロージャ、難しすぎる。 スコープには間違いなく値が格納されているはずなのに、findpropertyで探せない。なぜだ・・・。

Excelいいじゃないか

今日は一日中、仕事でExcelを触ってた。Excelを表計算ソフトとして使ったのは、初めてかもしれない。 関数も豊富だし、コードアシストもなかなか便利。 結構いいじゃないか。

abcdumpで無名関数がダンプされない

クロージャの実装方法を探るために、いろんなABCをダンプしていて気がついたのだけれども、tamarin付属のabcdumpで一部のメソッドがダンプされないことがある。 function f(){ return function(){ // ダンプされない return 42;} } 直感的には関数内部で定義…

リファクタリング

http://github.com/mzp/scheme-abc/commit/fc33594ecfb5d4df926e88ffb9b41cf0f9b763d4AST上で(+ 1 2)のような加算と(print "hello")のような関数適用を区別する必要はない、というあたりまえのことに気がついた。なので、コードがちょっとだけ短かくなった。…

総合テストを追加

今まで、新機能を追加するたびに、簡単なプログラムを書いて、ちゃんと実行できるか確かめてきた。 せっかく機能をテストするためのプログラムがたくさんあるんだから、自動で実行して、結果が変化してないか確認するようにした。実行するスクリプトと、それ…

defineサポート

defineが使えるようになったぜい。 $ cat example/define.scm (define x 42) (define (inc x) (+ x 1)) (print (inc x)) $ ocamlbuild main.byte -- example/define.scm Finished, 47 targets (47 cached) in 00:00:01. $ avmplus a.abc 43 でも、internal d…

引数と返り値サポート

http://github.com/mzp/scheme-abc/commit/ee63e8f23b70c61ab5e0e9f5fbccd5dfc57b2b61 yn$ cat example/lambda.scm (let ((add (lambda (x y) (+ x y)))) (print (add 2 3))) $ ocamlbuild main.byte -- example/lambda.scm Finished, 53 targets (53 cached…

無名関数サポート

http://github.com/mzp/scheme-abc/commit/9e468c756dda1a20290686743f77408f187432b1とうとう関数が使えるようになった。 $ cat example/lambda.scm (let ((f (lambda () (print 42)))) (f)) $ ocamlbuild main.byte -- example/lambda.scm Finished, 53 ta…

TwitterにGitHubのコミットログ

http://twitter.com/scheme_abcTwitterにGitHubのコミットログを出すようにしました。