April 2021



As the weather has improved it’s been great to get out and about more with Max.

We also had some fun with his mother Nellie coming to visit.


The new job means I’m back to writing code a lot more. One of my first adventures was into using the ZeroSSL API to automate TLS certificate creation where the prototype I hacked together in Bash needed a complete rewrite with Python.

I also put together a tool for automating label sync across GitHub repos (more about that on an earlier post).

As I spend more time reviewing code I’m planning on writing a bit about that – it seems many of the lessons I saw being learned the hard way with Java 20+ years ago are playing out again for Dart and Flutter.


I’ve been interested in Rust for a little while, and Take your first steps with Rust on Microsoft Learn is an awesome resource, particularly the memory management module (which I’d commend to anybody developing on a VM language like Java or Dart, as it’s good to be reminded what the garbage collector is doing for you, and the costs that might be involved with that).

Open Source

Another excellent resource on Microsoft Learn is the Build community-driven software projects on GitHub learning path, which wraps around some great GitHub based material.


After some months in the works the Tech Debt Burndown Podcast that I’ve been collaborating with Nick Selby on is now live. Get it on your favourite podcast app.


I had a go at smoking some brisket, which I think turned out pretty well for a first attempt:


I’ve written about leadership on this blog before, as I think it’s an important topic.

Listening to ‘Randall Stutman: The Essence of Leadership’ [The Knowledge Project Ep. #96] was one of those aha moments – I’ve been doing this stuff and trying to get better for over 30 years, and that’s what I’ve been missing. I’m going to give the sample lessons on Admired Leadership a try and see if I’m up for the $1000 package.

Along similar lines I’m enjoying Gene Kim’s interview with Admiral John Richardson – Leadership Development and Balancing Creativity.

Raspberry Pi Stuff

Since I’ve been back into Python I went back to my sous-vide code and updated that to Python 3.

Beating Beat Saber

VR workouts were back for April, and I was delighted to find that a new free set of levels had dropped with OST 4. They’re not easy either, so it will take me a while to clock up those Full Combos at Expert. Meanwhile I finally got the Full Combo at Hard on Ghost in the Camellia pack, and I’ve also been able to crack a few more at Expert on the Green Day pack (just Father of All to go).

I was on a sprint planning call last week where it felt like we spent way too much time getting the labels in our various repos straightened out.

After a little Googling I found various scripts that use the GitHub API to manage labels. But nothing that seemed easy enough. So… I pulled together my own repo of scripts – atsign-company/labels, which we have now open sourced.

When a label is added to that repo it fires a GitHub Action that pushes the new label to all the repos listed in a config file (in our case atsign-foundation.yaml for our open source repos).

Thanks to Olivier Jacques for pointing me to the ability to start an Action from a labels event, and to the DXC DevOps Dojo team for having a nice labeling script as part of the Welcome module.

After a few months in the making Nick Selby and I today launched the Tech Debt Burndown Podcast, where we talk to each other and guests about Tech Debt and how to deal with it.

Tech Debt Burndown Podcast Logo

Please subscribe at Apple PodcastsSpotifyiHeartRadioSpreaker or wherever you get your podcasts.

The @ Company uses a lot of SSL certificates, and we’ve been using ZeroSSL and its Certbot wrapper zerossl-bot to automate how we manage certs. But we wanted more control over the process, which has driven us towards the ZeroSSL API. Sadly the docs don’t provide usage examples, which has made it quite a journey to figure out how things work.

After LOTS of trial and error I have a script that generates and downloads a certificate, which I’ll walk through block by block below. The whole thing is at this gist.

I’m using bash, so we begin with a shebang:


I’ll probably end up writing the final script in Python, or maybe even put together a Go or Dart app, to provide error checking and retry logic.

I’m using the Digital Ocean API for DNS (other DNS providers with APIs are available), as it’s fast and well documented. Both APIs need keys, which should be stored in a secrets manager rather than a script:

# API keys for ZeroSSL and Digital Ocean
# These particular keys are fake random hex

The script sets a base (sub)domain, and takes a single parameter of the certificate name to be created:

# Set root domain and take CN from params

We need a certificate signing request (CSR). The ZeroSSL docs point to a web form that generates CSRs, but anybody using an API will want to have a more automated way of doing that bit, such as:

# Create CSR and Private Key
openssl req -new -newkey rsa:2048 -nodes -out "$CERT_NAME".csr \
            -keyout "$CERT_NAME".key \
            -subj "/C=GB/ST=London/L=London/O=Example/OU=Testing/CN=$CERT_NAME" \

With the CSR prepared it’s time for the first call against the ZeroSSL API to draft a certificate. The hard part here was figuring out how to pass a CSR into the API, but thankfully recent versions of curl have an option to URL encode data directly, and I’m using the @ operator to pull in the CSR from the file generated in the last step:

# Draft certificate at ZeroSSL
curl -s -X POST https://api.zerossl.com/certificates?access_key="$ZEROSSL_KEY" \
        --data-urlencode [email protected]"$CERT_NAME".csr \
        -d certificate_domains="$CERT_NAME" \
        -d certificate_validity_days=90 \
        -o "$CERT_NAME".resp

The response then needs to be parsed to extract the certificate ID and parameters for validation, in this case for the DNS CNAME method. Since it seems necessary to modify DNS to make use of the HTTP(S) methods this look like the simplest way.

I tried using jq to parse the JSON, but it’s an extra dependency, and seemed to sometimes mangle CNAME parameters. The combination of sed and awk isn’t great, but does appear to work for this limited use case:

# Extract CNAME parameters from ZeroSSL response
ID=$(< "$CERT_NAME".resp  python3 -c "import sys, json; print(json.load(sys.stdin)['id'])")
CNAME_HOST=$(< "$CERT_NAME".resp sed -e 's/[{}]/''/g' \
        | awk -v RS=',"' -F: '/^cname_validation_p1/ {print $2}' \
        | sed -e 's/"//g' | sed -s s/".$DOMAIN"//g)
CNAME_ALIAS=$(< "$CERT_NAME".resp sed -e 's/[{}]/''/g' \
        | awk -v RS=',"' -F: '/^cname_validation_p2/ {print $2}' \
        | sed -s 's/"//g')

The CNAME can then be added to DNS for validation:

# Add DNS CNAME at Digital Ocean for verification
curl -s -X POST -H "Content-Type: application/json" \
        -H "Authorization: Bearer $DO_KEY" \
        -d '{"type":"CNAME","name":"'"$CNAME_HOST"'","data":"'"$CNAME_ALIAS"'.","priority":null,"port":null,"ttl":1800,"weight":null,"flags":null,"tag":null}' \
        https://api.digitalocean.com/v2/domains/"$DOMAIN"/records \
        -o "$CERT_NAME".name

Wait a moment for it to be ready:

# Wait for DNS record to propagate
sleep 30

Then call for validation:

# Validate certificate at ZeroSSL
curl -s -X POST https://api.zerossl.com/certificates/"$ID"/challenges?access_key="$ZEROSSL_KEY" \
        -d validation_method=CNAME_CSR_HASH \
        -o "$CERT_NAME".vald

Wait again for the certificate to be issued:

# Wait for cert to be issued
sleep 30

Then get the certificate. Using jq here to prettify the JSON:

# Get the cert
curl -s https://api.zerossl.com/certificates/"$ID"/download/return?access_key="$ZEROSSL_KEY" \
        | jq -r '."certificate.crt"' > "$CERT_NAME".crt

Finally tidy up DNS by removing the validation CNAME:

DNSID=$(< "$CERT_NAME".name python3 -c "import sys, json; print(json.load(sys.stdin)['domain_record']['id'])")
echo "$DNSID"

# Delete the verification CNAME
curl -s -X DELETE -H "Content-Type: application/json" \
        -H "Authorization: Bearer $DO_KEY" \

Update 15 Apr 2021

I ended up doing a Python version, with some better error checking and retry logic.

March 2021



Max is 7 months old now, and continues to be a source of endless entertainment and cuteness.

Having half his people back at school has disrupted our Lockdown III routines, but he has a reason to get extra excited when folk come home.


I got my first shot of the AstraZeneca vaccine. The logistics for the vaccination centre at my local ‘community building’ Clair Hall were outstanding – I was in and out of there in about five minutes, finishing with a return appointment for 11 weeks time.

New job

I joined The @ Company as an Engineer, and our CEO wrote about my intro meeting and culture in virtual organisations. For my techie friends who are wondering what it’s all about start with this post about the @protocol that we’re building the @platform to run. My focus is going to be getting to progressive delivery for the platform, and improving the Developer Experience for people using it. The platform is built with Dart, and we’re riding the wave of Flutter becoming very popular for development across Apple, Android, Web and Desktop.

Apple Fitness

It was mid March 2020 when I decided that I’d better keep fit during what looked like being a long time stuck at home, so this month saw the 365 day streak on my move ring.

If there were streaks for the other rings then I’d be doing a little better on stand, and I’d have broken by exercise streak last August as I got a little distracted by having to deal with Dougal’s last day.

Mother’s Day Feasting Weekend

Mother’s day provided all the excuse I needed to have a weekend of amazing food.


As a somewhat regular investor in startups via Seedrs I occasionally get offers to try new products or services from companies trying to attract investment. One of those was Cookaway, which is a non subscription meal box service. For Friday evening we got the Tandoori chicken with lemon rice and coriander mint chutney, which was delicious and full of really fresh flavours that we’re not used to getting from our usual local Indian restaurant.

My wife also really enjoyed the Zoom cook along session with chef Nidhi Verma.

Fish platter

Our local fish monger does a very nice sharing platter:

But we’ve taken to order separate items to have better control over getting what we really like; so this time I ordered a dressed crab, smoked mackerel and smoked salmon pates, hot smoked salmon, beetroot gravadlax and some king prawns. Along with a Forman & Field royal fillet of salmon that was plenty for two breakfasts and one dinner.


Ever since getting a Hawksmoor at Home box over the summer I’ve been using their ‘How to Cook the Perfect Steak‘ guide with côte de boeuf from my local butcher. But it’s always been a challenge to maintain a ‘steakhouse sear’ temperature. I’ve been able to get the grill to 300C, but as soon as I open it to put the steak in, then again for turning, the temp has been dropping. I wondered why the gauge went up to 450C, and how it was even possible to get it there. Until this time… the steak was quite fatty, and I left it a little longer than usual for the first turn, so by then the fat was rendering down onto the coals, and I was getting FIRE.


Along with the steak I got a 3kg leg of lamb from the local butcher, which I slow roasted overnight with the fan oven dial set to 75C, and that got me an internal temp of 65C. It’s some of the juiciest, tastiest lamb I’ve ever had, and along with Sunday roast provided for multiple sandwiches, salads, shepherd’s pies and curries – about 16 meals in total.

Watch repair

I found my old Casio watches when looking for something else and decided to get them running again (along with the Seiko I wore before getting an Apple Watch). My W-50U World Time watch was in a particularly sad state, with no strap and missing the screws for the back. A quick look at eBay suggests that it’s a sought after model these days.

Batteries were easy to find on eBay, and I was able to get everything else I needed from WatchBattery (UK) Ltd (except a new seal for the W-50U). The whole process was helped by the watch repair kit I’d randomly bought when it was on sale last year.

Ah… I can now press a few buttons and see the time zone line move from one city to another and recall the days when I used that feature.

Actor model

After hearing about the actor model from Simon Crosby talking about Akka as part of his work at Swim.ai, and then exploring Dapr when Mark Chmarny was at Microsoft I decided to take a deeper look. Oh boy is that Wikipedia article a tour de force of important computer science stuff for distributed systems (process calculus etc.).

I’ve been listening to

Along with my usual diet of the Sam Harris Podcast and the Farnam Street Knowledge Project, I’ve been catching up on a few interesting looking episodes of Behind the Tech with Kevin Scott, and also a few standalone episodes that came to my attention:

The latter two came about from a conversation with Ben Ford (@commandodev) following some discussion on Wardley Maps and Team Topologies. He recommended Jeff and David’s books, but I generally find that author podcasts can be much more efficient at getting to the key points.

Raspberry Pi Stuff

I’ve written in the past about booting from SSD, and we’re now starting to see boards like the Piunora that allow Compute Module 4 to work with NVMe SSDs. The performance improvement is measurable but not astonishing (10% rather than 10x) – so I won’t be rushing to buy new kit.

No Beating Beat Saber

My March Apple Fitness challenge was to walk or run 199.5km, so my VR exercise time got spent on extra walks :/ Max was happy :)

The future is already here – it’s just not evenly distributed.

William Gibson – The Economist, December 4, 2003

I’ve been in a bunch of conversations recently on the intersection of Team Topologies and Wardley Maps.

Map by Markus Harrer @feststelltaste

The Platform, Stream-aligned and Complicated-subsystem teams tend to drop out of a map because they fit around their respective activity or activities. That’s important for minimising cognitive load, because a group of adjacent activities should be similar enough to use the same methods and perhaps share other characteristics.

But the Enabling teams are different. It’s their job to move activities (and the teams doing them) through the industrialisation pipeline. They’re helping the organisation to evolve, and hence they need to be ‘Emissaries from the Future’, because they’re the ones who understand what the more evolved state looks like, and what it means to get the other teams there.

February 2021



This was the month that he became a dog that likes to go for walks, which is great. He was pretty reluctant for the last few months – scared of traffic and meeting other people (and other dogs), and not keen on the cold wet weather. I’m glad we persevered, as he now seems so happy to be out and about :)

