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

If you are a Java developer considering a new web development project, you may well be tempted to try out Grails, one of the most promising new frameworks to...

I just reinstalled a fresh version of Eclipse onto my workstation. I switch between IDEs a fair bit, depending on what I am doing. Eclipse is great for Maven work, mainly because of the m2eclipse...

An emerging innovation in unit testing is the idea of Continuous Unit Testing, or having your unit tests run in the background whenever you modify your code. In this approach, whenever you save...

And here is the second half of the Java Power Tools talk at last year's Devoxx...

Some of the live presentations from last year's Devoxx conference in Antwerp are starting to be posted on their site. I've...

Nexus guru Brian Fox, from Sonatype, has published some excellent entries in his...

I'm not a big fan of social networking tools such as Facebook and the like (they seem like a great way to generate distractions, and I can do that easily enough myself without any extra help...

When organisations first set up a Continuous Integration environment, distributed builds are often fairly low down on the list - more in the "nice-to-have" category, or considered too advanced to...

There is a known bug related to Subversion clients and the Maven Release plugin that can take some time to resolve if you aren't aware of it. Sometimes, when you run the mvn release:...

One of the tricky parts of setting up a Continuous Integration build server is managing dependencies between build jobs. Many organisations have projects made up of tens or hundreds of different...

Nowadays, more than ever, developers need to be productive. Ultra-productive. Organizations need to optimize the added value they get out of their development projects, and should be actively...

For anyone who missed out on the previous Java Power Tools Bootcamps in Wellington, you'll be pleased to know that another...

Subversion 1.5 makes it pretty easy to set up a simple replicated architecture, either for backs or for load distribution.

Hudson is a great little Continuous Integration server. One of Kosuke's more recent innovations has been to add a feature that lets you...

Most people would agree that testing your code is a good thing.

The JSF Jumpstarter book is a short (67 pages), tutorial introduction to JSF, suitable for new JSF developers. If you need to get up to speed quickly with JSF, this book may be able to help you...

One feature that I've been waiting for a long time to see in Hudson is project-level security. To be able to say that certain projects can only be built by certain users. This comes in very handy...

It is an excellent and widely used best practice to tag each of your stable releases in your version control system for future reference. However, this sort of bookkeeping is tedious and error-...

One common requirement when you set up a Subversion repository concerns how it will be backed up. Another involves what happens if the main repository server goes down for some reason. Yet another...