Nicholas Whittaker

There's a lot of automation going on here

2021-05-01 // #automation #github

With a little bit of invested time, I’ve figured out a nice little process for previewing changes to my site. The technical side of it is a writeup for another day, but it’s too cool to not to talk about here and now.

I start with my local changes on a new branch, pushing it to GitHub. The response includes a link to create a new pull request.

git push -u origin HEAD
# remote:
# remote: Create a pull request for 'disable-analytics-in-preview' on GitHub by visiting:
# remote:
# remote:
# To
#  * [new branch]      HEAD -> disable-analytics-in-preview
# Branch 'disable-analytics-in-preview' set up to track remote branch 'disable-analytics-in-preview' from 'origin'.

The commit message determines the pull request’s title. Referencing an open issue in the PR’s description makes the two pages reference each other.

PR opened. A workflow I’ve made with GitHub Actions kicks off, and my changes are deployed to a preview domain. A link to the deployment is included with the pull request.

PR merged. The same workflow kicks off and cleans up the deployed preview, marking it as inactive. The merged branch is deleted. Since the description a reference to “close #41”, the corresponding issue is also closed. 1

It’s kinda amazing how much of a breeze previewing is for me now, only ever a pull request away. GitHub’s developer experience really shines here too.

Screenshot from a merged pull request on GitHub, titled “Don’t include analytics in main site”. A deployment is created and later marked as inactive. The source branch is deleted after the pull request is merged.

1 Fun fact: GitHub doesn’t like it when you close 100 issues at once with a single pull request.

No FLoC for me please Google


A new approach to online tracking being trialed by Google has been under scrutiny this week, from developers and privacy advocates alike.

Along with others, I’m explicitly opting-out my website out of this program. Thankfully it’s a one-liner in my Nginx config.

+ add_header "Permissions-Policy" "interest-cohort=()";

According to Google, this tracking method is activated (for the time being) when sites do either of the following.

  • Call document.interestCohort()
  • Load ads or ad-related resources (whatever Google determines this to be)

With that said, there’s no saying when or how this will change. Taking the hardline approach to avoid this behaviour seems sensible to me.

I’ve got more to say on the stances companies like Google take on privacy, but that’s a longer piece of writing for another day.

Thanks to Ruben Schade for his bit on FLoC too!

Traversing the sources of a song


I stumbled across an old animation from a few years ago yesterday, set to a rather funky beat. Not the most fascinating thing on its own. Interesting though, how my perspective has changed a bit after looking into the music a little bit more.

By itself, the song is great. There’s more lurking beneath the surface though.

It uses the vocals from Fire Fly by Childish Gambino.

The vocals are mashed up with the instrumental from MF DOOM’s Coffin Nails.

DOOM uses a sample from Dave Matthews' guitar solo in Space Oddity.

Travere the tree, and you’re listening to a mashup with a sample from a cover of a David Bowie song!

Isn’t it funny how deep the roots of a song can reach?

bingo sandbelt for senator by an0nymooose Thumbnail for YouTube video bingo sandbelt for senator

I'm now using Plausible Analytics

2021-04-09 // #site

For now, I’m trying out a self-hosted instance of Plausible Analytics with this website. I was tempted to go with the hosted option for a while, but I prefer having more control with a self-hosted arrangement.

Setup so far has been smooth, since the self-hosted option is run as a set of Docker containers. I ran into some TLS erros when interacting with Mailgun from the main Elixir app, but I’ve found a workaround using the bundled SMTP server that will be fine for now.

Alongside this, I’m adding a page on privacy to this site as well. I don’t really need a privacy policy, but I don’t see any harm in being transparent about how I operate.

For now, goodbye Raspberry Pi

2021-04-01 // #site

For the last year or so, I’ve hosted my website using an old Raspberry Pi on my home network. It’s served me well, but I’m retiring it for now. I’m sure I’ll find a new use for it in the near future though!

I named the machine Cryberry, referencing a brief quip from a streamer I watch. There wasn’t any reasoning behind this name choice – I just through it sounded nice, and so I went with it. Thank you for your work, Cryberry.

A small computer in a plastic case sitting on a windowsill

I’m moving back to the cloud where things are more flexible. I’m still opting for a plain Linux instance, but now it’s provisioned with Terraform and managed with Ansible. I’m hoping this will make upgrades/changes a breeze in future, and avoid accident-prone manual work on my part.

As for the instance itself, I’m just going with a small DigitalOcean droplet for now. The real question is, what hostname do I go with for this machine?

This time around, I figured I’d pick a name that means a bit more to me. I’ve fallen in love with the 2017 reboot of Ducktales in the last year, so I’m naming it after one of the tech-related characters, Gandra Dee.

So now, say hello to gandra-dee!

Screenshot from a web console, showing an Ubuntu 20.04 Linux instance

Older posts