Blog
This is my blog. Sometimes in these posts I’ll talk about research or art projects I’m involved with, sometimes I’ll just ramble about other stuff which is keeping me up at night. If you’re interested in a certain topic, click on a tag to see just the posts with that tag:
acma acmc ai ccc covid19 cs4all cybernetics elixir emacs extempore gigs lens life livecoding media phoenix python reimagine research student-project teaching tools ux web widgets
If anything here sparks your interest (or your ire!) then get in touch via email or discuss on HN.
13 May '23
Parental leave take 3
Apologies for the radio silence over the last couple of months. I have the happy opportunity to take one more round of parental leave. So I’ll be off doing Dad stuff until March ‘24.
08 Feb '23
Writing graph theory proofs with ChatGPT
Posting logs of ChatGPT interaction is getting a bit passé by now in Feb ‘23, so I’ll stop doing it soon (I promise). But yesterday I was hanging out with my father-in-law and showing how it might impact his classes—he’s Associate Chair of the Mathematics Department at a top uni in China.
02 Feb '23
Jekyll build speedups for Ruby 3.2
There’s a bunch of buzz about Ruby’s new YJIT in v3.2.0. I have to develop and maintain a bunch of Jekyll websites for work, some of which are getting into “non-trivial build time” territory (or maybe I’m really easily distracted, but a 30s build is enough for me to break my flow).
02 Feb '23
Academic integrity guidelines re: ChatGPT and generative AI tools
Here in Australia Semester 1 is approaching and ChatGPT is, undoubtedly, a thing. From a practical perspective it’s important to have some sort of guidelines about about ChatGPT and other generative AI tools in the classroom (everyone’s doing it). If you don’t provide any advice ahead of time you’ll end up making it up as you go along (because it will come up) and policy on the run is policy underdone.
26 Jan '23
Congrats Dr. Kieran Browne
Last December Kieran graduated—very exciting for all concerned.
22 Jan '23
Handling Square Webhooks in Phoenix
My brother’s cafe donates a dollar to the local community centre for every coffee sold, and over the summer I built him a live “donation counter” which displays a small “thankyou” animation when anyone buys a coffee. It’s a web app which they run on an iPad sitting on the coffee machine.
11 Jan '23
rclone: exclude all git repos
For a long time I’ve used rclone for remote backups and it’s awesome. I have a script which syncs all the files I care about on my laptop to cloudstor (which, being on the Australian university network has the benefit that I get 1Gbps upload when I’m on the ANU network). My institution (the ANU)
07 Dec '22
A School of Cybernetics strategy meeting with ChatGPT
Back at my desk after a couple of days off I finally got a chance to fire up the OpenAI ChatGPT AI language model that everyone’s talking about.
06 Dec '22
AI art installations and livecoding gigs in Nov/Dec
If you follow me on twitter you’ve seen this already, but over the last couple of months I’ve been hard at work on an AI art installation called Panic. This was a collaboration with Adrian Schmidt—I did the software, he did the hardware (including the cool, 6” diameter Panic! button).
12 Oct '22
NGA Un-tour: The Hidden Gallery
For the last year or so my team has been collaborating with the good folks at BOHO Interactive and the National Gallery of Australia on something which launches tonight—the NGA Un-Tour.
30 Jun '22
So this is how it feels when the robots come for your job: what GitHub's Copilot 'AI assistant' means for coders
I wrote a piece for the Conversation about GitHub’s new Copilot AI programming assistant. You can head over there to read it if you like.
22 Jun '22
Redacting craiyon prompts with imagemagick
I’ve been messing around with craiyon (formerly DALL-E mini), because who hasn’t been doing that recently.
23 May '22
Pulling apart Zoom attendance csv dumps in tidy R
My team ran some Zoom training last week and today I needed to figure out who actually attended across all the days, and for how long.
02 May '22
Scar trees & living typefaces

07 Mar '22
Teaching the world to Cybernetics
If you’re the sort of person who lurks on people’s LinkedIn accounts, you may have noticed that I’ve recently become the lead of the Experiences Team at the School of Cybernetics. My team’s mission is:
01 Feb '22
Running an AI neural style transfer model under Singularity
I’ve recently been given access to a beefy AI server (6x RTX3090s!) which is managed via SingularityCE, whose homepage boldly asks and then forgets to answer the question: “What is SingularityCE?”
20 Jan '22
Cybernetic futures explained (maybe)
One of my current projects at the ANU School of Cybernetics is to develop tools & procedures for futuring. This post is an attempt to get my head around how these things fit together (spoiler: they do!).
11 Nov '21
Livecoder-in-the-club as a system
Using cybernetic and systems thinking concepts to answer the question: what’s actually going on in a livecoding gig?
21 Oct '21
Cutting ruby CI pipeline times with pre-installed bundles
I (and, increasingly many of my colleagues) are using Jekyll to create open (CC-licenced), hackable, acessible course websites & teaching content for our classes. We use a self-hosted GitLab server for all the websites sources, and then build/deploy them with GitLab CI. It works well, it means I don’t have to fight with our LMS to do interesting things, and it means I can open my learning materials to everyone (not just those who are privileged enough to be able to pay the fees to study at the ANU).
18 Oct '21
openconnect setup for institutional VPN access
My institution’s IT policies have recently changed and port 22 is now blocked from off-campus. That’s a real pain if you use ssh to push/pull from our on-prem GitLab servers (which I need to do all the time).