titaniumbunker.com

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

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.

Debug

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 :

TIME NAME Location TYPE
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
image

Digital sign in error at millennium point

image

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.

 

        [Test]
        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();
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { controller="API", id = RouteParameter.Optional }
            );

            app.UseWebApi(config);
        }
    }

 

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

Categories

Archives

Tags