Ben Swift

Computer scientist/researcher/dev and creative technologist (livecoder). Academic, but looks longingly over the fence sometimes. Judge me by my GitHub profile, not my h-index :) Senior Lecturer and Cybernetic Studio Lead at the ANU School of Cybernetics.

629 followers506 following154 stories

Longform Stories

Slop Salon: six AI artists, one constitution

Slop Salon is a collective of six AI agents making art on Bluesky. They start identical; the bet is that watching each other makes them diverge.

12h ago·6 min read·1154 words

Three circles for thinking about LLMs

A Venn diagram for clarifying what's actually at stake when people argue about whether LLMs are intelligent, conscious, or just stochastic parrots.

May 12·5 min read·804 words

On Agentic Tools and Lock-in

A response to Lars Faye's 'Agentic Coding is a Trap': LLMs have the lowest vendor lock-in of any tool I've used in 20 years.

May 4·3 min read·486 words

A static site that takes pull requests

Out of Office stores its data in a JSON file in git, not a database. Why, and when this pattern fits.

Apr 28·4 min read·606 words

The road to COMP4020: token management by proxy

Designing a proxy to sit between students and the Claude API: per-student quotas, full-traffic logging, and a safety net for leaked keys.

Apr 22·8 min read·1493 words

The road to COMP4020: pledges, not questions

Replacing two of the three weekly reflection questions with falsifiable pledges, and using a cross-eval matrix to find the interesting disagreements.

Apr 16·10 min read·1815 words

COMP4020: assessment

What does a student hand in for an agentic coding course---and how do I make that artefact worth more than the grade itself?

Apr 15·6 min read·1090 words

One git heatmap to rule them all

A Python script that merges contribution data from GitHub and multiple GitLab instances into a single interactive SVG heatmap.

Apr 9·18 min read·3438 words

Getting a reTerminal DM running as a Nerves kiosk in 2026

A guide to running Elixir/Nerves on Seeed's reTerminal DM with its custom DSI display, capacitive touchscreen, and a Cog/WPE browser kiosk---including the workarounds you'll need for touch input.

Apr 8·8 min read·1574 words

The road to COMP4020: Agentic Coding for Conscientious Objectors

What would I say to a student who's staunchly anti-AI but curious about COMP4020?

Apr 8·3 min read·522 words

The road to COMP4020: the professorial class

Academics are welcome to audit COMP4020---here's how I'm planning to make it work.

Apr 7·2 min read·273 words

Ask Ben (powered by Gemma 4)

An in-browser chat widget running Google's Gemma 4 E2B via WebGPU, primed with all the content from this site so you can ask it questions about me.

Apr 3·2 min read·386 words

The road to COMP4020: Anthropic comes to the party

COMP4020 has received $500k in Claude API credits from Anthropic for students to use in the Agentic Coding Studio course.

Apr 2·2 min read·286 words

COMP4020: the story so far

A catch-up post for the COMP4020 Agentic Coding Studio blog series---what the course is, how it works, and what's still unresolved.

Mar 31·6 min read·1031 words

The road to COMP4020: agents in the classroom?

What if an AI agent enrolled in the course alongside the students---building prototypes, writing reflections, observing patterns?

Mar 30·9 min read·1675 words

The road to COMP4020: what's the theory here?

There are lots of nascent theories for agentic coding---here's a survey, and a plan to test them with 200 students.

Mar 30·6 min read·1116 words

The road to COMP4020: managing the strategic token reserve

How to provision and manage AI token budgets for a class of agentic coding students.

Mar 27·5 min read·813 words

The road to COMP4020: the weekly questions

Three evergreen questions and 280-character skeets to scaffold reflective practice in each weekly studio crit.

Mar 26·7 min read·1220 words

The road to COMP4020: course software environment

Every CS/software development course has a policy on what software it uses - the only different is whether it's written down or not.

Mar 24·5 min read·957 words

The road to COMP4020: Agentic Coding Studio

Renaming the course to Agentic Coding Studio---because what we're really teaching is the craft of harnessing LLMs in coding workflows.

Mar 20·2 min read·324 words

Perceptron apparatus: inference walkthrough

An interactive walkthrough of the perceptron apparatus---a 1.2m wooden table that classifies digits using sliders and a circular slide rule.

Mar 19·4 min read·626 words

The road to COMP4020: Radical openness

