Posts tagged with "dev"
42 posts with this tag.
← Back to all posts- Ben's dev setup 2026 edition 18 Feb 26
Ghostty, zellij, helix and a life lived in text tokens---why I ditched Zed and went back to purely terminal-based development....
- Coding agents and the plasticity of code 23 Dec 25
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....
- Fixing slow Zed agent startup times 17 Dec 25
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....
- Switching from Jekyll to VitePress 2 Dec 25
After ten years on Jekyll, I moved this site to VitePress. Notes on migrating content, components, reveal.js slides, and data loading....
- 11ty and Vite for modern static websites 24 Nov 25
How to set up 11ty with Vite and Tailwind v4 for static sites that need proper asset bundling, HMR, and npm ecosystem access....
- The great 2025 email yak-shave: O365 + mbsync + mu + neomutt + msmtp 12 Sept 25
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....
- Running Claude Code within Zed 23 July 25
Switching from Zed's Agent panel to Claude Code for flat-fee pricing, with a simple task config to keep the workflow inside Zed....
- Automated RPi Web Kiosk Setup in 2025 16 July 25
A fully scripted burn-and-boot process for setting up Raspberry Pi 5s as fullscreen Chromium kiosks with Tailscale, WiFi and 4K support....
- Agentic Elixir superpowers: Zed + Tidewave + AshAI 6 June 25
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....
- Format Markdown on save in Zed using Prettier 20 Sept 24
Zed config snippet for auto-formatting Markdown files on save with Prettier, including prose wrapping at 80 columns....
- Jekyll build speedups for Ruby 3.2 2 Feb 23
Ruby 3.2's YJIT gave my Jekyll builds a 4.8x speedup---from 17 seconds down to under 4....
- Handling Square Webhooks in Phoenix 22 Jan 23
How to receive and validate Square payment webhooks in an Elixir/Phoenix app, with code for HMAC signature verification....
- rclone: exclude all git repos 11 Jan 23
A bash script to auto-exclude all git repos from rclone backups, since rclone's built-in filtering can't do it alone....
- So this is how it feels when the robots come for your job 30 June 22
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....
- 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
A pointer to my Conversation article on GitHub Copilot and what AI coding assistants mean for programmers....
- Redacting craiyon prompts with imagemagick 22 June 22
A one-liner ImageMagick command to batch-redact the prompt text from craiyon (DALL-E mini) screenshot outputs....
- Pulling apart Zoom attendance csv dumps in tidy R 23 May 22
A quick tidyverse R script for parsing Zoom attendance CSVs and visualising per-participant call duration with ggplot2....
- Running an AI neural style transfer model under Singularity 1 Feb 22
Getting a pytorch neural style transfer model running on RTX 3090s via Singularity containers, navigating CUDA version hell along the way....
- Deploying a Phoenix app (with LiveView) on fly.io 27 Oct 21
Quick notes on deploying a Phoenix 1.6 LiveView app to fly.io, including gotchas with health checks and outdated guides....
- Cutting ruby CI pipeline times with pre-installed bundles 21 Oct 21
A multi-stage Dockerfile that pre-installs Ruby gems to cut GitLab CI build times for Jekyll sites by up to 90%....
- openconnect setup for institutional VPN access 18 Oct 21
Using openconnect as a reliable alternative to the GlobalProtect client for connecting to an institutional VPN on macOS....
- benswift.me analytics/tracking update 8 Apr 21
I've added counter.dev as a lightweight, relatively un-invasive analytics tool. Ad-blocker users still welcome....
- Bulk-add students to MS Teams from a csv file 1 Apr 21
A PowerShell snippet for bulk-adding students to an MS Teams class from a CSV of email addresses---works on macOS and Linux too....
- Simple pdf papers/reports with markdown, pandoc and bibtex 16 Mar 21
A simple GitHub template for writing in markdown and producing nice PDFs via Pandoc and LaTeX, with optional BibTeX citations....
- Configuring Spacemacs org-roam & org-noter for academic writing bliss 16 Dec 20
How to get org-roam, org-roam-bibtex and org-noter working together in Spacemacs for a Zettelkasten-style academic workflow....
- mbsync v1.3.2 breaking change: <code>SubFolders</code> config required 17 July 20
The mbsync 1.3.2 update silently requires a SubFolders setting. Here's the fix, plus a bonus mu4e prettifier....
- ACMC2020: tools for organising a virtual conference 15 July 20
A detailed rundown of the tools we used to run ACMC2020 online---YouTube Premiere, Discord, EasyChair, and a lot of ffmpeg....
- benswift.me dev roadmap for 2020 17 Nov 19
My plans for this website in 2020: Jekyll 4, maybe Eleventy, maybe Netlify, maybe Tailwind....
- Making Altair/Vega-Lite charts readable without squinting 16 Oct 19
A simple trick for making Altair chart text and marks bigger: set a small width/height and export to SVG....
- Package managers: <code>update</code> or <code>upgrade</code>? 16 Oct 19
A quiz (and a plea for consistency) on whether your package manager uses update or upgrade....
- In-place XML tree mutation for Jekyll productivity 17 July 19
Profiling a slow Jekyll build, finding the culprit in Nokogiri node copying, and getting a 20x speedup by switching to in-place tree mutation....
- Mapping over table rows in org-mode 9 Mar 19
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....
- A dynamic Reimagine logo 21 Feb 19
An interactive, spinnable version of the ANU Reimagine logo, built with ClojureScript and Reagent....
- Algorithmic uni marketing billboards 16 Feb 19
A generative 'verb your verb' billboard that picks random verbs and Unsplash backgrounds, built with reveal.js and later rewritten in ClojureScript....
- Class discussions on Discourse 6 Feb 19
Switching from Piazza to self-hosted Discourse for a 200-student course forum, with practical notes on setup, tradeoffs, and what's missing....
- highlight.js with xtlang support 17 Jan 19
Getting syntax highlighting for Extempore's xtlang working on this blog, told as an FAQ full of hacks and node build shenanigans....
- The annual benswift.me re-write: 2019 edition 2 Jan 19
Another year, another website rewrite. This time it's hand-crafted HTML & CSS with modern grid layouts and the Inter UI typeface....
- Another reveal.js plugin for Jekyll 28 Sept 18
A Jekyll plugin that turns a single markdown file into reveal.js slides, splitting on headings like pandoc does....
- Hosting a self-built jekyll site on GH pages 22 June 18
A simple Makefile for building Jekyll locally with custom plugins and pushing the output to GitHub Pages....
- COMP1720 teaser 10 July 17
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....
- benswift.me update (July 2017 edition) 6 July 17
Another redesign of benswift.me---this time aiming to be the home for livecoding, research, and making things with computers....
- Blog refresh 1 Dec 16
Migrated to Cryogen and moved the Extempore docs to their own site. Some links are broken, bear with me....