Incoming transmission... Machines are us.
youtube.com/watch?v=faG_afMF…
Do you know what your program means?
The code arrives in seconds. The meaning is the frontier.
gist.github.com/tgrospic/ddc…
Most programmers hit the Expression Problem long before they know its name.
It’s one of the basic tests of whether a design can actually evolve.
Can you grow both the data and the operations without turning every change into surgery?
This tiny example is enough to expose it.
Adding one new case may be easy.
Adding one new operation may be easy.
Doing both, repeatedly, while old code stays untouched? That’s where architecture starts showing its teeth.
alux-network.github.io/alux-…
Once you see the matrix, there’s a more interesting question:
Why did we make representation the center of it in the first place? :)
That’s the jump from the Expression Problem to:
Expression Problem Reloaded
alux-network.github.io/alux-…
Milner made polymorphism practical. Reynolds showed why it matters: a generic definition can't make arbitrary assumptions about its type parameter. Generics let one algorithm work across types without changing what it means.
gist.github.com/tgrospic/23a…
Best Rust web framework? Why choose one? Choose all.
One spec. Multiple implementations. Switch the provider, not the API's meaning. Make independence executable.
github.com/alux-network/alux…
`/pause` takes 1 second. Can the next server start before it finishes?
Yes: release the listener in ~100µs, open the next provider, and keep accepted requests running.
That is the difference between a live service and downtime.
github.com/alux-network/alux…
What is the best Rust Web Framework?
axum? Actix Web? Rocket? warp? Poem? Salvo?
Before choosing, ask one more question:
How much of your application should have to know the answer?
Not a migration plan. Change the server 250k times per second :smile:.
ALUX serves one HTTP specification through six frameworks plus hyper, in one process.
The dynamic server can switch providers on the same address.
github.com/alux-network/alux…
Remove the RPC framework. What remains of your API definition?
These images show a declaration tied to a server library beside a specification that different implementations can interpret.
The server implements the API. It does not own it.
docs.rs/alux-jsonrpc
McBride and Paterson's traverse solves a Rust problem that ? alone cannot: run a fallible operation inside Option, while keeping failure outside.
Option<A> + (A -> Result<B,E>) -> Result<Option<B>,E>
ALUX brings that composition to Rust.
docs.rs/alux-traversable

ALT Rust code comparing two implementations of a fallible optional lookup. The manual version nests two match expressions to handle a missing key, a missing raw value, and decoding failure. The traversal version expresses the same result in one line: traverse_opt crosses the optional key and optional lookup result, while traverse runs the fallible decoder inside the remaining Option. Both return Result<Option<Record>, Error>.
I made Abramsky's interaction-first semantics executable in Agda:
strategy : A -i> B
↓ observe
function : A → B
The function is recovered from interaction, not interaction added to a function.
github.com/tgrospic/interact…
Refactored the interaction-arrows Agda: equality is now a parameter of the observer.
σ ≈[ obs ] τ
Observer = pure + bind + laws. left-id, right-id and assoc are proved once for an arbitrary observer, so adding an observation costs one record and no new proofs.
@leithaus this is the shape behind my question. Your context bisimulation is derived uniformly from the presentation, so the observation is fixed by the machinery. Is it a parameter anywhere, or does each language get the one equivalence and then calibrate?
A service diagram is a higher viewpoint, not necessarily a higher level of abstraction expressivity.
The harder question is: which distinctions can the program state, and how long can it postpone choosing a representation?
gist.github.com/tgrospic/23a…
Ask your AI:
"Give me a 2-week plan to move one level up in the language I already use."
gist.github.com/tgrospic/23a…
Conal Elliott's challenge: unlimited progress requires arbitrary composition.
Search tools can enlarge the tractable region. Compositional laws change how the problem scales because established meaning survives combination.
gist.github.com/tgrospic/23a…
Ask your AI:
"Level 1 to 5: where am I, where do I think I am, and where is the gap?"
gist.github.com/tgrospic/23a…



















