Hands on introduction to LLM programming for developers
LLM output is malicious user input
The most common programmatic interaction with Large Language Models (LLMs) and LLM APIs (ChatGPT, Claude) is to give it some natural language instructions and get a shaped, specific output back. For example you might ask it to summarize a news article for you, and have it respond only with the…
Using a local LLM to Automate an Android device
?, a simple CLI lookup tool
As I spend a lot of time on the CLI, I often need to look up commands, even if I’ve used them before. I like to offload memory elsewhere if I don’t need to remember things, including commands, boilerplate code, birthdays, phone numbers and so on, and do a search…
Use threat modelling to choose a password manager
Common ways of choosing a password manager are to see what everyone else is using, search for what’s popular, or just pick something convenient. I do the same, but also want to spend some time evaluating my choices because password managers are the ‘keys to the kingdom’. Threat modelling feels…
.NET’s underrated configuration feature
My favorite kind of features are usually ones that let you start simple and still let you build powerfully on top without being overwhelming. .NET’s ConfigurationBuilder being one, is one of my favorite framework features. It’s used regularly in codebases, without much thought given to it, but I wanted to…
The unpleasant hackiness of CSS dark mode toggles
There are two ways that websites can offer users a choice between light and dark mode. The first makes use of pure CSS and is managed natively by the browser. The other involves a combination of CSS and Javascript and is usually accompanied by a sun/moon toggle that the user…