Computer Things
Subscribe
RSS
Archive
Regexes are Cool and Good
January 31, 2022
Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Then they solve their problem, hooray! Regexes are great! I use...
Software Artifacts and Programming vs Engineering
January 25, 2022
Hiya everyone! Workshop is all done and I'm alive again. For those of you just joining us, I teach formal methods workshops to companies. Working on a piece...
Please stop falling for conspiracy theories
January 11, 2022
I'm a pretty gullible person. When I was a kid, my sister told me that there was a monster inside the toilet. For years after I'd flush and then run out of...
The Outside View
January 3, 2022
In Superintelligence: The Idea That Eats Smart People, Maciej Pinboard nee Cegłowski talks about analyzing AI risk with the perspective of the "outside...
2nd Annual End-of-Year Essay Retrospective
December 27, 2021
Last year I rolled up the newsletter into an ebook and gave my thoughts on every published blogpost. I haven't gotten around to making the 2021 Computer...
Sup Nerds, We Doin' a Mailbag
December 20, 2021
First some good personal news: I did a hiatus over the summer due to severe depression issues. Well, I finally got into an intensive outpatient program,...
Uncomfortable Truths in Software Engineering
December 14, 2021
New Post: ADTs in TLA+ Using Abstract Data Types in TLA+. It's an adaptation of part of my TLAConf talk. It's also a lot more advanced than most of the...
A better explanation of the monty hall problem
December 9, 2021
I know I said no newsletter this week but this just hit me and it's small enough to write up so I'm fitting it in. The Monty Hall problem is a famous...
New Post: Alloy 6: It's About Time
November 29, 2021
Read it here! https://www.hillelwayne.com/post/alloy6/ Features my first attempts at using vector graphic diagrams to explain things better, like this:...
Principles of Software Evangelism
November 22, 2021
My job these days is researching exotic software technologies and selling them to companies, which means I'm a software evangelist. And because I literally...
Alloy 6 First Impressions
November 15, 2021
So a couple of weeks ago I wrote Finding Alloy's Niche, where I said I wasn't expecting the new Alloy 6 release to change all that much. It came out last...
Documentation could be so much better
November 10, 2021
A year or so back I wrote the newsletter post Don't use Markdown for documentation, where I complained about its lack of extensibility and cross-project...
Finding Alloy's Niche
November 1, 2021
(This gets a little rambly, I'm trying to figure out some stuff and thought it'd be nice to share my thinking process.) I've been thinking a lot about Alloy...
A Very Brief SPLASH Writeup
October 25, 2021
Sup nerds! Last week the SPLASH conference— the main academic conference for programming language research— came to town. I decided on a whim to buy a ticket...
The Myth of Self-Documenting Code
October 18, 2021
One of the weirdest things about software engineering is how many people hate comments. Like actually hate. There are influential people out there who say...
Defense in Depth is actually a good thing
October 14, 2021
So my TLAConf talk is out and I was gonna talk about technique research but then I saw this tweet and knew I had to rant about it: If after-release testing...
New Essay and Thoughts on Clickfarm
October 11, 2021
New Essay: How to Solve the Sudoku Puzzle with programming New essay up! How to Solve the Sudoku Puzzle with programming. This one is a little conceptual, so...
Jewmain Driven Design
October 4, 2021
Sup nerds, I'm back from Strange Loop! I have a million ideas I want to write about now, but I'll stick to one of the lighter, sillier ones. Based on a claim...
Optimizing State Spaces with Combinatorics
September 27, 2021
I'm preparing my talk for the TLA+ Conference this week. I asked around about intermediate stuff people wanted me to cover and there was a lot of interest in...
There Was No Formal Methods Winter
September 20, 2021
Over the weekend, I read the question Is the Formal Methods Winter About to End on Lobsters: Formal methods (theorem proving, model checking, static...
How ACOUP made me a better programmer
September 14, 2021
Hey nerds, I'm back! Still not all that recovered from mental health garbage, but turns out writing is a big part of my mental health, so stopping that for a...
Hiatus
August 16, 2021
Hi everyone, My depression has gotten a lot worse in the past month and it's seriously disrupted my ability to work. I'm taking steps to handle it, but in...
Art vs Engineering
August 9, 2021
I'm finally (finally!) working on a new version of the Are We Really Engineers talk, which has got me once again thinking about the differences between...
Algorithm Monocultures
August 2, 2021
A while back I got really into "corporate blogs". Why are they so soulless? Why do they all sound the same? I asked a friend had managed one of these blogs,...
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
There's this post going around the internet called Has UML died without anyone noticing?, In the piece, Ernesto Garbarino says that UML was killed by...
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...
Newer archives
Older archives