The Modbus CRC Endianness Kerfuffle

Modbus is a quaint protocol. It’s one of my favourite protocols — it’s not very convenient to use, but it’s pretty convenient to implement and remarkably flexible for an otherwise pretty opinionated protocol. Its specs are very self-contained and easy to follow. That being said, like all protocols that are a) from an entirely different… Continue Reading The Modbus CRC Endianness Kerfuffle

The Compatibility Struggle Looming Over the Horizon

It’s been nearly 20 years since Rob Pike’s infamously won the “Best at saying what we’re all thinking” prize with his talk about how systems software research is irrelevant. And, while systems software research is doing slightly (though not glamorously) better than in 2000, it’s still mostly circling the drain. That being said, it’s not… Continue Reading The Compatibility Struggle Looming Over the Horizon

Disk Space Isn’t Meaningless

It’s impossible to discuss Electron without the topic of space being brought up, and once that happens, you have to survive the talk about how storage is cheap today and space just doesn’t matter anymore. Here is why I think all that is bogus — for bonus points, without any unironic use of the terms… Continue Reading Disk Space Isn’t Meaningless

How Relevant are C Portability Pitfalls?

An article about C Portability Lessons for Weird Machines has been making the headlines on the Interwebs lately. It’s full of interesting examples, though none of them are from machines relevant to the last two decades of high-end computing. I think these lessons are still relevant today, though, and that you should still pay attention to… Continue Reading How Relevant are C Portability Pitfalls?

Design for Debuggability

There is a part of writing a Linux BSP that I dread profoundly, and it’s among the most trivial ones. Specifically, I’m talking about that part where you’ve written a new device driver, or modified something in an old one, or you just need to configure it. You’ve added the right incantation in the device… Continue Reading Design for Debuggability