Sunday, 20 July 2008

LinuxMint 5 (Elyssa)

I've lost count of the number of Linux distros I've tried and rejected because of:
1) Ugliness (especially screen font-rendering)
2) Device problems, mainly wireless networking
3) Video driver problems, e.g. machine locks up when Compiz or similar enabled.
4) No support (or broken support) for power management, hibernation etc.
5) All of the above.

Even recent 'big-name' distros like OpenSuse and Fedora have had one or more of these problems, at least for me, on my Acer laptop.

Finally I believe I have found a Linux distro I believe I really, honestly may be able to use as a Windows replacement. It's LinuxMint 5.

I am very sensitive to (or intolerant of) poor font rendering on laptop displays. This has been the stumbling block for all previous distros, even those with support for anti-aliasing and font-hinting. Finally, the LinuxMint distro team appears to have sorted this out: the fonts render beautifully.

All the other issues in my list are addressed: the system picked up my wireless network immediately and connected as soon as I entered the pass-phrase. As far as I can tell, all devices appear to work, and the power-management stuff works.

Finally, for me the aesthetics are spot-on. The default theme and the choice of colours really works for me. This matters, when you're spending significant tim in front of the system.

This is a truly excellent distro - far and away the best I have ever used. This one will stay on my laptop and I plan to make the effort to use it instead of Windows.

Thursday, 17 July 2008

NetBeans 6.5 M1

I've just installed M1 and I'm disappointed to note that it appears not to do text anti-aliasing in the editor. Not only that, but the advanced options panel just doesn't have any editor settings in it at all. Strange - it might be something to do with migrating my old settings (from 6.1) which the installer does automatically.

I do hope this is just a temporary glitch - without the anti-aliasing, it's not a pretty sight...

Turns out other folk have spotted this: I just Googled for posts on this and found that a commenter on Tor Norbye's blog mentions this. Tor's replt to this comment suggests it's just a Vista issue, but I'm seeing this on XP Professional too.

Wednesday, 9 July 2008

Moving to Blogger

I'm not sure it's worth running a blog engine myself, any more.  With something like Blogger, free of charge and hosted by Google, it's hard to see why I should keep up with WP maintenance and have to think about upgrades, backups, MySQL and so on.

I've had my own blogger account for a while, but done relatively little with it until this week.  I haven't ever been what you'd call a prolific blogger, but if I'm going to increase the amount / frequency of writing, blogger is almost certainly more convenient.

So, please see my Blogger page from now on.  This blog/feed will almost certainly disappear in the coming months.

Bletchley Park - we must save it.

Unbelievable though it may be, Bletchley Park is under threat, simply because it doesn't have a reliable source of funding. Apparently, it has been deemed ineligible for funding by the National Lottery, and turned down by the Bill & Melinda Gates Foundation.

This is an outrageous, shocking situation. Can we really be guilty of placing such a low value on maintaining this important site? If you know the history behind Bletchley Park and the Enigma code, then you will understand why I feel so strongly about this. If you are not familiar with this amazing story, read around the subject a little and you will soon appreciate the magnitude of the achievement at Bletchley and its importance to this country.

Please do sign the e-petition. Go to this page and follow the instructions.

Tuesday, 8 July 2008

Schema Tools

There are already lots of commercial tools out there for editing and managing XSDs but I wanted to create my own. I don't want to pay for a commercial tool, and I'll learn a lot in the process. The goals for the toolset are quite modest:

1) Given a schema and a root element, generate the element/attribute tree for that infoset.

When you are handed a new schema, it is usually helpful to be able to see what an instance document should look like. Of course, a single schema can validate potentially many different infosets, so the client must be capable of generating the infoset for any given root element.


2) Automatically generate test instance documents.

This is a natural extension of (1). In any application involving the processing of schema-constrained XML, you need to be able to test against valid and invalid instance documents, and to achieve full test coverage for any non-trivial schema you will need a lot of instance documents. This is possibly the most useful application for this project.

Schema types mostly correspond with domain types (i.e. ignoring metadata) and you ideally want to be able to use representative test-data. For instance, if the domain includes people's names, you would prefer to use a pool of semi-realistic family-name/given-name lists, instead of random sequences of characters. So the tool will also allow you to create lists of values and associate them with schema components, using data from the appropriate list when generating test instances.


3) Schema-driven UI generation and XForms

It follows from the previous two items that you will want to look at the XML instance data, not just when testing but also in the application. It's possible to look at the XML text, but it's much nicer to be able to create some sort of form or dialog which presents the data in a more natural way, e.g. as a set of label/text pairs. This part of the tool is intended to help with that; guided by the XSD and some input from the user, the tool will generate a UI for the instance document. I haven't decided which UI to target yet, but it's likely to be Swing/rich-client to start with. Eventually, I will want to generate web forms and XForms.


I've managed to implement (1) already. I'm not sure it covers every case yet, but it does work. The code is messy and the presentation is currently a tiny Swing application. My goal for the UI is to create a Netbeans module, and integrate it into the Netbeans IDE alongside the existing (excellent) schema support. If I can integrate my commands into the NB context menu, the ideal is to trigger my functionality from inside the standard NB schema views.

I have a few more ideas for exploiting this code, but those listed above are a good start I think. Once I have working code I'm prepared to release, I will post something online for people to play with (and/or tear apart).

Monday, 7 July 2008

Netbeans 6 - it's getting better all the time

It's great to see the Netbeans QA process working so well. I reported two issues recently, and both have been fixed. One was a Subversion related issue; within 24 hours I was contacted by the developer assigned to the issue, and offered a patched jar to try! It fixed the problem, and the patch will be rolled-up in v6.5. Impressive.

Netbeans is getting better, faster, than anything else out there, as far as I can see. There are some things I still don't think are good enough yet (such as the UML support) and I wish the whole thing would start up much more quickly, but it's important to recognize just how good this tool already is. And it's a free, small download. The comparison with Visual Studio is almost irresistable; VS is a DVD's worth of code, costs a fortune and offers a much less capable code editor, less refactoring support and doesn't really support rich client development to the extent NB6 does.

Look the the Ruby support in NB6, too: although there is a lot of interesting work going on with dynamic languages at Microsoft, the impression you get is that these are somewhat 'second-class' projects with no real presence in the main-line Visual Studio product plans. JRuby, on the other hand, is almost front-and-centre in the Netbeans world. The integration of languages via the JVM, and the development of integrated tooling in Netbeans makes it possible to do serious work with Java and Ruby, right now.

Another thing: Sun isn't trying to shut-down or marginalise any of the community, open-source projects which populate the Java tools landscape. Instead, they've recognized and accepted the strongest members of the community and built tool support for them in Netbeans. Just take the most obvious examples: Ant, JUnit and Maven. Compare that with what Microsoft has done: ignored NDoc and produced Sandcastle, created MSBuild to replace NAnt, and they want you to use (therefore buy) their own version-control system rather than embrace Subversion or Mercurial. I'm sure Team System is probably fine, as long as you have deep pockets and you are prepared to submit totally to Microsoft's prescription for your development team processes.