Saturday 30 October 2004

Inappropriate uses of technology - voting machines

I've been reading up on the US presidential election. For better or worse, we (the UK) are now in Iraq and would find it difficult to leave, for humanitarian reasons. For that among many other reasons, it would be good to have a US government we (the people) could get along with. Just a note for Bush supporters - Bush is not well-liked in the world. We generally do not want to see him elected. Under his presidency the world's opinion has shifted against the US. According to the PIPA poll, a majority of Bush supporters believe that the world support or are indifferent to the Iraq war, and a majority believe that people in the world would like to see Bush elected. It's not true.

But anyway, this article is about inappropriate use of technology. I'm not going to claim I know about a US election - I've only visited the US once, about a month ago (must write that trip report). From what I've seen through my browsing, it seems as though every locality has its own rules, and a combination of technical means for automated vote counting. We all know about the 'hanging chads' of the 2000 election, where punched cards were used to indicate the candidate voted for. I understand some locations have mechanical 'voting machines' where the voter sets levers according to the candidates they want to vote for, then pulls a big lever to increment the totals. Other places use optical mark readers, where the voter fills in a bubble or completes an arrow (JPEG, 1.6MB - seen on This Is Broken, note that the counting machine only counts the arrow even though the presidential arrows are misplaced!) It seems very few places do it the British way, and you have to vote in all elections at the same time with a whacking great ballot paper.

The British way is very different. For a start, we have no elections for boards of education or drain commissioner. We simply elect a local council. I live in Reading, which is a unitary authority, so there's only one local council - no county council, and no parish council. We also have a Parliamentary System - the head of government is (by convention) the leader of the largest (group of) parties - so no election for President, only for your local MP. We hold a local government election three out of every four years (back when Berkshire County Council existed, the fourth year was the county council election) and a general election whenever the Prime Minister feels like it. There's a mandatory five-year limit on a sitting Parliament (House of Commons, in fact, there is no democratic election to the House of Lords) but a Prime Minister can call it earlier. Normally they're every four years - waiting until the last possible moment, as John Major did in 1997, is a sign of weakness (which was duly punished). All of these elections are currently first-past-the-post systems.

Finally, every four years there are European Parliament elections. These are based on much larger multi-member constituencies and have proportional representation with the D'Hondt method on party slates - you vote for a party, the party decides what order their members will be elected in (a closed list).

The tradition in Britain is that voting is performed by marking a cross on a ballot paper in the box alongside the candidate (or party for European elections) you want to vote for, you then place the paper, folded once, in the ballot box. At the close of polls, the boxes are opened under the scrutiny of officials from each party, the returning officer (responsible for declaring the result, usually the Mayor [largely a ceremonial post for most UK boroughs, although chairing full council meetings]) and local government officers. The ballots are counted by hand, traditionally by bank tellers but they're a dying breed. Votes may be recounted upon request at the discretion of the Returning Officer. If there's a tie, the result is decided by drawing lots.

This year the local election was particularly odd here, because Reading's ward boundaries had been redrawn, and therefore all seats were up for re-election. There are now 15 three-member wards and one one-member ward; I don't live there so I could vote for up to three candidates on the same ballot paper. Interestingly two of the wards split two-to-one between two parties - either some voters had mixed minds or were not aware they could vote for more than one candidate. The European election was held concurrently. The candidates are indicated by their names, their party symbols (if they choose to use one) and the full name of their party affiliation. The European ballot showed the party name primarily but also the ten or so candidates from each party - that was a long ballot paper.

Given the complicated counting required this year, the counts took place the day after the election. Well, normally each election's ballots can be formed into piles for each candidate and a pile for spoiled ballots, then the piles can be counted, as there's a maximum of one cross on each unspoiled ballot. This could be done with the European election but was complicated by the large constituencies and the vote distribution arithmetic. The locals required each ballot to be counted up to three times, not a simple task, although I think they started by dividing the votes into piles of three-Labour, three-Conservative, three-Liberal Democrat and Other, which reduces the complexity quite a bit.

The way the local election worked out, by the way, was that the candidate with most votes has greatest seniority (the seat becoming up for election in four years), then the next for election in three years, and the final one in two years.

General Election ballots can be counted pretty quickly this way; the fastest in 2001 was Sunderland South in 44 minutes. Their task was obviously simplified by the fact they were counting how large the Labour victory would be. The small parties and independents care that their votes are counted fairly accurately - it could mean that they will lose their deposit. In one of the oddities of standing for Parliament, a candidate must pay a £500 deposit. If they win 5% or more of the vote, the deposit is returned. Otherwise the government keeps it. If the intent is to reduce the number of crackpot candidates, it's a failure - by-elections (elections outside the normal polling schedule) often have 20 candidates or more.

It seems to me that the US use of technology in elections runs a much stronger risk of tampering, incorrect recording of voter intent and inability to challenge results, with the benefits being solely in the cost of running the election and minor improvements in speed of result collation.

Friday 15 October 2004

Halo 2 leak

Halo 2 Piracy (bungie.net)

I haven't gone looking for it. If you see a link, please report it.

Microsoft generally have a problem with leaked versions. I remember seeing leaked Windows 2000 betas (and I think even RTM) when I was at University. My suspicion is that it's not anyone at Microsoft leaking, but someone at the CD/DVD mastering houses. No evidence, just supposition.

I think you'd have to have hacked/modded your Xbox in order to play this, though, since a genuine Xbox disc is dual layer, and it's pretty expensive to obtain a dual-layer burner (if a dual-layer DVD-R would even be Xbox compatible).

Thursday 14 October 2004

Shipping Software and Broken Windows

Shipping Software and Broken Windows (John Lawrence, MS VS Team System blogger)

I'm afraid we have the opposite problem - if it looks great, the customers (and sometimes the management) tend to assume that all the code behind the UI is done. Having the germ of something that works is great for the coders' morale, but you get a boatload of "what do you mean it isn't done yet?"-type questions. This happens particularly if the requirements were vague and the UI's been done as a way of investigating the workflow.

One of my colleagues has seriously suggested building the UI nearly, but not quite, right, then logging a bunch of bugs against it. That seems wasteful to me - I'm of the 'do it right first time' persuasion, within the limits of your current system knowledge.

The UI/code relationship is a bit of an iceberg, really. The bit the user sees is only 10% of the whole - they never really know about the 90% that's under the surface.

[Edit: Darn, I thought that was a really original analogy. But Joel got there first.]