2004/06/30

Properties Editor - native2ascii replacement

Development using the properties file is performed by Java by the setting file of J2EE application, internationalization correspondence with desktop application, etc. being sufficient. However, you have to change the multi-byte character in a file into Unicode with the native2ascii tool of attachment in J2SDK on the character platform un-depending.

This editor can edit directly the property file written in the Unicode reference character, and saves the time and effort changed into Unicode by native2ascii. Moreover, in addition to the function of the usual editor, convenient functions, such as JBuilder and integration to Eclipse, are offered. In the integration to JBuilder and Eclipse, it is possible to open the properties file in a project directly and to edit it, and, of course, it is saved by Unicode. It can use by intuitive and simple operation.
For details, please look at the following page.

URL: http://propedit.sourceforge.jp/index_en.html

2004/06/23

JSPWidget cannot run correctly on WebSphere v4

執行時會出現下列錯誤
SRVE0026E: [Servlet 錯誤]-[JSP 1.1 Processor]: com.ibm.servlet.engine.webapp.WebAppErrorReport: javax/servlet/jsp/tagext/TryCatchFinally
at com.ibm.servlet.engine.webapp.WebAppDispatcherResponse.sendError(WebAppDispatcherResponse.java:97)
at org.apache.jasper.runtime.JspServlet.unknownException(JspServlet.java:453)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:552)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager.java:827)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(StrictLifecycleServlet.java:159)
at com.ibm.servlet.engine.webapp.IdleServletState.service(StrictLifecycleServlet.java:286)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(StrictLifecycleServlet.java:106)
at com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:472)
at com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(ServletManager.java:1012)



原創者的解答:

websphere 4.0 support JSP 1.1 only.
JSPWidget use some JSP 1.2 method.

I **THINK** the only method in JSP 1.2 that I use in JSPWidget is

request.setCharacterEncoding(this.requestEncoding) and TryCatchFinally interface
in doStartTag() of com.ucom.jsp.tags.gui.FormTag.java

If you do not use this method, you have to call someything like this


public static String toBig5(String in) throws java.io.UnsupportedEncodingException{
if(in==null)
return "";
else
return new String(in.getBytes("ISO-8859-1"), "Big5");
}

whenever you call request.getParameter()..

That is : replace every call to request.getParameter(...) to toBig5(request.getParameter(...))

Then you can use in JSP 1.1 enviroment!!

GOOD LUCK ....

分紅 2億7千萬的「海豚領導學」 越分享,越賺錢!

http://140.120.19.5/Weblogs/ymsf/archives/001352.html

2004/06/21

Web Application Framework - DbForms

official site: http://jdbforms.sourceforge.net/

與JSPWidget相較之下
共同點:
1.都是採用tag-lib的方式,讓畫面更簡潔
2.安裝容易,只要放jar file、tld file,並設定一下web.xml即可
3.當該頁面需有較為複雜的business logic的話,可以用額外的class
來輔助,JSPWidget叫做code behind ,DbForms則叫Interceptor


相異點
1. JSPWidget比較具彈性,不像DbForms每個jsp file只對應到
一張table,而且JSPWidget比較能接受較為複雜的SQL Statement,
DbForms的侷限性則比較大
2. JSPWidget不需要維護額外的configuration file,DbForoms
則需維護


整體感覺上,JSPWidget的表現比DbForms好

[轉貼] 使用SQL 最常犯的十大錯誤

SQL 是設計資料庫應用系統的標準語言。設計資料庫應用系統的第一件事,就是建立一個資料庫。要想設計出良好的資料庫應用系統的首先必要條件是:正確的資料庫結構。 若在設計資料庫時,有任何問題,那縱然有多好的應用程式,都是沒有用的。

本單元將提出在設計資料庫時,最常見的問題,提供各位做借鏡。

1)設計資料庫前的需求討論,往往高估使用者對系統的了解程度
在設計資料庫應用系統時,第一件事情就是系統需求訪談,對於經驗不足的系統分析員,往往以客戶需求為導向,而在設計資料庫時,被使用者不合理的需求所誤導。
由於一般的使用者並不曾受過良好的系統分析訓練,因此由他們所提出來的問題與做法,並非正確的。
身為系統分析師的您,必須以主動式,將使用者所提的需求分析,並引導他們正確的處理模式,而不是由使用者自行決定作法。

