2004/12/29

Oracle JDeveloper 10g (10.1.3) Developer Preview now available

acle JDeveloper 10g is a world-class development environment for Java, Web services, XML, and SQL. The Oracle JDeveloper 10g (10.1.3) release adds many new features, including a new look and feel, a greatly improved coding environment, extensive refactoring options, J2EE 1.4/J2SE 5.0 support, and visual JSF development.

This is the most substantial and ground-breaking JDeveloper release in years. Some improvements, such as the enhanced user interface and the new Refactor menu, you will note right away. Others, like the new project structure for seamless team development and the way that refactoring integrates with source control, may take more time to discover. These and other improvements will become apparent as you work with this innovative release of JDeveloper.

http://www.oracle.com/technology/products/jdev/101/index.html

2004/12/08

A Java library for reading/writing Excel

http://sourceforge.net/projects/jexcelapi/

JExcelApi is a java library which provides the ability to read, write, and modify Microsoft Excel spreadsheets. This project mirrors the files on http://www.jexcelapi.org, which has been known to go down on occasion.

2004/11/30

c3p0:JDBC DataSources/Resource Pools

c3p0 is an easy-to-use library for augmenting traditional (DriverManager-based) JDBC drivers with JNDI-bindable DataSources, including DataSources that implement Connection and Statement Pooling, as described by the jdbc3 spec and jdbc2 standard extensio

http://sourceforge.net/projects/c3p0

Introducing Spring Framework

Author: Rod Johnson

You may have heard the buzz this summer around the Spring Framework. In this article, I'll try to explain what Spring sets out to achieve, and how I believe it can help you to develop J2EE applications.

Introducing Spring Framework

2004/11/28

What Management Is: How It Works and Why It's Everyone's Business

What Management Is: How It Works and Why It's Everyone's Business

Whether you're new to the field or a seasoned executive, this book will give you a firm grasp on what it takes to make an organization perform. It presents the basic principles of management simply, but not simplistically. Why did an eBay succeed where a Webvan did not? Why do you need both a business model and a strategy? Why is it impossible to manage without the right performance measures, and do yours pass the test?

What Management Is is both a beginner's guide and a bible for one of the greatest social innovations of modern times: the discipline of management. Joan Magretta, a former top editor at the Harvard Business Review, distills the wisdom of a bewildering sea of books and articles into one simple, clear volume, explaining both the logic of successful organizations and how that logic is embodied in practice.

Magretta makes rich use of examples -- contemporary and historical -- to bring to life management's High Concepts: value creation, business models, competitive strategy, and organizational design. She devotes equal attention to the often unwritten rules of execution that characterize the best-performing organizations. Throughout she shows how the principles of management that work in for-profit businesses can -- and must -- be applied to nonprofits as well.

Most management books preach a single formula or a single fad. This one roams knowledgeably over the best that has been thought and written with a practical eye for what matters in real organizations. Not since Peter Drucker's great work of the 1950s and 1960s has there been a comparable effort to present the work of management as a coherent whole, to take stock of the current state of play, and to write about it thoughtfully for readers of all backgrounds. Newcomers will find the basics demystified. More experienced readers will recognize a store of useful wisdom and a framework for improving their own performance.

This is the big-picture management book for our times. It defines a common standard of managerial literacy that will help all of us lead more productive lives, whether we aspire to be managers or not.

Confronting Reality : Doing What Matters to Get Things Right

Editorial Reviews

Amazon.com
In their 2002 bestseller, Execution: The Discipline of Getting Things Done Larry Bossidy and Ram Charan identify why people don’t get results: they don’t execute. Bossidy and Charan are back with another stellar study on organizational behavior that shows how companies can succeed if they return to reality and examine every part of their business. Confronting Reality is based on a simple concept, but many companies approach strategy and execution in a surprisingly unreal manner and even the simplest of measurement methods, like the business model, are not applied correctly.
Cisco, 3M, KLM, Home Depot, and the Thomson Corporation are just a few of the companies that Bossidy and Charan examine. To demonstrate how to examine a business using the business model, Bossidy and Charan map out external variables, financial targets, internal activities, and an iteration stage (defined as a time to "make tradeoffs, apply and develop business savvy") to prove how a dynamically evolving business model will help improve performance.


"The version of the business model we have developed is a robust, reality-based process for thinking about the specifics of your business in a holistic way. It shows you how to tie together the financial targets you must meet, the external realities of your business and internal activities such as strategy development, operating tactics, and selection and development of people."
Larry Bossidy, retired chairman and CEO of Honeywell International and Ram Charan, author of What the CEO Wants You to Know and Profitable Growth Is Everyone's Business, have once again shed industrial-strength light on how to run a successful business. --E. Brooke Gilbert


link

Struts vs. JavaServer Faces

Author: Craig McClanahan


Introduction

It should come as no surprise that the most frequent questions I get asked center around the issue of which of these two web tier technologies an organization or individual developer should consider using. It makes sense to ask me, because I was the original creator of the Struts Framework, and was the co-specification lead for JavaServer Faces 1.0 (JSF).

Usually, the question is framed as an or issue, based on an understanding that the two technologies are mutually exclusive. That turns out not to be the case, but it can still be difficult to determine what to do. This blog entry provides my current advice on the subject -- but, to understand it better, it's worth briefly reviewing the development and focus of the two technologies.

The story is a little long compared to typical blog entries; if you want to cut to the chase and see my advice, scroll down to the section entitled The Bottom Line, below.


http://blogs.sun.com/roller/page/craigmcc/20040927

2004/11/24

display tag library

The display tag library is an open source suite of custom tags that provide high-level web presentation patterns which will work in an MVC model. The library provides a significant amount of functionality while still being easy to use.


http://displaytag.sourceforge.net/



You can directly study the displaytag.war, it must can shorten your learning curve.

Making Java Objects Comparable

by Budi Kurniawan
03/12/2003

In real life, objects are often comparable. For example, Dad's car is more expensive than Mom's, this dictionary is thicker than those books, Granny is older than Auntie Mollie (well, yeah, living objects, too, are comparable), and so forth. In writing object-oriented programs, there are often needs to compare instances of the same class. And once instances are comparable, they can be sorted. As an example, given two Employees, you may want to know which one has stayed in the organization longer. Or, in a search method for Person instances with a first name of Larry, you may want to display search results sorted by age. This article teaches you how to design your class to make its instances comparable by using the java.lang.Comparable and java.util.Comparator interfaces and presents three examples that illustrate both interfaces.

http://www.onjava.com/lpt/a/3286

2004/11/11

Book Recommendation: Profitable Growth Is Everyone's Business : 10 Tools You Can Use Monday Morning

Profitable Growth Is Everyone's Business : 10 Tools You Can Use Monday Morning

Book Description
The coauthor of the international bestseller Execution has created the how-to guide for solving today’s toughest business challenge: creating profitable growth that is organic, differentiated, and sustainable.

