Jeff Atwood has an excellent blog post, about the increase in computing powers of the modern CPUs and GPUs and the affects of those on things around us. In particular – games such as chess and Go, and password cracking.
Every time you see a new video card release, don’t think “slightly nicer looking games” think “wow, hash cracking and AI just got 2× faster … again!”
a good programmer knows they have to do terrible things to their code. Do it because if you don’t, I guarantee you other people will, and when they do, they will either walk away or create a support ticket. I’m not sure which is worse.
Jeff Atwood shares a few of his thoughts on keyboards:
Now, I’ve grown to begrudgingly accept the fact that touchscreen keyboards are here to stay, largely because the average person just doesn’t need to produce much written communication in a given day. So the on-screen keyboard, along with a generous dollop of autocomplete and autofix, suffices.
But I’m not an average person. You aren’t an average person. We aren’t average people. We know how to use the most powerful tool on the web –words. Strip away the images and gradients and vectors from even the fanciest web page, and you’ll find that the web is mostly words. If you believe, as I do, in the power of words, then keyboards have to be one of the most amazing tools mankind has ever created. Nothing lets you get your thoughts out of your brain and into words faster and more efficiently than a well made keyboard. It’s the most subversive thing we’ve invented since the pen and the printing press, and probably will remain so until we perfect direct brain interfaces.
I think this is pretty much spot on. It was hard for me to get around the wide acceptance of the touch keyboards, but then I too figured out that I’m just not average in this regard.
The F5 key is not a build process. It’s a quick and dirty substitute. If that’s how you build your software, I regret that I have to be the one to tell you this, but your project is not based on solid software engineering practices.
The absolute worst testers you can possibly have are developers. They’re better than nothing. But barely. Even a mediocre tester will make your application better, and by proxy, encourage you to become a better developer. The very best testers will drag you, kicking and screaming if necessary, across the bug-bar threshold. Professional testers force you to become a better developer. Sometimes it’s painful. But in a good way, like a heavy workout.
You can certainly build open source software in .NET. And many do. But it never feels natural. It never feels right. Nobody accepts your patch to a core .NET class library no matter how hard you try. It always feels like you’re swimming upstream, in a world of small and large businesses using .NET that really aren’t interested in sharing their code with the world – probably because they know it would suck if they did, anyway. It is just not a native part of the Microsoft .NET culture to make things open source, especially not the things that suck. If you are afraid the things you share will suck, that fear will render you incapable of truly and deeply giving back. The most, uh, delightful… bit of open source communities is how they aren’t afraid to let it “all hang out”, so to speak.
So as a result, for any given task in .NET you might have – if you’re lucky – a choice of maybe two decent-ish libraries. Whereas in any popular open source language, you’ll easily have a dozen choices for the same task. Yeah, maybe six of them will be broken, obsolete, useless, or downright crazy. But hey, even factoring in some natural open source spoilage, you’re still ahead by a factor of three! A winner is you!
I’m not inclined to make grand pronouncements about the future of software, but if anything kills off commercial software, let me tell you, it won’t be open source software. They needn’t bother. Commercial software will gleefully strangle itself to death on its own licensing terms.
Nobody ever changed anything by remaining quiet, idly standing by, or remaining part of the faceless, voiceless masses. If you ever want to effect change, in your work, in your life, you must learn to persuade others.
Jeff Atwood of Coding Horror fame is expecting two more kids – twin baby girls. When something like this – a baby or two on the way – happens, it doesn’t go by unnoticed. It consumes your whole mind and forces you to think and rethink everything. Jeff is an excellent writer with a trained technical brain. So it makes reading his thoughts on parenthood especially interesting – it’s a crazy mix of logic and emotions.
It’s also a history lesson. The first four years of your life. Do you remember them? What’s your earliest memory? It is fascinating watching your child claw their way up the developmental ladder from baby to toddler to child. All this stuff we take for granted, but your baby will painstakingly work their way through trial and error: eating, moving, walking, talking. Arms and legs, how the hell do they work? Turns out, we human beings are kind of amazing animals. There’s no better way to understand just how amazing humans are than the front row seat a child gives you to observe it all unfold from scratch each and every day, from literal square zero. Children give the first four years of your life back to you.
Congratulations, Jeff, and good luck with the pregnancy!