Lenny the Learner Lemon

$daughter0 is now old enough to start driving, so we got a Mini for her to learn in.

Officially that colour is Volcanic Orange, but we all think it’s yellow, hence the name she’s given to it.

It was a bit fraught buying a car during lockdown, when I wasn’t able to see it, and had to fork over £LOTS to somebody without being handed keys in return. I was very relieved when the delivery driver showed up.

Lockdown also massively impacts the ability to get out and about for driving lessons. Learners are allowed to drive on essential journeys (like grocery shopping), but she doesn’t really have the confidence to do those journeys yet. Things were much easier with $son0 when we could just take him to a quiet road and drive up and down until he was happy with the basics. On the positive side, being confined to going up and down the drive means that she is very good at hill starts, three point turns and parking.

Oven fix

When we had the kitchen refitted a few years ago we got a pair of identical Bosch single ovens. We use the left hand one (the ‘dirty’ oven) all the time, and the right hand one (which stays ‘clean’) hardly at all.

The left hand oven tripped its breaker, and next time it was used there was no heat :(

A bit of Googling around suggested that the element had probably failed, and this video gave me confidence that it was an easy job to replace it. In the end I was very happy to spend £25.99 on a replacement element, which took half an hour to fit, rather than having to buy a new oven.

Using OBS to record stuff

As we’ve used Microsoft Teams more at work it’s become more common to catch up on meetings be recording. But not everything happens on Teams.

I figured out that I can record anything I want using OBS – I just set it to capture my secondary screen, and put whatever I want to record onto that screen.

Pale Green Dot

The early weeks of the pandemic brought chaos to supply chains as demand that was previously split across grocery stores and restaurants got pushed out of its usual balance.

Pale Green Dot are one of the companies that made the best of a bad situation by taking veggies that would have gone to restaurants, and boxing them up for home delivery.

Recently they’ve added some new stuff that’s been great…

Valentine’s Dinner

I never like going to restaurants for Valentine’s, as it’s always an overpriced limited menu, and way too busy. So I usually cook instead.

This year was different, as Pale Green Dot offered packaged dinners, which turned out to be excellent.

I can only think of a couple of local restaurants that could produce similar quality food, so here’s hoping that they do similar stuff for other occasions.


We also got a Kimchee kit, which just went into the fridge today after fermenting, and is tasting really good. I’m looking forward to the ramyuns and jjigaes I’ll be making with this.

Lenovo X250

After over 5 years of faithful service it’s time to hand back my trusty Lenovo X250.

I’ve liked it so much that I’ve bought myself a reconditioned one on eBay, which now has the SSD and RAM upgrades I’d bought for my work one. The ‘new’ one doesn’t have a touch screen, but I never really used that.

Raspberry Pi Stuff

Maybe it’s because I have too many Arm (and other) dev boards, but I’ve not felt a huge urge to get the newly launched Raspberry Pi Pico.

I can however see that it’s growing a great ecosystem, and the tooling looks good too. If I do get one I’ll likely start with the Pimoroni Tiny 2040, which looks very cute.

Beating Beat Saber

I’ve not spent too much time doing VR workouts this month, so only a couple more levels Full Combo’d on Expert with the Green Day pack I got last month.

January 2021



He’s getting more used to the rhythms of life with us. There’s obviously a distinctive sound to my lock keyboard keystroke, as he’s up and stretching before I’ve had a chance to change my glasses.

Speaker fix

I was watching The Midnight Sky[1]. It has a bunch of scenes in a spaceship, with very deep rumbling in the background, except I was hearing lots of snap, crackle and pop. The (not really sub) woofer in my Mission FS-2-AV setup had popped its foam (again):

Last time this happened I was a bit worried that I wouldn’t be able to source replacements, as the original Audax AP170MN2 speakers weren’t available any more from Mission, and the same fit Audax AP170M0 I used were getting hard to find (and I suspect by then were old stock).

Things were actually better this time. Barrowbiker’s Replacing the sub-bass driver on a Mission FS2-S pointed me to Visaton W170 speakers available from CPC:

A high quality bass/mid-range driver designed as replacement for many loudspeakers from AR, Gale, IMF and Mission. Stiffened paper cone and a generous magnet ensure high power handling and good bass extension.

They aren’t perfect, as the plastic surround is just a bit too high for the cover to fit properly, but at least my surround sound is back to sounding great.

Living room PC

Continuing the theme of home cinema related stuff…

The Gigabyte Brix I’d had in the home cinema room got replaced by an Amazon Fire 4k, as it’s just easier for watching stuff on Netflix and Prime. But over the last year we’ve been watching lots of comedy etc. on Zoom, and having cables dangle to my laptop wasn’t the best – especially with the new pup.

So the Brix has found a new lease of life on the back of the living room PC. It’s great for watching Zoom events, and I’ve also added a camera for when we’re doing calls (and party games) with friends and family.

Stream Deck

Switching to the recurrent theme of ‘we’re all streamers now’, I finally got myself an Elgato Stream Deck, which now gives me handy buttons for mute/unmute and start/stop video. It works better with Zoom (proper API?) than Teams (which needs the right window in focus to send key presses).

reMarkable 2

Last month I mentioned buying a reMarkable 2 e-ink tablet, noting that ‘I’ve not had much opportunity to take advantage of it’. With my daughter going back to online learning she was looking for a better way to handle pdfs, so I suggested she try out my tablet. I suspect that I won’t be getting it back, as it seems to be the perfect device for (as my friend Paul would put it) ‘Victorian schooling on Microsoft Teams’.

As I concluded in a thread on Twitter:

I expect that within the decade we’ll have such things at a $50 price point, and for replacing paper in schools I can see them working in ways that iPads and laptops haven’t been able to (because it turned out iPads & Chomebooks/Macbooks != education digital transformation)

Transferwise and eTrade

I’ve been a fan of Transferwise for many years, as I find myself having to hold and spend $ and € enough for them to save me a bunch of hassle and expense with their multi currency account with its associated debit card.

I also have an eTrade account that’s a relic of my time working in banks, and where I now hold my personal account of US stocks. It would be great if I could seamlessly (and freely) move $ between eTrade and Transferwise via the ACH Network, but when I tried it was fine sending stuff to eTrade, but I couldn’t pull from Transferwise.

That’s now fixed :) Transferwise recently rolled out new accounts for $, and it seems that the do support debits as well as credits. At least that’s what I thought… A few days later I got this in an email:

