Docker at C4DI

After all of the shenanigans of the last few days I was probably not in the best mental shape to go along to the Developer Meetup at C4DI tonight. But I went along to meet the folks and hear about Docker. Adam Carlile works at Board Intelligence and uses Docker to build highly secure, discrete systems that generate confidential management reports.

Docker is especially useful to Adam because it provides a way of packaging up a particular configuration of machine into a "lump" of data which can then be transported and executed in a secure way on another device. It is essentially a highly portable virtual machine configuration, but with the advantage that the Docker container is very lightweight and can be layered in a way that makes it very easy to create and amend configurations.

If you like playing with operating systems, or have a need to distribute work in a secure and managed way, then Docker is well worth a look.

Devices and Networking Summit Day 2

And so to day two of the summit which features more impressive tech followed by a nerve jangling train ride and late night return to Hull. Now read on....

Keeping Control of Security and Privacy in a World of Devices

In this session we had some talks on different aspects of security. First up was a discussion of techniques to address "man in the middle" attacks, where a bad person interposes themselves between you and the person you are talking to. This technique of intercepting and relaying messages is particularly dangerous in a world where people are happy to use the nearest open WiFi connection with no thought of security. Then we moved on to a fascinating discussion of how we can remove the faces of "innocent bystanders" from photos that we take when we are out and about. This is a surprisingly tricky thing to do and led to a great discourse about how privacy can be managed in the wild.

The Next Big Hurdle

The next session I went to took a high level view of the development process, with the goal of working out how to make properly useful devices, both now and in the future. This is something that we are not terribly good at today, but with increasing levels of complexity and a greater range of uses than ever before, it is important that we make sure that the devices we surround ourselves with aren't more frustrating for us than they are worth.

The talk was placed in the context of producing something really useful, a way of allowing blind people to navigate around cities on their own. The project uses bone-conduction headphones which relay navigation advice generated by a smartphone. The most impressive thing about this for me was the intent to build a system that works even when the user is doing something else. In other words the user would be able to carry on a conversation even while finding their way around.

Home Networking

I wasn't quite sure what to expect from this session, but what we got was some very good discussion of the problems faced when you connect households to the internet. Things have moved on from the early internet where a home had one computer and one wire to the router. Nowadays there will be many devices connected via WiFi and a huge problem diagnosing what has broken when things fail. I saw the results of an interesting study looking for reasons why home networks fail (a hint: it's usually the WiFi connection) and some very interesting ideas about moving the home router into the cloud.

Lunchtime Demonstrations

During the lunch break they had demonstrations of some really neat stuff. I wandered around with my camera and took some pictures.

This is a way of making 3D rapid prototype printing even more rapid. Rather than printing out a filled in model the printer produces a 3D outline. There are a number of technical challenges to address here. The printer needs a larger hole in the nozzle to print thicker strands, the output has to be carefully cooled as the models are built and the slicing software has to be re-written to drive the printer in a completely different way. Very clever.

These are Picco devices. Tiny miniature screens that you can use to send playful, or useful messages to folks you know.

Inside each tiny device is an .NET Microframework powered processor, a WiFi interface, SD card and display unit. The devices and their 3D printed cases were created to explore product development as much as invent new kinds of interaction. Very clever and great fun to play with.

 

This picture shows some prototype "Disruptive Display" devices. These provide a completely new kind of display medium that "remembers" what light you shine onto it. By using light sensitive transistors in the construction of display drivers you can make a display which can be triggered to retain the level of light that is falling on it at a particular moment. The way I saw this, it meant you could make a wall display that you could "program" using a video projector whenever you felt like changing the scenery. The display doesn't really "remember" anything, each individual pixel retains their setting. You could also use this to "paint" with a torch, and then flick a switch and create a new picture.

There were also folks showing off circuits you can draw, some amazing touch devices on flexible materials, devices that can create radio signals entirely in software, posters you can vote on and a networking system for servers that can reconfigure its topology dynamically  to match the use case. You can find details of all the projects here.

Micro Datacentres and Cloudlets for Mobile Computing

