言語ゲーム

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

Twitter: @propella

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

砂漠に行く

有給二日目は、ジョシュア・ツリー国立公園 http://www.nps.gov/jotr/ という砂漠の山に出かけた。ここは超すごかった。どう凄いかと言うと、まるで宇宙船で人間の住んでいないが居住可能な惑星に降り立って未知の植生を観察するような感じだった。景観はジ…

ディズニーランドに行く

日本から母と妹がやって来たので、二日ほど有給を頂く事にした。それでアナハイムのディズニーランドに行った。特にインディアナジョーンズアドベンチャーという映画付きジェットコースターとファンタズミックという湖上花火大会とディズニーランド鉄道が面…

Squeak で大域ジャンプ

イアンさんのソースコードを読んでいて、面白い表現があったのでご紹介します。Squeak でも動きます。 jumpTest "self new jumpTest" | cont | cont := [^ self]. self jump: cont jump: cont Transcript cr; show: 'Hop'. Transcript cr; show: 'Step'. con…

クロージャとオブジェクトは同じ物だという話

前に lambda lifting という言葉を聞いてから、ずっと妄想しているのは、クロージャとオブジェクトは「似ている」のではなく「同じ物」なのではないかという事。lambda lifting というのはクロージャをコンビネータに変形する操作の事で、多分簡単に書けば f…

エディタを作る近況

最近やってる事を書きます。しばらく前に、アランさんからメールが来て、ここしばらくイアンの奴に全力投球するようにと言われました。他に Javascript がどうだとか OpenDocument がどうだとか沢山あるけど、色々出来ないのでとりあえず全然分かっていない…

阿部さんの訪問

先週末からロサンゼルスに訪問されていた阿部さんが、今朝日本に発たれました。四月になれば大学も始まり、忙しくなるのではとの配慮から、大島さんの発案で急遽渡米が決まったのでした。突然の事でしたので、折角の阿部さんの貴重な時間を有意義に過ごす事…

Dolphin Smalltalk で遊ぶ

http://www.object-arts.com/content/navigation/products/dce.htmlと、言うわけで、Model-View-Presenter で評判の Dolphin Smalltalk で遊んでみる。と言っても始めて触るのでさっぱりどこから手をつけていいやら。。。メモ 最初のウインドウを System Fol…

依存問題メモ

ふと http://iiyu.asablo.jp/blog/2008/03/16/2759084 経由でデータフローが今流行な事を知ったのでメモ。個人的問題: GUI アーキテクチャには色々あるけど、肝は依存をどう解決するかという所。つまり、モデルとビューの間の依存。異なる階層のビュー間の依…

Swing のテキストウィジェットで遊ぶ

Swing のテキストウィジェットって、OS のコードを使わないで全部自力で書いているらしいので、参考になると思いソースを読んでみました。まず動作を追いやすいように、テキストウィジェットを表示して、何かが入力されると現在の文字数をコンソールに出力す…

Implementing functional languages: a tutorial

http://research.microsoft.com/~simonpj/Papers/pj-lester-book/最初の 25 ページしか読んでないけど、こ、これは面白い。。。Miranda という Haskell のご先祖様な言語で遅延評価な関数型言語を作る話です。知りたかったテーマどんぴしゃな話題でびっくり…

最適化の一日

今日は大体丸一日最適化をしていた。まず etoys の FreeType について。FreeType を入れると起動が遅くなってメモリを食う羽目になるのだけど、頑張って開発マシン上で起動時間 150ミリ秒、イメージサイズ 500KB 減までダイエットした。TTCFont を残すとなる…

eclipse

この日記を読むと最後に eclipse を触ったのが 2005 年の事なので、そろそろ忘れないように復習してみる。 http://www.eclipse.org/downloads/ より Eclipse IDE for Java Developers - Windows (79 MB) をダウンロード (バージョン 3.3.2) 展開して C:\Prog…

日曜の話。

昨日より早く10時に起きた!と達成感を味わって、パソコンを開くとなぜか 11 時という事になっていた。俺の一時間はどうなったのだ?!と落ち込むも気を取り直して MARUKAI に行って折り畳み食卓を買う。それからスタバでラノベを一冊読んでから BED BATH & BE…

