Scroll Wheel

Exploring new tech and everything else...

Installing OpenClaw on a Raspberry Pi 4B

2026-04-26 8 min read Michael Swann

OpenClaw

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 “…what do I need this for?”. 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.

Continue reading

A human wrote the original

2026-04-22 5 min read Michael Swann

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’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’t believe it would say things like “I’m sorry you feel that way…” or “That’s a really good question and I can see you’ve thought about this a lot…”. I have become numb to these kind of messages and it was sobering to see his reaction.

Continue reading

Rate limiting in multi-tenant LLM applications

2026-04-07 16 min read Michael Swann

Introduction

Before deploying a multi-tenant app, managing individual usage and preventing noisy neighbours is one of the most important things to get right. It’s an issue that only presents itself once you have real users and it may be costly to find out you weren’t prepared.

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.

Continue reading

How I Built a Lightweight Bridge for LLM Frontend Tool Calling in Django

2026-03-28 8 min read Michael Swann

I’ve been experimenting with giving LLMs the ability to control a web app’s interface as it runs. Not just streaming text into a chat window, but actually invoking JavaScript functions directly in the browser.

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… wouldn’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.

Continue reading