on Sep 8, 2008
You've used in-memory databases, such as HSQLDB (formerly called Hypersonic) or it's newer, faster cousin H2, but fewer have heard about the in-memory mail server, GreenMail by IceGreen.
According to their site, "GreenMail is an open source, intuitive and easy-to-use test suite of email servers for testing purposes.
Supports SMTP, POP3, IMAP with SSL socket support. GreenMail also provides a...
on Aug 7, 2008
If you're a Java developer and you've been around for any length of time, you've likely run into the issue of wanting to write something that can deal with different versions of the same Java API that may be incompatible.
What got me thinking about this, is that I recently saw a forum post in the Atlassian Confluence Developer forum where someone was asking about how to get the version number of...
on Jul 31, 2008
Usually if you are working in a "big" project and doing a code review; if you have a vendor who develop some application for your company; if you have a fresh graduate developer ... you will find a lot of bad-practices in the code being written! I don't like to see System.out.println() in the code .. because simply, it doesn't appears in the log files!!!
As a solution, you can use Aspects to...
on Jul 24, 2008
JSR #277: Stanley Ho explains versioning... Sounds like a bad idea to me...
I have commented his post. Anyway, I think the idea deserves its own blog post: I hope to see some discussion about it. And I really wonder what your opinions are.
Here it is:
Major? Minor? Micro? Update? 3 or 4 numbers?
IMHO, doesn't matter at all...
Stanley, what happened to or what is wrong with my proposal of...
on May 30, 2008
The escape function "encodes" a string by replacing non-ASCII letters and some other...
on Apr 22, 2008
Young developers who desire to learn how to build software in various intuitive programming languages, including Java, should check out a new java.sun.com hub in the New to Java Programming Center. Spotlighted there are numerous resource pointers to tutorials and introductory material: BlueJ, NetBeans IDE Blue J Edition, Greenfoot. Some of the resources are self-paced and interactivea ton...
on Apr 15, 2008
You'd think this sort of problem would be resolved by now, but it's not. It's still almost impossible to quickly and easily migrate an application from the too common default Latin-1 to UTF-8 character set encoding. The problem isn't that UTF-8 can't handle the conversion. No, that's definitely not it. UTF-8 can represent any Latin-1 character and much, much more. The problem is that the Latin-1...
on Apr 13, 2008
I've had a surprisingly difficult time conveying my own definition of "Iterative Development" in the context of BPM development. If you are interested in such things, please take a look at my other blog for an explanation via analogy....
on Apr 10, 2008
Post article reports on the elimination of underenrolled Advanced
Placement (AP) courses in American high schools. The subjects affected are:
Italian, Latin Literature, French Literature and, hold on to your hats,
Computer Science AB. (The College
Board designs high school courses that aim to be equivalent to college
courses. High school students who take the course and pass an...
on Apr 5, 2008
In his Disturbing Thoughts from a Developing Mind blog, fellow kiwi Mark Derricutt discusses a situation where new for loops don't provide enough power for a particular case. (And yes this blog has been sitting drafted but unpublished for ages :( )
The case in point is building a String from the concatenation of a List of Strings with some separator between them, in this case a semi-colon...
on Mar 25, 2008
I recently wrote a brief introduction to Beans Binding called Synchronizing Properties with Beans Binding. I was enthusiastic about Beans Binding, and then a coworker threw a wet towel on me. The conversation went something like this:
John: I just finished an article on java.net. This API might be useful in this project.
Coworker: Yeah, what's that?
John: Beans Binding. It's an API that will...
on Mar 23, 2008
All the major closures proposals now have prototype implementations available. But until we can play with the final option "No Closures" we're not in the best position to make a good decision. So it is with pleasure that I announce the availability of a prototype for "No Closures".
With this jar file and JDK 6, you can effectively cast a method to a SAM type. For those not...
on Mar 8, 2008
I would like to preface this entry with the fact that I am not suggesting a concrete syntax in the examples below. I am merely using the examples as talking points and illustrations of what I consider to be the "syntactical spirit" of the Java language.
I will be the first to admit that syntax is quite subjective and typically creates consternation within the context of programming specifically...
on Feb 27, 2008
Josh Bloch makes some interesting points in his Javapolis presentation on the closures controversy. However having listened to the audio several times and read the slides at least three times, I am having trouble extracting the salient points from all the FUD
(The presentation video of the talk is now also available)
What seems to be happening is that much of that FUD is starting to...
on Feb 27, 2008
Big applications have a tendency to accumulate enormous classpaths. Looking at such a classpath, you might be hard put to know whether any given jar is really needed. Perhaps it was needed at the time it was added, but that need has long since evaporated. How can you tell? Having jars you don't need means your application will be slower starting up, and perhaps also while running. It also...
on Feb 21, 2008
Last year when working in a project, there were a lot of documents (requirements, user guides, architecture, etc.), from different sources (email attachments, file shares, backups, old version control). The same document name but different date and size.
So, how to know which one is the latest and delete the others ?
There were two ways to achieve that:
Open each file and see its properties,...
on Feb 20, 2008
You know you're getting old when you find yourself complaining about how English is being butchered, instead of inventing new ways to butcher it yourself.
Languages change and evolve, they cannot stand still. This applies to programming languages just as much as natural written/spoken language. The difference is, of course, natural languages don't require backwards compatibility. It's this...
on Feb 13, 2008
Swash already had part of its code split to a seperate project, one with a pretty infamous name: preciseInternalDate.
Swash will see an other split: splines!
While i was finishing the splines part of swash, i said to myself that this could easily be extracted to an external package that could be useful to other projects than swash. In fact, i have other projects that would benefit from it, so...
on Feb 12, 2008
When I first stumbled upon the JSR-275 standard units RI at JScience.org last autumn, I was very impressed with its careful design and eager to use it in my projects. That was before I began working on JPA persistence annotations for my data model. Now I regret using this otherwise wonderful package, for I've become entrenched in an ugly decision between shedding JScience.org dependencies...
on Feb 10, 2008