Evil geniuses and world domination are 2 of our goals... we also like Dr Who

Building LA

no comment

I have been asked to create a series of video projections for The Pied Pipers Musical Theatre Group’s upcoming production of Singin’ in the Rain. Since I won the NODA national poster competition I have been pretty busy. At the moment, everyone wants me to design backgrounds that are to be projected for 3 different shows.

Singing in the Rain is first- after getting some information from BAWDS I was able to work out a frame size.

First challenge:  The director wanted a fly-through  through 1920’s LA to the Graumans Chinese theatre.

Well it looks like SketchUp Make could solve this problem.  I could use it to generate terrain and place buildings accurately – or so I thought.

Thing is, right now, I don’t use windows at home. I have an ancient Mac mini, so I tried installing SketchUp Make on that.  Latest version installed, only to tell me when starting that the OS was the wrong version and so it wouldn’t run- thanks apple

Linux doesn’t have a version, so I tried to install SketchUp under WINE. this installed and ran (sort of) but there was no 3D view. So in desperation I contacted Mike who had a windows laptop and was able to extract chunks of landscape and the Hollywood sign and Chinese theatre to a number of .3ds files.

First up – let’s make the land.

Opening up a copy of 3ds max one lunchtime, I was able to import the landscape.  As part of that, mike had very acurately placed the hollywood sign for me. I also had 30 or so chunks of land

3D terrain Data for Hollywood

Terrain Data extracted from SketchUp

Opening Photoshop I loaded the textures into a large file and using the 3D view as a guide, arranged the textures together:

unfiltered landscape

Hollywood Textures

Then I went through each layer cropping the footer display to create a large texture that could be mapped onto all the planes at the same time.


Texture when cleaned up

Back in max, I combined all the landscape planes together and then made another plane above the land with roughly the same density as the merge plane object. I then applied a Conform spacewarp to the object and suddenly my new plane was fitting snugly over the Holly wood hills

making LA_3

Combining the landscape planes

I now had a single surface with no co planar polygons. I made a snapshot this mesh and deleted the faces and vertices that hadn’t been affected by the conform operation.

making LA_4

Single surface generated from the terrain data

Slap the text ure on and VOILA!

making LA_5

Texturing the landscape

It’s not 100% but its a lot quicker than manually editing and welding thousands of verts and performing countless STL checks

a quick render:

making LA_6

Rendering the Hollywood hills

And I was ready to swap out the HOLLYWOOD sign for the earlier HOLLWOODLAND sign. I fudged it a bit but it still looks pretty good:

making LA_7

Hollywoodland sign

Next Up I will add the Chinese Theatre, and then populate the Rest of LA with generic buildings

Unit Testing your controllers

no comment
Thomas thought that testing the controller would be a good thing.

Thomas thought that testing the controller would be a good thing.

I’m working on a home project at the moment – it’s an MVC/Entity Framework based project, and I have been stumped for the past 3 weeks on something – How can I test it?

Read more..

Project: Snail Tales – DONE!

no comment

Yes, finally after nearly 3 years of development and work, The Snail Tales project is finished. I had actually finished it late last year but decided to get christmas and new year out of the way before releasing to Snail Tales.

Here’s the finished film:

I will be collating all the character and background files and creating a public repository for them

On paper it seems an awful long time to make a piece of animation. But as well as the games I made as part of my job I moved house, got engaged, had to learn hot to use Synfig, and get S-Cargo and the continuous integration system working.

I recorded my presentation at OggCamp late last year – I will upload that shortly.  In the meantime, here’s the presentation I did the year before, detailing how Synfig Stage and continuous integration will work:

Windows 10 IOT on Raspberry Pi – Is it actually windows 10?

no comment
Version Information

Windows 10 IOT on a Raspberry Pi 2

I’ve just installed Windows 10 IOT edition on a Raspberry Pi 2 – and I have my suspicions that this isn’t necessarily the same operating system that I am running on my laptop.

