言語ゲーム

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

Twitter: @propella

日記生活ふりかえり 2007, 2008, 2009, 2010 年

2007 年

2007 の C5 は Tinlizzie WysiWiki と WikiPhone について話した。どちらも中止したプロジェクトなので話すのが辛かった「WikiPhone プレゼン資料収集中(2007)」「WikiPhone 仕様(2007)」「Ruby で VoIP (IP 電話) を実装する(2007)」。

夏にロサンゼルスに引っ越した「金曜日から日曜日までの話(2007)」。仕事的には OLPC EToys 「C4 用カンペ: OLPC(100ドルラップトップ)の動向とスクイークの開発状況(2007)」の低レベルドライバの担当。色々勉強出来て面白い!と思うように努力したが辛い事も多かった「仕様もない話(2007)」。そこで、関数型言語の勉強を一生懸命した「ぼくがかんがえたモナド(2007)」「リストとしての haskell モナド。内包表現と do と >>(2007)」「関数型プログラミングに何を期待しているのか。(2007)」「圏論の基礎(2007)」「Haskell で brainfuck(2007)」「背徳的なものまね鳥(2007)」「逆ガベコレ(2007)」「[haskell] How To Arrow 基本(2007)」「継続渡し形式挿話。prolog と haskell でパターンマッチング(2007)」「ArrowLoop(2007)」「Lucid 言語(2007)」。

特に関数型スタック言語 Joy は面白かった。「Joy 言語の実際。j09imp.html を読む。(2007)」「Joy 代数を読む。(2007)」「Joy in Squeak(2007)」「Joy 代数を読むその2(2007)」「Joy でエンジョイ(2007)」「世界は言葉で繋がっている。(2007)」。「思考のかたち(2007)」「線形論理とコンピュータ革命(2007)

この経験から、「プログラムのシルエット」というプレゼンを作る。「自分用メモ: プログラムのシルエット(2007)」「データフロー式 etoys 言語の作成計画(2007)」「プログラムのシルエット2(2007)」「プログラムのシルエット3(2007)」「データフロー(プログラムのシルエット)のまとめ、の下書き。(2008)」プログラムのシルエットというのは、要するに実装に対する型の事で、静的型の嫌いな人たちにうまいこと型付きデータフロー言語の利点を伝えようとした物だった。

平行して、Javascript を使ったブラウザ上の開発環境を作るテーマに挑戦していた。特に Javascript Workspace は単純ながら重要なもので、このワークスペース + Wiki というアイデアは私が後で作ったプログラムのほとんどに影響を与えた。「Javascript Workspace(2007)」「こんにちは、テニスゲーム(2007)」「Cat 言語 in Javascript(2007)」「俺様言語 Lazy を作る。(2007)」「俺様言語 Lazy を作る。その6。祝!遅延評価完成!(2008)」「MMurL URL で音楽を鳴らす(2007)」「生成文法とタイルスクリプト(2007)」「自動書記: タイルスクリプトに向けて(2007)」「タイルスクリプトに向けて。その2(2007)」「言語ワークベンチ(2007)」「Intentional Software(2007)」「タイルスクリプト進捗(2007)

他に書いたもの。「老後の事を考える。(2007)」「利己的な地面(2007)」「石鎚山(2007)」「本当に必要なパーソナルコンピュータとは?!(2007)」「時間旅行は可能か?(2007)

あと、江渡さんにそそのかされて買った初音ミクで「メッシュで踊ろう OLPC」を作った。フラッピーと言われて歳がバレたようでショックだった。

2008 年

2008 年にフランスで TileScript というブラウザで動く開発環境を発表した。このプレゼンは今までの人生で一番ウケが良かった。そんなに良いプレゼンな気がしなかったんだけど、客のノリが非常に良くて、論文発表って楽しいなと感動した。「タイルスクリプト進捗(2008)」「タイルスクリプト取扱説明書(の下書き)(2008)」「タイルスクリプト・プレゼンテーション記録(2008)

この年は電子工作を始めた。最初 Arduino から初めて、AVR や FPGA を試した。特に FPGA のプログラミングモデルがあまりにもパソコンと違ってびっくりした。数十年後にはフォン・ノイマン型コンピュータは廃れて FPGA が主流になるだろうと今でも信じている。「紙コップで入力デバイスを作ろう!(2008)」「FPGA に夢を見る(2008)」「Spartan-3A で Hello World!(2008)」「CPUの創りかた TD4 を Spartan-3A で(2008)」「はじめての Mac で AVR プログラミング。小指サイズの ATtiny45 で LED チカチカ(2008)」「世界聴診器を作る。その2 - バーチャルヨーヨーを作ろう(2008)