Right now, you can use your account details to have money sent to your account, but merchants can’t debit money from it. We’re working on that, but in the meantime, any debits will be rejected.

Some merchants charge a fee for rejected debits, so please don’t set up any direct debits just yet. We’ll let you know as soon as we’ve added this feature.

So maybe things have been soft launched, but they’re not quite ready yet.

Car shopping, MOT checker

My daughter is almost old enough to start driving, so I’ve been shopping around for a used car for her. Something that’s proved invaluable is the MOT history service, as it seems pretty useful at helping to flag lemons with maintenance issues, and cars with dodgy history (like one promising looking car that had gone backwards 2000 miles in a year).

Dry first half, Elvis AF

In the past I’ve done Dry January, but recently that’s become more like Dry first half of January, as my now adult son usually likes to toast his birthday.

This time around I was pleased to see that Brewdog have released an alcohol free version of one of the beers I usually have in the fridge – Elvis AF.

It’s easily the nicest alcohol free beer I’ve ever tried. So nice in fact that I’d seriously consider a can of it in place of the 6.5% original. Here’s hoping that it’s not a ‘Limited Edition’ for too long (or that at least it’s back next January).

Raspberry Pi Stuff

I finally got around to installing the ESXi 7 Fling for Raspberry Pi, following the guide on the official blog. I’m sure it will come in handy as Arm becomes more mainstream in the cloud and on people’s laps.

