websocketd – a UNIX Utility for Turning a Script/Utility into a Chart/Animation

websocketd may be my new favorite UNIX utility. It’s extremely useful for taking the ugly output from a script or utility and turning it into a chart or animation, or even adding a nice interactive UI. And it does it all without changing any code or adding any dependencies to your script or utility. Read more on websocketd – a UNIX Utility for Turning a Script/Utility into a Chart/Animation…

Debugging Techniques: #1 Break the System into Small Pieces

My PC wouldn’t boot, didn’t even make a sound. I traced the problem down to a particular mounting screw, but there was nothing to indicate that this screw was problematic. It was a perfectly fine screw, correctly installed in the right place. How did I figure this out? Debugging!
Read more on Debugging Techniques: #1 Break the System into Small Pieces…

Reproducible Builds with NPM (And Why You Should Use Yarn Instead)

If you’ve ever worked on a large JavaScript project with many dependencies, you know how difficult it can be to have reliable, repeatable builds. I’ve seen many projects resort to committing their node_modules directory. While this approach will give you dependable builds, it is quite annoying and causes many problems of its own–the least of which is that it can easily add tens of thousands of files to an otherwise clean repo.

I spent a lot of time and effort trying to get nice reproducible builds on a recent JavaScript project, and I actually succeeded! Less than a week later, Yarn was released, solving all of these problems much more elegantly.
Read more on Reproducible Builds with NPM (And Why You Should Use Yarn Instead)…

Using Rust in an Embedded Project: A Simple Example

I’ve written a few posts on using Rust for embedded projects:

I think they gave a decent overview of a couple of tricky parts, but as always, the devil is in the details. To help with all the gritty details, I’ve written up a more complete example. Read more on Using Rust in an Embedded Project: A Simple Example…