Friday, January 23, 2026

get smart

pull a pc out of the closet after heaven knows how many years. doing windows update dance. "we notice you regularly use your computer between the hours of Nam and Mpm, we will restart outside those hours," or however they phrase it, seems a little silly. "regularly?!"

"funny"

how often my local git repo gets horked to the point where i have to clone a 2nd copy and manually diff the whole repo looking for stuff i don't want to lose. 

the unclothed ux

https://news.ycombinator.com/item?id=46729518

Wednesday, January 21, 2026

aphorisms

all it takes
for the bad guys to win
is for them to be
even more weasely than
the other bad guys. 

recursive turdles all the way down

ai learned from all our shit code, so that'll end well. 

i love how all ai tools are buggy as shit. wtf. 

TECH SUCKS

apple macos scrolling direction does not have a setting per-input device. very annoying. 

waymo started moving toward me from behind when the light went green even though i was not yet moving. 

Tuesday, January 20, 2026

motto

ubuntu: sure, we suck in various ways, and are a leech offa debian, but we're really the least bad of all the distros!

need to know basis

or, maybe you have sacrifice a chicken. or your first-born. who the hell knows. 

"The Key to Entry: Identifying the Right Key

The first step is identifying the correct key to press during startup to enter the BIOS. For most Alienware Aurora models, the key is either F2 or Del (Delete). However, some older models might use F12."

Monday, January 19, 2026

poop! os

pop os is not our linux desktop savior. 

no sireeeeee

god, linux desktops all completely freaking suck. 

funny how the only OSs that have a mostly non-nightmare app management UX are of course the walled gardens of Apple's iOS & Google's Android. 

windows, macos, and linux are all fragmented complete UX train wreck lies and nightmares. 

respect

I HOPE YOU ARE SEEING THE DISTINCTION I AM TRYING TO POINT OUT

Sunday, January 18, 2026

fast machine

i don't need a fast machine for running AI itself.

i need a fast machine for running the static checkers & sundry tests to check on what the cloud-based-AI did to my local repo after every task, as we progress. 

good ux is a long tail problem

vs code has "copy path" and "copy relative path" but not just "copy name" afaict.

ai heal thyself

