bounding brokenness

Offered without comment

“The bitterness, futility, and self-righteousness of most moral arguments can now be explicated. In a debate about abortion, politics, consensual incest, or what my friend did to your friend, both sides believe that their positions are based on reasoning about the facts and issues involved (the wag-the-dog illusion). Both sides present what they take to be excellent arguments in support of their positions. Both sides expect the other side to be responsive to such reasons (the wag-the-other-dog’s-tail illusion). When the other side fails to be affected by such good reasons, each side concludes that the other side must be closed minded or insincere. In this way the culture wars over issues such as homosexuality and abortion can generate morally motivated players on both sides who believe that their opponents are not morally motivated.”

– Haidt, J. (2001). The emotional dog and its rational tail: A social intuitionist approach to moral judgment. Psychological Review. 108, 814-834. Link (PDF).

Paper voting is broken

An interesting link popped up on Hacker News today: the Wombat voting system. It’s part of a long line of electronic voting systems (including Helios, created by Ben Adida, now at Mozilla) that aim to use cryptography to ensure the privacy and integrity of votes.

Of course, Hacker News, being the contrarian, negative community that it is, immediately shot it down by claiming that ”we don’t need computers in voting”, that such systems attempt to ”fix a problem which don’t exist”, and that such systems alienate ”common people without IT education”.

It’s sad to see people – on Hacker News of all places – being Luddites.

Paper voting is fundamentally broken, and will continue to be as the world’s population increases. The reason’s simple: it doesn’t scale. The last Indian general election had over 417 million people casting votes. 417 million. Imagine the sheer amount of time and resources it would take to count 417 million votes, and the possibility of error that might happen with improperly marked ballots, etc.

Fortunately, Indian elections haven’t had paper voting for a while. They’ve instead had standalone voting machines that keep a tally of votes for each candidate and reveal them on counting day. However, the election commission of India expects citizens to trust these machines on their word, and it’s been shown that these machines are actually quite vulnerable to fraud.

So, yes, the problem exists, and yes, we need computers to solve it. I’m glad to see brilliant minds hard at work on solutions. Democracy’s far too important to let voting systems not be end-to-end auditable by anyone with the requisite knowledge.

One last note: do people feel alienated when they check their email, type in their credit card number on a shopping site, or operate their bank accounts over the Internet without knowing all the mathematics and engineering making sure no one else is reading their data? The way crypto, and scientific knowledge in general, has always worked is that you either (a) have domain knowledge that lets you verify what is being said, or (b) trust others who do.


Over the last two days, I’ve read a number of blog posts I disagreed with. A couple of them allowed me to comment, so I did so.

On one of them, my comments are still up.

On the other, which adopted a roughly antipodal view, my comments were summarily deleted and I was told I was “derailing and silencing” the conversation by accusing the author of being “overemotional”, “oversensitive” and “taking things too personally”.

Before today, if you’d asked me which post that would have happened with, I’d have picked the first without a second thought.

Guess I have a lot to learn.

Dr. Seuss and the halting problem

The unsolvability of the halting problem is a well-known fundamental result which says that it’s impossible to write an algorithm that determines if an arbitrary program halts given some input. It also implies a lot of other things – including, for example, that there’s no general way to determine whether a particular variable in a program has a particular value at a point, and famously, that every consistent formal system powerful enough to do arithmetic in will have unprovable statements.

I’m not going to talk much about it, though – instead I’m going to direct you to this extraordinary proof, written in verse, in the style of Dr. Seuss. It’s called Scooping the Loop Snooper, and it was written by Geoffrey K. Pullum, who you might also know from posts at the Language Log. Wow.

Important upcoming change: starting Gecko 12, pre-Windows 7 SDKs will no longer be supported

tl;dr: if you’re on an outdated Windows build configuration, upgrade.

I just checked in a patch to mozilla-inbound to drop support for SDKs prior to the Windows 7 SDK. Depending on when you last updated your build configuration, your Mozilla build might break.

Everything’s documented on the Windows SDK versions page on MDN; here’s a quick summary of what you need to do:
  • If you’re on Windows 2000: Upgrade to Windows XP, Vista or 7.
  • If you’re on Windows XP SP1 or below: Update to the newest service pack.
  • If you have an older SDK (Vista or 2003): Install the Windows 7 SDK instead. You can either download it separately or use Visual C++ 10 Pro, which comes with it.
  • If you use Visual C++ 8 (2005) Express or Visual C++ 7.1 (VS2003): Upgrade to Visual C++ 10 (2010; recommended; pro or express) or Visual C++ 9 with Service Pack 1 (2008; pro or express).

More experiences with an Apple notebook

It’s now been eight months since I got my first Apple notebook. A few months ago I wrote about my initial opinion, where I was pretty sure it would be my last Apple notebook too.

Since then I’ve had the chance to use it in a variety of situations. Spoiler: none of what I’ve seen has improved my opinion of it one bit.
  1. The decision to make the outer body out of aluminium is literally shocking. If the notebook isn’t plugged in to a grounded socket (for instance, if I’m using the plug that comes with the power brick BY DEFAULT), I’m liable to get electric shocks if I touch the casing. I received a couple of shocks, a mild one and a jolting one, before I realized what was happening. Electrical common sense is that if the outer surface is electrically conducting, it MUST be grounded properly. Having an ungrounded plug by default, or even having one in the first place, is inexcusable. (Update: I’ve had several people complain to me about this, and one person also complain about his plastic macbook’s screws shocking him several times. I’m clearly not the only one with this issue.)
  2. The Wi-Fi reception is the worst I’ve ever seen in a laptop, and only slightly better than the reception my Nexus S with its puny little antenna gets. Friends tell me it’s because the aluminium casing acts as a Faraday cage and attenuates the signal. The “unibody” marketing’s clearly far more important to Apple than shipping a working product. (Update: guess who says metal has a “very high” potential to interfere with wireless connections?)
  3. The original power adapters were T-shaped. However, presumably because Apple didn’t like the look of and subsequently didn’t include the strain-relieving flexes found on all other cables, they were easily frayed. To “fix” this, they started using L-shaped adapters. Of course, what it now means is that depending on the way I insert it, either the power cord blocks the Ethernet port or it gets subjected to strain if I tilt the notebook back.
  4. There’s no VGA, DVI or HDMI port, so I need to carry around a set of three dongles everywhere I go. There’s plenty of space on the left side, too, so that’s not an excuse.
  5. The lack of working sleep is more annoying than I thought it would be. Amazingly, the EFI equivalent to the POST takes almost as long as Windows resuming from hibernation. A few people seem to be working on getting Windows to boot via EFI, and my hopes are mostly pinned on that.
My iPod nano media player, the only other Apple product I own, is actually well-designed (save for the fact that I need to keep the piece of crap called iTunes around on my computer, even though I don’t need to use it.) This is not. This stinks of form-over-function failure.

Edit (25/1): Two inline updates.