Tuesday, January 31, 2006


Previously I had been using System.out.println() and my own logging package for debugging. I had heard about the java.util.logging package back when it was introduced in Java 1.4. I did not look into it as I had read comments from other programmers saying that they preferred alternative logging packages such as log4j.

Recently the Open Source Java project Xith switched from log4j to the Commons Logging API. The Commons Logging API appears to be an adapter API to allow you to choose a logging implementation at run-time.

This got me thinking about logging again so I learned how to use the java.util.logging package today. The Java Logging Overview got me started. I could not find a logging tutorial in the Java Tutorial but the java.util.logging Examples from the Java Developers Almanac gave me what I needed.

I had never stumbled across the Java Developers Almanac example source code before. I do not know if the book is any good but the online examples sure are helpful. You can search for code examples by core package name. I am going to add a link to it from my list of developer resources.

Thursday, January 26, 2006

Javadoc LinkSource

I just used the javadoc linksource option for the first time, available in Java 5.0 and Ant 1.6. It generates links in the javadoc to the corresponding source code listings. I think it is very convenient to be able to click on a class or method name while browsing the javadoc and see what the code actually does, especially if there is no description or the description is not up-to-date.

The javadoc source code listings are not color coded like those on SourceForge.net but they do include line numbers. Take a look at the updated CroftSoft Javadoc and the linked source code listings. I am particularly fond of package Exemplar.

Tuesday, January 24, 2006

Continuous Design

I have been preaching the software design methodology where you release early and release often. After each release, you add just one new feature at a time and then release again. This ensures that you always have a recent working demo available online while you work on the next feature. This is ideal for Open Source projects.

I have seen this called the "spiral", "component assembly", or "incremental release" design lifecycle. From what I can tell from this recent About.com article, it is also called "evolutionary", "emergent", and "continuous" design. Is it all the same thing or are there subtle differences?

Regardless of what it is called, I think it is a good way to go.

Tuesday, January 17, 2006


In the past I used Info-Zip for GUI-based file compression and decompression. Today I switched over to 7-Zip. I have added it to my list of free and Open Source tools.

Saturday, January 14, 2006

Eclipse Preferences

I have exported my configuration preferences for my favorite integrated development environment (IDE), Eclipse.

Tuesday, January 10, 2006

Input Device for Infants

I created a webpage for one of my new programming projects, CroftSoft Infant. This software will present infants with visual and auditory stimuli and react to their responses via a pacifier connected to a pressure transducer.

Friday, January 06, 2006

Exemplar Game Code

I updated the Advanced Java Game Programming Checklist to include new exemplar source code. I am quite proud of it as it includes my new philosophy about model-view-controller (MVC) architecture plus some Java 5.0 tricks. The next time you sit down to write a Java game, you might want to consider starting from this template.

Thursday, January 05, 2006


I am a big fan of using free software development tools, especially if they are written in Open Source Java. Recently I had some success with GanttProject, a project management tool that supports Gantt charts. The webpage has an animated demo to help you get started. I am happy to report that it did what I needed.

Here is a list of more free and Open Source software development tools that I use: http://www.CroftSoft.com/library/links/

Sage for Firefox

To track blogs such as this one, I recently started using Sage, a newsfeed reader for the Mozilla Firefox web browser. I like Sage because it is simple to use and it is always accessible as a Firefox sidebar just by pressing ALT-S. You can click on the magnifying glass icon to search the current webpage for newsfeed links. Once you get it installed, try it on this page.

List Archive

I am switching the CroftSoft Update from a Yahoo Group mailing list to this blog. The old list archive is available here: