Computer Things
Subscribe
Archives
Monads and Transducers are Literally 100% The Same Thing
June 15, 2020
No Newsletter Next Week I promised one last week but the Alloy workshop took way too much out of me. Since I'm doing another workshop next week, I'm just...
Some Ranting About Examples
June 2, 2020
Delayed newsletter next week I'm doing the Alloy workshop on Monday and will have zero energy after that, so the newsletter will be out by Tuesday at the...
Defects are not the fault of programmers
May 27, 2020
Sorry this one is late! I've been having a rough time lately, which I think is pretty normal right now for everyone. But I'm doing a bit better now and hope...
Workshop Innovations and New Website Essay
May 18, 2020
Office hours What I'm thinking of doing is office hours every two weeks, alternating between an evening slot and a morning slot. So this week let's do office...
If Inheritance is so bad, why does everyone use it?
May 15, 2020
This essay says that inheritance is harmful and if possible you should "ban inheritance completely". You see these arguments a lot, as well as things like...
New Essay: In Praise of AutoHotKey
May 12, 2020
No office hours this week Still thinking through how to best do office hours. I think based on attendance it'd probably be more comfortable to do something...
Rage Against the God Machine
May 8, 2020
Content warning: mental illness, depression, abuse, PTSD, stuff like that. If you're sensitive to these topics you may want to skip this one. On Wednesday I...
How I Write Talks
May 4, 2020
New Workshop Given the interest in the previous Alloy workshop, I've opened up a second day on June 22nd. Same discount applies, [redacted] for 500 off. It's...
New Essay, Office Hours, and a short essay
April 27, 2020
Workshop Sold Out The Alloy workshop is now sold out. Dang, that was fast. If you're still interested in this, please add yourself to the waitlist. If enough...
This Newsletter is Too Popular
April 21, 2020
New Talk My Deconstruct talk, "What we can Learn from Software History", is now out! It covers why studying history so important and what it looks like to...
Making Illegal States Unrepresentable
April 17, 2020
I have opinions on this Okay so the saying is "make illegal states unrepresentable". The meaning is that we should structure programs in a way it such that a...
Announcing Alloydocs, updates on major projects
April 13, 2020
Alloydocs It's finally ready! Almost 13,000 words of Alloy reference, techniques, and pitfalls. There's still a lot of work to do when people inevitably...
A Very Brief Intro to Formal Methods (aka my job)
April 6, 2020
Office Hours Worked pretty well last time, so let's do it again! This Friday, 11 AM CST, Zoom Room [redacted], password is [redacted]. Not sure if this is...
What's the Most Expensive Software Per Byte?
April 2, 2020
Is it 1 dollar/mb? 10 dollars/mb? 100? 100,000?
Language Warts and Vim Trix
March 30, 2020
New(ish post) Last week I published a new post called 10 Most(ly dead) Influential Programming Languages and forgot to share it here. In that time we've...
Please don't write your documentation in Markdown
March 23, 2020
Please don't write your documentation in Markdown. Please. I'm begging you. Markdown is tolerable for short documentation, like a readme.md. Past that, it's...
Special Purpose Languages
March 18, 2020
Greetings from the end of the world! Sorry things are late, I had writers ablockalypse. Remote workshops All the conferences I was supposed to go to are now...
On Customization
March 11, 2020
A couple letters back I talked about how mental models don't scale. If you heavily customize the environment to your needs, it'll be hard for other people to...
Online Workshops, Project Updates, New Post
March 9, 2020
Back from vacation! Turns out I'm bad at vacationing. Anyway, quick update on projects: Crossover Project: I recently gave a 10 minute lightning talk draft...
The Opposite of Documentation is Superstition
March 5, 2020
Yes I know I'm technically on vacation but if I go too long without writing I die from a witch's curse and I don't want to work on longform projects For...
On Scaling Mental Models
February 24, 2020
No Newsletter Next Week I'll be on vacation in the Caribbean, sipping drinks and juggling for Hermit crabs. The Actual Thing I'm a vim user. I've used Vim...
Donald Knuth Was Framed
February 22, 2020
YOW! Talk My YOW! talk, "Designing Distributed Systems with TLA+", is now available! You can watch it here. Donald Knuth Was Framed The other day I was...
Happy Precedence Day!
February 17, 2020
Happy precedence day! (For my non-American followers, it's a pun on a national holiday we got today) New Consulting Offering I'm now available to do paid...
New Essay: Feature Interaction Bugs
February 5, 2020
Read it here! This has gone through some fits and starts, so it's finally good to get it out. I sketched out the first draft in 2018. 2018! ps y'all are gr8
Project updates, request for help, braindump
February 3, 2020
Update on Major Projects I've finally, finally started drafting out the crossover project. And only two months late! Right now the outline is almost a...
On Emulation
January 28, 2020
Last week I said that I had some thoughts on "emulation" but hadn't yet hammered them out. So today I'm gonna hammer them out. I might eventually polish this...
New Essay: The Business Case For Formal Methods
January 22, 2020
New essay at the site! The Business Case for Formal Methods is a primer on the financial benefits of using FM, plus case studies and a demo. It's a...
A Totally Polished and not-at-all half-baked Take on Static vs Dynamic Typing
January 20, 2020
I'm back from Madfest! Since this is a newsletter computer things and not a newsletter about juggling things, I won't say anything about it. Except I got to...
Three Ways Juggling is Like Programming
January 17, 2020
I'm going to my first ever juggling convention this weekend! If any of you are in Madison, hit me up. Not sure if I'll be able to get away from Madfest, but...
New Essay, Intentional Errors, and a TLA+ CLI
January 13, 2020
New Essay I haven't posted any essays on formal methods in a while, so let's start of the new year right: Hypermodeling Hyperproperties When we design...
Bill Kentstravaganza
January 10, 2020
Bill Kent is one of the unsung greats of software engineering. I get why Data and Reality is obscure: the 2nd edition is out of circulation and the 3rd...
Updates on the Too-Many Projects
January 6, 2020
Happy first week of the new year! Wanted to give some quick updates on the projects I'm working on, so you know what to expect from me in the coming few...
Back up your arguments plz
January 3, 2020
A couple days ago I read Putting devs before users: how frameworks destroyed web performance, a rant about why the web is so slow. You don't have to read...
On Marketing Formal Methods
December 30, 2019
Hi everyone! Back from vacation! Spent most of it cooking. Check out this beauty: Bottom layer is a dark chocolate and peanut butter ganache, top layer is a...
Why Python is my Favorite Language
December 26, 2019
Merry Hannukah! I've been trying very hard not to think about anything tech related this week, but also want to keep to a weekly schedule of newsletters....
Computer Things: YOW Roundup Edition
December 16, 2019
Hi everybody, Back from YOW! I spent the last two weeks in Australia, giving talks at three separate conferences. I was off but back now. Here's some...
Science Turf War
November 25, 2019
Conferences I'm speaking at YOW! I'll be presenting Designing Distributed Systems with TLA+ in Sydney, Melbourne, AND Brisbane. If you're coming to one of...
New Essay! (Also Workshop Field Notes)
November 22, 2019
Workshop Improvements Apologies for not sending anything on Monday; I was doing a workshop for Facebook! I had a blast, but I'm usually dead by the end of...
A few smaller updates
November 15, 2019
Ethnography of antipatterns We all can think of reasons why it's bad to use single-letter variable names in most contexts. Why people do it anyway? I usually...
What is a "beautiful" proof?
November 11, 2019
A couple weeks ago I was obsessed with a math problem. addition over the integers is commutative: a + b = b + a. Multiplication, which is repeated addition,...
Back on Windows
November 8, 2019
Over the past month my Fedora installation got increasingly unstable- hardware glitches, randomly losing internet, not entering sleep mode. Yesterday I got...
Canonical Examples
November 4, 2019
Canonical Examples Two tweets from last week. 1) A question I asked friday:¹ If you know what property-based testing is and don't use it in your code, why...
We Are Not Special
October 30, 2019
Why am I doing the Crossover Project? Because I keep seeing shit like this:¹ The person there never built a house. They don't know what it's like to build a...
New Post! Plus Upkeep
October 28, 2019
Newsletter Title I still don't have a good name, but I've decided "hell with it" and am going with "Computer Things" for the time being. If you are on this...
Automation vs Augmentation
October 21, 2019
The best chess player in the world is Magnus Carlsen. He's been the world chamption since 2013. We have him play against a 2018 macbook pro running a good...
Software isn't designed for power users
October 16, 2019
Yesterday a friend asked me to help her with a bug. She wasn't a programmer, she was using someone else's software. Helping her made me think a little on...
Data and Reality, 2nd Edition
October 14, 2019
People who've listened to me for more than, like, five minutes probably know that my favorite software book, bar none, is Data and Reality. It's about how...
On Documentation
October 11, 2019
I'm part of the Alloy (1) board and am responsible for "outreach and education", which mostly means I ask people what they find annoying about the tool. Part...
New Post: Formally Modeling Database Migrations
October 9, 2019
Hi everybody, I wrote a new post for the blog! It's about how you can use formal methods to make sure your database migrations are correct. I really wanted...
On Hating Your Tools
October 4, 2019
I recently read Why software developers (quite honestly) hate Agile, which argues that the Problem With Agile is that everybody's going it wrong, that the...
Newer archives
Older archives