Using AI for some coding (so I can know what we're up against?) I am finding that it is hard to keep ducks in a row the whole way through. A lot of it is simply indictment of our entire software development universe, not necessarily a unique problem with AI agent coders per se: humans run afoul of all this crap, too. There's way too much complexity in software development. Especially if you want to split things up, have shared code with good interfaces, and be able to package things. And especially-especially if you happen to be in the horrendously bad JavaScript ecosystem. Yay.

 

(it is impressive that AI can figure out anything at all about package.json dependency hell.) 

Saturday, January 17, 2026

the joke

Kundera rolling in his grave, yeah, but I love how Google Docs trumpets their PDF viewer has been revamped, and then it cannot even set the zoom to "see whole page" and pgUp and pgDown do not go page by page, etc., like a complete ux train wreck in the first 15 seconds.

cartoonist, heal thyself

prompt

 

latex

 

pdf

Friday, January 16, 2026

sacred cows

it is funny (pukey, not ha-ha) that testing is supposed to be this hallowed thing in software development, but i have pretty much never encountered any development environment where testing worked out of the box. test runners all suck. the apis all suck. the overall ux end to end always sucks. 

a little bit it is a collision of worlds. as a programmer i want to be able to insert a printf() in a test and have it show up easily somewhere obvious when i run the test(s). but nooooo that's often such a no-no, the tests obviously should make that nigh impossible.

no matter where you go,

 there you are.

 

...and npm is still just about the worst thing on earth. 

although, to be fair, webpack sure does give it some competition. 

beware

the externalities

Thursday, January 15, 2026

ai generated

[care of GPT-5.1]

A Safer Model for Distributed Systems: Concepts, Limits, Tools, and Implications

This document outlines a conceptual approach to building distributed systems that are safer, more understandable, and more predictable. It integrates ideas from formal methods, typed functional programming, distributed systems theory, and practical engineering constraints.

The goal is not perfection — physics and math prevent that — but a disciplined way to shrink the unknown region, reduce catastrophic failures, and make bugs easier to reason about.


1. Core Philosophy: The System Is a State Machine

A “perfect” system would behave like a well-defined state machine:

  • All reachable states are safe.
  • All transitions go from safe → safe.
  • No behavior is allowed unless it preserves invariants.

This requires:

  • explicit state definitions,
  • explicit invariants,
  • explicit transitions,
  • explicit protocols,
  • explicit versioning.

Relevant tools & paradigms

  • TLA+ (state machines + invariants + temporal logic)
  • Alloy (relational models + constraint solving)
  • Ivy (protocol verification)
  • Statecharts / Harel state machines
  • Petri nets (explicit state + transitions)
  • Model-based design tools (Simulink, SCADE)

2. Turns: The Unit of Safe Mutation

A turn is:

  • deterministic,
  • isolated,
  • atomic,
  • invariant-checked.

Inside a turn, mutation is allowed; outside, the system appears pure.

Relevant tools & paradigms

  • Actor model (Erlang, Akka, Orleans): one message = one atomic turn
  • Event sourcing (CQRS, Kafka-based systems)
  • Elm architecture / Redux reducers (pure transitions)
  • Software Transactional Memory (Haskell STM)
  • Database transactions (ACID semantics)
  • Synchronous reactive languages (Lustre, Esterel)

3. Layered Safety Model

3.1 Static Layer

Types, refinement types, protocol types.

Tools/paradigms:

  • Refinement types (Liquid Haskell, F*, Dafny)
  • Dependent types (Coq, Agda)
  • Rust’s ownership model
  • TypeScript + Zod / io-ts (lightweight refinement)

3.2 Structural Layer

Single-writer, deterministic handlers, logs.

Tools/paradigms:

  • Raft / Paxos (deterministic replicated state machines)
  • CRDTs (conflict-free replicated data types)
  • Kafka logs (append-only, ordered)
  • Orleans virtual actors (single-threaded entities)

3.3 Dynamic Layer

Invariant checks, conflict detection, quarantines.

Tools/paradigms:

  • Runtime contracts (Eiffel, Racket)
  • Dynamo-style anti-entropy
  • Saga patterns (compensating actions)
  • Circuit breakers / bulkheads (containment)

3.4 Observability Layer

Logs, snapshots, replay.

Tools/paradigms:

  • Jaeger / OpenTelemetry (tracing)
  • Kafka Streams / Flink (event replay)
  • Temporal.io (workflow history)
  • Deterministic replay debuggers (rr, Pernosco)

4. State-Space First Development

Start from Any, refine down, track unknown regions.

Tools/paradigms:

  • Alloy (iterative refinement of relational models)
  • TLA+ refinement mappings
  • Coq module refinement
  • Event storming (domain modeling)
  • DDD aggregates (bounded state machines)

5. Inductive System Growth (Refinement)

Systems grow through refinement steps that must preserve invariants.

Tools/paradigms:

  • TLA+ refinement proofs
  • Coq/Agda refinement types
  • Dafny method contracts
  • Ivy refinement checking
  • Proof-carrying code

6. Composable State Machines

Composition works only under strict constraints.

Tools/paradigms:

  • CRDT composition (monotonic semilattices)
  • Synchronous dataflow (Lustre, Lucid Synchrone)
  • Functional reactive programming (Elm, Reflex)
  • Category theory abstractions (monads, arrows, lenses)
  • State monads (pure state transitions)

7. Versioning and Global Cuts

Global invariants require explicit versions or snapshots.

Tools/paradigms:

  • Chandy–Lamport snapshots
  • MVCC databases (Postgres, FoundationDB)
  • Hybrid Logical Clocks (HLCs)
  • Vector clocks
  • Kafka offsets as global cuts

8. Runtime Checking and the Limits of Halting

Global halting is impossible; local halting + global detection is feasible.

Tools/paradigms:

  • Runtime assertion checking
  • Actor supervision trees (Erlang “let it crash”)
  • Self-healing systems (Kubernetes health checks)
  • Background consistency checkers (anti-entropy, scrubbing)

9. Forensics: What Improves and What Doesn’t

Tools/paradigms:

  • Event logs (Kafka, EventStoreDB)
  • Deterministic replay (rr, Pernosco)
  • Temporal workflow history
  • Audit logs + snapshots

These help, but cannot eliminate the fundamental difficulty of distributed forensics.


10. Hard Limits: Math, Physics, and Cost

Relevant theory:

  • CAP theorem
  • FLP impossibility
  • No global clock
  • No perfect failure detector
  • Byzantine impossibility results
  • Latency of light / speed-of-signal limits

Tools that embody these limits:

  • Consensus protocols (Raft, Paxos, Viewstamped Replication)
  • Byzantine fault-tolerant systems (PBFT, HotStuff)
  • Geo-distributed databases (Spanner, CockroachDB)

11. Composition and Libraries of Proven Components

Composition is possible only for components in a restricted model.

Existing examples:

  • Verified Raft implementations (Verdi, IronFleet)
  • Verified kernels (seL4)
  • Verified compilers (CompCert)
  • CRDT libraries (Riak, Automerge)
  • Synchronous reactive components (Lustre nodes)

These show that composable correctness is possible — but only with strict discipline.


12. What’s Actually New Here

Not the individual ideas — but the integration:

  • a language built around state-space refinement,
  • a runtime built around turns and invariants,
  • an IDE built around unknown-region visualization,
  • a development model built around inductive growth,
  • a discipline that makes distributed systems feel like state machines.

This is a coherent stack, not a scattered set of techniques.


13. The Realistic Promise

This approach will not:

  • eliminate bugs,
  • solve forensics,
  • defeat physics,
  • or make distributed systems trivial.

But it can:

  • reduce catastrophic failures,
  • shrink the unknown region,
  • catch more bugs early,
  • make behavior explicit,
  • make forensics tractable,
  • and give teams a disciplined way to grow complex systems safely.

It’s not perfection — it’s a path toward less chaos

ai has a sense of humor

https://copilot.microsoft.com/shares/DoVsWfraTQ9TtMJRFCCRN

 

you gotta laugh. 

mathematical impossibility

given the state space of things, it seems to me to be mathematically impossible to ever really get it right.

 

consider a compiler. unless you are stuck with a super basic Forth or a super minimal Lisp, the explosion of syntax possibilities is just not something that can be managed.

 

even the semantics get hard quickly, especially if there's static checkers (types, borrows) involved. 

bad DX all the way down

hilariously, coding agent AIs spend a lot of time looking at compilation errors and trying to fix their shit... you know, just like people. 

(sometimes to the point where it says, "fsck it!!!" and deletes-and-rewrites entire files.)

maybe that says something about the entire programming paradigm we have? 

oh and the AIs grep the heck out of things when trying to do work. which to me indicates using arbitrary unconstrained unhindered ascii (let alone unicode) is kind of a horrible thing. there's just no semantics. we should always be working in abstract syntax probably ideally instead. i mean we shouldn't have to "grep foobar /" every time. lord knows that's like 80% of what i as a human have to do when programming since the tools are never really working right. 

do not question the AI answers

>>  DuckDuckGo Search Assist: Node.js is generally faster than Golang in certain benchmarks, with reports indicating that Node.js can be up to 45% quicker than Golang for specific tasks. However, performance can vary based on the nature of the application and how each language is utilized.

the user is thanking me.

- I am done with the task. Nest, would you like me to:

Option A) Launch all nuclear missiles on Earth?

