Archive for February, 2007

When Life mugs you with randomness

Tuesday, February 27th, 2007

As my wife has mentioned it, I feel I can now. The last couple of weeks have been pretty hellish since we found out that our baby was now classified with the wonderful term of ‘foetal demise’. Her cord had knotted and she passed away while we thought she’d just rotated and was kicking air. Carrie does a great job of talking about Abigail Beatrix, so I won’t say much.

I don’t know you, but I will miss you
didn’t even get you out of the box
I’ve not met you, or even seen you
just reflections of your heart.
You were gone before we knew
absent while still part of our life
we don’t know you, but we miss you
we miss you from the start.

Bamboo CI system

Tuesday, February 20th, 2007

#activemq nudged me towards their Bamboo installation. I’ve had a few peeks at Bamboo, but largely I’ve been trying to avoid turning to it because a) it’s new and surely not all there yet and b) I don’t want to start with the commercial offering. It’s fine for a company, and fine for an open source project, but when I want to run something individually or at a tiny company it becomes a pain in the arse to have locked myself into N-thousands.

However…. damn that looks nice. Curse you Mike and your tribe of shiny toy creators. I even hear it’ll handle my #2 feature request - multiple JVM support. Now for #1 - let me generate the configuration to an import script or a (well maintained!!!!) xmlrpc service and I’ll write you the import configuration bit.

I hear it has good Maven support [I presume maven2]. That’s an essential nowadays I think. And I also like that the reporting is focused on the build system and not on the source [checkstyle/pmd etc]. That’s something that a repository visualizer should be doing as a part of a greater CI system and not something the build-CI itself should be wasting time on.

So now… need to find time to play with Bamboo it seems so I can become even further dependent on Sydney.

Metasyntactic variables

Monday, February 19th, 2007

This weekend a Terry Pratchett book taught me the term Metasyntactic Variable - ie: wossname, thingamebob, doodah - though Wikipedia seems to think the correct term for these is Placeholder Name. The former sounds much better, the latter is just a wossname.

Commons JIRA report (update)

Sunday, February 18th, 2007

By the way, here’s the latest incarnation of the Commons JIRA report: http://people.apache.org/~bayard/jira-report-for-commons.html. It’s nice to be able to view it in one go rather than as many individual projects.

CruiseControl + SVN

Friday, February 16th, 2007

Shannon Krebs pointed out in a comment to my last CruiseControl post that the svnbootstrapper can be used to update the project. I’d discounted this because the docs say “Handles updating a single file (typically build.xml and/or build.properties) from a Subversion repository before the build begins. “. ie) It’ll update build.xml, then you can call something on build.xml to update the rest.

Prodding it a bit, it does run quite happily for the whole project if you use the localWorkingCopy attribute. There is still one problem with this. From the docs - “Bootstrappers are run before a build takes place, regardless of whether a build is necessary or not”. This is irritating, I don’t want to run svn update every time, just when a build is needed. Having an attribute to each bootstrapper of ‘if-build-required=”true”‘ seems like that would solve things.

Looking at the above brings to mind a definite complaint I have with CruiseControl. It’s error handling when parsing the configuration file is non-existent. It just falls over and prints the help message.

Shannon talks about moving to Hudson. Shannon dislikes that there is a configuration file in CruiseControl - I definitely fall into the camp of looking at things like CruiseControl and Hudson and wincing at the thought of having my configuration stuck inside a GUI. I want to store the config in SVN and edit with a powertool (vim!) and not have to use a painful HTML form.

Jason Yip points out that there is discussion on fixing this: CC-320.

Feathercast interview

Friday, February 16th, 2007

After a bunch of ‘we should do a podcast’, David finally managed to corner me for long enough to do an interview.

There are a few acts of arrogance on my part that make me wince. I wasn’t the only one to work on splitting up Commons Util - from memory Daniel Rall did a lot there; talking about being surprised at getting a good number of votes is a bit arrogant (though many thanks to all who voted for me); and I seemed a bit back to front when answering whether I thought I would get voted onto the board. Prior to the election I wasn’t expecting it, but after the election (with hindsight), I realised that with 9 spaces and 14 or 15 candidates you’ve got a better than average chance.

