RSSAmplifier

Blog

Adam Nelson

Personal website and blog of Adam R. Nelson

adam.nels.onlRSS feed ↗6 posts

Latest posts

Chatterbox: Federated Chat that Doesn't Suck

Have you used Matrix? Do you like it? Trick question, of course you don’t. It seems like nobody likes Matrix, at least not once they’re familiar with its… quirks . It’s frustratingly overengineered, difficult to work with, full of bugs, and its insistence on E2EE makes it hard for nontechnical users to comprehend. For the past several months, I’ve been working on a better solution for federated…

Why not REST?

When writing a README for Chatterbox (my attempt at a new federated chat protocol), I wanted to explain all of my design choices. One that quickly gave me trouble was the API’s format: it uses Protobuf over a single WebSocket connection, instead of a REST API. Why did I do it this way? The obvious answer is that it’s just interesting to me. I have a lot of trouble choosing boring technology ,…

Maybe Everything Is a Coroutine

I was inspired, after reading the excellent blog post Let Futures Be Futures , by the author’s thought experiment of a language in which all functions are coroutines and this is used to express asynchronicity: async functions can yield a type called Pending when awaiting some async action, while pure, synchronous functions can yield Never , indicating that they never yield at all. The more I…

Parentheses are Just Typechecking

Consider this Scheme expression, taken from the Rosetta Code example for the Mandelbrot set :

An Object-Oriented Language for the '20s

Object-oriented programming is out of fashion now, and it has been for a while. Rarely are new programming languages intentionally object-oriented. And there are good reasons for this: OO often requires a lot of boilerplate, it forces code into unnatural object hierarchies, and it encourages hidden mutable state. But, if we made a new statically-typed OO language from scratch in 2021, something in…

Converting CJK Fonts to WOFF is Harder Than You'd Think

tl;dr: Don’t even try online converters. They’ll drop the CJK characters. Just install woff-tools and/or woff2 on your own machine. Most Linux package managers will have them; on Windows, you can use the EXEs in this GitHub repo . A few days ago, I needed to install a web font ( Noto Sans JP ) for Japanese text on a site I was working on. The site supports IE11, so I would at least need a…