by Michael S. Kaplan, published on 2005/05/29 00:01 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2005/05/28/422958.aspx
(a tiny little bit if technical content in this post, but its in the second half and may not be worth the trouble sifting through this stream of consciousness blathering!)
About a month ago in my post Getting Enough Exercise? I talked about my exciting scooter ride to Typhoon! that saw me pushing my scooter for a lot of ths way back home.
Well, they fixed the problem in the Victory's motor a few weeks ago but I was still wary about taking it out again.
But the weather yesterday and today was simply way too stellar to ignore. I had to get out there. So I put on shorts and my lucky T-shirt (more on why its my lucky shirt another time, its a great story involving a concert in Malmo and a bizarre car repair accident that ruined the shirt I had on), and headed out.
I made it there and back, with no problem at all. It was awesome!
And I think I realized why I enjoy the idea of scooting around. It is pretty much the same reason I used to like running (back in the days when I was able to do that). It gives me a chance to keep my lower level systems busy handling the mundane tasks like watching traffic and steering, and I can disconnect the higher level systems to just think about stuff.
I swear I came up with ideas for fixing a bug assigned to me and thoughts on how to approach debugging two others. I ran ideas for things to say during the various talks I'm doing and am really looking forward to doing them. I thought about my busy schedule over the next few months -- a TechEd in Orlando , a wedding in Seattle, a TechEd in Amsterdam, two B'nai Mitzvot in Sugarland, a trip to Edmonton to talk about Unicode stuff to two different groups of people and a likely gig in Houston to do the same while I am in Sugarland, interesting bugs to look at and several interesting projects to work on.
I remember when summer was a time for vacation!
Then I was thinking about the last time I was scooting to Typhoon. I drove into Redmond Town Center, did some shopping, and scooted over to the restaurant. On the way there I saw an ex-girlfriend (well, technically ex-fiancee, I guess that promotes her to the ex-girlfriend!), and I really didn't say much more than hello. I thought about it later, wondering why I did not stop and ask how she was doing, how was life, how were her kids, how was the job, and so on. But I really did not do any of that. No special reason, I was not trying to avoid it as far as I know. I mean, I had the scooter so it was not a worry about not being able to stand around very long. Maybe I subconsciously was just trying to not get back into it all. I don't think I was rude, and its not like she was asking about me or anything. So maybe she had the same idea.
Or maybe I just look more pathetic in the scooter than I used to with the cane! :-)
Well, even if that is true, I think I will keep on scooting. I did not realize how much I missed that special processing time I used to get. It's hard to explain, but it is the kind of thing you can't do when you are relaxing or trying to sleep or whatever. I guess I have also managed to do it on a beach in Little Cayman a few times, but that was by literally thinking about nothing at all and hitting some sort of Zen state where awareness creeps in while you bake in the sun and watch the water, but never in any other time or place. Since I don't have as much time to get away like that, the scooter trips can make a great substitute....
Anyway, back to this current trip.
I was thinking a little bit about CompareString/LCMapString (and their managed cousins CompareInfo/SortKey). And the promise to work to make sure that the results of string comparison and sort key comparison results are consistent.
It occurred to me that I do not even remember the last time there was a bug on the sort key side of the equation, but I do remember all the last who knows how many issues that have come up on the string side. The hazard of trying take shorcuts, I guess -- you can easily find yourself getting tagged out trying to slide into second base, if you know what I mean. And in a function that is pretty much a goulash of shortcuts to try to maximize performance with a goal of a 0% sacrifice in fidelity.
Now admittedly the bugs are pretty much all edge cases. But the obvious cases, one takes for granted -- it is like the Talmud. It is in the minutae that you can draw solid boundaries so that everything else will fall within or without in deterministically defined ways....
Now somewhere deep in the code of that function, there is a simple skeleton of a design, but over time the various complexities and bug fixes and features and workarounds have conspired to make it a very daunting code base. Enough so that most people on the team, who are usually happy to load balance bugs, will hesitate rather than pick up the sorting ones. It's just a rough code base to jump into. Of course comments have not always been maintained as well as they could have been when small changes have been made -- I really ought to try to clean some of that up, and make sure the comments match the code (and that they exist where they ought to!). It may even help inspire new insights. :-)
And now I will go eat some more noodles. If you made it this far, thanks for making it through my blatherings. :-)
All the characters fell asleep by the time I got to Little Cayman, so none were awake to take the sponsorship. I will try to wake them up for a post later....
# John Walker on 28 May 2005 11:26 PM:
# Michael S. Kaplan on 29 May 2005 12:08 AM:
# George on 29 May 2005 1:50 PM:
# Michael S. Kaplan on 29 May 2005 1:59 PM:
Tanveer Badar on 21 Dec 2007 12:26 PM:
Ah! The wonders of traveling.
Most of my brilliant (warning:!modest) ideas arrive while I am either traveling or taking a bath.
referenced by