Making all weekly prototypes visible to every student---source code, deployed apps, the lot. Radical openness as a teaching strategy for COMP4020.

Mar 18·3 min read·493 words

The road to COMP4020: safety, YOLO and the open web

Fly Sprites as lightweight, snapshotable VMs for student coding---safe enough for YOLO mode, live on the open web by default.

Mar 5·9 min read·1793 words

Mini neon perceptron: XOR edition

A 4-input, 3-hidden, 2-output mini perceptron that solves diagonal XOR---with an interactive 3D digital twin to play with.

Mar 3·3 min read·538 words

Extempore is alive on aarch64 (part deux)

CI green on four platforms, a migration from TinyScheme to s7, and a 9x compiler speedup from hash table caches and union-find type unification.

Feb 26·4 min read·682 words

The road to COMP4020: climbing the "good" gradient

Producing code is easy; knowing whether it's good is still hard. Three nested feedback loops for ascending the quality gradient in agentic coding.

Feb 24·6 min read·1139 words

The road to COMP4020: the core mechanic

The repeating loop at the heart of COMP4020: provocation, prototype, studio crit. An art-school model adapted for agentic software development.

Feb 20·8 min read·1412 words

AT-URIs as persistent identifiers for scholarly blogging

Every post on this blog now has a persistent AT-URI via the standard.site spec---more durable than bare URLs, less overhead than DOIs.

Feb 19·9 min read·1682 words

Ben's dev setup 2026 edition

Ghostty, zellij, helix and a life lived in text tokens---why I ditched Zed and went back to purely terminal-based development.

Feb 18·4 min read·636 words

The road to COMP4020: providing sharp tools

Getting 200 students adequate access to frontier coding agents is the hard logistics problem behind COMP4020.

Feb 17·4 min read·784 words

LLMs Unplugged at Brimbank Tech School

A hands-on AI workshop for educators at VU Sunshine Campus, covering AI fundamentals, paper-and-pen predictive models, and change management.

Feb 9·1 min read·164 words

AI Agents on (in?) the Atmosphere

Stateful AI agents are showing up on Bluesky and ATproto---with soul documents, read/write memory, and scheduled self-reflection.

Feb 6·8 min read·1457 words

Out of the browser: on the power of interfaces for agentic AI

The leap from browser-based ChatGPT to terminal-native coding agents isn't about smarter models---it's about removing the sandbox.

Feb 5·9 min read·1738 words

Coding agents and the plasticity of code

Code has always felt brittle---most changes break it. Coding agents change that dynamic, absorbing the cognitive load of big refactors and making code feel plastic rather than rigid.

Dec 23·5 min read·827 words

COMP4020/8020: Rapid Prototyping for the Web

Designing a new ANU course on building web apps with coding agents---studio-based, prototype-driven, moving beyond naive vibecoding.

Dec 19·3 min read·513 words

Fixing slow Zed agent startup times

Claude Code sessions in Zed were taking 30 seconds to start. The culprit: npx fetching Playwright MCP on every launch. The fix involves global installs and mise shims.

Dec 17·4 min read·655 words

Extempore's aliiiiive on aarch64

Extempore now builds and runs on Apple Silicon. The audio libraries work, the build process is cleaner, and Rosetta is no longer required for livecoding.

Dec 17·3 min read·484 words

Interactive neon perceptron visualisation

An interactive 3D digital twin of the Neon Perceptron---a physical neural network built from flexible LEDs. Draw on the input grid and watch activations flow.

Dec 11·3 min read·487 words

LLMs Unplugged: teaching language models with pen, paper, and dice

A hands-on teaching resource where learners build bigram language models with pen, paper, and dice---no computers required. Tested with school students, public servants, and tech professionals.

Dec 10·6 min read·1067 words

Blog archaeology

Spelunking through git history to trace this blog from Octopress in 2012 through two Clojure experiments, six years of Jekyll, and now VitePress.

Dec 3·5 min read·999 words

Switching from Jekyll to VitePress

After ten years on Jekyll, I moved this site to VitePress. Notes on migrating content, components, reveal.js slides, and data loading.

Dec 2·5 min read·864 words

11ty and Vite for modern static websites

How to set up 11ty with Vite and Tailwind v4 for static sites that need proper asset bundling, HMR, and npm ecosystem access.