I also moved my home DNS from OpenWRT to some Pis. Bind on OpenWRT kept on crashing with out of memory errors, and I think Pis using SSD rather than SD cards, and on UPSs should be sufficiently reliable.

Beating Beat Saber

I got a little board of trying to Full Combo FitBeat on Expert and GHOST and What the Cat?! on Hard, so I bought another music pack – Green Day. Like the Panic! at the Disco, the levels are pretty easy, and I found myself getting through initial runs on Expert with just a few misses. I’m enjoying the music though; Green Day is one of those bands that fell into the young kids void of my musical experience, and clearly I missed out.


[1] In the end, not a film I’d greatly recommend. I wanted to like it, but there was just too much bad science to be believable, and that ruined it for me.

December 2020


I don’t think I’ve ever been so glad for a holiday break… In this post, a brief pupdate, some new toys, People Powered, the history of PCBs, toiletry vacations, and some Pi and VR stuff.


Max continues to grow, and get used to being part of the household. It’s been really fun having him around during December, though I do wish for days with better weather so we’ll both be a bit keener about going out.

Stuff I bought

reMarkable 2

A few folk I know bought and raved about the original reMarkable e-ink tablet, so when I heard there was a new version available I couldn’t resist. So far I’ve not had much opportunity to take advantage of it, but my first impression is that it feels almost like an alien artefact in terms of size, weight and build quality – it is remarkable.


