h-notes ∈ June 2021

June. June? June!

A grand day out!

In early June we took R to the discover children’s centre in stratford. A series of fun things we’ve not done for a while:

This was our first real outing as a family to do something fun since September last year when we went to Legoland. Thinking of something to compare to feels even longer ago than that; it felt like something from 2019 because it was a simple local day out rather than a holiday.

The start of a return to normal perhaps?1

The centre itself is a really good one for all ages of kids. We took R when she was around 2 and she got a lot out of it then, but this time around she knew more of what was going on, and could take part in more than just playing on the furniture. In particular, there was a special “fairy tales” exhibit / play room where R knew most of the stories and was super excited to find the gingerbread men, play at being the 3 little pigs, and avoid the wolf. Not gonna lie, I enjoyed it too, and don’t exactly look forward to the point where R wants to do these things alone and I have to sit in the café reading massive books about WW2. Like. A. Dad.

Some startling good luck

Pulling out one of my running tops I spotted the empty husk of a moth larva and cursed that yet another woollen garment of mine was going to have a hole in it. I turned the top over to find the hole and…

…I found the larva crawling along the sleeve! It had fairly recently hatched and as far as I could tell not had the opportunity to actually eat a hole in my top. For a moment I debated how to solve this problem until I smooshed it in some toilet tissue. Our house has a moth problem and I’m not letting this larva add to it.

It was genuinely thrilling to find the larva before it could cause the damage, rather than finding another garment ruined. A moment of startling good luck that I couldn’t wait to share with T as soon as I could. I even kept the tissue and husk as evidence. All the best stories have props!

Ant update

Our ant farm worries from march were unfounded. Well, unfounded in terms of aphid farms on our sunflowers anyway. It’s pretty clear to me that under our paving at the back is a massive ant colony that we’ve no real way to keep in check.

TBH I don’t really think I need to keep them in check exactly. They don’t cause any harm as far as I can tell (sunflowers notwithstanding). The only real downside is on flying ant day when swarms of ants with wings start launching out one or more cracks in our paving, which is disconcerting at best for someone like me with a phobia of flying insects.

Plant update

  1. Sunflowers

    We avoided the ant problems this year because the weather was so grim and we kept them mostly inside. We did put them outside occasionally, but it was pretty windy and I grew weary of nipping outside between zoom calls to set them back upright them after they’d blown over. All three ended up taller than me and had bees all over them once they bloomed, so I think we’l call it a partial success: a good result but a frustrating growing period. We’ll try again next year.

  2. Radishes

    We grew some radishes again this year, mostly because they’re easy to grow so we knew they’d definitely produce something and this would keep R’s attention. Thing is, apart from adding them to salads, what else am I supposed to do with radishes?

  3. Carrots

    We also planted some carrots, half in tubs and half in our wall hugging veg trug. The trug ones were eaten by snails and slugs as soon as they had any foliage and so we won’t get anything out of there, but the tub ones are doing well. I’m just not sure what shape they’ll be in below ground as the tubs aren’t quite deep enough.

Father’s Day

On a social call at work, someone asked what people were doing for Father’s Day and it was only after answering how I’d sent something up to my dad but wouldn’t be seeing him because he lives in the highlands that I realised Father’s Day is something I’m involved in from both directions now. It’s been 4 years, but I still need to be reminded to think of myself as a dad.

On swearing

We had a carpenter in to build a new wardrobe in R’s room and replace some wonky shelves I put up. He was a very sweary man, constantly swearing at his tools, the walls, the bits of wood, himself.

As anyone who has sat next to me at work will attest, I’m no stranger to the relieving properties of a good swear when the thing you’re trying to do isn’t going well, or simply isn’t doing what you expected. When my day-to-day was primarily as a dev, I would frequently curse my computer as the tests didn’t pass when I thought they would, or the UI didn’t look as I’d expected, or any one of the myriad ways for computer-work to fail unexpectedly. I’d never thought about it much until I was on the receiving end2. It’s pretty disconcerting to hear someone swearing and cursing as they struggle with something, not least someone who claims to be a professional that you expect to be able to do good work.

I guess I need to go apologise to everyone who I’ve ever worked in the same office as. Particularly anyone who might have been more junior at the time and looked to me for an example of what someone further along in their career might be like.

Feedback loops

Over the past quarter I’ve been re-working the career progression framework we have for engineers at work. I approached it with a list of small tweaks that I’d picked up after working with engineers over the past year since we rolled it out. Nothing major, just a process of tightening the screws on it by making things more clear and removing duplication; essentially I saw it as a refactor of what we had3.