For many, growth is about “home runs”—the big bold idea, the next new thing, the product that will revolutionize the marketplace. While obviously attractive and lucrative, home runs don’t happen every day and frequently come in cycles.

Products like Kevlar, Teflon, and the Dell business model for selling personal computers may be once-in-a-decade phenomena. A surer and more consistent path to pro?table revenue growth is through “singles and doubles”—small day-to-day wins and adaptation to changes in the marketplace that build the foundation for substantially increasing revenues. The impact of singles and doubles can be huge. They are not only the basis for sustained revenue growth but, in fact, the foundation for home runs. Singles and doubles provide the discipline of execution, an absolute necessity for successfully bringing a breakthrough technology to market or implementing a new business model.

Inherent in this way of thinking is the revolutionary idea that growth is everyone’s business—not solely the concern of the sales force or top management. Just as everyone participates in cost reduction, so must everyone be engaged in the growth agenda of the business. Every contact of each employee with a customer is an opportunity for revenue growth. That includes everyone from the people working in a company’s call center handling customer inquiries and complaints to the CEO.

In this trailblazing book, Ram Charan provides the building blocks and tools that can put a business on the path to sustained, pro?table growth. For more than twenty-?ve years, Ram Charan has been working day in and day out with companies around the world. The ideas he has developed for solving the profitable revenue growth dilemma facing many businesses are based on personally seeing what works in real time. These are ideas that have been tested across industries and that deliver results, and they can be put to use starting Monday morning.

Book Recommendation: The Wal-Mart Decade: How a New Generation of Leaders Turned Sam Walton's Legacy into the World's #1 Company

The Wal-Mart Decade: How a New Generation of Leaders Turned Sam Walton's Legacy into the World's #1 Company

Book Description

Inside one of America's most remarkable success stories, from the bestselling author of Jack Welch and the G.E. Way.

Two of the toughest challenges for any company are leadership transitions and rapid growth. How do you replace an enormously popular and beloved CEO-especially one who started from scratch to create a national icon? And how do you maintain a rapid growth rate without losing the culture and focus of a small company?

Over the past ten years, since the death of the legendary Sam Walton, Wal-Mart has passed both challenges with flying colors. In 1992, it had revenues of $43.9 billion; now it's number one on the Fortune 500 list of America's largest companies, with revenues of $218 billion. Sam Walton's successors have taken the company into far-flung new markets and new directions yet without losing the down-to-earth retailing culture that made Wal-Mart thrive in its early years, when its business model was truly revolutionary.

Robert Slater, a highly respected business journalist and author, was granted unprecedented access to the company while writing The Wal-Mart Decade. He takes readers deep into the inner circle, where the big decisions are made about strategy and operations. And he weaves a fascinating, accessible story about the many challenges of the past decade and how Wal-Mart built on its founder's legacy to overcome them.

2004/10/17

[Book Recommendation] Game Theory and Economic Modelling

Game Theory and Economic Modelling (Clarendon Lectures in Economics S.)
by David M. Kreps


Product Description:
This book examines why game theory has become such a popular tool of analysis. It investigates the deficiencies in this methodology and goes on to consider whether its popularity will fade or remain an important tool for economists. The book provides the reader with some basic concepts from noncooperative theory, and then goes on to explore the strengths, weaknesses, and future of the theory as a tool of economic modelling and analysis. All those interested in the applications of game theory to economics, from undergraduates to academics will find this study of particular value.

2004/10/10

[Book Recommendation] Reengineering the Corporation: A Manifesto for Business Revolution

Reengineering the Corporation: A Manifesto for Business Revolution
by Michael Hammer (Author), James Champy (Author)


Book Description

No business concept was more important to America's economic revival in the 1990s than reengineering -- introduced to the world in Michael Hammer and James Champy's Reengineering the Corporation. Already a classic, this international bestseller describes how the radical redesign of a company's processes, organization, and culture can achieve a quantum leap in performance.

But if you think that reengineering once was enough, think again. More changes, more challenges are coming in the twenty-first century. Now Hammer and Champy have updated and revised their milestone work for the New Economy they helped to create -- promising to help corporations save hundreds of millions of dollars more, raise their customer satisfaction still higher, and grow ever more nimble in the years to come.

2004/10/06

[Book Recommendation] When Economics Mean Business

When Economics Mean Business: The New Economics of the Information Age
by Sultan Kermally



Editorial Reviews

The core of traditional management thinking is based on the foundations of traditional economic thinking. As economies shift from the industrial age to the informative age, the rules of economic engagement are undergoing radical change.


2004/09/28

An example to transfer object

Assume we have one value object which named "User".
It has two attributes, including userName and password.


