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:

If anything here sparks your interest (or your ire!) then get in touch via email or discuss on HN.

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.

read more...

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.

read more...

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).

read more...

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.

read more...

Congrats Dr. Kieran Browne

Last December Kieran graduated—very exciting for all concerned.

read more...

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.

read more...

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)

read more...

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.

read more...

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).

read more...

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.

read more...

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.

read more...

Redacting craiyon prompts with imagemagick

I’ve been messing around with craiyon (formerly DALL-E mini), because who hasn’t been doing that recently.

read more...

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.

read more...

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:

read more...

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?”

read more...

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!).

read more...

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?

read more...

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).

read more...

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).

read more...

Feedback in livecoding: cui bono?

Pre-reading (and watching) for fortnight 5 of the School of Cybernetics Master’s program

read more...

github twitter vimeo graduation-cap rss envelope search vial coffee heart creative-commons creative-commons-by creative-commons-nc creative-commons-sa