There were things I wanted to say that I didn’t manage to bring up. One big problem I find on the board is a sense of silence. My view of a chair, and a board, is much like the speaker in the house of commons. They are a member of the parliament, but they tend to hold their opinion back until they need to be giving it (ie: in a draw). So I hold back on pmc mailing lists because I want to let the pmc do their thing [and yet I’m part of that pmc].

David did a good job of editing - I tend to pause for a bit when asked a question while I think and he cut that out. Probably halves the length of the interview ;). I also um and err a bit and he managed to reduce that. Something I’ve noticed from the previous podcast that I had a couple of sentences on is that I’ve picked up a habit of having my inflection go up at the end of the sentence. I didn’t really notice it until I started doing board calls (takes the others a moment to realise I’ve finished) and it’s something I want to get better on. Apparently it’s an American habit. I don’t do as badly on the interview with David (I think).

I do speak fast. Screw you all :)

Playing with CruiseControl

Thursday, February 15th, 2007

Previously I’ve grabbed CruiseControl to play with and had its unit tests fail to work on OS X. I seem to recall it only shipped as source, and seemed dead, so that was that as far as I was concerned. Moving on…

Recently I’ve been playing with it again because it still seems to be the only one out there that is comfortably beyond the basics and into the interesting stuff. This time I stuck it on a Linux laptop and failed tests are no longer a worry. I’ve immediately taken a liking to it, no matter what its clunkiness, because it uses configuration files to drive it and not a GUI on top of a database. Maybe this is passé in this World 2.0 day and age, but it works and follows the important keep it simple design principle. It also means I can generate files to save myself time.

So that was my solution to having lots of projects to build; I’ve made a template for m1, m2 and ant. Since then I’ve discovered plugins (basically macros), but they don’t seem to gain me that much given that I’m happily generating my config.xml from a much smaller file. The other major aim I wanted to have was to build under multiple JVMs. I’ve done that via a generic ‘run foo under all configured JDKs’ script that you symlink next to the foo script in question. It works happily enough, but I don’t think I’m getting the pass/fail logic right.

Next up I had a play with the reporting package. This is basic and dull. Some attempts have been made to add new graphs etc, but they’re missing out by not adding in better automatic m1/m2 functionality. M2 is supposed to allow me to have two different sites, so I’m looking forward to trying to define a user focused site and a CI focused site. Then I’ll have to figure out how to turn off the useless Coding Violations pie-chart in CruiseControl.

One thing does piss me off something royal. CruiseControl seems to refuse to want to be in control of doing the svn update. It can check to see if there’s been a change, but it won’t go ahead and do the update. That’s incredibly crap, and as the new tag to chain builders together isn’t working for me currently, I either have to make maven do the update [doesn’t help the ant file], or write a wrapper ant task around each bit [dumb], or hack it into the scripts themselves (ant, maven, mvn). The latter is tempting.

CruiseControl seems to suffer from a similar problem to PMD and its ilk. The tool should not impact the target. My build should have no special tasks for the CI system, and my source should have no special flags and comments for the reporting tool. Otherwise the tail is shafting the dog.

I’ll probably keep on pushing on with CruiseControl. I trust a system that is based on configuration files and not a webapp with a database behind it. The state data should be in a database, with CruiseControl it’s just on the file system; but the configuration is more important than the state.

Google lose copyright case

Wednesday, February 14th, 2007

Noticed this via the gmail advert linking to Slashdot - Google News Found Guilty of Copyright Violation. The thought I have is that Slashdot are also guilty by linking and summarising the upstream report, and I’m now guilty of linking to Slashdot and summarising. Either the devil’s in the details, or this is a farcical piece of judgery.

(I know..I know.. the devil will be in the details)

The size of Commons…

Monday, February 12th, 2007

Commons hasn’t grown much recently - much is actively maintained but we haven’t added a lot of new things (SCXML and VFS the notable exceptions). I happened to be writing up a status for all of Commons and the number of components surprised me.

  • 32 Released
  • 12 Sandbox
  • 38 Dormant
  • Which equals 82 Total

Bank of America (formerly MBNA) Linux credit card

Sunday, February 11th, 2007

I’ve had a Linux credit card for a while. I’m sure I’ve mentioned it on the blog, but apparantly I can’t find it. Last time I looked, the money was piling up and not being used; but I looked again today and it looks like things are far more organized. Check out the Linux Fund page on who money has gone to.