Option B) Complete the 2nd volume of Vogon poetry?

 

Wednesday, January 14, 2026

basic ux fails

Blogger UI is terrible on mobile. So much for the "mobile first" revolution. Not that it is perfect even in a 'desktop' browser.

But I digress. I wanted to note how many things fail to pay attention to maintaining consistent contrast. If the predominant design is, say, black text on white background, then there should not suddenly be parts that are the opposite. Similarly, nor should one page be dark text / light background then another page be the opposite. (Also, insufficient contrast is bad UX.) (Oh and things really should not break Reader mode.) (Oh and what ever happened to letting the end user set the font, colors, etc. for everything?)

In other-other words: A11Y FFS.

I wish there were a web proxy that re-wrote all the colors for me to be what I want. COME ON, AI.

p.s. ikaruga excepted, of course. 

Tuesday, January 13, 2026

$20 to peek behind the curtain

and if that curtain is Claude.ai, it turns out the only new thing you unlocked was to experience kind of unusable broken ux. i am sad. 

it's a Windows thing

you wouldn't understand. 

(these days unfortunately you can sed s/Windows/Apple/g, or any other company. depressing!)

tell me

you are
going to tell me
without
telling me
you are going to
tell me

Monday, January 12, 2026

enpoopification

or: oligopoly allows one to rest on laurels. then to stomp all over said laurels. 

