GraphQL’s poor developer experience
GraphQL’s touted advantages are numerous, including data retrieval efficiency, and flexibility that it can enable. The Apollo GraphQL page even calls its developer experience its greatest benefit, but this is only true from the API owner’s perspective, not the API consumer’s. That might explain why it sells so well to…
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…