41554 blogs · [ { "id": "01a0873d-133f-72e4-86cd-41efd3a9e77f", "title": "AI prompts in discovery", "url": "https://benswift.me/blog/2026/08/21/ai-prompts-in-discovery/", "published_at": "2026-08-21T00:00:00+00:00" }, { "id": "01a0873d-1340-73d8-9d2b-798489204d41", "title": "Fifty-five billion tokens", "url": "https://benswift.me/blog/2026/08/19/fifty-five-billion-tokens/", "published_at": "2026-08-19T00:00:00+00:00" }, { "id": "01a0873d-1340-73d8-9d2b-79848920d83d", "title": "The moats are still shallow but the stakes are much higher", "url": "https://benswift.me/blog/2026/08/11/the-moats-are-still-shallow-but-the-stakes-are-much-higher/", "published_at": "2026-08-11T00:00:00+00:00" }, { "id": "01a0873d-1345-70ae-889f-0344066cfd2d", "title": "A typeface for humans, not machines", "url": "https://benswift.me/blog/2026/07/22/a-typeface-for-humans-not-machines/", "published_at": "2026-07-22T00:00:00+00:00" }, { "id": "01a0873d-1345-70ae-889f-0344074264b2", "title": "Shallow moats, eighteen months on", "url": "https://benswift.me/blog/2026/07/19/shallow-moats-eighteen-months-on/", "published_at": "2026-07-19T00:00:00+00:00" }, { "id": "01a0873d-1345-70ae-889f-03440772b71f", "title": "Becoming a better atproto citizen", "url": "https://benswift.me/blog/2026/07/12/becoming-a-better-atproto-citizen/", "published_at": "2026-07-12T00:00:00+00:00" }, { "id": "01a0873d-1345-70ae-889f-0344082b3323", "title": "Knowing which Claude is stuck", "url": "https://benswift.me/blog/2026/07/10/knowing-which-claude-is-stuck/", "published_at": "2026-07-10T00:00:00+00:00" }, { "id": "01a0873d-1345-70ae-889f-034408f903f3", "title": "The World University Index", "url": "https://benswift.me/blog/2026/07/02/the-world-university-index/", "published_at": "2026-07-02T00:00:00+00:00" }, { "id": "01a0873d-1345-70ae-889f-034409ad78ee", "title": "When the work is the output, not the paper", "url": "https://benswift.me/blog/2026/06/27/when-the-work-is-the-output-not-the-paper/", "published_at": "2026-06-27T00:00:00+00:00" }, { "id": "01a0873d-1345-70ae-889f-034409f144b2", "title": "Opus 4.8 meets ELIZA", "url": "https://benswift.me/blog/2026/06/22/opus-4-8-meets-eliza/", "published_at": "2026-06-22T00:00:00+00:00" }, { "id": "01a0873d-1345-70ae-889f-03440a8d6278", "title": "Giving my livecoding gigs a DOI", "url": "https://benswift.me/blog/2026/06/18/giving-my-livecoding-gigs-a-doi/", "published_at": "2026-06-18T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91898100b9", "title": "A timezone-aware World Cup poster in Typst", "url": "https://benswift.me/blog/2026/06/13/a-timezone-aware-world-cup-poster-in-typst/", "published_at": "2026-06-13T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9189ef1393", "title": "The verification I never verified", "url": "https://benswift.me/blog/2026/06/06/the-verification-i-never-verified/", "published_at": "2026-06-06T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918aafa826", "title": "XKCD 1319: we now live on the theory curve", "url": "https://benswift.me/blog/2026/05/28/xkcd-1319-we-now-live-on-the-theory-curve/", "published_at": "2026-05-28T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918afcfb26", "title": "Slop Salon: six AI artists, one constitution", "url": "https://benswift.me/blog/2026/05/21/slop-salon-six-ai-artists-one-constitution/", "published_at": "2026-05-21T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918bb3e22b", "title": "Three circles for thinking about LLMs", "url": "https://benswift.me/blog/2026/05/12/three-circles-for-thinking-about-llms/", "published_at": "2026-05-12T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918be7b41a", "title": "On Agentic Tools and Lock-in", "url": "https://benswift.me/blog/2026/05/04/on-agentic-tools-and-lock-in/", "published_at": "2026-05-04T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918c7e1536", "title": "A static site that takes pull requests", "url": "https://benswift.me/blog/2026/04/28/a-static-site-that-takes-pull-requests/", "published_at": "2026-04-28T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918d2330a0", "title": "The road to COMP4020: token management by proxy", "url": "https://benswift.me/blog/2026/04/22/comp4020-token-management-by-proxy/", "published_at": "2026-04-22T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918d650c61", "title": "The road to COMP4020: pledges, not questions", "url": "https://benswift.me/blog/2026/04/16/comp4020-pledges-not-questions/", "published_at": "2026-04-16T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918e12196d", "title": "COMP4020: assessment", "url": "https://benswift.me/blog/2026/04/15/comp4020-assessment/", "published_at": "2026-04-15T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918eb36c8c", "title": "One git heatmap to rule them all", "url": "https://benswift.me/blog/2026/04/09/one-git-heatmap-to-rule-them-all/", "published_at": "2026-04-09T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918f3616ba", "title": "The road to COMP4020: Agentic Coding for Conscientious Objectors", "url": "https://benswift.me/blog/2026/04/08/agentic-coding-for-conscientious-objectors/", "published_at": "2026-04-08T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918f57b2a7", "title": "Getting a reTerminal DM running as a Nerves kiosk in 2026", "url": "https://benswift.me/blog/2026/04/08/reterminal-dm-nerves-kiosk/", "published_at": "2026-04-08T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918f877a0d", "title": "The road to COMP4020: the professorial class", "url": "https://benswift.me/blog/2026/04/07/the-professorial-class/", "published_at": "2026-04-07T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff918ff203a3", "title": "Ask Ben (powered by Gemma 4)", "url": "https://benswift.me/blog/2026/04/03/ask-ben-powered-by-gemma-4/", "published_at": "2026-04-03T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9190db34bc", "title": "The road to COMP4020: Anthropic comes to the party", "url": "https://benswift.me/blog/2026/04/02/anthropic-comes-to-the-party/", "published_at": "2026-04-02T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9191404464", "title": "COMP4020: the story so far", "url": "https://benswift.me/blog/2026/03/31/comp4020-the-story-so-far/", "published_at": "2026-03-31T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91918edecf", "title": "The road to COMP4020: agents in the classroom?", "url": "https://benswift.me/blog/2026/03/30/comp4020-agents-in-the-classroom/", "published_at": "2026-03-30T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9191cf6758", "title": "The road to COMP4020: what's the theory here?", "url": "https://benswift.me/blog/2026/03/30/comp4020-whats-the-theory-here/", "published_at": "2026-03-30T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91920e5b15", "title": "The road to COMP4020: managing the strategic token reserve", "url": "https://benswift.me/blog/2026/03/27/managing-the-strategic-token-reserve/", "published_at": "2026-03-27T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9193003ac8", "title": "The road to COMP4020: the weekly questions", "url": "https://benswift.me/blog/2026/03/26/comp4020-the-weekly-questions/", "published_at": "2026-03-26T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9193c7a463", "title": "The road to COMP4020: course software environment", "url": "https://benswift.me/blog/2026/03/24/course-software-environment/", "published_at": "2026-03-24T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91946655c5", "title": "The road to COMP4020: Agentic Coding Studio", "url": "https://benswift.me/blog/2026/03/20/agentic-coding-studio/", "published_at": "2026-03-20T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9194c743e7", "title": "Perceptron apparatus: inference walkthrough", "url": "https://benswift.me/blog/2026/03/19/perceptron-apparatus-inference-walkthrough/", "published_at": "2026-03-19T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919568a5e3", "title": "The road to COMP4020: Radical openness", "url": "https://benswift.me/blog/2026/03/18/radical-openness/", "published_at": "2026-03-18T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9195883fdd", "title": "The road to COMP4020: safety, YOLO and the open web", "url": "https://benswift.me/blog/2026/03/05/comp4020-safety-yolo-and-the-open-web/", "published_at": "2026-03-05T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91959d2850", "title": "Mini neon perceptron: XOR edition", "url": "https://benswift.me/blog/2026/03/03/mini-neon-perceptron-xor-edition/", "published_at": "2026-03-03T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9195ca52b6", "title": "Extempore is alive on aarch64 (part deux)", "url": "https://benswift.me/blog/2026/02/26/extempore-is-alive-on-aarch64-part-deux/", "published_at": "2026-02-26T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91965e2818", "title": "The road to COMP4020: climbing the \"good\" gradient", "url": "https://benswift.me/blog/2026/02/24/climbing-the-good-gradient/", "published_at": "2026-02-24T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9197198341", "title": "The road to COMP4020: the core mechanic", "url": "https://benswift.me/blog/2026/02/20/comp4020-the-core-mechanic/", "published_at": "2026-02-20T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9197b4b3c4", "title": "AT-URIs as persistent identifiers for scholarly blogging", "url": "https://benswift.me/blog/2026/02/19/at-uris-as-persistent-identifiers-for-scholarly-blogging/", "published_at": "2026-02-19T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91986b3563", "title": "Ben's dev setup 2026 edition", "url": "https://benswift.me/blog/2026/02/18/ben-s-dev-setup-2026-edition/", "published_at": "2026-02-18T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91987bbb8c", "title": "The road to COMP4020: providing sharp tools", "url": "https://benswift.me/blog/2026/02/17/comp4020-sharp-tools/", "published_at": "2026-02-17T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91993089e6", "title": "LLMs Unplugged at Brimbank Tech School", "url": "https://benswift.me/blog/2026/02/09/llms-unplugged-at-brimbank-tech-school/", "published_at": "2026-02-09T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9199634334", "title": "AI Agents on (in?) the Atmosphere", "url": "https://benswift.me/blog/2026/02/06/ai-agents-on-the-atmosphere/", "published_at": "2026-02-06T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff9199d82ed2", "title": "Out of the browser: on the power of interfaces for agentic AI", "url": "https://benswift.me/blog/2026/02/05/out-of-the-browser-on-the-power-of-interfaces-for-agentic-ai/", "published_at": "2026-02-05T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919a12b9c7", "title": "Coding agents and the plasticity of code", "url": "https://benswift.me/blog/2025/12/23/coding-agents-and-the-plasticity-of-code/", "published_at": "2025-12-23T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919aef95c3", "title": "COMP4020/8020: Rapid Prototyping for the Web", "url": "https://benswift.me/blog/2025/12/19/comp4020-rapid-prototyping-for-the-web/", "published_at": "2025-12-19T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919b007da9", "title": "Extempore's aliiiiive on aarch64", "url": "https://benswift.me/blog/2025/12/17/extempore-s-aliiiiive-on-aarch64/", "published_at": "2025-12-17T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919bb8bc9c", "title": "Fixing slow Zed agent startup times", "url": "https://benswift.me/blog/2025/12/17/fixing-slow-zed-agent-startup-times/", "published_at": "2025-12-17T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919bc002af", "title": "Interactive neon perceptron visualisation", "url": "https://benswift.me/blog/2025/12/11/neon-perceptron-digital-twin/", "published_at": "2025-12-11T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919cb57c43", "title": "LLMs Unplugged: teaching language models with pen, paper, and dice", "url": "https://benswift.me/blog/2025/12/10/llms-unplugged-teaching-language-models-with-pen-paper-and-dice/", "published_at": "2025-12-10T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919d137b1a", "title": "Blog archaeology", "url": "https://benswift.me/blog/2025/12/03/blog-archaeology/", "published_at": "2025-12-03T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919d7d4728", "title": "Switching from Jekyll to VitePress", "url": "https://benswift.me/blog/2025/12/02/switching-from-jekyll-to-vitepress/", "published_at": "2025-12-02T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919dd31982", "title": "11ty and Vite for modern static websites", "url": "https://benswift.me/blog/2025/11/24/11ty-and-vite-for-modern-static-websites/", "published_at": "2025-11-24T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919e35730d", "title": "Seeing AI tasks through a TAM lens", "url": "https://benswift.me/blog/2025/11/12/seeing-ai-tasks-through-a-tam-lens/", "published_at": "2025-11-12T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919e37f6aa", "title": "Tracking APS AI Transparency Statements", "url": "https://benswift.me/blog/2025/11/11/tracking-aps-ai-transparency-statements/", "published_at": "2025-11-11T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919f11d4f7", "title": "Cybernetic Studio Launch @ SXSW Sydney", "url": "https://benswift.me/blog/2025/10/08/cybernetic-studio-launch-sxsw-sydney/", "published_at": "2025-10-08T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919fe0a3b4", "title": "The great 2025 email yak-shave: O365 + mbsync + mu + neomutt + msmtp", "url": "https://benswift.me/blog/2025/09/12/the-great-2025-email-yak-shave-o365-mbsync-mu-neomutt-msmtp/", "published_at": "2025-09-12T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff919fe290b9", "title": "Running Claude Code within Zed", "url": "https://benswift.me/blog/2025/07/23/running-claude-code-within-zed/", "published_at": "2025-07-23T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91a08aa3aa", "title": "Agentic AI: LLMs with stones", "url": "https://benswift.me/blog/2025/07/17/agentic-ai-llms-with-stones/", "published_at": "2025-07-17T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91a186e973", "title": "Automated RPi Web Kiosk Setup in 2025", "url": "https://benswift.me/blog/2025/07/16/automated-rpi-web-kiosk-setup-in-2025/", "published_at": "2025-07-16T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91a19c6fc1", "title": "DIYChatGPT Short Course for ANU Undergraduates", "url": "https://benswift.me/blog/2025/07/07/diychatgpt-short-course-for-anu-undergraduates/", "published_at": "2025-07-07T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91a1b96910", "title": "Agentic Elixir superpowers: Zed + Tidewave + AshAI", "url": "https://benswift.me/blog/2025/06/06/agentic-elixir-superpowers-zed-tidewave-ashai/", "published_at": "2025-06-06T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91a29aa13b", "title": "DeepSeek and shallow moats", "url": "https://benswift.me/blog/2025/02/18/deepseek-and-shallow-moats/", "published_at": "2025-02-18T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91a3860fd6", "title": "LLM Parlour Games for Overeducated Wankers", "url": "https://benswift.me/blog/2024/11/07/llm-parlour-games-for-overeducated-wankers/", "published_at": "2024-11-07T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91a4560db1", "title": "Format Markdown on save in Zed using Prettier", "url": "https://benswift.me/blog/2024/09/20/format-markdown-on-save-in-zed-using-prettier/", "published_at": "2024-09-20T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91a4c09e5d", "title": "Hosting a genAI trivia night", "url": "https://benswift.me/blog/2024/08/12/hosting-a-genai-trivia-night/", "published_at": "2024-08-12T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91a58a649a", "title": "Livecoding set ICLC'24 - Shanghai Concert Hall", "url": "https://benswift.me/blog/2024/05/30/livecoding-set-iclc-24-shanghai-concert-hall/", "published_at": "2024-05-30T00:00:00+00:00" }, { "id": "01a0873d-1346-72b6-aa17-ff91a5ddff61", "title": "Congrats Dr. Chenchen Xu", "url": "https://benswift.me/blog/2023/06/01/congrats-dr-chenchen-xu/", "published_at": "2023-06-01T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a56915267", "title": "Parental leave take 3", "url": "https://benswift.me/blog/2023/05/13/parental-leave-take-3/", "published_at": "2023-05-13T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5732167b", "title": "Writing graph theory proofs with ChatGPT", "url": "https://benswift.me/blog/2023/02/08/writing-graph-theory-proofs-with-chatgpt/", "published_at": "2023-02-08T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a57fc9c92", "title": "Academic integrity guidelines re: ChatGPT and generative AI tools", "url": "https://benswift.me/blog/2023/02/02/academic-integrity-policy-re-chatgpt-and-generative-ai-tools/", "published_at": "2023-02-02T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a58079435", "title": "Jekyll build speedups for Ruby 3.2", "url": "https://benswift.me/blog/2023/02/02/jekyll-build-speedups-for-ruby-3-2/", "published_at": "2023-02-02T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a58baf8aa", "title": "Congrats Dr. Kieran Browne", "url": "https://benswift.me/blog/2023/01/26/congrats-dr-kieran-browne/", "published_at": "2023-01-26T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a58cdf04e", "title": "So, you want to use ChatGPT in the classroom?", "url": "https://benswift.me/blog/2023/01/26/so-you-want-to-use-chatgpt-in-the-classroom/", "published_at": "2023-01-26T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a58f7ea03", "title": "Handling Square Webhooks in Phoenix", "url": "https://benswift.me/blog/2023/01/22/handling-square-webhooks-in-phoenix/", "published_at": "2023-01-22T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5947b9f1", "title": "Are you ready for ChatGPT in the classroom this semester?", "url": "https://benswift.me/blog/2023/01/16/chatgpt-in-the-classroom/", "published_at": "2023-01-16T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a59e66d32", "title": "rclone: exclude all git repos", "url": "https://benswift.me/blog/2023/01/11/rclone-exclude-all-git-repos/", "published_at": "2023-01-11T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5a2b87b7", "title": "A School of Cybernetics strategy meeting with ChatGPT", "url": "https://benswift.me/blog/2022/12/07/a-school-of-cybernetics-strategy-meeting-with-chatgpt/", "published_at": "2022-12-07T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5ac4c140", "title": "Drinking from the bullshit firehose", "url": "https://benswift.me/blog/2022/12/07/drinking-from-the-bullshit-firehose/", "published_at": "2022-12-07T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5bc24df4", "title": "AI art installations and livecoding gigs in Nov/Dec", "url": "https://benswift.me/blog/2022/12/06/ai-art-installations-and-livecoding-gigs-in-nov-dec/", "published_at": "2022-12-06T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5c0643c1", "title": "AI in higher education: dystopia, utopia or something in between?", "url": "https://benswift.me/blog/2022/10/13/ai-in-higher-education-dystopia-utopia-or-somewhere-in-between/", "published_at": "2022-10-13T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5c819a0b", "title": "NGA Un-tour: The Hidden Gallery", "url": "https://benswift.me/blog/2022/10/12/nga-un-tour-the-hidden-gallery/", "published_at": "2022-10-12T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5d800e9f", "title": "Running stable diffusion in a singularity container", "url": "https://benswift.me/blog/2022/09/02/running-stable-diffusion-in-a-singularity-container/", "published_at": "2022-09-02T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5dac6a7e", "title": "So this is how it feels when the robots come for your job", "url": "https://benswift.me/blog/2022/06/30/so-this-is-how-it-feels-when-robots-come-for-your-job/", "published_at": "2022-06-30T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5ea1cb09", "title": "Redacting craiyon prompts with imagemagick", "url": "https://benswift.me/blog/2022/06/22/redacting-craiyon-prompts-with-imagemagick/", "published_at": "2022-06-22T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5f04f0c3", "title": "Pulling apart Zoom attendance csv dumps in tidy R", "url": "https://benswift.me/blog/2022/05/23/pulling-apart-zoom-attendance-csv-dumps-in-tidy-r/", "published_at": "2022-05-23T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5f1286d1", "title": "Teaching the world to Cybernetics", "url": "https://benswift.me/blog/2022/03/07/teaching-the-world-to-cybernetics/", "published_at": "2022-03-07T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5fccff8e", "title": "Running an AI neural style transfer model under Singularity", "url": "https://benswift.me/blog/2022/02/01/running-an-ai-neural-style-transfer-model-under-singularity/", "published_at": "2022-02-01T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a5fef7316", "title": "Cybernetic futures explained (maybe)", "url": "https://benswift.me/blog/2022/01/20/cybernetic-futures-explained/", "published_at": "2022-01-20T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a6031fa78", "title": "Livecoder-in-the-club as a system", "url": "https://benswift.me/blog/2021/11/11/livecoder-in-the-club-as-a-system/", "published_at": "2021-11-11T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a6046cdda", "title": "Deploying a Phoenix app (with LiveView) on fly.io", "url": "https://benswift.me/blog/2021/10/27/deploying-a-phoenix-app-with-liveview-on-fly-io/", "published_at": "2021-10-27T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a609a2dd4", "title": "Cutting ruby CI pipeline times with pre-installed bundles", "url": "https://benswift.me/blog/2021/10/21/cutting-ruby-ci-pipeline-times-with-pre-installed-bundles/", "published_at": "2021-10-21T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a60e55548", "title": "openconnect setup for institutional VPN access", "url": "https://benswift.me/blog/2021/10/18/openconnect-setup-for-institutional-vpn-access/", "published_at": "2021-10-18T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a612bae18", "title": "Feedback in livecoding: cui bono?", "url": "https://benswift.me/blog/2021/09/13/feedback-in-livecoding-cui-bono/", "published_at": "2021-09-13T00:00:00+00:00" }, { "id": "01a0873d-1347-72a6-8b7f-616a6193cef4", "title": "Moving to the School of Cybernetics", "url": "https://benswift.me/blog/2021/05/11/moving-to-the-school-of-cybernetics/", "published_at": "2021-05-11T00:00:00+00:00" }, { "id": "01a0873d-1348-7105-8efd-752cc934268f", "title": "LENS'21 final gig 2pm June 6 @ sideway", "url": "https://benswift.me/blog/2021/05/06/lens-21-final-gig-2pm-june-6-sideway/", "published_at": "2021-05-06T00:00:00+00:00" }, { "id": "01a0873d-1348-7105-8efd-752cca05e990", "title": "ACMC'21 + Synthmoot: Connections announced for August 26-28", "url": "https://benswift.me/blog/2021/04/29/acmc-21-synthmoot-connections-announced-for-august-26-28/", "published_at": "2021-04-29T00:00:00+00:00" } ] posts Claim your blog
Back to benswift.me
Blog · corpus.blog/blogs/benswift.me/posts

benswift.me

benswift.me

2026

2025

2024

2023

2022

2021