The final presentation of the day was from Victor Bahl, who talked about the way that the cloud is becoming part of the way our machines work. Heavy duty tasks such as face recognition reap a huge benefit from cloud computing. The results are obtained more quickly and place less of a load on the batteries in the mobile device. But of course to use the cloud your device must send the data to be analysed and then get the result back, which depends on fast data transfer.

In many applications it is particularly important to get responses back quickly. Introducing a few milliseconds delay into the loop can make the difference between life and death for a video game player.

Victor talked about the way performance can be improved by streamlining the protocols used to send requests and also how large monolithic data servers were not the complete answer to the problem. Instead he described how smaller numbers of servers, "cloudlets" are now being deployed. These provide high performance local resources and reduce network traffic.

I wasn't able to stay to the end of this session because we had to grab a cab to the station. I had a tight schedule for the journey back. When I organised the tickets I thought that an interval of twenty five minutes would be plenty of time to get from the Eurotunnel train to the Hull one. Of course I was making the assumption that everything would run on time, which turned out to be mostly right. But it did mean for an exciting sprint across a tiny part of London.

Thanks so much to Microsoft Research for Inviting me. It was a great event and it was lovely to catch up with some folks I've not seen in a while.

Devices and Networking Summit Day 1

Note: These are my recollections from my track through the proceedings and are a bit subjective - but of course completely right :). I hope you find them an interesting read.

The summit proper started today. The first two Plenary sessions set an amazing standard to get us started. Very thought provoking, not just in the context of what people are doing, but also why the are doing it. And what can go wrong.

Opening Remarks from Peter Lee

The first of the sessions was from Peter Lee of Microsoft Research. He described how research and development work together, telling the story of a research group who devised a technology that used an array of 9 microphones to focus on a single speaker in a noisy environment. When they saw this the marketing department first asked for cheaper microphones, then for only four of them, and finally an ability to work with minimal calibration.

The group duly delivered and their technology became part of the Kinect sensor, one of the fastest selling gadgets in history. And the punch line of the story was that the academic paper describing the techniques that were used was subsequently rejected by a journal as having limited practical application. Such is life.  

Research is hard work, and non-linear. Peter talked about another research area which is chancging the way we use computers, voice recognition. He described how for the first ten years of this century the rate of errors in recognition remained stubbornly at around 20%, despite the best efforts of researchers in the field. Then, suddenly in the last few years we've seen a massive improvement in performance down to an error rate of around 7%, to the point where conversational translation is now going mainstream.

And the outcomes of research are not what you expect. One popular use for speech recognition/translation turns out not to be about talking a foreign language, but simply being able to see what people are saying if you are hard of hearing.  Very interesting stuff, and a great context for the ongoing discussions about ideas and the application of them.

Feedback Control and the Coming Revolution: Raffaello D’Andrea

Raffaello D’Andrea has done some really amazing things. From helping to design the next wave of robots to help Amazon to fulfil orders to making incredible juggling drones. He talked about how machines can be made to learn and adapt, and that it is probably not fair for us humans to make fun of clumsy robots. After all, it took several years for us to lean how to walk and move around with out breaking the furniture.

The Kiva robots and the flying machines that Raffaello worked on are both built with an ability to learn by practice and then over their lifetime continuously adjust to changing as they wear. This makes for properly useful technology, building on the original feedback mechanisms used to keep steam engines running at constant speed under different loading conditions. 

Feedback is a trick where you take the output of something and use it as an input. In the case of the steam engine the idea is that the faster the engine runs, the less steam it gets, making it stabilise at a particular speed. Slow the engine down by making it work harder and more steam is injected to bring the speed back up. But the problem with feedback is that it can be fiddly. The wrong amount of feedback can produce a wildly oscillating system or no movement at all. And combining two stable, feedback controlled, systems does not always end well. Although - strangely - the converse is also true. Two unstable systems can be combined to create a single stable one.

Raffaello said that he considered feedback to be a necessary evil, in that it made systems work, but should be used sparingly and with proper understanding of the potential for instability. He also voiced concern about the possibilities for problems when connecting large numbers of systems together. From a mathematical point of view it can be shown that this will lead to massive, unpredictable events every now and then. And considering that the Internet of Things is going to lead to a whole new connected world, this is something we need to think about.

