shahine.com/omar/

homepage | Send mail to the author(s) contact

yet another Microsoft blogger

# Tuesday, July 19, 2005

Dear Mastercard

After years of getting cryptic “Terms of Use” updates from my credit card companies, and offers to pay > $50 a year for credit monitoring services to protect myself from, well, them… it was nice to read this.

Posted Tuesday, July 19, 2005    Permalink    Comments [0]  View blog reactions

 

WMA DRM for Palm

Freaking awesome. Pocket Tunes now supports DRM’ed WMA files for subscription and purchased audio. This makes the LifeDrife really compelling.

Remember what I said about The Platform?

This now brings our Platform for digital music subscription and purchase to the thousands of devices running the Palm OS. I can’t wait to try this out on my Treo 650.

Posted Tuesday, July 19, 2005    Permalink    Comments [1]  View blog reactions

 

# Monday, July 18, 2005

SFO -> NRT -> SHA

That's where I'm headed right now. I am sitting in the Northwest Airlines lounge in Narita Japan, waiting to board my flight to Shanghai, China.

One of my favorite things about the lounges in Japan are these cool Beer pouring machines. They make the perfect glass of beer. Yummy.

Asahi.jpg

More later. BTW, Northwest Airlines rocks for International Travel. I thought all US Airlines sucked when it came to the international skies. Not so. Northwest, and the Airbus A330-200, was one of the best flying experiences I've had. Makes American Airlines look old, crappy, and lame. And that's a shame since they compete on the same route with a Boeing 777. The Airbus is a nicer plane.

Posted Monday, July 18, 2005    Permalink    Comments [1]  View blog reactions

 

# Thursday, July 14, 2005

FeedDemon 1.6

Well, after much trial and tribulation I finally got FeedDemon 1.6b1 working. It didn't work on the first go, which was mighty frustrating (I could not activate it). The NG folks quickly posted a fix that activated my copy.

However, that's where the trouble began. My Feed List got horribly screwed up. I was using Feeddemon one way sync with NewsGator before this upgrade and was looking forward to the new better Sync. Well upon my upgrade I was greated with numerous duplicates, and my folders all screwed up. Because NG Online can have top level feeds, and FeedDemon has to have everything in folders, things got messy and hard for me to figure out. Feeds moved from one place to another, dissapeared, or were in two places with slightly different names.

I ended up having to delete all my feeds from NG Online, and delete all my feeds from FeedDemon an start from scratch. Even then I found myself confused when things I thought would work didn't. For example:

  • Adding a new feed to NG Online does not cause it to appear in FeedDemon.
  • All my top level feeds are in an "Untitled" folder. Not sure what to do with them.
  • When I installed FeedDemon on a second PC and synched with NG Online all my unread items were marked Read online, but not marked read on my other PC running FeedDemon.
  • The new Surfer style sorts items by date in the opposite order from the item list. I was able to fix this by modifying line 274 to "<xsl:sort select="$SORTBY$" order="descending"/>"

Anyway, 1.6 has many great features and I'm sure Nick will address the issue by the time the release is final (remember, this is a beta, and I was well expecting problems).

Here are some of my favorites:

  • Newspaper themes allow you to flag, and copy items to a newsbin. I can now turn on the item list.
  • UI is much cleaner.
  • Sync of unread status seems to mostly work on one PC

