Archives / 2003 / December
  • FDA bans ephedra

    Story by NYT.

    Back in college, one of my roommates gave me a couple of Xenadrine before football practice. I had taken supplements like Ultimate Orange and Ripped Fuel in the past, both of which are supposed to increase your metabolism and get you “pumped up”, but this was the first time I had taken ma huang (aka ephedra).

    4 hours later, my heart felt like it was going to pound right through my chest.

    Scary stuff. What's worse is that it's not even regulated!

    This decision was a long time coming.

  • Personal expression and professional affiliation

    ClaueR says that his blog is not an [MS] blog.

    I agree with him on principle - certainly a weblog is a form of self-expression, and not that of your employer.

    I think understanding someone's background is important to understand where they are coming from. I'm not trying to suggest that seeing an [MS] next to your name helps me understand your life, but it does let me know that you have a unique perspective on what we are talking about.

    It won't affect how I take your political arguments. But it might have some effect when you're talking about a new Microsoft technology or how things get done at Microsoft - since, after all, that's the focus of this community.  Certainly an employee's perspective is going to be different from that of an outsider's - and it can be good to know which you are getting.

    The point is that our opinions are shaped by personal experience, and your professional life certainly is a big part of your personal experience. 

    Also, to understand why Frans and others are concerned, you have to understand a little history about this community. Scott used to host them on and, as the community grew, they were eventually moved over to for bandwidth and other concerns. A lately, of course, has been the influx of Microsoft bloggers.

    So what was a community of exclusively non-employees has become a site that is hosted by Microsoft and pretty much dominated by employees. 

    Anyone who was involved here for awhile will be able to lament the increase in noise on the home page. The main feed has become all but useless these days. 

    Hopefully this helps you understand why certain people care about whether you're an employee or not. Personally, I don't really care all that much - but as I said, knowing someone's affiliations is useful...

    And if you want to be known as an individual, let us get to know you. Using your full name would be a good start!

  • Off topic posts

    Now that we have the ability to post things that won't be included in the aggregated site, I expect to post a lot more. I'll try to be good and make sure only appropriate posts make the aggregated feed.

    But that means if you actually want to listen to all my noise, you'll need to subscribe directly to my feed.

  • RSS Bandit, now with Search Folders

    There are three major things that I love about Outlook 2003, as anyone who is a regular reader of my weblog will probably know since I won't shut up about them: search folders, colored follow-up flags, and smart date grouping.

    In many ways, I consider Outlook 2003 to be a prelude to what we can expect with WinFS and the future with Longhorn - where the item is stored under the hoods is irrelevant; everything is just a view.

    Well, Dare and Torsten have introduced the first two of these Outlook 2003 features into RSS Bandit.


    I've been using Bloglines for awhile now, and it's great because it solves a lot of the problems I've had in the past keeping my read/unread in sync across machines. Actually, the sychronization issue seems to be present everywhere for me - blogs, Outlook, files.

    In fact, I haven't used RSS Bandit for awhile now - but damn it looks great! Maybe I'll work on my WebSync project so I can use RSS Bandit!

    (Unless Dare wants to add that in there for me too!)

  • And while we're on the topic of MP3s...

    I was going to post this on Friday, but since I haven't seen anyone else post about it I thought I'd mention it.

    The DC Circuit Court of Appeals reverses the trial court decision, and Verizon doesn't have to give away the identity of its users to the RIAA.  Read the court opinion, if you're interested.

    This has of course made the rounds on the legal weblogs - here, here, here, and here.

  • A Meat Hangover

    I went to Churrascaria Plataforma with a bunch of friends from work last night. It's this great Brazilian BBQ place in NYC. It's basically an all-you-can-eat feast (and relatively cheap at that, especially considering how expensive beef is these days).

    Here's the premise: you have a little disc in front of you with a red side and a green side. Waiters walk around with huge skewers of meat, and if it's green you're getting some.

    Sirloin, tenderloin, pork chop, lamb, flank steak, turkey and bacon, honey baked ham, chicken sausage... the list goes on.

    There's a “salad bar” with some “non-meat products” (made up mostly of sushi, fish, prosciutto and various cheeses), but basically it's all meat, all the time. 

    We were the last group left, although we didn't start until about 9pm. And by the time we were done, we almost literally had to crawl out of there.

    I'm still feeling the effects of the feast today. I woke up with a meat hangover.

    And much like the more traditional hangover, I could bear the sight of the offending substance. The smell of the bacon while I was getting breakfast this morning almost made me vomit.

    Man, this place must love the Atkins diet.

  • XSLT Rekindled

    I used to consider myself a bit of an XSLT guru, but it's been a long while since I've done anything with it. This is just a stream of consciousness as I'm working on this issue. If anyone has any thoughts, let me know. Otherwise, I'll update it when I solve it :)

    After MSXSL 2.6, Microsoft removed support for the $var/el syntax in XPath. As an alternative (many other parsers offer similar extensions), they offer a node-set function which replaces the previous syntax with a pattern such as msxsl:node-set($var)/el.  I always thought that $var could be an XPath pattern there.

    Basically I have some XML that looks like this:

    <Root>   <Schema>      <Property id=&#8220;title&#8220; xpath="&#8220;a&#8220;"></Property>   </Schema>   <Data>      <Node>         <Node id=1 name="Something" />         <Node id=2 name="Something else" />      </Node>   </Data></Root>

    In my XSLT, I'm applying templates on the /Root/Schema/Property. The actual template looks something like this:

    <xsl:template match="&#8220;Property&#8220;">   <SELECT id=&#8220;{@id}&#8220;>      <xsl:for-each select=&#8220;msxsl:node-set(string(@xpath))&#8220;>         <OPTION value=&#8220;{@id}&#8220;>      </xsl:for-each>   </SELECT></xsl:template>

    So... the question is, then, how do you convert an XPath into a node-set, if this doesn't work?

    I thought I might be able to hack around my problem using an xsl:key - but besides not really being intended for this, they can also only be a child of xsl:stylesheet. This means I can't have n number of keys for each data item, and I have to declare them upfront. \

    I was pretty sure this had worked in the past, so I'm stumped now.

    Another thing I find absurd is that you can't pass in a variable to the apply-template's mode attribute or call-template's select attribute. I managed to work around this using because the attribute I'm trying to match is on the node itself - so I can use match templates with a static mode.

    If the variable I wanted to use wasn't on the node itself, I don't know that I would have a viable alternative here though.




  • NYC .NET Developer's Group Meeting (Thursday, 12/18)

    There's another NYC .NET Developer's Group meeting coming up this week.

    As of now, I'm probably going to be attending. I haven't made one in awhile with my classes. If anyone else in the NYC area is planning on going (Sam, Don, etc) let me know. We should definitely get together for drinks again.

    On a related note - if anyone wants to do a NYC blogger dinner or something, let me know. I have no classes until Jan 12th, so now would be a great time :)

    Date: Thursday, December 18, 2003. Reception @ 6:00 PM , Program @ 6:15 PM

    : Microsoft , 1290 Avenue of the Americas (the AXA building - bet. 51st/52nd Sts.), 6th floor


    Identity management is important to organizations as they extend their networks to include partners, suppliers, and customers. As application architects and developers we need to understand what identity management initiatives Microsoft is pursuing and how application authentication, authorization, and personalization strategies intersect with identity management. This session will introduce Microsoft identity management direction and analyze the impact and options for application developers. We will look at specific features released with Windows 2003 server and .NET consumption of those features.

    Speaker: Hristos Karangunis and Jim Williams, Microsoft

    Hristos Karangunis is the Infrastructure Security Architect for the Microsoft NY/NJ District. In his current capacity Hristos is helping organizations to design and implement secure, reliable, scalable and highly available infrastructure solutions to support enterprise, B2B and B2C environments. He is also a contributing member of the Microsoft's Trustworthy Computing Group.

    Jim Williams is a .NET solutions architect for the NY/NJ District. Jim works with early adopters and evaluators of .NET. In this role he is responsible for providing rchitectural guidance to enterprise architects and designers as they evaluate and adopt .NET and related technologies.

  • RSS Bandit - clarification on my previous post

    Dare, in the comments on my previous post (which was initially a reaction to this post), said

    Which is more valuable to Microsoft, that developers and users have access to well-written and innovative applications targetting the .NET Framework or that everyone use GotDotNet to host their project?

    Quite frankly, I'm quite irritated by the number of people who've been hassling me about decisions regarding a project I work on in my free time and the implicit obligations they've placed on me. Should I also sell my iPod because it doesn't support WMA? How about my car? Should I also sell my car and get a BMW 7-series so I can run a car with Windows Automotive? Should I get rid of my TiVo since it doesn't use Windows? Should I sell the shares I have in other companies and buy only Microsoft stock? If RSS Bandit being hosted on GotDotNet is so important to you, the source code is available. You can fork the project and keep it alive on GotDotNet.
    Apparently a lot of people agree with him. I just wanted to clarify my stance here a little.
    I'm not talking about the Microsoft's best interest - I'm talking about the community's best interest. First and foremost, access to source code for a well-written .NET application is in the best interest of both.
    My point was that GDN does have these problems. I just thought Dare, as a Microsoft employee, might be in a better position to identify and work with people to get them resolved.
    There's nothing wrong with SourceForge - I've used it many times in the past - but there's something to be said for a site more specific to a particular community.
    I wasn't trying to imply that it was wrong for a Microsoft employee to use something non-Microsoft. And really, I'm not a contributor to the project and could care less where RSS Bandit is hosted.

  • Vice City - Hope you don't want to use a gamepad!

    When I installed GTA3: Vice City on my XP box, the character just spins to the left. It's quite dizzying, actually. I figured it was a problem with my mouse or something - but after a little research, I find this gem on the Rockstar Games website:

    If you are using Windows XP & a Gravis game pad or a USB Logitech wingman of any kind there are problems with using those game pads with GTA Vice City at this time. Only workaround is to not use those controllers. Using these in XP will cause your player to go in circles to the left.

    Gravis and Logitech Wingman probably account for a large chunk of the market. And most machines these days will be running XP. (Hell, any computer capable of running the game probably came with XP in the first place).

    So I wonder - did they do ANY testing on this at all? Did anyone over at Rockstar think that people might want to use a GAMEPAD to play a GAME?


  • Outlook Sychonization

    Lorenzo points out two ways to keep Outlook synchronized without installing Exchange. Some of you may remember that I was looking to do just that last month.

    The first one I tried was SynchPST. While the trial seemed to have worked, I wasn't very thrilled at the mechanics of it. Basically, it uses direct file operations on the PST file - which, of course, means that you can't have Outlook open.

    That sucks.

    OsaSynch - while I'm not terribly thrilled at their implementation - is better because it uses a separate file share to store the differences and synchronize it across the machines.  The synchoronization process runs as an add-in, and monitors new entries etc.

    So, instead of only running when Outlook is closed, it only runs when Outlook is open. Makes sense to me.

    That said - I've noticed a few problems popping up lately - duplicate entries when you permanently delete something on one machine - and then a few days ago is just generally stopped synchronizing. I'm not sure if this is a function of the trial version or what - but there's been no indication that it is.

    I would consider registering it, if I knew that this was because of an expired trial or something. But it's also not exactly cheap (79.95 for the 3-computer version, which also happen to be bound directly to a computer name - God forbid you ever change that name!) - and it still requires file sharing.

    I'm still waiting for Ken's Outlook.Sync. If he doesn't have something soon, I might have to write my own. 

  • Keyboard Shortcuts

    With all this talk of advanced users, thought I'd share the power of the Win key, which was once shared with me and for which I am eternally grateful.

    Win-R: Run dialog
    Win-E: Explorer
    Win-F: Search Computer
    Win-Break: System Properties
    Win-D: Kind of the same thing, but works better - show desktop

    Win-M: Minimize all (shift-win-m unminimizes)
    Win-L: Login screen
    Win-Tab (and Shift-Win-Tab): Cycle through open items in the taskbar (use space to open it)

    There's tons more (Google it). The ones on the top are the ones I use most often, run and explorer especially.

    Anyone who knows me will know that I use the mouse as little as possible. Lots of alt-tab, ctrl-shift-tab, win-this, win-that. That's part of the reason I hate it when websites don't set the accesibility tab index for form input. Don't make me tab through a bunch of links and navigation if you know all I want to do is login anyways.

    (Speaking of which, this stupid rich text box won't let me tab out :)

  • Lonestar Tablet PC Update

    Scoble: “[Lonestar] is a HUGE increase in Tablet PC functionality. It's amazing how much better they've made the experience of using a Tablet PC.”

    If I understand correctly, the Lonestar update is also accompanied by a new version of the SDK (1.7).

    Any word on whether this might be released as a beta to MSDN subscribers any time soon? Or is there some closed beta that I can get involved in?

    I've been following this one very closely, of course, and I would love to be able to get it for my break when I'll actually have the time to play around with it.

    Actually, I have a few things slated for development during this month already. I just don't have the time for development  for pleasure lately (hmm, that didn't sound too good).  I sure wish Windows Journal was reusable or OneNote was extensible. I wanted to extend OneNote a bit, to make it easier to do law school notes and outline generation.

    Maybe I'll try to get involved in the WriteFree project.

  • A proposed solution for the growth of Weblogs @ ASP.NET

    Frans has some concerns about what's happening here at  Personally, I don't think the influx is a bad thing. You can continue to criticize all you want, and in fact as long as it's constructive the criticism will be more effective - you now have people responsible for the products actively involved in the community and the feedback loop is tighter.

    The big problem that I've seen as the community grows, though, is that the main feed is is becoming more and more “congested”, and as a side effect of the growth the breadth of the topics has increased.

    Now, this isn't a bad thing per se, but it does make things harder to maintain “special interest groups” about a particular technology, etc.

    I know this has been discussed before, but perhaps it's worth revisiting the idea of customized aggregated feeds.  Really, it should be quite simple to implement.  (The idea is that these feeds would be based on metadata about both the blogger and the individual post).

    Maybe this would involved global categories instead of user-defined categories. By putting a post in a particular category, I'm telling .Text to include it in the automatically aggregated feed for that category.

    This would allow bloggers to post things across a broad spectrum of topics - including non-technology stuff - and not clog up the aggregated feeds. You could also do something similar based on characteristics of the bloggers themselves - ie what company they work for, by location, and so on.

    In fact, it might be an interesting opportunity for .Text to evolve from “simple” weblog software to a system for building complex, online communities.

  • More Google - the Deskbar, and more

    Anyone who reads this blog probably knows I'm a big fan of Google. And I'm sure a lot of you use the Google Toolbar. 2.0 rocks - the pop-up blocker is great until we all get Longhorn and the AutoFill is great - especially on a Tablet PC.

    Anyways, I just noticed in the Google Friends newsletter that just went out that they have a beta deskbar. It's a taskbar with its own little mini-viewer for the search results (you can configure it to open a new window too). Pretty handy.

    Also of note for Google power-users - a define: keyword. Combined with the deskbar, will make dictionary look-ups a lot faster than going to or (plus handles slang).

    Ahh, the power of Google.

  • Affirmative Action for .NET Languages?

    Keith has some discourse on what he'd like to see done with VB.NET.

    As I mentioned back in July, and as the article he links to confirms, the language divergence seems to be less of a real technical divergence than a divergence in perception and marketing.

    But I don't think that's such a bad thing.

    MSIL is the lowest-common denominator.  At some point, no matter how much the languages diverge, you eventually have to generate MSIL.  This necessarily implies that you can't do anything in a .NET language that you can't do with MSIL alone. And for the same reason, any higher-level constructs provided by way of an object model can be consumed by any language (by design).

    I still don't see a compelling argument to pigeon-hole functionality such as generics and edit & continue to a single language. As Krishna points out in the comments, doesn't that kind of defeat the purpose in having a CLR and common BCL in the first place?

    It seems to me like a form of affirmative action for .NET languages. Oh, VB.NET doesn't have a great reputation and not as many people use it?  Not to worry, we'll add some exclusive features to give people a reason to use it.

    Differentiation for the sake of differentiation is a bad thing, for both VB.NET and C# developers.

    Another point to consider is that many enterprises, in an effort to commodify their developers, will standardize on a language for maintainability and support reasons.  Should developers be penalized and deprived of functionality because of these decisions over which they probably have no control?