Computer Things
Subscribe
RSS
Archive
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...
Raku: A Language for Gremlins
August 7, 2023
By Gremlins, For Gremlins™
GitHub has too many hidden features
July 31, 2023
Discover undocumented features of GitHub: open repos in online VSCode, add experimental features, regex code search, and more!
Queryability and the Sublime Mediocrity of SQL
July 21, 2023
I'm going to a small academic workshop on design next week. This got me thinking of the various meanings of "design", which got me thinking about the various...
More Software Projects need Defenses of Design
July 18, 2023
Explain your choices to your users!
In Defense of Slow Feedback Loops
July 11, 2023
Goodhart's Law is a cruel master.
What chocolatiering taught me about programming
July 7, 2023
And also a new blog post (and also a Patreon announcement)
Programming Language Perversity
June 30, 2023
Harold Abelson once said that code should be written for humans to read and only incidentally for computers to write. It follows that, like any form of...
Maybe Software Engineers could learn something from Linguistics
June 26, 2023
Stealing ideas from other fields to make our own field slightly better off
Agile is people, the rest is commentary.
June 21, 2023
Agile is "just" four principles. Simple, right?
Some tests are stronger than others
June 14, 2023
"Stronger" tests are better for determining correctness, while "weaker" tests are useful for localizing errors.
What's between a set and a sequence?
June 9, 2023
Sets -> {???, ???} -> Sequences
The sneering of the wilderness
June 6, 2023
Why I am so excited about the Vision Pro, and why so many other people aren't.
Collecting and curating material is good and we should do it more
May 31, 2023
Chronicling, plugin systems, and six other disjointed ideas combine in an argument of how to "engineerize" software more
Mostly announcements and plans but also some fun floating point trivia
May 16, 2023
This is a really busy week for me, so light newsletter this time. Let's start with obligatory stuff and then get into fun newsletter stuff. Announcements So...
Problems harder than NP-Complete
May 11, 2023
People always talk about "P vs NP" like P problems are easy and NP problems are hard. This is a useful day-to-day model but also an oversimplification....
The seven specification ur-languages
May 9, 2023
A brief overview of the formal specification landscape
When to prefer inheritance to composition
May 5, 2023
Hint: it involves the typechecker
Some of my workshop teaching tricks
May 2, 2023
And some thoughts on the role in software in solving problems
GPT4 should be part of your toolkit
April 25, 2023
On March 24 I wrote GPT is revolutionary. On March 27 I got access to GPT4.1 Now that I've used it for a month, I'm firmly in the "this is the greatest thing...
In Defense of No-code('s potential)
April 21, 2023
Don't think about businesses, think about *people*
What TLA+ Can't Check
April 17, 2023
Hi everyone, I wrote a new blog post, Breaking the Limits of TLA+ Model Checking. It's the first (non-learntla) TLA+-related content I've put out in what,...
I really like powershell
April 11, 2023
When I went on Windows full time in 2019 I decided to avoid WSL as much as I could, which meant learning the Windows-native ways of doing things, which meant...
The Capability-Tractability Tradeoff
April 4, 2023
The more you can say, the less you can say about what you can say.
Repurposing Hotel Keycards
April 1, 2023
April Cools!
Everything's an API
March 28, 2023
Hi Everybody, April Cools is this weekend! A bunch of people who normally write tech stuff will be writing about a bunch of other topics. If you've got a...
GPT is revolutionary
March 24, 2023
Even a stochastic parrot can sing.
Ergonomic APIs, channel invariants, and data views
March 22, 2023
Musings on a tempting antipattern
Making Memes
March 16, 2023
Fnord.
What can you code up in an hour?
March 13, 2023
Fast programming is a powerful skill.
Formalizing Stability and Resilience Properties
March 8, 2023
Via TLA+
Predicate Logic for Programmers: Status Report
March 6, 2023
A 2000-word piece on why I haven't yet finished a different piece
Hype Cycles Aren't "Gaslighting" You
March 2, 2023
I promised an update on the logic book today but I haven't done a spite write in a while and oh boy a new one is just raring to go. Update is queued up to be...
Teaching Implication Better
February 27, 2023
Hello everyone! It's finally March, or at least close enough to March for my purposes. First thing, we're a month off from April Cools! April cools is a...
Code review vs code proofreading
February 20, 2023
What if the problem with code review is that we're doing it wrong?
Programming AIs worry me
February 16, 2023
For some inane reason, Github classifies me as a "major open source maintainer", which means I get a free copilot subscription.1 I've been using it for a...
Maybe people do care about performance and reliability
February 13, 2023
But they are victims of complex societal factors that are beyond their control
Creatively Misusing TLA+
February 7, 2023
Five not-quite-normal uses
Improve your debugging by asking broad questions
February 2, 2023
Another form of divide-and-conquer
Tag Systems
January 30, 2023
I've tried to write a blog post on tag systems for years now. Literally years, I think I first started drafting it out in 2018 or so? The problem is that...
New Workshop, Some Data-ish Pipeline Tricks
January 23, 2023
Lots of admin stuff today! First, we have a new blogpost, the full version of the complexity preview I shared last week. I'm also announcing a new TLA+...
Newer archives
Older archives