言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

2008-02-01から1ヶ月間の記事一覧

エディタを作る2

Fonc 用エディタの動機をさらに書く。Fonc の為にダンアメランが描画周りをやって、大島さんがフレームワークを作ると言ってるけど、そう言うのを待つの嫌だし、エディタって意外と他の部分と非依存に作れるのでは?と思った。emacs なんかターミナルでも X …

空間末尾最適化 spacial tail optimization: 関数型言語とスタック言語とシミュレーションの話

関数型言語で etoys を作りたい!と思ってからもう長い年月がたち、これで私もワナビだなあと思う毎日ですが、忘れないようにたまには書きます。多分関数型言語でシミュレーションやゲームを書くのが無理じゃない?と思われている理由の一つに、状態の変化を…

Squeak FreeType Plugin を使う。

Squeak 3.9 で使う FreeType Plugin を使うと、OS が持っているフォントをそのままスクイークでも使う事が出来ます。ftp://swikis.ddo.jp/SqueakDevJa/images/Squeak3.9-final-7067J.zip をダウンロードして解凍 開く - SqueakMap Package Loader FreeType P…

エディタを作る。

Fonc (coke & pepsi) を使ってテキストエディタを作っている。新しい言語を覚えるのに一番の近道は、ツールを作る事だと思っていて、Fonc を Smalltalk みたいに使いこなせるように Workspace を作るのが最初の目的だ。一応 print it が出来るくらいにはなっ…

タイルスクリプト・プレゼンテーション記録

http://uptv.univ-poitiers.fr/web/canal/61/theme/54/manif/168/video/1490/index.htmlC5 で発表したタイルスクリプトのビデオが公開されました。苦労した割には客が少なかったのでここにリンクを貼ります。最初長々と解説が続くので、20 分目くらいからの…

紙コップで入力デバイスを作ろう!

材料 紙コップ マイク端子(壊れたマイクのコードをちぎって使うか、パーツ屋で先だけ買う)。 エナメル線 磁石 輪ゴム 丸い筒。(資料にあったフィルムケースが無かったので、食卓塩を使いました。スティック糊なんかも良いかも。) サンドペーパー あと、セロ…

Ruby + Linda = Rinda http://www.druby.org/ilikeruby/d208.html

