The WRTnode is a great new open source hardware dev board that takes the guts of a typical home router and makes it hackable. It’s more than an Arduino, less than a Raspberry Pi, and very network capable. WRTnode runs the OpenWRT Linux distribution, which I’ve used in the past on some of my home routers (to replace the awful firmware that gets shipped by OEMs).

One of its neat little party tricks is that it can be used to share a WiFi connection to multiple devices, so as I type I’m making use of that to share a hotel WiFi connection between my laptop, tablet and phone.

Developing for the WRTnode

The WRTnode Wiki has a section on OpenWRT Development with a classic HelloWorld application that’s build from source, packaged into an ipk file and installed. I struggled with this because copy/paste of the make files from the web to my text editor stripped out the tabs, and make needs those tabs otherwise you get ‘Make error: missing separator’.

Introducing wrthelp

The WRTnode has a number of commands to simplify getting online, which are covered in the Starting section of the Wiki. That’s fine if you can see the Wiki, but what if you need reminders of the commands so that you can get online (in order to see the Wiki)?

wrthelp is a simple command line tool (adapted from the helloworld example) that prints out the key instructions needed to get the WRTnode connected to a WiFi access point. The Github repo contains the source code and details for how to build, install and run.


Getting a working SDK was something of a pain, so I should probably Dockerise the one that I have to make it easily accessible.

I’m looking forward to doing some proper hacking with WRTnode (probably at the ThingMonk hack day.)


1. The WRTnode SDK can be run in a Docker container using:

sudo docker run -it cpswan/wrtnodesdk

Take a look at the image and Dockerfile on Docker Hub and Github if you’re interested in the details.

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


Get every new post delivered to your Inbox.

Join 93 other followers