On Perfection

This is a bit of stream of consciousness with some light editing. I wrote it quickly on my iPad, so it’s pretty rough. It’s better than nothing though.

I’ve always thought of myself as a perfectionist especially when it comes to the code that I write and the projects that I work on. This tenancy can be useful since it has allowed me to dive deep into many topics, but it also limits my productivity. I’ve spent so much time learning how to model data and implement data access layer code that I never had the opportunity to build anything of consequence with what I learned. I know quite a lot about Java and the JVM, but it only comes in handy once in a while.

Factorio is one of my favorite games. It’s a game with a simple premise. You’re stuck on an alien planet and need to get off of it by building a factory which can ultimately produce a spaceship.

I found that the game perfectly captures many aspects of programming. One thing that it made me realize is the clear trade-off of doing something right versus a quick-and-dirty hack to just get some item in my factory on the production line.

I’ve noticed that I’m much more critical when reading code not written by me. I’ll give myself a pass because I had to get this code shipped today, or because I was focused on fixing the real problems. I like writing good code. Not necessarily because it has any concrete, intrinsic value, but because writing good code makes me a programmer. I do think that there are many advantages to my functional, OOP, data-oriented style.

It can be especially crippling when I have a deadline and perception that I’m unable to do things right. It’s oft said that the best is the enemy of the good, and that’s something that I truly struggle with. Why would I do something if I can’t do it my way — if I can’t do it perfectly? Obviously I’d do it because it needs to be done, but that’s not something I get motivation from. That’s not why I’m a programmer. I’m a programmer because I enjoy making things that work, with code that I can take pride in.

Recent posts from blogs that I like

How to compress out interior padding in a std::pair and why you don’t want to

Context-sensitive layout means you get a different structure each time you use it. The post How to compress out interior padding in a std::pair and why you don’t want to appeared first on The Old New Thing.

via The Old New Thing

This game would be perfect if it wasn't gacha

TL;DR: Zenless Zone Zero is a fantastic game that's ruined by its gacha system. It's a shame that it's a gacha game, because it's so good otherwise. 8/10

via Xe Iaso

Swimming in July

Just the pure physical joy of thrashing your arms around in water. To fill the kid’s buckets and throw it at the sun—the way the water falls apart into drops, and then into mist, the way a rainbow appears for a second and is gone.

via Henrik Karlsson