空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

Nerd

etolisp進捗(2)

今日は if の実装。九行。 LISPF_TRY( If ) { const Cons *pCons = pValue->asCons(); const Value *pCond = pCons->car(); pCons = pCons->cdr()->asCons(); const Value *pTSub = pCons->car(); pCons = pCons->cdr()->asCons(); const Value *pFSub = pCo…

etolisp進捗(2)

etolispのlambda実装完了。しかし,どうやらシンボルとか関数とかの考え方がCommon Lispとは違っていることに気付く。後で気付くのは「仕様はこんなもんだろう」と我ながら適当に作ってるせいだ。私の実装はlambdaもbuilt-in関数も,単なるシンボルも,全て…

くぁwせdrftgyふじこlp;@:「」

が,訓練の結果,0.2秒くらいで打てるようになった。 だがしかしここはアメリカ。誰にも自慢できないのが寂しい。

etolisp進捗(1)

今日は時間があったのでetolisp*1の実装を行う。今日の目玉はlambdaの実装。lambdaは,関数やクロージャの定義の他にも,lexical context(ローカル変数)の定義にも使う。プログラムを抽象化,モジュール化させる機能を一手に引き受けてしまうのだ。そう考…

多態な参照剥がし

現在のetolispでは値はシンボルも含めて全て Value クラスを派生させて作っている。シンボル名の解決に参照剥がし演算子が使えれば,Lisp上での参照剥がしとC++での参照剥がしが同じメタファーで実現できてカッコいいなあ,と思ってたんだけど virtual const…

etolisp

Paul GrahamのANSI Common Lispを読んでいたらLispの処理系を作りたくなってきた。Consを作って構文木を組み立てて,式の評価をさせれば意外と簡単に実装できるような気がしたので。文法の違いはパーサが吸収してくれるので,同じ原理で色んな種類の言語が実…

livedoor Readerで後悔

livedoor IDを登録した直後からおかしなスパムがたくさん来るようになった…(ぼそっ)。livedoor.netとか,絶対怪しい。せっかくいいサービスを提供しているのに,残念でならない。はぁ… 同社にまつわる深い闇を,また思い出してしまった。

英語版Windows上でのEmacsの設定にハマる。 リポジトリ最新 → ビルドが通らず断念 Meadow2 → フォント設定がよく分からないし,諸々性に合わないので断念 NTEmacs + IME patch → ビルドが通らず断念 で,結局,英語版NTEmacsのバイナリを拾ってきて,今まで…

CVS over SSH1, sourceforge.jp

MacOSXで,SSH1経由でCVSサーバにアクセスするときのメモ。MacOSXはデフォルトでSSH2が使われる。デフォルトではSSH2での接続を試みて失敗したらSSH1を使うように設定されているようだが,cvsコマンド経由で呼び出すとそれがうまく働いていない気がする(ssh…

unified diff

patchやSVNで標準的に使われているdiffのフォーマットについて調べてみた。CVSでも cvs diff -u とするとunified diff形式で出力できる。個人的には cvs diff --unified=5 --ignore-all-space --ignore-blank-line がお勧め。--unified=n に与える数字で前後…

Debugのテクニック

Windows上で外部 EXE を叩くプログラムのデバッグ時に,引数の受け渡し,環境変数,カレントディレクトリの設定,プロセス間通信など,どこに問題があるのか分からなくてはまる,ということが時々ある。今日職場の先輩から,そんなときに便利な方法を教えて…

SSD

via Slashdot 32GBのNAND型のmobile computer向けフラッシュメモリ 時期に関しては "not too distant future" とか "soon" とかしか書かれていないが,少しずつ容量的にもHard Disk (HD) に近づいてきている。ただ特定の部分だけアクセスが頻繁になったりす…

最近読んでみたい本が2冊。 ウェブ進化論 本当の大変化はこれから始まる (ちくま新書) 30日でできる! OS自作入門 ウェブ進化論はここ3週間ほど書店を回っているがOrange Countyの日系の書店にはまだ入荷していない様子。サンフランシスコから郵送すれば1週間…

Xalan-C

今日は,XSLTのデバッグをする*1。XMLで出力したログファイルをJavaScriptをごりごり使ったXHTMLに変換するものである。つまり1つのファイルにXSLTとXHTML,そしてJavaScript,さらにCSSが1つのファイルに書き込まれている。変換後のHTMLにも少し難があった…

Common Lisp Again

新年の誓い(?) にて,捨てたつもりだったが,訳あってCommon Lispの勉強を再開した。現在の仕事はC++がメインだが,Common Lispの考え方(どちらかというと実装の方)が今取り組んでいる仕事に役立ちそうな気がしたからである。考え方を学ぶのであれば本当は…

なかなか賢くならないモコモコの名前を「アホモコ」に変えようと思ったが,ペットの名前と種類は変えられないらしい。わなわな。

Blog Pet

なかなか賢くならないブログペットのモコモコに業を煮やす今日この頃。くりっくくりっくしてみては「こぉのアホモコがぁ!」と心の中で叫んでしまう今日この頃です。 「こうなったら,自分で作ってやる!」と一念発起して形態素解析ライブラリ「茶筅(chasen-…

Keyword completion in Vim and so on

つれづれなるままに。 今日たまたまvimを使っていて気付いたのだが,INSERTモードでCtrl+p,Ctrl+nするとキーワードの補完をしてくれるようだ。結構便利。紛らわしいけど。 以前から興味深く読ませて頂いているダイナミックObjective-Cの連載であるが,しば…

Google Maps APIは意外とお手軽

お正月休みも残りわずか。OpenGLに関してはかなり読み進めることが出来たので,本日はJavaScriptで遊んでみた。まずはEmacsにecmascript-modeをインストール。 emcascript-mode.elをダウンロードする。 site-lispにコピー。銭谷さんのパッケージを使っている…

Vim

先日(d:id:xoinu:20051126),友人がvimを入れて色が付くいたと自慢していたが,今度は画面を分割(sp,vsp)させたりispellでスペルチェックが出来ることを誇らしげに自慢された。どうやらviの師を見つけたらしい。2年前にWindowsとMacの区別も付かない状態…

JavaScript でメガデモ

先日知った濃ゆい世界を探索中。その中でも(いま流行の)JavaScriptで書かれたメガデモを発見!素晴らしい。スクリプトだしどこまで凝れるのか分からないけど,とにかくJavaでもFlashでもなくJavaScriptってところがくすぐられます。 http://waxy.org/rando…

濃ゆい世界を2つ発見。それは「7行プログラミング」と「megademo(メガデモ)」。いずれも職人魂をくすぐられる分野だ。メガデモについては@ITに簡単な説明がある。 7行プログラミングは,海外の高校生がPerlでDVDのプロテクトを解除するプログラムを作成し…

gcov

買ったまま放置してあった「GDBハンドブック」に目を通す。商用Unix上でのデバッグ作業で,このcross platformなデバッガには普段からとてもお世話になっている。ぜひとも机の片隅に置いておこうと思って買ってあったものだ。 この本のAppendixに紹介されて…

はてなRSSのキー操作

id:higeponさんのブログで「はてなRSS」に新しく追加されたキー操作が紹介されていたので使ってみる。 「J,K,N,P」と,ふだん直感的ではないエディタを使い慣れている人にとっては直感的に感じられる(だってそうなんだもん…)キー操作で記事の閲覧ができ…

WebKit

WebKit/JavaScript 昨日の続き。Macに限定するならWebKitのJavaScriptエンジンを利用するという手もある。現状ではObjective-CとC++のインターフェースがあるが,互換性の維持がより楽なCのインターフェースを作りたい,みたいなことが書かれていた。僕は仕…

SpiderMonkey

一昨日,アプリケーションの組み込み言語としてRubyを使うのはどうか?と考えたが,再考ですかー!? JavaScriptを読んでまた気持ちが揺らぐ。JavaScriptの方がもともと組み込み言語として設計されただけあって,機能が制限されているぶん使い勝手が良いのかも…

GraphViz

GraphVizのdotファイルはテキストで簡単に書けるということを後輩に教えてもらう。今まで勝手にC/C++のAPIが提供されているのだと勘違いしていた。 キーワードにあるとおり魔法のようなソフトウェアだ。

7z

たまたまsourceforge.netを漁っていて知ったのだが,7zという圧縮形式はbzip2よりも圧縮率が高いらしい。たまたまテストに使った160MBのtarが4MB弱になったときは驚いたが,それは例外だった。bzip2よりも概ね10〜20%程度は圧縮率が高い(ただし圧縮には倍…

Ruby on SU

SketchUP(建築のデザイン系CAD)にはRubyのマクロインターフェースがあるらしい。何が出来るのかまだ調べてないけど興味深い。 アプリケーションの拡張インターフェースに適した言語は何だろうと探していたけど,Rubyでいいのかも。この前みつけたRubyCocoa…

Debian for PowerPC

家で遊んでいたiBook (dual USB) にDebian Linuxをインストールする。Network Install用のCDイメージをダウンロードし,CD-Rに焼く。CDブートで難なくインストール完了。コンソールオンリーで,最低限の開発環境だけの設定にする予定。 キーマップの変更 x86…