Archive for December, 2004

ReportRunner

Friday, December 17th, 2004

Something I’ve been playing with at work for a month or so now is a very simplified report manager, akin to Crystal Reports/JasperReports, but without the GUI-based uber-powerful stuff. It’s my IP, so is effecitively open-sourced though I won’t push it unless there’s interest. Part of me wonders if I should just be trying to guru up on JasperReports.

There’s a demo running on some of the databases underneath this blog/osjava apps and showing the features. Any opinions are very gratefully received.

Swarms of developers, deep in our hives

Monday, December 13th, 2004

Yesterday I finished Stephen Baxter’s Coalescent. Baxter is better known for his epic space sci-fi books, but this book looks at societies, especially hive systems such as those of the ants, wasps and naked mole rats.

Apologies for the spoiler, but it also contains an aside on virtual societies that is interesting to expound upon. First, a quick bit of hive-for-dummies, as gleaned from Baxter’s book. Hives are not managed by a central intelligence, a queen for example, in fact they are not managed at all. Instead they have a series of basic rules that each member obeys, and in so doing creates a system. As with all of nature, hives are about genetic survival. While we individualistic beings look at our children and try to help them to survive, a hive looks at the siblings. Apparantly insect-siblings are far closer genetically than mammal-siblings, so insects tend to hives more easily.

The concept of basic rules leading to a system is called ‘emergence theory’, though it feels quite chaotic to me. Tiny cogs that automatically create a larger entity, with no management effort.

So we have hive systems for passing on genes. As an aside, Baxter points to a virtual community and likens their style to a hive system for passing on thoughts (aka memes, though Baxter does not mention the term). This is quite similar to the open bazaar. An unmanaged group of entities, with a set of rules (beware secrets; there is strength in activity; avoid conflict/forks). The ASF has this too.

In fact, I’d say the ASF is a successful hivemind in that although I would describe it as a Cathedral of Bazaars, the Cathedral part is very carefully and slowly grown. A hard part to understand with the ASF is the confusion as things get closer to the Cathedral layer, why is there no one telling everyone what to do, what are the rules etc. Parts of this map nicely to Baxter’s rules for his hive (a 1600-year old matriachy):

“Sisters are more important than daughters”
“Ignorance is a strength”
“Listen to your sisters”

I’d replace the first one with:

“The community is more important than the coders or the code”

The second is good on its own. By having no one understand the whole system, you avoid ever having a charismatic leader who will destroy the system through their ambition. It’s a hard one to stomach as it seems to contradict the “beware secrets/be open” rule that we have, but I think it goes hand in hand. Beware secrets, but beware management structures more.

The third I’d replace with:

“Listen to the community. ” - In essence, value the communities feedback loop and such things as forks and flamewars should happen less.

Much of this is, I’m sure, in open-source commentaries out there that I’ve read over the years. I like the idea of questioning whether Open Source’s (and Apache’s) success, has been achieved by creating a hive of developers.

JFreeChart tip - Use FixedMillisecond

Saturday, December 11th, 2004

Something we hit for the Nth time at work (and seem to forget each time).

When drawing time-series charts (ie x-axis values are Dates), use FixedMillisecond.class rather than Millisecond.class, Day.class, Hour.class etc. The others do a lot of work with java.util.Calendar which sucks for performance. In the end, all the Calendar calls become the performance bottlenecks and you can get a nice boost by using FixedMillisecond.

Java photo album generator

Monday, December 6th, 2004

Here’s a nice app that we’ve started to use called JAlbum. Given that we were using iPhoto on Carrie’s laptop for baby photo albums up until now, it’s a very impressive feature-filled app that is running nicely on the home’s Windows desktop.

Well worth a look, and a great example of a good Java desktop app. It uses Swing, though I had to look at the API to notice as the widgets all feel very natural.
The only complaint is the usual Java GUI one. It’s been open all day, though not used that much, and currently has 56M of memory.