I picked up some more stain/sealer during lunch (5 gallons this time) and dropped it off at home during lunch. After work I finished another 1/3 of the deck and am hoping it will turn out a little better. I used the sprayer again, as my fears about using the roller came true. If this doesn't turn out, I'm not sure what I should do. I'd hate to have to start over as I've already been working on this project for coming up on three weeks now. Live and learn, I guess, but, like I tell the kids, there's always enough time to do it right the second time, but never enough time to do it right the first time. Why couldn't this be easier!?! Why must I make it so difficult?!? Again, aaaaaaaaaaaarrrrrrrrgh.
I was able to read the chapter that D read to the kids on Tuesday after I got home. I've been having ear problems again so while the drops were doing their thing, I laid down on the couch and tried to get caught up. I didn't make it all the way through before dinner, but was able to finish after dinner (and before continuing on the deck as mentioned above). Again, I started reading the next chapter to the kids, but was interrupted by the ants. They had sought out an alternate route to freedom and so I had to spray the other window. It's time to call an exterminator or else I'll never be able to finish this book! (I did finish the chapter after D put the kids to bed though, so I'm all ready for Thursday night.)
But, before any of that happened, I went to work. I'm the person in charge of making sure our customers migrations from our old product base to our current product base is successful. Not only do I manage the code, but also act as a liaison between the project teams and the product development team. I've worked on migration systems before and enjoy the challenge of getting everything right. Anyway, I'm close to wrapping up the current release and have been making vast improvements to not only the migration, but also the product. I investigated an issue that was causing a performance issue when users first launch our product and found that in order to determine whether a value was true, all the rows from a database table were being returned, processed and interrogated to see if the value was true. In this case, over 20k rows were being returned in order to accomplish this. I was able to write a query (and bypass the processing) that returned a single row and get the same value in less than a second. This was a reduction of over 20 seconds when logging in to the product (an eternity when the user is sitting there twiddling his thumbs). What scares me is that this type of logic MUST exist elsewhere in the product and, were the parties involved able to write code that focused on maximizing performance vs. making reusability the focus, our product could be so much faster. Hopefully they've taken this approach in the rewrite as we port our products to .NET. Only time will tell.