I’m a big believer in the benefits of Continuous Integration, and so I have become a user and then contributor of CruiseControl.
I find the continually increasing awareness of CruiseControl in the development community quite exciting. Mike Clark’s new book has been receiving a lot of attention , which has been translating directly into a lot of new users. I find the CruiseControl project statistics graph at SourceForge very interesting indeed. I expect that this month will break page view and download records again, especially if version 2.2 gets released on time.
Why am I excited about this? Besides the fact that Continuous Integration is a fantastic development process, I also have a personal stake in CruiseControl. I have been making contributions to the website and documentation, an area that is traditionally quite weak in open source projects. In helping out and assuming ownership in a relatively unmaintained area, I’ve become quite connected with the success of the project. Marking out my home in the noosphere, I guess.
As part of a project that we’re working on together, my friend Pete Townsend developed some library code to generate prints for insurance policy applicants. Input data comes from an XML document, and is converted to an AFP print stream (AFP is a MO:DCA print format used on mainframes). Leveraging available open source tools, Pete created a plugin output renderer for Apache FOP.
There’s nothing unusual about this type work, any developer working for a large corporation will do similar tasks. The amazing thing is that Pete managed to convince our management that donating this project back to the Apache Foundation would be a good idea. The result of this is the AFP Renderer project on SourceForge. In a fit of madness, I told Pete I could help out with creating the AFP Renderer Homepage.
The ultimate aim is to get the AFP Renderer source code integrated directly into the Apache FOP codebase. In the meantime, SourceForge has (yet another) project.
It’s been a long month. I’ve learnt more than I wanted to about Linux hardware compatibility, but I’ve finally managed to get Fedora Core 2 up and running. Configuring mail, web, etc has been interesting, as it’s all slightly different from what I’ve been used to with Debian. Over the next few weeks, I’ll tweak things into usable shape, but it won’t be quick.
A blackout last Friday did a pretty good job of killing the exubero.com server. It looks like a power spike got through the surge protector and left a smoking crater where the CPU normally sits. I’ve got a new one on order, but with limited time it could be a few weeks to get back to normal.
In the meantime, I’ve only really got the homepage back up on external hosting. The rest of the site will have to wait.
I’m in the middle of updating the exubero.com site to try and get a more three dimensional and less blocky look and feel.
Phase one of this project is to convert to a proper two column layout (now complete). I borrowed design ideas from Dan Cederholm’s SimpleBits to come up with a right floating content div, with the navigation and sidebar part of the regular layout on the left.
The next task is to work on some background graphic elements to enhance the “lush” look and feel of exubero.com, and to mask the blocky effect that the use of div elements brings.
When I was working on updating the styles for CruiseControl, I managed to hit a combination of css styles and html elements that would reliably crash Mozilla Firefox. I have raised this issue in bugzilla
Using CruiseControl day in and day out for months on end gave me a lot of appreciation for the power of the tool, but I wasn’t really satisfied with the standard of the documentation available.
In the spirit of open source development, I fixed it. The problems I saw (and fixed) were:
- There was no navigation feedback: clicking on a link in the navigation list should provide some sort of highlight to indicate the current page in the web site. This is enormously useful in allowing a user to get a mental picture of the structure of the web site.
- The navigation was inconsistent: clicking on “build loop” or “jsp” completely changes the order of the menu, which makes it confusing and can be hard to find the link back to where the user came from.
- The navigation was not complete: there are a large number of pages that do not appear in the navigation list, which means that it is confusing and easy to get lost once you have left a top level page.
- Some information on the site was (and still is) out of date.
- The configxml page is a bit big, and doesn’t give good indications on the xml elements to which it describes.
- The HTML markup was non-semantic (for example, headings are not marked up as headings). This makes it harder for search engines and other automated tools to understand the structure of the documents.
My fixes were recently checked into version control, and are now visible on the CruiseControl home page. I’m planning to continue making enhancements to the CruiseControl documentation, which can be previewed within the exubero domain.