{"@attributes":{"version":"2.0"},"channel":{"title":"pscanf.com - Software","description":"Software articles by pscanf","link":"https:\/\/pscanf.com\/","item":[{"title":"The User Is Visibly Frustrated","link":"https:\/\/pscanf.com\/s\/354\/","guid":"https:\/\/pscanf.com\/s\/354\/","description":"\nIn this article, I try to understand why coding agents can be infuriating to\nuse. I think the problem is their conversational UX: they behave enough like\nhelpful colleagues to trigger our social instincts, but they don't learn,\nadapt, or take responsibility the way people do, which makes their repeated\nmistakes feel much more frustrating than they should.\n\n","pubDate":"Wed, 06 May 2026 00:00:00 GMT"},{"title":"Darts","link":"https:\/\/pscanf.com\/s\/353\/","guid":"https:\/\/pscanf.com\/s\/353\/","description":"\nIn this article, I share what I learned about darts after recently discovering\nthe game: surprisingly, the bullseye isn't the highest-scoring target on the\nboard, and pros usually aim for another target instead (the triple 20).\n\n\nThrough a couple of interactive simulations, I show that this strategy,\nhowever, only pays off at high accuracy: the triple 20 is surrounded by\nlow-scoring segments, so, for noobs like me, the bullseye remains the better\nbet.\n\n","pubDate":"Wed, 29 Apr 2026 00:00:00 GMT"},{"title":"Can We Measure Software Slop? An Experiment","link":"https:\/\/pscanf.com\/s\/352\/","guid":"https:\/\/pscanf.com\/s\/352\/","description":"\nIn this article, I propose a definition of software slop based on human\nattention (slop = code that hasn't been reviewed or verified) and sketch out a\nway to estimate how \"sloppy\" a piece of software is.\n\n\nI put it to the test with Slop-O-Meter, an experimental tool that analyzes\npublic GitHub repos and assigns them a sloppiness score. I then discuss the\nresults of the tool, which are not very reliable, but interesting nonetheless.\n\n","pubDate":"Sun, 05 Apr 2026 00:00:00 GMT"},{"title":"Improvised Software","link":"https:\/\/pscanf.com\/s\/351\/","guid":"https:\/\/pscanf.com\/s\/351\/","description":"\nIn this article, I explore what happens if you:\n\n\nLet users extend your app with code snippets.\nGive them access to an LLM that writes those snippets for them.\n\n\nThis approach allows you to solve problems whose complete scope you don't\nknow beforehand and that would otherwise be very difficult, if not\nimpossible.\n\n\nThrough three examples, I show how I employ this approach in my app. I then\ndiscuss the key challenge of correctness: how to make LLM-generated code\nreliable using strategies like type-checking and feedback loops, and how to\nhandle inevitable mistakes when they occur.\n\n","pubDate":"Tue, 11 Nov 2025 00:00:00 GMT"},{"title":"Answering is Easy\u2014When You Have the Data","link":"https:\/\/pscanf.com\/s\/350\/","guid":"https:\/\/pscanf.com\/s\/350\/","description":"\nIn this article, I show how mainstream AI assistants connected to your apps\nstumble when asked simple questions about the data in them. This is because\nthey only see fragments of your data, leading to slow, error-prone answers and\neven outright hallucinations.\n\n\nI compare this to Superego, the open-source personal database I develop,\nwhich takes a different path by syncing the full dataset locally and letting\nthe model write and run code over it, an approach that yields much better,\nmuch faster results.\n\n","pubDate":"Mon, 03 Nov 2025 00:00:00 GMT"},{"title":"Hyper-Typing","link":"https:\/\/pscanf.com\/s\/341\/","guid":"https:\/\/pscanf.com\/s\/341\/","description":"\nIn this article, I talk about an inherent trade-off in TypeScript's type\nsystem: stricter types are safer, but often more complex. I describe a\nphenomenon I call \"hyper-typing\", where libraries - in pursuit of perfect type\nsafety - end up with overly complex types that are hard-to-understand, produce\ncryptic errors, and paradoxically even lead to unsafe workarounds.\n\n\nI argue that simpler types, or even type generation, often lead to a more\npractical and enjoyable developer experience despite being less \"perfect\".\n\n","pubDate":"Mon, 05 May 2025 00:00:00 GMT"},{"title":"Own Data, Own Software","link":"https:\/\/pscanf.com\/s\/340\/","guid":"https:\/\/pscanf.com\/s\/340\/","description":"\nIn this article, I talk about \"local-first\", a paradigm for building software\nthat runs on your device, stores data locally, and syncs across devices\nwithout depending on cloud servers. I contrast it with the \"cloud-first\"\napproach we're all accustomed to, highlighting the benefits of local-first for\nthe user.\n\n\nI then share my vision for Superego, a product I'm developing that combines a\npersonal, general-purpose database with a platform for building local-first\napps, aiming to create an ecosystem that champions the ideals of data and\nsoftware ownership.\n\n","pubDate":"Mon, 10 Mar 2025 00:00:00 GMT"},{"title":"Mock Server: an Awesome Tool for Frontend Development","link":"https:\/\/pscanf.com\/s\/270\/","guid":"https:\/\/pscanf.com\/s\/270\/","description":"\nIn this post, I explain what is a mock server and why is it a helpful tool for\ndeveloping frontend applications, explaining some of its main benefits. I\nconclude giving a couple of tips to help you choose a mock server for your\napps.\n\n","pubDate":"Sun, 08 Jul 2018 00:00:00 GMT"}]}}