Mike Swanson

December, 2004

  • Mike Swanson's Blog

    Microsoft Fingerprint Reader


    Update on 3/26/3009: I recently received an official communication from our hardware group that is germane to this old blog post:

    Thanks for your interest in Microsoft Hardware products.  The Fingerprint Reader is no longer being manufactured by Microsoft but we recognize it may still be available from retailers and resellers.  The product runs on 32-bit versions of Windows XP and Windows Vista. Microsoft will not be releasing any updates for the product to run on 64-bit versions of Windows XP or Windows Vista. The product is not supported on Windows 7 (32-bit or 64-bit).  To ensure this is clear to our customers, the product will not install on Windows 7 (the user is warned that the application will not run). 

    If you currently use the Fingerprint Reader and are unable to use your product with 64-bit versions of Windows XP or Windows Vista or the Windows 7 beta release, please visit the following Web site for assistance: http://www.microsoft.com/hardware/support/fingerprintreader.mspx.

    For a couple years now, I've been happily using a DigitalPersona fingerprint reader. It was given to me at one of our internal events, and I had let it sit on my shelf collecting dust wondering why I'd ever need a biometric security device to logon to my machine. Then, one day, I ran across it while looking for something else, and I decided to plug it in and give it a try. Unfortunately, the personal edition of the DigitalPersona device wouldn't allow me to logon with my fingerprint unless I was using the Windows XP Welcome Screen option (and I prefer the Windows Classic Logon). So I was just about ready to disconnect it and put it back on the shelf to collect more dust when I read that I could use it to provide usernames and passwords for web sites I frequently visit. Interesting.

    Basically, you visit a site that requires authentication, touch the reader with one of your registered fingers, then tell the fingerprint software what it should enter into selected fields on the web page. You can also indicate whether or not you'd like the "submit" button on the page to be pressed. That's it! Now, the next time you visit that web page, you just touch the fingerprint reader, and everything is done for you. It's really that simple, and it makes logging into secure sites a breeze. I suppose it could be used for any site that has fields you'd like to fill in, but I've used it exclusively for authentication.

    I knew that we had recently come out with our own Fingerprint Reader, and I figured that I could use my new computer purchase as an excuse to try it out. So, even though the DigitalPersona reader had never given me a single problem (other than the Windows XP logon restriction), I purchased the newer, slimmer, and sleeker-looking Microsoft version. And guess what I quickly discovered? It's also made by DigitalPersona! I was very happy to learn this, although I wondered if our version would provide any benefits over the older reader.

    The Microsoft Fingerprint Reader does allow you to logon to your machine, even if you're using the Windows Classic Logon screen like me. Plus, the interface that allows you to configure fields and buttons on a web page is improved and very straightforward. As you can see in the screenshot, the software highlights the field on the web page (in this case, a Hotmail password field) that corresponds to the field that you are registering. Then, you can tell it which button to use to submit your information. In my case, it automatically selected the "Sign In" button for me. After I press OK, I'll never have to type these credentials again...I can just use one of my registered fingers.

    One word of caution. I've discovered that the reader will not work more than a couple times when plugged into a Belkin F5U237 Hi-Speed USB 2.0 7-Port Hub. If I plug it directly into my computer, everything works as advertised. The fingerprint reader appears to require 260mA of power from the USB port, and from what I've read, the USB specification states that devices may use up to 500mA before they need to provide their own external power source.

    I'm not sure why it doesn't work reliably when connected to the Belkin hub, but I've tried a number of things to diagnose the problem: I've plugged the hub directly into the wall (instead of through a surge protector), I've tried all of the ports on the hub, I've tried another hub of the same make and model, I've upgraded all of my USB drivers, and I've spent about 30 minutes on the phone with Belkin technical support. Although the support person I spoke with was very helpful, we were unable to successfully resolve my problem. I'll probably try a different USB hub to see if the issue I'm having is limited to this specific make and model. Update: I installed an Adaptec USB card, and everything now works fine. It appears that the problem is with the USB chipset on my motherboard (VIA).

    Regardless of this slight hiccup, I am very happy with the new reader. For around $41 (or $39.88 if you live near a Sam's Club), this is a nice piece of hardware that offers a lot of convenience. If you're looking for unique and useful gift ideas for the upcoming holidays, this is one I'd highly recommend.

  • Mike Swanson's Blog

    Cardamom Bread and Pepparkakor Cookies


    I thought about titling this post, Man Found Dead with Cardamom Bread Recipe Stuffed in His Mouth. However, after considering the situation realistically for a moment, I realized that my grandparents probably wouldn't knock me off for sharing two of our secret Swedish holiday recipes. But, if I turn up missing, you know who to look for! :-)

    Every year around the holidays, I look forward to these two tasty treats. I've eaten cardamom bread and papparkakor cookies during Christmastime for as long as I can remember. The smell of either of them baking immediately brings back warm memories for me. About 10 years ago, I asked my grandparents for these recipes, and they were kind enough to provide them. I'm posting both of them here so that others can enjoy their fantastic flavor.

    Cardamom Bread

    Here's the recipe that I use for cardamom bread. The original recipe is the version that I received from my grandparents. The modified recipe is my own conversion for use with a bread machine. I've made this recipe tens of times, and I'm always pleased with the results.

    Original Recipe         Modified for Bread Machine
    ¾ cup milk   ½ cup milk
    ¼ cup butter   3 tablespoons butter
    1 egg   1 egg
    1/3 cup sugar   ¼ cup sugar
    ½ teaspoon salt   ½ teaspoon salt
    3 cups flour   2¼ cups flour (bread flour)
    2 teaspoons yeast   1½ teaspoons active dry yeast
    1½ - 2 teaspoons cardamom   1½ teaspoons cardamom
    (3 teaspoons if using powder)
    1. Microwave milk and butter for approximately 50 seconds
    2. Make dough using all ingredients (manually or with bread machine on "dough" mode)
    3. Divide into 3 rolled strips, cover with cloth, and allow to rest for 10 minutes
    4. Braid dough and top with light sugar coating (not included in above ingredients)
    5. Allow to rise for 40-50 minutes under plastic wrap
    6. Bake at 350 for 18-20 minutes
    7. Remove from oven and place on cooling rack

     Cardamom bread is good toasted or plain, buttered or not. If you're like me, you won't be able to limit yourself to just one or two slices. :-)

    Pepparkakor Cookies

    Done properly, pepparkakor cookies (a Swedish twist on ginger cookies) are relatively thin and crisp. Pepparkakor cookie dough is my favorite, with chocolate chip cookie dough coming in a close second (at least the Nestlé Toll House recipe). Yeah, I know...raw eggs, Salmonella, etc. Call me crazy, but kids and adults have been eating raw cookie dough since the dawn of time (okay...maybe not quite that long), and as far as I know, kids aren't keeling over in the kitchen. But hey, I'm no doctor, so proceed at your own risk.

    1 cup butter
    1 egg
    1 cup white sugar
    ½ teaspoon salt
    1 teaspoon ginger
    2 tablespoons milk
    3 tablespoons molasses (I prefer the “Dark Full Flavor” kind)
    2 teaspoons baking soda
    3 cups flour
    2 teaspoons cinnamon
    1. Cream butter with sugar
    2. Add egg, milk, and molasses
    3. Mix everything else in
    4. Refrigerate the dough overnight
    5. Roll dough onto flowered surface until approximately 1/8" thick, and cut into shapes
    6. Bake at 350 degrees until done (approximately 8 minutes)

    If you end up making either of these recipes, or if you have similar recipes that you'd like to share, please leave feedback. I'm very curious to hear what you think!

  • Mike Swanson's Blog

    Changing Jobs


    I became a Microsoft employee in May of 2000, and I've been a consultant in our Microsoft Consulting Services (MCS) organization for the past 4½ years. Although I've thoroughly enjoyed my time in the field, I've always wondered what it would be like to work at our main campus in Redmond, Washington. Well, on Wednesday, I accepted an offer for a Technical Evangelist position that will focus on Avalon-related developer tools and components. If you're unfamiliar with Avalon, it might help to read a brief introduction from our November 2004 Community Technology Preview.

    Before I came to Microsoft, I always thought that I'd like Robert Hess' job. I love learning about new technology and sharing it with others, and I'm told that I have excellent communication and presentation skills. Mix in some passion, curiosity, creativity, business skills, and a 25+ year history in the industry, and I hope you end up with a very strong Technical Evangelist. If you continue to follow my blog, I suppose we'll both find out!

    If you read my post titled Failing at Vacation, you know that I flew out to Redmond last Tuesday and Wednesday. It was a whirlwind visit, and I barely had a moment to breathe. But, it was invigorating. After checking in at the hotel, I turned around and grabbed a taxi to building 18 for a 4:00pm interview with Karsten Januszewski. I interviewed with Steve Cellini (the guy responsible for the PDC) at 5:00pm, and my new manager, Jeff Sandquist (one of the guys who started Channel 9) at 6:00pm. They asked a lot of great questions, and I enjoyed meeting each of them. Unfortunately, my brain was running on an early morning Cinnabon, some Skittles I bought at the airport, and a package of United Airlines snack mix that I devoured on the plane. Fortunately, I was able to grab dinner that night, although I didn't finish until 10:00pm Redmond time (1:00am my time!).

    On Wednesday morning—after a proper breakfast—I interviewed with Carter Maslan and Jeremy Mazner. Of all of the interviews, Jeremy's was the most challenging. He had me write some ad hoc code on the whiteboard (sans IntelliSense) and asked me to whiteboard a couple of PowerPoint slides that I then had to present to him. Whiteboarding code is always interesting. Although the code I wrote achieved the desired functionality, it was definitely a first pass. As luck would have it, a much more obvious and performant solution popped into my head the moment I walked out of his office. I had a short follow-up with Jeff, hopped in a taxi, and flew back home.

    Thursday evening, I had a phone interview with Vic Gundotra, the General Manager of Platform Evangelism. I've seen Vic present at many of our internal events, and his excitement is infectious. Talking with him on the phone is no different. If you ever wanted to get pumped up about technical evangelism, Vic is your man. I look forward to getting a chance to meet him in person.

    Overall, the interview process went very smoothly, and I'm excited to try something new. The decision to move away from our family and friends was a very difficult one for my wife and me, but I know that over time, we'll be happy with our choice. We both love the Seattle area, and we're looking forward to an adventure. I start the new job in early January, and we'll be relocating sometime later that month. Wish us luck!

  • Mike Swanson's Blog

    Media Center and the Universal Remote Challenge


    A few posts back, I mentioned that I installed Media Center 2005 on my old P4 1.8GHz computer. Since I've now fallen in love with it, I figured it was time to assimilate its remote control functionality into my 2-year-old Marantz RC9200 universal remote. As a side note, my wife was gracious enough to give me the RC9200 as a gift after I had been salivating over it for months. Although it's a couple years old, it has been a fantastic remote control. It is truly universal in that it can "learn" by recording other remote infra-red (IR) signals, it can broadcast radio frequency (RF) signals (to control your X10 room lighting, for example), and it has custom software that allows you to completely configure everything, including the look and feel of the screen. It's not for the faint-of-heart, but if you like programming, you have a bit of creativity, and you are a patient person, you can work wonders. Here are a few of my screens:

    As usual, I plugged the RC9200 into my computer and started recording IR commands from the Media Center remote. The process went smoothly, and I was able to successfully record the codes for each key. I configured the macros I planned on using and hooked up my virtual touch-screen buttons to their appropriate IR counterparts. After downloading the new configuration to my universal remote, I carried it downstairs for its first test. Initially, it seemed as if everything was working just fine. However, after a few short moments, I quickly realized that something was amiss. The first press of my down arrow button worked properly, but it wouldn't accept a second press...that is, until I pressed something else first. And the other buttons all behaved in a similar fashion. Very strange.

    So, I turned to the remote control experts at Remote Central and The Green Button. A casual search of their forums turned up a couple of posts (here and here) about similar behavior with other learning remotes. Turns out that the Media Center remote has two sets of codes that alternate with each button press (apparently using a bit flipping technique). This method is used so that a single key press isn't accidentally received twice by the computer and is referred to as debounce. From what I've been able to find on the internet, it seems that IR codes can inadvertently be received more than once by reflecting off surfaces or being interfered with by displays, lamps, etc. How interesting. To avoid this effect, the Media Center remote sends the first IR command for down arrow, and when the user presses the button again, it sends a second IR command for down arrow. If a different button is pressed in between these two presses, it doesn't matter, because clearly, it's not a key "bounce" in that scenario. It's interesting to note that this is exactly the behavior I was noticing.

    There are a few suggested options to deal with this. First, you can follow every normal command with a "do nothing" command. Unfortunately, it's often difficult to identify a do nothing command on the remote. For example, if the clear command did nothing useful on the remote, you could conceptually program the down arrow functionality as: down arrow + clear. By doing this, you've sent a second real command to the receiver, and your next down arrow command will be considered a second press. Not pretty, but a functional hack. The second option is to literally duplicate the user interface panels and switch between them with each press of a key. Of course, you'd have two panels, each with their own set of IR codes. Although it sounds doable, it's definitely more work, and it sounds like even more of a hack. And I'm no fan of hacks.

    The third option is to simply disable the debounce feature of Media Center and use a single set of IR codes. I don't know why this isn't exposed in the settings screens in Media Center, because it's something that anyone with a learning remote will run into. To disable the debounce feature, you need to modify a single registry key. Standard registry editing rules apply...make sure you create a backup, know what you're doing, etc., etc. The key is called EnableDebounce, and from what I've read in various posts, it's found in the following locations:

    For Media Center 2004: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\idIr\Remotes\745a17a0-74d3-11d0-b6fe-00a0c90f57da

    For Media Center 2005: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\HidIr\Remotes\745a17a0-74d3-11d0-b6fe-00a0c90f57da

    So, fire up RegEdit, navigate to the appropriate key, and change the EnableDebounce value from 1 (its default setting) to 0. Note that you'll have to reboot your system for this change to take effect. After this modification, my universal remote now works like a charm, and I've added one more remote to the remote control graveyard behind my big screen TV.

  • Mike Swanson's Blog

    Failing at Vacation


    As Microsoft employees, we're allowed to carry forward the same amount of vacation time that you would normally accrue in a single year. Since I get three weeks of vacation each year, I can carry forward no more than three weeks into the next year. So, in 2004, between actual holidays, floating holidays, and unused vacation, I find myself needing to take almost the entire month of December off so that I don't lose my "extra" vacation days. I've never had that much consecutive vacation time, and frankly, before it began, I wasn't sure that I'd be able to avoid my active routine and simply relax.

    Well, after my first full week, I'm embarrassed to report that I am actually failing at vacation (how pathetic). I wouldn't have guessed it was possible. This week alone, I flew to our main campus in Redmond Tuesday morning and returned Wednesday around midnight. Then, yesterday, I spent all day helping out a couple of customers in southwest Michigan, returned home around 6:00pm, and had a conference call at 7:30pm. Of course, all of this has been my choice, and I'm not really complaining...just making an observation.

    All of this has kept me from my regular blogging routine, and I've missed it. I have a backlog of about 20 things that I'd like to blog about at some time, and that doesn't include the product and technology announcements and discoveries that I try to share. So no, I haven't fallen off the face of the Earth, and yes, I'll be diligent in my vacation efforts in the upcoming week (do diligent and vacation belong in the same sentence?). I hope to find time to blog more in the coming weeks.

    I have a stack of books that I'd like to get through and review. Plus, my friend Rob has coerced me into buying Lord of the Rings, The Battle for Middle-earth. I'm not a big fan of real-time strategy games, but the graphics and interactivity I've seen in the videos are too impressive to ignore. Anyone else playing this game?

Page 1 of 3 (11 items) 123