public class User implements java.io.Serializable{
private String userName;
private String password;

public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

And we have one requirement to transfr this object to the specific receiver. Here has one picture to describe.

picture source: http://www.churchillobjects.com/c/11009.html


Then here has one sample to demo how to do this.

import java.io.ObjectOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class ObjectTransferExample {

//sender's method
public void send() throws SecurityException, IOException {
//declare one User object, and set data to userName and password attribute
User user = new User();
user.setUserName("Albert");
user.setPassword("123456789");

FileOutputStream out = new FileOutputStream("User");
ObjectOutputStream s = new ObjectOutputStream(out);
//write object name ans user object to ObjectOutputStream
s.writeObject("User");
s.writeObject(user);
s.flush();

}

//receiever's method
public void receieve() throws FileNotFoundException, IOException,
ClassNotFoundException, IOException {
FileInputStream in = new FileInputStream("User");
ObjectInputStream s = new ObjectInputStream(in);
//read the object name
String objectName = (String) s.readObject();
//retrieve the User object
User user = (User) s.readObject();
//print the object name and the User object's content
System.out.println("---------------------------------");
System.out.println("objectName="+objectName);
System.out.println("user name=" + user.getUserName());
System.out.println("password=" + user.getPassword());
System.out.println("---------------------------------");
}

public static void main(String[] args) throws IOException, SecurityException,
ClassNotFoundException, FileNotFoundException, IOException {
ObjectTransferExample example = new ObjectTransferExample();
example.send();
example.receieve();
}
}

An example to parse a xml file

the xml file content:download



abstract:
1. We need to parse the values which enclose in "username", "password", and "url" tags. And the three tags enclose in "application_server_setup"
2. We need to retireve the "name" attribute in "Form" tag
3. In each "Form" tag, it has some "Role" tags, we need to get the "name", and "sequence" atrribute in each "Role" tag



Sample code: ParseXML.java

2004/09/21

TOEIC Exam Information

I'm preparing for this certificat, if you'are interested about this exam,you can go to here, http://www.toeic.com.tw/, to gain the further information

2004/09/16

E-Mailing Through Java

This link has many useful example about JavaMail
--Sample Code to Send E-Mail
--Sample Code to Send Multipart E-Mail, HTML E-Mail and File Attachments
--Sample Code to Fetch E-Mail
--Useful Classes and Interfaces
--Steps to Use JavaMail
--Utility Classes
--Message Flags, and so forth

link: http://www.vipan.com/htdocs/javamail.html

2004/09/15

JavaMail quick start

http://www.javaworld.com/javaworld/jw-10-2001/jw-1026-javamail_p.html

Spend some time to study this piece of information for a while, you can pick up the JavaMail API quickly.

Author
Tony Loton

Summary
In this article, Tony Loton shows the first steps on the road to building Java-based email applications. If you fancy building your own email client to replace Microsoft Outlook, or a Web-based email system to rival Hotmail, this is the place to start. And for a different perspective on JavaMail's possibilities, Tony presents a novel talking-email client application



[Sample Code]

import javax.mail.*;
import javax.mail.internet.*;

import java.util.*;

/**
* A simple email sender class.
*/
public class SimpleSender {

/**
* Main method to send a message given on the command line.
*/
public static void main(String args[]) {
try {
String smtpServer = "so-net.net.tw";
String to = "email address1, email address2";
String from = "email address";
String subject = "test";
String body = "JavaMail Test";

send(smtpServer, to, from, subject, body);
}
catch (Exception ex) {
System.err.println("Usage: java com.lotontech.mail.SimpleSender"
+
" smtpServer toAddress fromAddress subjectText bodyText");
}

System.exit(0);
}

/**
* "send" method to send the message.
*/
public static void send(String smtpServer, String to, String from
, String subject, String body) {
try {

Properties props = System.getProperties();

// -- Attaching to default Session, or we could start a new one --
props.put("mail.smtp.host", smtpServer);
Session session = Session.getDefaultInstance(props, null);

//create new mail
Message msg = new MimeMessage(session);
//sender
msg.setFrom(new InternetAddress(from));
//receiver
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
//email subject
msg.setSubject(subject);
//email content
msg.setText(body);
// -- Set some other header information --
msg.setHeader("X-Mailer", "LOTONtechEmail");
//send date
msg.setSentDate(new Date());

//send it
Transport.send(msg);

System.out.println("Message sent OK.");
}
catch (Exception ex) {
ex.printStackTrace();
}
}

}

2004/09/14

Write a Simple Program to Upload a File to FTP Server

download jar from here: http://www.jibble.org/simpleftp/
which named simpleftp.jar

Sample Code:

import org.jibble.simpleftp.SimpleFTP;
import java.io.IOException;
import java.io.File;
import java.io.FileNotFoundException;

public class SimpleFTPTest {
//connection information, including ip, port,
//user name and password
String ip = "10.64.203.69";
int port = 21;
String userName = "test";
String password = "fet";


public void upload() throws FileNotFoundException, IOException {

try {
SimpleFTP ftp = new SimpleFTP();
ftp.connect(ip, port, userName, password);
ftp.ascii();
ftp.cwd(remoteFile);
ftp.stor(new File("C:/odd.dat"));
ftp.disconnect();

}catch (IOException ioe) {
ioe.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) throws IOException {
SimpleFTPTest simpleFTP = new SimpleFTPTest();
simpleFTP.upload();
}
}

2004/09/09

軟體業沒希望! 台灣亟待痛定思痛

施振榮:40年來產值還非常小 一堆軟體公司賺不到錢

宏碁董事長施振榮19日罕見地對台灣軟體產業說了重話,施振榮表示,台灣硬體製造業發展至今22年,累積相當豐碩的國際成就,反觀軟體產業,40年下來產值還非常小,一堆軟體公司賺不到錢,這等於軟體產業沒有希望。

 施振榮19日應高科技產業資訊長協進會(CIO協進會)之邀,在台北以「深談微笑曲線」專題發表演講,施振榮表示,1992年當他提出「微笑曲線」時,製造本身附加價值不高,只能靠薄利多銷勉強維持,然而現階段對軟體而言,系統整合(SI)根本就是薄利少銷,爭取政府採購標案還被殺價,台灣有一堆軟體公司都賺不到錢,原因就在於軟體業的business model有很大的問題。

 針對施振榮對台灣軟體產業的看法,中華民國軟體協會秘書長張國鴻表示,施振榮說的是事實,台灣軟體業界應該要痛定思痛,早日走出國際市場。不過,張國鴻亦強調,台灣不能沒有軟體產業,尤其是硬體製造業毛利愈來愈低之後,就是軟體產業的機會。

 Linux產業促進會副會長劉龍龍則表示,如果認為台灣軟體產業未來沒有希望,就放棄軟體產業的投資與發展,非常可惜,因為現在做不好,並不表示未來也會做不好。劉龍龍認為,硬體業的成就,台灣軟體業也是與有榮焉,產業大老以成敗論英雄固然沒錯,但也應該多給軟體業成長的空間。

 至於台灣軟體產業未來該怎麼走?施振榮認為,做軟體或資訊服務業有兩條路可走,其一是垂直分工、水平整合,垂直分工就像IBM做的軟體元件、模組一樣,至於水平整合就如同1976年微軟(Microsoft)的水平式做法一樣;其二就是要走Utility(公用化)的IT 服務模式,像宏碁做的巨架構、微服務,就是一例。