2)不要受限於當初專案需求合約
對大多數的 End User 而言,他們經常是不按牌理出牌,您可能會發覺,每次需求訪談,User 總會提許多奇奇怪怪的需求,而且每次都不一樣,因此在做系統分析時,絕對要掌握主動性,將 User 的需求引導成正確的系統設計模式,若是 User 要什麼,就給什麼,甚至不合理的需求,那將導致專案無法收拾的地步。

3)只注意設計技術課題,而忽略其他潛在因素
許多程式開發人員在系統設計階段,只考慮軟體技術困難的克服,卻將成本控制、資源取得、進度要求、和公司策略擺在一旁不理會,最後因成本過高,合約期限到期等,造成專案失敗的命運。在此建議各位,軟體技術只是專案開發的一部份,您必須還注意各種因素的控制。

4)在設計資料庫時,不要忽略任何 User 的意見
大部份人認為,官大就代表什麼都大,因此在系統設計時,完全聽從職位高的 User,認為他們才是真正可以決定系統的需求與驗數,其實不然,職位較低的 User,對系統運行瞭若指掌,如果想專案順利進行,這些人的意見不容忽視。

5)專挑自己喜愛的開發軟體,而不管適不適用
任何一種 DBMS 或開發軟體都有其優點及弱點,對某些應用系統的特殊需求,可能有某一種 DBMS 或開發軟體特別適用,但是對大多數的系統開發者而言,一旦用上手的軟體,往往因習慣使用,只注意到它們的優點,卻忽略其不足之處,而且對其他系統開發者,您應該以很超然的角度,分析應用系統的需求,評估何種 DBMS 和開發軟體最佳,並真實地告訴 End User。

6)只考慮使用自己熟悉的系統架構,而不管是否適當
主從架構,集中式處理,或是分散式資料處理,每一種架構都有其優點及缺點,但到底那一種架構適用呢?這必須先了解 User 的電腦環境,做一個詳細的評估,再來決定選用何種架構,選擇適合的架構,有助於日後的系統效能和未來擴充性。

7)定義資料庫的 Table 時,忽略了各 Table 之間的關連性
關連式資料庫系統的【關連性】,這三個字強調了資料庫內的許多 Table 具有相關性,因此在定義 Table 時,務必要整體考量 Table 的關連性,以確保資料一致性和完整性。

8)忽略設計前的 Review,認為 Review 只是浪費時間
世上沒有任何事物是完美無缺的,同樣地,在系統分析設計告一段落時,並不代表萬事 OK,最好是再從頭到尾 Review 一次,看看是否有遺落什麼,這動作可以避免因小小的設計疏失,造成程式重寫的命運。

9)忽略系統測試階段,直接上線
在漫長的程式撰寫過程,不免有些疏失,造成程式有 Bug,而系統測試的主要目的,就是要抓這些 Bug,尤其是在處理金錢的應甪程式,嚴密的測試絕不可省略,記住:User 絕對不會幫您除 Bug,他們只會找您麻煩(若有 Bug 存在時)。

10)忽略系統文件撰寫,把設計理念和程式,完全記在大腦
我還沒有聽說過,一個應用系統在驗收完畢後,就從此不再修改,而且您將系統交給其他人時,絕不可能用口述就可辦到。過去許多系統設計有一個共通的毛病,就是認為撰寫文件是一件浪費生命的工作,於是將所有設計內容,都放在大腦中,但人的記憶畢竟不像電腦,因此文件是系統設計時重要的要素之一。

2004/06/20

Web Application Framework - Jakarta Struts slide

Part1-http://home.so-net.net.tw/albertguo/slide/Jakarta.Struts.Framework.Part.I.zip

Part2->http://home.so-net.net.tw/albertguo/slide/Jakarta%20Struts%20Framework%20Part%20II.zip

Logging Service - Log4j

official site: http://logging.apache.org/log4j/docs/

中文說明:http://developer.ccidnet.com/pub/disp/Article?columnID=294&articleID=30621&pageNO=1

使用時記得把log4j.property指定到classpath,不然系統會找不到

Web Application Framework - JSPWidget

official site: http://edu.uuu.com.tw/jspwidget/
API Reference: http://edu.uuu.com.tw/jspwidget/docs/reference.jsp
PPT: http://download.uuu.com.tw/JavaTwoFriday/
JavaTwoFriday_030418Session4.ppt

其是恆逸資訊技術總監孫三才先生開發出來的,用起來的感覺真的是蠻不錯的。

