Tui
-
October 20, 2026
The Case of the Vanishing Blink
For years, picking an item on the Phosphor main menu did a small, satisfying thing: the row flashed — inverted video for about 150 milliseconds — and …
-
October 19, 2026
Synchronized Updates and Frame Coalescing: How Phosphor Paints Atomic Screens
A BBS screen is a grid of characters, and for as long as character grids have flown over dial-up lines and TCP sockets alike, they have had one …
-
October 5, 2026
The Case of the Invisible Popups
The session log screen has two popups: [H] on a row pops up that connection’s full history, and Enter pops up the session’s details. The …
-
September 23, 2026
Markdown in a Terminal: Building a MarkdownWidget for jterm
Every BBS has the same problem: text that wants to be formatted. Help screens with headings and bullet lists. News articles with paragraphs. Mail that …
-
September 23, 2026
The Case of the Blended Batches: A Race Hidden Inside a Replace
The jterm thread-safety suite exists to answer one question: can a widget survive being redrawn from one thread while another mutates it? It has run …
-
September 20, 2026
Chat From Anywhere: The Ctrl-T Popup
On a traditional BBS, chat is a place. You navigate to the chat section, you sit there, you talk. When you want to check your mail you leave chat — …
-
September 20, 2026
The Case of the Very Random Dead Ctrl-T
Two weeks into the popup chat feature, users started reporting the same thing in different words: Ctrl-T is very random. Sometimes it opened the chat …
-
September 19, 2026
Blackjack in Phosphor: A Door Game as a Language Test
Every language looks fine in its own test suite. The tests were written by the same people who wrote the language, with the same blind spots. The only …
-
September 4, 2026
The Screen That Lied: Building Idle Timers That Actually Tick
Here’s a bug report you can’t reproduce with a test: “the sessions view shows a list of users logged in, and when they change state …