migrate4j

migrate4j 是一套類似rails 的migrate的lib。

不過定義一個 migration 要這樣

package db.migrations;

import static com.eroi.migrate.Define.*;
import static com.eroi.migrate.Define.DataTypes.*;
import static com.eroi.migrate.Execute.*;
import com.eroi.migrate.Migration;

public class Migration_1 implements Migration {

public void up() {
createTable(
table("simple_table",
column("id", INTEGER, primarykey(), notnull()),
column("desc", VARCHAR, length(50), defaultValue("NA"))));
}

public void down() {
dropTable("simple_table");
}
}

然後編譯:
javac -classpath migrate4j.jar db/migrations/Migration_1.java
執行:
java -cp .:mysql.jar:migrate4j.jar:lib/commons-logging.jar com.eroi.migrate.Engine

…..

廣告

ext 的授權

最近這件事好像鬧的蠻大的 @@

簡單的說,就是ext原本的授權很奇怪。說是open source 的授權(LGPL),但是卻不允許使用者分枝出去(它是以yui的分枝起家)或是合在其他framework中(授權頁面庫存檔)。

John resig 說得很狠:

ExtJS is a giant licensing fail pile masquerading as an open source project in a thinly-veiled attempt to force more people to buy their corporate licenses. Unless you’re willing to shell out the big money, stay far – far – away.

http://www.juixe.com/techknow/index.php/2008/04/27/how-to-kill-a-community/ 這篇收集了很多相關的文章。

不過事情應該平息下來吧,現在去看授權頁面,已經改成GPL 3.0 了,也拿掉之前的限制了。

dipity 製作timeline 的好工具

dipity 是一個用網頁來製作timeline 的好工具,畫面相當漂亮,提供多種呈現方式。

* 可以import rss (或是其他web 服務 ex:flickr,youtube,)

* 可以多人一同編輯

*也可以embed 到自己的部落格上。

這邊是我把我部落格的feed 輸入到 timeline中的結果。

範例(點入看大圖):

我想這在整理一些研究上會很有幫助。舉例來說 我們可以整理出一個ubi-comq 或是locative media 的timeline,讓訪客可以有條理的研究瞭解某些東西。當然,拿來做某個東西的大事紀 也是相當不錯。

jquery.ui 中sortable list 的定位問題

最近在做的ui遇到了這個問題。ui 大概長這樣:

使用者可以從左邊把element 拖曳到右邊的某個故事盒內。然後故事盒內的物件還可以透過拖曳重定順序。這個東西用了到jqury.ui 的sortable 功能。  故事盒的外層還用了一個div 包起來(overflow=scroll),來達到捲軸的效果。

不過後來發現,右邊的sortable list 在ie中(6,7) 會相對定位!! 也就是說當捲軸往下拉的時候,這些element 就跟著往下移動(畫面上看起來就像是固定在某個位置…) =.=  這怎麼會對呢? 後來trace 程式碼 發現在 ui.sortable.js(rev.5143)  中的第73行左右有一行長這樣:

if(!(/(relative|absolute|fixed)/).test(this.element.css('position'))) this.element.css('position', 'relative')

一般來說預設值是static(參考資料),所以嘛,你可以選擇註解掉,或是加上static 的判斷( 這樣跟註解掉有何不同XD)

這問題大概出在ie 跟 firefox/safari 對於position=relative這東東的解讀不同吧!

wii remote hack

這一陣子 組織裡面希望把原有的大尺寸螢幕(簡報用),改成觸控式螢幕。不過因為不想破壞外觀,所以只好請廠商弄個特製的規格。

不過後來我看到Carnegie Mellon University 的 johnny lee (TED 個人網站)使用 wii remote 來實做類似的功能(還很準)。 酷阿!!

這樣做省下很多錢 😛 而且感覺很高科技呢!!!