其設計的理念是Event-Driven Computing Model,實際下海撰寫以後,你會有在寫JavaScript的感覺,很直覺很好懂。其focus在UI這個層面,可以很容易讓你做validation,並且幫你handle一些exception的狀況,到了0.9.6版的時候也加上了paging的功能,感覺還蠻不賴的。

Sample Code: http://home.so-net.net.tw/albertguo/SampleCode/JSPWidget/jspwidget.war

可惜的是,IBM WebSphere v4 無法執行JSPWidget,因為JSPWidget有採用到JSP 1.2的東西,然而WebSphere v4只有支援到JSP 1.1~殘念

SQLExecutor: A Simple JDBC Framework

其是一個輕量級的framework,學習上相當的容易,code也變的相當精簡,也解決paging的問題,在exception handling上面也有不錯的表現

article
1. http://www.theserverside.com/articles/article.tss?l=SQLExecutor
2. http://www.developer.com/db/article.php/10920_2189471_1

download jar file
http://sourceforge.net/projects/sqlexecutor

他的sample code放在com.softtech.jdbc.SampleCodeUsingFramework,寫的相當清楚明瞭,應該一下子就能夠上手了。

Sample Code: http://home.so-net.net.tw/albertguo/SampleCode/SQLExecutor/WebModule.war

SCBCD Exam Experience

SCBCD考試簡介 

此項考試的全名是:Sun Certified Business Component Developer,考試代號是310-090。考試題數共70題,時間120分鐘,通過比率64%,報名費5000元。考試的詳細資訊請參考此網址:http://suned.sun.com/US/catalog/courses/CX-310-090.html 

SCBCD考試報名

如果你之前參加透過Prometric舉辦的考試,考試ID仍舊可以沿用,無須重新申請。報名的話,可以打電話去報名(08001611141),告訴對方你的考試ID、要報名的考試科目名稱、考試時間、考試地點即可。

 
SCBCD考試心得

推薦的書籍: Head First EJB
書籍勘誤:http://www.oreilly.com/catalog/hfjejb/errata/hfjejb.confirmed 

關於這個考試,我覺得只要詳讀 oreilly 出版的這本 Head First EJB 就已經相當足夠了,這本書寫的相當生動,用許多圖表來展現許多枯燥無味的觀念,是一本蠻不錯的參考書籍。

關於模擬試題方面,書本有附上模擬試題,不過我還另外做了 SoftLearn Systems 這家公司出的 softSCBCD 的模擬試題,裡頭有提供五份模擬試題 (太多了~根本沒做完),其是用Swing做成的,模擬真實的考試的狀況,此軟體最好的地方是他有提供exam notes,根據每個考試目標列出可能會考的觀念,蠻適合當考前攻略本的,還有啊,別寄望裡頭的題目在考試能夠遇的到,我今天去考,命中率是趨近於 0。還有在題型方面,SCBCD多了不少Drag and Drop的題目,這是之前SCJP與SCWCD所沒有的題型。

其他可以參考的link:
1. SCBCD Study Information: http://www.valoxo.ch/jr/SCBCD_Links.html
2. Mock Exam: http://www.jdiscuss.com/Enthuse/jsp/ViewResources.jsp?category=scbcd&subcat=Mock+Exams

Oracle 1Z0-031 Exam Experience

Oracle考試簡介

此項考試的全名是:Oracle9i: DBA Fundamentals I,考試代號是1Z0-031,此項考試是取得OCA(Oracle Certified Associates)的第二個科目,要通過1Z0-007 (Introduction to Oracle9i: SQL)與1Z0-031 (Oracle9i Database: Fundamentals I)此二考試,Oracle才會發予OCA的證書。

該考試的考試目標請參閱此網址:http://www.oracle.com/education/certification/objectives/
index.html?31.html
認證路徑請參考此網址:http://www.oracle.com/education/certification/objectives/
index.html?dba9i_tcc.html
or http://fjt.infoscape.com.cn/gate/big5/www.chinaitlab.com/
www/school/9iocp-sys.asp


1Z0-031的考試時間為1.5個小時,總共60題,達對73%(44/60)才算通過。Oracle考試的相關資訊如考試時間、考試題數、通過比率等等,請參閱此網址:http://www.oracle.com/education/certification/index.html?dba9i_exam.html 或者是這個pdf檔: http://www.oracle.com/tw/education/pdf/ocp_exam.pdf
 

Oracle考試報名

