Why isn’t UK voting anonymous?

I voted in the European election today. I was pre-registered and had received my voting card. I went to the polling station where they looked at my card, checked it against my name on the electroal roll, crossed it out, and noted its number on a list next to the unique ID of the ballot paper. I made my choice and put the slip in the ballot box.

Much of this process is necessary in order to combat fraud and ballot rigging, however, it’s clearly not anonymous – a simple reference back from the paper’s ID to my voting card ID means that the government knows what I voted. Knowing what I voted gives no anti-fraud advantage I can see, and means that the collected data is way more sensitive than it needs to be. The simple fact that this knowledge exists is likely to distort voting patterns – people might be afraid of their political leanings being exposed. I’m not particularly worried about that personally, but those with more extreme views (like those that vote for the BNP) might not want this known, and it undermines the absolute right to freedom of association. Political affiliation is regarded as the highest form of ‘personal data’ under the data protection act, along with ethnicity, sexual preference, medical records etc, and the best way to avoid problems with this kind of data is not to keep it in the first place, as the numerous leaks/losses/exposures of government information have highlighted. So why is it done? Aren’t elections meant to be done by secret ballot? Did I miss something? Why aren’t more people disturbed by this?

Subversion 1.5 repository upgrade on SourceForge

I’ve just had a slightly tricky time upgrading a subversion repository on sourceforge. They have recently added support for subversion 1.5 at the server end. 1.5 brings major new features for merging, but as it’s not backward compatible with older subversion clients, the upgrade is not done automatically. SF have also done a major rearrangement of their documentation while transferring everything to Trac, and it’s not always easy to get the right info. Normally to upgrade a subversion repo, you just run the ‘svnadmin upgrade /path/to/repo’, however, it’s not quite so simple on sourceforge as you don’t have direct access to the repo, and the instructions they give are slightly wrong at the time of writing. You’re likely to get an error like this (it’s not obvious that this is a fatal error) when you reload a dump file:

svnadmin: File already exists: filesystem ‘/svnroot/projectname/db’, transaction ‘443-0’, path ‘tags’
\* adding path : tags …

This is because load is intended to add files to an existing repo, not to replace those that are already there, so you need to wipe the repo and start from scratch.

So, here is a working command sequence that needs to be run from a project login shell on sourceforge (it applies to the project you’re logged in through, substitute your project’s name for projectname):

adminrepo –checkout svn
svnadmin dump /svnroot/projectname > svn.dump
rm -rf /svnroot/projectname/\*
svnadmin create /svnroot/projectname
svnadmin load /svnroot/projectname < svn.dump adminrepo --save svn

Yes, you do need to delete the whole thing and re-import it, but it’s quick and easy, and you have a backup in the dump file you take at the start. After the upgrade, make sure you get a new checkout of your project to ensure that you’re using 1.5 all the way through. Now you’ll find that commands like ‘svn merge –reintegrate’ work.

Speaker & room calibration

I was lucky enough to pick up a Behringer Ultracurve Pro DSP8024 for a mere £50 on eBay recently. It turned out to have a buggy OS version (1.2), and Behringer very kindly sent me a replacement EPROM with a new 1.3 OS on it, which works just fine. I now have it installed between my Soundcraft mixer and my Wharfedale active monitors. I used its “Auto-Q” calibration routine and put up with some quite loud pink noise to calculate a room correction curve. Because it knows the spectrum it’s generating, it assumes that what it gets back has been altered by the combination of speakers, room and microphone, so it can calculate an eq map to compensate for it. It’s quite fun to watch as it has a nice big LCD screen to display the 31 1/3 octave bands – the initial spectrum is fairly peaky, but as it iteratively applies corrections you see (and hear) it flattening out. It’s also very obvious that my monitors don’t put out much below 50Hz (it analyses down to 20Hz), but that’s to be expected from a moderately sized box with a 6.5″ driver. The results are really pretty good, sounds lovely and smooth, but the real surprise is when you’ve been listening to it for a while and you switch out the EQ – it’s really quite a shock to hear the uncorrected version. Lots of purists don’t like room correction by EQ, saying it’s better to fix the room in the first place, and also that EQ calculated like this is highly dependent on the listening position (which it is). I have a lots of bookshelves facing my speakers; they make fantastic diffusers, and I have some Universal Acoustics absorber tiles on the sloping ceiling above my listening position. The longest room mode will be fairly undamped (I’m not about to start hanging duvets around the walls!), but the resulting EQ is below 6db in either direction across the whole range – I’ve heard of rooms with 24db peaks! Anyway, after all that, it sounds lovely, and I’m happy!

The web developer’s holy vhost trinity

When you’re developing web stuff, working with projects in path names (i.e. not at the top level of a domain) can be difficult (gets in the way of absolute links, rewrite rules etc), so you often need to set up a local apache virtual host, stick an entry in DNS and create an SSL certificate before you can get on with the serious business of doing some real work. This can get to be a drag when you do it a lot, but there is an extremely elegant solution that means you’ll never have to do it again…
Continue reading “The web developer’s holy vhost trinity”