Then we ran a performance review cycle and there was some fallout from that process that made it was clear we didn’t need a pass of some small tweaks. We needed a bigger re-do to address the problems in the framework we had4.

These conversations digging into the problems with our current framework have been difficult, but incredibly useful. I’m pretty proud of the re-do I’ve come up with, although I have no idea if it’s what we need. What worries me is that we used the current framework for about a year before we heard it wasn’t working, and we could end up with the same feedback cycle with this new one. I really don’t want that.

I wrote about the different feedback loops for developer vs. manager work in Feb but this is the first time it’s really hit home on a piece of work that’s a project rather than 1-to-1 coaching and mentoring. As a developer I would ship minimal versions of a feature quickly and rapidly iterate to solve bugs and enhance the feature over time. I’m used to working with that rapid loop, but with this framework redo it feels like we really need to get it as close to right as possible, because that loop won’t be possible. The real test of the framework is in what happens in our performance review processes and we only run those twice a year, but we probably also need to see the results over time, not just from one round.

As I said, I’m proud of the work we’ve done and I think it’s an improvement, but it’s a strange return to a Big Bang release and I’m wary of that process. I’m also worried that we’ve got it wrong, and this directly impacts my colleagues career plans and day-to-day lives because the framework has a hard connection to their compensation.

🤞 I guess.

Travis migration for lrug.org

The LRUG website is a statically generated website using middleman. Merges to the default branch are built and deployed automatically using a combination of a travis CI workflow and a little webhook deploy script running as CGI on the shared host we use. It’s not sophisticated, and could be cleaned up somewhat I’m sure, but it works.

Until it didn’t.

LRUG used travis-ci.org instead of the newer travis-ci.com. For unfathomable reasons all activity on .org needs to be migrated to .com as .org is shutting down. The day finally came this month when the .org version stopped building the LRUG site and we had to do the migration. I wished I’d made notes about this process as I went, because it was an absolute shit-show.

  1. No notifications

    Other than a banner on .org we received no communications from travis about the shutdown, or links to a migration guide. We found out when we merged a PR and noticed that nothing had been built.

  2. Not quite automated

    In theory the migration process is automatic once you tell travis you want to do it. In practice every step of the way I had to click something in the UI to make progress. I definitely went through some GitHub<->travis oauth process several times.

  3. Eventual consistency

    Several times in the migration process I did something only for the UI to not clearly reflect it. Even after a hard refresh of the page, the UI didn’t always update.

  4. You must choose a plan

    Eventually the migration finished and I was able to trigger builds of the repo, except each one failed with a security problem. The error message wasn’t at all clear what the problem was, but luckily google exists and others have had this problem: although I’d migrated a free plan over from .org to .com I hadn’t chosen a payment plan on .com. There is a free plan, but you need to choose it or the system just has no idea what you’re trying to do.

Nothing here is particularly annoying in-and-of-itself, but as a series of stumbling blocks on a process I’m just trying to get through in order to do the thing I actually want, they made for an incredibly frustrating process and I almost gave up and switched the build system to github actions instead. I’m lazy though so I didn’t.

What’s most annoying about it though is that it should all have been avoidable. Firstly, travis know who uses the .org version and could communicate with them to set out timetables for when the migration needs to happen, and give advice in advance about how to do the migration. Secondly, it also seems pretty clear that no-one from travis actually sat down and ran through this process themselves as I can’t imagine none of this being fixed by the time I was forced to run through it when the service effectively switched off.


A measly 3 times. But 2 of them were up in the trails around my folks in the highlands, and it was excellent to be running on trails through forests

and along big rivers

(not that you can see it in these photos).

It’s not that running around the same handful of parks in London is so boring as to be a significant factor in my apparent inability to factor running into lockdown life properly, but it was exciting to be somewhere that was both different and surrounded by nature.

Of course, I was up in the highlands visiting my folks solo. It’s a lot easier to go for a run when you have no dependants to work your hour or so of exercise around.


Managed 4, which means I’m roughly on track for my reading challenge of 50 books this year. Of course, 2 of them were comic series, and of the other two, one was a book that for no real reason took me most of the month to read and the other I read in 2 days.

To my credit, in untracked-because-its-not-a-book reading I did devote a bunch of my reading time to chewing through these incredibly in-depth series of blog posts on the siege of Gondor (6 parts) and battle for Helm’s Deep (8 parts) from Lord of the Rings. These blog posts compare the film and book versions of these battles, and investigate how realistic they are from a historical perspective. Pedantic, dry, nerdy. Hard recommend.5