That summarizes my life for the last two weeks. Those four words represent so much. Nights with which I’ve gone without sleep. Days that I’ve barely ‘lived’ through – indeed in such a state that I’m unsure whether I’m lucid or not. Why? OS.
I know I wrote here earlier about how the OS was completed on Saturday. I should have however, kept one important quote in mind. Namely “No plan of attack survives first contact with the enemy.”
Our plan didn’t. We ended up having to do additional work to reimplement our context switch and of course general cleanup to get the code its final state. Everything appeared to be going well until approximately 10:00 last night. When I dropped by Allister’s room he asked me to take a look at a weird problem that he was having. Needless to say, it was anything but ‘little’ and was triggered under the most unusual situations. An hour and 50 minutes later we’d both looked through a significant portion of the logic involved and found no glaring errors.
At approximately 11:50 Paul and Rob showed up and we notified them of the issue. After much discussion and head scratching we tried a large number of potential solutions – none of which worked. As you can imagine, this was hugely frustuating. We were _so_ close to being done and yet just blocked on this one piece of code. And that’s when Rob noticed the following line…
char* msg1, msg2, msg3;
I’ll let you mull over that one.
I believe its a truism in designing that often the simplest errors are the hardest to find. It’s often because we (as designers/implementers) suffer a mental block. We assume that we’ve completed the initial simple setup procedures appropriately and therefore when we encounter problems, our eyes barely glance over the code. A mistake of course.
Needless to say, once we corrected that oversight, work went much faster.
At approximately 3:05 we called Paul and told him the OS wasn’t working ;) That provided for approximately 5 – 10 minutes of amusement. But Paul was a good sport about it (Thanks Paul! We appreciate it :) ). Of course, the truth was, at around 2:55 our OS went ‘live’. I can’t confirm it for sure since its 4:18 and I’m extremely tired, but it does appear as if everything is running swimmingly…
It’s been an interesting day and an even more interesting night!
Yeah, I will continue my beatdowns for that error :P