May 29, 2004

Personal Audio Recorder

Jakob Nielsen, web usability guru, has written a speculative article on what the next 30 years in computing will bring (found on Slashdot). He suggests that, in about 25 years, a personal computer will have enough hard disk space to record every second of your life in HDTV-quality video.

That got me thinking - you can get a lot of the benefits of that system by recording your whole life in audio. And you'd only need to record your waking moments (snoring doesn't really make for fascinating listening.)

Speex can record perfectly intelligible voice at 8 kbit sec-1, which is 1KB sec-1. 60 x 60 x 16 x 365 x 80 = 1,681,920,000 seconds in a life. It all shakes out at 1,681GB.

That's not actually very much. If your 20GB iPod implemented Speex compression, you'd only have to get a new one (or dump the data to DVD) every year. This technology is actually here today; all it needs is the right UI. More on that later.

Posted by gerv at 6:29 AM | Comments (5)

May 27, 2004

Hidden Mozilla Feature

To be honest, occasionally I do despair at the slightly chaotic nature of Open Source development - particularly when I come across an amazingly useful feature which no-one knows about, either because the last 5% of the work to implement a UI for it wasn't done, or just because it's been forgotten.

For example, did you know that Mozilla has the ability to show the Outlook Address Book and/or the Windows Address Book (used by Outlook Express) as one of its address books? This was done in 2001 by some guys from Sun Ireland, but the UI patch is still waiting for review three years later...

To turn it on, follow the instructions on http://abzilla.mozdev.org/. I have no idea whether it works in Thunderbird.

Posted by gerv at 3:58 PM | Comments (6)

May 25, 2004

What lurks in yonder shadow there?

I rather grew out of computer games when I discovered that it was far more fun programming computers than pretending to blow things up. However, there is one (recent) game series which stands head and shoulders above the rest, and for which I will always make time. You don't need to blow things up or kill people - in fact, the height of skill is to complete the entire game without killing anyone. The original was ground-breaking, the sequel was more of the same - which is exactly what I wanted. And now, after years of delay, the third installment is finally released in the UK tomorrow.

I dread to think how much this is going to delay some things on my To Do list...

Posted by gerv at 1:04 PM

May 24, 2004

Getting Your Competitors To Fund You

Hmm. I wonder if we could get $12 million from Microsoft the next time Hotmail breaks in Mozilla?

I know MSDN has been broken in the past and is still broken in various ways.

Posted by gerv at 2:46 PM

May 21, 2004

URL Encoding Confusion

According to RFC 1738, Section 2.2, a URL is a series of octets. Octets which have no visible ASCII representation, plus other problematic chars, must be encoded as %HH. It doesn't say anything about character sets.

In all modern browsers (including Mozilla, now that bug 44272 is fixed), JavaScript's escape() function (which was originally designed for escaping strings into URLs) uses %HH for Unicode codepoints below 0x0100, but %uHHHH for codepoints above there. Apparently, this is what the ECMAScript spec says. Where did this strange %u encoding come from? The newer (but not supported by IE 5.0) encodeURIComponent() seems to do the right thing, always encoding each individual byte of the character's representation in UTF-8 as %HH.

Form submission seems to encode in the character set of the page, as %HH. So encodeURIComponent() matches form submission if the document is in the UTF-8 character set. Otherwise, it doesn't.

But if you give IE a mailto: URL, it'll decode any %HH bytes as if they were ISO-8859-1 (I think). Perhaps it's using the default charset of the platform. So you have to use escape() - you can't use encodeURIComponent, otherwise it gets things like U-UMLAUT wrong.

Mozilla, on the other hand, assumes UTF-8. But this means you can't escape() something into a mailto: if it's got characters in it between 0x007F and 0x0100. escape() uses %HH (direct encoding of value), whereas Mozilla expects %HH%HH (2-byte UTF-8). You need to use encodeURIComponent. >sigh<

So why does escape() use %uXXXX? What is IE up to? Is there some definitive representation of Unicode characters in URLs, or is it just a contract between client and server? Does anyone know of a document which explains all of this, in words of less than one syllable?

Posted by gerv at 4:28 PM | Comments (4)

May 19, 2004

How To Make $200 Without Really Trying?

Yesterday, I got the following email (quoted with permission):

Hi Gerv,

