Weeknotes 2021 WK 44

New Setup

For the first time in eight years, I was setting up a Mac this week. Chats about setups always seem to go well, so I thought I’d log a few points.

Getting Started

I don’t change device often, so I always set up as a new device, rather than trying to restore from a backup. This allows me to do a review and clean up of what’s installed, and helps insure I can pass the Bathtub Test.

The Bathtub Test (A thought experiment): You drop your laptop in the bath. Nothing on it is recoverable. What effect does that have on you? What’s lost?

The idea here is that, whilst clearly you’re out a new laptop, you should be able to more-or-less carry on. In particular, if you’re looking at data loss, rather than time/money from the inconvenience, then reviewing your backups are in order.

I use 1Password together with iCloud for the majority of storage. Both are available on all the platforms I use (including Windows) and so a quick login and 90% of everything is instantly available.

Then download BBEdit, Microsoft Office, and add a new SSH key to GitHub, and I’m up and running.

Python

Normally, I use pyenv to manage Python versions. I’ll likely install that, but I’m initially setting up with the official installers from python.org.

Thus far, I have Python 3.10 and Python 3.9 installed. These sit parallel to each other on the filesystem, and you add a PATH setting to shell startup to line them up in the order you want. (So I have python3 pointing to python3.10 currently.)

I’ll add Python 3.8 here, but I might stick there. The old MBP has ≈a billion Pythons installed, and I may just use that for the odd time I need older versions. (It’s currently acting as the LAN database server, since everything is already running there.) We’ll see: I expect I’ll break, but it’s nice to review what (and why and when) particular tools are needed.

I’m trying to avoid Homebrew for the moment, too. I’ve fallen out with it over the last couple of years. Great as it is, I’m not convinced that it’s targeting my use-case well. Maybe I’ll come back to it, but (again) I want to review, and if I can live without, all the better.

A note on performance: the base Django test suite runs in less than half the time (single core) than on the old MBP. I will carve out the time this cycle to finish off the GSoC project to parallelise the test running on Windows and Mac: looking forward to running it on 10 cores. I haven’t managed to get the fans to come on all week.

zsh vs bash

Apple made zsh shell the default some time back. I didn’t go for that at all.

Bash is one of the few Endtime Techs that’s always going to be available everywhere. Whatever grimbles it might have, I’m not convinced that they justify swapping it out for another option.

However, I’ve got a backlist of posts to read on why zsh is great, so I thought I’d give it a go. I’ll likely write up findings here over time.

Bash is always just a bash away. macOS has this tendency to moan at you if you run Bash, though, so turning that off is essential:

export BASH_SILENCE_DEPRECATION_WARNING=1

Rust

Not much to say here. Rustup just works.

Swift & Xcode

Most excited about this. Xcode is a very hungry beast. I’ve been able to run it, and do small experiments on the old MBP, but real app development has been off the table. You realistically can’t do UI work with too great a turn-around time for builds, and Xcode’s great preview abilities were too much for the old machine to handle.

In theory, the Swift Playgrounds on iPad, and then jumping across to Xcode on the Mac is wonderful flow. I never got that going because the old MBP wasn’t up to par. Finally, with a new machine, I’m able to do so. The overriding initial impression is Yes. This will really work for me.

Django

We had a few issues on Django 4.0 reported this week. Good work everyone, keep testing it against your apps: this is what we’re looking for.

We had to revert one patch for JavaScript module support for hashed filenames in staticfiles, but apart from that, we’re still good, I think 👀.

I spent a good bit of the early part of the week fixing the mirror of the docs builds on Read the Docs. (That still looks like it needs love. 🤨)

Fellow Report for 2021 WK 44.