UUIDs are a 128-bit number, represented as groups of hexadecimal digits, separated by - characters. For example, a UUIDv4 looks like 62b5dcd2-1549-4e1c-8315-0e83b2518b35. They're primarily intended as identifiers, and they have a few versions that have different properties. I'm going to focus on UUIDv4 here and why you might not need them. Side...
If you can see them, you know where you are. At civil twilight the Sun goes down, but its light diffracts through the atmosphere so you can see the horizon clearly. Assuming there are no Earth-based obstructions, like trees, mountains, or buildings in the way. This is helpful because the sky is dark enough to see stars (and other objects) but the...
Bottom line up-front, I think there are at least 4 types of estimate: Delivery date Cycle time Dev-time Relative I only intend to define these here, not advocate for any specific type. Delivery date Estimates like "we'll have it to you by 2024-Oct-01" are delivery date estimates. They're pinned to a specific date in the calendar and most often...
There have been a couple of posts on Statistical Process Control (SPC) recently. The most common objections are that you can't measure software development, that software development is too intrinsically variable for these techniques to be worthwhile, or the measures have no effect on outcomes that matter (e.g., Free cash flow (FCF), return on...
About a year ago, Amazon Music switched their offering to a "shuffle-only" model. This is fine for most albums, but there are some albums that I love to listen to in-order. Think, Miles Davis' "Kind of Blue" or literally anything by Tool. I'd been a Prime subscriber for well over a decade, but I wasn't about to pay extra for a feature they'd...
In the Twelve Factor App, section III. Config, Wiggins writes that config should be stored in environment variables, including "Credentials to external services such as Amazon S3 or Twitter". However, this neglects one important aspect of service-to-service credentials: rotation. Credentials are one of the few configuration values that need to be...
On 2023-Dec-31, Keybase had an outage because a TLS certificate expired. Expired TLS outages have happened at GitHub, Oculus/Meta, Microsoft Teams, and Vim. It doesn't seem to matter if you're a large organisation or an Open Source project. Expired TLS certs keep causing outages. I've even seen automated renewal systems fail from time to time....
In the noughties, I found a blog post that showed how to setup vim as a Python IDE. I lost that config and I've been on the look out ever since. I've also been looking for the "components" of it -- what gave the file explorer? How did it split the screen? etc. Today, Ben Eater released a video about writing a BIOS for his homebrew 6502 computer....
Changes aren't free. They're low cost, but not free. Changes are also risky, any change can cause an outage. Many places require code review for every change, so it's not just your time you're choosing to spend. I apply two rules and a judgement call. I make a change when: It moves us towards a new customer feature. It fixes a customer-relevant...
Back in the day, at $Job-N, I was "in charge" of security things. This was after the Heartbleed fiasco, so we were trying to get our ducks in a row. We decided to regularly patch our Debian "fleet." We had 3 or 4 servers at that time, one of which was our test server. Each of the live servers housed 2 to 5 customers, depending on customer size....
I've worked with Terraform for about 1.5 years now and I'm not impressed. I think I was spoiled by Amazon's internal (and later, external) tools. Terraform unfortunately falls short in many (fixable!) ways. Let's get into it. Open-loop control Open-loop and closed-loop control is a concept from control systems. An open-loop control system makes...
Let's start with a thought experiment. Someone says you can bet $100 on a loaded coin flip. You get $200 if you're right and lose your stake otherwise. You can also decline to bet. Ignoring the the really deep questions like "why is this weirdo carrying around a loaded coin?", "if they're offering me a bet they expect to profit, right?", and "how...
Small businesses have less capital than larger businesses, so they need better judgement to manage that capital. A string of unlucky outcomes can wipe out a small business more easily than a larger business. We can use the Kelly Criterion to see this in action: When you don’t have a lot of capital, each “bet” takes up a larger fraction of your...
What is noise in software estimates? Noise is the variability in human judgements, either between people or when people disagree with themselves. With software estimates, this is the difference between people's estimates, or unjustified changes to an estimate. For example, I led a small project with 2 other devs to add a feature to a system. At...
I recently bought a Retroid Pocket 2 from GoRetroid for USD 132.00 including all shipping and taxes. The Retroid Pocket 2 I've made a few crossings on the ferry since then and it's been really nice. I used to play my GameBoy (Advance) almost every day on the bus to school. I loved it. Getting this back is a huge throwback. It's a lovely little...
We have a beautiful fur baby. Her name is Figueroth Turner-Hallow (Fig for short). She was born on 2022-01-23. Her dad is a border collie and her mum is a border collie-corgi mix. On the ferry ride home Big eyes on the sofa Snoozing on a cushion on the sofa Bean tax We love her with all our heart.
I spotted two misleading statistics on CBC yesterday. I think that both have a similar cause: there wasn't enough context for the reader to easily see that they were being misled. Vaccine efficacy: just, like, your opinion man On 2021-Dec-03, CBC News posted an opinion piece that argued public health measures are "government overreach." As part...
In my previous article on audiobooks I showed a short script that converts *.mp3 audiobook files into much smaller *.ogg files. At the end of that article I mentioned that I have a very ugly process for handling whole zip archives of audiobooks. Today I show another terrible shell script! You guessed it, it fixes some of the problems of my first...
As far as possible, I track all of my work time. Meetings, projects, tickets, Slack, email, filing expense forms. Even my breaks (lunch, snacks, or otherwise) are timed. What good is time tracking? I have one big reason and one small reason for timing everything. First, I need to be able to look back and answer the question: "did I waste my...
We use barcodes to track many physical things. Groceries, over-the-counter medications, computer parts, housewares, books, CDs, DVDs. Barcodes even make their way into weird places. My health card has a barcode on it, as does my library card. Even some medical samples get a barcode. Barcodes are everywhere. An example UPC-A barcode Recognise me?...
Finally safe Just like before this was a very simple affair. I went through a fast and efficient two stage queue, got my vaccine, waited to see what happened for 15 mins, and left. I did a sudoku while I waited, it was that uneventful. What this represents to me is more important. I am not at-risk and I am only fully-vaccinated because of where I...
Let's say that you want to record the day's mean temperature accurately. You hook up a temperature sensor to an analogue-to-digital converter, then record that value with a Raspberry Pi. When building this kit, you measure the output of your temperature sensor with your Fancy oscilloscope, and see a signal: A continuously-varying signal between...
I recently got my basic amateur radio certificate. It was a lot of fun and I want to share some of what I've learned. I found this information hard to find or scattered, so I'll take a run at it. This blog post explains how CW works conceptually, not how to build a CW transmitter or receiver. What's CW? CW stands for "continuous wave", which is a...
The good A lot of good things happened to me this month. Most of them were down to chance, but I trace a few of them to my own decisions and actions. I got vaccinated! This is our first step towards getting back to normal. My partner and I have started planning where we'll go, date nights, and so on for when we've had our second dose. We're both...
I've never been able to build a tone generator or the lines on any platform. I understood that cat /dev/urandom | /dev/dsp made a white noise generator, but that was it. Times have changed, and I want something more sophisticated. Tools We'll use a few tools: Rust -- because I want to learn it better pacat -- To send our sound to the speakers sox...
I feel like this should be a huge thing, but it was a simple affair. Understated importance I got my dose at the Victoria Conference Centre. There were Canadian Red Cross vounteers helping to check folks in, give sanitiser, etc. There were two queues; both single file, multi-server. The first queue went to the registration desk. From there, you...
Montano posted photos from the Tuscaloosa Tornado. Looking over the photos I saw a few had damaged buildings with a weird 'X' marking on them. I didn't understand it, so I looked it up! My search took me to the National Urban Search & Rescue (US&R) Response System Rescue Field Operations Guide from the Federal Emergency Management Agency (FEMA)....
I listened to Chesley B. Sullenberger's memoir "Highest Duty: My Search for What Really Matters". It is a clearly written memoir, with both humour and heartbreak. The good Sullenberger recounts many of his experiences: learning to fly, his military career, significant events in his personal life, and the events of Flight 1549. It felt...
Today, I sat my Canadian Basic Amateur Radio exam and passed! I have chosen the call-sign VE7YRK. VE7 is the "area prefix" for British Columbia. YRK is to link back to my home area, Yorkshire, UK. In this article, I'll explain how I studied. History I built small receivers (and the odd low-power transmitter) when I was a teenager. I also played...
The good So far, my self-care has been going well. I generally feel much better. In January I recorded 11 "negative moods", 8 in February, and only 4 so far in March. 3 data-points isn't enough to call a trend, and I'm not yet willing to rule out the improving weather. It's encouraging none-the-less. My partner and I have had some wonderful times...
On 2020-Mar-03, I left work with a headache. I think I'd not slept well the night before or something. I went home and slept on the sofa until my headache went away, then I did some more work. I went into work once more before 2020-Mar-13, then the stay home order came down in BC. A week or so before my headache, I sat on my bed and confessed to...
This was a little bit of trial an error. First, I tried Aurora Net, but I couldn't hear anything. I tried VE6SLP's KiwiSDR, and I still couldn't get it. One day I thought it'd be nice to have some "company" while working, so I loaded up VE6SLP's site around 15:00 Pacific time. I found folks on Aurora Net, including some British Columbia call...
I listened to Malcolm Gladwell's "Talking to Strangers" recently. It's made it onto several best seller lists and received good reviews generally. It falls disasterously short. The Good Gladwell says that the audiobook is like a "well polished podcast." He's right, he narrates it well and the music choice is good. Where possible, he includes...
I am a bit of a digital pack-rat. I buy fairly large disks for my machines, then never upgrade. I hate moving computer almost as much as I hate moving house. I am constantly at or near the limits of my disks. This usually isn't a problem, but it's presented a unique challenge for audiobooks. I found out that I rather enjoy them, but I don't...
I had great fun building simple radios as a kid, I even had a CB radio. I didn't set it up again after we moved house. I didn't use them all throughout my late teens or either of my degrees. Eventually, I left them in the UK when I moved out to Canada. Enter RTL-SDR I bought an RTL-SDR, a cheap Software Defined Radio (SDR) receiver. I also got a...
This originally appeared on my Medium on 2018-Jun-30. Sometimes the shit hits the fan. You need to stop the HIT going to more workers and you need to stop it now. This is what an Andon is for in manufacturing. Cancel, stop, abort, or otherwise halt immediately. This happened to me tonight. I setup an academic experiment as a HIT, piloted the test...
I estimate there is 8% probability of the WHO declaring a new pandemic in any given year. I estimate it's 7% in 2021. Historically, there is an 8% chance of the WHO declaring a new pandemic. An on-going pandemic does not stop a new one starting, but COVID-19 controls may help stop an outbreak, like the it has made this year's flu activity much...
This originally appeared on my Medium on 2019-Mar-28. This is not my story, but it is one I’ve seen it several times now. It’s a story worth telling because it happens time and time again. It is an excellent example of deeper problems in software and systems engineering. Let’s follow a system’s growth over several years to explore the problem. In...
When the on-call's pager goes off, they should be able to react quickly. If the system has a lot of false alarms, they may waste time checking if there is a real problem. If there are too many false alarms, the on-call may need prioritize some pages and ignore others. This lowers system availability as the time-to-repair increases. There's also...
GJOpen asks: "Before 7 May 2021, will the Bank of England set its Bank Rate to below zero?" I estimate the probability that Bank of England will set its Bank Rate below 0 is 6%. Base rate Since 1900, the Bank of England has released over 400 rates. It has never released a negative bank rate. Naively, the base rate is less than 1%: >...
Theme? A theme is similar to a new year's resolution. Most folks set new year's resolutions to accomplish something, like losing weight. They're the reason gyms are packed in mid-January and ghost towns by April. A theme sets a broad direction, something to think about throughout the year. It's hard to fail at a broad direction, so you're less...