結合 PLT-Scheme Web server 和 Apache 時,使用以下的 Rewrite Rule 於 Apache 的 VirtualHost 中。
RewriteLog /home/ccwu/rewrite.log
RewriteLogLevel 9
RewriteEngine on
RewriteRule ^/play(.*)$ http://localhost:8000/play$1 [P]
其中的 RewriteLog 及 RewriteLogLevel 是為了除錯。RewriteEngine on 是必須的,每個 VirtualHost 的 Rewrite engine 都必須各別致能,這是基於安全考量。
但是 Apache 告訴我我沒有權限使用 http://localhost/play。
檢查 apache 的 error log ,參考網上的討論後,將 mod_proxy 及 mod_proxy_http 致能後問題得以解決。
2009年12月29日 星期二
2009年12月27日 星期日
sysctl IPV6_V6ONLY
前些日子在我的 Debian 機器上無法以 Java 連上網路。上網查詢後原來更新 netbase 後增加了一個新的 sysctl 選項。
cat /etc/sysctl.d/bindv6only.conf
可以見到 net.ipv6.bindv6only = 1
這選項使得 ::ffff::ip 不再被接受,而 ::ffff::ip 卻是 java
的預設。
2009年12月25日 星期五
Continuation 之不可或缺
Continuation web server 真的比較好嗎?依我最初使用 Javascript 加 Helma NG 及後來使用 PLT Scheme 的感覺來看,使用 Continuation 的確使得我不必太去操心網路 stateless 的本質,從而提升了程式開發的流暢感。
這只是模模糊糊的隱約覺得...
這幾日,遇到了問題,瀏覽網頁時常過期。這可嚴重了,使我從新思考是否要放棄 Continuation style。我改寫了部份程式,使用當初以 Helma NG 撰寫的方式。起初容易,最後困難,原本不關心伺服器和瀏覽器間要傳送什麼資料的,現在開始必須歩歩為營,考慮哪些資料需要 serialization 。
而目前這伺服程式還算簡單 ...,如果繼續發展下去,不使用 Continuation 恐會使得這遊戲的開發工作超出我一個人休閒時的工作份量了。
這使得我體會到 Continuation 對我這類網路應用的不可或缺。
這只是模模糊糊的隱約覺得...
這幾日,遇到了問題,瀏覽網頁時常過期。這可嚴重了,使我從新思考是否要放棄 Continuation style。我改寫了部份程式,使用當初以 Helma NG 撰寫的方式。起初容易,最後困難,原本不關心伺服器和瀏覽器間要傳送什麼資料的,現在開始必須歩歩為營,考慮哪些資料需要 serialization 。
而目前這伺服程式還算簡單 ...,如果繼續發展下去,不使用 Continuation 恐會使得這遊戲的開發工作超出我一個人休閒時的工作份量了。
這使得我體會到 Continuation 對我這類網路應用的不可或缺。
2009年11月3日 星期二
2009年11月1日 星期日
Scratch 和 Google App Inventor
一種為小孩子設計的語言:Scratch。
這樣的語言,及發展環境,也是我的夢。
Google 的 App Inventor 也提供了類似 Scratch 的開發環境,但是內部使用的語言是 Scheme。
這樣的語言,及發展環境,也是我的夢。
Google 的 App Inventor 也提供了類似 Scratch 的開發環境,但是內部使用的語言是 Scheme。
Kawa
以 Java 寫成的 Scheme,可以在 JVM 上執行。因此我忍不住將它和 plt-scheme 及 rhino 比較,以瞭解它的優劣定位。
相較於 rhino:
依我的觀點,Scheme 的 DSL 能力最適合用在當 Domain specific language 尚未定型,正在成長時。
相較於 rhino:
- 同樣可在 JVM 上執行。
- 援用 java 的 class 時,沒 rhino 那麼方便,必須定義要使用的 method,若使用某個 method 眾多的類別如 JOGL 時,會帶來一些困擾。
- 因為是 scheme,比 rhino 更適用於開發 Domain specific language (DSL)。
- 可在 JVM 上執行,因此,可以和使用 rhino 的程式整合在一起,提供 rhino 欠缺的 DSL 能力。
- 缺少 PLT-SCHEME 的龐大功能及其健康的社群。
依我的觀點,Scheme 的 DSL 能力最適合用在當 Domain specific language 尚未定型,正在成長時。
javascript 和 OpenGL
在學習使用 javascript 透過 java 執行 OpenGL 時,我採用 Wikipedia 中 "Java OpenGL" 這一條文的例子。但是執行時出現了以下錯誤訊息:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path
參考網路上的說明,UnsatisfiedLinkError 意指少了某個 .so 檔,在此為 libgluegen-rt.so。查詢結果這檔案位於 /usr/lib/jni 中,在 java 命令後加上 -Djava.library.path=/usr/lib/jni 後問題得到了解決。
Exception in thread "main" java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path
參考網路上的說明,UnsatisfiedLinkError 意指少了某個 .so 檔,在此為 libgluegen-rt.so。查詢結果這檔案位於 /usr/lib/jni 中,在 java 命令後加上 -Djava.library.path=/usr/lib/jni 後問題得到了解決。
訂閱:
文章 (Atom)