Computers and Internet

Vista: Windows Easy Transfer

I installed Vista a couple of days ago (64 bit version). I’m intending it to become by primary development machine and file server at home . So I kicked off the Windows Easy Transfer wizard to copy all my files and accounts from my old Windows XP box. I decided to do it over the network, which is, unfortunately, a 10Mbps wireless connection. I left it going for 10 hours and the progress bar looked roughly 10% completed. Doing the maths, that totals four days of file transfers. Good job I’ve got my laptop around to muck about on in the mean time.
1) Pay careful attention to what the transfer wizard is proposing to copy across. Year old virtual machines running some beta of Longhorn are probably not essential any more.
2) Don’t use a dog slow connection. The tool offers many transfer mechanisms including CD/DVD, removable harddrive, easy transfer cable (i.e. crossover USB cable).
I’m keen to know if I can interrupt the transfer, knock a few files off the list and then resume, without having to redo the files its already copied over. I’m also worried that stopping the transfer mid flow (in order to opt for a lower tech solution like Robocopy) might leave a jagged and inconsistent set of files on the new box.
So maybe I’ll wait four days…
Computers and Internet

Flash Earth

If you’ve tried out Google Earth or any of the sattelite maps the various search engine provides, then you might like to have a look at
It allows you to select the source for the images. Zoom in to your own neighbourhood then flick from Google to MSN to Yahoo (and others) to see which one is the most up to date. (Google by about 3 years, for me!)
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!