Here are things I would like to see:

  • Sync of News Bins to the My Clippings folder on NG Online
  • More consistent sync across different copies of FeedDemon and NG Online.
  • Better Perf (it's a bit pokey right now)

All in all I'm quite happy to finally get an update to my favorite RSS reader.

Posted Friday, July 15, 2005    Permalink    Comments [0]  View blog reactions

 

Sender ID

There is a LOT of FUD about Sender ID. I was happy to read this Forbes Article which does a great job at explaining the current situation around "email authentication" which basically means technologies such as Sender ID and Domain Keys.

The IETF has not yet endorsed either specification as an industry standard, but e-mail authentication is a hotly debated topic in the industry. Because the authentication approaches are different, system administrators do not have to choose which specification to follow--they can use both simultaneously.

Tripp Cox, chief technology officer of Internet service provider EarthLink has been testing both and says of the two proposals, “We found they are complimentary technologies, but doing different things.”

As Tripp said, these technologies are complementary. You can use both, and the work in concert to deliver different but valuable information about the origins of the email.

Sender ID does have some drawbacks, most notably if you forward mail from one account to another (such as from a university alumni account to hotmail) you can get a false positive. However, these things can be mitigated. To be fair, Sender ID does work well at identifying fraudulent fishing mail. eBay and Paypal both benefit from this.

As a reminder, you can read all about our anti-spam efforts here.

Posted Friday, July 15, 2005    Permalink    Comments [3]  View blog reactions

 

Dvorak on Alaska

For the first time in my life (I think) I 100% agree with John C. Dvorak. His recent post on Alaska Airlines is 100% spot on.

"Meanwhile, and as I said, I avoid flying Alaska anywhere. The Alaska Airlines on-time thing has gotten to be ridiculous. The last 10 times I've flown them half were late, often by hours. I now fly Southwest which is hardly ever late."

Similar to the experiences I've blogged about here and here.

Want to know how bad they are? Via the Airline On-Time Statistics site:

For all flights to SFO on Alaska for 2005:

1,892 flights on time.

562 delayed by an average of 55.21 minutes for 92.34 minutes of flight time.

For All Alaska Airline flights for 2005:

63,481 flights on time.

16,850 delayed by an average of 52.45 minutes on take off and 54.97 minutes on arrival for an average of 123.90 minutes flight time.

That means that I have a 25% chance of getting home on time. I travel once a month to Seattle, for 24 flights a year. That means that I'm delayed about 7 times a year. On average.

Update: I found this article in the Seattle Post-Intelligencer:

Alaska Airlines was the worst airline in the nation for on-time arrivals and departures in May, according to a federal transportation report.

The Seattle-based carrier was last among 20 major domestic airlines in May for on-time performance, according to the U.S. Department of Transportation's monthly report.

Alaska Airlines planes left or arrived on schedule only 59 percent of the time during May and ranked next to last for on-time performance over the last 12 months ending in May, the report said.

Posted Thursday, July 14, 2005    Permalink    Comments [1]  View blog reactions

 

# Thursday, July 07, 2005

Boomerang

Catchy name for a feature huh? Boomerang is one of the cooler and innovate things we've done at Hotmail, and chances are you have no idea what it is or that we've even using it.

I'm going to be upfront and tell you that I had nothing to do with Boomerang. However, I'm writing about it because it restores dependability to email. It's specifically aimed at keeping the spammers from ruining mail.

Background

Let’s go back to when I started using email. That was around 1994, my first year in college. Back then you could send and reply to email as much as you wanted and it generally got delivered. The only thing that prevented email getting from user A to user B was some kind of routing/smtp failure or bug in the mail client (like a crash). There weren't any spammers out there to muck this up. Furthermore, if you made a typo or something when writing some one's email address you typically got a Non Delivery Receipt (NDR) notifying you of the failure. Generally, things were good.

Today Hotmail blocks what we estimate to be about 3.2 billion messages. I say estimate because much of our anti-spam technology will simply prevent us from picking up the phone when you try and call. In other words, we drop you at the router, before we even spend any cycles figuring out if you are sending spam using software such as SmartScreen. We've invested a tremendous amount of time and energy into systems that try and figure out the behavior of your IP address, and the content of your messages. These systems are by no means fool-proof and unfortunately, it’s possible that you have experienced some false positives (messages that are not spam in your Junk folder), or, more likely, false negatives, which are messages in your Inbox that are spam. What's worse though are the messages you never even received. To give you an example, I didn't find out my old roommate was getting married till pretty late because his "save the date" email never made it to my Inbox. That sucks!

The Solution

Well it's impossible to really fix things perfectly. But there is one critical scenario that we did solve, and we did it using Boomerang. If you send mail to some one using your Hotmail account, replies to that message will go straight to your Inbox. In other words, messages you send your friends and family, will have a straight shot back to you if they chose to reply. There is also another additional benefit. Over time spammers started to do things like spoofing your email address or send spam to other people that looks like it came from you (“spoofing” you).  Some of that doesn’t reach its victim and gets failed back to you as an NDR, diluting the value of NDRs. The problem with spoofing is that anyone can pretend to be you and send mail using your email address. The result is that many mail providers will send NDRs back to you (not the spammer) telling you that you tried to send mail to a non-existent mailbox. Annoying. Well Boomerang allows us to nuke any NDR messages that were not a result of YOU sending mail. How did we do all this? With smart people and simple technology. It's my favorite kind of work. No standards bodies, no politics, just an idea and some code.

Boomerang takes advantage of two very simple things: 1) The Message-ID header, 2) A hash, and 3) the In-Reply-To header. Basically, when you send a mail at Hotmail, we create a Message-ID that is unique to you. The hash is a one way hash, and it's pretty much only possible for our servers to generate them. I say pretty much because with any simple technology, it's entirely possible that some motivated person will find a way around this. However, it's really not worth their time to do so given that each instance of these things are time limited, and unique to an individual.

