Computer Things
Archives
Search
Subscribe
Why all([]) is true, prod([]) is 1, etc
January 9, 2024
It's all monoids! Monoids for everyone!
Advice for new software devs who've read all those other advice essays
December 19, 2023
From a person who really shouldn't be giving others advice.
I formally modeled Dreidel for no good reason
December 12, 2023
I can mathematically prove the game's not fun.
When would you ever want bubblesort?
December 4, 2023
There are very few universal rules in software engineering, but there are are a lot of near-universal principles. Things like "prefer composition to...
How do you take the average of two timestamps?
November 9, 2023
A jaunt through affine measures and math loopholes
Some thoughts on software expertise
November 7, 2023
(Note, there's some important administrative stuff after the newsletter.) I think a lot about the nature of expertise. While I write about all sorts of...
I shouldn't be so harsh on teaching TLA+ with puzzles
November 2, 2023
I know I'm getting the newsletter out very late this week (this kind of lackadaisical nonprofessionalism is why I don't offer paid subscriptions) so I'll...
Raku is surprisingly good for CLIs
October 26, 2023
A while back I wrote Raku: a Language for Gremlins about my first experiences with the language. After three more months of using it I've found that it's...
I wish people would do historical arguments better
October 24, 2023
Just because the historical context for a practice was different doesn't mean it's useless in the current context
Some thoughts on good spec properties
October 10, 2023
Lots of updates this week! First of all, my talk Is Software Engineering Real Engineering is now available online! It's the video version of the crossover...
Picat is my favorite new toolbox language
October 3, 2023
I'm teaching a TLA+ workshop in two weeks! Register here, use the code C0MPUT3RTHINGS for 15% off. I always like to find new "toolbox languages". These are...
Was Javascript really made in 10 days?
September 28, 2023
I once heard that Javascript has so many warts because the first version was made in just ten days. I was curious 1) if this is true, and 2) if it explains...
Formal Methods can't fix everything and that's okay
September 26, 2023
Finally done with conferences and glad to be back in Chicago. Next big event is the TLA+ workshop on October 16, which still has slots available! The faster...
The best model checker is your head
September 19, 2023
Perceptual learning through model checking helps build intuition to find bugs in software designs.
If you work on a big language, I'd like to talk
September 12, 2023
The October TLA+ workshop still has some slots left! Register here, use the code C0MPUT3RTHINGS for 15% off. I wanted to write some stuff on TLA+ modeling...
Time zones are hard because people are hard
September 4, 2023
Greetings from Australia!1 It's the morning of September 5th for me and the night of September 4th in the US. In two weeks when I fly back, I will leave...
My painful, futile quest for programmable slideshow animations
August 29, 2023
I wanted a slideshow software with programmable animations. I got suffering instead.
Educational Codebases
August 21, 2023
We get better at coding by reading code, but code isn't designed to be studied. So let's make projects that *can* be studied.
Turing kicked us out of Heaven
August 14, 2023
The halting problem is why we can't have nice things.
Symmetric Properties
August 10, 2023
If you take a square and rotate it 90 degrees, you get back an identical square. We say the square is rotationally symmetric. Similarly, if you reflect it...
Newer archives
Older archives