Functional Materials and Process Enabled Device electronics

This was a fascinating and wide ranging session made up of presentations from a researchers in a number of different areas. There were talks about polymer batteries, printing electronic circuits on flexible materials, energy harvesting and even weaving electronics into material. Any session that contains the phrase "Infrared spectroscopy woven into socks" has got to be a good one. And it was.

Rapid Device Prototyping

After lunch it was time for a session on rapid device prototyping. The starting point was TouchDevelop, a development environment that is a great place to write and share code. You can create TouchDevelop programs on any mobile device and share them all around the world. And now TouchDevelop has an embedded presence too. Your TouchDevelop code can be downloaded into an Engduino device.

The Engduino is based on the Arduino platform, providing a whole bunch of sensors and coloured lights and software libraries to control them. There's emulation of the as part of the TouchDevelop framework, which makes it very easy to create programs, and they are working on simple network deployment of the compiled programs.

If you're looking for a quick and easy way to start coding, TouchDevelop is a great place to start. You can start writing code on your phone on the bus, and then complete the program on your PC later in the day. The code is all stored in the cloud and is dead easy to share. And the Engduino is a great little hardware platform, with plenty of connections including leds, accelerometer, magnetometer, Bluetooth and an SD card. 

Organic Seminconductor Science: Professor Sir Richard Friend, University of Cambridge

This was the final plenary keynote of the day. The focus of the talk was science, nature and power, with a great discussion of how solar cells work, how to make them better (and print them), and the fundamental science behind energy capture. There are some fundamental physical reasons which limit the amount of energy you can capture from sunlight, but this session gave a great description of how we can make solar cells which are better, cheaper and easier to make and deploy. Really fascinating stuff.

We rounded off the day with dinner on a boat trip down the Seine which was lovely. Great food, great company, great technology. What's not to love?

Hello from Paris

Pointing the fat lens at the tower

Pointing the fat lens at the tower

Well, this is nice. I'm in Paris for the Microsoft Devices and Networking Summit 2015. A chance to look at some very interesting embedded stuff. In Paris. What's not to love. The hotel is just down the road from the Eiffel tower. So of course I headed over there.

I took the stairs

Not a bad place to reach your steps goal....

Not a bad place to reach your steps goal....

I love the Eiffel tower. Fantastic place. And great for photographs too. If you want to see full size versions of the pictures you can click through to the images on Flickr. The conference starts tomorrow. Can't wait.

I love these telescopes

I love these telescopes

View from underneath

View from underneath

Not a bad view from the balcony

Not a bad view from the balcony

Very nice reception

Very nice reception

Just got back from a great reception on the 11th floor of the hotel. There were splendid views of the tower from the balcony, and huge glass windows that let give you a great view of the surrounding neighbourhood - but proved quite hard to walk through. Even though I tried. Talk about making an impression.....

I'd love to have stayed longer, but it turns out that I'll be updating module descriptions for the rest of the evening. In Paris. Such is life.

Read "The Innovators"

For the past few weeks I've been working my way through "The Innovators: How a Group of Inventors, Hackers, Geniuses and Geeks Created the Digital Revolution" by Walter Isaacson. It's a great history of computing, all the way from the letters of Ada Lovelace to the spelling mistake that made Google what it is today.

If "The Thrilling Adventures of Lovelace and Babbage" have whetted your appetite for a book that gives the full story of the machines that underpin so much of our lives you should read this book. Well written and well referenced, with some great background material.

Humber Bridge Cross

We did our Humber Bridge cross for Christian Aid today. We've been doing these for ages. The very first one we did was so long ago it involved a push-chair...

The weather forecast was not great, so we were fully decked out in waterproof everything, but in the end it was just a bit windy, but with some lovely clouds. I took the camera with the fat lens, which made for some interesting pictures..

C4DI Hardware Meetup - You Should Come Along - Really

