I recently enabled Dependabot to help track updates to my dependencies and keep them current. The user experience has been a pleasant one with simple configuration and timely pull requests but I’ve quickly come to dread one specific thing - the Updating Of The Rubocop. I have quite a lot of ruby bases repositories and I like to use rubocop as a basic safety net and second set of eyes so it’s in heavy use, which is great until the version changes. Read on →

I’ve had a half written draft of this post sitting in a folder for the last six months and I’ve not been able to shake the root cause so I’m going to publish it and see what the feedback teaches me. But first the heresy - Service Level Objectives make me uncomfortable. I have no issue with the idea that you need some form of measurement and tracking to ensure you’re maintaining an acceptable level of service but when reading posts on SLOs, or watching recorded conference sessions, the concept seems to imply some rigour and background process to determine the numbers to work towards that feels decoupled from any hard details and often comes across as either a guesstimate or just a Current Representation of Actual Percentages. Read on →

I have a small pile of old Ruby based Puppet modules and extensions that I don’t use anymore but have had some adoption and so thanks to an over abundance of guilt I make the occasional attempt to ensure they are still working and kept vaguely up to date. With the GitHub acquisition of Dependabot, an automated dependency update service, I decided to enable it for a few repos and see how it fits my work flow. Read on →

Travis CI has long been my hosted continuous integration service of choice for my open source repos but there have been some recent changes and departures that inspired me to look around and see what else the modern world has to offer. I run a local Jenkins for my own personal use but it’s not hardened to a degree where I’d trust it to run random pull requests from the wild internet so a hosted, free, solution would be an ideal place to start from. Read on →

Sometimes it’s the least expected ideas that grab you. Since writing the Building the Organisation Graph introductory post the concept behind it, allow easier adhoc querying of organisational data and stop putting everything in Google Sheets, has repeatedly popped up as I do my now essentially non-technical role. I’m not sure if it’s the idea itself or the timing of not really having anything hands on to keep my mind busy with but over the last month I’ve found the occasional 45 minute time slot to add pieces of functionality here and there. Read on →

I mentioned pyenv in my post about Python print syntactic sugar and I received a few questions about what it is and why I use it so I thought I’d do a brief followup post about the why and how. Having worked with ruby developers a fair chunk over the last few years I’ve had some exposure to a tool called rbenv, which provides a way to have multiple versions of ruby installed for your user. Read on →

While it’s said a lot of Open Source software is written to scratch an itch sometimes it’s written to stop that gentle but persistent itch behind the back of your eyeball that makes you twitch every time a subject comes back up. After another quarterly set of changes, teams, missions and all the associated admin overhead and metadata I decided I could no longer face a disparate, possibly consistent but probably not, batch of un-version controlled Google Sheets. Read on →

Since Python 3.6 introduced f-strings I’ve been trying to shake the habit of using .format I developed when re-learning python 2. As I work in a number of different languages I find the embedded {foo} syntax to be more familiar and less special case in nature, much nicer than the older % without parens with one argument and with parens with two, and in general more flexible. So I was pleasantly surprised when one of the shinier new f-string features came up in conversation. Read on →

As a young teenager there was a local second hand bookshop I’d frequent and develop what seems to be an ongoing interest in science fiction and fantasy books and Marvel comics. They didn’t have a massive selection of the first two but over the years I managed to stumble my way onto some of the classics such as Arthur C. Clarke, Asimov and Mercedes Lackey. The ultimate doom of my limited pocket money was the timing of my first Forgotten Realms (FR) novel, Spellfire, and the creation of an Advanced Dungeons and Dragons (2nd Edition) group at school. Read on →

She started the Android update and took the knife from the sideboard, knowing he had no chance of calling for help over the next 20 minutes. The cracked screen, caked in his dried blood and still clutched in his desperate hands, was the only witness to what had happened. The last words he saw were, ‘Optimising app 18 of 148’