Skip to main content

w/e 2023-08-27

This week I have mostly been listening to Salesforce by Lauren Bousfield, who I’d never heard of until reading a review of this album in a recent issue of The Wire.

The start of track two – which is what plays if I embed the Bandcamp player for the album – is too screamy for me but the rest is just-right full-on “beautiful chaos” as one commenter put it. So here’s the album’s third track on YouTube:


§ A little artisanal mowing update. This week I raked all the grass in the area of garden that I’d strimmed into neat piles so that I could pick it up and take it to the compost heap. (After scything, raking isn’t required because all the grass is left in neat windrows that are easy to collect.)

This extra step took the average time for the strimmed area down from 126m²/hr to 76m²/hr.

Given that the average time for all the scything was 75m²/hr… there’s not much in it in terms of time spent doing the work. The downside of the scything then is that it’s harder work, and requires a lot more pauses between bouts (for me, anyway) so total-time-including-resting is longer.


§ No client work this week so back to occasional tinkering with my own stuff. Which is at such a different pace. While I always try to do as good a job as possible with client work, that has to be balanced against time and budget. Whereas with my own work I enjoy tweaking, improving, and re-working code until it’s more pleasing, and I can spend more time finding and fixing increasingly esoteric edge cases. Usually too much time.

This week I was writing code to fetch the favicons for a load of websites. The basics of this don’t take much time at all, especially given there’s an OK little python library that attempts to find all the URLs of different favicon and social icons and their sizes. That felt like half the work.

But I also wanted to:

  • Make my code work well as both a management command and a django-q2 task
  • Log everything sensibly (I’m trying to do better at logging)
  • Test everything well. This would previously have taken me even longer but having previously struggled through testing requests for remote files, and saving files locally, it was easier this time.
  • Save .ico files as .pngs which I wasted far too much time on figuring out before realising that if you ask Pillow to save a .ico file with a .png extension it will just convert the largest of its image sizes to a PNG automatically.
  • Make everything as robust as possible.

The latter involved fetching a few hundred favicons and continually tweaking everything to manage the weird edge cases, such as:

  • HTML that points to image files that don’t exist
  • Images that are rectangular rather than square (or even squareish; I was reasonably tolerant)
  • Images served without a Content-Type header
  • Images that don’t have a file extension (Thanks Gravatar)
  • Images with a .pnj [sic] extension served with either an image/png or an image/jpeg mime type (Thanks Tumblr)
  • Images served with a text/plain mime type (Thanks Squarespace)

Once that was all eventually working and tested, I refactored the perfectly fine code from a few functions into a class, which I always find neater. I think, says the man with zero programming education, this can help break the code into more coherent parts with a clearer entry point and/but make it even more confusing for anyone else – or future me – to follow. Win win.

It seems pretty good in the end. No one in their right mind would pay me [time it took] × [my day rate] for some code that fetches favicons but it was satisfying to finish well. In fact, it was satisfying all of the many times I thought I’d finished it well.


§ This week’s TV…

We gave the first episode of The Power of Parker (BBC) a go because it had whatshername out of Car Share and the bald guy off of Game of Sexy Dragons but that was one episode too many. I’m reassured to know that all those popular sitcoms I see on iPlayer etc. that I don’t consider watching are not worth me considering watching.

The show is set in 1990, which still feels quite earlier-1980s to me. Because of its frequent moments of Look Here’s A Brand Name From The Past How Funny, the show sprung unfortunately back to mind while reading Mark Fisher’s Ghosts of My Life a couple of days later (p. 77):

Everything is so iconic, and the thing with icons, after all, is that they evoke nothing. The icon is the very opposite of the Madeleine, Chris Marker’s name – rhyming Hitchcock and Proust – for those totemic triggers that suddenly abduct you into the past. The point being that the Madeleine can only manage this time-snatching function because it has avoided museumification and memorialisation, stayed out of the photographs, been forgotten in a corner. Hearing T-Rex now doesn’t remind you of 73, it reminds you of nostalgia programmes about 1973.

It’s often as if the show is one of those “Do you remember this thing from the 1980s that everyone remembers?” FaceBook groups made into a sitcom.

We also started watching Klem (or The Blood Pact), a Dutch thriller, on Channel 4 which was fine but, a couple of episodes in, not a huge amount had happened, we weren’t desperate to find out what happened next, and thought we could survive without watching the remaining 28 episodes over three seasons.

Also on Channel 4 – making the most of the one month subscription we got to watch Halt and Catch Fire – we tried The Chalet which was quite good: a bunch of people cut off in a small Alpen village, dying one-by-one. It’s quite confusing, featuring a lot of characters, all introduced at once, mostly duplicated across two timelines twenty years apart. And it wasn’t as tense as I’d expect that kind of drama to be, not helped by even me (who never guesses whodunnit) realising the basics of who the killer was early on. But, still, a bit different and slightly odd in a French way.


§ C’est tout. Passe une bonne semaine.