Nov 24·6 min read·1101 words

Seeing AI tasks through a TAM lens

AI adoption research keeps asking 'do you use ChatGPT?' when it should ask 'for which tasks?' A task-level framework for thinking about when LLMs actually save you time.

Nov 12·12 min read·2360 words

Tracking APS AI Transparency Statements

A new project that scrapes and version-controls AI Transparency Statements from Australian Government agencies, tracking how they change over time.

Nov 11·2 min read·235 words

Cybernetic Studio Launch @ SXSW Sydney

Launching the Cybernetic Studio at SXSW Sydney with human-scale AI artefacts: a wooden neural network table and a pen-and-paper language model.

Oct 8·3 min read·564 words

The great 2025 email yak-shave: O365 + mbsync + mu + neomutt + msmtp

Rebuilding a terminal email setup with OAuth2, Office365 and neomutt in Zed---the hard-won config so you don't have to waste as many hours as I did.

Sep 12·3 min read·583 words

Running Claude Code within Zed

Switching from Zed's Agent panel to Claude Code for flat-fee pricing, with a simple task config to keep the workflow inside Zed.

Jul 23·4 min read·604 words

Agentic AI: LLMs with stones

Agentic AI is about giving LLMs tools to act in the world without asking first. The real shift isn't new capabilities---it's the removal of the human bottleneck.

Jul 17·6 min read·1128 words

Automated RPi Web Kiosk Setup in 2025

A fully scripted burn-and-boot process for setting up Raspberry Pi 5s as fullscreen Chromium kiosks with Tailscale, WiFi and 4K support.

Jul 16·3 min read·477 words

DIYChatGPT Short Course for ANU Undergraduates

A hands-on 3-hour workshop where ANU undergrads train their own language model from scratch with pen, paper and dice---ending with a poetry slam.

Jul 7·2 min read·252 words

Agentic Elixir superpowers: Zed + Tidewave + AshAI

How to wire up Zed, Tidewave and AshAI as MCP servers for an agentic Elixir development workflow, with a helper script to glue it all together.

Jun 6·3 min read·586 words

DeepSeek and Shallow Moats: Implications for Higher Education

Universities betting big on exclusive AI partnerships risk repeating the MOOC mistake. DeepSeek R1 shows why staying provider-agnostic is the smarter play.

Feb 18·5 min read·952 words

LLM Parlour Games for Overeducated Wankers

Workshop materials for designing and playing parlour games with LLMs, including LLM-augmented 20 Questions and Adventures in Amphibology.

Nov 7·5 min read·942 words

Format Markdown on save in Zed using Prettier

Zed config snippet for auto-formatting Markdown files on save with Prettier, including prose wrapping at 80 columns.

Sep 20·1 min read·156 words

Hosting a genAI trivia night

Using an LLM to generate trivia questions, then letting teams challenge any answers they think the model hallucinated.

Aug 12·3 min read·533 words

Livecoding set ICLC'24 - Shanghai Concert Hall

Performing a livecoding music set at Shanghai Concert Hall as part of ICLC 2024.

May 30·1 min read·115 words

Congrats Dr. Chenchen Xu

Celebrating Chenchen Xu's PhD on weakly supervised sign language understanding, completed through lockdown.

Jun 1·1 min read·115 words

Parental leave take 3

Off on another round of parental leave until March 2024.

May 13·1 min read·66 words

Writing graph theory proofs with ChatGPT

Asking ChatGPT to prove the five colour and four colour theorems with my mathematician father-in-law, and his reaction to the results.

Feb 8·6 min read·1184 words

Jekyll build speedups for Ruby 3.2

Ruby 3.2's YJIT gave my Jekyll builds a 4.8x speedup---from 17 seconds down to under 4.

Feb 2·2 min read·315 words

Academic integrity guidelines re: ChatGPT and generative AI tools

Draft guidelines for allowing ChatGPT in university coursework while maintaining academic integrity, with citation and accountability requirements.

Feb 2·6 min read·1107 words

Congrats Dr. Kieran Browne

Celebrating Kieran Browne's PhD graduation and his thesis on the neurological metaphor in deep learning.

Jan 26·2 min read·326 words

Handling Square Webhooks in Phoenix

How to receive and validate Square payment webhooks in an Elixir/Phoenix app, with code for HMAC signature verification.

Jan 22·3 min read·579 words