I’ve had some custom fit Snugs Flight earphones for a few years, and love the comfort, noise isolation and sound quality. I also wear earplugs when riding my motorbike, which I consider necessary to avoid hearing damage from engine and wind noise. So when Snugs released their new Moto product I thought it would be good to get something potentially more comfortable than disposable earplugs, which can become a bit of a pain after an hour or so, and that would also allow me to listen to music and/or navigation instructions.

The fit is VERY different from my Flight earphones, as it fills much more of my ear. But they seem very comfortable. Due to it being winter I’ve not yet had the chance to try them out properly, so I’ll report back once the roads are dry again.

Quad Lock

If I’m going to be listening to my phone (especially for nav instructions) then I don’t really want it in my pocket, I’d like to have it visible.

After watching a few online reviews the Quad Lock system came out as the one that was most solid and least intrusive. Since it was Black Friday sale time I ended up getting the case for my iPhone SE 2020 plus the bike mount and a couple of car mounts.

I’ve yet to try the bike mount on the road, but the car system is super nice and easy.

AirPods Pro Crackle

I’ve already had replacements for both sides, and it seems the left one is failing again. Here’s hoping that Apple have finally got a fix into how they’re making them. At least they’re now acknowledging the problem, and have extended the replacement period past the original one year warranty with the AirPods Pro Service Program for Sound Issues.

