Hudson Code Swarm Part 2
Continuing from my last Hudson Code Swarm post, this code_swarm video covers the last 7-8 months of activities in Hudson SVN repository (r14862 on 29 Jan 2009 to r21601 on 11 Sep 2009).
Hudson project has been very active during that period, and this video clearly reflects that fact with the number of commiters (names) and their activities (particle movements).
Hudson Code Swarm Part 2 from Cliffano Subagio on Vimeo.
And in case anyone is interested, I’ve uploaded the code_swarm config file I used to generate the videos to github.
RFC – ChuckNorris Plugin
Update (06/10/2009): installation & usage instructions are available from ChuckNorris Plugin wiki page.
Me and some colleagues were yammering some Chuck Norris Facts-like jokes a few days ago (ChuckNorrisException can never be caught, only thrown :p), and that reminded me of ChuckNorris Plugin, a simple plugin I wrote when I first started learning about Hudson plugin mechanism a while ago.
This plugin displays a picture of Chuck Norris, instead of Hudson the butler, and a random Chuck Norris ‘The Programmer’ fact on each build page.

On failure build, Chuck Norris is ready to give you a whoopin’ for breaking the build.
You’ll also see a Chuck Norris fact on the build page.
![]()
A thumb up on successful build.

And an alert stance on other build results.
Please leave a comment and let me know what you think of ChuckNorris Plugin. And also let me know if you want to install it on your Hudson instance, I’ll make the .hpi file available for download.
My favourite facts: ‘Chuck Norris can unit test an entire application with a single assert,’ and ‘When a bug sees Chuck Norris, it flees screaming in terror, and then immediately self-destructs to avoid being roundhouse-kicked.’
Projects: buildmonitor firefox http basic authentication hudson
by Cliffano Subagio
2 comments
BuildMonitor v1.0
It’s been a long time since the last one (v0.9.2 – November 2008), but I’ve finally managed to release Hudson Build Monitor v1.0 . This add-on is still in the sandbox, I’ve been waiting for approval from the Mozilla editors for the last 9 months, so unfortunately you still have to login to download it.
A new feature in this release is build executor monitoring. This feature will work only on Hudson instance feeds (non-job feeds), and you have to enable it via Prefereces window -> Feeds tab -> Enable executor monitoring check box.

The executor status will be displayed next to the build status. It’s blue when one of the executors is running a build, red when one of the executors is stuck, and grey when all executors are idle or offline.
Another new feature is the support for HTTP Basic Authentication, this has been requested by a number of users with password-protected Hudson feeds. You can set the username and password in Preferences windows -> Network tab -> Username and Password fields.

Thanks to Jason Meridth who helped with testing this feature and wrote up his experience.
Other minor changes in this release:
- ‘Add Link To Hudson Build Monitor’ menu only appears when you’re right clicking Hudson feed links (for all, for failures, for just latest builds), and no longer for all links.
- Preference window is now tab-ified as seen from the above screenshot.
- Hudson icon tooltip on Firefox status bar now displays a message that recommends user to add Hudson feed link via right click menu instead of manually adding the URL to Preferences window Feeds section. This feature was already implemented in v0.9 (released in November 2008) and documented on the wiki page, however, there are quite a number of users who are still not aware of it and keep adding the feed URL manually following the old tooltip message.
As usual, translations have been updated thanks to Eric Lefevre-Ardant and Seiji Sogabe. Unfortunately I had to temporarily disable the French translation in v1.0 due to something wrong with the file/text(s) which breaks the add-on. I’ll do a patch release when it’s all sorted out, in the mean time, users with French locale on Firefox will get the default English texts.
Build Executor Monitoring
Here’s a sneak peek of Hudson Build Monitor’s new feature, the ability to monitor build executors from Firefox statusbar panel. This feature was requested by Espens back in July last year. Espens was one of the earliest users who raised lots of ideas and feature requests. Thanks Espens!
In retrospective, I should’ve implemented this feature much earlier as I found out recently how useful it is to be able to keep track of the currently running builds and the status of the executors. Having a stuck executor is like losing a leg, sometimes you end up with a lot of builds waiting in the queue just because a master/slave doesn’t have any idle executor.

