<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Michael Swann on Scroll Wheel</title><link>https://scrollwheel.net/author/michael-swann/</link><description>Recent content in Michael Swann on Scroll Wheel</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 26 Apr 2026 12:39:40 +0000</lastBuildDate><atom:link href="https://scrollwheel.net/author/michael-swann/index.xml" rel="self" type="application/rss+xml"/><item><title>Installing OpenClaw on a Raspberry Pi 4B</title><link>https://scrollwheel.net/posts/openclaw-rpi/</link><pubDate>Sun, 26 Apr 2026 12:39:40 +0000</pubDate><guid>https://scrollwheel.net/posts/openclaw-rpi/</guid><description>&lt;h2 id="openclaw"&gt;OpenClaw&lt;/h2&gt;
&lt;p&gt;So I am a few months late to this one, which given the current tech climate, is the equivalent to a decade. But I wanted to do an article on this because OpenClaw feels like a sign of the times, something having a lot of hype without it really being obvious why. When I first discovered it earlier this year I deployed it in a frenzy of excitement and curiosity and then afterwards I thought &amp;ldquo;&amp;hellip;what do I need this for?&amp;rdquo;. However, maybe it is super useful to a lot of people and as a developer, using OpenClaw for things like cron jobs and automating tasks etc., is actually more work and less transparent than building it myself.&lt;/p&gt;</description></item><item><title>A human wrote the original</title><link>https://scrollwheel.net/posts/ai-usage-framing/</link><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><guid>https://scrollwheel.net/posts/ai-usage-framing/</guid><description>&lt;p&gt;I was talking with a friend recently who astonishingly has never used AI. He had become curious about it since he had learnt his colleagues were using it as a therapist and he didn&amp;rsquo;t understand why. It was fascinating to get his input because when I described the kind of responses it generates he was shocked. He couldn&amp;rsquo;t believe it would say things like &amp;ldquo;I&amp;rsquo;m sorry you feel that way&amp;hellip;&amp;rdquo; or &amp;ldquo;That&amp;rsquo;s a really good question and I can see you&amp;rsquo;ve thought about this a lot&amp;hellip;&amp;rdquo;. I have become numb to these kind of messages and it was sobering to see his reaction.&lt;/p&gt;</description></item><item><title>Rate limiting in multi-tenant LLM applications</title><link>https://scrollwheel.net/posts/llm-usage-rate-limiting/</link><pubDate>Tue, 07 Apr 2026 20:39:40 +0000</pubDate><guid>https://scrollwheel.net/posts/llm-usage-rate-limiting/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Before deploying a multi-tenant app, managing individual usage and preventing noisy neighbours is one of the most important things to get right. It&amp;rsquo;s an issue that only presents itself once you have real users and it may be costly to find out you weren&amp;rsquo;t prepared.&lt;/p&gt;
&lt;p&gt;A noisy neighbour is a term applied to tenants who use the app so heavily it slows the system and degrades the experience for everybody else. This can be caused by excess strain on the application hardware or overusing a third party resource such as an API.&lt;/p&gt;</description></item><item><title>How I Built a Lightweight Bridge for LLM Frontend Tool Calling in Django</title><link>https://scrollwheel.net/posts/frontend-tooling-for-llm/</link><pubDate>Sat, 28 Mar 2026 12:44:43 +0000</pubDate><guid>https://scrollwheel.net/posts/frontend-tooling-for-llm/</guid><description>&lt;p&gt;I&amp;rsquo;ve been experimenting with giving LLMs the ability to control a web app&amp;rsquo;s interface as it runs. Not just streaming text into a chat window, but actually invoking JavaScript functions directly in the browser.&lt;/p&gt;
&lt;p&gt;During a recent project, I needed to give an LLM the ability to filter and refresh a list, if it felt the need to. And after implementing that, it got me thinking&amp;hellip; wouldn&amp;rsquo;t it be great if I could just define whatever javascript functions I wanted in the front-end and make them available to the LLM at the backend.&lt;/p&gt;</description></item></channel></rss>