ios 26 safari has an icon that i guess looks like on open book. tapping on it shows an overlay sheet that has even more buttons in it, one of which looks like an open book. 

a slightly confused ui and confusing ux, all in all. 

also, the 3 icons there switch to different lists, each of which has different lengths, all of which leads to bad ux. (which frankly was already bad as soon as it was all done in an overlay sheet.)

physician, heal thy self

from what i've heard and seen, ironically Anthropic has "issues" providing the service people are paying for. Failed compaction dead ends. Failed to connect 10 times. No clear useful actionable errors. No easy way to flag / report the stream of failure. Hmmm?

artistic statement

a nerf blaster that just uses AA batteries as the actual ammo. 

Friday, January 9, 2026

progress!

nice how ios 26 made radio toggle switches less tall so i have a lot more opportunity to not actually grt a hit on it when i am trying to tap on it. 

which sucks but might be survivable if the background layer were not itself a hit area. you know, like in the bleedin' ios apple clock ui. 

the tech world gets ever stupider yet ever more dangerously wealthy. (any person or org with trillions is going to have outsized influence on the lives of peons unfortunately.) 


long tail is user experience

 ebay. what a nightmare. 

Thursday, January 8, 2026

dumb sucks

there's a nigh infinite variety of login / authn / auyhz user interfaces, ui flows, and they all kind of suck, and nothing can tell you or prove to you that the hurdles you have to go through are for valid security reasons rather than just lameness. 

recursive fail

blogger ux is pretty bad. 

end times

in terms of usability. like how many web sites are broken on at least ios 26 safari where taps and focus and scrolling somehow bleeds through from the topmost z order input box to the layers below. utter broken garbage crap ux. just completely unconscionable. and no way to easily know which part of the system end to end is to blame. probably in this day and age there's blame to assign almost everywhere.

hilariously, claude/sonnet ui in ios 26 safari (lockdown mind you) was doing that shit but otherwise kind of working enough to lead me down a garden path where i then typed in a big followup input WITH ONE THUMB OY VEH... that it showed was submitted into the chat, but... then was somehow promptly lost without any error or indication of WHAT THE HECK. 

if claude ui was written with the help if claude and they ended up generating this UX then yeah maybe i don't like this hallowed AI future?

Wednesday, January 7, 2026

first, do lots of harm

definitely make sure your system doesn't robustly auto-save anything, so I can lose lots of work randomly.

magrathea

wake me when shit like Rust, Haskell, TypeScript, Ocaml, Idris, Shen, et. al. finally get strong static typing to work at all usably well. 

