Computing

I spend more time than I should messing around with computers, both at work, and at home looking after the Mutopia project. I’ve always shied away from using Microsoft products, probably because I’d rather not follow what everyone else does. They have an unhealthy monopoly on the home PC, the office PC, and the internet, however the tide seems to be changing (see “open standards” below). My current OS of choice is Mac OS X, which I run on an Apple Intel Mac Mini. It combines a rock solid Unix core with an rather gorgeous GUI. It’s so much slicker than Windows, more stable, and runs all Unix/X based software without the hassle of Linux. Actually, I think Linux is great too, but sometimes life’s just too short! I also use RISC OS (www.riscos.com) from time to time. Hypocrite that I am, I do have Windows 2000 installed on my Mac, running under virtualisation, but mainly for Windows Mobile development, and viewing Word/Excel documents that I get sent.

The main purpose of writing this page was to gather together the disparate computer-oriented tutorials I’ve written at one time or another. There are currently two, a fairly old one on getting RISC OS to run on the Bush IBX-100 set top box, and a much newer one on the Spring framework, and how to use it for form validation. The Bush one is almost entirely useless now, but hopefully someone will find the Spring one useful.

I’ve also started to chalk down some of my opinions on things that are good and bad in computing at the moment, unashamedly titled “rants” and “raves”.

Raves

Open Standards

If you want to send a word processed document to someone else, what file format do you use? How about a spreadsheet? Have you ever listened to radio over the internet? Did you think about what format the music was being sent in? Most people don’t stop to think what they’re doing. They send Microsoft Word and Excel documents to anyone and everyone, assuming that they too have paid Bill Gates for his appalling software (yes, I do use Word regularly, at work, and it really is awful). Or they’re quite happy to fund RealAudio or Microsoft (again) when listening to music online. Only Microsoft know how to properly interpret Word and Excel document, and they’re not telling. They can only do that because of their huge monopoly, but fortunately things seem to be changing.

Due to a combination of pressure from the courts, and demand by users, Microsoft are supposed to be “opening up” their file formats so others can write programs which read and write them accurately. Whether this really happens, or whether they manage to weasel out of it remains to be seen, but whatever happens, I think that the future really lies in diversity and open standards. Web sites that will run on any browser, not just IE6. Streaming audio (web radio) that doesn’t require RealPlayer, but is based on open standards such as OGG Vorbis. It exists, now (eg. Radio France). Documents exchanged in open XML-based formats, rather than everyone assuming that everyone else has Microsoft Word installed. At home, I don’t!

Valid HTML 4.01! Any browser campaign

Unicode

In the bad old days, if you had documents with characters not found in ASCII (which is pretty much English letters only, no accents) then exchanging them between computers was a pain in the neck. One encoding was used for Western Europe, several others for Eastern Europe, yet more for Chinese, Korean, etc. Mixing these languages in a document was difficult, if not impossible. And you couldn’t even begin to think about mixing in something like Hebrew (written right-to-left). But then came Unicode, with its mission to make a character set containing every character ever. From every language. That’s quite a few (over 95 000 at last count). Remarkably, the world seems to have embraced Unicode, and exchanging data in multiple languages is now easier than ever before.

That’s all well and good, but what are these 95 000 characters? Well, if you’re bored, why don’t you find out? The PDF Unicode code charts are a good place to start. If you get tired of the different languages available, from Latin to Ethiopic, Runic, etc. then start on the miscellaneous characters. Who was crazy enough to suggest the inclusion of a “reversed rotated floral heart” (helpfully described as “a binding signature mark”)?! Or a snowman? Or a “hot beverage” (representing tea or coffee, depending on locale)...?! Hours of fun!

Mozilla Firefox

Microsoft gained their stranglehold on the internet mainly by stealth, when they started including Internet Explorer, a reasonably good browser, with their Windows operating system. 90% of the world uses Windows, so 90% of the world suddenly gained a free browser, and to use anything else would incur the hassle of installing extra software. Netscape seemed to get bored with their browser around the same time, so Microsoft took full advantage of the situation, releasing a rapid succession of upgrades, which tempted the last few diehards away from Netscape 4.7. As with all their software, though, Microsoft couldn’t resist the urge to tinker with the standards, and defined their own little extensions, especially to Netscape’s JavaScript language. To be fair, the standard version ECMAScript has been slow to catch up, but in the early 2000s, much of the internet was only accessible to people using IE. But then Microsoft made their fatal mistake. In October 2001, Internet Explorer 6 was released. Nothing wrong with that, of course, but at the time of writing (February 2005), it is still the most recent version. 3½ years later. In IT circles, this is an eternity. Microsoft have just announced the likely Summer 2005 release of IE7, but will it be too late? The unspeakable seems to be happening. People are looking for alternatives. September 2006 update: IE7 still isn't out, although it is in beta. Its final feature release is awaited with interest.

Bang on cue, in November 2004, Mozilla Firefox was launched. Rather like a snake that has shed its skin several times, Firefox has its roots in the original Netscape browser, but almost all of the code has been rewritten since Netscape open-sourced it in 2000. It is fast, secure, has some very cool features like live bookmarks, and far better support than IE for web standards, including MathML. It has generated a huge amount of interest recently, and not just in the computer world. I even saw an advert for it chalked up on the wall of my local grocery shop! (Unicorn: www.unicorn-grocery.co.uk) Time will tell if it can gain a reasonable market share, but if Microsoft’s grip on the internet can be reduced, then that can only be a good thing. Opera and Safari are also playing vital roles in helping standards and diversification..

Of course, Firefox is not without its own bugs. Some MathML fonts don’t work properly on Mac OS X, and a bug I ran into at work prevents you from instantiating LiveScript objects (of class netscape.javascript.JSObject) in the init() method of an applet. You have to do it in the start() method otherwise Firefox hangs. Grrr. Of course, if I wasn’t so lazy (and busy), I could download the Firefox code and fix these problems myself. Which is something you certainly can’t do with Internet Explorer.

Rants

Microsoft

I think, by now, if you haven’t worked out my feelings about Microsoft, then you need to read this page again...

XHTML served as text/html

This may seem hard to understand, but some people persist with their thinking that XHTML is HTML. They are different. Serving XHTML as HTML isn’t just bad, it’s plain wrong. You’re lying about what you’re sending, and relying on browsers who think your page is HTML to ignore all the extra / signs that don’t make sense to them. Think before jumping on a bandwagon! XHTML is great, and if you want to use it, use it. Just don’t lie about what it is. If you must support old web browsers which don’t support it, then use a Servlet and XSLT stylesheet on the server to transform it into HTML for them. If you can’t guess what browser I’m talking about, try this anagram: EI.

If you serve XHTML properly, as application/xhtml+xml then it can be a fantastic tool, including SVG and MathML snippets and all sorts of funky stuff. Don’t get me wrong, I love it! I just don’t like dishonesty, however well intentioned. For more information, see Ian Hickson’s excellent article at http://www.hixie.ch/advocacy/xhtml.