Writing
A place for scribbles and notes, mostly so I can revisit things I find interesting, instead of leaving them to rot in my phone's notes app. If something here is useful to you too, that's a bonus.
Alfred, the Batcave, and the Tiny SSH Tunnel
How I access a private Hermes dashboard on a VPS without putting it on the public internet: SSH keys, tunnels, ports, and the small command that hides the plumbing.
- Why the Cheap AI Model Can Still Cost MoreA simple explanation of API billing, prompt caching, and why a subscription model can feel much cheaper than pay-per-token usage.
- The agent is not the harnessTwo words that appear constantly in AI writing and almost never get explained. Here is what they actually mean and why the difference matters.
- Alfred lives in Helsinki nowI put an AI on a server in Helsinki. It texts me good morning. Here is what it took to get there, and why it feels different from every other AI tool I have used.
- Running AI on your own laptop is real now, but your laptop will remind you of its limitsDownloaded LM Studio today, tried a Google Gemma model, and immediately started wanting a bigger Mac.
- Two copies of the same folder, because AI tools can't agree on where to put thingsClaude uses .claude/. Other agents use .agents/. Nobody agreed on this. Here's how to stop duplicating files.
- Your agent doesn't know what good looks likeSkills are portable instruction sets for AI coding agents. Here is why that matters, and one skill that actually gets design right.
- Multiple git branchesGit lets you have multiple branches checked out at the same time. Here is how that works and when it's useful.
- Git Is Just Text Files Pointing at Other Text FilesInside every Git repo is just a folder of small text files pointing at each other. Here is what they are.
- How to PromptHow to ask AI better questions — not vague, not clever, just specific and clear.
- The AI EcosystemA plain-language map of the AI tools worth knowing: assistants, builders, local runners, and more.
- How Claude Code Decides What to Listen ToClaude Code reads several layers of instructions at once. Here is what they are and how they interact.
- Building AI ProjectsA step-by-step workflow for building software with AI — from idea to working app.
- Claude CodeHow to install Claude Code, what it can do, and how to get the most out of it.
- Tools and the CLIIDE extensions like Copilot versus terminal agents like Claude Code — what they are and when to use each.
- What is MCPMCP is the standard that lets AI models connect to external tools. Here is what it is and how it works.
- The Model LandscapeGPT, Claude, Gemini, Llama — what they are, who makes them, and how to choose.
- How LLMs WorkTokens, context windows, temperature, attention — the basics of how a language model actually works, without the hype.
- A Brief History of AIFrom the 1956 Dartmouth conference to ChatGPT and beyond — the short version of how we got here.
- What AI Actually IsAI is not magic and it is not a person. It is a prediction machine. Here is what that actually means.
- A Brief History of How the Web Got So ComplicatedA confused dev’s guide to how the web actually works — servers, clients, static vs dynamic, and what all those acronyms really mean.
- SSH - The Secret Handshake of the InternetEver wondered what SSH actually *does* when you push to GitHub? This guide breaks it down — keys, tunnels, trust, and why your terminal doesn't ask for your password anymore.
- Scroll Containers & OverflowA deep (and slightly magical 🪄) dive into how CSS handles overflowing content — exploring everything from scroll containers to the mysteries of block formatting contexts and stacking order.
- Closure & Figure-GroundSome thoughts on how our brains perceive the world around us and how this relates to design.
- What are Prime Numbers?A short introduction to prime numbers and how to check if a number is prime
- ReactUnderstanding React
- Improving Forms with :user-valid and :user-invalidSimplifying form validation with CSS pseudo-classes
Nothing here under that topic yet.
