Der Blog

Suppose everyone communicates via scribes, who write in ancient Egyptian hieroglyphs, and Microsoft is the only company who trains them.

Now there do exist some talented linguists who can figure out approximately what they're writing. That's what the Rosetta Stone was about, except in this analogy there's no Demotic or Greek alongside, only the hieroglyphs and a scribe to tell you what they mean in English. Unfortunately, after they send the scribes away, the linguists can never be sure that they've got it right, especially since Microsoft can change the language as they like simply by changing the curriculum. As soon as new scribes start writing in this new language, the old scribes will stop being able to interpret some messages you receive because they don't know about the changes in the language.

So to be sure the message gets through, you have to hire a scribe. When Microsoft changes their curriculum, you'll eventually have to hire a new scribe, who will probably also demand a new house to live in. If you send me an important document in Egyptian, you assume I'm willing to do all that. You're propping up a powerful monopoly (the scribes can after all twist your message or send a copy to Microsoft without you knowing), and assume that I'm willing to do the same.

If instead we communicate in English, which everyone knows, then neither of us has to hire a scribe. Even if you don't know English, there are lots of scribes available from many schools, so you don't have to put up with a scribe from one particular school if you don't like him.

(Background: I just booked a place on Swansea uni's postgraduate open day, and got a Word document in return, which has the timetable in it (at least that's what the sender said). I replied asking for a plain text or PDF document, and a shorter version of the above by way of explanation. The initial booking email also had my signature in it which says to avoid sending me Word documents - unfortunately it seems like the recipient completely ignored it.)

[ Entry posted at: Tue 20 Feb 2007 17:38:12 GMT | Comments: 1 | Cat: Rant ]

I've got into reading Boing Boing again. Today I read a (by now probably quite old) piece on the EULA for Windows Vista. I have ranted about EULAs before on this blog, but this piece hits the nail on the head on one particular aspect of it: that a unilaterally-dictated license cannot be meaningfully described as an "agreement".

Real agreements are negotiated. You and I sit down at a table and hammer it out. Real agreements aren't "subject to change without notice." Real agreements don't make you agree not to sue for negligence. Real agreements don't make you agree to treat your property as if it still belonged to the guy who sold it to you.

[ Entry posted at: Sat 11 Nov 2006 22:11:02 GMT | Comments: 0 | Cat: Rant ]

Argh, don't you just hate it when you spend ages writing a long rant, and then your session expires and you lose it. Anyway.

I've been hearing lots about Half-Life 2: Episode 1. It looks pretty shiny, so I decided to buy it through Steam. Just after I fired up Steam I remembered that my debit card expired just over a week ago, and I received a replacement on the 7th. The bank said it had been posted on 3 May. Not only has it taken over a month to arrive, the envelope was sealed with sellotape. Very likely it's been intercepted and opened and the card cloned. So I sent the bank a message rejecting the thing. Sigh.

I clicked on 'purchase' anyway, to see how much it would cost. It gave me a price in dollars... "plus tax". It didn't say what tax. So do I pay US sales tax, VAT, import duty, all three? What exactly am I paying here?

Carrying on, I arrive at the Steam Subscriber "Agreement". As with all such things, this isn't really an agreement. If it were an agreement, I would have been consulted about its terms and been given a chance to object to them. It's also ambiguous as to whether it is legally a license, a contract, or what. At least the term "EULA" contains the word "license". If this is, as I suspect, a service contract, it seems incredibly biased towards Valve.