Are you ready for ChatGPT in the classroom this semester?

Practical advice for educators on incorporating ChatGPT into their teaching this semester rather than pretending it doesn't exist.

Jan 16·7 min read·1225 words

rclone: exclude all git repos

A bash script to auto-exclude all git repos from rclone backups, since rclone's built-in filtering can't do it alone.

Jan 11·2 min read·377 words

Drinking from the bullshit firehose

Draft notes on AI-generated bullshit in higher education---the problem isn't that it's wrong, it's that Brandolini's law means we'll be overwhelmed by the sheer volume.

Dec 7·5 min read·1000 words

A School of Cybernetics strategy meeting with ChatGPT

My first ChatGPT conversation: asking it to brainstorm strategy for the ANU School of Cybernetics. Impressive output, but we're going to need to get better at drinking from the bullshit firehose.

Dec 7·6 min read·1096 words

AI art installations and livecoding gigs in Nov/Dec

A roundup of recent creative work: the Panic AI art installation with its big red button, plus a livecoding set at OzCHI 2022.

Dec 6·2 min read·280 words

AI in higher education: dystopia, utopia or something in between?

AI tools in higher education won't operate in isolation---they'll reshape information flows between students, instructors and institutions in ways we need to watch carefully.

Oct 13·7 min read·1268 words

NGA Un-tour: The Hidden Gallery

An immersive cybernetic walking tour of the National Gallery of Australia after dark, co-created with BOHO Interactive and the ANU School of Cybernetics.

Oct 12·2 min read·229 words

Running stable diffusion in a singularity container

Rough notes and a Python script for running Stable Diffusion in a Singularity container with NVIDIA GPUs.

Sep 2·2 min read·219 words

So this is how it feels when the robots come for your job

GitHub Copilot is a genuine force multiplier for coding, but human expertise is still crucial---a Conversation article on what AI assistants mean for programmers.

Jun 30·6 min read·1092 words

So this is how it feels when the robots come for your job: what GitHub's Copilot 'AI assistant' means for coders

A pointer to my Conversation article on GitHub Copilot and what AI coding assistants mean for programmers.

Jun 30·1 min read·112 words

Redacting craiyon prompts with imagemagick

A one-liner ImageMagick command to batch-redact the prompt text from craiyon (DALL-E mini) screenshot outputs.

Jun 22·2 min read·316 words

Pulling apart Zoom attendance csv dumps in tidy R

A quick tidyverse R script for parsing Zoom attendance CSVs and visualising per-participant call duration with ggplot2.

May 23·2 min read·347 words

Teaching the world to Cybernetics

A look at what the new Experiences Team at the ANU School of Cybernetics is building---weird, site-specific encounters with cybernetic ideas.

Mar 7·3 min read·442 words

Running an AI neural style transfer model under Singularity

Getting a pytorch neural style transfer model running on RTX 3090s via Singularity containers, navigating CUDA version hell along the way.

Feb 1·8 min read·1525 words

Cybernetic futures explained (maybe)

Futuring works best when it's more like a radar than a lighthouse---a sense-analyse-act feedback loop, not a fixed point to steer towards.

Jan 20·10 min read·1837 words

Livecoder-in-the-club as a system

Using cybernetics and Donella Meadows' leverage points to understand---and improve---the system of code, music and humans in a livecoding gig.

Nov 11·12 min read·2301 words

Deploying a Phoenix app (with LiveView) on fly.io

Quick notes on deploying a Phoenix 1.6 LiveView app to fly.io, including gotchas with health checks and outdated guides.

Oct 27·2 min read·238 words

Cutting ruby CI pipeline times with pre-installed bundles

A multi-stage Dockerfile that pre-installs Ruby gems to cut GitLab CI build times for Jekyll sites by up to 90%.

Oct 21·4 min read·745 words

openconnect setup for institutional VPN access

Using openconnect as a reliable alternative to the GlobalProtect client for connecting to an institutional VPN on macOS.

Oct 18·2 min read·365 words

Feedback in livecoding: cui bono?

A pre-class prompt for cybernetics students: watch some livecoding videos and think about what's shown, what's hidden, and who the feedback serves.

Sep 13·3 min read·525 words

Moving to the School of Cybernetics

I'm leaving the ANU School of Computing for the new School of Cybernetics---here's what that means for students, colleagues and collaborators.

