A curiosity journal of math, physics, programming, astronomy, and more.

On LLM-generated fiction

I may finally read The End of Average, now that LLMs have given us The Revenge of Average. Average output is acceptable for computer code, for which the purpose is to get a computer to operate in a specific way, but the human central processor works differently. We tend to ignore sameness and remember novelty. That's the root of a lot of our cognitive biases. ... Read more →

Local-only versus local-first software

Last week I wrote about a few local-only web apps I've made recently. Since I don't have a server to persist data in the cloud, they're all static sites that can export and import YAML data. A downloaded YAML file can be reloaded later to restore the app's state, or you can transfer a file to another device and load it up there. Exploring this local-centric model of state management led me to the term Local-first Software. ... Read more →

Two Safari bugs

Doing front-end development over the last couple of months, I've been reminded to test web apps in Safari. It exhibits some surprising bugs. Here are two I encountered recently. ... Read more →

Local-only web apps

Over the last few months I've created a handful of local-only web apps for my own use and for family members. They're designed for somewhat specific needs that only occasionally arise, but those needs supplied an excuse to play more seriously with Christian Johansen's suite of ClojureScript libraries, namely Replicant, Portfolio, Nexus, m1p, Lookup, and Dataspex, which I appreciate for their focus on data-driven frontend development. Each of the apps runs entirely in the browser. Chrome has a file system API, but not everyone uses Chrome (including me), so to persist data the apps save to and load from the browser's local storage, as well as providing buttons to download a file and copy data to the system clipboard, both of which export YAML. To load the data, you can import a YAML file. ... Read more →

Encoding knowledge with automation scripts

I automate a lot of the repetition in my development workflow to make tasks not just easier but also more reliable. Automation encodes knowledge. Scripts give me a place to capture things I learn. Here are descriptions of several scripts I use on a daily basis. ... Read more →

Posts by topic

Web development

Two Safari bugs

Taxicab Geometry

Circles of Apollonius