I have been reading Gerv.net. Actually I read more than I should have (I am a 
bit squeamish). Anyway, I am writting to see if it would be possible to 
purchase a link on your links page for $200 US which would be as follows:

PR-Tracker: Bug tracking software for Windows and the Web

The word PR-Tracker would link to www.prtracker.com. 

We would require the link to be there for a year. If you decide to put the link 
on just do it and let us know. We will send you a check right away.

Randy Stimpson

Wow... easy money ;-) Of course, I declined (amicably), having never used the product, and not being a money-motivated person. "No servant can serve two masters. Either he will hate the one and love the other, or he will be devoted to the one and despise the other. You cannot serve both God and Money." - Luke 16:13.

However, in the follow-up discussion, Randy pointed me at http://Bug-Tracking-Guidelines.com, which are some general rules he has written for a good bug-tracking experience. Most of them I knew and agreed with, but a couple are new insights to me. Specifically, number 5 (Don't triage bug reports in meetings) and number 8 (Record how bugs are detected). I'm sure quite a few closed-source companies should take note of number 5.

Bugzilla doesn't currently really offer a field to record how bugs are detected. This may be because that, in free software projects (where its roots are), the divisions between the different possible sources are more blurred, with "Customer Report" being the largest category. And free software projects don't have many "testing dollars" to spend ;-)

I don't actually agree with number 6 - there's no need to track feature requests separately (as in, not in the bug system) because any statistics gathering you do should be intelligent enough to disregard them. Tracking them in the bug system is wise, because it leverages all of the facilities it offers for triage, assignment, etc.

Posted by gerv at 9:42 AM | Comments (2)

May 18, 2004

How Not To Take Decisions

Today, the EU Council of Ministers will be considering the "software patents in Europe" bill. (The Parliament has already amended the initial pro-patent draft to say that software patents shouldn't be allowed, but the Council has the power to reject those changes.)

The particular issue aside, all this is happening under a thing called the "co-decision procedure", which is how the Council of Ministers and the European Parliament decide on proposals presented by the European Commission.

Here is the procedure, written in pseudo-Java. It runs to eight pages, and is very funny. Well, I find it funny. Perhaps that's not the same thing.

Sample code:

try 
{
    jointText = cc.discuss();
    while (!((cc.getCouncilRepresentatives().qualifiedMajority(jointText))
             &&(cc.getEPRepresentatives().majorityOfMembers(jointText)))) 
    {
       jointText = cc.discuss();            
    }          
}  
catch (Timeout e) 
{
    jointText.setState(REJECTED);
    return null; 
};
Posted by gerv at 1:01 AM | Comments (1)

May 17, 2004

Pond Scum

Just when you think spammers, scammers and virus writers can't sink any lower...

The Mozilla newsgroups are getting a few posts which attempt to persuade you to run some dodgy .scr file using pathetic attempts at social engineering. There are usually several posts with the same file, using a different technique. This time round, the first try was "american idol cat fight topless". So nothing much new there, then. But the second was "iraq murder video gi head cut off".

What scares me most is that there are people out there who would double-click such an attachment. Whatever they get, serves them right.

Posted by gerv at 10:20 AM | Comments (2)

May 13, 2004

Why the CPL?

Microsoft has now released two pieces of software on Sourceforge under the IBM Common Public License (CPL). To adapt Wilde, one might be regarded as carelessness, but two looks deliberate, so I had a look at the CPL to see what might cause Microsoft to choose it.

  • It includes a patent license, but the scope of the license is only for Contributions which remain part of that particular program. They probably like this because it means they can release implementations of patented ideas without effectively nullifying their patent. I'm vaguely surprised this was adjudged as Free or Open Source; perhaps some patent grant is better than no patent grant. Also, given previous behaviour, I suspect they had to include something like this before anyone would touch their code with a barge pole.

  • The patent grant from a Contributor is revoked if you sue that Contributor over infringement of any software patent. They probably like this because the more CPLed code gets used, the fewer people can easily sue Microsoft for patent infringement - even if Microsoft sue them for it.

  • It's somewhat copyleft - "separate modules of software distributed... under their own license agreement" do not fall under its scope. Perhaps they saw this as a way of trying to leverage the "we get to use other people's improvements" part of open source while still being able to incorporate the result into proprietary products. Somewhat like the LGPL and MPL, in fact.

  • It's incompatible with the GPL. It's fairly obvious why they like this. They can't co-opt or make proprietary GPLed code, so they don't like the GPL at all, and don't want to increase the amount of code under its umbrella.

Comments on my analysis are very welcome. :-)