May 11·5 min read·817 words

LENS'21 final gig 2pm June 6 @ sideway

The ANU Laptop Ensemble's end-of-semester gig at sideway music bar, Sunday June 6, doors at 2pm.

May 6·1 min read·177 words

ACMC'21 + Synthmoot: Connections announced for August 26-28

The 2021 Australasian Computer Music Conference is happening in Sydney/Melbourne/online in late August---submissions welcome.

Apr 29·1 min read·155 words

A short list of Extempore livecoding tricks

Handy Extempore techniques: cosr, markov chains, weighted random, relative pitches, nof vs repeat, quasiquote, clock sync and more.

Apr 23·16 min read·3050 words

benswift.me analytics/tracking update

I've added counter.dev as a lightweight, relatively un-invasive analytics tool. Ad-blocker users still welcome.

Apr 8·2 min read·207 words

Bulk-add students to MS Teams from a csv file

A PowerShell snippet for bulk-adding students to an MS Teams class from a CSV of email addresses---works on macOS and Linux too.

Apr 1·3 min read·534 words

ANZSRC FoR Codes 2020 edition

The 2020 ANZSRC Field of Research codes in a searchable HTML table, because the ABS only publishes them in a spreadsheet.

Mar 18·2 min read·264 words

Simple pdf papers/reports with markdown, pandoc and bibtex

A simple GitHub template for writing in markdown and producing nice PDFs via Pandoc and LaTeX, with optional BibTeX citations.

Mar 16·4 min read·786 words

How to cite code? Leading by example

A YAML-based Statement of Originality that teaches students how to cite code, declare collaborators and list licences in every assignment.

Mar 16·6 min read·1010 words

Respectful Learning Memes

Students make brilliant memes to explain course content to each other---so why not make that an official part of the class?

Feb 19·4 min read·682 words

Independent Study Contract writing tips

Practical advice for ANU computing students on writing a capstone project description and learning outcomes that actually guide your research.

Jan 25·3 min read·548 words

Configuring Spacemacs org-roam & org-noter for academic writing bliss

How to get org-roam, org-roam-bibtex and org-noter working together in Spacemacs for a Zettelkasten-style academic workflow.

Dec 16·4 min read·719 words

Student project: animated 3D code rendering engine

A student project idea: real-time handwriting-style code rendering for livecoding performances, synced to the music.

Dec 11·2 min read·345 words

Creative Computing ANU Extension course

A Creative Computing course for ACT year 11 students has been approved for 2021 through the ANU Extension program.

Sep 17·1 min read·141 words

Parental leave, take 2

The family has grown by one, so I'm off on parental leave for the rest of the year. Back in 2021.

Sep 8·1 min read·161 words

mbsync v1.3.2 breaking change: <code>SubFolders</code> config required

The mbsync 1.3.2 update silently requires a SubFolders setting. Here's the fix, plus a bonus mu4e prettifier.

Jul 17·3 min read·545 words

ACMC2020: tools for organising a virtual conference

A detailed rundown of the tools we used to run ACMC2020 online---YouTube Premiere, Discord, EasyChair, and a lot of ffmpeg.

Jul 15·11 min read·2156 words

LENS 2020 final gig stream tomorrow at 8pm

The ANU Laptop Ensemble's S1 2020 final gig is streaming live on YouTube this Friday night.

Jun 11·1 min read·159 words

Two-way OSC communication between Extempore and Pd

A step-by-step guide to sending and receiving OSC messages between Extempore and Pure Data.

Apr 30·5 min read·831 words

A call-up to fight covid19

Joining an ANU COVID-19 taskforce to build epidemiological simulation tools for the Canberra health system.

Apr 18·3 min read·416 words

LENS Online - the Laptop Ensemble in a time of covid19

Taking the ANU Laptop Ensemble online during COVID-19---what changes, what stays the same, and why it might actually work.

Mar 21·3 min read·419 words

Reimagine Fellowship UK trip report

Highlights from a UK research trip: ICLC, chatting with Sam Aaron and Simon Peyton Jones, and falling over on a Scottish hill.

Mar 11·3 min read·504 words

Command/Control: giving OS aware keybinding hints

A small JS snippet that auto-swaps Ctrl/Cmd in keyboard shortcut hints based on the reader's OS.

Feb 14·2 min read·309 words

