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


To the tune of 'Money for nothing', by Dire Straits.

Just posted a new article about Continuous Integration and Build Automation on InfoQ, that I wrote in collaboration...

Sophie is a technical project manager in a large insurance firm. She manages the development of a web-based calculator for car insurance premiums. The calculations are done dynamically, using a...

When you run a Grails application from the command line (using grails run-app, for example), it will run on port 8080 by default. This also applies when Grails runs web tests such as Selenium,...

Reflections on iterative development in terms of state transitions

Iterative development is all about state transitions. In a nutshell, iterative development is about moving from...

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

This case study is the second of an 8-part blog series about why so many developers adopt continuous integration, and...

This case study is the first of an 8-part blog series about why so many developers adopt continuous integration, and...

I don't usually recommend using Windows for your build server, but sometimes you may not have a choice. You may be running Microsoft tools as an integral part of your build lifecycle, for example...

Grails is a great little framework - like any framework, you'll need to learn how it works before becoming really productive, and you have to beware of too much hot-shot Groovy code making the...

I recently installed Nexus onto an HP build server. While not particularly difficult, this installation did require a few extra steps. This article...

There are lots and lots of ways you can build your project. Ant is the traditional Java build tool, providing a maximum of flexibility, arguably at the cost of extra complexity and lots of low-...

Common wisdom has it that IntelliJ is unrivalled for Groovy/Grails development. (At least among IntelliJ developers). However, sometimes it is good to question common wisdom, and decide for...

Last week, I put the 2009 Continuous Integration poll online. However, at one point, I started to notice some major irregularities in the...

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...