One Secret to Quality Software

They ask us for quality. What is “quality”? “Well, free of defects.” (Oh it’s a lot more than that.) What is a “defect”? “Well, when it doesn’t work like we expect it to. Like we agreed it should.” Trust me, you didn’t specify how it works. That’s my job, as a developer. To organize all …

Read moreOne Secret to Quality Software

In defense of rationality and dynamic programming

Karl Popper defines rationality as: basing beliefs on logical arguments and evidence. Irrationality is everything else. He also defines comprehensive rationality as: only logical arguments and evidence are valid basis for belief. But this belief itself can only be accepted by choice or faith, so comprehensive rationality is self-contradictory. It also excludes a lot of …

Read moreIn defense of rationality and dynamic programming

Every action has two results (Erlang edition)

Every action has two results: a set of side effects on the world, and the next version of ourselves. I learned this from Erlang, a purely functional yet stateful programming language. Erlang uses actor-based concurrency. The language is fully immutable, yet the programs are not: every time an actor receives a message, it can send …

Read moreEvery action has two results (Erlang edition)

Provenance and causality in distributed systems

Can you take a piece of data in your system and say what version of code put it in there, based on what messages from other systems? and what information a human viewed before triggering an action? Me neither. Why is this acceptable? (because we’re used to it.)We could make this possible. We could trace …

Read moreProvenance and causality in distributed systems

An Opening Example of Elm: building HTML by parsing parameters

I never enjoyed front-end development, until I found Elm. JavaScript with its `undefined`, its untyped functions, its widely scoped mutable variables. It’s like Play-Doh, it’s so malleable. And when I try to make a sculpture, the arms fall off. It takes a lot of skill to make Play-Doh look good. Then Richard talked me into …

Read moreAn Opening Example of Elm: building HTML by parsing parameters