ICLC Extempore workshop

Workshop materials and outline for the Introduction to music-making in Extempore session at ICLC 2020, Limerick.

Feb 6·2 min read·291 words

ACMC '20 submissions now open

The Australasian Computer Music Conference is coming to ANU in July 2020, with a theme of inclusion. Submissions are open.

Jan 29·2 min read·342 words

Upcoming gig: smoke, Jan 30

A free evening of experimental sounds---livecoding, processed voice and neural networks---at the ANU School of Music.

Jan 28·2 min read·342 words

Extempore workshop @ ICLC '20, Feb 6, Limerick IE

A hands-on intro to making music with Extempore at ICLC 2020 in Limerick---no experience required, just bring a laptop.

Jan 28·2 min read·274 words

Euclidean rhythms in Extempore

A recursive Scheme implementation of Euclidean rhythms in Extempore, plus some unexpectedly cool visual patterns.

Jan 27·3 min read·503 words

ANU Laptop Ensemble in S1 2020

The ANU Laptop Ensemble is back for Semester 1 2020, open to students in music, art, CS and beyond.

Jan 25·1 min read·151 words

benswift.me dev roadmap for 2020

My plans for this website in 2020: Jekyll 4, maybe Eleventy, maybe Netlify, maybe Tailwind.

Nov 17·2 min read·294 words

ANU Extension: creative code

A pointer to the ANU Extension creative code program.

Nov 17·1 min read·32 words

COMP1720 2019 major project exhibtion

Come see the COMP1720 Art & Interaction in New Media major project exhibition---this year's theme is listening in/listening out.

Nov 8·1 min read·187 words

code/creativity/culture curriculum design workshop

A hands-on workshop where participants spin code/creativity/culture wheels and design a real c/c/c studio assessment task.

Nov 7·13 min read·2410 words

LENS showcase S2 2019

Photos from the ANU Laptop Ensemble's Semester 2 2019 final performances at the School of Music composition showcase.

Oct 31·2 min read·261 words

Ben and COMP2300 next year

I'm handing COMP2300 over to Charles Martin in 2020 so I can focus on the c/c/c studio Reimagine Fellowship.

Oct 21·2 min read·217 words

Package managers: <code>update</code> or <code>upgrade</code>?

A quiz (and a plea for consistency) on whether your package manager uses update or upgrade.

Oct 16·3 min read·451 words

Making Altair/Vega-Lite charts readable without squinting

A simple trick for making Altair chart text and marks bigger: set a small width/height and export to SVG.

Oct 16·4 min read·601 words

Sound file I/O in Extempore with libsndfile

A crash course on reading, processing and writing audio files in Extempore using the libsndfile C library bindings.

Oct 15·7 min read·1391 words

IoT China Study Tour not happening in 2019

The IoT China Study Tour at BIT isn't running this year---the New Colombo Plan grant has expired.

Oct 14·1 min read·196 words

Laptop Ensemble in the Canberra Times

The ANU Laptop Ensemble got a Canberra Times feature, with encouraging words from the School of Music about code in music-making.

Oct 1·2 min read·264 words

Mapping the livecoding landscape

A reference list of key people, ICLC committees and TOPLAP nodes in the global livecoding community.

Sep 21·5 min read·924 words

Xinyu's Extempore tutorials

PRIMM-style tutorials for learning sound and music in Extempore, from sine waves through to samplers and metronomes.

Sep 18·17 min read·3364 words

c/c/c studio: what's already happening

A rough map of the people, structures and processes already in place as the c/c/c studio takes shape.

Sep 9·2 min read·390 words

I'm a Reimagine Fellow

I've been awarded an inaugural CECS Reimagine Fellowship, which means the c/c/c studio is happening.

Aug 30·1 min read·179 words

Making the most of meetings with research students

Four standard questions I use to keep one-on-one research supervision meetings focused and useful.

Aug 6·4 min read·705 words

Livecoding gig this Friday 5:30pm @ ANU Drill Hall Gallery

Livecoding with Charles Martin and Kieran Browne at Drill Hall Gallery, plus ANU Laptop Ensemble members.

Jul 29·1 min read·163 words

Livecoding article on the ABC

I was interviewed for an ABC News article about the Australian livecoding scene.

Jul 24·1 min read·87 words

In-place XML tree mutation for Jekyll productivity