如果你之前參加透過Prometric舉辦的考試,考試ID仍舊可以沿用,無須重新申請。報名的話,可以打電話去報名(08001611141),告訴對方你的考試ID、要報名的考試科目名稱、考試時間、考試地點。有數種付費的方式,我是採用信用卡付費,發票將會在兩個禮拜內寄給你。若對考試相關仍有疑問者可以打這支電話去Oracle教育訓練中心詢問:02-23127166。
 

1Z0-031考試心得

推薦的書籍:OCA/OCP: Oracle9i™ DBA Fundamentals I Study Guide
書籍勘誤:http://www.sybex.com/erratatracking.nsf/weberrataform?OpenForm&ISBN=4063
 

這個考試的涵蓋的範圍:http://www.oracle.com/education/certification/
objectives/index.html?31.html
 

考試的題型有單選與複選兩種,複選題的題目蠻多的。有許多的考試題目都是要你指出語法錯誤的地方。所以,做考題的時候記得慢慢做,沉住氣,不要做太快,反覆且小心的檢查語法的正確性。整體考試的題型都很平均,每個objective都有考到,並沒有特定側重在某些特定的objective。

讀這本書有點像是在讀恐龍書的感覺,其將Oracle當作是OS在講,例如啟動一個Instance時,會啟動多的不同的background processes,不同的process負責不同的task,例如Database Writer (DBW) 負責將dirty buffer寫入data file, Process Monitor (PMON)負責清除失敗的user process以及釋放失敗的user process所佔用的空間等等。

有幾個地方是需要注意的,一般我們在create database, table, tablespace或是在drop/alter table, column等等,會使用Oracle Enterprise Manager(OEM)或是PL/SQL等GUI工具來create,在考試的時候就非常講求如何寫出這些sql statement的,所以一些語法都要搞清楚。

還有,哪些view可以看到什麼資料也是很重要、出了不少題目,如透過V$UNDOSTAT可以將所查詢的資料來調整undo tablespace size來進一步調整undo tablespace performance等。還有一些參數值的設定也很重要,什麼時候PCTFREE的值該高?什麼時候PCTUSED該低?如何避免row chaining的發生?還有一些troubleshooting的題目,發生snapshot too old的時候該怎麼辦?具有什麼樣的資料特色的table應該給予什麼index, 如low cardinality、大量資料的狀況的column可以給予bitmap index。有些部份則是1Z0-007的考試的範疇,如Managing Tables/Index/Cnstraints/Users/Privileges, Using Globalization Support等。

Oracle 1Z0-007 Exam Experience

Oracle考試簡介
 
此項考試的全名是:Introduction to Oracle9i: SQL,考試代號是1Z0-007,此項考試是取得OCA(Oracle Certified Associates)的第一個科目,要通過1Z0-007 (Introduction to Oracle9i: SQL)與1Z0-031 (Oracle9i Database: Fundamentals I)此二考試,Oracle才會發予OCA的證書。

該考試的考試目標請參閱此網址:http://www.oracle.com/education/certification/objectives/
index.html?7.html
認證路徑請參考此網址:http://www.oracle.com/education/certification/objectives/
index.html?dba9i_tcc.html
or http://fjt.infoscape.com.cn/gate/big5/www.chinaitlab.com/
www/school/9iocp-sys.asp


1Z0-007的考試時間為兩個小時,總共57題,達對70%才算通過。Oracle考試的相關資訊如考試時間、考試題數、通過比率等等,請參閱此網址:http://www.oracle.com/education/certification/index.html?dba9i_exam.html 或者是這個pdf檔: http://www.oracle.com/tw/education/pdf/ocp_exam.pdf
 

Oracle考試報名

如果你之前參加透過Prometric舉辦的考試,考試ID仍舊可以沿用,無須重新申請。報名的話,可以打電話去報名(08001611141),告訴對方你的考試ID、要報名的考試科目名稱、考試時間、考試地點。有數種付費的方式,我是採用信用卡付費,發票將會在兩個禮拜內寄給你。若對考試相關仍有疑問者可以打這支電話去詢問:02-23127166。

 
1Z0-007考試心得

推薦的書籍:OCA/OCP: Introduction to Oracle9i SQL Study Guide
書籍勘誤:http://scooter.sybex.com/erratatracking.nsf/weberrataform?OpenForm&ISBN=4062
 

這個考試的範疇包括:
→Writing Basic SQL Select Statements
→Restricting and Sorting Data
→Single-Row Functions
→Displaying Data from Multiple Tables
→Aggregating Data using Group Functions
→Subqueries
→Producing Readable Output with iSQL*Plus
→Manipulating Data
→Creating and Managing Tables
→Including Constraints
→Creating Views
→Creating Other Database Objects
→Controlling User Access