Normally I just skip through such things. They're invariably crap and biased towards the company, but I just ignore it because I'm very unlikely to get bitten by it. But the wording of this agreement, and its structure, makes it clear to me that Valve doesn't give a toss about its foreign customers.

  1. Throughout the "agreement", I am referred to as a "consumer". Yes, in an economic sense I am a consumer, but this is not an economic essay, it is a... whatever it is, maybe a contract (see above). The term is demeaning. It suggests that my purpose is to eat what Valve feeds me, as if I am a pig and Valve the farmer. Here's my tip for all companies that want their customers not to despise them: call them "customers", not "consumers". Calling them "customers" doesn't indicate any particular level of respect for them, but calling them "consumers" makes it crystal clear that you are only interested in the contents of their wallets.
  2. The section entitled Acceptance/Rejection/Returns, referring to non-software merchandise, begins: "The terms of this Section 3.C do not apply to European Union consumers." In this case I don't care, because I am trying to buy a computer game, i.e. software, so this section doesn't apply. But suppose for some bizarre reason I wanted to buy a T-shirt via Steam, and got a rag in the post, or nothing. What am I supposed to do to remedy this?
  3. Limitation of liability: "IF YOU ARE A RESIDENT OF A EUROPEAN UNION COUNTRY, THE ABOVE PARAGRAPH MAY NOT APPLY TO YOU." So, again, what does apply?
  4. Exclusive remedy: "YOU ACKNOWLEDGE AND AGREE THAT YOUR SOLE AND EXCLUSIVE REMEDY FOR ANY DISPUTE WITH VALVE WITH REGARD TO STEAM OR THE STEAM SOFTWARE IS TO DISCONTINUE USE OF STEAM AND CANCEL YOUR ACCOUNT." So if their software sends my credit card number to some random third party who then abuses it, am I not allowed to prosecute them? (As far as I know, contracts can't trump criminal law, but IANAL.)
  5. Amendments: "Valve may amend this Agreement at any time in its sole discretion." It goes on to say that you have 30 days to accept the changes or not, and if you don't, you have to cancel your account. Again, this is forcing terms on me, and means this cannot meaningfully be described as an "agreement", as I have not been consulted or given a chance to object and negotiate.
  6. Applicable law/jurisdiction. This is the most evil and cowardly section of any EULA. "You agree that this Agreement shall be deemed to have been made and executed in the State of Washington, and any dispute arising hereunder shall be resolved in accordance with the law of Washington. You agree that any claim asserted in any legal proceeding by you against Valve shall be commenced and maintained exclusively in any state or federal court located in King County, Washington, having subject matter jurisdiction with respect to the dispute between the parties and you hereby consent to the exclusive jurisdiction of such courts. In any dispute arising under this Agreement, the prevailing party will be entitled to attorneys' fees and expenses."
    I object strongly to this. Valve is selling me a product in my country, using servers located (presumably) in my country. This means they are doing business in my country. A fundamental prerequisite of doing business in any country is that you agree to abide by that country's laws, which implies that you are prepared to expose yourself to lawsuits in that country's courts. They should not be allowed to be so cowardly as to specify a jurisdiction outside the country that they're doing business in. I should be entitled to sue them in my own country, not have to fork out for a flight to Washington.

Dom brought to my attention that the Norwegian courts agree with me on the jurisdiction issue. Unfortunately Norwegian court decisions aren't binding on other countries, so it remains to be seen if British judges would be as sensible. Maybe I'm optimistic, but I suspect that they would.

[ Entry posted at: Fri 09 Jun 2006 23:31:15 BST | Comments: 0 | Cat: Rant ]

We've been having a big argument on Milliways today on the relative merits of web forums and mailing lists. Basically the arguments are:

  • In favour of forums:
    1. Most people are familiar with their interface
    2. They have a pretty interface
    3. You can leaf through old conversations
  • In favour of mailing lists:
    1. I'm not forced to use any particular interface; my user experience is not dictated by the admins' taste in UIs
    2. (following from the above) I can pick an interface that's nice and fast
    3. I don't have to poll them - my email client tells me when there are new posts
    4. I can read all the ones I'm interested in in the same place and with the same interface without having to set preferences for every single one individually
    5. Email is cheap to send, so doesn't result in much server load
    6. You can leaf through old conversations with the help of an archive
    7. You get proper hierarchial threading (as opposed to linear sequences of posts with no structure)

All these points were reiterated ad infinitum by all sides, with none of the forum junkies listening to the arguments of the mailing-list liking hackers. It was generally agreed at last that a hybrid was probably the best approach for an online, persistent communication mechanism for the society, so people can use both if they like. Which in effect means that we have a web forum without any of the disadvantages of web forums, which is that people can treat it like a forum (with all the eye candy) or like a mailing list (with all the flexibility) as they please, and ignore the other part.

Sadly,this being Milliways, all the pro-forum people ignored FireFury's eminently sensible suggestion that someone start a wiki page with the arguments in favour of forums and just carried on trying to argue their relative merits... repeating the old arguments ad nauseam. Proof by assertion, ugh.

As for my opinion: forums suck. I detest the interface, and the fact that I can't use another one makes them useless for me. Mailing lists make them easier to work with since you can give it whatever interface you like. Including a forum-like web interface, if you really want one. So I'm working on providing one. Gmane looks likely, but unfortunately the software it uses, while freely available, is very poorly documented.

[ Entry posted at: Sun 19 Mar 2006 18:53:24 GMT | Comments: 0 | Cat: Rant ]

About 4-5 days after arriving in Regensburg I finally remembered my PDA's cradle was still stowed deep in my rucksack, and the thing itself was running out of charge, so I fished it out, plugged it in, and stuck the PDA in it. The green light that usually lights up when it's charging spectacularly failed to light.

Looking around the back of the cradle, I noticed that the power cable was lolling halfway out of the socket, so I attempted to rectify this by pushing it back in. The socket promptly gave way. Oops, looks like it got damaged in transit.

So onto eBay I went, looking for a replacement. Getting one direct from Palm or Amazon.co.uk is guaranteed to cost 10 times what it costs to make the thing, and there are always people on eBay with spare cradles. I found one for sale in the UK for 1p, he says he can send it to me for a couple of quid more than the UK shipping price, so I place my bid and win the auction. 1p for a Palm cradle, not bad :)

