James Turnbull


If I had my hand full of truth, I would take good care how I opened it

Old skool Bash tips

Here are some old skool Bash tips and tricks that I think I wrote for someone about ten years ago. Extended globbing… The first function we’re going to look at is extended glob matching. This nifty option allows you to do more sophisicated glob matching than provided in standard Bash, for example match all files except those with a suffix of .tmp. Extended globbing is enabled via the shopt, or shell options built-in:


I’ve been planning to take a look at Ballerina for a year or so now. Ballerina bills itself as a “Cloud Native Programming Language”. It is designed to make it easy to write microservices with integrated APIs. Ballerina is an open source, compiled, statically and strongly typed, language. If you’ve written any Java and, to a lesser extent, Go, it’s going to feel familiar. It comes with a concurrent execution model and is built with a set of pluggable imports for systems integration, for example plugging in third-party APIs like Twitter or adding a database backend.

Working with Yakuake

In the great Linuxification of 2018 I played around with a bunch of desktops. I eventually settled on KDE’s Plasma (don’t @ me), of which the new 5.13 release is very shiny. Naturally, I also spent in an inordinate amount of time looking at terminals. I spend a lot of my life in one and on OS X I really only had time for iTerm2. I’m pretty picky about UI/UX and have some specific layouts I want like split windows and multi-tabs.

Dell XPS 13 AKA 2018 is the year of Linux on the desktop

Back story… I’ve owned and used Apple laptops for over ten years now. I spend a lot of time writing code and prose and I need a reliable platform that runs something Unix-like and just works. I’ve regularly upgraded to newer devices to take advantage of better performance and new capabilities. The last upgrade I undertook was to the new Macbook Pro with a touch bar. My initial reaction was pretty poor.

Sending logs from AWS ECS using Logspout

When we first implemented Amazon EC2 Container Service (ECS) one of our key requirements was centralized logging. As we expand the number of services we run in our production and sandbox environments, it has become increasingly important to understand what’s happening with each service and the interactions between services. We also use a service, called Wombat, to collect events from our front end React applications. Wombat collects events which we use for monitoring, diagnostics, metrics, and which we also want to correlate with our backend services.