When another mail client receives the message from Hotmail, it contains this special Message-ID. Most mail clients that respect our Message-ID will use that Message-ID as the basis for the In-Reply-To header. This behavior is specified in RFC 822—the basis of the format of internet email.  The In-Reply-To is another message header that allows mail clients to uniquely tie a reply to another email (the one you sent). Each subsequent response to that thread maintains the Message-ID in the form of the References header. Whenever we receive a piece of mail that has this special Boomerang identifier in either of those two headers, we place it in your inbox ensuring that it bypasses any content filtering. Now some mail clients do not respect the Message-ID that we generate, or they may not generate a In-Reply-To header. Clients like Hotmail, Outlook, and OE do, and I suspect the list will continue to grow.

On NDRs. The format is such that the original message is almost always attached (to facilitate resending).  In this case, we can know that the proper Boomerang identifier is present or not, and not only bypass filtering if it is, but automatically junk it if not.  This is a very important scenario for users who can get confused by NDRs of messages they probably didn’t send from someone else that received a virus claiming to be from them, detected, cleaned, and refused the message, causing someone two degrees away from the actual infected computer to get worried, call helpdesks, reformat their machine, etc.

So, to summarize. We have some code that tags your outbound messages. If the email recipients reply to your message, and they are using a modern mail client, that message will find its way back to you; just like a boomerang. If the message reaches an address that does not exist you will receive notification of that Non Delivery, and you will not get spam messages disguised as NDRs, or NDRs that are a result of some one hijacking your email address.

We've had this feature in Hotmail for a few months now and it's working great. You probably never noticed, but you're probably getting all the replies to emails you sent when people chose to reply. Making email more reliable, it's just one things we're bringing you this year.

You can thank Eliot Gillum, Aditya Bansod and Pablo Stern for this work. They are smart guys, and I'm glad I get to work with them.

Disclaimer: this work is Patent Pending.

Posted Thursday, July 07, 2005    Permalink    Comments [15]  View blog reactions

 

# Tuesday, July 05, 2005

OEMs?

 