Posted by gerv at 7:42 AM | Comments (4)

May 12, 2004

No Vote, No Voice

On the 10th of June, all of the UK will be voting in the European elections, and Londoners such as myself will also be voting in the London Mayoral elections.

A new blog has been set up to encourage people to vote. I heartily second that. If you don't vote, and someone you don't like gets elected, you have no right whatsoever to complain.

I may or may not reveal who I'll be voting for in a later blog post. I'm certainly not going to say now, as it would defeat the point of this one - whoever you are, and whoever you support, make sure you plan to use your vote. (In my view, the electorate should get more of a say on policy than one vote every few years, but it's all we have, so let's make it count.)

Posted by gerv at 11:05 AM | Comments (4)

May 11, 2004

Why We Will Lose the Software Patents Battle

I've written letters to MEPs. I've participated in online protests. I might even have gone to Brussels to protest if I could spare the time off work. But we aren't going to win this one.

What's that? "Don't give up!", I hear you cry. "There's still hope!". Is there? We are up against some powerful and well-funded vested interests, and we are not going to prevail unless we can mobilise thousands of people to contact the right representatives and make their views known. And hence we come to my point.

The main site dedicated to fighting software patents in Europe, at the Federation for a Free Information Infrastructure, is a confusing, verbose mess. It displays all the worst hallmarks of "Wikonfusion" - lots of links to vaguely related topics and no structure. There is nothing which tells me simply and concisely what the current situation is, and who I should be writing to this week. Their list of stuff you can do runs to 11 items, and five pages.

Last time I wrote to my MEP, it took me over an hour to gather enough information about the problem to be sure of what I was writing. I almost gave up several times. How many people did? This time round, I know that we're at a crunch point, but I can't find out what I'm supposed to do about it!

I don't want to attack the people who are obviously doing a lot of hard work to achieve a massively important and worthwhile aim. It just frustrates and pains me that their sharp edge is being blunted by poor communication.

Update: I've just noticed an email in my very full inbox which tells me to respond if I want to do something. I will reply, and see what happens.

Posted by gerv at 3:17 PM | Comments (2)

May 9, 2004

Microsoft And mozilla.org Should Talk

Robert Scoble, MS evangelist, says (as reported in Internet News): "As to Mozilla, you guys should talk with us. We're working underneath on the foundation. Longhorn will let you make a new awesome browser that'd blow away what you're doing today. Here's a hint: I'm using Firefox on Longhorn. Works great! But it COULD BE so much better! You don't take advantage of Avalon. You don't take advantage of WinFS. These things are not threats to you. They are platform-level investments we're making for you to use..."

Hey Robert - here's a suggestion for you: you guys should talk with us. We've already completed the foundation. We have a mature XML-based UI markup language, and a fantastic web content rendering engine that you should take advantage of, instead of re-inventing the wheel with XAML and Trident/Tasman enhancements. These things are not threats to you. They are cross-platform investments we are making for you to use...

I mean, surely it makes sense for them to use the XUL technology stack rather than XAML for Longhorn? After all, it's the established and open way of doing what they are trying to achieve. The only way they'd not use it is if they wanted to get some sort of patent or proprietary single platform lockin - and I'm sure they wouldn't do anything that nasty.

Posted by gerv at 11:55 PM | Comments (5)

May 5, 2004

Living On Borrowed Time...

Sasser is currently hitting hundreds of thousands of Windows 2000 and XP PCs worldwide.

What I find amazing is that, with the exception of the recent Witty worm (which was rather nasty in several worrying respects), no "successful" worm has yet had a destructive payload. Of all the different groups who have written worms, or had access to the source to produce their own variants, none has decided that they are angry enough to do some serious damage. And I can't figure out why.

Is there some sort of hidden honour-among-thieves agreement between the major virus writers not to destroy? Is it because they are too busy making money setting up botnets and selling them to spammers?

Whatever the reason is, the world is living on borrowed time. A worm as successful as Code Red, with a "spread for 12 hours then corrupt the hard disk" payload would cause uncountable economic damage.

Posted by gerv at 1:00 PM | Comments (5)