History of PCBs

Bryan Cantrill asked on Twitter:

I’ve been enjoying “Pick, Place, Podcast” from @CircuitHub and @WAssembly (ht:
@kc8apf !), and now I’m searching in vain for a book on the history of the PCB; surely there is such a thing?!

I though if there was such a thing then surely OSHPark‘s Drew Fustini (@pdp7) would know about it.

In there end it seems that there isn’t a book, but there is this wonderful video from Zack Freedman:

People Powered

A few months ago I was chatting to Dick Morrell about various things, and I brought up my incomprehension of the (mostly Indian) audience joining some webcasts that I’d been doing with colleagues. He suggested that I should read Jono Bacon’s People Powered.

In the end the book didn’t answer my specific question, but it does do a great job on building and leading communities (and leadership in business more generally), and I find myself recommending it to people, which is always a good sign. My journey through it was helped by Jono running a book club over the past few months, which if nothing else gave me encouragement to get through the chapters (and along the way I switched from eBook to audio book so I could walk and ‘read’ at the same time).

Toiletry Vacations

I used to travel a fair bit, and I’d generally bring home the little bottles of hotel shampoo, conditioner and shower gell as they’re handy for when the kids are visiting friends or when we have house guests. Well… neither of those things have been happening much lately, so I decided to start using up my stash to break up the monotony of pandemic groundhog days. It’s amazing the difference that having some different smells at the start of the day makes, especially when those smells evoke places visited in the past.

