Computer Things
-
Logic for Programmers now in early access!
-
Solving a math problem with planner programming
-
A brief introduction to interval arithmetic
-
Logic for Programmers Update
-
New blog post: Composing TLA+ Specifications
-
Nondeterminism in Formal Specification
-
I've been thinking about tradeoffs all wrong
-
NoCode Will Not Bring Computing to the Masses
-
What I look for in empirical software papers
-
Paradigms succeed when you can strip them for parts
-
"Integration tests" are just vibes
-
"Testing can show the presence of bugs but not the absence"
-
What makes concurrency so hard?
-
Some notes on for loops
-
Why do regexes use `$` and `^` as line anchors?
-
What if the spec doesn't match the code?
-
What Mob Programming is Bad At
-
How to argue for something without any scientific evidence
-
Know (of) the right tool for the job
-
Planning vs Model Checking
-
Strings do too many things
-
What does 'TLA+' mean, anyway
-
GitHub Search for research and learning
-
Unusual basis types in programming languages
-
Why all([]) is true, prod([]) is 1, etc
-
Advice for new software devs who've read all those other advice essays
-
I formally modeled Dreidel for no good reason
-
When would you ever want bubblesort?
-
How do you take the average of two timestamps?
-
Some thoughts on software expertise
-
I shouldn't be so harsh on teaching TLA+ with puzzles