opengl-text

http://github.com/Ramarren/opengl-text/tree/master (eval-when (:compile-toplevel :load-toplevel :execute) (require :cl-glut) (require :opengl-text)) (defvar *font-loader* (zpb-ttf:open-font-loader #p"/usr/share/fonts/truetype/vlgothic/VL-P…

[Common Lisp] Lingr

(eval-when (:compile-toplevel :load-toplevel :execute) (require :quek) (require :drakma) (require :cl-json) (use-package :quek) (use-package :drakma)) (defpackage for-with-json) (defmacro! with-json (o!json &body body) (let* (($-symbols (c…

[Common Lisp] 書きかけ

(in-package :you.example) (defmacro with-default-template ((&key (title "TODO")) &body body) `(html (:head (:title ,title)) (:body ,@body))) (defaction todo () (with-default-template (:title "TODO リスト") (:h1 "TODO リスト") (:form :actio…

clbuild

clbuild は Common Lisp のライブ ラリをインストールしたりアップデートしたりするスクリプト。 各ライブラリのリポジトリから最新バージョンを自動的にチェックアウトしてくる。 常に unstable. Debian と一緒。インストールはシェルで次のように行なう。C…

Verify Your Account by SMS

GAE

携帯の SMS で認証認証コードを受信しなければならないらしい。 携帯で? 絶望した。 終了。 これで Python ともお別れだね。元気でね。さようなら。

Forth Programmer's Handbook (3rd Edition) 届いた

amazon.com で注文していた http://www.amazon.com/Forth-Programmers-Handbook-Elizabeth-Rather/dp/1419675494/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1210036429&sr=8-1 が届いた。 注文したのが4/18。到着予定は5/15だったけど早く着いたんだ。 どうやら2…

defclass-star 便利

defclass は defstruct にくらべると、:initarg や :initform を明示的に指定しなければならないあたりが面倒。 それを解決してくれのが defclass-star. ;; こんなふうに書くと (defclass* cat () ((eye-color "blue") (body-color "シールポイント") (lovel…

小さな Forth もどきを作ってみた

(def-primitive :|create| のことろで codes-index を 0 に設定してなかったので、2回目以降の呼び出しが何もせず終っていた。 修正した。(2005/05/05) 今日はちょっと初心にかえって小さな Forth もどきを作ってみた。 実装は Common Lisp で、参考にしたの…

mkdir a b c

mkdir って一度に複数のディレクトリを作成できるんだね。 /tmp/a $ mkdir -pv a b c/d/e /tmp/a $ /bin/mkdir: created directory `a' /bin/mkdir: created directory `b' /bin/mkdir: created directory `c' /bin/mkdir: created directory `c/d' /bin/mkd…

Forth で無名関数の再帰

Perl で JS の arguments.callee 的なことしようと思ってハマった - IT戦記 の件を Forth で。Forth なら recurse がある。 :noname dup if dup . 1 - recurse else . then ; ok 10 swap ok .s <2> 10 47312420583688 ok execute 10 9 8 7 6 5 4 3 2 1 0 ok …

Common Lisp で無名関数の再帰

Common Lisp だとこんな感じ? (defmacro rlambda (lambda-list &body body) `(labels ((self ,lambda-list ,@body)) #'self)) (funcall (rlambda (n) (print n) (unless (zerop n) (self (1- n)))) 10) ん? むしろ引数に呼び出し元を持たせるのかな?

funcall read-from-string するわけ

Slime の起動では次のように read-from-string して funcall している。 (progn (load "/slime/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.13550" :c…

Drakma 使用時の注意事項

Drakma - A Common Lisp HTTP client を使うときの注意事項。 *drakma-default-external-format* で external-format を指定しておく。 text/* 以外の Content-Type をテキストとして扱いたいときは、*text-content-types* に追加する。 Content-Length は省…

Elephant での Sqlite バックエンド

The Elephant Persistent Object Database で SQLite をバックエンドで使おうとしていつも失敗していたけど、どうやら sudo apt-get install sqlite3 していなかったぽい orz (require :elephant) (use-package :elephant) (open-store '(:clsql (:sqlite3 "…

mod_lisp 使って Apache の後ろで Hunchentoot を動かす

http://www.weitz.de/hunchentoot/#mod_lisp インストール % sudo apt-get install cl-modlisp % sudo a2enmod lisp /etc/apache2/sites-enabled/hunchentoot を作成する。 % cat /etc/apache2/sites-enabled/hunchentoot LispServer 127.0.0.1 3000 "hunche…

CL-CONT を使った継続ベースの Web アプリケーション

CL-CONT で継続を使って単にページ遷移するだけの Web アプリケーション。 基本はこんな感じで、あとはマクロでくるめばそれらしいものになるかしら。 (eval-when (:compile-toplevel :load-toplevel :execute) (require :hunchentoot) (require :cl-who) (r…

CL-INTERPOL - String interpolation for Common Lisp

以前http://cadr.g.hatena.ne.jp/g000001/20080318/1205851335でちょっとふれてあった CL-INTERPOL 便利だ。 頭に #? は付けなければならないけど、正規表現中のバックスラッシュを重ねる手間がはぶけるし、変数や式の埋め込みもできる。 これが常に有効でも…

cl-cont

cl-cont - A Common Lisp Delimited Continuations Library をちょっとさわってみた。 cl-cont は Common Lisp の継続ライブラリ。 (defvar *save*) (defun p1 () (print 1)) (defun p2 () (print 2)) (defun p3 () (print 3)) (defun f () (with-call/cc (l…

loop で フィボナッチ数。あるいは and

次のようにしてうまくいかなかった。 (defun fib (n) (loop for a = 0 then b for b = 1 then (+ a b) repeat n finally (return a))) b に (+ a b) をいれる時点で a は b になっていたから。 CLiki: Fibonacci を見ると、同じようなコードが載っていて、ど…

Hunchentoot を使っての最低現の Web アプリケーション

Hunchentoot と CL-WHO があれば Web アプリケーションが作れるが、Elephant も仲間に入れよう。 (eval-when (:compile-toplevel :load-toplevel :execute) (require :cl-who) (require :hunchentoot) (require :elephant) (use-package :hunchentoot)) ;; …

スタックがあると

fold, map, for-each この中から一つ選ぶとしたらどれ? : jijixi's diary 次のコードの1番目が for-each, 2番目が fold, 3番目が map 相当。 ( scratchpad ) { 1 2 3 } [ . ] each 1 2 3 ( scratchpad ) 0 { 1 2 3 } [ + ] each . 6 ( scratchpad ) { } { 1…

UI の日本語フォント指定

Factor の UI のフォントは Vera とかいうので、日本語フォントではい。そのため日本語を表示できない。 それを解決するために、~/.factor-boot-rc で ui.freetype の ttf-name と ttf-path を上書きしてブートイメージを作りなおす。~/.factor-boot-rc ! -*…

UI のフォントのサイズを変える

Factor の UI のフォントが小さい。 その初期値を変える方法が以前 ML で流れていたのでメモ。~/.factor-boot-rc で dpi を適当に設定してブートイメージを作りなおす。 ! -*- mode: factor ; -*- USING: namespaces ui.freetype ; 90 dpi set-global dpi の…

Debian unstable のデフォルト Python が 2.5 になった。

のでもう python2.5 dev_appserver_main.py みたいにする必要がなくなった。

Google App Engine Blog: Google App Engine Helper for Django

GAE

以下、ちょっと違うところがあるかと思います。ごめんなさい。 /tmp/dev_appserver.datastore なんてのが出来ています。 ./manage.py runserver で起動するのか? Google App Engine の Django 対応が進んでいる。 キーワードは manage.py, BaseModel, JSON,…

Stacker

http://llvm.org/docs/Stacker.html Stacker という Forth ライクな言語を作成する LLVM のドキュメント。後半は "See projects/llvm-stacker/lib/compiler/StackerCompiler.cpp" という感じでかなり省略されているが、趣旨からするとソースを見てでいい。 …

The Django Form Validation Framework on Google App Engine で をレンダリングする方法がわからない。

GAE

The Django Form Validation Framework on Google App Engine で <input type="password"> をレンダリングする方法がわからない。できないのかな?

The Django Form Validation Framework on Google App Engine

GAE

Django Form Validation Framework を Google App Engine で使ってみる。 参考サイト http://code.google.com/appengine/articles/djangoforms.html インポート この前のTODO アプリケーション でやってみる。djangoforms をインポートするが from google.ap…

Google App Engine で Django を使う意味

GEA

Google App Engine で Django が使えるといっても全ての機能を使えるわけではない。セッションは使えないし、models も使えない。models が使えないと管理アプリケーションも使えない。テンプレート機能は webapp に組み込まれている。さらに、Django の for…