<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/1.5.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>

<channel>
	<title>Build Up To Something</title>
	<link>http://www.stevenchoy.com/wordpress</link>
	<description>Teaching, Learning, Software, Computing, Web, Tech, and Culture</description>
	<pubDate>Tue, 07 Aug 2007 00:48:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.2</generator>
	<language>en</language>

		<item>
		<title>Java books available for free download?</title>
		<link>http://www.stevenchoy.com/wordpress/java-books-available-for-free-download/</link>
		<comments>http://www.stevenchoy.com/wordpress/java-books-available-for-free-download/#comments</comments>
		<pubDate>Tue, 02 May 2006 15:41:24 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/java-books-available-for-free-download/</guid>
		<description><![CDATA[	A website called computer-books.us provides information about computer books that are available for free download. I think the website good since it is useful for those who are seeking free online books for computer programming. 
	I was interested in Java so I clicked on the link to Java Programming. The website then showed me a [...]]]></description>
			<content:encoded><![CDATA[	<p>A website called <a href="http://www.computer-books.us/">computer-books.us</a> provides information about computer books that are available for free download. I think the website good since it is useful for those who are seeking free online books for computer programming. </p>
	<p>I was interested in Java so I clicked on the <a href="http://www.computer-books.us/java.php">link to Java Programming</a>. The website then showed me a page that contains links to 11 Java programming books. I then clicked <a href="http://www.computer-books.us/java_1.php">the first link</a>, and saw the book cover of &#8220;Enterprise JavaBean Second Edition&#8221; with the following statement on the right:</p>
	<blockquote><p>For your free electronic copy of this book please verify the numbers below.<br />
(We need to do this to make sure you&#8217;re a person and not a malicious script)
</p></blockquote>
	<p>At that point, I expected that I would download the whole electronic copy of the book after I entered the number (which is always the same number&#8211;89703)  and pressed the &#8220;download&#8221; button. I went on as instructed and got to the page saying that:</p>
	<blockquote><p>You&#8217;ve been verified as a person and not a script!<br />
To download this book, click on the title <a href="http://www.computer-books.us/downloads/entjavabeans.zip">Enterprise JavaBeans</a><br />
I hope you find the book useful.
</p></blockquote>
	<p>I clicked the link to download a zip file, which I expected it should be the electronic copy of the book. The ending of this story is that, at the end, I just got a 2531-bytes HTML file that points to <a href="http://www.unix.org.ua/orelly/java-ent/ebeans/index.htm">the online version of the book</a>. At that moment, I had the feeling that I was fooled by the website. </p>
	<p>I switched to search engines to check the other books listed in <a href="http://www.computer-books.us/java.php">the page</a>, and finally found that most of them had their online version only (in a volume of HTML file). Here are my one-hour work; they point to the direct links to those free Java books. </p>
	<ul>
	<li><a href="http://www.unix.org.ua/orelly/java-ent/ebeans/index.htm">Enterprise JavaBeans Second Edition</a> (Publisher: O&#8217;Reilly &#038; Associates, Inc. Author: Richard Monson-Haefel; ISBN 1-56592-869-5E; Second edition, published March 2000.)
</li>
	<li><a href="http://java.sun.com/developer/onlineTraining/Programming/BasicJava1/index.html">Essentials of the Java Programming Language, Part 1</a> (From Sun Developer Network&#8217;s Tutorial &#038; Code Camps; Author: Monica Pawlan, March 1999)
</li>
	<li><a href="http://java.sun.com/developer/onlineTraining/Programming/BasicJava2/index.html">Essentials of the Java Programming Language, Part 2</a> (From Sun Developer Network&#8217;s Tutorial &#038; Code Camps; Author: Monica Pawlan, July 1999)
</li>
	<li><a href="http://www.wuppy.net.ru/books/Orelly/java/exp/index.htm">Exploring Java</a> (Publisher: O&#8217;Reilly &#038; Associates, Inc. Author: Patrick Niemeyer &#038; Joshua Peck; 1-56592-184-271-9, 500 pages (est.) 2nd Edition July 1997 (est.)</li>
	<li><a href="http://chortle.ccsu.ctstateu.edu/CS151/cs151java.html">Introduction to Computer Science using Java</a> (Revised and Expanded, July 2003; Bradley Kjell, Central Connecticut State University)
</li>
	<li><a href="http://math.hws.edu/javanotes/">Introduction to Programming Using Java</a> (Author: David J. Eck)
</li>
	<li><a href="http://www.wuppy.net.ru/books/Orelly/java/awt/index.htm">Java AWT Reference</a> (Publisher: O&#8217;Reilly &#038; Associates, Inc. Author: John Zukowski; 1-56592-240-9, 1074 pages; 1st Edition April 1997)
</li>
	<li><a href="http://www.wuppy.net.ru/books/Orelly/java/langref/index.htm">Java Language Reference</a> (Publisher: O&#8217;Reilly &#038; Associates, Inc. Author: Mark Grand; 1-56592-326-X, 475 pages; 2nd Edition July 1997)
</li>
	<li><a href="http://www.unix.org.ua/orelly/java-ent/servlet/index.htm">Java Servlet Programming</a> (Publisher: O&#8217;Reilly &#038; Associates, Inc. Author: Jason Hunter with William Crawford; ISBN 1-56592-391-XE; First edition, published October 1998.)
</li>
	</ul>
	<p>What do you think about that? </p>
	<p><strong>Update</strong>: I also found the following two websites that contains a lot of online versions of O&#8217;Reilly&#8217;s books. I have no idea on why they can do that. </p>
	<ul>
	<li><a href="http://www.wuppy.net.ru/books/Orelly/">www.wuppy.net.ru/books/Orelly/</a></li>
	<li><a href="http://www.unix.org.ua/orelly/">www.unix.org.ua/orelly/</a></li>
	</ul>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/java-books-available-for-free-download/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Java API for processing XML</title>
		<link>http://www.stevenchoy.com/wordpress/java-api-for-processing-xml/</link>
		<comments>http://www.stevenchoy.com/wordpress/java-api-for-processing-xml/#comments</comments>
		<pubDate>Tue, 21 Mar 2006 16:24:10 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/java-api-for-processing-xml/</guid>
		<description><![CDATA[	There are two major standard APIs for processing XML with Java, namely, the Simple API for XML (SAX) and the Document Object Model (DOM). In addition, there are a few of other APIs that intend to address some of the drawbacks of SAX and DOM. The following lists the major websites about this topic. 
	SAX: [...]]]></description>
			<content:encoded><![CDATA[	<p>There are two major standard APIs for processing XML with Java, namely, the Simple API for XML (SAX) and the Document Object Model (DOM). In addition, there are a few of other APIs that intend to address some of the drawbacks of SAX and DOM. The following lists the major websites about this topic. <a id="more-288"></a></p>
	<p><strong><a href="http://www.saxproject.org/">SAX</a></strong>: It stands for Simple API for XML. It is the gold standard of XML APIs.</p>
	<blockquote><p>SAX is the Simple API for XML, originally a Java-only API. SAX was the first widely adopted API for XML in Java, and is a “de facto” standard. The current version is SAX 2.0.1, and there are versions for several programming language environments other than Java.
</p></blockquote>
	<p><strong><a href="http://www.w3.org/DOM/">Document Object Model (DOM)</a></strong>: It is a fairly complex API that models an XML document as a tree. It is a read-write API. It can both parse existing XML documents and create new one.</p>
	<blockquote><p>The Document Object Model is a platform- and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents.
</p></blockquote>
	<p><strong><a href="http://java.sun.com/webservices/jaxp/index.jsp">JAXP (Java API for XML Processing)</a></strong>: It enables applications to parse and transform XML documents independent of a particular XML processing implementation. It bundles SAX and DOM together along with some factory classes.</p>
	<p><strong><a href="http://www.jdom.org/">JDOM</a></strong>: It is a Java-native tree-based API that intends to deal with some drawbacks of DOM.</p>
	<blockquote><p>
JDOM is, quite simply, a Java representation of an XML document. JDOM provides a way to represent that document for easy and efficient reading, manipulation, and writing. It has a straightforward API, is a lightweight and fast, and is optimized for the Java programmer. It&#8217;s an alternative to DOM and SAX, although it integrates well with both DOM and SAX.
</p></blockquote>
	<p><strong><a href="http://dom4j.org/">dom4j</a></strong>: It is a Java-native, tree-based, read-write API for processing generic XML. </p>
	<blockquote><p>
dom4j is an Open Source XML framework for Java. dom4j allows you to read, write, navigate, create and modify XML documents. dom4j integrates with DOM and SAX and is seamlessly integrated with full XPath support.
</p></blockquote>
	<p><strong><a href="http://www.xmlpull.org/">XML Pull Parsing</a></strong></p>
	<blockquote><p>XML Pull Parsing is touted as a high performance alternative to DOM for XML parsing that is easier to use than SAX. SAX is push API and enjoys wide spread adoption virtually removing any other push API in Java. This is not the case for pull parsing where many APIs were created and only recently JSR 172 StAX (Streaming API for XML) promises to provide one standard. However even if StAX will become the API for pull parsing it is important to understand choices made in API, especially dual nature of StAX API. Additionally when choosing XML processing API between tree oriented (such as DOM), streaming push (SAX) and pull (StAX) it is crucial to understand limitations of each approach and in particular trade-off between easiness of use and memory utilization/performance.
</p></blockquote>
	<p>Should you konw other popular API for processing XML with Java that I do not list here, please let me know.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/java-api-for-processing-xml/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Java Design Patterns Explained</title>
		<link>http://www.stevenchoy.com/wordpress/java-design-patterns-explained-and-practical-examples/</link>
		<comments>http://www.stevenchoy.com/wordpress/java-design-patterns-explained-and-practical-examples/#comments</comments>
		<pubDate>Wed, 08 Feb 2006 07:12:21 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Software Engineering</category>
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/java-design-patterns-explained-and-practical-examples/</guid>
		<description><![CDATA[	I looked for some materials to aid teaching and learning of software design patterns. I wanted something suitable for students to play with during practical and tutorial sessions. 
	The first website I reached is Java Design Patterns Reference and Examples at FluffyCat.com. This site provides simple yet good and complete example codes for many design [...]]]></description>
			<content:encoded><![CDATA[	<p>I looked for some materials to aid teaching and learning of software design patterns. I wanted something suitable for students to play with during practical and tutorial sessions. </p>
	<p>The first website I reached is <a href="http://www.fluffycat.com/Java-Design-Patterns/">Java Design Patterns Reference and Examples</a> at FluffyCat.com. This site provides simple yet good and complete example codes for many design patterns. However, there are no detailed descriptions nor in-depth discussions.</p>
	<p>The second website I reached is <a href="http://www.javaworld.com/">JavaWorld.com</a>. It contains some good articles on Java design patterns. Each article (around 1,0000 in length) focuses on one design pattern at a time and has example applications with explanation and discussions. The following are what I found useful for student practical works and classroom discussions. <a id="more-274"></a></p>
	<ul>
	<li><strong>Command Pattern</strong>: <a href="http://www.javaworld.com/javatips/jw-javatip68_p.html">Learn how to implement the Command pattern in Java</a>. Add flexibility and extensibility to your programs with this object-oriented equivalent of the callback.</li>
	<li><strong>Observer Pattern</strong>: <a href="http://www.javaworld.com/javaworld/jw-03-2003/jw-0328-designpatterns_p.html">An inside view of Observer</a>. The Observer pattern facilitates communication between decoupled objects. </li>
	<li><strong>Strategy Pattern</strong>: <a href="http://www.javaworld.com/javaworld/jw-04-2002/jw-0426-designpatterns_p.html">Strategy for success</a>. The powerful Strategy design pattern aids object-oriented design.</li>
	<li><strong>Composite Pattern</strong>: <a href="http://www.javaworld.com/javaworld/jw-09-2002/jw-0913-designpatterns_p.html">A look at the Composite design pattern</a>. Treat primitive and composite objects the same way.</li>
	<li><strong>Proxy Pattern</strong>: <a href="http://www.javaworld.com/javaworld/jw-02-2002/jw-0222-designpatterns.html?">Take control with the Proxy design pattern</a>. The Proxy design pattern substitutes a proxy for an object, making your applications more efficient.</li>
	<li><strong>Adapter Pattern</strong>: <a href="http://www.javaworld.com/javaworld/jw-09-2003/jw-0926-designpatterns_p.html">Adopt Adapter</a>. Understand how adapters let disparate systems work together.
</li>
	<li><strong>Façade Pattern</strong>: <a href="http://www.javaworld.com/javaworld/jw-05-2003/jw-0530-designpatterns_p.html">Façade clears complexity</a>. Develop dialog boxes and Swing apps faster.</li>
	</ul>
	<p>Related post in this weblog: <a href="http://www.stevenchoy.com/wordpress/java-design-patterns/">Study Guide on Java Design Patterns</a></p>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/java-design-patterns-explained-and-practical-examples/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Search Engines for Program Code</title>
		<link>http://www.stevenchoy.com/wordpress/search-engines-for-searching-program-source-code/</link>
		<comments>http://www.stevenchoy.com/wordpress/search-engines-for-searching-program-source-code/#comments</comments>
		<pubDate>Tue, 04 Oct 2005 15:15:18 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Software Engineering</category>
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/search-engines-for-searching-program-source-code/</guid>
		<description><![CDATA[	I found the following three search engines that are specially designed for searching program source code. They will only index and search high quality source code with every line of code literally validated. My initial observations are that Codase is the best and JExamples.com searches only  open source code written in Java.
	
	Codase - Source [...]]]></description>
			<content:encoded><![CDATA[	<p>I found the following three search engines that are specially designed for searching program source code. They will only index and search high quality source code with every line of code literally validated. My initial observations are that Codase is the best and JExamples.com searches only  open source code written in Java.</p>
	<ul>
	<li><strong><a href="http://www.codase.com/index.html">Codase</a> - Source Code Search Engine</strong></li>
	<li><strong><a href="http://www.koders.com/">Koders</a> - Source Code Search Engine</strong></li>
	<li><strong><a href="http://www.jexamples.com/">JExamples.com</a> - Search Java Examples in Open Source Code</strong></li>
	<li><strong><a href="http://www.codefetch.com/">Codefetch</a></strong></li>
	</ul>
	<p><a id="more-222"></a><br />
<blockquote>
<strong>About Codase</strong></p>
	<p>Codase is the leading source code search company with advanced source code understanding and xml index/search technologies. Rather than treating code as text, Codase understands programming languages, and treats code as code, the way it&#8217;s supposed to be. This unique and syntax-aware approach provides the most accurate and detailed search results with fine granularity levels of controls. With Codase, one can search functions, classes, strings, constants, macros, comments and other programming language constructs.</p>
	<p><strong>About Koders</strong></p>
	<p>Koders.com  is the leading search engine for open source code. Our source code optimized search engine provides developers with an easy-to-use interface to search for source code examples and discover new open source projects which can be leveraged in their applications.</p>
	<p><strong>About JExamples.com</strong></p>
	<p>We analyze the source code of production Java open source projects such as Ant, Tomcat and Batik and load that analysis into a java examples database designed for easy searching. You enter the name of a Java API Class you want to see example invocations of and click Search.</p>
	<p><strong>About Codefetch, Inc</strong></p>
	<p>Codefetch&#8217;s mission is to connect programmers and authors so that programmers get the information they need, and the work of authors is supported and encouraged.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/search-engines-for-searching-program-source-code/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Free books on Java programming</title>
		<link>http://www.stevenchoy.com/wordpress/free-java-books/</link>
		<comments>http://www.stevenchoy.com/wordpress/free-java-books/#comments</comments>
		<pubDate>Fri, 12 Aug 2005 14:48:36 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/free-java-books/</guid>
		<description><![CDATA[	Comprehensive lists of free Java books collected and recommended by www.KickJava.com and TechBooksForFree.com.
	
	Free Java books
	Free books on Java
	
]]></description>
			<content:encoded><![CDATA[	<p>Comprehensive lists of free Java books collected and recommended by <a href="http://www.kickjava.com/">www.KickJava.com</a> and <a href="http://www.techbooksforfree.com/">TechBooksForFree.com</a>.</p>
	<ul>
	<li><strong><a href="http://www.kickjava.com/freeBooks.html">Free Java books</a></strong></li>
	<li><a href="http://www.techbooksforfree.com/java.shtml"><strong>Free books on Java</strong></a></li>
	</ul>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/free-java-books/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Program Animation Tool</title>
		<link>http://www.stevenchoy.com/wordpress/program-animation-tool/</link>
		<comments>http://www.stevenchoy.com/wordpress/program-animation-tool/#comments</comments>
		<pubDate>Thu, 07 Jul 2005 01:40:02 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/program-animation-tool/</guid>
		<description><![CDATA[	Jeliot 3: the program animation tool

	Jeliot 3 is a Program Visualization application. It visualizes how a Java program is interpreted. Method calls, variables, operation are displayed on a screen as the animation goes on, allowing the student to follow step by step the execution of a program. Programs can be created from scratch or they [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://cs.joensuu.fi/jeliot"><strong>Jeliot 3: the program animation tool<br />
</strong></a></p>
	<blockquote><p>Jeliot 3 is a Program Visualization application. It visualizes how a Java program is interpreted. Method calls, variables, operation are displayed on a screen as the animation goes on, allowing the student to follow step by step the execution of a program. Programs can be created from scratch or they can be modifyed from previously stored code examples. The Java program being animated does not need any kind of additional calls, all the visualization is automatically generated. Jeliot 3 understands most of the Java constructs and it is able to animate them. Especial effort is currenlty being addressed to animate object oriented features, such as inheritance.</p></blockquote>
	<p>I get this when I attend a paper presentation at ICALT2005. The work is from a university of Finland.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/program-animation-tool/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Learning Java by working examples</title>
		<link>http://www.stevenchoy.com/wordpress/learning-java-by-working-examples/</link>
		<comments>http://www.stevenchoy.com/wordpress/learning-java-by-working-examples/#comments</comments>
		<pubDate>Tue, 10 May 2005 05:19:00 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/learning-java-by-working-examples/</guid>
		<description><![CDATA[	One good way to learn Java is to study working examples of source code. The following are some good sites that provide a large amount of Java source code.
	
	Collections of Java Source code: It contains a lot of links to similar sites.
	JavaBoutique: Besides providing huge amount of applets examples, it is also a good resource [...]]]></description>
			<content:encoded><![CDATA[	<p>One good way to learn Java is to study working examples of source code. The following are some good sites that provide a large amount of Java source code.</p>
	<ul>
	<li><a href="http://mindprod.com/jgloss/collections.html"><strong>Collections of Java Source code</strong></a>: It contains a lot of links to similar sites.</li>
	<li><a href="http://javaboutique.internet.com/"><strong>JavaBoutique</strong></a>: Besides providing huge amount of applets examples, it is also a good resource site for learning Java and other programming languages.</li>
	<li><a href="http://www.planet-source-code.com/"><strong>Planet Source Code</strong></a>: A large public source code database in 11 languages (VB, Java/Javascript, C/C++, ASP, SQL, Perl, Delphi, PHP, Code Fusion, .Net and LISP). </li>
	<li><a href="http://triton.towson.edu/~schmitt/server/servlet/"><strong>Servlet Examples</strong></a>:  Servlets examples from various sources that are collected and implemented by Jeff Schmitt.</li>
	<li><a href="http://users.erols.com/ziring/java-samp.html"><strong>Java Samples by Neal</strong></a>: It provides a number of sample Java classes that Neal has written. It also contains links to other places containing Java sample codes.</li>
	</ul>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/learning-java-by-working-examples/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>O&#8217;Reilly CodeZoo</title>
		<link>http://www.stevenchoy.com/wordpress/oreilly-codezoo/</link>
		<comments>http://www.stevenchoy.com/wordpress/oreilly-codezoo/#comments</comments>
		<pubDate>Thu, 28 Apr 2005 14:41:16 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Software Engineering</category>
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/oreilly-codezoo/</guid>
		<description><![CDATA[	O&#8217;Reilly CodeZoo is a new site by O&#8217;Reilly Network, which was launched on April 2005. Its slogan is Find good code. Use it quickly. To quote:
	CodeZoo exists to help you find high-quality, freely available, reusable components, getting you past the repetitive parts of coding, and onto the rest and the best of your projects. It’s [...]]]></description>
			<content:encoded><![CDATA[	<p><strong><a href="http://www.codezoo.com/">O&#8217;Reilly CodeZoo</a></strong> is a new site by <a href="http://www.oreillynet.com/">O&#8217;Reilly Network</a>, which was launched on April 2005. Its slogan is <strong>Find good code. Use it quickly</strong>. To quote:</p>
	<blockquote><p>CodeZoo exists to help you find high-quality, freely available, reusable components, getting you past the repetitive parts of coding, and onto the rest and the best of your projects. It’s a fast-forward button for your compiler.</p></blockquote>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/oreilly-codezoo/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Static Analysis of Java Programs with PMD</title>
		<link>http://www.stevenchoy.com/wordpress/static-analysis-of-java-programs-with-pmd/</link>
		<comments>http://www.stevenchoy.com/wordpress/static-analysis-of-java-programs-with-pmd/#comments</comments>
		<pubDate>Fri, 11 Mar 2005 06:58:58 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Software Engineering</category>
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/static-analysis-of-java-programs-with-pmd/</guid>
		<description><![CDATA[	PMD is an open source tool that analyzes Java source code to find potential bugs.PMD scans Java source code and looks for potential problems like:
	
	Empty try/catch/finally/switch blocks
	Unused local variables, parameters and private methods
	Empty if/while statements
	Overcomplicated expressions - unnecessary if statements, for loops that could be while loops
	Classes with high Cyclomatic Complexity measurements
	
	PMD can also be [...]]]></description>
			<content:encoded><![CDATA[	<p><strong><a href="http://pmd.sourceforge.net/">PMD</a></strong> is an open source tool that analyzes Java source code to find potential bugs.PMD scans Java source code and looks for potential problems like:</p>
	<ul>
	<li>Empty try/catch/finally/switch blocks</li>
	<li>Unused local variables, parameters and private methods</li>
	<li>Empty if/while statements</li>
	<li>Overcomplicated expressions - unnecessary if statements, for loops that could be while loops</li>
	<li>Classes with high Cyclomatic Complexity measurements</li>
	</ul>
	<p>PMD can also be integrated with Ant for automatic source-code checking, and plug-ins exist for most major IDEs and programmer&#8217;s editors.</p>
	<p>I recommend an Elliotte Rusty Harold&#8217;s article titled <strong><a href="http://www-106.ibm.com/developerworks/java/library/j-pmd/">Zap bugs with PMD</a></strong>. It is an introductory reading about installing, configuring, and running PMD.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/static-analysis-of-java-programs-with-pmd/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Test-Driven Development, Java and JUnit</title>
		<link>http://www.stevenchoy.com/wordpress/test-driven-development-java-and-junit/</link>
		<comments>http://www.stevenchoy.com/wordpress/test-driven-development-java-and-junit/#comments</comments>
		<pubDate>Thu, 10 Mar 2005 07:19:05 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Software Engineering</category>
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/test-driven-development-java-and-junit/</guid>
		<description><![CDATA[	This is an article written by Mike Clark on January 2004 titled &#8220;A Dozen Ways to Get the Testing Bug in the New Year&#8221;. 
	The article can be read and printed through the this&#160;URL.
	
Test-driven development received a lot of attention in 2003, and the interest will grow in 2004. For good reason: everyone agrees testing [...]]]></description>
			<content:encoded><![CDATA[	<p>This is an article written by Mike Clark on January 2004 titled &ldquo;<strong>A Dozen Ways to Get the Testing Bug in the New Year</strong>&rdquo;. </p>
	<p>The article can be read and printed through the this<a href="http://today.java.net/pub/a/today/2004/01/22/DozenWays.html" target="_self"><strong>&nbsp;URL</strong></a>.</p>
	<p><a id="more-7"></a><br />
<blockquote>Test-driven development received a lot of attention in 2003, and the interest will grow in 2004. For good reason: everyone agrees testing is important, but now many respected programmers are claiming that <strong>by writing tests first, they see better designs emerge</strong>. These same programmers quickly point out that <strong>test-driven development makes them feel more productive and less stressed</strong>. At the end of a shorter programming day they&#8217;ve built a suite of passing tests and code with better designs. Sound too good to be true? Well, there&#8217;s nothing to lose in giving it a whirl. In fact, there&#8217;s much to be gained.</p>
	<p>This article gives you <strong>12 practical ways to start writing tests, and keep writing tests</strong>, regardless of your development process. The first two techniques play off of things you&#8217;re probably already doing, so you don&#8217;t have to move too far out of your comfort zone. The next two challenge you to wade deeper into the pool to realize the benefits of  test-driven development. The remaining techniques round out the regimen to keep you testing effectively all year. You&#8217;ll be well on your way to fulfilling your new year&#8217;s resolutions. Caution:<br />
contents have been known to be infectious!</p>
	<p><strong>Summary:</strong> Getting started writing tests doesn&#8217;t have to be difficult or time-consuming. Just wade in gradually by spotting practical opportunities to let your computer automatically check what you&#8217;re already checking manually. Before writing new code, assert your expectations about what it should do. Along the way, listen to the tests for design insights. Make testing an integral part of your development process by writing tests first and making it easy for anyone on your team to run all the tests at any time. Finally, don&#8217;t go it alone.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/test-driven-development-java-and-junit/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>A J2ME FAQ</title>
		<link>http://www.stevenchoy.com/wordpress/a-j2me-faq/</link>
		<comments>http://www.stevenchoy.com/wordpress/a-j2me-faq/#comments</comments>
		<pubDate>Mon, 28 Feb 2005 06:36:51 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/a-j2me-faq/</guid>
		<description><![CDATA[	A J2ME FAQ is an article by Kevin Boone on his personal website. Areas covered in this FAQ include: J2ME technologies, J2ME development procedures and tools, MIDP/CLDC programming, File and data management, and Networking and communications. The article is not too long and is good and concise.

]]></description>
			<content:encoded><![CDATA[	<p><strong><a href="http://www.kevinboone.com/j2me.html">A J2ME FAQ</a></strong> is an article by Kevin Boone on <a href="http://www.kevinboone.com/">his personal website</a>. Areas covered in this FAQ include: J2ME technologies, J2ME development procedures and tools, MIDP/CLDC programming, File and data management, and Networking and communications. The article is not too long and is good and concise.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/a-j2me-faq/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Working with J2ME</title>
		<link>http://www.stevenchoy.com/wordpress/working-with-j2me/</link>
		<comments>http://www.stevenchoy.com/wordpress/working-with-j2me/#comments</comments>
		<pubDate>Fri, 25 Feb 2005 01:23:37 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/working-with-j2me/</guid>
		<description><![CDATA[	It is an article from TheServerSide.com, written by Dan Moore, and posted in February 2005. Click this URL to read it.
	
	A cell phone application can be a good fit for certain types of problems, especially those requiring timely data access away from typical internet connectivity. Java 2 Micro Edition (J2ME) is one of the leading [...]]]></description>
			<content:encoded><![CDATA[	<p>It is an article from <strong><a href="http://www.theserverside.com" target="_blank">TheServerSide.com</a></strong>, written by Dan Moore, and posted in February 2005. Click this <strong><a href="http://www.theserverside.com/articles/article.tss?l=WorkingwithJ2ME" target="_blank">URL</a></strong> to read it.</p>
	<blockquote>
	<p>A cell phone application can be a good fit for certain types of problems, especially those requiring timely data access away from typical internet connectivity. Java 2 Micro Edition (J2ME) is one of the leading platforms for developing such solutions.</p>
	<p>This paper explores the various facets of building a J2ME application. It assumes a working knowledge of Java. The focus is on a MIDP 1.0/CLDC 1.0 application that depends heavily on network access.&nbsp;</p>
	</blockquote>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/working-with-j2me/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>What is JUnit?</title>
		<link>http://www.stevenchoy.com/wordpress/what-is-junit/</link>
		<comments>http://www.stevenchoy.com/wordpress/what-is-junit/#comments</comments>
		<pubDate>Wed, 23 Feb 2005 08:08:31 +0000</pubDate>
		<dc:creator>Steven Choy</dc:creator>
		
	<category>Software Engineering</category>
	<category>Java Computing</category>
		<guid>http://www.stevenchoy.com/wordpress/what-is-junit/</guid>
		<description><![CDATA[	JUnit is a regression testing framework written by Erich Gamma and Kent Beck.  It is used by the developer who implements unit tests in Java. JUnit is Open Source Software, released under the Common Public License Version 1.0 and hosted on SourceForge. (Source: JUnit.org) 
	Regression testing is testing that a program has not regressed; [...]]]></description>
			<content:encoded><![CDATA[	<p>JUnit is a <strong>regression testing framework</strong> written by Erich Gamma and Kent Beck.  It is used by the developer who implements <strong>unit tests</strong> in <strong>Java</strong>. JUnit is <a href="http://www.opensource.org/" target="_blank">Open Source</a> Software, released under the <a href="http://www.opensource.org/licenses/cpl.php" target="_blank">Common Public License Version 1.0</a> and hosted on <a href="http://sourceforge.net/projects/junit/" target="_blank">SourceForge</a>. (Source: <strong><a target="_blank" href="http://www.junit.org/">JUnit.org</a></strong>) </p>
	<p>Regression testing is testing that a program has not regressed; the functionality that was working yesterday is still working today. In other word, regression testing is to ensure that we do not introduce new bugs while removing existing bugs. A program still works correctly after changes were made to it. The JUnit testing framework makes it easy to create unit tests and to perform regression testing in Java programs.
</p>
	<p>Suggested introductory reading:&nbsp;</p>
	<ul>
	<li><strong><a href="http://www.itjungle.com/mpo/mpo110603-story01.html" target="_blank">JUnit Automates Java Testing</a></strong> (David Morris, November 06, 2003)
</li>
	</ul>
]]></content:encoded>
			<wfw:commentRSS>http://www.stevenchoy.com/wordpress/what-is-junit/feed/</wfw:commentRSS>
	</item>
	</channel>
</rss>
