Restoring an old bkf backup file on macOS or Windows 10 (/8/7)

I recently realised I had a load of old projects and data sitting in a lovely 100GB bkf file – generated by the ntbackup program that used to ship with Windows XP and Windows 2008 – but no way to access them.

Microsoft released a restore-only version for 2008 R2 / Windows 7, but there was no version of ntbackup I could find that would run on Windows 10.

There were loads of blog and StackExchange posts but generally pointing to dodgy (and since dead) downloads of ntbackup.exe. I could install Windows XP on a VM, or launch a Windows 2008 R2 instance in Azure/AWS and transfer the files up there, but those felt like a lot of hassle.

Fortunately I found a C based utility on GitHub called mtftar which converts an MTF stream into a TAR based stream, and someone has generously updated it to compile on both Windows and macOS. Great!

I have Ubuntu running under the Windows subsystem for Linux, so with build-essential already installed via apt-get, I ran:

> git clone https://github.com/sjmurdoch/mtftar
> cd mtftar
> make
> ./mtftar -?

Which lists out the various supported command line arguments. I went for

./mtftar < Backup.bkf | tar xvf -

which extracted the bkf archive straight onto the file system in the same directory. The same commands work on macOS, if you prefer to run there.

Exploding cows in Minecraft…

Last weekend I was at Womad festival, helping kids fire exploding cows from catapults in Minecraft. Not my usual line of work as CTO, or typical festival experience for that matter!

I was volunteering with Devoxx4Kids who organise events worldwide where children can develop computer games, program robots and also have an introduction to electronics. CERN had invited Devoxx4Kids to take part in the workshops happening at the Physics Pavilion.

We ran 3 packed out workshops across the weekend, with children ranging from about aged 6 to 13. While there was a whole range of knowledge levels, almost everyone was familiar with Scratch — and they most definitely knew far more about Minecraft than me!

Warm up before a session!

The workshops involved writing some Java using Minecraft Forge and Eclipse in order to introduce a catapult into the Minecraft world, understand the impact of angles on how far the catapult could fire, and ultimately throw some surprisingly explosive animals!

As volunteers, we were split around 50:50 between those that had a technical background or not — it wasn’t about showing off our own technical knowledge — more asking questions and helping the children stay on track with the activity. A particular shout out to Cesar and Dan, whose hard work meant the rest of us could just turn up on the day!

It was humbling to see how well our attendees all tackled the challenge — their thoughtfulness on variable names for their animal of choice, and somewhat more destructively, delight at changing how big an explosion to create when it landed!

While it was only a small taster, hopefully it reinforced the realisation (for both parents and children!) that by coding they can actively change the world they experience in these games, and perhaps continue to grow an interest in technology.

This document has been composed with the free HTML edior. Click here to give it a try.

Disabling Chrome’s Metro app in Windows 8

At time of writing, if you replace IE with Chrome on Windows 8 then Chrome installs both a desktop and a Metro version of itself. Personally, as most of my time is spent in the desktop, I’d rather Chrome just always opened there.

There’s currently an open issue on the chromium website, but in the meantime there’s a relatively simple workaround. You just need to open up regedit, navigate to

HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command

and then rename/remove the DelegateExecute entry. Then Chrome will always open in desktop mode – problem solved!

Unblocking downloaded DLLs

I find myself regularly forgetting to unblock zip files of various projects (when I’m not using NuGet) and then getting .NET errors around untrusted assemblies. To bulk unblock all files in a directory, simply