Latest Articles

HTML's Most Underrated Feature is Testability

A

I’m an old programmer as these things go. One of the best things I provide is perspective. You’re probably thinking that means I’m going to reminisce about the good old days. But I think the good old days are hilariously overrated.

HTML-based GUIs get a lot of flack for being a cheap-to-build imitation of native-app. This is basically true. It’s a cheap imitation, so we can build (and test!) a lot more with a small team, for cheap. In return, they burn a lot more CPU and memory, which is sometimes okay and sometimes not. I’m building something like that right now, so obviously I think it has good points.

But I think the biggest advantage of HTML-based GUIs isn’t usually mentioned: testability.

Your Value Proposition as a Software Developer

Various

Sometimes folks will tell you to think about your value proposition – what actual benefit you bring to the table – as a software developer. That could be to negotiate your salary, interviews or promotions. It could be as a freelancer or consultant. It could also just be a way to let you get included in a really cool project (“hey, I can help you out!”)

So what’s your value proposition? What do you actually bring to the table?

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.

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.)