I’ve been monitoring Apache Hudson instance, and that jspf-trunk build has been stuck for the past 3 days. If the master instance is set up following the 1 executor per 1 CPU suggestion, that’s like wasting 1 CPU resource not doing anything (if the box is dedicated for Hudson).
Build executor monitoring will be included in v1.0 release about 2 weeks from now.
Another good news is that Hudson Build Monitor Firefox Add-on was featured in the tools tips section of JavaTools Community Newsletter on December 29th, 2008. It’s a few months old, but someone just told me about it :p. Thank you!
Hudson Code Swarm
I found a very interesting project called code_swarm, which is (as quoted from its web site) ‘an experiment in organic software visualization’. code_swarm analyses the commit activities within the project’s source repository, and generates a visual representation of those activities. Each resource commit is represented as a particle floating around the commiter’s username.
So I thought it would be interesting to see how Hudson has evolved as a project, check out the embedded video below… . The particles are color coded. Red-shaded particles for Java, Jar, JSP, Jelly. Yellow-shaded particles for XML, properties files. Green-shaded particles for HTML, CSS, JavaScript, and images. Blue-shaded particles for various scripting languages.
Hudson Code Swarm from Cliffano Subagio on Vimeo.
If you have some bandwidth to burn, you should visit the video’s page at Vimeo.com, have a look at the bottom right of the page, and download the original video (344.31Mb at 1024×768 resolution). The particles look beautiful in great detail.
I used Hudson SVN log from r1 on 27 Oct 2004 to r14861 on 29 Jan 2009 as the activity data and fed it to code_swarm. You could see from the video that Kohsuke worked on his own until jglick started contributing at r533 on 1 Aug 2006.
There were 60+ contributors when I made my first commit at r10133 on 16 Jun 2008, and now the project has 100+ contributors. Hudson has definitely been gaining momentum in the past year or two on both the developers and users fronts. It would be interesting to see how the project will turn out in the next couple of years. Another Hudson Code Swarm video by Jan 2011?
BuildMonitor v0.9.1 – Oui!
BuildMonitor v0.9.1 was released yesterday. This is the first version with French l10n bundled, thanks to Eric Lefevre who submitted the translations.
I added a new ‘Build’ menu to trigger the build of a particular job. This menu item only comes up on a job feed.

Another little improvement is a new option on the preference window to hide the feed name on Firefox status bar. This is useful when you need to monitor many feeds.
![]()
![]()
… starting to look like a weather forecast.
Projects: buildmonitor hudson l10n recordmydesktop
by Cliffano Subagio
7 comments
BuildMonitor v0.9 – Usage Video
BuildMonitor v0.9 has been released, you can get it from the usual place.
The most useful improvement from this release is the ability to add new feed via right click menu of a link. Other improvements include the ability to remove the feed via status bar right click menu or from preferences menu. It’s also now possible to rearrange the order of the feeds via preferences menu.
I made a quick video (using recordMyDesktop) showing how easy it is to monitor Hudson feeds using the Firefox Add-on.
On l10n front, BuildMonitor has been translated to Japanese. Thank you, Sogabe-san.

I had to borrow a laptop with Windows to take this screenshot. I think Firefox 3.0.3 locale switching on Ubuntu is borked, the web pages do pick up the correct locale, but the add-ons ignore it.
BuildMonitor v0.8
BuildMonitor v0.8 is finally here, you can download it from Firefox Add-ons page. This release has a number of nice improvements…
Multiple feeds monitoring
Now you can monitor multiple Hudson instances by configuring their feeds in BuildMonitor preferences. All feed status icons will be displayed on the Firefox status bar, you can mouseover or click each icon to get the build details for the corresponding feed.

Feed status display
The way BuildMonitor uses the orbs to represent the health summary of the feed in v0.7 has been a source of confusion to the users. Many users thought that the orb indicates the latest build status, and not the overall health of the feed.
Another source of confusion is the fact that some users use a Hudson feed with multiple projects, some use a Hudson feed with only 1 project, and some use job-specific feeds, which led to different expectation of what status should be displayed.
With that, I decided to (1) make the status icon configurable with an option to display the overall feed health or the latest build status, and (2) use the weather icon for the overall feed health, while the latest build status keeps using the orbs.


Sound and alert window notifications
v0.8 now has configurable options to enable sound and alert window notifications when there’s a build failure.
When enabled, BuildMonitor plays a shattered glass sound (kudos to The Freesound Project) following a build failure. While alert window notification is enabled by default, it shows an alert a la Growl at the bottom right corner of your desktop.
Note that alert window on OS X only works since Firefox 3.

