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

In November 2010, Wakaleo Consulting is launching two new and innovative online...

Come get up to speed on the latest techniques in Test-Driven Development, Behaviour-Driven Development and Automated Acceptance Testing!

...

Here are the slides and audio for the JUnit Kung Fu talk I gave at JavaOne. Some of my other talks can be found here.

Here are the slides and audio for the JUnit Kung Fu talk I gave at JavaOne. Some of my other talks can be found here.

Easyb is a powerful and elegent Behaviour-Driven Development (BDD) tool based on Groovy. It excels at being light-weight, highly readable, and easy to use. Lately, I...

One of the big focuses of Maven 3 is to provide a more reliable,...

 I will be in London this September giving a talk for Skills Matter on why...

More exciting than the Australian Elections! The 2010...

This year, I'll be giving two talks at JavaOne: one on Hudson and one on JUnit. Here are the rundowns:

If you have a Maven project of any size, particularly involving many modules or large numbers of dependencies, you have probably come across issues when updating your version numbers.

In the world of automated web testing, Selenium 2/WebDriver is the new kid on the block, but it is also arguably the most compelling web...

Java 5 marks a huge step forward in the realm of automated testing. JUnit 4, for example, introduces many powerful new features based on annotations, such as flexible test names and parameterized...

Easyb is an excellent BDD testing framework, with a heap of very cool features. In this article, we look at two more recent features: tags and parallel tests.

A little-known but very useful feature slipped into JUnit 4 and recent versions of the Maven Surefire Plugin: support for parallel testing. This feature has been around for a while in TestNG, but...

Next week (on July 8) I'll be giving a talk in London...

Become a Master Craftsman in the art of Java Development. You know the language - learn to master the tools and techniques.

...

One great feature about Hudson is the support for distributed builds. Distributed builds can be used to absorb load or for specialized build jobs such as system or functional testing or automated...

If you are running Hudson in a Unix environment, you may want to hide it behind an Apache HTTP
server in order to harmonize the server URLs and simplify maintenance and access. This way,...

Selenium is a popular web testing framework, that works well for both regression tests and acceptance tests. It works well almost all web applications, even those using complex AJAX-based user...

Recently I had the pleasure of...

 This Wednesday evening (May 5th) I have the pleasure of being invited to talk at the Canberra Java Users Group, where I will be giving a talk...

In a well-organized build process, you want lightning-fast unit tests to run first, and provide whatever feedback they can very quickly. A nice way to do this is to be able to class your tests...