29 Mar 07

Gleaning Project Feedback

You know you want to extract useful information from your project in an automated way, but which tools should you use and how much configuration will they take?

John Brugge has taken a number of popular open-source tools and knitted them together for you. He’s calling it Glean, and his goal is to help your project get quick and easy feedback by simply dropping Glean into your build system. It’s analogous to Maven plugins, but aimed at projects using Ant, and less ambitious.

Currently Glean includes scripts to drive the following tools:

  • CPD (copy/paste detector)
  • Emma (code coverage)
  • JavaNCSS (source code metrics)
  • PMD (static analysis)
  • StatSVN (Subversion repository activity analysis)
  • UMLGraph (generates UML class diagrams from code)
  • … and about a dozen more

The download includes basic documentation on how to set up Glean to run against a source tree, as well as sample configurations for a handful of open-source projects.

John packaged up Glean to scratch an itch for his clients, and he’s offering it back to the community as a token of appreciation for all the open-source tools. Glean is distributed under an MIT license.


29 Nov 05

SwitchTower as an Automated Deployment Archetype

I’ve been remiss to have delayed mentioning SwitchTower until now. It’s an open-source utility that makes one-step deployment to one or more machines both possible and painless.

Say, for example, you need to roll out a new release of your killer app to two web servers, four application servers, and a database server. You could manually log in to each of those machines and type a list of commands, or just let SwitchTower do it for you:

  rake deploy

That single incantation causes SwitchTower to execute the commands listed in your deployment recipe in parallel (and atomically) on multiple machines. (It uses ssh to communicate with the remote machines.) It’s really that easy.

But then you notice that the application you just deployed has a bug. After giving your manager fifty push-ups, you’re thankful you can press the "undo" button:

  rake rollback

That command rolls back the application to the last deployed version on all deployed machines. Yes, it’s really that easy.

I’ve been starting to use SwitchTower on all my Rails projects, and demo’ing it in our Pragmatic Rails Studio. As a result, SwitchTower has truly spoiled me. It’s an automator’s dream, and I can’t imagine going back to manual deployment gyrations.

That brings us to the point of this elevator pitch: Can you deploy and roll back software releases this easily and consistently on your project? If not, I’d recommend you give the SwitchTower manual a read, especially if you aren’t building Rails applications. That’s right, even if you’ve never heard of Ruby or Rails you owe it to yourself to check out SwitchTower because its concepts aren’t specific to Ruby or Rails. And in fact it seems possible to use SwitchTower as the deployment vehicle for apps of any size and color by customizing a core set of tasks. I’d love to hear of efforts to adapt SwitchTower to J2EE projects, for example.

Every software project can benefit from a deployment process that takes less time and money without sacrificing quality. SwitchTower is an archetype of automated deployment. Check it out before rolling your own solution.

10 Oct 05

CruiseControl 2.3.1 Released

CruiseControl 2.3.1 was released today with an enviable display of nips and tucks.

Get it here.

28 Aug 05

CruiseControl 2.3 Released

CruiseControl 2.3 has a goodly amount of new features and plugins.

30 Apr 05

Tiger: An Automation Platform

Apple’s latest operating system is an automator’s playground.

07 Apr 05

Getting Started with Rake

Jim Weirich has started writing what promises to be an excellent series of Rake tutorials.

04 Feb 05

Subversion: It's What's For Dinner

Mike Mason’s book Pragmatic Version Control with Subversion is now on sale.

02 Feb 05

CruiseControl 2.2.1 Released

The latest release of the CruiseControl includes several new and notable features, and fixes galore.

30 Jan 05

Off the Treadmill, Onto the Rails

David Heinemeier Hansson, creator of Ruby on Rails, talks with Mike Clark about the automation aspects of Rails.

11 Jan 05

A Sneak Peek at Automator

The goal of ubiquitous automation is one of the reasons I’m excited about Automator: a feature in the soon-to-be-released Mac OS X Tiger. Working with Automator, the latest article in the Tiger Developer Overview Series, gives you a quick overview of Automator, and then shows you how you can build your own Actions and share them with other users.

29 Oct 04

CruiseControl 2.2 Released

The latest release of the CruiseControl includes a number of new features and squashes known bugs.

17 Sep 04

Tracking Projects by the Dashboard Lights

Check out this insightful article describing how one team uses automation—powered by Ruby and Java—to keep a large, geographically distributed Java project on track.

14 Sep 04

Programming Ruby 2 Available For Pre-Order

The book Programming Ruby 2 (aka the PickAxe book) is now available for pre-order. It’s a great way to get started using Ruby for your automation needs.

14 Sep 04

Quartz Quick Start

A quick-start tutorial for scheduling jobs with Quartz, an open source job scheduling system written in Java.