Hudson NodeJS Plugin
If you’re a NodeJS user who happens to use Hudson as a continuous integration server, then perhaps you would be interested to check out NodeJS Plugin which I released about a month ago (yea, I’m always behind with blogging).
This plugin allows you to use NodeJS script on a build step, as an alternative to the existing shell script (out of the box) and Ruby script (via a plugin).


Call me too optimistic, but I’m waiting for the day when all standard shell script commands have their NodeJS equivalence.
JSGames Plugin – Play Mario Kart & Tetris On Hudson
Now you can play games on Hudson using JSGames Plugin, albeit only a cutdown version of Mario Kart and Tetris (credit goes to Jacob Seidelin of Nihilogic Games). This plugin is extensible enough, so it’s pretty easy to add new games. The winners of 10K Apart would be good additions given the right license.

I wrote this plugin as an experiment on using Hudson for non-continuous integration purposes, in this case, a very minimalistic ‘games delivery platform’. Games as plugins, each with a pluggable Hudson UI that automatically adds a game menu / navigation. To push this further, the dashboard can then be modified to look more like Steam or iTunes, but of course I didn’t do this part.
Hudson is quite flexible, eh?
Hudson BuildMonitor v1.5.5
FIFA World Cup 2010 update: Australia was demolished by Germany 0-4.
After ten months since the last public approval (v1.0.2) and four review rejections from the Mozilla editors, Hudson BuildMonitor v1.5.5 was finally approved a couple of weeks ago.
This version contains a major refactoring effort, attempting to separate the generic JavaScript code from the Firefox specific code. The goal was to make it easier for me to create a Chrome extension version of Hudson BuildMonitor, but of course I never had the time to do it and by now there are already two Chrome extensions out there, Hudson Extension by sanitz and Hudson Monitor by Henning Hoefer.
What I didn’t know back then when I started the refactoring effort was that Mozilla introduced an add-on verification suite about a month after v1.0.2, and that the Mozilla editors started working on reducing global namespace pollution. Those two things were good of course, it’s just that I had to put more sporadic efforts to work on those changes, which then stretched this release even longer.
Some of those changes are:
- Everything is now namespaced, and I really mean everything. The editors even picked up un-namespaced external libraries, which means Dean Edward’s Base is now name_edwards_dean.Base .
- setTimeout usage should be replaced by nsITimer.
- Login details management should use *drumroll* nsILoginManager.
- Datejs can’t be used anymore because it extends native Date, I replaced it with Matt Kruse’s Date library.
Out of the bug fixes included in the 1.5.x releases, I’m particularly happy with:
- Finding a workaround for HUDSON-2979, a problem that has been a blocker for OS X users. I bought a MacBook Pro about six months ago and was finally able to investigate this error myself.
- Fixing the mysterious error with French translation files. It used to work in older versions prior to v1.0.2 because the property files were UTF-8 without byte order mark and they contained non-ASCII characters, then at one point it was accidentally encoded as ISO-8859-1 while still having those non-ASCII characters which then broke the add-on. To avoid this problem from happening again in the future, I decided to take the safer option and unicode-escape those non-ASCII characters.
Working on Hudson BuildMonitor on and off for the past two years (the first release was on 8 June 2008, wow, has it been _that_ long?) has been a good opportunity to revisit JavaScript, a language many developers used to look down at. I agree with Douglas Crockford that JavaScript has been misunderstood, checkout his talk on JavaScript: The Good Parts at Google, and with the emergence of server side JavaScript, I believe this language is going to take off next year.
And to those who are still using Hudson BuildMonitor, thank you.
Hudson Gource
Awesome visualization of Hudson codebase on SVN using Gource, a reply to Kohsuke’s tweet a few days ago. Gource is a software version control visualization tool, similar to code_swarm, but triple the coolness factor.
This video somehow doubled up, I must’ve done something wrong when I added the audio using iMovie. The activities from 2005 to 2010 run up to 16:30 minute mark, the rest is just a repeat so you can skip it.
And for future reference, these are the commands I used on OS X to generate the video:
-
sudo port install gource
-
sudo port install ffmpeg
-
svn log --verbose --xml > hudson-svn.log
-
python svn-gource.py --filter-dirs hudson-svn.log > hudson-gource.log
-
gource --highlight-all-users --log-format custom hudson-gource.log -800x450 -s 0.01 --stop-at-end --hide filenames,dirnames --follow-user kohsuke --output-ppm-stream - | ffmpeg -y -b 3000K -r 24 -f image2pipe -vcodec ppm -i - -vcodec mpeg4 hudson-gource.mp4
Nice instrumental songs by Eric A Liniger.
Projects Work: hudson jslint shinetech sitemonitor violations
by Cliffano Subagio
1 comment
Re Hudson SiteMonitor Plugin And JSLint Violations Support
Just a quick note about a post I made over at Shine Technologies blog re Hudson SiteMonitor Plugin and JSLint Violations support.
My current employer, Shine Technologies, allowed me to spend a couple of days to contribute to an open source project, so naturally I chose Hudson and worked on things that are useful for the projects I’m involved with at work.
SiteMonitor Plugin was a late follow up to this short thread on Hudson users mailing list about a year ago. JSLint support in Violations Plugin was an effort to add JSLint report handling in Hudson a la Checkstyle.