Let’s have a bit of context

The challenge to IT – and indeed to us developers – is that users are no longer experiencing our applications or operating systems on the boring beige box like they used to.  People are just as likely to use their phone or a tablet as a laptop or a desktop to run that shiny new app.  This is something we need to consider when designing the user experience for our products – be they operating systems or applications.

So Microsoft has been working towards unifying their operating systems – which is why you can now get windows 10 running on mobile phones such as the Lumia 550 or Lumia 950 and even the Surface product range.  I believe that Microsoft are talking here about the main kernel for their OS, rather than the whole OS.  A window manager for desktop PC’s would be very different from a window manager for Mobile phones or tablet based systems.  Except that I don’t believe they have gotten around to their IOT offerings yet.


Microsoft’s process for interacting with Raspberry Pis, and turning them into IOT devices is simple enough.  Instructions and write ups for the Raspberry Pi can be found here but Windows 10 IOT also supports Minnowboard MAX and the Qualcomm DragonBoard 410c – but with DragonBoards costing roughly £60, and minnowboards going for roughly £100 , the obvious choice is a raspberry pi costing £30.  I happen to have a spare raspberry pi hanging around, so I thought I’d give it a go.  I set up the pi using the IoT Dashboard Tool.


After my machine had booted, I clicked around on the web based dashboard, looking at my wondrous new machine that was connected to the TV in the other room.

RPI Info

Yes- so that’s definitely my Raspberry Pi2 running Windows 10.

Clicking on some of the options I found a debug page, which listed 2 errors – which I thought was strange considering that the device was doing nothing.


Out of the box – 2 errors. Hardly inspires confidence.

Being the inquisitive sort I clicked on the first error, which confusingly is at the bottom of the list :

1/21/2016, 10:50:46 PM Critical unknown a0795c9de6cdb1f43e165a29b7f6d42caeb2b SYSTEM Archive

Clicking on the Name took me to a detailed screen showing more information about the error :

Windows8 Error

Confused by an obscure error? This page will help clear it right up.


The friendly name for that error : WindowsPhone8ExecManService

I’m not a gambling man, but I reckon that all Microsoft have done here is compile their windows 8 phone OS for the ARM chip on the Raspberry Pi, and replaced the front end string resources with “Windows 10”.  For those interested, the Chip in the Raspberry Pi is a quad-core ARM Cortex A7 – the same processor running on the Microsoft Lumia 550 – which while based on the SnapDragon 210 SOC, has ARM Coretx A7 Processors.


Was able to find something for the WindowsPhone8ExecManService error on stackoverflow :

The value EM_WATCHDOG_TIMEOUT likely indicates that you have blocked the UI thread with a long running piece of code or a wait of some description.

Mark Radbourne [MSFT]



Error in the wild at Millennium Point

no comment

Digital sign in error at millennium point


Adding new hardware to a digital sign?

Will the real OWIN please stand up!

no comment
Not OWIN, rather sportswear and beat poetry enthusiast Mr Slim Shady

Not OWIN, rather sportswear and beat poetry enthusiast Mr Slim Shady

I’ve recently become singularly interested in unit testing and continuous integration.  I’ve recently set up a project and I now take great delight in the system automatically building and telling me that my test were no good, and that the project is unstable.  It’s good because it drives you to make sure that your code changes don’t break existing functionality – and that’s only something that can be done if there are repeatable and technically inexpensive tests that can be executed when code is checked in.

This project is a .NET MVC based project – but also has a rather interesting REST based interface, allowing potential integration from any number of clients.  I have tests for the controller, and I can sort of test the REST interface (by calling the controller in a Nunit test) – however I recently started thinking that I don’t really have a way to test that REST interface from a Javascript client perspective in the same way that I would expect to test it from a controller perspective.

