A Need for Realness

Marketplaces sell finished goods. You go to a stall or a shop and you see neatly wrapped boxes of goods to peruse. These goods are ready to pick up and take home–just pay the price and be on your way. Seems like a great life.

These goods are, of course, the result of hundreds of thousands of man-hours of scheming, focus group tests, production, bikeshedding, and all the things that companies do to produce goods hoping you will purchase them. You are not looking at, judging, or paying in any way for all of the drafts that could have been along the way. You see whats been tested, polished, shipped, scalped back in all the ways to keep as profitable as possible.

[]

Plaintext & a Metadata Problem

Markdown (and refinements like Djot) are a nice way to get prose out and formatted in to annoying markups like HTML. You have to do this so that web browsers make them look pretty. Blog engines increasingly like to turn a bag of Markdown in to a website. And there’s some note-taking program named after a shiny volcano rock that has especially popularized “huge bag of Markdown files” as a notebook.

[]

Hexgears A1 keyboards are strange

I picked up a Hexgears A1 Low Profile because the keys were hot swappable and the previous keyboard I got to be a typewriter keyboard got repurposed. I took this one on a mandated trip1 and typed on it a little with the stock 50g keys. Its a bit clacky and I don’t like how hard the key were to use. Despite being 50g, they feel a lot stiffer than the supposedly 45g Gaterons in the Keychron.

[]

Beyond All Reason has a Clique Problem

Every so now and again you see Reddit posts about “BAR’s community is toxic” and far less of the time you see someone saying “actually, they’re all very nice.” The real problem in my opinion is that the TA style games are outright hostile to new blood.

One of the first lobbies I entered was called a “noob lobby.” The community has a broken stair here where they will call games “noob games” and then they actually don’t mean new players. So walking in to the server browser and assessing yourself as a new, low-skill player, and going i nto a lobby that linguistically invites other people who are bad at the game to come try it out–well, you already failed the first test. BAR uses a speial version of english.

[]

Introducing Bayesian Regret

tl;dr bayesian regret == opportunity cost, but economists had better PR

I encountered Bayesian Regret in two specific and rather odd corners: voting reformists who support Range Voting1 use it to argue that despite theoretical flaws their process results in the most actual democracy2. Pre-LLM AI engineers also talked about it–called reinforcement learning.

When you are trying to convince people to stop using gamed voting systems with high spoil rates–you give up, because internet autists will scream something about “later no harm” and purity spiral until you’re just back to First Past The Post and everyone slamming between two heads of the same hydra.

[]

Monads: A Fence with the Silly Name

Functional programming advocates occasionally talk about something called a Monad. Should you make the mistake of asking what that means, you will get the most passive aggressive answer possible. It’s typically some blotch of words that presume your day job is in programming theory and wanted a concept you already understood explained to you. The thing is Monads are conceptually very simple: it’s a fence.

If you’ve ever used a Lisp-like language or a Scheme you might consider this to be a macro. And it’s true in practice–it’s a very formally defined kind of macro. Otherwise we have some work to do.

[]

Be/Haiku’s Messaging System

In the 1990s there was a company called Be. Be created an operating system called BeOS and tried to compete against Macintosh and Microsoft. Obviously this didn’t work–but we got a very clean design for a desktop system out of it. That heritage continues as Haiku.

The Slow Lane

Despite being written in and for C++, Be is basically running the Smalltalk object model. Objects send messages to handlers. Handlers then take them in to their mailbox in some suitable fashion and process them as they can. It’s a very standard model that SDL and Allegro have also used for games since the 2000’s.

[]

How to Fail at Fighting Surveilance Capitalism under the Guise of Age Verification

In the continued adventures of billionaires trying to force everyone in to chastity belts1, the government is now mandating platforms implement “age verification APIs.” In the most basic cases these are just simply having a User is-adult flag that the platform can use to send all other age filtering down some pipeline.

The silliest case is systemd patching in a metadata field about a user’s birthdate. This is the absolute minimum for compliance and goes with California’s law without any of the Palantir contract bullshit elsewhere2. People are setting their hair on fire about making freedom forks3 that remove the age checks. Especially funny is people setting their hair on fire expecting the results of enterprise corpoware to “take a stand” against the state by refusing to implement the APIs.

[]

The Edge of Perception

Occultism and esoterica can be a very fun topic–but the etymology of the word occult and occlusion, simply means that which is difficult to see.

Let’s start with a silly concept: there’s an apple on a nearby table. But the apple is a cosmic void–trying to perceive it directly just results in seeing a big ole chunk of nothing. How can we get the apple off the table? Well you can still see the table. You can see a big existential horror gap where the apple seems to be. You can see everything around that is not the apple. Therefore you can reason about this odd artifact and still manage to pick it up1.

[]

Writing Bugs Faster with LLMs

I tested out GLM 4.71 to do some LLM-assisted programming with Nim2. One of these tests was to take hand written spec docs based on a PDF of how the LPeg3 parsing machine works. The goal was to cram through as much of the bootstrap phase as possible with it. It was able to create a recursive parser bsaed on some examples4 and mostly get it right. Then I realized while working on the AST extractor that there was a flaw in the spec.

[]