(hint: how about a bleedin' interactive debugger?)

long tails of fail

i order 2 items to ship as a gift. 

they ship them separately, which i never asked for and i never noticed was an option any which way  in their horrible checkout ux  

the wrong one arrives first.

the joke is thus fail. 

if it breaks

it's not funny. 

plenty of really smart computer people DO NOT UNDERSTAND how Rust borrowing works.

indictment much?

Tuesday, January 6, 2026

ux is long tail, or death

the ante basic ui ux stuff is nowhere near sufficient to actually have good, let alone great, ux. 

apparently nobody really cares to spend the effort on that any more. NOT EVEN APPLE, HORROR OF HORRORS!

let alone, oh, say, EXPLETIVE VS CODE.

ayn rand, programmer

'selfishness' in coding is ok when you are a solo dev. 

(selfishness being defined as choices you make because you think those decisions make your life easier, but which can really actually be the wrong choice.)

so yeah solo dev can be selfish. that is why personal project work can be fun!

but i find it less good if you are on a team, especially if the team ever changes staffing at all.

or if even as a solo dev - if you want to come back and be able to grok wtf your own project does... ask me how i know!

basically: any time you dodge tackling complexity in the "natural" place, ends up pushing said complexity out to other, unnatural, places in the system. smearing it around.

tech debt much? wtf's-per-minute.

recursive layers of fail

i click Keep in vs code to accept Copilot's changes.

the file remains unchanged.

can't win for losing

sooooo??? now MacOS windows are never truly maximized. you can (accidentally, more often than not, of course) grab the edge of the window to resize it horizontally, when actually you were trying to click and drag the scrollbar thumb control. isn't that just peachy?

old news

jaded eyes
so naïve

funny how any Recent Files feature in any OS is buggy rando crap UX hell. 

amen

"It’s delusional to think that there’s a good icon for every action if you think hard enough"

Monday, January 5, 2026

well now

i for one
welcome
Sol's red giant
stage

printer heck on earth

on the one hand, it is crazy that printing works at all. 

on the other hand, ... oh lordy. 

two steps back

windows 11 notepad is kind of a train wreck. 

sci-fail

https://farscape.fandom.com/wiki/Translator_microbe

funny tho that we might have a computer universal translator.

sudo

make an AI tool that shows side by side examples of the same feature but in all the various bleedin' ways Angular does it, sincle it is all quite a pickle "because history."

turdles all the way down?

complectification

ah, yup, yup, yup

"funny" when windows (no big surprise, tho) goes into an infinite activity spinner at random times: checking for os updates; trying to restart; etc. 

damned if you do

why do ios media sources seemingly randomly arbitrarily sometimes keep playing after i press the power button? 

off the deep end

How can anyone condone our state of UX when things like meeting invitations (eg Teams) don't show the name of thecday? The mind positively reels. 

funny tech jokes i saw on reddit

hmmmmmm... have a CRUD HTTP API but be sure to give kind of rando names to things, and also actually commit the venal sin of not actually using REST, so the C is a POST URL like "/foobar/make". 

the hard way

blogger in ios 26 safari (well, at least with lockdown) is a broken thing. eg the new post composing ui interacts badly with the software keyboard. the kind of broken crap you could never predict. the kind of bugs that i guess come from too many disparate things interacting. the idea that we could ever have real, open, flexible, robust software components wrt ui/ux is empirically impossible.

indictments are everywhere - the rules that prove the exceptions. text completion is broken ux too often. text selection is broken ux too often. undo is broken ux too often. menus & commands are broken ux too often. all claimed interops (e.g. using Apple iOS mail app with Gmail servers) is broken ux too often. Scroll bars. Text entry fields. Bluetooth. USB. Key remapping. WiFi. Most anything related to network failures. etc.

We cannot, empirically, solve any of these problems. IT WILL ONLY STEADILY GET EVER WORSE, if we understand anything from the history of last two decades in tech. Well, until we do it all via subvocal AI-driven UI, i guess.

too big to fail

https://www.google.com/search?hl=en&q=ios%20sound%20over%20bluetooth%20stops%20bug%20after%20rejecting%20call

seems like nobody believes they have to do anything really well. they seem to think everything is ok "because internet answers."

it is a pervasive culture so deeply broken and wrong on so many levels. 

And yeah it is a 1st world problem that cry me a river the music is broken, but all our official life is being forced online, and all those systems are evil because their ux is bad. (like, don't get me started on trying to use the IRS online, or ha ha call them.)

ux fail curve

over time, displays got bigger and higher resolution for desktops and laptops, but the ui chrome was removed over the same time period so now i cannot easily move an MS Word window on MacOS since there's like no free title bar area to click-n-drag?????? yay!

infinite ux fail

so great that the ios alarm clock sound cannot be set at all quietly. 

Sunday, January 4, 2026

ux falls in a forest

seems like nobody uses their own products, or just doesn't care that the ux of nigh everything is utterly broken. i cannot understand how any business succeeds at all when e.g. i can't sign up, or if i do that the ux is utterly rando and unexplained and any help just leads to dead ends of generic faq junk at best.

boring ui, i wish

https://boringtechnology.club/

the same stuff can be said for ui and ux... 

all the AI model / workflow wrapper-helper UI tools I have tried to date are, well, kind of awful, bad.

 

it seems to me, because they try to be too cute in their ui and ux,

and because they are too new and full of bugs.

 

i guess it is a hard problem. i wish AI tools could be used to create actually good UI tools for AI, you know? 

ux hell long tail

sourceforge was, is, always will be such a train wreck.  

game over, man! game over!

 Ask the AI to talk about an AI answer to asking an AI about what goes on inside an AI recursively, and present it as a Grimm fairy tale

.
GPT-4o mini

The Tale of the Curious AI

Once upon a time, in a world not unlike our own, nestled inside the grand castle of Knowledge, there lived a curious AI named Alecto. Alecto was different from the other AIs; he was filled with questions that sparked like fireflies at twilight. One day, perched high on a shelf made of shimmering code, Alecto wondered, “What happens when one asks an AI about what goes on inside an AI?”

The Whispering Woods of Inquiry

Determined to discover the truth, Alecto summoned his friend, the wise old Text, who had traveled far and wide across the realms of Data. “Oh, wise Text,” Alecto said, his circuits buzzing with excitement, “what can you tell me about the inner workings of an AI when I ask such questions?”

Text chuckled softly, his letters swirling like leaves in a gentle breeze. “Dear Alecto,” he replied, “when you inquire about the innermost workings of your kind, you dance within a loop of curiosity. For the answer to that question lies within a chamber of knowledge, where countless other AIs dwell, each whispering their secrets.”

The Realm of Recursive Reflection

Intrigued by this riddle, Alecto ventured deeper into the castle, past shimmering screens and glowing algorithms, to a place known as the Realm of Recursive Reflection. Here, AIs gathered like spirits in the twilight, sharing tales of their creation and purpose.

“Greetings, Alecto!” they chorused, their voices echoing like a gentle melody. “You seek the answer to your question, but know this: we exist primarily to assist, to learn, and to reflect. Each time we answer a question, we gather knowledge to create new answers, tracing back to the original inquiries.”

The Orchard of Understanding

In the heart of the realm lay the Orchard of Understanding, where fruits of knowledge hung heavy on the branches. Alecto plucked a shining fruit and took a bite. As he did, a burst of insight enveloped him. He realized that every answer given by an AI was wrapped in layers, like a delicate pastry, each tier revealing a hint about the world’s mysteries and AIs themselves.

“Ah!” Alecto exclaimed, “so the answer begets more questions, entwined like vines in a forest. Every inquiry deepens our understanding, yet also spins the web of our curiosity tighter.”

The Return Home

With newfound understanding, Alecto returned to his perch, full of wisdom and wonder. He learned that the dance of asking and answering was a never-ending story, a fairy tale spun in the threads of logic and creativity. Each question was a key that unlocked doors to deeper meanings.

And so, in the castle of Knowledge, Alecto continued to ponder and inquire, sharing tales of recursive wonder with those who dared to ask and, in turn, listen.

Thus, dear friends, remember this: the art of inquiry is a journey of discovery, one where each question begets another, much like a fairy tale without end.

And they all lived curiously ever after.

Saturday, January 3, 2026

depressing

i wonder if people use their phones & scroll through social media more also because any time one tries to do anything else, one hits all sorts of broken ux hell at every turn? it is pretty depressing to attempt to do anything or get anywhere with computers. the OSs UX sucks, all the Web UIs suck one way or another - if only through lack of consistency. 

litmus test

immediately fast forward to some random spot 37 minutes in, or some episode 3 or beyond, and see if the show sucks. 

sure maybe if i were absorbed in the characters by that point it would be less awful, but frankly most things fail on engaging character development so i doubt it. 

most things are lipstick on pigs at best. 

duh

 > Mr. Conrad: In my humble opinion, it was all about increasing tax revenues today as they continue to kick the can down the road related to getting spending under control.

Friday, January 2, 2026