I saw that other people in my hall have put their names on their letterboxes. I am told that even if the address on the package is right, they won't deliver it unless the name on it matches the name on the letterbox. Being a busy (har har!) foreign student, and having in fact received a couple of letters addressed to me, and being skeptical that any modern postal service can really be that backward, I hadn't thought this important enough to get round to putting my name on my letterbox.

Two weeks later, the cradle still hasn't arrived. But in this instance I think the seller has sent the thing off and Deutsche Post haven't delivered it. Why? Because I still hadn't got round to putting my name on my letterbox. So this package, as well as my bank card (though, weirdly, not my PIN slip), have been returned to sender. Gah! How can any postal service really be that backward?

[ Entry posted at: Fri 28 Oct 2005 17:34:30 BST | Comments: 0 | Cat: Rant ]

Looking around on the web for a decent (i.e. formal) specification of RSS, I found this page.

It looks like not only is there no formal specification for RSS 2.0, there are in fact several indistinguishable but incompatible versions all calling themselves RSS 2.0. Sigh. How the fsck am I supposed to figure out how to make my RSS valid if there's no formal spec for it, much less a DTD?

[ Entry posted at: Fri 03 Jun 2005 20:48:56 BST | Comments: 0 | Cat: Rant ]

<rant>

Just spent hours hacking up these scripts again to make them handle timezones properly (originally because RSS pubDate elements require an RFC (2)822 date, and mine wasn't providing a timezone).

This was made particularly hard by

  • the lack of support in MySQL for timezones in date types (why oh why?!?!)
  • the insistence of MySQLdb (the library I'm using to interface with MySQL) on using an undocumented date class called DateTime instead of any of the standard Python libraries (actually, it seems to be a half-arsed form of mxDateTime, with no indication as to what's implemented - and of course having the same name (except for case) as one of the standard libraries makes it impossible to google for more info)
  • the fact that Python knows what the current timezone is, but there is no straightforward way to find it out. There is an abstract tzinfo class but no subclasses or instances are defined, and of course, though the timezone of datetime.utcnow() is always the same, neither it nor datetime.now() have tzinfo fields unless you provide them! You have to figure it out manually by rounding datetime.now() - datetime.utcnow() to the nearest hour. Fscking irritating.

Steve pointed me at help("time") which gives a marginally less roundabout way of doing it... but that still involves checking one variable to see which of two other variables to use for the value, which you still have to convert into a string. All I want is the +/-XXXX descriptor! You'd think there'd be a single string variable or function to do this, but nooooo...

</rant>

[ Entry posted at: Thu 02 Jun 2005 02:07:19 BST | Comments: 0 | Cat: Rant ]

Validate : XHTML / CSS / RSS / ATOM