Posts tagged with "dev"
42 posts with this tag.
← Back to all posts- Ben's dev setup 2026 edition 18 Feb 26
New year, new dev setup. This year the theme is:...
- Coding agents and the plasticity of code 23 Dec 25
Code has always felt rigid to me. Brittle, even. Most of the ways you poke, prod, or change it will break it. And even when you know what you're doing and when you're making a change that's unambiguously a good one you often need to break it in one place and then manually fix it up in a dozen others to compensate....
- Fixing slow Zed agent startup times 17 Dec 25
I've been using Claude Code via ACP (Agent Control Protocol) in Zed, and while the integration is brilliant, starting a new Claude session took noticeably longer in Zed than running claude directly in the terminal; ~30s vs about 5s. And it was particularly frustrating because there's no /clear slash command via ACP---the only way to clear the context, which I d all the time is to re-start the agent, which (because of the delay) breaks my flow....
- Switching from Jekyll to VitePress 2 Dec 25
This site has run on Jekyll since 2014 (or even before, I think; but some secrets are lost to time). Ten years is a good run for any technology choice, but I've finally made the switch to VitePress. The source is open, so you can check it out for yourself....
- 11ty and Vite for modern static websites 24 Nov 25
I've been using 11ty for static site generation for a while now (not this site---that's Jekyll---but for other stuff) and it's great. But for a recent project I needed proper asset bundling, hot module replacement (HMR), and access to the npm ecosystem without building my own pipeline. Enter Vite....
- The great 2025 email yak-shave: O365 + mbsync + mu + neomutt + msmtp 12 Sept 25
For years I was a happy user of mu4e in Emacs. But then a few years ago my employer turned off password-based IMAP auth and broke my (Office 365-based) work email, so I had to make alternative email arrangements....
- Running Claude Code within Zed 23 July 25
After several months using Zed's built-in Agent panel I've switched to Claude Code. The main reason is cost. I'm still using the same models---still primarily Sonnet (and occasionally Opus) 4---but using them via the Agent panel incurs per-token billing via the Anthropic API. I was racking up a lot of costs (around 100USD/week) even with a bit of restraint, although still using it fairly heavily during all work days....
- Automated RPi Web Kiosk Setup in 2025 16 July 25
As part of a recent art installation I've needed to set up lots (well, dozens) of Raspberry 5s to run as fullscreen Chromium "kiosks" with a pre-set URL (network connected, but with no keyboard/mouse)....
- Agentic Elixir superpowers: Zed + Tidewave + AshAI 6 June 25
For a few years now whenever I need to build any sort of networked interactive experience, I reach for Elixir (with Phoenix LiveView and Ash). It's an extremely productive combination, especially when you want to do more complex client/server information flows than the standard request/response UX. I've also (for the last year or two) ditched Emacs for Zed. Again, if you take the time to master these tools I think they're excellent....
- Format Markdown on save in Zed using Prettier 20 Sept 24
One thing I've particularly enjoyed since switching to Zed is format-on-save, which is turned on by default in most programming modes. However, it's not turned on by default for Markdown files....
- Jekyll build speedups for Ruby 3.2 2 Feb 23
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)....
- Handling Square Webhooks in Phoenix 22 Jan 23
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....
- rclone: exclude all git repos 11 Jan 23
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)...
- So this is how it feels when the robots come for your job 30 June 22
- So this is how it feels when the robots come for your job: what GitHub's Copilot 'AI assistant' means for coders 30 June 22
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....
- Redacting craiyon prompts with imagemagick 22 June 22
I've been messing around with craiyon (formerly DALL-E mini), because who hasn't been doing that recently....
- Pulling apart Zoom attendance csv dumps in tidy R 23 May 22
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....
- Running an AI neural style transfer model under Singularity 1 Feb 22
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?"...
- Deploying a Phoenix app (with LiveView) on fly.io 27 Oct 21
Things to note:...
- Cutting ruby CI pipeline times with pre-installed bundles 21 Oct 21
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 e...
- openconnect setup for institutional VPN access 18 Oct 21
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)....
- benswift.me analytics/tracking update 8 Apr 21
I haven't had any sort of client-side analytics (e.g. Google Analytics) on benswift.me for a long time (since around 2012 I think---several iterations of the site ago). I use an ad-blocker myself, and the whole tracking & analytics thing just strikes me as a bit gross....
- Bulk-add students to MS Teams from a csv file 1 Apr 21
My institution now uses MS Teams for lots of things, including organising classes & communicating with students. It's not perfect, but it's not terrible, and the pros & cons of Teams as a pedagogical platform are best left for another post....
- Simple pdf papers/reports with markdown, pandoc and bibtex 16 Mar 21
I've long raged against the machine of my institution's default LaTeX template for dissertations and other reports, which is:...
- Configuring Spacemacs org-roam & org-noter for academic writing bliss 16 Dec 20
I've always had a decent memory, and so I've never really had a formal system for keeping track of who said what and in which paper. When it comes time to write something of my own I end up mostly just going from memory and re-google-scholaring things from scratch (often finding later that I already had that paper in my Zotero database already). As I get older my memory isn't as sharp, so I think it's time to use a more systematic workflow for wr...
- mbsync v1.3.2 breaking change: <code>SubFolders</code> config required 17 July 20
As part of my ongoing quest to Emacs-all-the-things, I'm a long-time satisfied user of the mu email client. I even wrote the latest CI infrastructure setup for the project as a way to give back to Dirk-Jan and the rest of the awesome mu team....
- ACMC2020: tools for organising a virtual conference 15 July 20
I've been a bit quiet on this blog for the last few weeks because I've been organising ACMC2020: the 2020 Australasian Computer Music Conference. From the conference landing page:...
- benswift.me dev roadmap for 2020 17 Nov 19
As a developer of web tech curricula (specifically 2D graphics & interaction design in COMP1720) there's always a tension in trying to just teach the fundamentals and keeping the coursework up-to-date. For the latter, that doesn't necessarily mean re-writing the course each year with the js framework-du-jour, but it's useful to at least know what the best practices are and how to point students in a good direction if they want to go deeper....
- Making Altair/Vega-Lite charts readable without squinting 16 Oct 19
My love for the Grammar of Graphics runs deep, and in particular for Hadley Wickham's famous ggplot2 which showed me the light back when I was a young PhD student. Seriously, once you have your head around how it works it gives you datavis superpowers. These days I often work in Python, and for datavis I'm enjoying Altair which is based around the same philosophy (and outputs to Vega-Lite for rendering in the browser)....
- Package managers: <code>update</code> or <code>upgrade</code>? 16 Oct 19
Quick quiz: for the following language/system package managers, what's the name of the subcommand to update your project/system to the latest version of one (or more) of your project's dependencies?...
- In-place XML tree mutation for Jekyll productivity 17 July 19
I wrote a reveal.js plugin for Jekyll so that I can make nice slides (especially for my ANU courses). Recently, though, I've been touching up the COMP1720 slides for 2019 and it's getting really slow to build the website....
- Mapping over table rows in org-mode 9 Mar 19
I'm an Emacs guy, and so if I've got some simple tabular data I'd much rather keep it in an org-mode table than have to fire up Excel....
- A dynamic Reimagine logo 21 Feb 19
I keep harping on about the Reimagine project because I'm super pumped about what it means for the way we do Engineering Computer Science here at the ANU (see here and here for more info)....
- Algorithmic uni marketing billboards 16 Feb 19
In the spirit of Murdoch University's free your think marketing campaign, I've put together a dynamic full-page ad billboard as my pitch for the ANU's next marketing campaign....
- Class discussions on Discourse 6 Feb 19
In 2018 I (with the support of the Teaching & Learning IT team in my School) switched from Piazza to a self-hosted Discourse instance for class discussions. Specifically, I used it for COMP1720: Art & Interaction in New Media, a large-ish (~200 students) introductory code/art programming and interaction design course. This course is open to both CS and non-CS students, and can be counted towards a major in both the CS and the ANU School of Art an...
- highlight.js with xtlang support 17 Jan 19
I've just spent a solid day wrestling with source code syntax highlighting on my blog, and I've finally got it figured out. Tada:...
- The annual benswift.me re-write: 2019 edition 2 Jan 19
Welcome, traveller. You've managed to find my blog without being eaten by a grue. If you haven't visited for a while, you might have noticed that I've re-written my website. Again....
- Another reveal.js plugin for Jekyll 28 Sept 18
I use Jekyll to create my course websites and reveal.js to create my lecture slides. Both of them are awesome, and allow me to focus on writing (hopefully) great content, and the formatting/presentation stuff stays out of the way until I git push the updates to the server....
- Hosting a self-built jekyll site on GH pages 22 June 18
This blog is built from markdown files using Jekyll hosted on GitHub pages, which saves a lot of hassle involved with DIY hosting. There are a bunch of useful tutorials on how to set all this up....
- COMP1720 teaser 10 July 17
If you're an ANU student and you want to learn how to make art with code, then sign up for COMP1720/6720 in semester 2, 2017. Taught by me and a bunch of internationally recognised artists (there's a weekly computational artist guest lecture) it's the best way to scratch the art+code itch at the ANU....
- benswift.me update (July 2017 edition) 6 July 17
Well, benswift.me has been given another coat of paint. The content's still a bit sparse, but hopefully this time it'll be the place to go to keep up with my adventures in livecoding, research and just generally making thing with computers---and teaching others to do the same....
- Blog refresh 1 Dec 16
Another year, and another blog refresh. It's still a clojure-powered static site with my own fumbling, hand-rolled css, but this time I'm using Cryogen which has been pretty nice to work with so far....