土曜日の話。

午前 11 時ごろ起床ダラダラとパンを朝食を取ってそれから IKEA に向かう。道が込んでいて行くだけで疲れたので、とりあえず食堂でアップルパイとコーヒー。IKEA では掛け布団 (QUILT と言うらしい) を買う。記録の為書いておくが、暖かさ番号 4 番のやつに…

ペトリネット、関数、PollingObserver (eToys モデルとオブザーバーパターンの融合その2)

イマイチ受けの悪かった PollingObserver の話ですけど、きっとこんな基本的なアイデアは他に誰か考えた人がいるはずだと風呂でよく考えたら、骨子はまんまペトリネットのサブセットだという事が分かった。PollingObserver の定義 一つのモデルと一つ以上の…

金曜日の話。

今日は久しぶりにアランさんとサシで話をする機会に恵まれた。主に昨日 Sun に行った時の話しで、TileScript の件や OMeta を使ったイベントハンドラの話などをした。ここでまたアランさんの「それ前に見たことある」話が始まって、イベントハンドラを文法で…

サンノゼに行って、帰る

今日は Alex が Dan Ingalles の前で OMeta/JS の説明をするというので、私もついでにひょこひょこついて行った。ついでついでに Dan Ingalles の前で、二日前 http://d.hatena.ne.jp/propella/20080305/p1 に思いついたばかりの GUI のアイデアのデモをする…

eToys モデルとオブザーバーパターンの融合

意味不明な日記かとは思いますが、閃いた記念に書きます。あとでちゃんと説明用の文章を書く予定。概要: フレームワークの中に依存関係がある時、監視元は依存ごとにプロセスを一つ作り依存が有効な期間中存続させる。監視プロセスは実際に監視先に更新が起…

Gtk シグナルのオマケ。二つのパターン。

シグナルの送信で二つのパターンがある。イベントハンドリング(オブジェクトツリーを下位から上位に辿る)の場合(例: gtk_text_view_backspace)。上位オブジェクトは下位オブジェクトを emit する。下位オブジェクトは自分自身でシグナルを受け取る。モデル伝…

Gtk シグナルと関数の戻り値

つまらない話ですが続けます。Gtk のシグナルが論理的に何なのかと考えてみました。Gtk のシグナルの特徴は送り手が一人だけど受けてが沢山居るという事です。という事は返り値も無く副作用のみなので、関数型大好きな私には受け入れ難い概念です。また、双…

Gtk イベントから画像出力までの流れ

ついでに Gtk でイベント処理がどう行われているのかもちらっと見てみた。例によって gtk_text_view_scroll_to_mark でブレークして観察すると、gtk_main_do_event が一つずつイベントを処理するようになっている。イベントは親から子へ伝わる。例えばキーボ…

Gtk のテキストウィジェット

早速 Gtk のテキストウィジェットがどんな風に動いているのか見てみた。まず自分自身のソースをただ表示するだけの単純なプログラムを書いてみる。window があって、その中に scrolledWindow があって、その中に textView があるという構造だ。という事は、…

週末の記録

最近本当に非生産的な日々だけど、何も書かないと本当に何も無かった事になりそうなので淡々と週末の事を書く。ある日郵便受けを見ると、マルカイとか言うスーパーのチラシが入っていた。どうも以前の住人に向けた DM だったようだが、日本スーパーのチラシ…

mingw で gtk をコンパイルする。

gtk のソースに興味があったので、ソースからコンパイルしてみる事にした。目的: テキストエディタのスクロールの方法を知りたい。前に使ったお手軽インストーラー http://gladewin32.sourceforge.net に合わせて、ちょっと古いバージョン(GTK+ 2.10.11)を使…

meadow + mingw で gdb を使う方法。

告白すると、初めて meadow の gud モードにチャレンジした時はまだ20世紀の事でした。何度ドキュメントを読み、何度試しても失敗の連続。しかし、ついに meadow で gdb を使う方法が分かったので書きます。 環境変数を設定する。 まず Windows の環境変数を…