FreeGuide is hopefully nearing a new release. Alex has been working on the plugins system, and hopefully I will be able to test it this week. If it works ok, we’ll release it as unstable, and then with a few bug fixes we should be able to make the next release stable. Alex has refactored the code so that the main program is just another plugin. This is pretty cool as it means we can upgrade everything without restarting the program (hopefully, although in practice we think we may hit problems with resources not being freed). We are currently discussing exactly who should be able to upgrade what plugin when. I am keen that users be able to get a new listings grabber as soon as they need one without needing their admin to do it for them. On the other hand, probably only the admin should be able to upgrade the main app. The way jEdit does these things seems to work pretty well.
When I wrote DIYBlog it occurred to me that what I was writing would translate into a blog aggregator pretty easily, and so I’m working on making that so. I’d like to start a little community of Java developers who are working on small free and open source software Java programs, so we can start to communicate through our blogs and help each other out with thorny issues e.g. how to get our programs working with an all free software systems (more on that later).
For the moment I’m working on aggregating my own favourite feeds, which you can see here: Planet Andy. All this is/will be running on pure FTP web space, with a little cron job running on my own machine to keep it updated. Of course, that does mean it only works when my machine is turned on…
Been discussing with Alex about the dangers of re-implementing – he wants to simplify the command-line arguments code in FreeGuide, but rather than modifying the existing code, he’s re-written it. The problem with re-writing is that old code usually has lots of non-obvious bug fixes in it which you will have to re-implement all over again as they are reported. Alex has re-written a few things, and generally he’s improved the code structure, but we have both then had extra work to do fixing the bugs that are inevitably introduced. That can seem like a waste of time if they’re bugs that I have already fixed in the past.
It always feels easier to write your own new version instead of understanding what’s already there, but in reality, unless you’re changing the output, it’s never a good idea completely to re-write the internals. There’s a good article by Joel Spolsky on this.
…for a while.
Woke up at 4.30am today having awful dreams about how none of the code worked. My dreams transposed the problems I am trying to solve at work onto the code I need to write for my corrections. I couldn’t stand it any longer so I got up and started work on it, and I’ve launched an experiment now which should hopefully provide all I need in terms of experimental work. So, it’s not as bad as my dreams…
The idea of getting back into the writing part also terrifies me. I guess another few weeks of getting up in the small hours might get it done, but I’m likely to lose all my friends. Obsessing about this is already making me totally inward-focussed. I am trying to make an effort to think about what other people might be feeling, to try and keep my self-pity in check.
Well, I passed, so I should be happy, but I’ve got to do some corrections before I become a doctor, so I’m feeling disappointed, but really I’m very close to finally achieving what I’ve worked so hard for. Just one last push.