Here’s my presentation from

Weave is an overlay networking system for Docker containers. Whilst Docker can already link containers on a single host, Weave provides connectivity for containers that are spread across multiple hosts. It has been released under the Apache 2 open source license by Zettio, a new company targeting ‘apps for the zettabyte era’ founded by RabbitMQ creators Alexis Richardson and Matthias Radestock.

continue reading the full story at InfoQ


One of the big news items from last week’s VMworld was the launch of EVO:RAIL, a ‘hyperconverged infrastructure’ reference design with software from VMware and hardware from a variety of partners. The RAIL part of the name comes from the smallest unit of deployment that fits into 2U of standard rack space, and onto a single rail within that rack. EVO:RAIL is described as delivering ‘compute, network, storage and management’, and it’s worth picking apart what’s going on in each of those areas.

Continue reading at The Stack

This is my first longer article for InfoQ (rather than being a news item), and it’s intended to be a comprehensive backgrounder on Docker: ‘an overview of the Docker journey so far and where it is headed along with its growing ecosystem of tools for orchestration, composition and scaling. This article provides both a business and a technical point of view on Docker and separates the hype from the reality.’

continue reading the full article at InfoQ

I got my Lenovo X230 when I started with CohesiveFT almost 18 months ago. I’ve generally been very happy with it, but the cracks are starting to show – literally:

Frame above wrist pad coming away, and also a hairline crack at the top of the ExpressCard slot.

Frame above wrist pad coming away, and also a hairline crack at the top of the ExpressCard slot.

Not as robust

I’ve had a succession of ThinkPads – T20[1], T41, X60T, X201T, a loaner X220 from the good people at Bromium, and now my X230. They’ve all been pretty indestructible apart from the X230. The screen has always felt a bit flimsy, but now other bits are falling off it. Earlier in the week the ThinkPad logo on the wrist rest came off:

Look closely and see the marks from the superglue I used to put this back

Look closely and see the marks from the superglue I used to put this back

and now I see that the indicator cover for the top LEDs has gone missing:


I don’t think I’ve been treating this one any harder than other ThinkPads I’ve owned, so I can only conclude that build quality is being compromised. I’d also note that my other Thinkpads have generally done 3 years of service before being retired, meaning that this one should only be half way through its journey. It also needs a new battery, as endurance has fallen from 5hrs to just over an hour – at least the battery is replaceable (and not too expensive).

The reason I got it in the first place

I chose the X230 because it can take 16GB RAM (and because I know from experience that 8GB isn’t enough for my typical usage). The newer X240 only takes 8GB RAM, which seems to me a significant step back.


From the Crucial memory configurator

I’ll soldier on for the time being

As there really aren’t any great alternatives. I quite liked the Dell XPS13 that I got on loan a little while ago, but that also tops out at 8GB RAM. At a push I might go for a 13″ MacBook Pro with 16GB RAM, but what I really want is an 11″ (or better still 12″) MacBook Air with 16GB RAM (and a 1TB SSD[2]). My fingers are crossed that after this year’s Intel Developer Forum we see some serious machines with lots of RAM and storage in a lightweight and robust package (and not more gimmicky convertible tablety things).


[1] My T20 survived an incident where a Newark taxi driver slammed the trunk down on my bag carving a gouge into the lid of the laptop. I’m pretty sure that most lesser machines would have been smashed to bits by that. My T20 came through with a scar, but it had no effect on how I used it, and it delivered a few more years of reliable service.
[2] I recently swapped out the Samsung 840 500GB SSD that I put in when I got the X230 for a Samsung 840 evo 1TB mSATA SSD. The process was pretty painless as I was able to have both drives in the laptop at once. Having completed the migration I moved the new SSD to an mSATA to SATA adaptor, as the mSATA port on the X230 is only SATA2, so I was missing the full (and impressive) speed of the newer drive.

Before writing my InfoQ story about Flocker I ran through my now usual process of getting my 3 tier demo[1] working on it (in addition to running through the getting started guide[2]).

What I found is that Flocker doesn’t yet support multi container apps, but then it is only at release 0.1 (and proper multi container support if promised for 0.2). It was however possible to get things working with a little hacking.


Flocker is made for running stateful apps, so getting MySQL working was pretty straightforward. I created the following files:

"version": 1
  "": ["mysql-volume-example"]
  "": []
"version": 1
    "image": "cpswan/todomvc.mysql"
    - "internal": 3306
      "external": 3306
      # The location within the container where the data
      # volume will be mounted:
      "mountpoint": "/var/lib/mysql"

To get it fired up I then ran:

$ flocker-deploy mysql-deployment.yml mysql-application.yml

After something of a wait for my container image to be pulled from Docker Hub I had a running database that I could connect to with the mysql client. I then created an alternative deployment file and moved the database to another host:

"version": 1
  "": []
  "": ["mysql-volume-example"]
$ flocker-deploy mysql-deployment-moved.yml mysql-application.yml

Some further testing confirmed that the database was working. I could even connect to the other VM and use the Flocker proxy to get through to my container.

App and Web Servers

I used ssh to connect to the Flocker VM running the database and attached the app and web servers in the usual way:

$ docker run -dp 4567:4567 --name todomvc_app \
--link mysql-volume-example:db cpswan/todomvc.sinatra
$ docker run -dp 443:443 --name todomvc_ssl \
--link todomvc_app:app cpswan/todomvc.ssl

A quick test with a web browser attached through and SSH port forward confirmed that everything was working.

