Build inconsequential things

    •     programming, thoughts

I just wrote a tool to find duplicate JPEGs, and I’m happy.

I’m fully aware that there are a thousand projects like this one, and I realize that mine is the worst of them all. It doesn’t have a GUI, its output is specific to my needs, and it crashes on broken JPEGs. In terms of usefulness to the world, it was a waste of my time.

Yet, it was the best thing I did in the last few months. These 200 lines of code helped me cross out a handful of items off my to-try list. I learned about perceptual hashes and BK-trees. I finally got my hands dirty with some famous Rust crates: walkdir, anyhow, and rayon. And I had fun the entire time.

That’s how I learned to program, actually. I built a lot of junk: a password generator, an IRC bot, some scripts for my chat client, a little database to manage my DVDs… These days, it’s different: I work on a handful of big-ish projects, and usually go for depth, not breadth. And so my to-try list keeps growing, making me feel like I’m missing out.

Building inconsequential stuff is the fastest way to shrink that list.

Drop me a line! (wonder where’s the comments form?)