Week 0: As Dijkstra intended
Inspired by Tom and
Nat
and Chris,
I’ve decided to start writing weeknotes.
It’s 2021 in the Gregorian calendar, but it’s still ISO week 53 of 2020, so
if I start doing weeknotes this week, I can index from zero as God
Pol Pot Dijkstra intended.
I finished my last contract a couple of days before Christmas, so this has been my first full week off, and even though I was working with an exceptionally nice group of people, I’ve really been enjoying not having that toad work squat on my life.
I’m not sure I ever really enjoyed web development, but my ability to put up with it has taken a definite turn to the negative lately. The platform is a catastrophe in which you’re always having to work around massive underlying limitations. Every codebase of more than a few months old I’ve ever worked on has been a testament to previous bad decisions, a morass in which any movement becomes more and more difficult. Some are worse than others: the ones in which it’s impossible to make any trivial change without the risk of breakage are my least favourite. And the ones of those where breakage can be catastrophic are the most stressful.
I think it’s become worse over time. The emergence of DevOps over the past decade hasn’t helped me, as I find infrastructure work even more dull and infuriating than all the rest of it! And agile development, that once seemed so liberating, has devolved into its own dysfunctional bureaucracy. Continuous integration now just means the server that runs your tests after you finally manage to get someone to review and merge your pull request. Story cards are Sisyphean: no matter how many times you push some work to the top of the hill, there’s a story card right back down at the bottom again.
But maybe I could have continued to put up with that, except for 2020. The almost complete destruction of social life over the past nine months has affected me more than I would have expected. Even though programming can be quite solitary and lonely, that’s OK if it’s made up with other interactions: whether that’s chatting with colleagues, or meeting friends for food or drink or hobbies. I just never realised how much it mattered.
I don’t intend to take on any more web development work ever. Maybe I’ll have
to, if I can’t find anything better, but it’s not what I want to do. I
think I have enough runway for a year at least, so my goal for 2021 is to
find an alternative means of making a living or die cry trying.
I’ve been playing with microcontrollers recently. Although there are other frustrations involved, I find programming such tiny systems fun. There’s a sense of pure achievement in it, and, unlike the web, you have state!
I picked up an
ESP32
development board for about £6 a few months ago. You could think of it as a bit
like an Arduino with WiFi and Bluetooth. You can
even program it with the Arduino IDE if you want. I don’t want, so I use
make
. I have a WiiMote that I bought years ago to use as a remote control
when giving talks, so I hooked that up to the ESP32 over Bluetooth, attached a
small I²C OLED screen, and wrote some code to detect movement. I’ve tried
integrating the accelerometer readings twice to detect position, but it’s a
bit chaotic so far.
I’ve been prototyping a Eurorack synthesiser clock module based around a Pro Micro ATMega32u4 board. They’re cheap, work well, and they’re ideal for this application as they fit into 4HP and the on-board regulator lets you feed them directly from +12V Eurorack power. I’m designing a module that can use an external or internal clock source and output various divisions of the clock: powers of two, or primes, or the Fibonacci sequence, or anything else I think of, with a knob to turn to select a mode.
So far, everything works: internal clock normalised to the external clock input, division, clock output. I’ve got a couple more things to check around interrupt handling (the ATMega documentation is a bit confusing) but I think I’ll be able to get some PCBs made soon.
Other than that I’ve had a quiet week. L— has been working, so we didn’t stay up to celebrate the return of customs bureaucracy on 1 January. People who thought that the EU imposed red tape and forgot about how HM Customs and Excise (now HMRC) operate are going to have a rude awakening.
I read 37 books in 2020. Not too bad, considering that it hasn’t been the most conducive to relaxation. My favourite was probably Piranesi by Susanna Clarke.
The Christmas tree is still up and technically it’s still Christmas. Yippee Ki Yay.