Linda について話題に出たが、論文を読むだけじゃさっぱり分からないので、Ruby の実装を試してみた。Ruby に最初から入ってるみたいで試すのはめっちゃ簡単だった。まずサーバー。個人サーバーの languagegame.org を使って実験した(豆知識: fedora では ir…

MinGW と SDL_mixer

音声をビット単位で細かく制御できる所が SDL を裸で使う利点なんだけど、ちょっとしたデモには面倒なので、手抜きをして SDL_mixer を使う事にした。 ダウンロードとコンパイル ホームページ wget http://www.libsdl.org/projects/SDL_mixer/ からソースを…

SDL でピコピコサウンドを作ろう!

今更ですが、C 言語って良いですね。バイト列を直接触って絵を描いたり音を出したりすると、まさにタンジブル(笑)な感じがします。今日はファミコンサウンドにチャレンジです。サウンドというと、ややこしい OS とのやり取りが大変ですが、SDL を使うとその…

MinGW と一緒に SDL

わざわざ cairo の事を書いたのは SDL を試したいがためでした。だって SDL って単体じゃ文字さえ表示出来なくて面白みが無いから。 環境作成 素直にソースからコンパイルします。 wget http://www.libsdl.org/release/SDL-1.2.13.tar.gz cd SDL-1.2.13 ./co…

MinGW で cairo

Gtk の事を書いたのは cairo を使いたいがためでした。Windows で cairo の開発環境を作る一番簡単そうな方法が Gtk+/Win32 Development Environment に付いてくるやつを使う事らしい。では実験。FAQ にあるサンプルどおり hello.c を用意します。 #include <cairo.h></cairo.h>…

MinGW + Gtk プログラミング。コンパイルの仕方。

pkg-config はソースの後に書かなくてはいけない!!! # コンパイルの例 gcc -o hello hello.c -mwindows `pkg-config --cflags --libs gtk+-2.0` MinGW と Gtk を使うと、Windows でも Linux でも動く GUI プログラムを作れます。しかし、私の環境だけかも…

近況

今日は私が始めて就職した会社の社長に呼ばれて仕事を手伝う事になり、久しぶりに新大阪にある事務所のコーヒーを入れたという夢を見た。そして新商売を思いつき、昔新聞配達のバイトをした川西二丁目で客引きをするのであった。えーと、やばい話が含まれて…

Squeak のフォントについて

私がアホすぎて Squeak のフォントは難くて分からなくて忘れるのでメモ。 文字とは何か? Squeak では文字列と文字は厳密に区別されている。文字は 'もじれつ' だけど、文字は $も のようにプログラムの中で書く。それぞれの文字ごとに、コンピュータの中で…

Star Trek Tour

別にそんなに滅茶苦茶好きなわけでもないけど、ロングビーチでやってる Star Trek Tour http://www.startrektour.com に行ってきた。スタートレックに関する色んな模型やコスチュームが展示してあって、異星人になりきってスタートレックのシーンを演じる事…

Gauche のオブジェクトのなかみ

暇だったので Gauche のマニュアルを読んでいると、めっちゃ面白い事が分かった。特に、Smalltalk みたいなちゃんとしたオブジェクトがある所。今まで lisp はどれも emacs lisp と似たようなもんだと思ってたのでびっくり。そこで、http://squab.no-ip.com:…

近況

今日は車の点検に行って来た。日本にいた時は壊れるまで車屋に行かなかったが、新車だし真面目に六ヶ月の点検に出した。値段は一万円ほど。距離は 4,000 マイル。コーヒーを飲んでる間にすぐ終わった。それからウイリアムソノマに行ってトースターを買った。…

Fonc で遊ぶ2

言語を作るのは地味であまり面白くなかったので、グラフィック機能で遊んでみる。Fonc には、cairo を使ったワークスペースのサンプルがあるが、あいにく Windows では動かないので、修正がてら Fonc の勉強 とりあえずコンパイル $ cd function/canvas $ ma…

Fonc で遊ぶ

最近イアンの奴は Fonc と言ってるようです。これの peg を使って言語を作る実験をします。 準備 コンパイルして動作確認するまでの流れです。linux か mac を使います。(windows は挫折中) $ svn co http://piumarta.com/svn2/idst/trunk/ idst $ cd idst $…

俺様言語 Lazy を作る。その7。カリー化、Thunk を関数で。

ちまちま細かい修正をしている。まず一度 Thunk を専用のオブジェクトとして作ったのを関数で表現する事にした。意味的には Thunk は引数の無い関数と同じ物ではないかと思ったから。これは後でまた戻すかも知れない。カリー化は、今の所、ユーザ定義関数(la…

俺様言語 Lazy を作る。その6。祝!遅延評価完成!

実行環境: http://languagegame.org/pub/lazy/Lazy.html ソースコード: http://languagegame.org/dev/!svn/bc/32/trunk/lazy/Lazy.js (343 行) 屈折四ヶ月。やりました!ようやく最初の目的だった遅延評価が完成しました!しんどいのでメモだけ。ほとんど SI…

Haskell で cons を実装してみる。その2

http://d.hatena.ne.jp/propella/20080202/p2 の続き。自分で考えようと思ったけど、SICP 4.2.3 にあった答え(?)をうっかり見てしまった!新しい解はスマートで、しかも型安全。わざと冗長に書くと、 cons x y m = m x y getCar x y = x getCdr x y = y car …

データフロー(プログラムのシルエット)のまとめ、の下書き。

このプロジェクトでは、データフロー表現を使ってプログラムの可視化を試みました。データフローでは、処理の流れでは無く、変数の依存関係に着目してプログラムを構成します。依存関係をそのままグラフとして表示する事で、特に物理シミュレーションにおけ…

Haskell で cons を実装してみる。

SICP 2.1.3 What It Meant by Data? の話です。関数型言語では、データ構造としてよくリストが使われます。しかし本当はリストですらプリミティブで無く、リストを関数で表現出来るという話です。しかも、これは関数型言語とオブジェクト指向言語の面白い交…

OLPC XO マシンを USB-VGA 経由で外部モニタ表示

http://wiki.laptop.org/go/Adding_USB_SVGA にあるとおりにやってみた。実際にプレゼンに使うにはまだまだ調整が要る感じだが、とにかく動いたので書く。使った USB VGA コネクタは Tritton SEE2 日本ではサインは VGA とか言う名前で同じチップの物が売っ…