Things That Matter

10th November 1998

This page is dedicated to various technical issues that I care about.

1. Open Source

This just means programs whose source code is freely available for further hacking. It's also been known in the past by the monicker ``free software'', but that's a horribly ambiguous term, in that it can be read as referring to zero price rather than freedom.

When programmers on the Internet can read, redistribute, and modify the source for a piece of software, it evolves. People improve it adapt it, extend it and fix bugs. It turns out that this rapid evolutionary process is not only faster than the traditional closed model, but actually produces better software. The evidence is there for all to see: Linux, Xfree86, emacs and gcc are among the highest profile examples.

See for some very readable commentaries on the open source movement, pointers to some related organisations, and some discussion about the enemies of open source software. (Yes, it turns out that this primarily means Microsoft, but they are by no means the only villains in this story.)

Open source software is the world's best chance of avoiding tie-in to corporations motivated only by profit and not by the desire to produce the best possible product. It deserves your support.

2. Web Interoperability

None of my pages use any Netscape- or Internet Exploiter-specific tags. Help stamp out stupid Web design -- make your pages interoperable and take the pledge today. You can find more details about the web interoperability pledge on but reduced to bare bones, it says: I pledge to use only recommended HTML tags as defined by W3C.

pledge logo

Another initiative with very similar aims is the ``Best Viewed With Any Browser'' campaign at

anybrowser logo

3. Quiet Software

Software that has nothing to say should say nothing.

For example, if I download a tar archive from the web and need to unpack it on my Unix box, I type tar xf filename, and it does its job without generating any output. Quite right. It doesn't need to generate any output. It doesn't need to tell me anything, unless something goes wrong.

As a counter-example, if I download a zip archive and need to unpack it on my DOS box, I type pkunzip filename, and it says the following:

	PKUNZIP (R)    FAST!    Extract Utility    Version 2.04g  02-01-93
	Copr. 1989-1993 PKWARE Inc. All Rights Reserved. Registered Version
	PKUNZIP Reg. U.S. Pat. and Tm. Off.

	o 80486 CPU detected.
	o EMS version 4.00 detected.
	o XMS version 3.00 detected.
	o DPMI version 0.90 detected.

	Searching ZIP: filename
And that's all before it's actually started to do anything. Including the initial blank line, that's eleven valuable lines of my precious screen real-estate -- nearly half of the entire depth of my screen -- just thrown away on trivia which is at best irrelevant (who cares what version of XMS it detected?) and at worst also wrong (I have a Pentium, not a 486.)

Another counter-example, from people who should know better, is the GNU implementation of date, which is fine until you want a Usage message -- for example, because you've forgotten the format for setting a new date. On my system (RedHat Linux 4.1), the output of date --help is a preposterous 51 lines long -- yes, more than two whole pages of good old-fashioned 80x24 text -- so I have the ludicrous situation that when I need to remind myself of the date-setting format, I end up typing:

	date --help 2>&1 | sed 10q

It doesn't have to be this way.

4. Why Can't Someone Make a Half-Decent Web Browser?

I just can't understand this. I can't see how writing a web browser can be difficult, and I can't see how all the existing ones can be so bad. (Please let me know if you're aware of an exception.) I'm not talking here about exotic peripheral areas like plug-ins, style-sheets and so on, just the ability to do straightforward web-browsing, formatting HTML and displaying images. As my favourite pre-programming incantation has it, ``How hard can it be?''

You don't know the kind of thing I'm talking about? Well, the best of a bad bunch that I've seen is Netscape, so that's what I use on my Linux box. (Disclaimer: I'm not necessarily saying it's better than Micro$oft's Internet Exploiter -- I've never used that because I don't have it for Unix.) Here are just some of the stupidities in Netscape:

To be fair to Netscape, I should re-iterate that I use it because it's the best browser I've found. I've tried Mosaic, Arena, Amaya, Grail, HotJava and others, but all of them have some or all of these faults, and others.

How hard can it be?

We can only hope that with the release of the source code to Netscape, some of these bugs will get fixed by beneficient hackers. (See the section on Open Source above). In fact, if Netscape does get fixed now that it's gone open, that will be a great advert for the open source concept.

Feedback to <> is welcome!