Latest Articles

Why Keeping Software Working is a Superpower

A

They say that programming is the art of getting things working, while software engineering is the art of keeping things working.

That sounds like most programmers aren’t good at keeping things working. Which is true.

If you build to keep things working, you’ll have a superpower, one that very few software developers have. I’ll explain.

But first I need to tell you about Scarpe.

Fibers for Flow Control - A Weird Ruby Magic Trick

A

I’ve been working on Scarpe a fair bit lately. I came across a lovely and bizarre bit of Ruby and I really want to share.

Short version: did you know that with the cool Ruby 3.0 Fibers changes, you can use Fibers as a weird form of flow-control primitive, not for concurrency at all? And it solves some of Ruby’s mismatch with JS-style evented programming and promises?

I’m gonna talk about an ugly situation with Ruby Webview, and a surprisingly clean solution with Fibers. I’m sure there are, like, ten good reasons not to do this in production. Also, Scarpe will be doing this as its main method of testing.

Seeing Inside HTTP

A

If you work in Ruby, you probably deal with HTTP a lot. There are various ways to see into the actual HTTP requests and debug them. I’d love to mention a few of them to you.

Why do you care?

If everything goes perfectly, you don’t. It’s debugging. So if you never write any bugs, you’re fine.

In case you write bugs like I do, let’s talk debugging.

What Does a Web Request Actually Contain?

A

If you’re a web developer, you’re no doubt familiar with HTTP requests. It’s when you fetch a file from the server, right?

It’s also when you send information back to the server, including submitting a form or uploading a file.

You may have seen some examples of HTTP requests. It may have looked...

Keeping Multiple Representations in Your Head

A

Sometimes when you’re reading a murder mystery, you’ll want to think about two different scenarios: what if the butler did it, vs what if it was the wealthy socialite? What would be different? What evidence might they leave?

This is also a core skill for senior-and-up software engineers. It’s obvious...

Subscribe to get free ebook chapters and an emailed coding class now, plus videos and articles a few times a month.

Why this specific newsletter? You want to be an expert. Expertise comes from learning the fundamentals, deeply. And that comes from the best kind of practice. I write with that in mind. I won't waste your time.

(Yes, I also sell things. They're good, but I'm fine if you don't buy them.)