Ant's cool morale booster: splash task

Spotted the use of the <splash> task in the Hibernate build.xml today (via BPH). So of course I had to add it to Clover’s build file. You can see the results in the following screenshot. The <splash> task shows an image and a progress bar while the build is executing (the image can even be an animated .gif). This is cool and fun, but “cool” is not the only reason why I added it to a production build file....

August 14, 2003

On verbosity, Ant's syntax and XML

I’ve been tweaking quite a few Ant build files at work in the last couple of weeks. Firstly, thank crap for IDEA and its Ant completion mode (Eclipse has a similar mode). Also, being able to comment out a whole XML block with Ctrl-Shift-/ is nice, too. Secondly, there is a certain amount of noise in an Ant XML file. Now, I know that I recently made noises myself in defence of Ant’s verbosity, but I decided to do a little thought experiment and see what an Ant build file might look like in some alternate syntaxes....

August 14, 2003

Matt's first law of software complexity

The first law of thermodynamics states something like this: the total energy of the system plus the surroundings is constant. Or basically energy is conserved; it cannot be created or destroyed, just moved around. This first law is an important realization for chemists/physicists, and underpins the way they look at problems. I think there is a similar realization that can be made regarding the complexity of software systems, and that it can change the way you look at and design software....

July 25, 2003

UPDATED: The world's best cut-copy-paste preventer

(Greets: Conor, OJB, Malcolm and BPH.) UPDATED (2003-07-09T06:54:05+0000) Brendan has implemented this as an IDEA plugin Your innovation got me thinking - of a lateral solution - no hardware mods required. see attached :-)

July 8, 2003

BMC's four rules for meeting attendence

BMC has posted some of his thoughts on meetings. I used to work with BMC, and meetings never did seem to get in our way. BMC’s four rules for meeting attendence: If someone hasn’t spoken in the last 10 minutes at a meeting, then they shouldn’t be there. If one person speaks more than 80% of the time, then it is a presentation rather than a meeting. Use email or voice mail to distribute the information....

May 30, 2003

Code idiom: using logical ^ to change your mind

This idiom is a cool little trick, but I’ve seen coders scratching their head trying to work out what it does; so a detailed explanation is in order. The ^ bitwise exclusive-or operator (or “XOR”) is standard computer science fare. An XOR is often used to flip bits in a byte/word. In Java, the ^ bitwise operator works on all the integer types (int, byte, short, char, and long) and performs an XOR between each corresponding bit in the arguments....

March 26, 2003

The first program I ever wrote myself

The other day, I recalled first program I ever wrote. Actually, I remember it distinctly. I was in Year 8 (aged 13 or 14) of high school. It was a bright warm summers day but cool and dark in the computer lab (the curtains were always closed on such days). Some mates and I had spent the last couple of weeks typing programs from books into the Apple IIe computers in the lab....

March 12, 2003

Code idiom: inserting a separator between the elements in a list

I use the following code idiom all the time. I know it seems simple, and I know there are other ways of doing it, but when I first saw it a penny dropped. Writer out = ...; List l = ...; String sep = ""; for (Iterator i = l.iterator(); i.hasNext(); ) { String s = (String) i.next(); out.write(sep); out.write(s); sep = ","; } You can see how this works:...

February 18, 2003