仕事では、すっかり OLPC から足を洗い Ian Piumarta のプログラミング環境でテキストエディタを作り始めた。機能は少ないが Squeak と違ってレガシーコードに悩まされる事も無く大変楽しかった。また、テキストエディタという簡単そうなプログラムがいかに奥深いか思い知った。スクリプト可能でゲームまで作れるテキストエディタ "bottle" が 2008 年の自信作なんだけど、残念ながら日の目を見る事は無かった「論文読み Charles Crowley. Data Structures for Text Sqeuences. 1998(2008)」「エディタのデザイン(2008)」。

後半から再び Javascript 向け開発環境を再開した。TileScript の評判は良かったが、当時のブラウザの能力でタイルはまだ早いと思ったので、むしろブラウザ向けの文芸プログラミングを目標にした "ChalkBoard" を作った。「Javascript とリッチテキストによる Active Essays の実装(2008)」「ぼくが作った Wiki とワークスペースの歴史(2008)」「進捗。アクティブエッセイ用のツールについて。(2008)」「進捗。アクティブエッセイ用のツールについて(2)。(2008)」「Chalkboard のトレードオフ。アクティブエッセイ用のツールについて(3)(2008)」「四次元タートルグラフィックス?(2008)

この年何よりも重要なのは、長らく停滞していた彫刻づくりに光が見え始めた事だ。小さい物なりにようやく自宅で物を作るペースがつかめてきた。「美について(2008)」「異化 - アートとプログラミングの交差点(2008)」「段ボールによるブール代数モデル(2008)」「糸と重りの半加算器(2008)

その他雑多な事「文脈自由絵画 Context Free Art(2008)」「Haskell でヒューメインインタフェース。モナド記法を使わないで IO してみる(2008)」「なぜ結合法則が重要なのか?(2008)」「ふしぎのくにのアリス(ダイジェスト版)(2008)」。

2009 年

Chalkboard はお気に入りのプロジェクトだったが発表は地味で振るわなかった。「Chalkboard 開発記などだらだら書く。(2009)」「C5 の発表が終わった。(2009)

その後しばらく色々仕事をサボってまた Coq や PrologAlloy などの勉強をした。「学歴と職について(2009)」「「ソフトウェア工学」は矛盾語法か?(2009)」「CafeOBJ(2009)」「Coqで遊ぶその1(2009)」「最近の開発の事つづき(2009)」「Prolog を Haskell で書く。(2009)」「Smalltalk のクラスと Haskell の型クラスを比較します。(2009)」「Squeak と Haskell の数値(2009)」「Alloy: A Lightweight Object Modelling Notation(2009)」「ロジックの勉強中2 ブール関数の取りうる値をテーブルに列挙する(2009)」「Leftist Heap(2009)

はてなには書かなかったが、その最大の成果は Squeak 向け Lazy List ライブラリだった。Squeak のリッチな開発環境と遅延評価が実は相性が良いという物を示したつもり。もうちょっと実用になるまで詰めたかった。「ふつうの言語で Lazy list(2009)」「Lazy list and Data flow in Squeak(2009)

そしてこの年 Tamacola の開発を始める「AVM2 アセンブラ続き(2009)」「ABC コンパイラプレゼン完了(2009)」「バイナリファイル形式パーサージェネレータが欲しい(2009)」VPRI には UI 担当で入ったつもりなのについにコンパイラまでやる事になった!ということで、かなり気合が入っていた。

2009 年何と言っても最大の成果は「木製半加算器」の完成だった。打ち上げが Smalltalk 勉強会と重なり大変だったが「Smalltalk 勉強会@名古屋 STEPS プロジェクトご紹介(2009)」、我ながら頑張った。「半加算器とは何か?(2009)」「半加算器作業: 完成(2009)」「搬入(2009)

2010 年

もう面倒になって来た。。。と思ったらちゃんと年末に纏めている。偉い!俺「2010 年について(2010)」。

この年最大の仕事は、tamacola 完成。結局 Smalltalk 以来 VPRI が作った唯一ブートストラップ出来る処理系なのでもうちょっと評価されて良さそうなもんだが、Flash ブームの終焉と共に残念ながらまたまたプロジェクト中止となった。後半以降は Frank システムのファイルストレージを主にやることになった。

印象深いのはマンキュー経済学に出会ったこと。私が今まで考えてきた社会の仕組みがいかに浅はかであったと思い知った。

まとめ

ふと週末に日記を振り返る気分になった。量が多くて我ながらびっくりした。