2010年9月24日 星期五

JNDI on GWT 2.0 RPC

I try GWT RPC to connect MySQL with JDBC. I found GWT 2.0 with eclipse uses Jetty 6.0. Followings are my processes and they are working.

1. Create jetty-web.xml at WEB-INF like this.
<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<Set name="war"><SystemProperty name="jetty.home"/>/war</Set>

<Set name="contextPath">/</Set>


<New id="DSTest" class="org.mortbay.jetty.plus.naming.Resource">
   
   <Arg>java:comp/env/jdbc/test</Arg>

   <Arg>

    <New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">

    <Set name="Url">jdbc:mysql://localhost:3306/test</Set>

    <Set name="User">user</Set>

    <Set name="Password">password</Set>

    </New>

   </Arg>

  </New>

</Configure>


2. Add resource ref in web.xml like this.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<resource-ref>

<description>DB Connection</description>

<res-ref-name>jdbc/test</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>


</web-app>



3. After 1 and 2, you will failure at class not found if you start your GWT application. It seems GWT not include JNDI jars in Jetty. So, I copy jetty-naming-xxx.jar and jetty-plus-xxx.jar to WEB-INF/lib

4. You can use "java:comp/env/jdbc/test" to get the DataSource.

2010年8月12日 星期四

Let ProcessingJS support Image Slicing.

modify p.Image function with following code:
p.image = function image(img, x, y, w, h, dx, dy, dw, dh) {
if (img.width > 0) {

var obj = img.toImageData();

if (img._mask) {
var j, size;
if (img._mask instanceof PImage) {
var objMask = img._mask.toImageData();
for (j = 2, size = img.width * img.height * 4; j < size; j += 4) {
// using it as an alpha channel
obj.data[j + 1] = objMask.data[j];
// but only the blue color channel
}
} else {
for (j = 0, size = img._mask.length; j < size; ++j) {
obj.data[(j << 2) + 3] = img._mask[j];
}
}
}

// draw the image
curTint(obj);

if (arguments.length === 9) {
curContext.drawImage(getCanvasData(obj).canvas, x, y, w, h, dx, dy, dw, dh);
}
else {
var bounds = imageModeConvert(x || 0, y || 0, w || img.width, h || img.height, arguments.length < 4);
curContext.drawImage(getCanvasData(obj).canvas, 0, 0, img.width, img.height, bounds.x, bounds.y, bounds.w, bounds.h);
}

}
};

2010年7月31日 星期六

Apple Macbook Pro 日記 - 工作篇

接下來安裝平常工作會需要用到的軟體,目前我會用到的開發軟體,除了MS出品之外,大都可以找到替代軟體,或者是有Mac版本。

1. SSH: 原本在Windows下,都是用Putty。 不過Mac已經有內建SSH,所以可以直接用。比較麻煩的是,公司之前有產生private key,putty可以用,但是轉到了Mac的SSH,不太能用。後來用Puttygen 把原來的key,匯出成OpenSSH的格式,就可以用了,

2. SFTP軟體,之前在Windows上都是用UltraEdit內建的FTP來傳檔。現在改用FileZilla來傳檔。

3. TotalCommander: 這個是Windows平台上,我覺得最好用的檔案管理工具,其實Mac也有對應的軟體: Disk Order,不過 Disk Order是要付費的,從它介面來看,幾乎和TotalCommander一模一樣。不過因為要付費,就先不考慮安裝,繼續使用Mac 的 Finder。

4. Multi-Rename: TotalCommander的Multi-Rename功能很好用,而且工作上也必須用到,找到了R-Name 這個軟體來替代。請見: http://www.macuknow.com/node/2876#tutorial

5. UltraVnc: 用來遠端搖控Server用,可用Chicken of VNC來替代。

6. Eclipse: 有Mac版本。
6.1: 平常Eclipse是用來寫 Java用的。目前還找不到滿意的軟體,可以替代UltraEdit,所以在Eclipse上,再加裝PHP套件,用來開發PHP程式。(現在才發現用Eclipse開發PHP真的很好用)。

7. 解壓縮工具: 用的是EZ-7z,可以解7-zip檔

8. PDF: Adobe有mac版的pdf reader 可以用,

9. MySQL 工具:MySQL有Mac版的GUI管理工具,很好用,可以下載來試看看。MySQLWorkBench.

Apple Macbook Pro 日記 - 娛樂篇

接下來安裝一些休閒用的軟體

1. BBS軟體:因為女友是標準的PTT鄉民,所以上BBS是必備的。我裝的是AlienBBS。要特別感謝作者提供這麼好用的軟體給大家使用。http://www.iim.nctu.edu.tw/~toki/AlienBBS/

 2. 影音播放:我用的是VLC。

3. MSN: 直接用MS提供的Mac版本。

4. Skype: 直接用官方的Mac版本。

