Windows 8 & TrueCrypt Security Windows 8 & TrueCrypt Security

Windows 8 RTM was released last week and since Rainmaker are MSDN Subscribers, I decided last Friday during a quiet few hours that I'd upgrade my work/development laptop to the new OS. It has not been going smoothly. Here are a few of the problems I've run into so far.

  • Make sure the ISO you're installing from matches the existing installation on your machine. In my case, the in-place edition (Windows 7 Enterprise) was incompatible with the ISO we'd downloaded (Windows 8 Enterprise N). That set me back several hours while pulling down a different ISO.
  • The Installation makes you take a "Leap of Faith". You need to un-install a number of "Incompatible" pieces of Software. On my Dell Latitude that involved uninstalling the Broadcomm BlueTooth Drivers, the Intel Wireless & Wired Proset Drivers, Magic ISO Reader... pretty much everything that allowed the laptop to communicate with the outside world. Make sure you have the drivers handy on a USB key in case you need to abort the install and get your laptop back to normal. I also had to get rid of the Avast Anti Virus Install for what it's worth.
  • But the pièce-de-résistance was that when I finally got the installer running, I had completely forgotten that my Laptop Hard-drive is protected by TrueCrypt which requires a password when the machine boots up. Alas, instead of password entry this morning, I was presented with a nasty "Missing Operating System" message. TrueCrypt obviously needs to host OS intact to run, even before the OS loads up.

So right now I'm 5 hours into what will probably end up being an 8-hour full disk decrypt. Fingers are tentatively crossed that once the disk is decrypted the Windows 8 install will happily continue on where it left off. Optimistic?


That went surprisingly smoothly in the end. Once the TrueCrypt Disk Decryption finished and the machine rebooted, the setup processed continued exactly where it had left off and completed without incident. Shiny new Windows 8 Install.

~Eoin C

Version 1.0Over the past few weeks I've been working on a new project in our company which involved building a number of inter-dependent assemblies, "strongly naming" them and installing them into the Global Assembly Cache. Over the course of the project, I was forced to look at a number of issues related to assembly versions, solution organisation and the deployment of assesmblies in a developer environment.

So given that it's been a while since I wrote anything vaguely technical, I thought I'd document some of these issues down.

  • What version numbering strategy should we use?
  • How will we organise our Solution to make this easily manageable?
  • How will we manage these libraries during the deployment phase?
  • How will we circulate stable versions to developers during on-going development of other projects?
  • How will we release these libraries to customers?
[notice]TL;DR - Take a look at the VersioningDemo Solution on GitHub[/notice]

The Joel Test

I ended up having an extremely brief chat with Joel Spolsky recently in one of the Stack Exchange chat rooms. We learned, among other things that he'll only return to Dublin when "the heroin addicts promise not to yell at him for eating fish and chips in a park near Christchurch" and that he'd like to "sing a duet of 'Anything You Can Do, I Can Do Better' from 'Annie get your gun' with Jeff Atwood". But probably of more relevance to technology & programming, I was asking him did he still consider The Joel Test an accurate barometer for grading a software development team.

The joel test is still a pretty good test; there's not much in there I would change.

--Joel Spolsky, March 2011


Alas, all my hope & dreams & promises of a regular blog post, dashed... oh well, here's one now.

I've been playing with the System.Threading.Tasks namespace over the last few hours and it's quite neat.

We'll be rolling out some new software in the next few months at work which Processes SMS messages from Customers. In the past we had fudged together our own Multi-Threading/Multi-Pipeline code to try and get messages through the system as quickly as possible but it was fairly bloated to say the least. Enter the new Task and Parallel classes in .NET 4.0

Geo IP

I stumbled across a very nice repurposing of the PARSENAME function in SQL Server recently while playing around with some GeoIP Data. In SQL Server, the PARSENAME function is used for working with fully qualified server objects. e.g. a table on a linked server ('LinkedServerName . Databasename . Ownername . TableName'). But PARSENAME can be used to easily split up any 4 token, dot delimited string into its constituent parts.