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

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…

Google App Engine の URL Fetch API で Twitter

GEA

Google App Engine ではソケットが使えないが、そのかわりに URL Fetch API が用意されている。それで Twitter の API をたたいてみる。 参考サイト http://yamashita.dyndns.org/blog/google-app-engine-xml/ http://watcher.moe-nifty.com/memo/2007/04/tw…

Google App Engine で Django のディレクトリ構成

GEA

前回は次のようなディレクトリ構成にしたが、 djangosite Google App Engine のトップディレクトリ djangosite Django のプロジェクトディレクトリ app1 Django のアプリケーションディレクトリhttp://www.everes.net/2008/apr/09/django-on-google-app-engi…

Google App Engine で Django を使う

GAE

参考サイト Getting Started With Django | Python | Google Cloud http://michilu.com/django/doc-ja/tutorial01/ http://www.everes.net/2008/apr/09/django-on-google-app-engine/ http://blog.broxrost.com/index.php/2008/04/08/django-on-google-app-e…

[GAE] Google App Engine で TODO アプリケーションを作ってみる

Getting Started Guide はなぞってみたので、今度は TODO アプリケーションを作ってみる。 Google App Engine で Tropy っぽいやつ作ってみた - IT戦記 を参考にしました。うわっ Python のメソッドって self を引数に def するのか。モデルを定義 Todo クラ…

Google App Engine : Getting Started Guide

GAE

まずはインストールしてデモを動かしてみる。 google_appengine.zip をダウンロードして ~/local/opt/ に展開。 python2.4 と python2.5 両方インストールされているので明示的に python2.5 で起動。 % cd ~/local/opt/google_appengine/ % python2.5 ./dev_…

例外処理までプリミティブじゃないのか

Forth では例外処理までプリミティブではなく、Forth 自身で書けてしまう。 リターンスタックをいじれるといろんなことができるのか。 普通の言語じゃ関数の戻り先なんていじれないもんな。 Forth は本当に自由な言語だ。jonesforth.f より。 : EXCEPTION-MA…

[ ]

Forth では [ ] はすぐに実行する。コロン定義中でワードをコンパイルするのではなく実行したい時に使う。Joy や Factor では [ ] はすぐに実行しない。Lisp の '( ) と似たようなもの。意味が逆になっているのか。 Zui では Joy や Factor と同じにしよう。…