5. 相簿管理:google picasa

6. 編圖: GIMP

Apple Macbook Pro 日記 - Windows 篇

因為工作的緣故,還是需要用到Windows 7。我的作法是:用Apple 的 BootCamp,來安裝Windows 7,我用的版本是Windows 7 64bit 英文版。安裝的過程很順利,沒有什麼問題。安裝完後,也到nvidia網站更新driver,不過不知道為什麼,就是不能對電腦評分。每次評分都會失敗。

友站 MacUknow有很完整的說明,可前往參考:http://macuknow.com/node/1778

安裝完Windows 7 後,我使用Parallels Desktop選擇BootCamp磁區,來產生虛擬機器。會這麼做的原因是,我還是需要在Windows 7 上開發系統,如果遇到需要較多的資源時,我直接用bootcamp來開Windows 7,平常時候,使用雙系統,就可以應付大多數的工作。

剛裝完Parallels Desktop,發現切換輸入法,有點問題,不過改成用Crystal mode, Windows 7 下切換輸入法就正常了.

Apple Macbook Pro 日記 - 我的必用軟體篇

在說明之前,先感謝友站 MacUknow 整理了很多Mac的資料。新手或者對Mac有興趣的網友,可以先上去了解。

重新安裝完OS X 後,先安裝我必用的軟體:

1. 嘸蝦米輸入法: 在MacUknow上面有提到如何開速安裝,請見: http://www.macuknow.com/node/5087

2. Google Chrome: 雖然Chrome很吃記憶體,不過我已經用習慣了。幸好Google也有出 Mac 版本,所以在安裝上,沒有太大的問題。
2.1 利用bookmark sync 先把之前儲在google上的bookmark資料取回來
2.2 安裝del.icio.us bookmark套件, delicious官網已經有出chrome的套件,可以直接在官網上安裝。

3. Firefox: Firefox也有Mac的版本,所以安裝上也沒有太大的問題。
3.1 安裝httpfox套件。

4. 設定magic mouse右鍵,安裝BetterTouchTool,讓magic mouse支搜更多的多點觸控。

2010年7月30日 星期五

Apple Macbook Pro 日記 - 序篇

最近開始想研究Apple程式,入手了一台Macbook Pro。不過工作上,還是得要用到Windows 7 ,所以灌雙系統是免不了的;不過目標還是想,除了找不到替代方案,才安裝Windows軟體,否則儘量使用OS X的軟體。

目前一定會需要在Windows上的軟體是 Visual Studio 2008,主要使用VC++ 和 VC#。SQL Management 連線MSSQL。Borland C++ Builder開發ERP軟體。Office軟體的話,原本想要用Open Office,不過還是考量到檔案丟給其他同事時,萬一破版就不好了,因 此Office軟體還是延用MS的。

接下來會一系列記錄我重新安裝整台MacBook Pro的過程。一方面幫自己留個記錄,二來有跟我相同需求的人,也可以參考一下。

2010年4月6日 星期二

jetty 7 with mysql and log4j

MySQL
1. Download mysql jdbc jar file into jetty-home/lib/jndi
2. Configure webapp's context xml in jetty-home/contexts
2.1 Add configuration like bellow
<New id="test1" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg></Arg>
<Arg>jdbc/test1</Arg>
<Arg>
<New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
<Set name="Url">jdbc:mysql://localhost:3306/test1</Set>
<Set name="User">test1</Set>
<Set name="Password">test1</Set>
</New>
</Arg>
</New>
3. Configure web.xml of the webapp
3.1 Add configuration like bellow
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test1</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

4. Use "java -jar start.jar OPTIONS=Server,jndi" to start jetty. Jetty will load all jar files in jetty-home/lib/jndi

Log4J
1. Download log4j jar file into jetty-home/lib/ext
2. Use "java-jar start.jar OPTIONS=Server,ext" to start jetty. Jetty will load all jar files in jetty-home/lib/ext

2010年4月2日 星期五

jetty 7 with eclipse

1. Download eclipse J2EE version.
2, Download jetty 7.
3. Create a dynamic web project .
3.1 New target machine.
3.2 Download additional server adapters.
3.3 Choose Jetty generic server adapter.
4. Edit plugin.xml of jetty in eclipse plugin directory. Replace mortbay with eclipse.
5. Edit jetty.serverdef in servers in eclipse jetty plugjn directory. Change Start.Main with jetty 7 version (org.eclipse.jetty.start.Main)
6. Edit template.xml in buildfiles in eclipse jetty plugjn directory. Replace mortbay with eclipse.
7. Edit build.xml in buildfiles in eclipse jetty plugjn directory. Replace mortbay with eclipse. Commet all <Set> of org.eclipse.jetty.webapp.WebAppContext.

ps. I test with Jetty 7, non-hightide version.