Last week my parents were visiting. And like a good son, I spent a few hours getting my dad set up on his new Sony S Series Laptop to replace his Fujitsu Tablet (my Dad was jealous by all the Apple PowerBooks his friends have and he wanted a sexy wide screen laptop that didn't weigh 50lbs). The laptop is awesome, thinking of one for myself. However... I counted > 30 items preinstalled in the Add/Remove programs. I spent most of this time just removing all this nonsense. Things have actually gotten worse over the past few years. In terms of bad offenders I'd rank:

  1. Sony
  2. Toshiba
  3. Gateway
  4. HP
  5. Fujitsu
  6. Dell

With a Fujitsu or a Dell you barely get anything installed, which is great. Toshiba/Sony laptops come with dozens of utilities, processes, crap I don't want or need. Who thinks this is a good idea? Do I really need a process running for every hotkey and widget? Do I really need AOL, RealPlayer, and every AntiSpyware, Virus, Trojan Horse protector, 2 Wifi thingies, and Media Home Server sharing software? 25 icons on my desktop?

To make matters worse, Sony did not include any software to restore the laptop to factory state. Nada. Good thing I can boot XP from a CD on that thing... at least they dumped the Jog Dial.

Posted Wednesday, July 06, 2005    Permalink    Comments [6]  View blog reactions

 

tcserver.exe memory leak fixed

You probably don't care, and should not care, but after many months of living with this bug, we have released a fix for it.

Unlike Jonathan, I had a repro (it was called using my computer for 2 days w/o rebooting), and was basically told to pound salt. Then magically it was prioritized the "right way" and now we have a fix. In about one day my tcserver.exe process could go up to 300 MB of working set. Then an exception would occur, and the process would recycle. Not the end of the world, but pretty annoying.

I actually don't care much for the extra overhead of all the processes that come with my toshiba m200 tablet. I figure you pay at least a 256 MB memory stick in overhead. But my biggest problem is that the screens on these things are blurry, dim, and not very sexy when compared to a widescreen 4lb laptop with a DVD drive and an XBrite Screen. My next laptop is going to be a laptop. I've gone so far as to disable tabtip.exe from starting up on my machine. When I click the button near the start menu it comes up anyway.

Yes, I get to be grumpy every once in a while :-).

Posted Wednesday, July 06, 2005    Permalink    Comments [0]  View blog reactions

 

# Sunday, July 03, 2005

Batman Begins/IMAX & The Movies

I've been reading a lot about how no one is going to the movies any more. Well I'm one of them. Going to the movies pretty much sucks these days. With the $20 ticket fee for two, the $8 soda, the screaming annoying teenagers, and the freaking ads! Why pay good money for that when I can pay $20 a month to have DVDs delivered to my door (via Netflix), and pop them into my Media Center and watch on my 42" Plasma with 5.1 Surround? At least I can press pause, and eat my own food.

"Just as home entertainment systems — including plasma screens and surround sound — have become increasingly lavish, the overall moviegoing experience has become a shell of its former self. Even as theaters offer stadium seats and martinis, moviegoers are being bombarded with countless advertisements and coming attractions.

"Going to a movie theater used to be a unique way of seeing a movie and carried with it a romantic notion — it was a special forum you shared with a group of people," said Terry Press, the head of marketing for DreamWorks. Theater advertising is annoying and ruins the value of movie previews, which are a studio's most powerful marketing tool, Press said. "At least at my house I have the ability to fast-forward through the commercials," she said.

Said Richard Zanuck, a producer of the forthcoming "Charlie and the Chocolate Factory": "I don't like [commercials] at all. People come to see the movie. The movie experience is supposed to be that…. They've come to see the film and not to be sold something else."

In fact, 73% of adults prefer watching movies at home, according to an Associated Press-AOL poll released last week. A quarter of those polled said they had not been to a theater in the last year."

[La Times]

I suspect that many folks who have purchased the latest in display technology (Plasma, DLP, Projector, etc) are finding themselves unwilling to pay ~$30 to see a movie in the theater. However, listen up Hollywood. If you want to get my butt in a theater, take notice of Batman Begins on IMAX. I happily paid $15 for the ticket, $9 for parking, and $4.00 for a small soda. But it was worth every penny. Like Rick, I loved it.

Posted Monday, July 04, 2005    Permalink    Comments [1]  View blog reactions

 

Remote Assitance

To be honest, the main reason I switched my parents from Mac to a PC many years back was the built in Remote Assistance. I can't tell you how many times this has saved my parents a plane ticket to fly me home. I probably use it twice a month. However, there are two big problems with Remote Assistance.

1) MSN Messenger needs a way for me to Offer Remote Assistance. Each time I need to help my parents I spend about 10 minutes telling them how they need to ask me for Remote Assistance. That involves launching MSN Messenger (to which they say, I'm already using MSN), finding my contact, opening it up, going to the Actions menu, Start Activity, then Ask for Remote Assistance. For the love of Pete give me a way to offer them Remote Assistance.

2) Why oh why can't Windows XP stop drawing pretty things when I'm connected. It's freaking slow as molasses as I sit there and wait for all the animations, drop shadows and pretty colors to draw. I wish it could down sample the UI like Remote Desktop can. This would save me a lot of time.

