When an error is so subtle and hard to find that it is almost beautiful, I would call it an oversight. This happens when a block of code is forced to handle a completely unforeseen and very unlikely set of circumstances. It makes you sit back and think “Wow”: like seeing a bright rainbow or shooting star, except a bit less romantic and not quite as impressive when described to one’s partner over a candlelit dinner.
This article discusses some of the spectacular and beautiful mistakes I have made, and the lessons learned from them.
I think many aspects of what makes for a great programmer depend on what you’re working on and the people that you’re working with, but I’ve seen some common traits in people who have had a lot of success in software development that I felt were worth sharing.
I have lived in Japan for several years, programming in a professional capacity, and I have broken many systems by the simple expedient of being introduced into them. (Most people call me Patrick McKenzie, but I’ll acknowledge as correct any of six different “full” names, any many systems I deal with will accept precisely none of them.) Similarly, I’ve worked with Big Freaking Enterprises which, by dint of doing business globally, have theoretically designed their systems to allow all names to work in them. I have never seen a computer system which handles names properly and doubt one exists, anywhere.
So, as a public service, I’m going to list assumptions your systems probably make about names. All of these assumptions are wrong. Try to make less of them next time you write a system which touches names.
We’ve scientifically determined the maximum amount of time that you should need to make a layout work in CSS: it’s 47 minutes. When your time is up, we’ll even give you the table code you need. Take three minutes to build a table. And ten minutes to get a donut. Bill the client for an hour. Done.
#develop is a free IDE for C# and VB.NET projects on Microsoft’s .NET platform. It is open-source (GPL), and you can download both sourcecode and executables from this site. In addition, you can find the latest information and changes on #develop, as well as get in touch with the team in the forum.