Monthly Archives: September 2003

Directories are not Java source file package names

Directories are not Java source file package names

A strange rant by Gregg, he is correct that you don’t need to have your java source code in a directory structure that matches the package names. But if you don’t how do the humans find the source files? When you see “import org.visres.common.xyz” how do you know where to find it without using the directory name from the package?

Also it is really odd to still find developers not using jikes as their compiler, it knocks a huge amount off compilation. It also gives much better and fuller warnings, and of course is free software.

Software Project statistics

The problem with providing statistics is that people are influenced by them. Let me take as an example one of our Free Software projects. VisibleResults. This is hosted by SourceForge who provide some Project statistics.

However, we as a team know they are way off. For example the downloads has a huge blip in June 2002 with a total for that month of 10,767 as that is within an overall project lifetime total of 14,056 (over 34 months) it makes no sense.

The sourceforge figures are also way off for CVS, ok they admit there is a problem at the moment, but it has never been anywhere near correct. For example on the source forge report for the last 30 days there is a total of 13 in the CVS column. Whereas I have 202 commit messages in from the project cvs mailing list for the same period. Many of the commit messages are of course for multiple files so the real count is much higher.

It is particularly frustrating when the focus is on rapid development, we have been very busy as a team on new features in the VisibleResults framework, SecurityUI module and Contact module in recent weeks – yet I know this will not show up in the stats or ranking. Part of the problem is that we are busy enough and the project is successful enough for us not to have much time to work on it’s website which is pretty out of date at present. Visits to the site are a key part of the SourceForge stats and we don’t work at that at all. As we also supply VisibleResults directly to customers none of their use shows up in the download stats either.

Blogroll Update

I have just refreshed my Blogroll to match what I am currently reading using Newsmonster. Not sure why it set this sort order in the OPML file or why anyone might be interested – so thats all I am saying ;-)

Curse of the pretend project

Curse of the pretend project at Incipient(thoughts) – Laurent Bossavit’s weblog.

I once lead a project that had simularities with this.

The record was a single source file 18,000 lines long, of which 15,000 was in a single procedure.

The company was frightened of that code so were worried about us touching it. So at one point I quietly took 3 days to refactor it into some kind of sensible shape. Actually that was not so dificult, as always apply the 80/20 rule to contro, what is worth doing. By going for the easy hits first you can quite quickly remove a lot of the fear.

The trickiest parts were global variables with names like NicksSpecial some of which were used to pass values all over the place while others had multiple different purposes due to having reached the environments limit on global variables.

Still it was different to the linked project in other ways. The product was selling well and being extended into new business areas we also had a dedicated development team of 3 that grew to 5.

Chess with Kids

Kids move on in sudden steps. Peter has just joined the school chess club, he has played a little before – enough to know the moves but struggle to achieve checkmate.

Anyway he won 3 games in his first evening and tonight wanted to play me. I won twice, but not without thinking and with very few moves by him that I had to suggest he should rethink. Then in the 3rd game he caught me in the kinds of silly mistakes I have been able to get away with when playing them, without any difficulty I was able to let him win without having to make deliberate mistakes. So he managed some forks on me (with his Queen to capture both Rooks at different times) and an attack on my Queen than included a Bishop sacrifice by using it to put me in check while launching a discovered attack on my Queen – excellent and not an accident. He also managed a quick and neat checkmate once I had only King and Pawns left.

That’s great, I have not had many opportunities to play chess in a very long time.