Green is the new blue
Quite surprisingly, I got asked a number of times about why Hudson uses blue to indicate success (to which I just pointed to this thread and that thread) and why can’t BuildMonitor uses green instead.
I was quite reluctant to add green-for-success as an option in BuildMonitor considering that Hudson still uses blue and the option to use green is not there yet. But I guess if the users want to use green by configuring via BuildMonitor’s preferences menu, then at least they’re aware of the difference, so this option is included in v0.8 . Blue is still the default though.
Personally, I like blue better :p.

Crisper icons
I added several new icons from Tango Project in v0.8, and updated the existing icons with new PNGs having transparent background.

Open page in new/current tab
Now you have the option to open build pages in a new tab or the current tab.
The preferences page now looks like this in v0.8…

Firefox add-on status
The add-on is still listed as experimental on addons.mozilla.org’s sandbox, it has been 4 months since I nominated it for approval. The AMO editors are still working on clearing up a huge list of add-ons to approve, I don’t know when BuildMonitor will be approved. I agree that the approval process can scale, but it doesn’t.
With almost 400 active BuildMonitor users (according to addons.mozilla.org), it would be very nice to auto-upgrade all of them. But since we’re still waiting for approval, you have to login again to download, sorry.
Please let me know what you think about this new release. Any comments? suggestions? criticisms?
Multiple Feeds Monitoring
Patrick Struhs left a comment on Hudson Build Monitor page, suggesting “A nice feature would be to be able to monitor more than one server easily,” and that’s what I’ve been working on sporadically this week. I started with the statusbar panel, the goal is to keep the UI minimal but still provide enough information. I’ve also got the multiple feeds processing pretty much done.

This is how the statusbar panel looks like in 0.8-SNAPSHOT. I used Tango Icon Library to keep it consistent with Hudson. The above screenshot shows the status of six feeds, the first one is a Netbeans feed with a warning, the second and fourth ones show an error icon indicating a problem with the urls, the third one is a JBoss feed – currently downloading, the fifth one shows the no-build icon, and the last one shows that the feed is currently queued waiting to start the download.
Next up… preferences and right-click menu revamp.
Projects: buildmonitor firefox hudson jcaptcha kaptcha
by Cliffano Subagio
3 comments
Kaptcha v2.3 And BuildMonitor v0.7
Jon released Kaptcha 2.3 which includes a patch I submitted about 2 months ago. This patch replaced imaging library with pixels. If you look closely at the new kaptcha image…

you will notice that the water effect (at the centre of the image) is now visible with pixels, whereas it wasn’t at all with imaging library in the original simplecaptcha implementation. I tested various settings of the water effect, and opted to minimise the effect so lowercase letters on a small font size are still easy on human eyes. Another change with 2.3 is the ripple effect on the characters. It’s not too obvious on the above image, but it’s more visible on uppercase letters with larger font size.
All in all, I think Kaptcha is a nice simple library that does the job. I started using it with Blojsom SCode Plugin, and contributed some improvements back to Kaptcha. Another (more popular) java-based captcha library is JCaptcha, which is also used by SCode Plugin. I’m not a big fan of JCaptcha for the simple reason that their generated captchas are hard to read. It’s interesting that similar comments were made on Hudson mailing list.
Now, on to Hudson Build Monitor. I just released BuildMonitor 0.7 last night. This version is compatible with the recently released Firefox 3.0.1, and it includes id-ID l10n as the first translation. Next version will have build executors monitoring. I’ve started working on the UI, but the data feed is yet to be added to Hudson core.
As you can see from the add-on page over at mozilla.org, this add-on still hasn’t received an approval for public access. I understand that the AMO editors (which all/mostly are volunteers) have been working hard with the crazy number of submissions per day since Firefox 3 release, but I believe that the current approval process will keep facing the same problem every time there’s a sudden jump in the number of add-on reviews, unless Mozilla allocates additional editors to help out. This is not a rant or gripe towards the editors, on the contrary, kudos to them for the work that they’ve been doing.
If I can suggest a change to the approval review process, I think it’s better to distribute the review tasks to the submitters by specifying a detailed list of tests that must be done by those submitters, and keep the tasks that the editors must do as minimal as possible. For example, if AMO provided me with 50 things to test, then I would go through the list, record the tests as a video, and put them on youtube. The reviewers can then just review the video, and still perform only the really really necessary checks, like scanning the source code for any obvious security issues.
So, Hudson users, please be patient, you have to keep logging in to add-ons.mozilla.org to download the add-on for now :).