If you live in the Hull area and have any kind of interest in technology there's a very good chance you'd enjoy a C4DI hardware meetup. They are first Thursday of every month and we have a mix of folks who like playing with computers and hardware and stuff. This month we had a Raspberry Pis of various flavours (which sounds wrong but it's right), flashing lights, amazing embedded devices you can get for less than a fiver and some brilliant discussions amongst other things.

Keep an eye on the Hull Meetup site for the next one.

Student Led Teaching Awards

I was very pleased to find out a while back that I'd been nominated for an award for Innovative Teaching in the Student-Led awards run by the University Union at Hull.

Anyway, tonight was the night when the winners were announced at a  posh dinner at Staff House on the campus. I wore my new suit (no-really) and we had a really lovely time eating and drinking between announcements. I didn't get the award, but I'm really honoured to have made it to top four.

Thanks very much to the students who nominated me and to the Union and University administration for for organising such a splendid programme. 

Cut Price Robot Kit

These are all the bits that you get

These are all the bits that you get

I was up town visiting the Red5 gadget shop today (who'd have thought it) when I noticed they had robot kit at substantially less than half price. Of course I bought it. And I've already got plans for spending the money that I saved. Go me.

The robot is big version of the Hexbug tiny ones. It is remote controlled and is able to act intelligently. Sort of. A bit like me.

It's supposed to be suitable for 8 years and upwards, but I reckon you'd really need to be a few years than older than that or have a grown up assistant. There were a few stages where I could have used some help myself. Some of the parts are very similar to each other and their alignment is very important, something you only find out when you've built it and it doesn't work properly. Also the instructions can be hard to decipher, my advice would be use the ones you can find on the web site and zoom in on them a lot.

Reviews online are mixed, and I can see where the bad ones are coming from, but the robot is certainly impressive once it gets going. It has a definite preference for tiled floors, carpets cause it to get a bit stuck because its feet dig into the pile and make turning difficult. However, for the price I paid I reckon it is good value and building it was not a bad way to spend a rainy Saturday afternoon.

Windows 10 on Raspberry Pi

Windows 10 on Raspberry Pi works. In fact it works very well. You can deploy programs from Visual Studio 2015 into the Pi and they just run. You can even put breakpoints in the code while it is running, and remotely debug your code over an IP connection. Just like the "Good Old Days" (tm) when I was putting.NET Microframework code into embedded devices all those years ago. Except that Pi applications have proper .NET behind them and I can build a user interface using WPF.

The hardware connections are abstracted into classes, just like they should be:

const int LED_PIN = 5;
var gpio = GpioController.GetDefault();
GpioPin pin = gpio.OpenPin(LED_PIN);

This makes a pin that the program can use to interact with the outside world.

pin.Write(GpioPinValue.Low);

This sets the pin low.  A program can read and write the status of the pin and bind to events that fire when the pin changes state. This makes embedded development really easy.

Installation was smooth enough, although you'll need a PC running Windows 10 with Visual Studio 2015 RC to get started.

The walkthroughs are well written and accurate. You can get started here:

http://ms-iot.github.io/content/win10/SetupPC.htm

 One tip, if you have any problems getting Visual Studio to work after installation go to this page:

https://dev.windows.com/en-US/downloads/windows-10-developer-tools

Scroll to the bottom of the page and install "Standalone Windows SDK for Windows 10" and "Microsoft Emulator for Windows 10 Mobile". This fixed a few problems I had with stuff not installing properly.

I'm properly excited about this. I'm going to have a go at getting my Galileo to run Windows 10 as well. There are also bindings for frameworks that can talk over Bluetooth to Arduino devices.

Update: Turns out that Galileo doesn't run Windows 10 core, it uses the previous version of Windows. Apologies for any confusion.

The Thrilling Adventures of Lovelace and Babbage: Buy it

This is a completely brilliant book. The illustrations are fantastic and the research that backs up the content is exemplary. The book starts with the tragic and true story of Ada, Countess of Lovelace and her involvement with Charles Babbage, a 19th century inventor obsessed with the idea of using machines to perform mathematical calculations.

Ada has a background story that you really couldn't make up and the tale of how a poet's daughter became the first person on the planet to really think about what a computer could do is a compelling one.

Once the facts have been dealt with the action moves on into a parallel "Pocket Universe" where Lovelace and Babbage have built their huge steam-powered "Difference Engine" and are using it to solve mysteries and fight crime.

There are even jokes about cheese.

There are even jokes about cheese.

The narrative is littered with historical quotes and insights into maths and computing theory and gives a great introduction to what computers are about and where they came from. At the back you find get a series of appendices that supply plenty of historical context and by the end you really feel for the characters, in both their real and imagined forms.

Everyone should buy this book. It's just wonderful.

Vetinari Clock Complete

vetenari clock.PNG

Tonight I thought I'd build my Vetinari clock. It's a silly thing, but great fun.

Lord Vetinari is a character in the Discworld series of books by the now sadly deceased Sir Terry Pratchett. Vetinari, a powerful ruler of the largest city on the Discworld, has a clock in his waiting room which is designed to unnerve people by ticking irregularly. However, it still keeps accurate time. 

You can get a kit of parts to convert any quartz controlled clock into a Vetinari clock. It uses a PIC microcontroller to generate a sequence of 32 pulses of different lengths which give the appearance of randomness. But the clock still keeps time accurately.

I ordered mine a way back and, after my expensive trip to Ikea on Sunday, I finally got a clock mechanism I thought worthy of the conversion. Tonight I put it together and carefully connected the outputs from the circuit to the driver coil in the clock mechanism. It works a treat. If you are a fan of Discworld who likes soldering you might have some fun with this.

Hmm. Perhaps a video of the clock would make more sense....

The Mist in the Mirror at Hull Truck Theatre

Some time ago we went to see The Woman in Black. Great play. Go see it. The movie is apparently OK, but for proper scariness you should get to the theatre.

Anyhoo, the author, Susan Hill, has also written a book - The Mist in the Mirror - which has now been turned into a play. We went along to the Hull Truck last night to see it. Very good fun.

For me it wasn't as scary as the Woman in Black though. I think some of this is because the play is an adaption of a book. Books can have as many characters and locations as they like, because words are cheap. But a play needs actors and scenery and stuff. The company did a great job handling the number of different people and it was worth seeing just for the way that the staging worked, but when the same bloke turns up as the third different character in a row you start to notice this and it detracts a bit from the suspense.

The Woman in Black works well because it was written with these constraints in mind and for much of the play it is just two people, but for this production I just thought there were too many moving parts.

I didn't find the story worked that well either I'm afraid, with a whole bunch of exposition at the end that didn't really tie things up.

But having said that, I really enjoyed the night out. Hull Truck is a great venue and it was nice to acquire a bit of culture.

Springing a Leak

I hate water. I'd rather wire up a hundred mains plugs than do anything involving plumbing. Well, perhaps not a hundred. But certainly lots. Today I thought I'd to something simple involving pipework. And of course it all went wrong. After all, it does involve water. Hate the stuff. Have I mentioned this?

We have this fancy water filter thing under the sink and I figured it might be a good idea to replace the filter cartridge. Well, it has been a few years. So I carefully researched the item, bought a couple (in case I break one fitting it) and then successfully made the swap. In five minutes.

I was very impressed with me, as was number one wife. That was, until a puddle appeared under the sink. Turns out that the filter replacing shenanigans  had caused a completely different part of the plumbing to start leaking. I can only think that I must have dislodged something hair-triggered under there. I've tightened things and bent them into a position where I think the leakage has stopped, but I'm now researching replacement bits and bobs to fix the problem properly.

Some time ago I bought a flood alarm from Maplin. This is a little circuit that you can put under your sink and it will sound the alarm if it detects water that shouldn't be there. I got it because we had a rather unpleasant homecoming a while back involving a flooded kitchen. I never got around to fitting it though. I worked out that the only real difference it would make would be to change "coming home to a flooded kitchen" into "coming home to a flooded kitchen and an unpleasant buzzing noise".

I'm now researching Raspberry Pi powered solutions which would mean that in the event of a leak I could receive an email which says "You are going to come home to a flooded kitchen...", which might be an improvement I suppose.