Raspberry Pi stuff

When I started booting my Pi4 from an external SSD I just cable tied it to the underside of my passive heatsink, but I might have been tempted by this neat modular case system if it had been around at the time.

Beating Beat Saber

Some good progress, helped by more VR workouts during vacation time…

I’ve finally managed to Full Combo all of the OST3 levels on Expert. Burning Sands finally succumbed, and Full Charge came a few days later. Meanwhile Crab Rave from the Extras also fell into place for me, leaving just FitBeat before I’m done with that set.

I’m still finding the Camellia levels too tough on Expert, so I’m ploughing on with Hard for those, with only GHOST and What the Cat?! left to do.

Having played so much on the bundled levels I finally caved and bought a music pack from Panic! at the Disco. I’m loving the songs, but the play is quite easy, so I came close to clearing all the levels on first run at Expert, and they all fell within a few tries.

I’ve also managed to complete some OST1 levels at Expert Plus, which I once considered impossibly fast and complex – so practice does bring progress :)

November 2020


There’s been lots happening this month, with the puppy growing, some IT failures, moving on from some previously loved products and services, more updates on streaming and VR, and a few things I forgot in October…


He’s done a lot of growing from the start of the month:

To the end of the month:

and seems to have less of a look of ‘hey, I borrowed this dog costume, but it’s a few sizes too big’.

He’s also allowed outside now, so walkies have begun.

More photos on my daily #pupdate.

IT failures

November hasn’t been a great month for my home kit behaving itself.

NAS drive failure

