Skip to main content

John Ferguson Smart

John is a freelance consultant specialising in Enterprise Java, Web Development, and Open Source technologies, currently based in Wellington, New Zealand. Well known in the Java community for his many published articles, John helps organisations to optimize their Java development processes and infrastructures and provides training and mentoring in open source technologies, SDLC tools, and agile development processes. John is principal consultant at Wakaleo Consulting, a company that provides consulting, training and mentoring services in Enterprise Java and Agile Development.

 

Articles

If you use Maven, or even if you just use Maven repositories for your dependency management, you should be using a Maven Repository Manager.
If you are a NetBeans user working with Maven, you're in luck with NetBeans 6.7.1! This latest release comes with a swathe of cool features to help you work with your Maven projects pretty much out-of-the-box.
Grails is an excellent, highly productive development framework that positively encourages good development and testing practices. This article shows how to set up a Continuous Integration build job to compile and test your Grails application in Hudson, for automated continuous integration.
Want to provide maps in your web application? The Google Maps API is straightforward to call from Java, and with an Ajax-ian approach, you can make it extra user-friendly. John Ferguson Smart shows you how to combine these approaches.
Jabber is a popular and widely supported XML-based API for exchanging instant messages. You could compose the messages by hand, but there's an alternative. John Ferguson Smart introduces the Smack API, which makes it easy to use Jabber services from Java.
Standards are so much easier to adhere to when your tools do it for you. Thanks to JAX-WS and its implementation in application servers like GlassFish, you can write web services as plain ol' Java objects, just by adding a few annotations. John Ferguson Smart shows how it's done.
The best way to integrate in a hurry is to have been doing it all along. This practice of continuous integration is greatly helped by automated tools to check out and build your team's code on a more or less constant basis. Apache Continuum offers a free and open source tool to do continuous...
Oftentimes, your new code replaces an older system whose data must be migrated to the new system. This isn't a process that gets a lot of thought, but John Ferguson Smart says it probably should. In this article, he shows how an iterative, test-driven approach can save you a lot of headaches...

Weblogs

With JavaOne coming up next week, I thought this little tribute might be approriate.

The Coder

To the tune of 'The Gambler', by Kenny Rogers

To my surprise, I've been nominated in the top 10 finalists for the New Zealand IT Rockstar competition. Some come along and vote!

By the way,...

Java Power Tools is now available on Safari! You can also check out a very detailed...

PMD is an excellent static code analysis tool, with a rich set of rules regarding coding best practices and potential errors. The trick is working out...

The lads at Sonatype have just released a new Maven Repository Manager, called Nexus.
According to the Nexus...

Henrik Kniberg, author of the very useful Scrum and XP from the Trenches, has written an interesting article on SCM in an Agile...

I've been using SpringIDE for my Spring applications for a while now, and it is a very nice tool. It makes visualising your Spring configuration files,...

I will be talking for Software Quality NZ in Wellington on the 17th of April, at 4pm at Equinox house. The topic of the talk is as follows:...

I came across an interesting issue with the Hamcrest asserts today. I have a method that returns a list of domain objects, as shown here:

 ...

The Java Power Tools Bootcamp training sessions are a great way to get a grip on some very cool open source technology.

Paul Duvall, from Stelligent, has been experimenting with using voice commands to control a build server. A neat idea!

So your CI server now automatically deploys your application to an integration server. You've even configured it so that you can manually deploy to the QA server using the same process. Great! But...

So you've got hundreds of tests, but they take ages to run. You have a Continuous Integration server, but it takes an hour to tell anyone when there's a failure. What can you do?

For anyone who's interested, I'll be giving a session at CommunityOne in May entitled "Open source tools to optimize your development...

A little while back I had a ball of a time doing an interview with my good mate Andy Glover about the upcoming Java Power Tools book. It was a...

About a year ago, I launched a poll to learn what Continuous Integration servers people were using. The results were interesting...


The original CI tool (if you...

The ultimate aim of writing software is to produce a product that satisfies the end user and the project sponsor (sometimes they are the same, sometimes they are different). How can we make sure...

It's been a while since I've given any updates on the status of the Java Power Tools book. So, here goes. The actual writing is done. Over...