Computer Things
RSS
Archive
Subscribe
I ****ing hate Science
July 19, 2021
I'm a big advocate of Empirical Software Engineering. I wrote a talk on it. I wrote a 6000-word post covering one controversy. I spend a lot of time reading...
Program Spaces and Interesting Counterexamples
July 12, 2021
Okay so let's say I have a function f and ask you to figure out what it is. Input's a list of integers, output is one integer. You gotta figure it out by...
10 Misconceptions about Formal Methods
July 5, 2021
Whole lotta talk about formal methods last week. Moshe Vardi dropped an ACM piece, Jean Yang wrote an essay, and Nicholas Tietz-Sokolsky frontpaged Hacker...
What is a "Specification"?
June 29, 2021
What is a specification? The most popular testing library in Ruby is called RSpec, and uses the terminology of Behavior-Driven Development, where tests are...
Physical vs Logical Time
June 21, 2021
There's nothing I'm rarin' to share so I figured I'd talk about a concept in verification I see a lot but haven't seen explicitly discussed anywhere. I don't...
Comment the Why *and* the What
June 14, 2021
People say "comment the why, not the what", the idea being that the code should be self-documenting and the comments should only be a last resort for...
Designing Software with Predicate Logic
June 10, 2021
One reason I like teaching is it helps me understand things better. This came up in a couple different ways while working on the new book, and I'm too...
Users are Nondeterministic Agents of Chaos
June 7, 2021
New Post: Clever vs Insightful Code I shared an early version with the newsletter some time back, and now the final version is done! This one is less...
Predicate Logic For Programmers
May 31, 2021
May is finally, finally over. This was one of the roughest months both jobwise and lifewise in recent memory. But now all my deadlines are over, I'm fully...
Scaffolding TLA+
May 20, 2021
I'm in the process of updating my TLA+ workshop for my class next week.1 Every time I run it I get new ideas on what to improve. After April's class, one of...
New Essay, some thoughts on method vs process
May 18, 2021
No Newsletter Next Week I hate to do this twice in three weeks, but I have a TLA+ workshop next Monday. A Brief Introduction to Esolangs Two pieces of...
Esolangs!
May 4, 2021
No Newsletter next week I have some real life stuff going on and also a secret project deadline. I'd still like to make time for the newsletter, but it's...
Can Formal Methods Succeed where UML Failed?
April 30, 2021
Last Tuesday's piece Why UML "Really" Died went viral. I'm glad that people enjoyed it, and I also was happy to use all that fallow research, but something's...
Why UML "Really" Died
April 27, 2021
May TLA+ Workshop Just one slot left! May 24-26. Learn how to find bugs that would slip right past types, test, and code review. Also surprisingly pertinent...
The Jame of Life
April 21, 2021
I have a love-hate relationship with APLs. On one hand, they're unbelievably powerful in what they can do. On the other hand, they're absolutely awful in...
Grind Smarter, not Harder
April 19, 2021
New Essay: Why Specifications Don't Compose Read it here! Didn't sneak peek it to the newsletter because I used a lot of Hugo preprocessing, so this is the...
Reject Simplicity, Embrace Complexity
April 7, 2021
"Keep it simple!" "Just write simple code!" "Great devs come up with simple solutions!" I get it. Simple code is better than complex code. It's an important...
Function Sets and Specification
April 5, 2021
May TLA+ Workshop Still three slots left! May 24-26. Learn how to find bugs that would slip right past types, test, and code review. No Newsletter Next Week...
Why Property Testing Finds Bugs Unit Testing Does Not
April 1, 2021
I intended this newsletter to be my thoughts without editing, and I have a new thought, so here goes. I want to respond to this discussion: But Kids These...
Some Rambling About Structured Text
March 29, 2021
TLA+ Workshop You know the drill. TLA+ Workshop, three days, May 24-26. Only four slots, so sign up before they're gone! New Essay Why do Interviewers Ask...
The Antipattern Scripting Language
March 27, 2021
This is a little out of the normal for this newsletter but I had an idea that I just needed to get off my brain. This is going to be a little more free-...
A Binder Full of Questions
March 22, 2021
1. A joke I once read: A certain well-known pure mathematician had a wife who, while intelligent, was not into mathematics. However, by continued practice,...
No Seriously, Hate Your Tools
March 16, 2021
TLA+ Workshop Only one slot left! 3 days, April 12-14. Register here! Why Don't Specs Compose? My friend Lars Hupel and I did a small Twitter experiment: a...
Vim is Turing-Complete
March 8, 2021
No, not VIMSCRIPT. Vim KEYSTROKES are Turing-complete.
Code is Data is YAML
March 1, 2021
This is a weirder theorycrafting post and I don't know how much I actually believe in it, but it seems like something you all'd enjoy reading. A couple weeks...
New Post, Blub Studies, and Theorycrafting
February 25, 2021
Hello everyone! First of all, new post: TLA+ Action Properties. It's about specification properties on changes to the state, not just properties on the...
J as a Desktop Calculator
February 22, 2021
Talk Tuesday I'm speaking at Berlin Function Programming Group! Noon CST tomorrow, register here. It's my standard TLA+ talk, so there won't be any major...
"Naming Things" is a Poor Name for Naming Things
February 16, 2021
It's been a while! Let's just say the past couple of weeks have not been kind to me and leave it at that. So, newsletter. I got 40% through writing about...
No, "reasoning about code" is not a scam
February 1, 2021
Late Newsletter next week Alloy workshop. Still one slot left if people are interested! No, "reasoning about code" is not a scam Last week I read “Reasoning...
Adversarial Nondeterminism
January 29, 2021
Damn, has it been two weeks since the last "real" newsletter? I feel like my brain is out shape. Anyway, I thought of a fun metaphor to explain model...
New Essay: Are We Really Engineers?
January 18, 2021
Are We Really Engineers? It's finally ready! Part one of the Crossover Project covers what inspired me to do this all, what makes engineering "engineering",...
How I got into formal methods
January 11, 2021
Alloy Workshop There's a couple slots left for the February Alloy Workshop. Feb 8th, 10 AM - 6 PM CST. Learn how to find bugs in your designs without having...
Write Code That Delivers Value to Clients
January 1, 2021
Does a person help my team deliver software to stakeholders? If they stomp their feet and demand that we spend a week reducing the program’s memory footprint...
100th Issue End-of-Year Bonanza
December 28, 2020
It's the 100th Computer Things Newsletter! I'm celebrating with a book announcement and director's commentary on all of my 2020 essays. But first, a couple...
Cross-Branch Testing
December 21, 2020
This was inspired by a few conversations I had last week. There's a certain class of problems that are hard to test: The output isn't obviously inferrable...
The Most Important Video Game Ever Made
December 14, 2020
So first question: important how? If we're just talking "impact to the game industry" it'd probably be something like Super Mario Bros or Tetris or something...
Oracle Testing
December 7, 2020
This is another experiment in producing intermediate workhorse essays, combined with a bunch of theorycrafting. Most unit tests are "example test", showing...
Safety and Liveness Properties
November 30, 2020
Hi nerds, I'm back! I didn't think about tech at all last week so don't have a whole lot on my mind this week, but let's see what I can dredge up. Workshop,...
Computer Things: Vacation Phone-In Edition
November 23, 2020
Hi all! I'm taking my first "real" vacation since I went independent two years ago. Ostensibly the plan is to spend it all juggling, cooking, and not...
Knights, Puzzles, and Hypermodels
November 16, 2020
I, being a huge nerd, am a fan of logic puzzles. One of the most famous ones is "Knights and Knaves": you have a bunch of statements from people, where...
Why I Still Use Vim
November 11, 2020
The Stack Overflow blog recently published Modern IDEs are magic. Why are so many coders still using Vim and Emacs? Posts about Vim vs Emacs vs IDEs are...
No, your clean code won't save the planet
November 5, 2020
Need to channel my election anxiety into something productive, so here you go. One baffling trend I'm seeing recently is people trying to moralize virtuous...
Programs Writing Programs
November 2, 2020
New Essay Two workers are quadratically better than one. I shared a first draft of this a couple weeks back; this time it didn't change a whole lot aside...
TLA+ Helped Me Count to Six
October 26, 2020
The TLA+ Workshop is done! I'm taking November off from workshops do complete three writing goals: Feedback from the first draft of the Crossover Project is...
The Pendulum Swings Eternal
October 19, 2020
I shouldn't have had a newsletter this week because of the TLA+ workshop, but I forgot to say "no newsletter this week" last week so guess what, extra...
Edge Case Poisoning
October 12, 2020
TLA+ Workshop Last Call The TLA+ workshop is next week! Oct 20-22, register here, use the code COMPUTRONSTUFF for $500 off. Learn how a few hours of...
We have met the Excelnemy and he is us
October 6, 2020
Workshop The TLA+ workshop is in just two weeks! Oct 20-22, register here, use the code COMPUTRONSTUFF for $500 off. Still three slots left for the workshop!...
Mystery Knowledge
September 28, 2020
Mystery Knowledge In the misty past of 2019, when I was still giving conference talks, I always meditated for 5-10 minutes before starting. Arrive early, set...
Software Engineers Don't Have Disciplines
September 22, 2020
I know I said no newsletter this week, between the Alloy workshop and my panicked rush to finish The Crossover Project, but I found this old abandoned essay...
Updates on the Crossover Project
September 14, 2020
No Newsletter Next Week I'll be teaching the Alloy workshop. Speaking of workshops… TLA+ Workshop TLA+ Workshop for October 20-22, 10 AM - 6 PM CST. 24 hours...
Newer archives
Older archives