I woke up one morning to the dog whining, and when I got downstairs I could hear the NAS whining. A quick look at the admin console revealed a failed HGST 4TB drive :(

I’ve been seeing warnings for a little while about the volume filling up, so time for an overdue upgrade and a 4 pack of 8TB Seagate IronWolf Pros.

It took a couple of days for the RAID5 array to resilver, which isn’t too shabby.

I then had a little adventure upgrading the filesystem to 64bit in order to make all the extra space usable.

Interrupted Power Supplies

‘The WiFi’s not working’ turned out to be a failure of the coat cupboard UPS that runs the NAS, router and a few other odds and ends. I’ve written before about how ropey power can be in my neighbourhood, which means I have a bunch of UPSs, which also means that I’m too frequently dealing with failures.

It seems that battery failures take out a UPS even when it has a good mains supply, and I’ve never seen any warning of battery issues :/ Luckily this time around I was able to get a replacement battery in half an hour from my local ScrewFix, and everything was back as it should be.

I keep hoping that Eric Raymond’s UPSide project for an open source hardware UPS comes to fruition, but maybe I should just buy a Tesla Powerwall? Meanwhile I replaced the batteries in a Sweex UPS that died on me a few years ago, and that’s back working, and I proactively replaced the battery on my other PowerWalker 650, as that was a similar vintage to the one that failed.

Leaving Three

I’ve used Three for my personal mobile phone for over 6 years, and really valued their ‘Go Roam’ service especially when I’ve been in the US a lot. Unfortunately they’ve developed a nasty habit of treating existing customers like fools, and hiking up tariffs.

Last year I called them, and eventually got to a satisfactory deal (though still not as good as what they were offering new SIM only customers). It took something like an hour, and I vowed not to repeat the process. This time I just requested a porting authorization code (PAC) for my phone number and switched to PlusNet (a mobile network virtual operator [MVNO] running on EE’s network). I may return to Three when travel resumes. But for the time being it seems like they didn’t want me as a customer, in what seems like an exercise in reversion marketing. It’s not even like I’ve been using the service much – I’d expect the most costly thing I’ve done in the last year or so was that call centre contact for the last renewal :/

At the start of the year I had 6 Three contracts – 3 for my devices and 3 for family members. We’re now down to 2; and that’s not down to any antipathy or service issues – it’s been purely about avoiding exploitative price hikes.

So long Pinner, hello Pushpin

I’ve been using Pinboard.in for bookmarking since the first demise of del.icio.us; so when I got an iPhone again almost five years ago I bought Pinner as the app to save and recall stuff.

Pinner served me well over the years, though it wasn’t perfect, and didn’t seem capable of syncing all 13,000+ bookmarks I’ve collected. But it hasn’t been updated in over 3 years, and it seems iOS 14 has introduced breaking changes. So time to move on.

I’m still getting used to Pushpin, but it seems to get all the basics right

We’re all streamers now

I’m talking next month at GitHub Universe and they sent me some kit to make sure that I can be seen and heard properly:

The Logitech Brio webcam is pretty amazing in terms of configurability and the sharpness of the resulting video; and the JLAB microphone seems to work better with my conferencing setup than the Yanmai mic I was previously using (following Terence Eden’s review).

Here’s what things look like on my side of the camera on my (messy) desk:

Since taking the photo I got a Newer mic boom, and I have a Stream Deck control panel on my Christmas list.


Prescription lenses

I’ve never loved the experience of using glasses with my Oculus Quest, so I finally ordered some lenses from VR Optician. They took a couple of weeks to arrive, and were dead easy to fit.

It’s a revelation not having to fiddle to get the headset around my glasses, or worry about eyelash smudges or fogging; though I do find I need to be very careful about headset placement to get a sharp view. It’s also weird to take off the headset and find myself part blind to the outside world.

I’d held off initially due to worrying about shared use of the headset, and constantly having to swap out lenses. But I’m now pretty sure I’m the only person using it, and having the lenses is a definite plus.

Beating Beat Saber

The quest continues… after finally getting Full Combo at Expert on all OST levels 1 & 2 I’ve been chipping away at OST 3 and Extras, with now only a couple remaining on each. Meanwhile I’ve got quite into the Camelia levels, though they’re much tougher, so I’m doing those on Hard rather than Expert.

Pi Stuff

I’ve written previously about using the High Quality camera as a USB OTG webcam, and now somebody’s written some Ansible scripts to automate the process :)

Things I forgot from October

Another Now

I’ve enjoyed much of Yannis Varoufakis’s earlier work, so his latest, Another Now, was an obvious one to buy, and I got the audiobook for my daily (pre new pup) walks.

The use of a connection between ‘many worlds’ to present ideas about alternatives to neoliberal capitalism is an engaging way of presenting ideas, but it didn’t leave me wholly convinced that he had a realistic way of tackling the status quo. But nevertheless an enjoyable read/listen.


The Starblinken recreates a little visual prop from the Millennium Falcon, and was on sale for May the 4th. But when it arrived the weather was too nice, and my spare time got expended outside. Once the cold dark days arrived it was time for some assembly.

It was a fun little project to put together, and I like how Dave managed to get a scene from the film into the PCB.