對於具有資訊相關背景的人來說,這個考試應該不會太困難,一來是唸書的時候都有上過DBMS的課程了,二來是平常就有在使用了,所以在大部分的主題如"Writing Basic SQL Select Statements", "Restricting and Sorting Data", "Aggregating Data using Group Functions", "Displaying Data from Multiple Tables ", "Subqueries"等等,都應該有某種程度的掌握度。

反倒是需注意幾個地方,如"Single-Row Functions",Oracle提供許多自己獨有的function給我們使用,如DECODE, NVL, NVL2、CASE...WHEN...THEN...END等等,都是出現率相當高的題目;在DML方面,Merge的用法;在Join方面,Outer Join的用法,Join...Using clause、Join...On clause以及natual join也出現了好幾題;還有比較少用到的部份如"Producing Readable Output with iSQL*Plus"需要多看幾遍,其他的部分如"Controlling User Access", grant privilege的地方也要多看一下。

與書本附的mock來比較,其實真正考試的題目反倒是比較簡單一些。所以只要做做書本所附的mock(大概有400題左右),應該就足夠上戰場了。如果不放心的話,也可以去網路上找找看,不過可以查到的資訊很少就是了。


其他可以參考的link:
1. Oracle9i SQL Reference Release 1 (9.0.1)[推薦]: http://www.engin.umich.edu/caen/wls/software/oracle
/server.901/a90125/toc.htm

2.Oracle/PLSQL Topics: http://www.techonthenet.com/oracle/
3. TIPS TO HELP STUDENTS PASS ORACLE9i DBA EXAM 1: http://www.dbdomain.com/dba9i1.htm

SCWCD Exam Experience

SCWCD(Sun Certified Web Component Developer)
其涵蓋了13個topics:
1. The Servlet Model
2. The Structure and Deployment of Modern Servlet Web Applications
3. The Servlet Container Model
4. Designing and Developing Servlets to Handle Server-side Exceptions
5. Designing and Developing Servlets Using Session Management
6. Designing and Developing Secure Web Applications
7. Designing and Developing Thread-safe Servlets
8. The JavaServer Pages Technology Model
9. Designing and Developing Reusable Web Components
10.Designing and Developing JSP Pages Using JavaBeans Components
11.Designing and developing JSP Pages Using Custom Tags
12.Designing and Developing a Custom Tag Library
13.Design Patterns
有關更進一步的細節,可以參考這個網址:http://suned.sun.com/US/catalog/courses/CX-310-080.html

推薦的書籍:SCWCD Exam Study Kit: Java Web Component Developer Certification

在書籍方面,只要讀這本書就夠了,這本書寫的非常有調理,容易閱讀。然而,除了書籍之外,網路上有前人整理好的、現成的study guide供有心考試的人準備考試之用,這兩者分別為:
1. SCWCD Study Guide (由台灣人整理的)
2. Sun's Java 2 Web Component Developer Certification

我推薦第一個,因為他寫的相當的清楚,都已經把考試的重點幾乎都摘錄出來了,而且是中文的。當唸完整本書,或者是考前,可以利用這份文件快速的複習重點。

至於考古題方面,其實考SCWCD不用做太多考古題,理解最重要,只要多多練習SCWCD Exam Study Kit每個章節後面的練習題,以及書本光碟所附的JWebPlus就足夠了,當然,如果你還是覺得不夠,可以參考這個link,有一大堆mock exam讓你練習,
http://www.jdiscuss.com/Enthuse/jsp/ViewResources.jsp?category=scwcd&subcat=Mock+Exams

所以,只要讀熟SCWCD Exam Study Kit這本書,充分利用SCWCD Study Guide ,做做書本後面的mock exam以及書本所附的JWebPlus的三份考古題,應該足夠來應付考試了。

整體上來說,SCWCD是比較偏重記憶的考試,例如deployment descriptor裡面的element名稱(可以看看web.xml),tld裡頭的寫法(可以看看struts.tld或是dbforms.tld等等),有些平常比較少用到的地方,都會記的比較辛苦,例如在Designing and
Developing a Custom Tag Library這個部份,因為平常根本都沒有用過,對於這邊蠻陌生的,也是我錯最多的地方,不過似乎也是比重最高的,每次都會出10題左右,是值得注意的一個地方。