Digital Magpie

Ooh, ooh, look - shiny things!

Adding Namespace Support to RvSnoop

For RvSnoop I’m currently working on adding namespaces to all of the files that are used to save the application preferences and also the project files. This is a Good Thing in and of itself, as it allows me to use XML Schema to validate and document the files formats. But, more importantly, it gives me the opportunity to refactor as I go alond, the general plan is to make the projects in the next release be based on directories rather than a single XML file, this will allow me to use a disk based storage mechanism for messages so that they will be persistent across sessions.

Playing Well With Others

At the same time, I’ve taken the opportunity to include some of the Apache Commons libraries in the build. There were (well, still are) a number of small utility classes scattered around which I’m planning on replacing with the versions from Apache. One side effect of this is that the build is increasing in size, to help control this I’m going to remove the Berkeley DB dependency from the build. I was origiannly planning to use this for the on disk message store but I’ve changed my mind here. My current thinking is to just write the messages out to files but to have a set of indexes (probably built using Lucene) as well for searching and sorting. There should be another (alpha) release out later this week with the Commons and Berkeley DB changes complete, and a release next week with the new project structure.

Why I Do Not Like Skype

There is nothing more annoying than people who insist on standing up and talking loudly on their mobile phones in the middle of an open plan office (just one more reason why open plan offices suck arse). At least in the past it was just a few ignorant tossers who did this, but now with Skype a whole bunch of otherwise considerate people seem to think it’s fine to yammer away at high volume while sat at their PCs. Bastards.

More Transparent Development for RvSnoop

Although it’s an open source project that anybody can help out with, in practice RvSnoop is developed by me at present. However, a couple of people have asked — either in the forums or by email — what the current development status is. Well, in a word, it’s going slower than I had planned! However, I’ll start posting to this blog a little about what I’m working on and what my current plans are, and also try to start making more frequent releases. I’ll rearrange the distributables slightly as well, given the speed of most connections these days I no longer see the point of keeping a binary only download so I’m just goint to include the compressed source and API docs will all of the releases, this will be labelled as the RvSnoop Stable release. I’ll make more frequent releases of the code that I am working on as a RvSnoop Development release. But first, a little explanation of what you can expect from these unstable releases. I’ll post later about my plans for the upcoming releases.

It’s All Greek To Me

Projects use diffferent terminology for there release schedules, here’s how I’m using the terms.

Alpha

If a release is labelled alpha then it means that I am still adding new features and working on major known bugs. Once the release is feature complete and all of the major bugs have been squashed I’ll go through and clean up all of the strings, finally I’ll spend some time cleaning up any glaring UI problems. Once this is complete I’ll relabel the release beta.

Beta

Moving forward one of the main points about the beta release is that it will be considered to be a string freeze release. I’m aiming for release 1.7 to be fully prepared for internationalization and hopefully some of the people who have been using RvSnoop will help out with translations. Also at this point the UI will be basically finished, so the beta releases are for testing and minor bug fixing. Also during this phase I will run all of the analysis tasks (currently only PMD, but more are planned) and clean up whatever they reveal.

Another Java Logging API

Why the fuck does this exist exactly? It seems to be like some twisted rite of passage that Java developers need to write their own logging API. I confess that I’ve even suffered from this although, in my defence, I kept mine to a single class and plan to throw it away in the very near future.

NetBeans Annoyances

It’s time to try a new IDE again!

Here’s what sucks about netbeans this time around. I should say before I start that I’m using a beta release (6.0 M3 2006-09-19-1800 to be specific) but anything that is obviously new functionality I’m not going to comment on, this is all stuff that has been around for a good long while now and so I think that these complaints are valid. If I find anything that looks especially cool about the new version I will mention it though, even if it’s a bit rough around the edges for now.

General Points

It’s still ugly as arse on the Mac. This is a problem with all Java IDEs on Mac OS X but NetBeans has it in spades. It’s far worse than Idea and Eclipse when it comes to visual appearance. There are hardly any refactorings available when compared to Eclipse or Idea, I mean, even basic stuff like ‘inline’ is missing.

On the plus side, one of the reasons that I’m looking at NetBeans again is to try out Jackpot, and when that’s included as standard it shoudl leapfrog the other IDEs in terms of refactoring and code re-engineering support. Next, the support for editing keybinding is pretty lame. For example, there appears to be no way of assigning a keyboard shortcut that selects all text between the insertion point and the start of the line (or end of the line for that matter).

There are a number of issues with the find functionality. I’ve been mainly invoking it through control + F7 (find usages), so these comments apply specifically to that, but some of them are general to all of the find features of the IDE.

  • After a find, if I ckick refresh I have to then go through all of the dialogs again before the refresh is run. Just refresh the fucking search, OK?

  • In the find results window, if the result that I am interested in is in a new file I need to selct it twice! The first time just opens the file but doesn’t jump to the line, I have to select it again to get to the actual line.

  • I always have to click through a dialog asking whether I want to search in comments or not. I’m not against this as an option but I should be able to select a default setting then I don’t have to get this dialog every time (maybe a ‘do not show this dialog again’ checkbox?).

Conclusion

Urghh! Enough already! In their defence, the last couple of times I’ve tried NetBeans it has just collapsed horribly in a steaming pile of stack trace, so they are making improvements, but it’s got a looong way to go beforfe it’s useable day-to-day.