I suppose what I wanted to do was to start a web service process when I start my testing, and tear it down at the end of testing.  The point here is that testing can occur before deployment, protecting the environment from errors or changes in functionality that now break unit tests.

Cassini might be a possibility, and another option might be OWIN.

OWIN (Open Web Interface for .NET) – and in particular Microsoft.Owin.Testing.TestServer allows a web server to be instantiated in code.  This means that a unit test can create an instance of a web application and then perform an activity against that executing web site.

As part of my experiments, I wrote some tests for a project I am working on – the App-Utility-Store.

Web Sservices

I wrote a simple Values Controller API which creates a simple REST interface.  My idea was to test this using a simple rest client.  To accomplish this I wrote a simple Test class which firstly stands up an OWIN server, then performs a call against that server.


        public void testRestCall()
            const int port = 8086;
            using (WebApp.Start<APIHost>("http://localhost:"+port))
                var client = new HttpClient { BaseAddress = new Uri("http://localhost:" + port )};
                var response = client.GetAsync("/api/Values").Result;
                var body = response.Content.ReadAsStringAsync().Result;


So what is this code doing?

This code creates a web server running on port 8086, and it uses a class called APIHost to configure it.

    public class APIHost
        public void Configuration(IAppBuilder app)
            // Configure Web API for self-host. 
            var config = new HttpConfiguration();
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { controller="API", id = RouteParameter.Optional }



Once the server is up we create a HTTPClient, and perform a GET request to the Values Controller.  Debugging the API controller confirmed that the website was indeed firing.  Adding OWIN testing to a project can be done through NuGet’s Microsoft.Owin.Testing package.

Confused windows 10 laptop

no comment

Dave’s prediction results 2015

no comment


Film and TV

  • Avengers: Age of Ultron will outperform Star Wars 7 at the box office
  • Doctor who will return for series 9. Jenna Coleman will return for the whole season but this will be her final season. I also predict the return of the Meddling monk
  • After Jenna leaves, the next companion will be male (probably a physical type like Ian Chesterton to the first doctor)
  • Broadchurch will finish and will not be picked up for a third one. I predict Claire killed the girls and the Joe killed Danny


  • Tesco will stop selling and producing the Hudl. Tesco will be forced into  selling them off cheap in order to get rid of them.
  • The market will become flooded with cheap android tablets
  • OggCamp will run this year but it will probably be the last one.
  • with the demise of the Doctor Who podcast I predict that Doctor Who:Podshock will be the next Doctor Who podcast to shut up shop.


  • The general election will result in a win for the Conservatives although they may have to form a coalition.
  • Oil prices will continue to fall, or at least level out, making for less pressure on hard pressed families, hopefully leading to more confidence in the high street

Dave's predictions

So based on that Dave was right 44.4%, and wrong, and unknown 22.2% giving Dave a 66% correct (or possibly)… so as I’m feeling generous – I’m awarding the Nostradamus award to Dave this year.

Nostradamus 2016


Momentus occasion.


Well dear readers – it’s finally happened.  Those of you that know me know that I have been working towards this goal for a while now.

Today I got a replacement bank card.

Now – I know that’s not a big story right?  I mean people get replacement cards all the time, and I am no stranger to getting a replacement bank card.  Except that this is the first time that I have had a replacement card because of the expiry of the old card.

For me – this is a huge deal.   I’ve had to get replacement cards before now because I’ve put them down somewhere at home, only to find them the second I get off the phone with the bank.  I’ve even snapped a card in half using it as a make-shift ice scraper.  But this new card is an achievement – and one I am really proud of.

Open Writer

no comment

This morning I read this on the twittter feed of Scott Hanselman :

This was exciting because I was a Windows Live Writer user – so I decided to give it a whirl, and after a few attempts managed to write this blog post using it.

I’ll try and write up some more about how the application works, and the issues I had installing (which weren’t many – but I would suggest are potentially confusing for people wanting to use this software to write blog posts).