March 2006
[ Brett ] 10:04, Saturday, 25 March 2006

I've really been enjoying the Dilbert Blog since discovering it a little while back. There are entries pretty much daily to go along with the Dilbert comic, and Scott Adams' same sense of humour comes through, though this time applied to the real world (though it's easy to argue that the Dilbert comic is very close to the real world too sometimes!) It's often laugh-out-loud type stuff.

It was good to see him take a more serious, less cynical, side today in writing about James Blake's comeback in professional tennis. It's a really great story - check it out. It's great to see there are still professional sportsman such as Federer who can be humble despite their tremendous ability. Being an Australian, I still like to see Australians win contests, but I have a hard time cheering for Lleyton Hewitt (who is also mentioned in the story) with the way he behaves on court. Compare that to somone like Pat Rafter who didn't quite reach the same heights, but is a far more memorable player for the attitude he brought to the game.

[ Brett ] 15:18, Thursday, 23 March 2006

Continuum 1.0.3 is just around the corner, and I'm glad to mention a couple of really good improvements have cropped up recently.

Apart from the other long list of fixes so far, Emmanuel has been hard at work cleaning up the JDO code, resulting in massive speed improvements on the project page, as well as when queuing and executing builds.

Joel and Emmanuel also applied a new skin to the web interface, which you can see below. It's a lot more trim...


continuum_small.png

If you are interested in checking it out, the latest *development* build is available here.

This will be the stable release for a little while, as Continuum 1.1 rolls on with the conversion to WebWork2, a number of UI improvements to make it easier to use, integration of Geronimo's GBuild for distributed builds, and a number of other minor features.

[ Brett ] 11:13, Friday, 17 March 2006

I got back into doing a small feature enhancement for Continuum the other day. There was just one problem - after I built Continuum myself and ran it, my machine dropped to a blue screen of death and rebooted. (Yes, I'm back on Windows). This was pretty strange, as running Continuum that others built work just fine, and I really didn't have time to investigate it any further.

What to do? Pretty hard to develop if you can't run something you build. I don't really have a separate development server at my disposal right now.

Luckily, I'd gone VMWare image crazy just a few days before. I was testing out startup scripts, so I've used this information to create a stack of VM images - from my old versions of Windows I have lying around to Darwin and OpenSolaris. I also had the Ubuntu VM already downloaded from the VMWare site. Up until a couple of months ago I'd been using Ubuntu but I got tired of the network problems I was having, so it was good to have it around again.

That was the best solution I could come up with. I now have my home directory on the Ubuntu VM mounted over samba so I can edit like its local, run it in the VM, browse from my own browser, and debug using remote debugging like I'd have to anyway. The speed difference really isn't noticable - the only annoying thing is coordinating the capture of the pointer inside that window.

So, an odd setup, but actually quite a nice one if you like Linux from the command line and Windows for your apps (and drivers).

[ Brett ] 00:43, Friday, 17 March 2006

Ugo Cei asks "Is all religion moronic?"

Not usually a topic for this blog, but I've been thinking about this recently myself and wanted to comment. And not because I'm a South Park fan (it's been many years since I watched it and I was a little surprised they were still trotting out new episodes :)

I actually agree with the original viewpoint that it's hypocritical to have different standards. People shouldn't be judged by other people for their beliefs, and they all deserve respect no matter how much they disagree with your own.

Ugo goes on to say, "But then I started wondering: Is there any difference between believing that we are inhabited by the souls of billions of aliens who were murdered 75 millions of years ago and believing that Jesus's mother was a virgin when she gave birth to him?  Both are clearly made up stories..."
I wondered what makes them "clearly made up"? Is it a lack of any evidence? In the case of Jesus, is it simply that the evidence relies on the miraculous?

I definitely think that faith is required in any religion.  However, I'd disagree that religion is always "based on unproven statements that must be believed on faith alone, suspending all rational discussions".  Religions dramatically affect the way people live their lives, and should be held up equally to close scrutiny. There should be no room for blind faith.  It's true, God's existence can only be proven by starting with the assumption that he exists. That certainly requires a leap of faith to believe! But I think it's important that faith has a basis in real evidence.

So, I'm a Christian, yet I agree with the blog title - does that mean I'm a moron? I sure hope not, but perhaps I should explain why, just to be sure.

For me, Christianity explains the world I see around me. Yes, faith is required, but it's backed up by the Bible and historical evidence, and by evidence from the natural world - some things that you "just know" to be true from your birth without being given an explanation, such as the existence of good and evil. Most of all, it's evident in the difference it has made in my own life and the lives of those around me.

It still seems like a big leap. But contrast that to the leap of faith required to assume that there is no God at all. Which is the greater miracle - a virgin birth from a God that created the whole process, or an ordered universe that came into existence from nothingness by chance? In either case the evidence will only get you so far before you need to stretch your boundaries.

Now, to the point of the blog title, yes - all religion is moronic. This, of course, depends on how "religion" is defined, but I find it is commonly used to represent people trying to get to God, or otherwise doing something themselves. However, if a powerful God exists (or another supreme being), to think that there is anything we could do to reach out and affect them is completely self-absorbed, and just plain stupidity. Tradition, ceremonies, rules, gifts - all would be completely insufficient to really have any effect.

Religious activity is usually a means of disciplined self improvement. In that regard, it always fails! There are countless examples to be seen in the world today. They were always destined to fail, though - a powerful God that wants justice can demand no less than perfection. Now, I've always known I should be doing good, but still manage to mess it up daily. I know that I can never be perfect. But there's no such thing as "good enough" on a scale of good and evil. Otherwise, where would the line possibly be drawn?

This affirms my belief in Christianity - it's really not about "religion", or anything I can do. An endless pursuit of trying to become perfect would be hopeless. But, if the Bible is to be believed, then admitting that I can't do it myself and asking forgiveness is all I have to do - and in fact, all I can do. God wants honesty, integrity, fairness, and a relationship. Everything else (ceremonies, tradition, obedience to rules) should only be our expression of thanks, not a chore only tolerated to score points or receive some blessing. That, to me, seems real - it's an appropriate response to a powerful God rather than a half-baked attempt at trying to do more good things.

There'll be no reward for the quantity or quality of a person's religiousness. Rather, by admitting fault and having faith, the reward is that God will never turn his back on you. The alternative? To turn my back on God, and eventually get exactly what I want - a lonely world without God, stripped of anything that was good. Nothing beautiful, nothing fun, nothing satisfying. Or worse, complete non-existence. I know which I'd prefer.

If that's not the truth, then I may well be a moron. Just another 28 year old with an imaginary friend. But in my opinion, it would have been far more moronic to pass up a chance at that free gift of forgiveness, to risk ending up spending eternity completely alone, kicking myself for being so stubborn.

What do you think?

[ Brett ] 21:39, Monday, 6 March 2006

TestNG has been on my "must play with that some day" list for quite some time. Though I'm yet to write any significant tests with it, I was lucky to recently get some exposure to it to prod me along. This came in the form of support for Maven 2 contributed by Jesse Kuhnert, who not only did the initial patch but continually and patiently prodded me to look at it. I'd also listened to Cédric's JavaPosse podcast (or at least the first half, it seems to cut all the old ones off in the middle). I'd also started to get the IDEA plugin, assuming I got the right one
since the web page just said "get the plugin from the plugin list", and there are two, neither of which seem to be related to the project. The other was a generator and I now have the little TestNG logo in the configurations dialog, so I think I'm good to go.

The main reason I had put it off for so long was that I hadn't yet learned much about actually using TestNG and I knew I was going to have to make some changes to our test runner code called Surefire that has been around a long time and not evolved with the Maven 2 architecture. The patch for TestNG worked out of the box, but didn't (couldn't) integrate with other features.

There were some rough edges along the way. Since the patch was using a few internal APIs from TestNG that were public, upgrading through releases that had come since constantly broke the code. Might be time to introduce them to Clirr, another of my favourite new toys :)

However, the refactoring is now done and the TestNG code all revisited, and we've landed support that is comparable to JUnit (3) and the basic POJO test runner that is built in. It supports all of the fork modes (none, once for the whole suite, or fork for each test set), but more importantly integrates with anything else in the build lifecycle, such as Cobertura, without any additional configuration. This required very little TestNG specifics, so hopefully the basis is now there for other providers, as we start to see requests for JUnit 4 roll in. This is pretty satisfying, as we get to see the fulfilment of Maven's promised build knowledge reusability in action.

Once released, using TestNG tests is just a matter of including:


<dependencies>
  <dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>4.6.1</version>
    <scope>test</scope>
    <classifier>jdk15</classifier>
  </dependency>
</dependencies>


And from there you can run the usual mvn test, mvn cobertura:cobertura, mvn clover:clover, etc. Of course, you can customise them to enable things such as parallel test execution and using TestNG's XML suite definition files instead of the normal includes/excludes mechanism.

Another great thing is that you can try out TestNG immediately, even with your JUnit tests in place - the test runner finds each Java file and sets the JUnit flag for tests if appropriate so that they can be mixed in the directory with TestNG tests.

There are some instructions for those that might be game enough to test it before the release, but it is not quite there yet and there are still some minor bugs to be resolved. Hopefully, these won't hold it up for too long.

All in all, I think this is a great development and I certainly anticipate trying out TestNG on my current project. Just as soon as I get through all the mail I haven't read while I was playing around with it.

Technorati Tags: