Why always Docker?

Sun 17 January 2016

I love Docker. I've recently spent a lot of time learning about both Docker & Kubernetes. Combined with stateless containers they provide fantastic scalability, service discovery and near-instant deploy times (excluding initial image build!).

There is a trend, however, of using Docker containers for everything, and this makes no sense to me.


Let's look at an example - running a Docker Registry (v2). I want to:

  • Run a single instance of the Go binary
  • On a box with huge disk space & bandwidth
  • And relatively low CPU/memory

I don't want such a box in my Kubernetes cluster (it's a one-off), and I need none of Dockers scaling properties, so I'll run it direct on hardware.

Well, guess what? There's no install instructions for that. In fact, the "official" way is use the Docker image. Luckily the Dockerfile isn't much more than a limited shell script, so following the trail of docker/distribution -> Registry Image -> Dockerfile I was able to recover manual install instructions (all two of them).

Read more →

Luapress v3(.2)

Mon 14 December 2015

Recently static website generators have been gaining lots of attention. Inspired by this I have been working on a new major Luapress version, targetting some of the annoyances I find when building this blog with it. A couple of weeks ago I released v3 and two additional minor versions; this post runs through some of the more exciting features and changes:


With v2, you could pass in a URL to build against, and manually switch from the default build output directory using --build. v3 removes this option in favour of environments defined in config.lua. For example, this site's config:

config = {
    -- Default URL (pointing to default build/ output dir)
    url = 'localhost/Pointless Ramblings/build',
    envs = {
        -- Build against this URL, outputting to production/
        production = {
            url = 'http://pointlessramblings.com',
            build_dir = 'production'
Read more →


Sun 25 October 2015

selected.js is a dependency free <select> replacement. It supports both single and multiple select boxes, has a tiny JS & DOM footprint and is incredibly easy to style.

Setting this up is as simple as:

<link type="text/css" rel="stylesheet" href="selected.min.css" />
<link type="text/css" rel="stylesheet" href="selected-light.min.css" />

<select multiple class="selected selected-light">
    <option>Option one</option>
    <option>Option two</option>

<script type="text/javascript" src="selected.min.js"></script>
<script type="text/javascript">selected.init();</script>
Read more →