I wish some one would fix this.

Posted Monday, July 04, 2005    Permalink    Comments [9]  View blog reactions

 

# Friday, July 01, 2005

Application Data

I've always wondered what the difference was between:

  • %USERPROFILE%\Application Data\
  • %USERPROFILE%\Local Settings\Application Data\

Well Raymond gives us the answer.

Basically, %USERPROFILE%\Local Settings\Application Data\ is for local cache type data. Stuff you don't want to roam in your Roaming Profile. I used Romaing Profiles a few years ago, and after a few days it so badly screwed up my PCees, I promptly flattened my boxes and went back to the basics.

Posted Friday, July 01, 2005    Permalink    Comments [0]  View blog reactions

 

# Monday, June 27, 2005

Updated:

99% of the appointments on my calendar say "Updated: <original appointment name>". I don't find this particularly useful, especially when I look at my calendar on a small screen like the Treo 650, or even smaller Windows Mobile Device. Half the time I have no idea what was Updated anyway, and I just blindly accept the meeting request.

In fact, most meetings go like this:

  1. You get a Meeting Request for a meeting
  2. 2 min later you get another meeting request because the person:
    • Forgot to make it recurring
    • Could not get the conference room
    • Added some attendees
    • Moved it to a new time because person foo could not make it
  3. Some time later, due to issues with step 2 you get another appointment.

If you are lucky enough to get to Step 3, you will often find that Outlook will display a message that says "Object moved" when you try and delete, accept or do anything with the third meeting request. I have no idea why.

Anyway, to make the calendar more useful, i wrote a little command line app that will simply remove "Updated: " and "FW: " from the beginning of any appointments on your calendar.

You can download it here, or in the RSS enclosure.

Usual disclaimer applies. This works on my machine, did not do bad, and I am not responsible for what it does on your machine. You must have the Outlook .NET Programability Installed for Outlook 2003.

The code looks like this:

static void Main()
{
    string[] prefixes = new string[] {"Updated: ", "FW: "};
    try
    {
        Application application = new Application();
        MAPIFolder calendar = application.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar);

        int counter = 0;

        foreach (object o in calendar.Items)
        {
            if (o is AppointmentItem)
            {
                AppointmentItem appointmentItem = (AppointmentItem)o;

                foreach (string s in prefixes)
                {
                    if (appointmentItem.Subject.ToLower().StartsWith(s.ToLower()))
                    {
                        string currentSubject = appointmentItem.Subject;
                        string cleanSubject = currentSubject.Remove(0, s.Length);
                        appointmentItem.Subject = cleanSubject;
                        appointmentItem.Save();
                
                        Console.WriteLine("subject: {0}", currentSubject);
                        Console.WriteLine(" new subject: {0}", cleanSubject);
                
                        counter++;
                    }
                }
            }
        }
    
        Console.WriteLine("Cleaned {0} of {1} Appointments", counter, calendar.Items.Count);
        Console.WriteLine("Press any key to exit.");
        Console.ReadLine();
    }
    catch (System.Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

Posted Tuesday, June 28, 2005    Permalink    Comments [5]  View blog reactions

CleanCalendar.zip (2.41 KB)

 

# Saturday, June 25, 2005

Zero Email Bounce

Getting Things Done teaches you that you should have zero messages in the inbox. I was up in Redmond this past week and was thinking about my zen like experience with mail now, and that realistically I get to zero messages one or two times this week. But I do that each week.

At Microsoft we have a term, Zero Bug Bounce (ZBB) which is the milestone at which you get to Zero bugs older than n days. Some times it's a week, sometimes 24 hours. But you do that for a few weeks till you cut your Release Candidate build. It seems I wasn't the first to consider the term ZEB for email, but I've adopted it as a term for the goal that I try and attain each work day.

Posted Sunday, June 26, 2005    Permalink    Comments [4]  View blog reactions

 

American Cars

In case you didn't notice, American Car companies are having a hard time these days. Here is some great insight into why, courtesy of Dennis and Avis.

Posted Sunday, June 26, 2005    Permalink    Comments [1]  View blog reactions