Trygve Isaacson is dumping some of his own Java code in favor of Apache Velocity, a terrific open source template publishing engine. In the process, he found a solution to a thorny configuration problem that prevented his Web server from finding templates. I wrote an introduction to Velocity for the December 2002 Linux Magazine. Using its own scripting language, Velocity Template Language, the class library prevents template creators from making the biggest mistake of JavaServer Pages -- mixing code used to ... read more

IBM has donated Cloudscape, an embedded relational Java database that has been in active development since 1996, to the Apache project, where it will be called Apache Derby.There's a Cloudscape tutorial site on IBM DeveloperWorks and an Apache Incubator site where it can be downloaded. ... read more

Just read an old review by Pan Pantziarka shredding Sams Teach Yourself Java 2 in 24 Hours, my beginner's Java book last revised in 2002.By the end of the book, assuming you haven't been stunned into a coma by the author's humor (yep, it's a US thang), you'll have a very superficial view of Java programming. What you won't have is the knowledge or the insight to produce anything useful.Mommy.This book, which has done well with new-to-Java novices, will occasionally receive a total ass-kicking at the hand of a ... read more

One of my favorite works of art was executed as a Java applet. I bought Every Icon by John Simon Jr. in May 2000 and have been meaning to put it on my Web site ever since. The display of the work takes several hundred trillion years from start to finish, so I don't feel so bad about taking almost four years to share it on Workbench. ... read more

David Flanagan has been experimenting with the new static import feature in Java 2 version 1.5, which provides a shorthand way to refer to class variables: import static java.lang.System.out; class SalutonMondo { public static void main(String[] args) { out.println("Saluton Mondo!"); } } That seems simple enough, but as Flanagan demonstrates, the static import keyword does some things you might not expect. ... read more

My November 2003 Java Matters column for Linux Magazine is now available online. It covers JXTA, a set of XML protocols for peer-to-peer network programming created as an open source project by Bill Joy and Mike Clary at Sun Microsystems. JXTA's an extremely ambitious project with a steep learning curve. A quote from the column: The formulation of networks on the fly, with or without a central server, through firewalls and with authentication and encryption, atop the Internet and other networks -- just writing a ... read more

Recently, I was struggling in a Java programming project with a huge XML file that was supposed to be in UTF-8 format but contained some non-UTF-8 characters. This prevented it from being parsed by XOM, an open-source XML processing library that militantly rejects non-well-formed XML. One of the things that helped me solve the problem was Kris Wehner's excellent weblog post on dealing with badly encoded character data using Java. His first suggestion is to use native2ascii, one of the lesser-known tools in Sun's ... read more