Biometric passport

Due to having an Israeli stamp in my passport and needing to fly on Qatar Airways (for our honeymoon), I was advised to get a new passport. (Either the airline or the country, in which I have to make a change, presumably believe I’d be working for Mossad.) The requirements for renewing a passport aren’t onerous, but the new passport will be a ‘biometric’ passport.
What does this mean? I don’t know about you, but I expected them to need my finger print at the very least, or in other wilder scenarios I imagined them scanning my iris or sequencing my genome from a hair (okay, maybe not quite yet).
But it means none of this. All it means is that they’ve encoded my photo into a digital format on the passport. It’s contained in a chip that can be read electronically and from a short distance (like RFID) and is supposed to aid facial recognition software.
A little statistic for you; two years ago the Home Office published an accuracy figure of 69% for facial recognition software (see The Register). I don’t know the details of the study, but that’s conceivably 3 in 10 people being pulled out of a queue to be checked manually. On the flip side, it could mean 70% of people (carrying ‘biometric’ passports) get automatically passed through passport control thus speeding exit from an airport and reducing the number of staff required to process people. Of course, I do wonder what the false positive rate is?
Incidentally, if you’re in the business of needing to match faces to photos, it looks like employing a woman to do the job is your best bet. See
Anyway, my passport took under two weeks to be produced and now I’m looking forward to the honeymoon.


We finally found a photographer for our wedding who was free on September 9th and wasn’t going to bankrupt us (quite). They cost so much! He’s an all-digital photographer, relying somewhat on post-processing to get the perfect set of shots. Is this cheating? I don’t mind, as long as they look good.
So that’s one more off Julie’s list of things to do. Not too many more left now! Next up is bridesmaids’ dress shopping in which my involvement is peripheral at most.
Computers and Internet

Installing Visual Studio Team Suite from MSDN

A quick note to anyone who is thinking of installing VSTS from MSDN via the CD ISO images (rather than the DVD image). I decided to use the CDs as they’re a smaller download.
I had a Beta 2 version of Visual Studio 2005 installed, so I used Microsoft’s unsupported uninstallation tool to remove that first. No problems there. Then I mounted the three images of the VSTS media in consecutive drive letters (using Daemon Tools).
Initially I attempted to do a custom installation and skip Visual J# and SQL Server 2005 Express edition (as I never use the former and intended to put a fuller version of the latter on later). This installation resulted in several error messages en route and eventually a failure to install any Compact Framework tools. So I uninstalled.
Finally I went with the default installation. Surprisingly this too was not without issue. . Part way through installation I received the message "Error 1308.Source file not foud: e:\wcu\JSharpRedistCare\vjredist.exe. Verify that the file exists and that you can access it.(Abort, Retry, Ignore)." Drive ‘e’ was where disk 1 was mounted. Note that there’s no option to go and browse for the file.
The solution to this problem is to unmount disk 1 from that drive letter and mount disk 3 in its place, as that is where the vjredist.exe file lives. Hey presto, it’s up and working.
A last note for those who, like me, thought that the January MSDN would integrate with VS2005. It doesn’t. It only integrates with VS2003. You will still need to install MSDN for Visual Studio 2005 separately.
Computers and Internet

WinFX Runtime Component installation pain

