Five years ago, I spent New Year’s eve playing around with a naive implementation of Conway’s Game of Life in Python and finishing off a bottle of wine. Although there’s something kind of natural about reflecting on “Life” as a year ends, this year’s Advent of Code helped prime me into think about it, since the problems for days 11, 17, and 24 all considered finite state automata with Life-eqsue rules. Also, I’m not the only one who was thinking about Life recently, probably because John Conway passed away this past April due to the coronavirus.

Anyhow, I just wanted to make a quick post to mark the new year, with a slightly more efficient in-browser implementation of Life (i.e. updates computed in \(\mathcal{O}(n_\text{alive})\) operations, as opposed to the lazy \(\mathcal{O}(n_\text{rows}^2)\) version that I used 5 years ago). So without further ado/explanation, here’s Life on a finite grid with periodic boundary conditions:

Banjo Auld Lang Syne 🪕

On a completely unrelated note, before we went out for New Year’s last year, I spent some time trying to pick out Auld Lang Syne on my banjo. I didn’t manage to get it quite right at the time (and it’s not the kind of song you’d think to mess around with except around New Year’s) so I just kind of left it at that. However, in the spirit of starting out the New Year by reflecting on old projects, I sat down this year and hammered out something a bit more reasonable: