Writing a serious, consistent, nice-looking documents in HTML is hard. CSS improves the situation a bit, but it's still very painful. For example, suppose if you are writing a release note like this, and you want to do:
Generate the navigation bar in multiple pages
Have the same footer for all documents
If you can do the equivalent of JSP tag files (which lets you define your own tag, which...
on Jun 7, 2006
A recent technical paper on java.sun.com, Implementing Service-Oriented Architectures (SOA) with the Java EE 5 SDK, details the background concepts and describes the language constructs for developing SOA composite applications on the Java EE 5 platform. As an example, the article uses a sample app that's based on a loan-processing use caseone that includes HTTP/SOAP binding components and...
on Jun 7, 2006
Several years ago, I switched from Emacs to Eclipse. It was a bit
painful at first, but Eclipse had two killer features that, once I
discovered them, I could not live without.
Refactor -> Rename
I have since come to love Eclipse for many other features, small and
large, but those were the ones that made me switch. The instant
productivity gain was worth the...
on Jun 7, 2006
"There is no problem that cannot be solved by the use of high explosives."
Recently I was tasked with making an app translatable. It was a relatively small Swing app, e.g. 200 classes.
That means moving strings, like exception messages, into a resource bundle. I had some fun with a phased approach, which I present here.
Moving the strings
"The best armor is staying out of gun-shot...
on May 26, 2006
In the preceding blogs "Java is all you'll ever need" and "A Fool's Errand" I alluded to using Java for "small tasks" eg. file/system tasks, rather than shell scripts. I promised to present some examples along these lines.
This is Chapter 1 of many, and presents a basic design. We'll thrash it out in subsequent chapters.
My motivation for trying to move away from shell...
on May 24, 2006
A reader commented to my blog "Java is all you'll ever need" that "anyone thinking he needs only a single tool to do any job is a fool." That would be me. So lemme introduce you to this fool's errand...
Of course we need more than one tool. But it depends what you define as a "tool." Every library is arguably a different tool. So then a programming language is a tool to write tools (libraries...
on May 19, 2006
If you're not familiar with NetTool, visit nettool.org for an overview. But essentially, NetTool is a set of utilities for debugging web & network applications, especially HTTP-based apps (such as web services). There are two main components: a HTTP Client (analogous to a web browser), and a TCP Tunnel.
Since version 4.2.0, the following features have been added:
Configurable via properties...
on May 16, 2006
There are many discussions around: which is the best IDE? From my current point of view: take any of these and be happy! Really.
When still working in the Java area, I was used to NetBeans. Many of my collegues used Eclipse, the rich ones used IDEA. Of course, we flamed and discussed a lot about it. IDE is religion.
Nowadays, I have to work with C#/C++ on .NET1.1. The tool of choice: Visual...
on May 16, 2006
In his blog, Damien Katz wrote on "Signs you are a crappy programmer, and don't know it." At the top of the list is "Java is all you'll ever need." Since i'm guilty of that, here is my response - why i choose not to add other languages to my toolbox.
So you have some system task to do. This is where you jump into vi and hack together a bash, python or perl script to accomplish this task in...
on May 15, 2006
As some of you may have noticed, Glassfish has started putting a lot of interesting jars to the maven java.net repository. To do this I had to enhance the daemon program that runs behind it, and since I exnteded it, I also updated maven java.net plugin to 1.7.
This version has the following improvements:
Supported javanet:deploy-java-source target, which uses the source plugin and deploys the...
on May 11, 2006
I just posted Hudson 1.28.
My group uses Hudson for all sorts of projects now, in particular testing. Thus many recent improvements to Hudson is in this area.
Build status used to be just "success" or "failure". A new state "unstable" is introduced to indicate that a build was OK but tests failed. Hudson got a bit more colorful :-)
Test results are displayed inside Hudson, with sortable tables...
on May 5, 2006
Health warning: the italic text is just me rambling and so should probably be skipped.
Today was a lovely sunny day in johannesburg, as usual! i'm in "joburg" visiting family (for a month or two), which is perfect timing, with Netbeans Day being today in joburg!
As agreed with my mother (the one with the car), i was up at 7am so as to be ready to leave at 730. (My mother was up at 5am for gym...
on May 5, 2006
I'm sure I'm the last Mac Java developer here to figure this out so I'm posting it not so much for you but for future generations intrepid googlers to find.
How to get Netbeans code completion with Javadocs to work in Mac OS X
Netbeans is a great IDE and I'm really starting to warm up to it (starting to warm up to IDEs in general, actually). One of my big complaints so far has been the lack of...
on Apr 30, 2006
I was going through old email, and my friend Jesse had pointed up my friend Jarda's commit log message as a candidate "Most Poetic Commit Log of the Year Award". What's the most amusing commit message you've read but neither incited nor written yourself? Here's Jarda's:
Hopeless in my own destiny, strugling to really improve the speedup of startup at least a bit, but always loosing my...
on Apr 29, 2006
Sun Java Studio Creator, an increasingly popular IDE that includes JavaServer Faces components for developing Web applications and portlets, is offering three-day training classes in three major U.S. cities in June. The topics range from portlet design to internationalization to AJAX, also hands-on labs that show you how to build multitiered applications.The cost of $1,699 per student buys not...
on Apr 27, 2006
If you haven't used NetTool before, visit nettool.org to get full details on the app. But briefly: NetTool consists of two tools, a HTTP Client, and a TCP Tunnel. A picture being as good as a thousand words, this is the HTTP Client:
The HTTP Client is analogous to a web browser, except that the user has full control over the HTTP request, and can configure the URL, method (including WebDAV...
on Apr 20, 2006
Today, Sun announced that it will open-source the key components of its Sun Java Studio Enterprise IDE as NetBeans Enterprise Pack on netbeans.org. Specifically, the components are
A two-way UML modeler for reverse-engineering and
drawing software architectures
XML infrastructure and editing tools for modifying and integrating applications
SOA tools for orchestrating Web services, mapping...
on Apr 11, 2006
One of the benefits of Hudson is to have a single place to pick up your builds, a single place to configure. In the web technologies & standards group that I work in, our Hudson installation has now some 80 or so projects on it.
On top of this somewhat loaded Hudson installation, the Tango project wants to add even more tests and builds.
When you have a large number of projects on Hudson,...
on Mar 27, 2006
I just posted a new version of Hudson. The main improvement in this version of Hudson is the ability to record and track JUnit test result reports.
This feature is similar to <junitreport> ant task, but the difference is that Hudson has a history of test reports, not just one-time result of a test run, and the history trend is very useful information indeed. For a starter, Hudson reports how...
on Mar 12, 2006
The other day I found the Tango project, which provides a high-quality reusable icon library under the Creative Commons Share-Alike license. I like these icons so much that I decided to use it for Hudson.
Another good thing about the Tango project is that their icons come in SVG. Besides the obvious fact that you can use them with any size, SVG enables me to change icons. I'm not an artist, so...
on Feb 22, 2006