The WinFX September CTP runtime components setup (i.e. the PDC05 release) has failed many times on my machine. This blog entry is aimed at softening the blow for anyone else suffering similar issues. It’s long and thoroughly uninteresting for anyone not suffering from The Pain. It contains a couple of links to some useful general tools for sorting out installation/uninstall problems.
The WinFX September CTP Runtim Components installation failures started after my first installation failed with an "event log full" error (seen only by attaching a debugger to the installer). After reconfiguring my event logs I re-ran the setup.
Now typically I get the unpacking files progress dialog and then the "Welcome to Setup" dialog. Shortly after clicking next I get a "WinFX Setup has encountered a problem during setup…" style modal. It seems to fail some time after installing the WinWF components, as when I attempt to re-install it moans that WinWF is already there. Either run the WinWF_3.0_x86.msi package ( or the following line to uninstall WinWF:
msiexec.exe /x {B644FB52-BB3D-4C43-80EC-57644210536A}
Even once this has been done, WinFX installation still fails on my machine. Looking at the temp file included in the error report it was intending to send to Microsoft (!) the last readable action it seems to have performed before encountering an error was "Begining Brooklyn Component Installation". I have no idea what this is (and nor do I by the end of this blog).
Examining the GAC I can see assemblies that look like they’re part of Indigo, indicating that setup was lying when it said it had removed all files that it had installed (I knew it was lying anyway, as I had to uninstall WinWF manually).
Tim Sneath’s blog ( mentions a JScript file to clean up old Avalon installs. This found many orphaned "installer component key[s]" in the registry. They all indeed looked like presentation related files. It deleted those keys from the registry and the equivalent files from %windir%\system32.
Rerun winfx setup…
The Avalon cleanup had no effect on the success of the install. Following the subsequent WinWF_3.0_x86.msi install and the WinWF uninstall, running the JScript file had no effect ("the system was already cleaned up").
Googling found the following Brad Adams blog: "Uninstall magic: MSIZap and MSIInv" ( In the comments someone points to an MS download that wraps a GUI around MSIZap called "Windows Install Cleanup":;en-us;290301
Running Windows Install Cleanup  tells me I have ‘Microsoft "Indigo" Beta 2 [8.0.50125.913]’ installed. This doesn’t show up in the Add Remove Programs list at all. Note that running this will only remove it from the Windows Installer database, not the underlying files. Indeed a quick check in the GAC shows that System.ServiceModel (2.0.50215.913) is still there.
Rerun winfx setup…
This time round about a dozen console windows flared into life and died back taking significally longer than usual, but the end result was a "… has encountered a problem during setup…" message again. The temp file again indicates the last thing it was trying to do was install the Brooklyn components. The next install the Windows Install Cleanup doesn’t see Indigo at all. However, I did find "Avalon September CTP…", so I removed that too.
Rerun winfx setup…
Success! Relief. And a celebratory glass of wine. Let’s hope I have even half the time I took installing this software to actually test it!
Wonder if Google will ever index this and save anyone else the pain?
Computers and Internet

Top pick from PDC05

I have returned from this year’s PDC, which was hosted in LA, and I’m more or less over the jet lag. For those of you into this sort of thing, I thought I’d share with you my top session at the conference. That session was "C#: Future Directions in Language Innovation". This session discusses some of the improvments in C# version 3 around writing relational queries directly in C#. This could be against XML data, or relational database data.
However, the really interesting stuff for me is not the fact that you can write the queries; it’s the advances in the language that allow for this querying to take place. I can’t find a transcript of the actual session right now, but Scott Wiltamouth‘s blog pointed out this video on Channel 9 (37 mins) that discusses the same issues. Also look at the C# 3.0 Specification.
So, those advances in the language; what are they?
1) Lamda functions – shorthand ways of defining predicates inline, utilising C# 2’s anonymous methods.
2) Extender methods – ways of syntactically adding methods to classes without owning the class code or deriving from it.
3) Type inference – use of the ‘var’ keyword where the explicit type of a variable isn’t given, it’s infered from the right hand side of the initialisation statement.
4) Anonymous types – mechanism for defining a type implicitly by etablishing its contents in line. e.g. "var p1 = new { Name = "Lawnmower", Price = 495.00 };"
Watch the video and do some Googling. There’s plenty of material about this out there. There are some critiques too (Dlinq issues, Lambda issues), the reading of which can often be more informative than the introduction to the technology itself.
A final note. This technology is C# version 3. C# version 2 isn’t even released yet. If you want to have some input into C#3 then now’s the time; don’t moan about it later!

Buzz Aldrin

Last weekend as an early birthday present Julie took me up to Leicester to the National Space Centre where they had a special guest signing books; Buzz Aldrin (second man on the moon, for those of you not in the know). The event was in support of the Kalpana Chawla Foundation.

What Julie had also sorted out was a ticket to the invite only Q&A session with him prior to the book signing.

After Buzz’s rather lengthy introduction (unanticipated by the master of ceremonies, I believe), I managed to get the first question in: "The Apollo programme was cut short before it was completed – what’s going to be different this time round to ensure continued exploration of the Moon and Mars?"

Dr Aldrin’s answer was, in short, "education" to inform people why the science and exploration is valuable and to make the programme less sensational and more engaging in the long term. But Buzz took about 10 minutes to say this. On conclusion of his answer the MC said: "We have time for one more question." Oops.

Buzz is a verbose individual, and why not? He’s got a lot to talk about. He’s pretty vocal in his disappointment of the shuttle programme, and possibly a little cold-war-esque in his attitude to competing with Asian space programmes (though outside of the Q&A he was a bit more hippy-esque on the topic). But his overriding mission is to evangelise space exploration, and he does it well.

The Q&A session was followed by me being interviewed by the local paper too! Fame.

 I had a great day all in all, and it was humbling to shake the hand of a guy who walked on the moon.



A visit to the dentists today didn’t start off too well when I heard the phrase "pass me the scalpel, please". However, one local anaethsetic and five minutes later I was free to go. Very impressive. Especially since the dentist was suffering from an eye allergy and was having difficulty seeing properly.



Julie and I got engaged last Friday on a trip to Rome, in the Piazza Navona.   The event occurred to the accompaniment of a bottle of Chianti Classico and some busking guitar players.

All in all it was a great holiday. It also included being present at the inauguration of Pope Benedict XVI, along with 399,998 other people. More or less.

News and politics

Who will you vote for?

Have a look at I came out pretty heavily in favour of Lib Dems (which is good, as that’s how I was going to vote anyway), plus a smidgen of Green Party. Oh, and a rather worrying 5% bent towards UKIP. Shudder.


History Talking

Welcome to my blog!

I’d like to kick off by pointing out my less than impressive design skills in the implementation of my girlfriend Julie’s website for her company, History Talking:

Any suggestions for how to get Google to index this will be greatly welcomed! Also, if anybody can offer their help in producing a logo for History Talking we’d both be most appreciated.