Thursday, already?

So I didn’t blog yesterday, I’m so ashamed. I missed my first one since this whole thing started. I even blogged when I was home ill. It really wasn’t my fault, I got pulled into an emergency problem solving thing for a client’s website. Ok, so I didn’t start my blog first thing either. And I did have all day to get it done, so really, there’s no excuse except that I didn’t have anything to write about.

That seems to be a common theme these days – it’s getting harder and harder to think of blog worthy material. I was thinking about what I was going to write this morning while taking my shower. I was in the dark because something the night before had happened to my new lighting. And then a light went off, well, metaphorically. Tonight when I get home from work, I am going to have to troubleshoot my lighting set up. Basically, what I had to do was run a new switch off existing wiring, which in theory shouldn’t be that difficult, pigtail and go. But as I was thinking about what I was going to have to be doing, it reminded me of one of my favorite things to do at work: debug programming.

Now most programmers despise debugging. I really don’t like the fact that there was a problem to begin with, because I should be perfect 100% of the time (in my head). However, usually in a debugging or troubleshooting situation, I have the most fun, because I have to think of a solution to a random problem that only is seen in certain circumstances. Yesterday it was a problem with IE putting spaces in to a table where there shouldn’t be. After working on it for what seemed like forever, Mick and I joined together to form the mighty Voltron, defender of the universe. Actually, we just figured it out, but it sort of felt like I was as powerful as Voltron.

Usually with custom programming, there isn’t a standard module set up, so the debugging can be difficult, or glaringly easy. Sometimes you can pick it up right away, like a light switch circuit isn’t complete because the neutral wire came loose, or in code, the tag wasn’t closed. Other times, you have to hunt down the trail of what might be going off, and maybe find that you’ve missed a simple piece of punctuation, or your variable name isn’t spelled correctly, and sometimes it’s due to a quirk in a nonstandard nonsensical browser (like IE), but sometimes it’s the logic, and that’s usually painful.

When my dad was helping me with the bathroom lighting by diagramming it out, he said that it’s not unlike programming, how you have to plan out the logic of how the circuit is going to complete itself before running the wires, so you know what you’ll be working with. When it doesn’t work, sometimes you have to work back to the beginning, pulling out the wiring and start over again, fixing the logic. (Hopefully I won’t have to do that with the wiring at home).

In the end, when it’s all working properly, we are rewarded. It may not always be with a ‘wow that is so cool’ or ‘great job’ but it’s an internal reward, the ‘yeah, I did it,’ sort of thing that temporarily boosts your morale. Of course when you’re wiring, the finished product is a set of working lights, or an outlet, and you get a little satisfaction every time you flip the switch, so you do get the reward. In programming, the reward is getting to finish the rest of the project. “Form feet and legs; form arms and body; and I’ll form the head!”