I have been having problems with some of my woodworking projects recently. I was beginning to think I was just getting sloppy with measurements: mitre joints just not quite lining up properly, trim pieces being just a tad short. I was beginning to question if I was using different rulers and squares where one was just a little off from the others, maybe I was not being consistent in marking with a pencil... stabs at air. Then it occurred to me to do some investigation.
After ripping a long board on the table saw and checking for square, I noticed up with a slight deviation. The blade was square to the table, but at the end of each rip cut I was changing my hand pressure on the piece of stock slightly, just enough to push the piece into the blade instead of keeping it tight against the rip fence.
Score: Tools 0, Kirk 1
The question still nagged in the back of my mind: were the various rulers I used giving slightly different measurements? I picked up a couple different squares and measured them against the factory edge of a piece of MDF stock: all but one square was perfect, one is off by a fraction.
Score: Tools 1, Kirk 1
There, satisfied. Partly my fault, partly a sliding square's fault. Wait... better check the mitre saw, since joints are not coming up square lately...
Holy cow. Off by about 3 degrees! Given a 1-foot board, the speed square was sitting a comfortable 1/8 inch off the end. After the better part of 2 hours, I finally got the mitre saw almost perfectly square. After 2 hours, I had nothing tangible to show for my piddling in the workshop.
Score: Tools 0, Kirk 3
You see, none of this was the tools' fault, it was both my failure to maintain the tools and my jumping to conclusions about how the tools are made. The funny thing is that I learned a good deal by piddling. I would not have known that I was causing flaws in rip cuts by the way I was applying pressure, a symptom unrelated to mitre squares misaligning. We learn from practice, making some mistakes, and learning from those mistakes to get better. We try to pinpoint the problem quickly, and in our haste can mis-diagnose the problem.
The same concept applies in programming. We have to piddle, futz around with the tools to learn how to use them more effectively. We are quick to blame the tools when things start to go wrong, but we are hesitant to realize that we just hadn't spent the time to understand the tools in more depth.
Back to the grind... time to figure out why a worker thread causes a crash to SQL Server when integrated security is used.