🦜 Computer Things
@buttondown.com.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.
---
Hi, I'm Hillel. This is the newsletter version of [my website](https://www.hillelwayne.com). I post all website updates here. I also post weekly content just for the newsletter, on topics like
* Formal Methods
* Software History and Culture
* Fringetech and exotic tooling
* 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.
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…
April Cools Post: New York vs Chicago Pizza
https://buttondown.com/hillelwayne/archive/april-cools-post-new-york-vs-chicago-pizza/
Published: April 1, 2026 17:53
Happy April Cools! My not-tech post this year is Chicago vs New York Pizza is the Wrong Argument, which is mostly an excuse for me to talk about Chicago food. See here for all of the other April Cools submissions. As of this email we have sixteen posts;…