TL;DR checkout github-actions-runner running with rootless DIND on ubunu

This post follows my earlier post: Self-hosted GitHub Actions on ECS.

On reflection, my earlier implementation of “docker i̶n̶ outside docker” had many flaws. It shared state between runners and would have resulted in container name, network and other collisions. I continued to search for another solution and discovered that was what I thought was “docker in docker” was in fact “docker outside docker”, and that there was another way.

Jérôme Petazzoni has written a great article, worryingly titled: Do not use docker in docker for CI that discusses the two…


GitHub Actions are awesome, right? They’re not perfect — but what tool is? Some 3rd party CICD tools are probably better but they would have to be significantly better to get over the native/3rd party barrier. After thoroughly reviewing features and competitors I don’t think any 3rd party is significantly better and the native integration is first class. For better functionality, you would have to migrate completely (inc. VCS) to a different platform (eg. GitLab).

In order to use GitHub Actions at any scale, you need to deploy a self-hosted runner.

I’m an AWS guy, so let’s work out how…


Sauce Labs is an automated web and mobile testing cloud. They take on the difficulty of managing browsers, VMs, devices and emulators and allow you to concentrate on code.

The principle reason we moved to Sauce Labs was that we could not easily run Internet Explorer in our test environment (licensing issues/linux host). Our test suite was based around running selenium/standalone-chrome (and Firefox) in a container via docker-compose. This worked well and was very performant. The debug versions of selenium/standalone allowed you to VNC into the container were especially helpful.

There are two options to using saucelabs: i). You provide…


Mocha by design runs tests in series. Often this is not efficient and you might want to run some or all of the tests in parallel.

Mocha uses a wrapper executable under the hood, which runs the “real” _mocha executable. The _mocha executable is run via require('child_process').spawn. See bin/mocha. This makes it easy to run tests in parallel, in their own child processes with their own environment. We had success in two scenarios: i). inspecting the content of the files for the presence of a function and choosing whether to run them in parallel or series and ii). …


It may not be VBA anyone but I still stand by my original advice:

Excel formulas, the world’s most popular programming language, is now Turing-complete. Go check it out! — Satya Nadella — Microsoft CEO

I just got asked a classic question from a friend: “I’m thinking of learning a programming language. Which one do you recommend?”. Instead of recommending JavaScript, which is my normal response, I recommended VBA and Excel. Let me explain why. Please tweet me if you can: i). recommend a good learning resource or ii). …


I had a problem. I have been building a data analysis/visualisation app in Node/React for a client and have been sourcing my data from the undocumented/deprecated Yahoo Finance API. It turns out that (surprisingly) the undocumented/deprecated Yahoo Finance API doesn’t provide complete or consistent data for UK stocks (we’re interested in the fundamental and technical data points). So we had to find an alternative datasource, and boy was this hard.

We evaluated the following sources:

About half didn’t provide real-time or delayed prices (they only had historical) and/or didn’t provide enough fundamental/technical signals. Also some were far too expensive ($15k+…


tl;dr I spent a long time establishing that OS and hardware doesn’t matter. It’s all about whether I can run my code and being productive. Luckily for me, my preferred tech stack runs pretty much consistently across most devices. I believe that Samsung Dex is the best option in the phone/desktop like environment category. Dex works pretty well but it’s hobbled by poor third-party software support and the fact you have to carry a giant puck-dock with you when a simple cable converter will do.

I have a very specific problem: I like to spend as much time as possible…


  1. technology
  2. Quick Rave About CircleCI

I’ve just deployed CircleCI for a VetCraft , a client of mine. Continuous Integration and Delivery is always impresses me. It follows our GitHub repository and when we commit to the development branch, it checks out the code, downloads our dependencies ( Composer , NPM and Bower ), runs our build script ( Gulp for Laravel ) and runs our tests ( PHPUnit ). …

Type II Fun - The wafflings of Simon Mayes

Climber and Software Engineer. Passionate about mountains (especially winter sports), software engineering, people and the trivia in-between.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store