Blog - Title

June, 2005

Sorting it all Out
Michael Kaplan's random stuff of dubious value
Be sure to read the disclaimer here first!
  • Sorting it all Out

    TechEd Orlando: Day 2

    • 3 Comments

    Sorry this is so late, I meant to post it last night, while it still was day two!

    Yesterday was another awesome day.

    I was Stephen Forte's GrokTalk while they were filming it (hate to break it you, Stephen -- you were only the first because there were technical problems with the guy who was supposed to be first. You were technically the second! <grin>). I then saw Kim's GrokTalk later. She turned quite red, but actually it was a great talk, I am going to do some things for my own demos after watching the ones she was doing in her 10 minutes, so she can really claim that her GrokTalk made a difference! :-)

    In Dr. International's Clinic, I talked to a bunch of customers, including two who had been to my first talk. There were some additional questions about that COLLATE keyword. It is a very interesting topic, and there are some fascinating ins and outs to using it properly that I'll be exploring further in my Friday talk (DBA319). And of course in future blog posts!

    I managed to finally run into Betsy Aoki, the muse (maybe the Goddess?) of GotDotNet, blogs.msdn.com, and blogs.technet.com. And then I accidentally ran into Gretchen on my way back to the Clinic (in a roundabout way that I used by way of the Speaker's Lounge and the INETA booth!) and ran into Teresa too (I had apparently just missed some interesting demo she had been doing in the INETA booth -- ah well, maybe next time).

    I also some really awesome sessions, like Mark Russinovich's SEC425 (Understanding and Fighting Malware: Viruses, Spyware, and Rootkits) and even popped by Julie Lerman's BOF016 (Women Who Code), which I think brought out some very interesting perspectives. Mark's talk was an awesome summary of a topic that gets entirely too much press without good information. I do not think it was a session of level 400 complexity by any means -- it should be required viewing by the press who want to cover security issues (hopefully they tuned in vis the live webcast!). Thankfully the house was full enough to indicate that no one was scared off by the level -- it was a full house with over 1200 people looking on....

    Then a few more interesting customer contacts, and a developer who was interested in Unicode migration strategies. I had several suggestions, including a few I will talk about in a future post. It is an interesting topic, one worthy of its own coverage and session, if you ask me. If you are at Tech Ed and are interested, pop by the Clinic and I would be happy to discuss it further!

    And then came the unstructured evening (dinner was omitted fur to schedule pressures).

    I got entirely too drunk last night having interesting technical conversations about the need to support Unicode not only for language support but to help improve performance. We drew out the anatomy of many basic calls to SQL Server database applications with pretzels, napkins, whatever was handy in the bar, and when I showed how many essentially useless conversions that at best hurt performance and at worst corrupt data, they started wondering whether they should do some benchmarking in even their simple applications that may never leave the USA.

    Then people wanted to know what it was like to work at Microsoft, how they could apply, and so on. I told them to look at the links from my site and a few others about jobs and especially to go through the site at microsoft.com directly. Everyone had a great time, and there were several cool stories told.

    I probably would not have gotten so drunk if I had eaten dinner -- I was supposed to go but I did not want to miss that BoF of Julie's! I'll try to eat soon though. At least some Limonata intake kept me from having a hangover. :-)

    All in all, a great day. And I am looking forward to an even better one today!

  • Sorting it all Out

    My first (bloggers) geek dinner and the sequelae, at Orlando TechEd 2005

    • 6 Comments

    I have of course had many a dinner with geeks before, but this is the first one I had that was set up in blogs by bloggers. I found it through blogs that I read (the blogs of Josh and Gretchen Ledgard!), and as I scooted over to Bahama Breeze I got to have those initial scary feelings of not knowing the name the table would be under and hoping I would be able to find everyone!

    I just told myself if I never did then I would tell everyone I was unable to make it. :-)

    But I did find them and it worked out really, really well. It was actually better than the normal set of geek conversations -- it felt like a good balance between geeky topics and social topics for normal human beings (Gretchen confirmed this at the end when she said that the dinner was better than average for that very reason!). We had a bunch of Microsoft people and a few non-MSFTers, and if anyone violated an NDA or a corporate guideline than I did not hear it (though I think someone did point out that people should try to be more responsible in that area than they sometimes are -- maybe that reminded everybody and that's why we were so good!).

    And the Ahi was awesome, I highly recommend it!

    When it was finally done I headed back towards the hotel and on the way ran into (well, not literally!) Mike Hernandez, who was on his way to the traditional TechEd Jam Session (tm). It sounded exciting, but I decided I should get back. He promised to tell me how it went....

    We parted and I made it back to the hotel. And I wondered if I should have gone with Mike. I assumed that I was done for the evening....

    But as it turns out the evening was not over!

    Back at the Peabody I saw Stephen Forte (whose GrokTalk I will try and see today) and Richard Campbell in the hotel bar and decided to go say hello. There I finally met Kimberly Tripp though it took me a minute to realize who it was since Steve introduced her only as Kim and she kept looking at me like she knew the name but could not place from where. Then when I realized who she was I re-introduced myself -- I am a huge fan of her SQL work. And my Friday talk builds on some very interesting parts of her indexing talk that just happened yesterday and adds how to make sure that international support does not break the plan to provide and use database indexes. :-)

    I also finally got to see Scott Hanselman for long enough to have an actual converation and I explained why Invariant was the wrong thing to use in that comparison to fix his Turkish dasBlog bug. I explained about OrdinalIgnoreCase -- what it was like, why it was there, and why he should be using it for his 'identity' comparison case.

    I think we are going to have to do more to communicate the New String Guidelines, because he said he read them and was having trouble seeing how it definitely applied (and why Invariant was not good enough). I will talk to people about that when I get back to Redmond -- if Scott does not see it then other, less talented developers will not see it either! And I will answer any questions people have this week in the Dr. International Clinic (the image of the customer lying on a couch while I ask them to tell me about their server's mother is inescapable! Maybe I will try to do an add-on for a GrokTalk!).

    Anyway, Scott and I talked about other things concentrially out from there, and we had a Turkish developer (whose name I have misplaced for the moment, sorry!), who talked to us about the Turkish I and both what it was like that it has never worked in the OS and what it was like when it finally started woking in databases an in .NET -- which was a fascinating topic I will talk about more another time. We also talked about other markets like Amharic (he is actually am Amharic speaker!), and Tigrinia. And I told him about the shift in the language policy that made inclusion of languages in Windows much easier to imagine happening in the future (think ELKs, think Longhorn, think all the stuff I have been talking about here). We moved outward to other African languges like Arabic in Morocco (and the hacks they do for their calendar!) and Zulu, and it was a fascinating viewpoint to have a chance to hear about. A great conversation, and I am sure there will be many more, Scott is one of the Smart Guys (tm)!

    So then Stephen caught me up on his life and what he has been doing -- a ton of work with developers in emerging markets -- in Africa, in Pakistan, and elsewhere. I realized that if I was not where I was then I might actually want to be where he is, and I'll mention that to him today, just so he knows (and in case I ever need to do that!).

    So finally the evening was over, and I had both social and good work-related conversations, talked to colleagues and customers about issues both trivial and important. I walked away with lots of "to do" items and things to think about. And I remembered why I need to be able to go to these conferences from tiame to time -- because important connections seem to happen here a lot more often than I ever would have guessed!

  • Sorting it all Out

    TechEd Orlando: Day 1

    • 0 Comments

    Day 1 of TechEd was an interesting one. I had some good conversations in the cabana (including a few people who read about it here).

    Also, I did my first talk (DAT290). It was very under-attended, which I think threw me a little as I had people telling me that there was some huge reversal with 170 people signing up for it and an estimated 330 people expected to show up. The actual numbers were nothing like that, of course. I think I will ignore size suggestions based on either the early estimates or the later ones based on schedule since neither one appears to be very accurate....

    My second talk is a last day of the conference, last session of the day talk. Which is of course when everyone's head is about to burst from information -- generally not the time to blow anyone's mind, right? I'll figure out something clever here, since there are some mind-blowing things to cover, I think!

    Lots of cool stuff going on tomorrow, including Julie's Bleeding Edge BoF and a few other "can't miss" talks during the day. I'm heading out to the Bloggers dinner soon, which should be fun -- I'll post when I make it back....:-)

  • Sorting it all Out

    More on the 'Blogs I Read' list

    • 8 Comments

    Three new entries in the list of the Blogs I Read, given here in in the order I have added them. :-)

    ABECEDARIA (A blog about keyboarding in diverse scripts, literacy and digital literacy, and the history of writing system theory.)

    Suzanne E. McCarthy has just started up a blog and commented on some of what is here in this blog. Looking at her subtitle she is casting a very wide net, but her posts thus far certainly do seem to indicate this is not over-reaching. I may be crazy here, but I think she talks like maybe she is a linguist! She has some excellent posts about children learning on computers about input methods before they could even read and general points about more intelligent input systems, posts that can make any reasonable person (or even someone like me!) question whether the model for some of the keyboards that are used is as intuitive as it could be. Anyway, I am going to keep an eye on this one and perhaps find out more about what she does and where -- what brings people into any aspect of globalization is something I always find facinating....

    Technical Careers @ Microsoft (with Gretchen, your friendly recruiting ambassador)

    This is Gretchen Ledgard's blog, with a lot of good recruiting info in it (plus other random goodies). I actually got to meet Gretchen yesterday here at TechEd 2005 in Orlando, and she told me something that blew me away. She said she was a fan of this blog! She has long been one of the blogs I picked up via new posts on MSDN Blogs from even back when it was Zoë and Gretchen, but something about that particular statement floored me. People have done it before by talking about opinions they formed before they ever even met me, with such statements about my presence on technical forums in CompuServe (e.g. my former occasional co-author Lynn Caldwell neé Shanklin) and in technical newsgroups (e.g. my favorite MVP "groupie" Nancy Mahaffey). The thought of someone being a fan of my online persona is interesting to me, for reasons I cannot identify. As always, I will try not to disappoint!

    scooblog by josh ledgard (program manager | "community stick-wielder" | devdiv)

    I am truly a disciple of Gretchen's husband Josh Ledgard and his blog, which has allowed me to shape the way my blog looks and feels. By doing all of the spluenking into customizations of .Text and then Community Server, he is truly my CSS Rosetta Stone. You know how sometimes you wait until someone has cleared the snow before you go out into it? That is the relationship I have with Josh (well, the one my blog has with his blog, you know what I mean). I also met Josh yesterday here at TechEd 2005 in Orlando, and that was very cool (he helped me figure out how to get invited places!). It was about time to not just follow him via MSDN Blogs and to just start picking up his RSS directly....

    And then there is my niece, who is now nine months old. Her dad really needs to teach her how to put in an RSS feed! And my sister-out-law, who also ought to put one in.

  • Sorting it all Out

    'desire to deeply understand core globalization features at their lowest levels'

    • 6 Comments

    The other day I posted about a Program Manager job my group is looking to fill. The text of the job description had among other things the following text in it:

    Desire to deeply understand core globalization features at their lowest levels

    Anyway, someone asked me if I would post something about

    • how I came to deeply understand these features, and
    • what I would recommend to others who want that understanding to do

    Hmmm.... I guess the implication is that I deeply understand these features, huh? :-)

    Just kidding, I think I do.

    And this is an interesting question, one that got me thinking for a bit....

    I guess I have always been attracted (in the true sense of a 'strange attractor') to technologies that were not necessarily attractive to everyone but which were intricate, and which although I could not fathom their design patterns, I could sense that there was some underlying brilliance in the model. A good example would be the database replication technology that was first implemented in Jet and then later significantly improved in SQL Server. The sheer scope of the problems that these technologies were attempting to solve would stagger me any time I really tried to think about it, yet here were implementations that made serious and (in my opinion) largely successful efforts to solve these problems. Amazing!

    When I first learned about replication during the Access 95 Beta, I really dug into it, and was working hard to understand the innards of how it worked. At this point I had no contact with anyone at Microsoft other than some tenuous contact with the people running the beta and a few people in product support, but I immersed myself and even worked with customers who were all on the beta in violating our license and experimentally deploying solutions prior to the product's RTM. I quickly became someone that others considered to be an expert although for a long time I never took myself seriously as one; to me it seemed just kind of like I was a few months ahead of people since I had ben working so hard at it. Anyone could quickly catch up to that and surpass me....

    Then one day I looked around and realized that no one was doing it. And in the meantime I was doing presentations, articles, newsgroup posts, and website posts. I was writing tools and pretty much establshing that I was a resource to be reckoned with on this particular topic. Not by trying to be one, but just by trying to do the best job I could at something, and succeeding.

    Now wizards in Access were kind of the same way. The second contract I was ever hired to work on at Microsoft was for the Internet Assistant for Access 95. The Access developers at Microsoft were at the time dealing with the fact their "wizard development team" which was largely made up of former testers who after developing a huge bunch of new wizards for Access 95 were now working in the core product and had not really kept any fascination for writing VBA code once they were writing C code. So they saw this contract resource (yours truly) who they could hire to work on getting wizard builds out and fixing bugs in some of the wizards, and it would mean they would not have to spend as much time working in VBA. Everybody wins!

    The Access wizard project was at the time I think 80,000 plus lines of code written across several versions of the product by a ton of different developers of varying skills, styles, knowledge, and coding preferences. Again the sheer scope of the project amazed me and I took the job and was able to take on all of the wizards (something they assumed I would not be able to do; they were resigned to having to occasionally do some VBA and were thrilled that they did not have to!). I really did work hard to understand this huge project and be able to do interesting things with it. At the time I simply figured anybody could have done the same thing; the fact that no one ever did was mainly a side effect of the fact that no one else really wanted to! But in the end I think I was able to get a better understanding of that code base than anyone else ever has (admittedly because no one else is insane enough to even want to!).

    A few months ago, I told the story about the most robust software project I ever worked on, one that involved an Access wizard I wrote that used Jet replication and exposed a user interface over what I believed to be an important feature (and thereby taking two different things that fascinated me and synthesizing a solution). And I also told about how I managed to find yet another fascinating topic, one that I am once again completely blown away by the scope of the problem and the brilliance of the Microsoft implementation of a solution -- the globalization support in Windows that really is the original source for just about every other Microsoft product that has worked to implement international support. Although I had done some jobs before, I really began to apply myself to this problem, taking on dozens of projects where I was either writing code, reviewing it, or presenting on issues on a nearly perpetual basis.

    I never would have said at the time that I was becoming specifically more knowledgable about any particular aspect of the problems that globalization support attempts to solve. But I was focusing on those jobs, to the point of exclusion of most other types of work that were offered to me. Over the course of the next few years I was doing so much work both inside and outside of Microsoft that I was really getting a good understanding for now only how to use the NLS functionality but also others were using it, and trying to use it. Through those many reviews of what many companies had done I was able to gain far more experience on the range of what people were trying. I was able to learn a lot from both their failures and their successes. Since no one else was really immersing themselves.

    Suddenly, I found myself working for the core Windows internationalization team. This is a story I have told before, and one that still amazes me when I think about it. The whole thing is like an uber-geeky fairy tale or something. When I had a chance to do other contracts for the group I immediately said YES and then I took a full-time job and have been going strong for what is coming up on three years soon. And I am still loving every minute of it, feeling that there are unique things I can contribute and ideas of others that I can help shape based on my knowledge of what the functions and functionality do now. I am especially interested in collation (as many have gathered!), and many fascinating aspects of the issues and benefits of both getting out of the way and opening it all up.

    I think that I have managed to indirectly answer the original first question that was asked (how I came to deeply understand these features). Now I would not recommend that anyone try to follow this particular path, since it was not really a path so much as a "drunkard's walk" that had me covering a lot more territory than I probably needed to.

    But it does point to what I think software developers should do -- they should do what interests them, what fascinates them. It is by trying to work on what fascinates us that allows us to make this profession a creative, even artistic one. If that happens to be globalization (or if this post inspired it to be? <grin>), then there may well be a place for them.... :-)

    The original point of the job description was (in my opinion, I would not presume to speak for either of the people who wrote up the descriptions of the positions) kind of a reference to the fact that most of the functionality we support works under the covers, and users tend to never really think about it except when it is broken. Working on the team would in many senses require the kind of person who would be interested in seeing what was behind the curtain rather than just accepting what the Mighty Oz was telling them. Everyone knows that dates have a format and that the alphabet sorts a particular way, but for either of the jobs I posted there has to be an interest in understanding what is happening under the surface to make that complex machinery so that for most people it is never an issue to wonder how it works, since it does.

    Working on this team is learning how amazingly complex and wonderful that infrastructure is, for the technology that is on more machines and in more products than any other attempt at a solution on the face of the third rock from the sun.

     

    This post brought to you by "P" (U+0050, a.k.a. LATIN CAPITAL LETTER P)
    A letter who is of the opinion that parts of this post were sheer poetry, with a capital P!

  • Sorting it all Out

    TechEd Orlando: Day 0

    • 0 Comments

    (absolutely no technical content!)

    There is a distinct possibility that you may be sick of me talking about TechEd by the end of the week (in fact, you may be sick of it now!).

    Well, you may just want to take the week off, or skip a lot of posts. :-)

    Well, I do promise the rest of the week will be about relevant, topical things.

    I met Russ Rolfe on my way from the Peabody to the Conference Center, which was good since I did not know where it was. We talked on the way about the fact that it was probably a ten-minute walk, which makes the whole description of "just across the street" seem a little misleading.

    (Luckily I have the scooter -- even the walk from Registration to the TechEd store on the other side of the huge room would have been enough to wipe me out, let alone trips back and forth between the hotel and the Conference Center!)

    The huge stairwell was disheartening, but the elevator behind it quickly turned my spirits around. One quick ride up followed immediately by a quick ride down in another elevator and I was at Registration. I checked in and they replaced the badge I had been sent with a new one (the new one had no T-shirt coupon, which upset me until I realized I did not wear conference T-shirts anymore, so it did not matter!). In with my SWAG was a note that said that I was to report to the Speaker's lounge to "check in" so they would know I was there.

    I bought a few extra speaker's shirts -- the notion of going through a week with just two shirts is simply too gross to contemplate, in this heat. I will probably wear something else over and change in the restroom

    Of course I did not know where it was. Two charming young ladies at information explained to me that the Speaker's Lounge was upstairs; of course the more charming older ladies on the second floor said it was actually downstairs (I admit in both cases that "charming" is being defined in a professional sense based on two points in the Boy Scout Law, helpful, and friendly. The reason why the second group rates higher is that they were the ones who were helpful; at least everyone was friendly!)

    Ok, I checked in and then ran into some other speakers I knew (Mike Hernandez and Ken Getz), which is always nice.

    Now actually in between these various interactions I have gone back and forth between the Peabody and TechEd. On my thir trip back to TechEd I brought the scooter's charger, realizing that if I didn't I could easily run out of juice from all of distances I have to scoot! I am once again happy I have the scooter as there is no way I would be able to survive this trip otherwise!

    I do have two rehearsals to check out the rooms, but my second talk is the last talk on the last day, so the rehearsal is right in the middle of the party on Thursday. I think I'll blow that one off, if the microphones and computers are not working, I am sure someone would have noticed it earlier. :-)

    Looking forward to customer contacts, starting soon....

  • Sorting it all Out

    The dasBlog 'Turkish I' thing figured out

    • 2 Comments

    Scott figured it out, and it was not a Microsoft bug.:-)

    You can read about the details on Scott's blog at Update on the dasBlog Turkish-I bug and a reminder to me on Globalization.

    Now I have talked about the Turkish I issue in general before (cf: The [Upper]Case of the Turkish İ (or: Casing, the 2nd)), but I will post some more on this soon. But Scott's object lesson here is even cooler -- you can see how easy it is for internationalization issues can bite you if you are not very careful....

    Thought FWIW -- Scott, do not feel too bad. Microsoft has had to fix many such bugs in the past. One of the biggest reasons for Microsoft to produce documents like the New String Recommendations is because even internally people were having problems, and MS wanted to have some solid guidelines to help people avoid those issues (and thus not have bugs!).

    It is a tester's dream -- they can always find issues in an area like this!

  • Sorting it all Out

    What will I answer questions about?

    • 2 Comments

    I have had some people who even after reading my Stump the Chump post and at my schedule for being in Dr. International's Clinic were curious about what I would want people asking me about....

    So I thought I would mention a few ideas. :-)

    • Anything related to my two sessions, obviously;
    • Any issues related to SQL Server globalization;
    • Anything related to globalization in Everett, Whidbey, or Windows;
    • Questions about international support in Longhorn (obviously I cannot violate NDAs, but there are things I am allowed to talk about);
    • If any blog entry I have ever done has inspired questions, you can ask them while I am a captive audience;
    • Questions about the New String recommendations for Whidbey;
    • Literally anything else in the world, including the story about the time I had to drive out to someone's house to fix their Access install!

    That should be enough to get people started!

  • Sorting it all Out

    Does Bengali sorting work?

    • 1 Comments

    I had a colleague of mine ask me this very question the other day.

    It was not an entirely offhand question. After all, as I mentioned in Lions and tigers and bearsELKs, Oh my!, NLS support for Bengali was added to Windows XP in Service Pack 2. The post even mentions sorting as one of the many potential issues that one of these ELKs has to address. So it is not unreaonable to wonder if that support is in there. There are even easy things to check for, like the Hasant and its expected effect on Bengali collation.

    Unfortunately, the joy by which one can be happy at how easy is to verify is quickly dashed by the results of calls to CompareString and/or LCMapString with U+0995 U+09cd versus plain old U+0995:

    • CompareString with LCID 0x0445 returns CSTR_GREATER_THAN, meaning the string with the Hasant is coming after the one without.
    • LCMapString with LCMAP_SORTKEY with LCID 0x0445 returns the following two sort keys for the respective strings:

      15 10 01 0B 01 01 01 00
      15 10 01 01 01 01 00

    That extra secondary weight (marked in RED above) is clearly what is causing the first string to sort after the second. Which is not what the native speaker would expect (something the other article I wrote explains).

    Hoist by mine own petard. Darn.

    There was actually some early work done on the collation support for Bengali and Malayalam, but the initial investigation seemed to suggest that the collation would require features in the code that were not yet available in Windows XP. So we reluctantly shipped with only some of the mapping defined. Probably enough for any native speaker to think that a developmentally disabled Bengali youth had tried to define the ordering (hints of truth followed by blatant problems).

    Now I can say that a lot of work has gone into all of these "ELK" locales have been carried forward to Longhorn. And that many of these known UNDONEs in the language support are being taken as important issues to address. Not really startling news since language support always gets better in each version of Windows, but important to keep in mind if you are trying to look for "the next new thing."

    And then on the other side of the issue, later investigation proced that the earlier investigation was more pessimistic than it had to be. Which is okay -- it is the reason thst we always follow up our earlier investigation! But it makes it even easier to improve in the future.

    So hang in there, things seemed destined to get better here.... :-)

     

    This post brought to you by "্" (U+09cd, a.k.a. BENGALI SIGN VIRAMA, a.a.k.a. BENGALI HASANT)

  • Sorting it all Out

    Have a chat with me in the international cabana....

    • 1 Comments

    A good chunk of the time that I am at TechEd 2005 in Orlando, I will be in a cabana -- you can see the schedule here.

    To be honest, on most of the subjects that interest me I am able to talk about at least an hour longer than most normal people are willing to listen.

    But if there is some nagging international issue that has come up, you can consider any of those times I am in the booth as official "Stump the Chump" events. I will do my best to answer, and if I do not know I will try and find out. The least I can do for anyone who tried to seek me out....

  • Sorting it all Out

    Live from Orlando, FL, USA, Planet Earth, Sol System, Milky Way Galaxy

    • 0 Comments

    I made it, finally. :-)

    Boy, people in airports never watch where they are going or listen when people are saying things to or yelling at them, either. It was the only tiring part of the trip (other than the couple sitting next to me who had defective kidneys or something -- I should have offered to take the window rather than having to keep getting up....

    So I talked to Teresa a few minutes ago but she is going to bed soon (she has a 12 HOUR training session tomorrow!). She was worried we wouldn't see each other. But I pointed out that I had posted exactly where I will be for 25 hours between Tuesday and Friday, and hinted at where I was going to try and be for a lot of the rest of it. Anyone who cannot find me is not trying very hard!

    But I brought my case of Limonata (the space it took up in the bag can be filled with swag from the week!), a digital camera, and a laptop. I'm ready for whatever is supposed to happen next.

    If you are at TechEd then pop by the Dr. International Clinic and say hi! :-)

  • Sorting it all Out

    Another one black and blue at Tech Ed Orlando

    • 4 Comments

    Betsy Aoki pointed out that she was going to be black and blue at TechEd Orlando, and I realized that I would be, too.

    This is referring to the colors we'll be wearing, the blue shirts we'll both have (though I think my shirt will be dark and hers will be light, since I'm a speaker and she is staff? Maybe I read the mail wrong).

    I know that I certainly won't be a booth babe.

    Maybe I will be a lounge lizard.

    Or a cabana clown.

    Whatever. But here is my staff/speaking schedule:

    Date Time   Place
    June 06    10:00am - 12:00pm    Dr. International's Clinic
      03:15pm - 04:30pm    DAT290: Designing Multilingual Databases Using SQL Server 2005
    June 07    10:00am - 12:00pm    Dr. International's Clinic
      02:00pm - 04:00pm    Dr. International's Clinic
    June 08    01:00pm - 05:00pm    Dr. International's Clinic
    June 09    09:00am - 11:00am    Dr. International's Clinic
      01:00pm - 03:00pm    Dr. International's Clinic
    June 10    09:00am - 01:00pm    Dr. International's Clinic
      02:45pm - 04:00pm    DBA319: Best Practices for Search in Multilingual Datasets Using SQL Server Collation and Indexing

     

     

     

     

     

     

     

     

     

     

    And the rest of the time I will be attending other people's sessions or BOFs or GrokTalks or hooking up with people I know for a drink or dinner or whatever.

    I know that Wes will be there, and Scott will be speaking about Code Generation (ARC305) -- I have to be a clinic clown then or I'd attend!. And Mary will be there on staff, just like Betsy. And Andy will be speaking with Tim about Access 2003 (PRT311) -- I am working then, too -- but I can catch the last half of that talk, at least. And Stephen and Richard are both speaking about Transact SQL (DBA304) but are actually head to head with me so I will have to pretend we are enemies or something (I'll figure out how to do that with people who I have walked the streets of Amsterdam with, somehow). And I also managed to miss Richard's other talk too about SQL Profiler (DAT383) -- man, I am batting zero here! And there is Ken speaking about VSTO (CLI361), but I miss that one, too. And Michele is gonna be there -- I miss her first talk on Web Services Security (CSI349) but I didn't need to see that one. Her second talk on Going Global with ASP.Net though (WEB326), I am definitely interested in -- and I am free then. Cool. Unfortunately, I miss both of Kate's talks about Visual C++ (DEV330 and DEV331), which sucks a little -- I will try to say hi to her later since we have not actually met yet in person. And Aaron is speaking -- his session on least privilege (SEC350) has been in my list for a while and I am free for that one, too. I am not free for Matt and Achim's talk about custom cultures (DEV323) but I wrote the code for many of the features they are going to talk about (and even helped to tear apartreview their slides), so thats okay :-). And the fair Teresa will be there on staff - she hates when I call her Tracy so I'll try to resist the temptation since that is just not how vice presidents are supposed to behave with Madame President. And I am free for Andrew's talk on WinForm's Data Binding (CLI322) -- also very cool -- snf my second talk builds on some part of this one a little bit. I am head to head up against Houman and Russ and their Global Release Planning talk (ARC303), so I'll have to look at the slides later. I will definitely be at Julie's BoF about Life on the Bleeding Edge (BOF031) -- wanna know my secret, Julie? I never sleep! I might have tried to attend her other BOF about women who code (BOF016) if they would have let me in. Mainly I am curious about the issue but then I work in a group at Microsoft that has more women then some divisions seem to have, so my view may be skewed on that subject. But I get to see what is the most important (to me) of Kimberly's four talks, the one on Index Usage and Best Practices (DBA305) -- most important because I get to build on it with my second session a few days later!

    Ok, thats enough. I am out of breath now. Time to go do some actual work for a bit....

    UPDATE 26 June 2005 -- I realized after I had posted this that not everyone had the context of my comments about Matt and Achim's DEV323 session. I was the original author of a lot of the features that they were presenting about, and as such was heavily involved with a lof the planning, and spent a lof time wanting to make sure that everything was being covered that I would ideally want to see covered. I did not truly "tear apart" anything as much as suggest more things to cover!

  • Sorting it all Out

    Not entirely supportable

    • 10 Comments

    The following is a true story. I did omit one of the names to protect myself, though. :-)

    I remember a conversation I had several years ago with _ࢁࢁࢁࢁࢁ_ࢁࢁࢁࢁࢁ_ (then just a lowly product manager, now a director -- which I admit makes me feel quite old), just after the midnight eviction (for lack of a better term) when Microsoft left the CompuServe support fora....

    Keep in mind that WAS a case of Microsoft completely dropping one support avenue in favor of another, before Product Support (then known as PSS!) even had tools to work with newsgroups. I was not really important enough then (nor frankly now) to know exactly what happened, but I am sure everyone had their reasons. I honestly do not know if Microsoft "quit or got fired" in that situation....

    Anyway, this guy was going on about how impressed he was at the technical acumen of the customers in the new Microsoft newsgroups, and the fact that that they seemed so much more technically knowledgable than the folks did in the old CIS fora.

    I pointed out to him that the reason for the change was almost certainly that many of those longtime customers could not even get online (which was very true, back then), let alone into newsgroups. With only a beta version of 'Athena' (an early Microsoft NNTP reader) as a tool, we were not giving customers a good way to get there. Unless they were more sophisticated.

    ࢁࢁࢁࢁࢁ stopped, looked thoughtful, and said "Oh yeah, you may have a point there. We should get the FAQ out right away about how to get to all of the new Microsoft resources online!"

    "And where would we put that FAQ?" I asked, knowing he would fall into the small verbal trap I had just set.

    "On the website!" he exclaimed.

    I just looked at him quietly and waited. He did not understand what was making me try so hard not to smile, then suddenly he did. And he looked really embarassed when he realized the non-theoretical problems with posting the "how to get online" FAQ and then putting it online....

    Not the most supportable position to be in, is it? :-)

  • Sorting it all Out

    The New String recommendations

    • 11 Comments

    Dave Fetterman reported yesterday on the Official Guidance: New Recommendations for Strings in .NET 2.0 (full paper here).

    Now this is a paper whose recommendations I think are incredibly important (some of them were I daresay inspired by things I have been saying here about invariant versus ordinal and using uppercasing!). And I think at the core of those recommendations is a principle that applies to all code that is written, managed and unmanaged, in any version of any product. So I don't want people to think "I'm not using Whidbey, so this does not apply to me."

    That core principle? Stated simply....

    Use appropriate comparison methods.

    It simply makes no sense to use the wrong method, ever.

    Now as I have mentioned before, I am a bigger fan of what I call the 'vertical method' (different flag values in a single method or function) as opposed to the 'horizontal method' (different methods or functions). I find it easier to explain, easier to document, and easier for a user to know what to call. I explain this in part for unmanaged code in my post Similar descriptions does not mean similar methodologies and some day soon I will follow up with a managed version of that post.

    But it is important no matter whether you are a 'vertical' person or a 'horizontal' one to choose appropriate methods to compare based on your actual scenario.

     

    This post brought to you by "๚" (U+0e5a, a.k.a. THAI CHARACTER ANGKHANKHU)

  • Sorting it all Out

    It's not quite done yet

    • 4 Comments

    A few days ago I was blathering about time zones, locations, and keyboards and I made the mistake of talking about how all of the various pieces Microsoft needed to integrate these technologies were already present:

    And once upon a time, there was some effort to integrate the time zones and user locales as well, but that particular integration no longer really happens -- and it would honestly be better if it integrated with the GEO settings anyway. Especially since there is no documented, queryable mapping between locales and time zones, but a call to the GetGeoInfo function with a SYSGEOTYPE of GEO_TIMEZONES will return an array of all of the time zones in the selected location.

    Luckily, one of our two Internationalization MVPs (Mihai Nita) noticed that the emporer had no clothes, and pointed out:

    Has anyone seen this working?
    Everything works fine except for GEO_OFFICIALLANGUAGES & GEO_TIMEZONES .
    Tried it on XP SP2, 2003, Longhorn 5048, compiled with C++ from .NET 2003 and .NET 2005 beta 2. Nothing.

    The easyest way to check it:
    GetGeoInfo( 244, GEO_TIMEZONES, NULL, 0, NULL );
    Returns 0 and GetLastError also 0.
    It should return the size needed.

    I have also tried providing a huge buffer, and I have tried with all GEOIDs (enumerated).

    Thanks :-)

    Now I admit this was not really something I had tried before. I just assumed it worked since the SYSGEOTYPE topic, which documents all of the members of this enumeration:

    GEO_NATION
    GEOID of a nation. This value is stored in a long integer.
    GEO_LATITUDE
    The latitude of the GEOID. This value is stored in a floating point number.
    GEO_LONGITUDE
    The longitude of the GEOID. This value is stored in a floating point number.
    GEO_ISO2
    The ISO 2-letter country/region code. This value is stored in a string.
    GEO_ISO3
    The ISO 3-letter country/region code. This value is stored in a string.
    GEO_RFC1766
    An RFC1766-style string derived from the locale and GEOID (for nations only).
    GEO_LCID
    A locale ID (LCID) derived from the language and the GeoID (for nations only).
    GEO_FRIENDLYNAME
    The friendly name of the nation. Example: Germany. This value is stored in a string.
    GEO_OFFICIALNAME
    The official name of the nation. Example: Federal Republic of Germany. This value is stored in a string.
    GEO_TIMEZONES
    The time zones associated with the GEOID. These values are stored in an array of IDs.
    GEO_OFFICIALLANGUAGES
    The official languages of the nation at the GEOID. These values are stored in an array of LCIDs.

    did not bother to mention that those last two items have never yet been implemented in any version of Windows.

    Oops!

    Mihai is completely correct, here. And the docs should definitely be updated to reflect these limitations.

    Anyway, sorry for the misdirection, it was not intentional....

     

    This post brought to you by "M" (U+004d, LATIN CAPITAL LETTER M)
    The first letter in the words Mea Culpa!

Page 4 of 5 (61 items) 12345