I have been stuck on a problem at work since last Thursday. Some old code that I inherited that used to work with the previous release of our product, stopped working after I port it over to our new product. After some initial inspection, I found out the culprit is a specific class X. I looked into X and how it has been used in the old environment. It was surprisingly simple and elegant.
I asked around, people shook their heads, ¡°The author of class X is no longer with us. You are on your own.¡± Or, ¡°Class X has been deprecated, no one has tested it in the new release. You are not supposed to use it any more. Why don¡¯t you try Y or, better yet, Z?¡± I don¡¯t want to rewrite everything to use Y or Z. I looked at the code some more. It is using ORB, something fundamental to our product line. We haven¡¯t shifted architecture direction that drastically yet. It has to be something simple that I overlooked in the new environment. Only if someone familiar with this part of our product can take a look.
But I kept on hearing ¡°no¡±, everyone who knows it is gone.
Finally a more senior co-worker identified J, ¡°He knows this stuff inside out, I¡¯m sure he could take a look and tell us what we did wrong.¡± For the past few days, I¡¯ve been trying to track down J. Finally today he came by and spent an hour with me.
It was a ¡°Matrix¡±-like experience. He asked me to turn up the trace level, my log files suddenly were filled with hex data. He scrolled through those hex numbers and apparently SEEING all sorts of activities, sitting besides him, I felt like I was looking at the Matrix screen where green letters kept on flying off, but he is seeing ¡°blond¡± and ¡°brunette¡±! He gave me a few pointers to tweak our log output, and finally he said, ¡°¡looks like the event was received by the transport layer but transport layer is not giving it to the ORB.¡± He lowered his head and thought for a moment, ¡°I wonder what happened to the dispatcher. Let¡¯s try this¡¡± He asked me to add in one line of code that will start a ¡°dispatcher¡±.
Everyone was ecstatic! 🙂
The world according to programmers is always controllable. Every problem has an answer. When something doesn¡¯t work, there is always a reason.
Only if our own world behaves the same way¡