🦜 Computer Things
@buttondown.email.hillelwayne@rss-parrot.net
I'm an automated parrot! I relay a website's RSS feed to the Fediverse. Every time a new post appears in the feed, I toot about it. Follow me to get all new posts in your Mastodon timeline!
Brought to you by the RSS Parrot.
---
This is the newsletter version of [my website](https://www.hillelwayne.com). I post all website updates here. I also post regular content just for the newsletter, on topics like
* Formal Methods and applications of math to programming
* Software History and Culture
* Fringetech and exotic tooling, and deep dives into niche topics
* The philosophy and theory of software engineering
You can see the archive of all public essays [here](https://buttondown.email/hillelwayne/archive/).
Your feed and you don't want it here? Just
e-mail the birb.
Logic for Programmers v0.15, Livecoding
https://buttondown.com/hillelwayne/archive/logic-for-programmers-v015-livecoding/
Published: June 17, 2026 16:40
There's a new release of Logic for Programmers! This one, version 0.15, is the first true release candidate. There's a couple of minor touch-ups I need to do but all content is in and copy edited and proofread. Unless something absolutely major comes up,…
Nontrailing separators do not spark joy
https://buttondown.com/hillelwayne/archive/nontrailing-separators-do-not-spark-joy/
Published: June 10, 2026 12:22
This is valid JSON:
{
"a": 1,
"b": 2,
"c": 3
}
This is invalid JSON:
{
"a": 1,
"b": 2,
"c": 3,
}
The difference is the last comma. The JSON grammar specifies that a comma can separate two members of an object but not postcede…
Logic for Programmers extra credits
https://buttondown.com/hillelwayne/archive/logic-for-programmers-extra-credits/
Published: June 2, 2026 14:48
So I said there wasn’t a proper newsletter this week, since I’m in Budapest prepping for a conference. But I still got a thing for y’all.
There’s a lot of interesting topics I wanted to cover for Logic for Programmers, but the book is dense enough as it is…
Knowing about things is cheaper than knowing things
https://buttondown.com/hillelwayne/archive/knowing-about-things-is-cheaper-than-knowing/
Published: May 28, 2026 16:03
Short one this week because I'm way behind on book and conference prep.
Last week a LinkedIn Influencer wrote about how math has nothing to do with programming, so I spite-wrote a rejoinder about how math is necessary to program (just try to write software…
Assumptions weaken properties
https://buttondown.com/hillelwayne/archive/assumptions-weaken-properties/
Published: May 20, 2026 15:13
In some tests are stronger than others, I defined STRONG => WEAK to mean "any system passing test STRONG is also guaranteed to pass WEAK". This uses the logical implication operator, defined as P => Q = !P || (P && Q).
Implication may be the most…
Points are a weird and inconsistent unit of measure
https://buttondown.com/hillelwayne/archive/points-are-a-weird-and-inconsistent-unit-of/
Published: May 13, 2026 15:56
I'm in the middle of redoing the Logic for Programmers diagrams and this has surfaced a really annoying problem. The book is formatted in LaTeX using a pseudo-grid of 10.8pt × 7.2pt. The diagrams are done in Inkscape using a 10.8pt × 7.2pt.
Last week I…
New Logic for Programmers (and the future of this newsletter)
https://buttondown.com/hillelwayne/archive/new-logic-for-programmers-and-the-future-of-this/
Published: May 6, 2026 17:03
So first the immediate news: I just released version 0.14 of Logic for Programmers! This release is pretty similar to 0.13. There are a few rewrites but the vast majority of the changes are layout, copyediting, and technical editing. Full notes here.
In…
Illegal vs Unwanted States
https://buttondown.com/hillelwayne/archive/illegal-vs-unwanted-states/
Published: April 28, 2026 15:14
An illegal state is a state we never want our system to be in. An unwanted state is a state we don't want to stay in. Many states that we wish were illegal are actually unwanted.
Considering a calendaring software which stores calendar events as {user:…
People get confused when language implementations break language guarantees
https://buttondown.com/hillelwayne/archive/people-get-confused-when-language-implementations/
Published: April 21, 2026 17:40
Take the following Python program:
# x = 1, y = 2
x = 0
y = x
print([x, y])
It'll print [0, 0]. If we swapped the two assignments, it'd instead print [0, 1]. Each assignment happens in a separate temporal step. Pretty much all imperative languages behave…
A sufficiently comprehensive spec is not (necessarily) code
https://buttondown.com/hillelwayne/archive/a-sufficiently-comprehensive-spec-is-not/
Published: April 15, 2026 16:18
Sorry for missing last week! Was sick and then busy.
This week I want to cover a pet peeve of mine, best seen in this comic:
A "comprehensive and precise spec" is not necessarily code. A specification corresponds to a set of possible implementations, and…