I then had a go at moving the database again, which got me a screen full of SQL errors. The app server could no longer connect to the container it had linked to, and the Flocker proxy wasn’t helping.

Hacking the link

The app server is configured using environment variables that are populated by the Docker linking mechanism, so DB_PORT_3306_TCP_ADDR gets set to something like Using a slightly different command line this can be set to use the local Flocker proxy rather than connecting directly to a container that might not stay there (after stopping and removing the todomvc_app container):

$ docker run -dp 4567:4567 --name todomvc_app \
-e "DB_PORT_3306_TCP_ADDR=" \

With that done the app server was able to connect to the MySQL database, whichever VM it was running on.


[1] I’ve also put the demo onto Fig and Panamax.
[2] Luckily I already had a Linux machine with VirtualBox and Vagrant all set up after playing with Panamax over the weekend.

Flocker is a volume and container management system for Docker based on ZFS. It allows for stateful containers, such as databases, to be moved between virtual or physical hosts. This provides a capability that is analogous to the live migration features of some virtual machine hypervisors. Version 0.1 has been released by ClusterHQ as an Apache 2.0 open source project.

continue reading the full story at InfoQ

Just as I did with Fig I had a go at composing my three tier demo app with CenturyLink’s Panamax as I was writing my InfoQ piece on the launch.

You can see the resulting todomvc.pmx template file in GitHub (and see that it’s very similar to my fig.yml), but it’s a visual tool, so let’s look at some screenshots, starting with an overview of the service:

Panamax ToDoMVC

Zooming in, the template is made up out of three underlying services:


I started out with the mysql service, which is why it has the _latest suffix dangling there. I could edit it out, but didn’t bother. Clicking on that service the only things that matter are the EXPOSEd port and the volume mapping:


It will be interesting to see what Panamax adds under the hood for volumes, as right now the mount point needs to be created manually, and such things don’t play well in multi server deployments.

The Sinatra app server needs a link back to the database in addition to exposing its own port:


Finally the container with Nginx for SSL termination links back to the app server and binds to port 443:



Because the whole thing is running inside VirtualBox it’s necessary to do another port forward. The instructions for that are included in the template and can be brought up on screen:


Having set the application up I then entered a GitHub token in order to allow it to be saved as a template.

Give it a try for yourself. Add cpswan/panatest to your sources:


Then search for todomvc:



CenturyLink has launched Panamax, a tool that they describe as ‘Docker Management for Humans’. Panamax distinguishes itself from other composition tools for Docker by offering a web based user interface, which can be used to compose multiple Docker containers into templates that can then be shared on GitHub. Alongside the launch of the open source project CenturyLink are running the ‘Panamax App Template Challenge 2014’, a competition offering $100,000 in prizes for the best submissions across a variety of categories.

continue reading the full story at InfoQ

Panamax ToDoMVC


I hacked together my own USB shaver charger using a cheap DC-DC converter I bought on eBay, so fewer worries (and things to carry) next time I’m travelling.

USB shaver cable


I use an electric shaver most days, and I travel a fair bit. Usually the battery is enough to get me through a trip, but if I’m away for weeks then I need to recharge.

The charger that came with my shaver (in the UK) is a European type like this:

340 Charger

If I had a US charger, I’d be fine, because most places in Europe have both types. Sadly the reverse isn’t true, so it’s less common to find European sockets in the US.

To make things worse the European shaver plug looks like a Swiss style plug, but actually has larger prongs, so it doesn’t just fit into a multinational adaptor. Here’s the hideous jury rig I had to put together on my most recent trip to get a charge:

Shaver charging hack

That photo has a European shaver charger, a euro to UK adaptor (from my wife’s GHDs), a Swiss World Travel adaptor, and an elastic hair band.

I’ve thought in the past that it would be a good idea if somebody like iGo did shaver tips for their travel chargers, but that hasn’t happened. Of course most smaller devices these days use USB for charging.

USB shavers

They do exist, but they don’t look great. I’ll stick with my Braun.

Why not USB?

It’s a mystery to me why the shaver manufacturers like Braun, Philips etc. haven’t shifted to using 5v for charging and supplying a USB charger. I guess they’re stuck in the same place the mobile phone makers were a decade ago (before the European commission mandated microUSB).

The solution

My shaver charger is 12v at 400mA. I got a MC34063A based DC-DC converter module from eBay for £1.68. It’s claimed to be 78% efficient and can output up to 1.5A (though it’s recommended that it’s only pushed to 800mA).

Crunching the numbers:

12v * 400mA = 4.8W

4.8W output/ 78% efficiency = 6.15W input

6.15W/5V = 1.23A

1.23A is well inside the capabilities of a typical USB travel charger for something like a tablet, and even a more mundane 1A charger is likely to be sufficient – worst case the shaver will charge fractionally slower.

The voltage converter came already set up for 12v, so it was simply a matter of dismembering an existing charger cable, and a spare USB cable, followed by a quick bit of soldering and heat shrinking. The picture at the top of the post shows the finished article (with the coiled shaver cable wrapped around the USB charger cable to keep things tidy).


At the moment both cables come out of the same side of the converter, and it would be better if it was just a bump in the wire; and that bump could be more elegant than a lump of heat shrink encased electronics.

I’m probably not going to bother polishing this thing any further myself. It works, and I’m happy with it.

Maybe some enterprising Chinese manufacturer will come up with something properly designed, with variants (or even interchangeable plugs) for different shaver types.


Get every new post delivered to your Inbox.

Join 92 other followers