 另外,據資策會市場情報中心的統計,目前台灣資訊軟體業者共有1,200家,2003年產值為新台幣1,584億元,儘管平均每年皆有2位數成長,並預估到2010年時產值可達新台幣5,000億元,然由於廠商家數過多,絕大多數規模都不大,公司員工在100人以下的比例高達79.6%,營收規模在新台幣500萬元以下的比例也高達85.9%,因此,很難在國際舞台與國際大廠競逐,成為台灣軟體產業發展一大隱憂。

2004/09/08

從30萬到24億的軟體金童傳奇

工讀生總裁

從30萬到24億的軟體金童傳奇

文 /郭奕伶、鄭呈皇

五年前,他只是一個麥肯錫的工讀生;五年後,他變成跨國企業總裁,身價兩億元。他,只有26歲,曜碩科技創辦人,郭榮昌。這是他步步為營,追求成功的故事。

這一幕情景張力十足。二十三日下午,台北國泰醫院手術房,一個二十六歲、臉色蒼白、身形消瘦的青年,躺在手術台上準備進行急性腹膜炎手術。就在醫生拿起手術刀,在他腹部劃下長達十公分傷口的同時,一筆從日本電匯過來的資金,卻也讓這名年輕人在剎那間,變成身價兩億元的少年富翁。

手術畢,年輕人被護士推入病房。除了床前掛滿的各式各樣點滴瓶、導管,以及他隨身攜帶的筆記型電腦、PDA、和手機以外,身旁沒有親人。

清醒後的第一分鐘,年輕人接到一疊文件,當他虛弱的握著筆簽完最後一個名字後,他即將成為一家日本上市公司的總裁。這家名叫Aplix的公司,是全球手機JAVA技術第一大廠商,市值折合新台幣約二百四十億元。該公司以一股一百三十元的代價,買下台灣的曜碩科技。曜碩的創辦人就是二十六歲的郭榮昌。

在動手術的三個禮拜前,也就是七月三十日,郭榮昌風塵僕僕的趕到東京證交所,向來自花旗、日本野村、等二十位國際券商分析師,報告Aplix買下他所創立的曜碩科技。緊接著,八月二十日,Aplix在日本池袋地區的東武百貨公司頂樓,邀請諾基亞、索尼愛立信、明基等全球手機客戶,舉行啤酒晚宴,並介紹即將出任總裁的郭榮昌。

過度透支體力的郭榮昌回到台灣後病倒了。人生實在很奇妙,二十六歲的他接受生平第一個手術的同時,也嘗到第一次創業就成功的滋味。

郭榮昌,一個市場陌生的六十七年次小將,如何在四年之內,把當初向母親借來的三十萬元,變成一家價值二十四億元的軟體公司?在二○○○年網路泡沫後,軟體金童已銷聲匿跡多時,郭榮昌的出線,帶出什麼新的啟示?

從建中、台大資工系、交大資工研究所的學歷來看,郭榮昌無疑是個聰明小子;再從曜碩科技的創業團隊,結合台大、清大、交大與麥肯錫企管顧問公司高手的背景看來,這個團隊的成功似乎也不令人意外。

然而,故事的過程卻不如想像中順理成章。

‧ 堅持:被排擠也要硬幹

郭榮昌奮力攫取機會的性格,在同儕中很少見。譬如,在台大時,當他覺得國際經濟商管學生會(AIESEC),是一個很有價值的跨國社團,即便社方以「AIESEC向來只收商學院學生」的理由拒絕郭榮昌加入。但郭榮昌不放棄,不但主動為其募款,還自願擔任活動跑腿,向該組織人力資源部部長劉毓雯表達出強烈的參與意願。

後來,劉毓雯獨排眾議讓他入社。她回憶,雖然當時很多人對郭榮昌的過度積極產生反感,甚至排斥,但是,劉毓雯當時就有預感,郭榮昌未來一定會成功。

也因為在AIESEC結識到的人脈,讓他有機會在大三下學期,硬擠入麥肯錫企管顧問。

雖然麥肯錫從不收取大學在校生,但郭榮昌不放棄一絲可能。他極力央求在麥肯錫上班、同為AIESEC成員的學姐,幫他想辦法,並表達即使不支薪,都願意到麥肯錫當工讀生的強烈意願。苦等一個月後,郭榮昌終於爭取到與麥肯錫香港主管面試的機會,如願進入麥肯錫的研究中心擔任研究工讀生。

進入麥肯錫,是他人生重要的轉折。那一段日子,郭榮昌雖然名義上是台大資工系三年級學生,但他早已修完系上課程,還積極選修商學院課程,同時,也在麥肯錫展開創業探索之旅。

在這個國際知名的企管顧問公司,看著一個個英文流利、身著亞曼尼套裝的專業顧問們,忙碌的洽談著各式各樣的跨國商業案件,出身平凡的郭榮昌心中,燃起「有為者亦若是」的心情。

就像由奧利佛史東執導的經典名片「華爾街」一片中,出身貧寒的年輕股市交易員畢德(Bud Fox),看到股市大戶戈登季柯(Gordon Gekko)的上流生活,心裡所燃起熱切追求成功的動力,郭榮昌感受到自己的轉變。

雖然穿的只是兩、三千元西裝,但郭榮昌與正職人員一樣,每天不熬到午夜十一、二點不下班。每週五,麥肯錫內部都有一個自助餐聚會,他告訴自己:「這是一般人無法切入的金字塔人脈庫與知識寶庫。」於是,他向旁人打聽每個顧問的背景與專長,每週都擇定一位顧問當目標,鼓起勇氣向其請教,從生涯規畫、市場趨勢,到人生經驗各式各樣的問題。對郭榮昌來說,麥肯錫就像個挖不盡的寶庫,他則像八爪章魚一樣,緊緊的抓住每一個學習的機會。

在麥肯錫時期,他可以接觸到成堆的研究報告,讓他能像獵人般尋找可以創業的商機。當時,WAP(無線應用協定)是許多手機大廠看好的技術,許多新創公司前仆後繼投入研發。但他反問自己:「等我真正出來創業,競爭者不就很多?」再者,WAP技術門檻不是很難,因此他認為既然要創業,就要往有高技術含量、還沒被挖掘的市場切入。

這時,建中死黨房達章、現任曜碩技術總監向他提起手機JAVA軟體技術。郭榮昌在成堆的研究報告中,也發現了這個新的機會。一九九九年的聖誕節前夕,兩人在台大側門外的星巴克咖啡館徹夜談出了創業計畫。

‧ 野心:做大不做小,拉高門檻

房達章手裡拿著黑白手機,裡面有「俄羅斯方塊」和「小蜜蜂」遊戲。他們盤算著,要如何切入高成長的手機軟體市場。切入遊戲軟體市場,錢,可以賺得快,但賺得短。但此時,郭榮昌「要大不要小」的個性顯露無遺。他說,與其選擇技術障礙低、已有先行者的手機遊戲軟體,還不如做讓小蜜蜂遊戲會在上面動的平台。因為,「這個技N門檻高,全世界競爭者不到五家。」就像全世界做作業系統的只有微軟一家稱霸,但做視窗上跑的軟體有無數家,郭榮昌想做的就是手機上的微軟。

當時,郭榮昌只是一名麥肯錫的工讀生,但他選擇加入「不是零就是一百」的高挑戰性賭盤。

那個讓小蜜蜂能動的軟體平台,稱為J2ME,是JAVA程式語言的一種,昇陽電腦三年前針對越來越多手持式裝置所發展的軟體技術。

想像一下,如果在各種不同系統的手機或者PDA上,都有這種軟體技術能夠大一統,只要有支援就能打破規格的限制彼此分享,下載遊戲與其他應用程式,這個「大一統的軟體」,市場會有多大呢?「光明年手機將有一億五千萬隻內建J2ME,你說這個市場大不大?」郭榮昌彷彿從一株剛迸出大地的小豆苗,興奮地嗅到春天即將到來。

隔天,郭榮昌與房達章,分頭回台大、交大、清大找創業團隊。

二○○○年五月份,郭榮昌向母親借了三十萬元,與其他六位創業夥伴,在台北辛亥路旁的小公寓開始了曜碩科技的第一年。每個人不支薪,埋頭開發技術,支付每個月兩萬塊的房租。就這樣,過了兩年毫無收入的苦日子。然而,最大的敵人並不是開發這個技術,反而是「必須耐得住寂寞」,房達章說。

因為前兩年都沒有收入,工程師流動率很高,十幾個研發人員,一度走到剩個位數。「我也曾經想要放棄」,房達章回憶,過程中,看不到未來在哪裡的痛苦糾纏著。

‧ 人脈:爭取金主,吃飯也要用心機

然而,在郭榮昌的堅持下,隨著市場商機越來越成熟,他們的技術也獲得突破,曜碩的爆發力一點一滴的累積著。隨身都帶著筆記型電腦、幾支手機,郭榮昌逢人就簡介公司的產品,為了爭取生意、爭取金主,他使出硬拗的精神,即使花費半年、一年的時間,他都不放棄,常常工作到凌晨三、四點。

這時,郭榮昌以過去的人脈為基礎,透過五層關係,爭取到科技界大老——穩懋副董事長林燕津的入股。林燕津並以最大股東身分,成為曜碩科技前三年的董事長。

有一次,林燕津與科技界好友餐敘,他隨口告訴郭榮昌說:「有空可以過來一起吃飯。」郭榮昌發現,這次餐敘名單中有一位廣達的資深主管,於是,他那一天特別將全部行程空出來,希望可以在晚上餐敘場合中完美演出,爭取訂單。他騎著一部舊摩托車,提早半小時到餐敘地點福華飯店附近等待,一圈圈的繞著台北仁愛路圓環。

眼看著時間已經過了半小時,林燕津都沒有來電通知,「每一秒鐘都很難熬,我的心怦怦得快跳出來了,」郭榮昌回憶那一刻。後來,他忍不住撥了電話,「我們已經開始吃了啊,你可以過來,」聽到林燕津這句話,滿頭大汗的郭榮昌,立刻衝進飯店。

那場聚會後,郭榮昌找到了廣達手機部門的窗口,半年後,第一張訂單終於下來了。郭榮昌永遠記得,這個技術是研發團隊們,過去一年來打地舖睡在公司的心血結晶。

‧ 學習:累積學習曲線,與大廠頻互動

當時,他們拿到廣達的手機規格,拆開裡面硬體,CPU晶片、音效卡以及作業系統等,每個零件都有相對應的開發程序,很多都是以前沒做過的。因此,為了把手機上的射擊遊戲流暢度表現最好,他們把零件一個個拆開來研究,企圖在占用記憶體最小的情況下,能使遊戲表現最好。

過程中,只要遊戲畫面中有一個子彈或飛機停一下,或者音效不見,就得放棄重新再來。還有好幾次是拿到廣達後,發現還是不行,半夜又立刻派人去拿,一路做到早上。
當曜碩幫廣達做出第一隻J2ME手機後,明基、華碩等大公司紛紛打聽這個名不見經傳的小老弟有何能耐,能夠做出不讓遊戲出現遲緩的軟體。就這樣,曜碩累積學習曲線,和大廠的互動越來越快。

大廠的保證,給了曜碩很大的信心,財務窘困也碰到解題。二○○二年時,他們手上的現金只夠再燒半年,郭榮昌到處找錢,但是創投們都問:「憑什麼要投資你?」當他把這些大廠的合約攤在桌上後,曜碩陸續取得了日本軟體銀行、漢鼎創投、三菱等創投的資金入股。

當時,來自麥肯錫、現任曜碩副總的詹兆源對著內部員工說:「我不知道有沒有一家J2ME公司會成功,但是如果有,一定是我們。」在這樣的堅持下,不到三年的時間,曜碩攻下韓國的Maxon、中國的TCL、夏新、聯想等客戶,成為全球五千六百萬隻J2ME手機的技術廠商,也成為大中華區最大的手機軟體技術廠商。

市場的發展越來越證明,曜碩的選擇正確。Strategies Unlimited公司統計,也顯示相同的發展趨勢。市場上J2ME手機的數量,二○○六年將從現在的一億隻成長到五‧五三億隻,占全部手機出貨量的八三%。

曜碩的成功故事背後,竟是,一個嗅到趨勢的麥肯錫工讀生,所展現出的創業者膽識。
三年前,前資迅人創辦人賀元在經營事業失敗後,還是激勵他的後起者:「相信你所做的事,就堅持下去,歷史會證明一切。現在看很多事也許是錯的,但三年之後可能就變成對的,就是go for it!」他最怕台灣因為資迅人倒了,就認為Internet沒前途。「我相信當Internet第二波來臨時,對社會的影響會比現在大很多,也會產生很多成功的創業家,但不一定是我。」

資迅人倒閉時,也正是曜碩處於大環境的低潮期,郭榮昌與房達章在黑暗中苦撐著。工研院電通所經理陳進松就說,「JAVA手機也是最近兩年才開始流行,但是曜碩早在四年前就開始起跑」。起跑早的曜碩,在技術與人才優勢上卡到關鍵性的位置。這個技術需要的是硬、軟體都了解的工程師,「在台灣絕對不超過一百個」。

布局很早的曜碩後來是掌握這類人才的最大基地,房達章主導下,他們現在兩岸有四十位研發人員。

再者,此技術特別的地方在於手機每款都不一樣,因此客製化的能力也要強;換言之,光懂技術沒有練兵的經驗也沒用,因此和各大手機廠的整合能力顯得重要。這部分由於只有曜碩有機會和大廠切磋,相對就脫穎而出。目前全世界十大手機廠中,一半以上已經是曜碩的客戶。

今年五月,日本Aplix公司創辦人暨執行長郡山龍,發現曜碩在大中華區的實力,希望能購併曜碩。但是,第一眼看到郭榮昌後,郡山龍沉默了許久,他說:「我不知道要怎麼下手?」同樣是二十出頭就創業的郡山龍很清楚,對這麼年輕的小伙子,既沒結婚也沒負擔,什麼都不缺,如果要談合作,錢根本不是重點,因為,他們唯一有的就是澆不熄的熱情。

「我不知道他們要什麼?也不知道要怎麼出價?」郡山龍深怕一個不小心,郭榮昌就停止談判。因為,十年前,郡山龍也曾斷然拒絕美國網景(Netscape)公司,以兩千萬美元收購Aplix。十年後,Aplix的市值已經是當初收購價格的三十五倍。事實上,郭榮昌心裡也想:「如果他想用錢來砸我們,我們就馬上拉回來,大不了對幹嘛,反正我們也沒什麼好怕的!」

以尊重的態度,郡山龍與郭榮昌見了三次面,取得郭榮昌的信任後,雙方決定展開磋商。這時,曜碩董事長吳廣義(編按:宏碁集團創始人之一,去年九月以法人股東受邀出掌曜碩)發揮了重要的功能,他給了郭榮昌兩個談判錦囊:第一,要快;第二,不能讓Aplix有放棄的機會。吳廣義說,因為一旦開始談,對方就會對曜碩的相關客戶、技術資料進行估價、調查,如果時間拖久了,「曜碩都給人看光了」。因此,雙方簽下一紙有條件的合作意向書,聲明如果談判破裂,對方必須支付曜碩一筆不小的賠償金。

在收購談判的三個月裡,對方派出大股東、同時也是董事之一的高盛證券日本分公司主管主談,郭榮昌則一個人單槍匹馬上陣。二十六歲、毫無投資銀行實務經驗的郭榮昌,對上四十出頭歲的一流投資銀行高手;雙方從一億美元賣價對四千萬美元買價的拉鋸戰開始,進行一波波的攻防、心戰喊話。

這九十天裡,郭榮昌的情緒持續處於亢奮狀態,不管多晚睡覺,每天早上六點鐘一定自動驚醒,其壓力不言可喻。到最後,雙方以七千萬美元成交;也就是說,Aplix以一股一百三十元的高價,收購資本額曜碩科技,總收購金額高達二十四億元。

這場談判,郭榮昌其實有兩個選擇,一種是合併後,郭榮昌繼續留在公司擔任總裁;另一種則是拿一筆錢,然後走人。對多數人來說,即便是一個四、五十歲的創業者,後者的選擇毋寧是容易的,郭榮昌大可以拿個幾億元走人,再創一家新公司,或者從此閒雲野鶴。但是,他沒有,他要的更大。他說:「錢向來不是我的重點,我要的是跨國企業的經歷。」與華爾街片中,那位年輕交易員畢德不同,郭榮昌要的是創造事業的成就感,而不只是享受財富的快感。

二十六歲的年輕人,心境卻如入定的老僧。

酒酣耳熱之際,四十一歲的郡山龍對郭榮昌說:「我現在什麼都有了,也什麼都經歷過了,我希望可以早點退休,培養你當Aplix未來的接班人選」。此刻的郭榮昌,距離他夢想的國際舞台只有咫尺之遙。

檢視郭榮昌的創業歷程,是極度濃縮式的。也不過兩年前,他還苦苦的過著毫無收入、每個月淨現金流出的日子,甚至在法人出資入股後,還得隻身面對董事會的無情批判、裁員的困境。當時,他的許多同學們進了聯發科等大公司,身價早已上千萬,甚至買了三百多萬元的賓士三二○名車。

但是,他仍然堅持走自己的路:「我不要順理成章、一帆風順的成功,我要享受創造的樂趣最好能遇到一些挫折」。回頭看郭榮昌的歷練,他步步布局走向成功,沒有絲毫僥倖。

隨著公司規模擴大,郭榮昌未來的路還很長。工研院經理陳進松說,由於這個市場最近才開始興起,錯過第一波市場的廠商,當然也不會放過,未來手機大廠如諾基亞都會考慮自己養人才,因此,未來郭榮昌所面對的競爭態勢將更加詭譎。

不僅如此,從創業家到經營者,郭榮昌未來面臨的跨國管理,挑戰更大。畢竟,他仍是年少得志的CEO,更高的山峰還在後頭。

◇更多內容-- http://www.businessweekly.com.tw/

2004/08/06

How to Utilize JDeveloper to Develope JSF

Developing Faces
By Chris Schalk

Use Oracle JDeveloper 10g to develop JavaServer Faces applications.

Building enterprise J2EE Web applications has always been a bit of an art. Although J2EE provides more-than-adequate foundational technologies for building scalable enterprise Web applications, it previously lacked a high-level API to glue these technologies together and provide a single, consistent way to build J2EE Web applications. The recent introduction of JavaServer Faces (JSF) 1.0, however, brings standardization and consistency to J2EE Web application development.

Oracle JDeveloper 10g is Oracle's integrated development environment for Java, Web services, XML, PL/SQL, and more. This article describes how to work with JSF in Oracle JDeveloper 10g.

http://www.oracle.com/technology/oramag/oracle/04-jul/o44dev_ojdev.html

簡體中文版
[Attention]As you run the JSF page(ex.jsp1.jsp), the file name suffix shuold be changed from .jsp to .faces, or it will throw an exception just like this "javax.servlet.jsp.JspException: Cannot find FacesContext"

2004/08/01

IDE Tool to Deal With JSF Config File

JBuilder 11 will support JSF, but before it release, we can use one tool which called Faces Console.

Faces Console is a free and easy way to deal with the complexities of JSF configuration files.

The Faces Console fully supports the creation and modification of JSF configuration files and plugs into many widely used Java IDEs. Those of you familiar with the popular Struts Console tool will feel right at home with this one.

2004/07/30

JSF Course Materials

01-JSF-Intro.pdf
02-Page-Navigation.pdf
03-Managed-Beans.pdf
04-HTML-Library.pdf
05-Validation.pdf
06-Expression-Language.pdf
07-JSF-and-JSTL.pdf

http://courses.coreservlets.com/Course-Materials/pdf/jsf/


2004/07/21

e-book: Core JavaServer Faces

 
This web site contains a sneak preview of the upcoming Sun Microsystems Press book Core JavaServer Faces.

http://horstmann.com/corejsf/



2004/07/20

Put JSF to work

Build a real-world Web application with JavaServer Faces, the Spring Framework, and Hibernate
Summary-->
SummaryBuilding a real-world Web application using JavaServer Faces is not a trivial task. This article shows you how to integrate JSF, the Spring Framework, and Hibernate, and describes best practices and design guidelines for building a real-world Web application using these technologies. (4,800 words; July 19, 2004)
 
http://www.javaworld.com/javaworld/jw-07-2004/jw-0719-jsf.html

2004/07/19

Cewolf

Introduction

Cewolf can be used inside a Servlet/JSP based web application to embed complex graphical charts of all kinds (e.g. line, pie, bar chart, plots, etc.) into a web page. Therefore it provides a full featured tag library to define all properties of the chart (colors, strokes, legend, etc.). Thus the JSP which embedds the chart is not polluted with any java code. Everything is described with XML conform tags.
Cewolf is based on JFreeChart and uses it's rendering engine to render the final chart image into the clients response stream. No files are created on server side. Everything is based on lightweight session objects and dynamic data analysis. Cewolf consists of one servlet which handles the chart rendering and a taglibrary which translates the chart definition included in the JSP into an HTML img tag which consults the rendering servlet for retrieval of the appropriate chart.

link: http://cewolf.sourceforge.net/





2004/07/15

JDBC 入門

http://sun.cis.scu.edu.tw/~nms9115/articles/
java/WebAppTutor/JDBC/JDBC.htm

SCDJWS研習重點

Quote from Evelyn Cartagena

WS-I Basic Profile
Web Services Interoperability Organization:
Basic Profile 1.0a, Final Specification, August 8, 2003.

XML

World Wide Web Consortium:
Extensible Markup Language (XML) 1.0 (Second Edition), W3C Recommendation, October 6, 2000.
Namespaces in XML, W3C Recommendation, 1999.
XML Schema Part 0: Primer, W3C Recommendation, May 2, 2001.
XML Schema Part 1: Structures, W3C Recommendation, May 2, 2001.
XML Schema Part 2: Datatypes, W3C Recommendation, May 2, 2001.
XPointer xpointer() Scheme, Working Draft, December 19, 2002.


SOAP

World Wide Web Consortium:
Simple Object Access Protocol (SOAP) 1.1, W3C Note, May 8, 2000.
SOAP Messages with Attachments, W3C Note, December 11, 2000.
SOAP Security Extensions: Digital Signature, W3C Note, February 2001.


WSDL

World Wide Web Consortium:
Web Services Description Language (WSDL) 1.1, W3C Note, March 15, 2001.


UDDI

Organization for the Advancement of Structured Information Standards:
Providing a Taxonomy for Use in UDDI version 2, 2002.
UDDI Version 2.04 API Specification, 2002.
UDDI Core tModels: Taxonomy and Identifier Systems, 2001.


J2EE

Java 2 Platform, Enterprise Edition, version 1.4, Final Release, November 23, 2003.
Java Servlet, version 2.4, Final Release, November 24, 2003.
Enterprise JavaBeans, version 2.1, Final Release, November 24, 2003.
Implementing Enterprise Web Services, version 1.1, Maintenance Final Release, January 23, 2004.


Java Web Services

Java API for XML-Based RPC, version 1.1, Final Release 2, Octover 28, 2003.
Java API for XML Processing, version 1.2, Final Release 2, September 10, 2002.
Java API for XML Registries, version 1.0, June 11, 2002.
SOAP with Attachments API for Java, version 1.2, Final Release 2, October 21, 2003.
Java Architecture for XML Binding, Version 1.0, March 4, 2003.

2004/07/14

Struts 1.2.1 (Beta) Released

The Struts team announces the release of Struts 1.2.1, currently ranked at Beta quality.

This release removes many features deprecated in prior releases (Struts 1.1 and Struts 1.0.2) and also provides several new features. Fixes to known problems have been applied. More detail is available at

* http://struts.apache.org/userGuide/release-notes.html

The binary, source, and library distributions are available at

* http://cvs.apache.org/dist/struts/v1.2.1/


2004/07/11

Exclusive JBuilder 11 Sneak Preview

底下是JBuilder 11的demo
環繞在開發JSF的便利性,看起來真的是蠻方便
看他icon旁邊寫著mavericks,不知道有啥涵義,不知道為啥要叫小牛?


Exclusive JBuilder 11 Sneak Preview

2004/07/10

J2EE Development with free and open source tools

http://chariotsolutions.com/slides/open-source-delaware.ppt

這份文件整理的非常好,幾乎把所有open source的東西都列上去了,如
Database: PostgreSQL, MySQL, SAP DB, HyperSonic / HSQL, McKoi, Xindice
Persistence Tier Framework: EJB CMP, OJB, Hibernate, Castor, Torque, JORM
Web Container: Tomcat, Jetty
AP Server: JBoss, Apache Geronimo, JOnAS, OpenEJB, OpenJMS, JORAM, JOTM
Web Frameworks: Struts, Cocoon, Turbine, Velocity, Tapestry, WebWork, Spring

等等等等

2004/07/09

Middlegen

http://boss.bekk.no/boss/middlegen/

Are you tired of the headaches involved with editing deployment descriptors and entity bean source code? Middlegen is a free general-purpose database-driven code generation engine based on JDBC, Velocity, Ant and XDoclet. If you already have a database, you can use Middlegen to generate...
•Persistance layer with EJB (CMP 2.0)
•Persistance layer with JDO
•Persistance layer with Hibernate
•Persistance layer with Torque
•Database GUI with JSP/Struts

Developping database-driven applications with Middlegen is easy:
1.Create the database with your preferred database modeler tool
2.Configure Middlegen to access the database and read the database schema
3.Run Middlegen from Ant, and (optional) with the GUI tool, rename tables and columns, tune relationships and type-mappings
4.Generate your source code with Middlegen
5.Run XDoclet to generate the additional files like EJB homes and interfaces, and deployment descriptors
6.Compile and deploy your application

Hibernate开发指南

Document: http://www.cjsdn.net/user/download/
99083/Hibernate%20%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97.pdf


Official Site: http://hibernate.bluemars.net/

2004/07/08

Example for Struts+Session Bean+Entity Bean+Log4j

Environment:Win XP Pro
App Server: Oracle 9i AS
DataBase: Oracle 9i
IDE Tool: JDeveloper 10g
使用PropertiesEditor來編輯ApplicationResources.properties

Struts: http://jakarta.apache.org/struts/
Session Bean, Entity Beam: http://java.sun.com/products/ejb/
Log4j: http://logging.apache.org/log4j/docs/

API:http://home.so-net.net.tw/albertguo/SampleCode/PMS_API.zip
Sample Code: http://home.pchome.com.tw/happy/junyuo/SampleCode/PMS.zip

Architect的專業與角色

作者:金興昇先生
簡歷:為Sun Microsystems教育訓練中心特約講師, 已取得Sun在Java方面的最高級認證 - SCAJ (Sun Certified Architect for J2EE Technology)。目前他負責教授進階J2EE的相關課程(J2EE應用架構與設計, J2EE Design Patterns等)


●一直以來,資訊技術(IT)領域存在著一大隱憂,不論是所謂的企業內 (In house)或是軟體公司(Software house)的IT團隊,大多數都缺乏 架構設計師(Architect)的編制。架構規劃的工作大都由專案經理、系 統分析師與程式設計師兼任或分攤了,導致普遍輕忽軟體架構專業人 才的培養與任用。再不然就是常常將架構設計師(architect)職位作為 留住項尖開發人員所用的升級獎勵。其實架構設計師與系統分析師、 程式設計師的專業領域與角色並不相同,接下來我還會進一步點出其 中的根本差異。

上述情形在以往系統架構並不複雜的狀態下,還不至 於發生太大的問題。但在分散式架構到處可見的現在,系統本身涉及 的實體層面愈來愈複雜,再加上系統服務的範圍與重要性在e化的潮 流下與日俱增,遂使諸如安全性(Security)、可用性(Availability) 、可靠性(Reliability)、延展性(Scalability)、效能(Performance) …等系統層次的非功能性需求(Non-Functional requirement)日益重要。

●請看以下兩則最近才發生的新聞:

「財政部表示,如果納稅人不願所得資料上網,在四月二十日以前,仍可以透過網際網路提出申請。不過,財政部的報稅網站(http://tax.nat.gov.tw)最近因為湧入大量瀏覽人次,經常塞車,甚至爆掉,許多納稅人等待二、三個小時仍無法連上網路。」

-----4/16聯合報 (申請報稅資料免上網 一團亂)


「刑事局針對資料隱碼攻擊手法可能對國內網站的危害分析後,發現國內八成以上的電子商務網站與各級政府網站,普遍有這種安全漏洞,會被駭客乘隙而入。更驚人的是,某些電子商務網站已經安裝防火牆與防毒軟體系統,並使用網路交易安全機制,確認網路交易的身分認證權限,但是資料隱碼攻擊者還是可以輕易找到漏洞,破壞交易安全的認證制度。」

-----4/23聯合報 (資料隱碼攻擊 八成網站躲不過)
急於在最後期限之前申請個人所得資料不上網造成報稅網站大塞車, 曝露網站系統在可用性、延展性、效能等等系統層次的問題。資料隱 碼(SQL Injection)模式的駭客攻擊,顯示安全性始終是資訊系統 最重要的考量。在這些一連串新聞背後都是資訊系統架構層次的問題 。因此國外有專家戲稱開發系統若不妥善規劃處理這類非功能性需求 ,就容易發生所謂的「CNN時刻」 (當資訊系統發生重大問題而造成 CNN頭條新聞的時刻)。

也就是說在媒體發達的今日,軟體功能的完善與否固然重要,但是系統架構層次(亦即非功能性需求所對應的層次)一旦出現問題,馬上就有可能成為媒體競相報導的題材,造成企業形象無可彌補的損失。因此開發團隊若沒有職司因應架構層次需求的架構設計專業人員,由於相關技術人員責任不清、角色不明,對於目前愈來愈複雜的分散式架構,難免就會發生捉襟見肘,難以支應的狀況。這種情況就好比要蓋一棟現代化大樓的建築公司缺乏建築技師一樣,這在建築業是不可思議的事,可是在軟體業卻是司空見慣。

之前為了準備這篇短文用「Architect」上網搜尋相關資訊,無意間 看到網友談到這個英文字的中文翻譯與意涵:

「由於 Engineer 聽起來太過死板, 所以就算在電腦的世界中有人會 覺得稱他們自己為 Architect 比較有設計/創造者的意味在裡頭, 基 本上英文是非常活的語言, 如果你頭腦夠活, 你高興用 Software Director/Designer/Artist/Architect 都無所謂... 」 -----tw.bbs.lang.english
(Re: "Architect"一詞除作"建築師"之外尚有何翻譯?)

在Marc Sewell 與 Laura Sewell去年出版的「The Software Architect's
Profession: An Introduction」一書中,曾很俏皮的在該書前言中引 用牛津英文字典對「Architect」的解釋(一般字典都將其視為建築師、 或其它諸如造船工業等技術領域作解釋),並加入以下一段注釋突顯在 軟體領域上的解釋:
「c In full software architect. A designer of software based
technology, who prepares plans, and superintends construction. 」

這句話指出「Architect」主要就是準備計劃並監督建構過程的軟體技 術設計人員,這也就是我會用「架構設計師」作為其譯文的原因。其 實一個好的架構設計師不只是位受到尊敬的資深技術人員,通常也是 策略制定、組織協調高手、稱職的顧問與領導者。這是因為軟體架構 規劃與設計主要就是以巨觀(Macro View)的角度切入系統架構,一般 所謂的設計(Design)則是以微觀(Micro View)的角度切入。比如一般 設計師通常考慮的層次是一個使用者按下按鈕時所發生的狀況,而架 構設計師考慮的則是成千上萬個使用者按下按鈕時所發生的狀況。架 構設計師規劃系統的角度主要都是從Top-Down方式著手,而一般設計 師則是多半從Bottom-Up的方式著手。另外,就以大家耳熟能詳的設計 模式(Design Pattern)為例,其實它也被稱為微架構模式(Micro Architecture Pattern),而諸如Model-Control-View (MVC)等涉及架 構層次的Pattern則被稱為架構模式(Architecture Pattern)。這種 巨觀/微觀的角度分野,在其它學科也常看見,如總體經濟學與個體 經濟學,大歷史觀與微歷史觀等等。這種巨觀角度的本質,就是架構 設計師專業領域與其它軟體開發人員最根本的不同之處。 從巨觀的角度,舉凡架構規格與決策、排定架構審閱時程、解決所有 架構相關的問題、所有主要技術決策的核可、維護架構規格等等都是 架構設計的主要工作。

●一位好的架構設計師通常具有以下專業領域的技術素養:

企業需求
硬體與軟體架構
分析、設計與開發
產品支援
效能、安全性、容量規劃(capacity planning)、網路
通常在專案的一開始,需求與初始分析等工作流程會產生規劃的企業 流程與預期系統完成的功能。有了這些資訊,架構設計師就能研擬最 初的高階架構藍圖(blueprint)並列出影響架構可能因素的清單。另外 ,架構設計師也要擔負估算專案成本的職責。這通常是經由審慎評估 這些將會付諸實施的專案計劃對系統既有基礎結構(infrastructure) 與架構的衝擊,以及計算可能付出的成本與所帶來的效益而訂定。

除了上述任務以外,檢查初期架構規劃設計、影響因素與成本,維持 與企業架構決策的一致性也是架構設計師的重要職責之一。這通常要 找出制定專案的架構決策與其優先順序的判斷基準、定義問題領域 (Problem Domain)、決定可能解決方案的制約條件、確認有關可能解 決作法的假設狀況以及辨識模組重用的可能性。架構設計師也必須負 責確保需求的達成,以及硬體、軟體、基礎結構、效能、安全性、容 量、可用性和系統運作、管理與維護等等屬於系統層次相關技術之間 的協調與平衡。在某些關鍵時刻,他也要做出系統與架構在協調、妥 協與平衡上種種必須當機立斷但又很困難判斷的決策。

架構設計師必須設法降低可能的技術風險(technical risk)對系統的 衝擊。在規劃初期,技術風險對一般人來說通常都是不可知、不可驗 證也不可測的。風險大多與系統層次的需求有關,有時也會與企業需 求有關。不論任何風險的類型,有經驗的架構設計師都可在專案的先 期也就是構建架構時期,預先列出這些可能的風險,然後在後續的開 發時期配合開發人員予以適當地處理與解決。另外,架構設計師也必 須領導開發團隊,保持與其它成員的良好互動,確保開發人員是根據 架構藍圖來構建系統。

就如我之前所說,一個好的架構設計師通常也是策略制定、組織協調 高手、稱職的顧問與領導者。他主要的任務就在規劃與系統架構層次 相關的事務,評估可能的風險與成本,並有效運用有限的人力、物力 資源達成系統層次的需求。這樣的專業人員在很難預知何時湧入大量 瀏覽使用者,廣泛運用諸如多層(Multi-tier)、叢集式(clustering) 等複雜分散式架構,系統效能、安全性、可靠性動輒成為媒體報導焦 點的e化潮流下,更加突顯其無可替代的重要性。

「一個具有架構設計師的開發團隊未必就一定能妥善處理系統層次的 需求,但一個不具有架構設計師的開發團隊則肯定沒有人會專責處理 系統層次的需求。」

參考書籍:

“Software Architect's Profession, An Introduction”
by Marc Sewell, Laura Sewell Prentice Hall 2001


"Sun Certified Enterprise Architect for J2EE Technology Study Guide"
by Mark Cade, Simon Roberts Prentice Hall 2002

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題左右,是值得注意的一個地方。