from-free-work-phone-to-life-balance-complaints-in-2-easy-steps I’ve spotted a small but recurring pattern among some of my friends, their on-call responsibilities, and the gradual erosion of their work life balance. It all starts innocently enough with the ceremonial signing off of the new work phone. The keen new employee goes to the Corporate IT team and gets given a 2 or 3 generation old, locked down, mobile phone. It normally comes with the trinity of features, a slightly shonky battery, a larger than expected physical presence and a decent bandwidth package you never have to pay for. Read on →

Next in my unhurried investigation of hosted build systems for my small collection of Free Software are GitHub Actions. A fully hosted task runner that can Build, test, and deploy your code right from GitHub. As someone not exclusively using GitHub to manage all their source code the idea of being completely tied into a single provider isn’t a great one but the technology looks interesting enough to justify running a few simple experiments. Read on →

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]( source-continuous-integration-solution/) 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 →