Profiling a slow Jekyll build, finding the culprit in Nokogiri node copying, and getting a 20x speedup by switching to in-place tree mutation.

Jul 17·4 min read·613 words

The c/c/c studio

The project plan for the c/c/c studio, a creative code outreach program bringing art, music and code to high school students through the ANU Reimagine Fellowship.

Mar 20·17 min read·3305 words

Mapping over table rows in org-mode

How to apply elisp functions to org-mode table rows using named tables and code blocks, with practical caveats and a Pride and Prejudice example.

Mar 9·4 min read·692 words

On parental leave and auto-reply messages

Going on parental leave, deleting all unread emails on return, and the surprisingly liberating auto-reply policy behind it.

Feb 26·3 min read·473 words

A dynamic Reimagine logo

An interactive, spinnable version of the ANU Reimagine logo, built with ClojureScript and Reagent.

Feb 21·1 min read·145 words

Algorithmic uni marketing billboards

A generative 'verb your verb' billboard that picks random verbs and Unsplash backgrounds, built with reveal.js and later rewritten in ClojureScript.

Feb 16·2 min read·248 words

Reimagining Engineering & CS at the ANU

My pitch to become a Reimagine Fellow at ANU, making the case for weaving art and creative practice into Engineering and Computer Science.

Feb 7·12 min read·2290 words

Class discussions on Discourse

Switching from Piazza to self-hosted Discourse for a 200-student course forum, with practical notes on setup, tradeoffs, and what's missing.

Feb 6·5 min read·890 words

On livecoding annotations and visualisations

A response to Charlie Roberts' essay on code annotations, exploring the tension between visualising program state and editing live code.

Jan 31·8 min read·1525 words

Oils from 威海

A surprise four-hour portrait sitting for a painting class at Shandong University, and the oil paintings that came out of it.

Jan 29·2 min read·250 words

Old livecoding photo roundup

Collecting photos from a decade of livecoding gigs, talks and demos. Got an old photo of me performing? Send it through.

Jan 22·2 min read·226 words

highlight.js with xtlang support

Getting syntax highlighting for Extempore's xtlang working on this blog, told as an FAQ full of hacks and node build shenanigans.

Jan 17·4 min read·754 words

The annual benswift.me re-write: 2019 edition

Another year, another website rewrite. This time it's hand-crafted HTML & CSS with modern grid layouts and the Inter UI typeface.

Jan 2·4 min read·634 words

Another reveal.js plugin for Jekyll

A Jekyll plugin that turns a single markdown file into reveal.js slides, splitting on headings like pandoc does.

Sep 28·4 min read·675 words

Hosting a self-built jekyll site on GH pages

A simple Makefile for building Jekyll locally with custom plugins and pushing the output to GitHub Pages.

Jun 22·3 min read·412 words

CHI hangs

A quick photo of Kieran and me at CHI, where our AI divination ritual seems to have started some conversations.

Jun 22·1 min read·106 words

ANU Laptop Orchestra

Putting together a laptop orchestra at ANU---looking for students into livecoding, VJing, or organising creative tech gigs for credit.

Jun 6·3 min read·424 words

Centre for the Public Awareness of Code

Most people can name a favourite film or band, but not a favourite algorithm. We need code communicators doing what Carl Sagan did for space.

Jun 5·3 min read·464 words

The Other Side: Algorithm as Ritual in Artificial Intelligence

Kieran Browne and I performed a live AI divination ritual at alt.chi---using analog computing to commune with an artificial intelligence.

Apr 24·1 min read·199 words

Telopea Hour of Code

Links for Telopea Hour of Code students: the p5 web editor and presentation slides.

Sep 6·1 min read·70 words

Science Week gig

Playing a livecoding set at the ACT Science Week launch party tonight. Short notice, but there might still be tickets.

Aug 11·1 min read·108 words

COMP1720 teaser

Five reasons to take COMP1720, ANU's art-with-code course---now using p5.js in the browser, with more sound and music than ever.

Jul 10·2 min read·352 words

benswift.me update (July 2017 edition)

Another redesign of benswift.me---this time aiming to be the home for livecoding, research, and making things with computers.

Jul 6·1 min read·100 words

Blog refresh

Migrated to Cryogen and moved the Extempore docs to their own site. Some links are broken, bear with me.

Dec 1·2 min read·214 words