shahine.com/omar/

homepage | Send mail to the author(s) contact

yet another Microsoft blogger

 Saturday, July 30, 2005

I'm done with MSI + VS

I have successfully built and used the MSI support in visual studio now for many projects. However I keep cutting myself with two problems.

RemovePreviousVersions doesn’t always work.

I just found out a little gem. If you rely on this feature there is NO WAY to garuntee that it will work. If the end user installs the first version of your product using “just for me” or “all users” and then they change their mind the second time around (on upgrade) the old version won’t be removed.

This has been a mystery for me for a long while now. I’ve been stumped, and I found the answer on Usenet. What a bummer. Any suggestions?

COM registration doesn’t always work

There is absolutely no way I can figure out a rock solid 100% foolproof way of doing regasm on a dll at install time (to register a .net dll using COM). The built in MSI property vsdraCOM does not work. I verified this on my desktop machine at work. But it works fine on my laptop. Go figure. I even wrote a custom Install action and I found out that this doesn’t work on at least one person’s machine.

I’m beginning to realize that my time is better spent doing other stuff then messing with any .NET class that needs to be exposed as a COM object. I’m just going to start pretending that this feature doesn’t even exists so I can stop cutting myself.

The reason I ran into this problem recently was to add contextual menu support to the Windows Explorer for individual jpeg files. Yes, you can do this with a registry entry (which is what I do for folders), however, if you select more than one file, the shell launches n instances of your application rather than bundling up the files as multiple arguments. Making a Windows Forms app that forces only once instance of itself to be running is non trivial and involves such things as .NET remoting which I know zero about. That leaves you writing a lot of horrible code to impliment weird COM interfaces, and exposing your class as a COM Class in .NET.

Sigh. Perhaps this will be fixed in Vista.

Posted Saturday, July 30, 2005    Permalink    Comments [2]  View blog reactions

 

DasBlog 1.8 RC1

Scott just announced dasBlog 1.8 RC1! He has put in a heroic effort with this release :-). There are tons and tons of bug fixes in this release. Our goal is to improve the stability of the product with each new release, and provide features that make hosting a blog less annoying. In this vein my fav features are below. This release really would not have happened w/o lots of prodding and work on Scott’s part. I was just slammed the last few months.

The full list of new features is here.

Also to be clear. You do not need to run the upgrader on your content files. If you want to delete all your referrals though feel free to.

  • XCOPY deployment for hosters that provide ASP.NET Impersonation.
    • This means that if your hoster sets up your account to run under your machine account, dasBlog doesn’t need any special permissions from ASPNET or NETWORKSERVICE to write to /content, /logs, and /SiteConfig. This should save folks a lot of time and energy.
    • My hosting provider, Server Intellect, supports this out of the box.
  • Anti-Spam Features
    • You can now delete referrals and trackbacks.
    • Incoming Trackbacks are validated to ensure a site is actually linking to you.
  • Admin Features
    • Captcha disabled if you are logged in as admin
    • Login issues fixed
    • Color highlighting on the Event Log page
    • Can pre/post date entries
    • Referrals are no longer logged with individual entries by default. If you have a high traffic site, this was killing performance. Referrals will always be logged in the event log file. The DasBlogUpgrader can optionally trim your dayFeedback files of all the existing referrals (I just did this)
    • Deleting Comments, Referrals, Posts occurs w/o a postback to the server and an interstitial confirmation page (we now use JavaScript)
    • Themes are easy to install, remove, and copy.

You blog spammers can now pound salt.

This will likely be the last release of dasBlog that supports .NET Framework 1.1. The focus for the next release will be moving to Whidbey, refactoring, and trimming a bunch of code to make dasBlog a lot leaner (and faster). We’ll also be looking to take full advantage of the 2.0 features.

Posted Saturday, July 30, 2005    Permalink    Comments [1]  View blog reactions

 

 Friday, July 29, 2005

Story of Kahuna

Imran has a great post on the beginings of our hotmail re-write. This was a full month before I showed up, and got my crash course in Hotmail :-).

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

 

Book Review: The Art of Project Management

When I saw that Scott Berkun was writing a book called The Art of Project Management I was pretty excited. Scott spent much of his career as a Program Manager at Microsoft, and I knew that the book would be chock full of information that goes into great detail about what this wacky job is about, and what it means to be a great Program Manager.

On my flight to and from Shanghai, I read the book mostly cover to cover. I say mostly because it’s 448 pages! The reality is that some of the chapters were just plain obvious to me, so I skimmed them. This book will be whatever you want or need it to be. If you are brand new to the PM job, or a seasoned veteran who joined a new team and is trying to explain to the folks around you what your job is about, this book will help you. I know it’s going to help me.

I would go so far as to say this. If you are in this role at a software company, and have been doing it for less than 3 years, this book should be your text book. Nothing will matter more in your career than having a good grasp and mastery of many of the skills highlighted in the book. If you are an old timer, then this book will be an interesting read to say the least, if not help you with a situation you might be facing today (or tomorrow).

While I’m not going to write pages and pages about this book, I though I would highlight some of my favorite chapters or sections. I wrote and underlined a lot in my copy and I plan to go back and reference these things when necessary.

A Brief History of Project Management

This is the first chapter in the book and has a lot of meat! The main take always for me in this chapter were “The simpler view of what you do, the more power and focus you will have in doing it” and “simple doesn’t mean easy”.

The best example Scott gives here is that of running a marathon. What’s simpler than running? You start running and you stop after 26.2 miles. If I were to do this, there would be an ambulance at the 5th mile to take me to the hospital.

I’ve seen a lot of PMs run projects by creating massive amounts of tools to analyze and report on data about the project. This sounds great and fancy stuff always looks neat, but the tools aren’t going to ship the product, you are. I like and do maintain a very simple view of complex systems. It allows you to be agile. It’s no excuse for not knowing or understanding everything about what is going on, but try and create the least amount of overhead for yourself and your team.

Scott also discusses the history of the PM role at Microsoft. It’s critical to understand why there are so many PMs at Microsoft, and how critical they are in getting stuff into customers hands. He discusses the various traits of PMs and what good ones can do. For me the most important trait is tolerate ambiguity/pursue perfection and courage/fear. “The brave are those who feel fear but chose to take action anyway”.

There is a great topic on confusing process with goals. It’s easy for a PM to try and quantify things that don’t need to be quantified, and fall into a trap of unnecessarily paying attention to your charts, tables, and tasks. Scott paints a good picture of how you evolve into someone who ends up believing that the data and the process are the project, and you lose sight of what your team is trying to do for the business. He makes a bold statement that “your project is your team. Manage the team, not the checklists.” I can’t tell you how important those words are. Sadly for some people, they don’t know what managing the team means, but the good news is that Scott goes into much greater detail in Chapter 10.

On Leadership, Scott states “…leaders and managers are hired to amplify the value of everyone around them”. Again, if you are a great leader you allow people to work to their potential, and you can even increase the abilities and output of the team. These are hard things to measure and very intangible traits (unlike writing code or a test case). Scott also states that “It takes a combination of conviction, confidence, and awareness to be effective and happy as a leader of a team”. If you lack, or haven’t developed as a leader yet, I can guarantee that you won’t be happy, and neither will your team. Leading a project is like drinking from a fire hose, and you need to be prepared or have the support to be coached to do this job well.

Scott ends the chapter with a phrase to describe how he added unique value. He calls this “Making good stuff happen”. On our team, Aditya and I have coined the phrase, “Less talking, more doing” and I think we have the same idea when we say this. The premise is that you can accomplish much more and add a great deal of value if you, as a leader, spend more time with each person on the team than anyone else. In doing this you may influence more decisions than anyone else in the organization, and what you bring to the team will be contagious (good or bad) for the rest of the team.

Final Thoughts

There are many excellent chapters in the book, and hundreds of sentences and insights that really tell the story of Program Management and how to be better at this role. I learned much from this bug and validated much of what I know and do. My favorite chapter is Chapter 10 How not to annoy people:process, email and meetings. This is a must read for every Microsoft Employee :-).

A couple more things I picked up are that empowering people isn’t necessarily being a good manager, but caring about the work that they do, and staying involved with the decisions they need help with go hand in hand with personal growth. Chapter 13 has a great example of this when Scott had to solve a cross team problem and his boss at the time, Hillel Cooperman, provided him guidance that allowed Scott to make the right decision for himself and the business.

Get the book, read it. You won’t regret it. You’ll likely find something that you aren’t doing well, or could be doing better. Or something you can do to help make your team better.

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

 

Mail Beta

Well at long last. I can finally start talking about what I, and my team, have been working on since I joined Hotmail. As you may have read here or there, we have started beta testing the next generation web mail product code named “Kahuna”. Why Kahuna? Well in MSN we release in these “Waves” and we wanted a name that had something to do with water.

It’s been really hard to be silent for so long, and it’s been really difficult to not blog about so much of the cool work going on. Imran has an excellent post on our efforts around the User Experience we are building. While the beta is currently invite only, in the coming months more and more folks will have an opportunity to see it first hand.

So what is my role in all this? Well I am one of a few Lead Program Managers in Hotmail. My team of PMs (Aditya, Andy and Kristin) are responsible for the Architecture and Infrastructure of the Hotmail Frontdoor. The Frontdoor is essentially any Internet facing server with the exception of SMTP. There is also a Hotmail Backend team who build the Storage, and Inbound Mail delivery (including spam filtering) and Hotmail Operations who run our thousands of servers 24–7.

More specifically, my team is responsible for designing the technology for all the servers that run our Web Experience, Provisioning, Login, DAV, POP, and a few dozen other weird internally facing services. Our servers are all stateless, meaning they have no user data. We work with our development and testing team to create, test and ship highly scalable web services that can support very rich functionality in a variety of Internet clients. Right now I am actually sitting in the driver seat for this project which means I’m responsible for coordinating the work of all the smaller teams inside the Hotmail FD, as well as a million other details that you can find out about in The Art of Project Management which covers my day to day activities in about 300 pages :-). I just started a few weeks ago after Reeves did his stint (and survived!) getting us to where we are today. It feels a bit like trying to drink from a fire hose :-).

Over the past year, my team has been focused on rebuilding (from scratch) the code that supports the Web Experience. The actual chrome and functionality that the end user might see is lead by Reeves and his team of PMs as well as some other folks on the Hotmail PM team. Finally, we have a team that is dedicated to making sure that the current product gets a lot of attention to improve quality, reliability and customer satisfaction. That team helps us stay focused on building the new thing without getting sucked into the current thing.

It’s not often that you get to start with a clean slate, and it takes serious commitment and investment on the part of our executives, and our business. This is also the most exciting year I’ve enjoyed at Microsoft. I can’t even begin to tell you how much fun it is to build something as important as a communications service (that supports 200 million users) with the latest and greatest technologies at a world class software company. We have invented and created so much in the past year that it’s mind boggling to see just how far we’ve come since we were white-boarding how this thing might work and look like.

What we have built is a solid foundation (in .NET of course) that should provide our service a great footing for the next 10 years (Hotmail turned 9 this year, and the current code started to show its age). And yes, Kahuna makes heavy use of AJAX (when we started using JavaScript, DHTML and XMLHTTP it didn’t have a fancy name) and the MSN Frameworks that we have partnered with Scott Isaacs to build. More and more MSN properties will benefit from the awesome collaboration going on between Spaces, Hotmail, and the start.com folks to build out a new web development platform.

We’ve been using the product with our production accounts (along with a few hundred MS employees) for a while now and people love it! This is also the first time in Hotmail history that we’ve had a dogfood program internally or done a beta! These things will result in a really high quality product. So to all you folks out there who have been waiting patiently for us to do something cool with our service, thank you for waiting. For those of you that left, we hope you come back when the house is finished being built!

And last but not least. We have a team blog. Check it out!

Posted Friday, July 29, 2005    Permalink    Comments [16]  View blog reactions

 

 Thursday, July 28, 2005

FlexWiki horrible slowness fixed

For months now I've experienced some horrible slowness in FlexWiki. It was so bad that the app would just timeout and basically look broken. Craig posted this a while ago, and I thought this could be the problem. Recently I uncommented all the perf counter code out of FlexWiki and the end result is a happy install.

"I'm doing some work on FlexWiki, and I'm finding that this call:

PerformanceCounter answer = new PerformanceCounter(s_PerformanceCounterCategoryName, name, false);

is sometimes taking a really, really long time to come back. Like several minutes. I started tracking it down via Reflector and native debugging, and it looks as though PerformanceCounter internally spins in this loop, inside a BCL-internal class called SharedPerformanceCounter:"

I also turned on authentication to edit the current DasBlog wiki to keep all you dammed wiki spammers away. Folks were really just using the suggestion page, and from now on suggestions should go to the SourceForge trackers site. Scott and I will retain edit abilities on the wiki.

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

 

Alaska Responds

A few weeks ago I wrote to Alaska letting them know about my displeasure with flying them to Seattle. Today I got a very nice response. I do hope they can get their act together as I do need to continue flying them to Redmond :-).

July 27, 2005

Dear Mr. Shahine,

Thank you for your email about your recent travel experience. On behalf of all of us at Alaska Airlines, we apologize for any disruptions you may have experienced over the past several weeks. We understand our role is more than getting you to your destination. You trust us to get you to that important business meeting, well-deserved vacation, wedding, or other special occasion. We want to assure you that we are well aware of our poor performance and are working diligently to change it.

Our announcement in mid-June to reduce our schedule during the summer was based upon our need to get back to our high standard of reliability. The intent was to provide more spare aircraft and add ground time to reduce delays and flight cancellations. We recognize that in making these changes, we left some of our customers with less than satisfactory travel alternatives.

We are committed to making necessary improvements so that you once again experience the levels of service that all of our customers should expect of Alaska Airlines. We are changing our operation to have more aircraft available "ready to fly" early in the morning at our major hubs. We're also focused on improving multiple processes and hitting measurable reliability goals. Our critical success factors remain unchanged - safety, our people and customer service.

Mr. Shahine, our reputation and our success depend on providing exceptional service. I am sorry that we did not meet that standard for you. We appreciate your comments and the opportunity they afford us to continually evaluate and improve. We trust that on future flights you will experience the levels of service on which we have built our reputation. We value your business and look forward to welcoming you aboard another Alaska Airlines flight very soon.

Sincerely,



Barbara Radimak
Customer Relations Supervisor

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

 

 Wednesday, July 27, 2005

MSN Blogger Map

A few days ago Scott Isaacs, our Architect for Hotmail/Spaces sent mail asking for our log/lat from virtual earth, and our RSS feeds. A few hours later, I’m listed in the MSN Blogger Map. The funny thing is that most of the listings are in RedWest, the MSN Campus in Redmond. But Reeves and Myself are down in Mountain View, CA on the Silicon Valley Campus with the rest of the hotmail org.

Msn_blog_map

 

Posted Thursday, July 28, 2005    Permalink    Comments [0]  View blog reactions

 

 Monday, July 25, 2005

Motorola Moto Q

Motorola Moto Q“The Moto Q is expected to be available in Q1 of 2006.  For more information on pricing and product availability in your region, please check with your local Motorola representative.”

Translation. We may or may not be able to ship this device. It could end up like the MPX, which we announced a full year before we decided we couldn’t make it viable and kill it.

Fool me once, shame on you…

If this device does ship it has a lot of potential though. But I'll pretend I don't know about it :-).

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

 

 Saturday, July 23, 2005

Egypt Blasts

This is really sad. I’ve spent a lot of time over the years in Sharm el-Sheik, including a good part of my wedding trip to Egypt with a bunch of my friends. It’s one of the world’s best kept secrets, has wonderful sea life, and is home to St Catherine's Monastery, the oldest functioning Christian Monestary.

I’m actually going to Sharm in October with Lora, my sister and her boyfriend.

What a tragic mess. My heart goes out to the victims and in fact all the people there.

Posted Saturday, July 23, 2005    Permalink    Comments [2]  View blog reactions

 

 Friday, July 22, 2005

Smugmug Blogs

This is quite cool, the folks at smugmug started a bunch of blogs.

In case you don’t know, smugmug is a fantastic photo site. They are a subscription service but are well worth it. For $30 a year you get unlimited photo upload with a very rich set of features and permission model. Getting your photos there is a snap with the tool I wrote (Send to smugmug) which uses their XML-RPC API to upload photos. They also have a REST API. Shortly I’ll be releasing a preview of the .NET Class Library that Send to smugmug uses to make it easy to write little utilities to program smugmug.

I’ve subscribed to most of their blogs listed below.

Personalities

Chris MacAskill - President
Don MacAskill - CEO & Chief Geek
Jimmy Thompson - Web Superhero

Topics

Getting Great Prints - it's all about color correction
Pro Corner - pump up your sales
Release Notes - almost every bug fix, new feature, and enhancement
The API - want to make smugmug work the way you'd like?

BTW – if you sign up for a new account from any of the links above, you’ll get $5 off your first year (and I’ll get a $10 credit).

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

 

Dude I'm getting a Dell

My Home PC is finally showing its age. I built it in April 2002 and I’m amazed it’s lasted me so long. It is a 1.8 GHZ P4 with 512 MB of Rambus memory (remember them?).

Well yesterday I got an email for $700 off a $1400 Dell Dimension and I couldn’t resist. I was actually waiting for the release of the Shuttle Pentium D Dual Core case, but I got a much better system with the Dell. Plus I don’t have to slap together another computer (which is fine and all, but sometimes it’s just easier to get the whole thing).

Anyway, I really wanted a Dual Core Pentium D Dell, but I didn’t want to pay the extra bucks for the Dimension 5100C (it was close to $2000) and I was concerned that it would be noisy when the CPU got over 50% like my Parent’s Dell and my Dell at work. So I got the Dell 5100 with the Pentium 4 551 with the EMT64 support. I’m not really sure how the perf relates to either the Pentium D or the AMD64 procs.

I also wanted a really small form factor, but had to settle for the 5100 case which is a normal tower as far as I can tell.

Here are my specs:

  • Dimension 5100
  • Intel® Pentium® 4 Processor 551 w/HT Technology (3.40GHz,800FSB)
  • 1 GB RAM
  • 256 MB nVidia GeForce 6800
  • 16X DVD+/– RW dual layer
  • 80 GB SATA drive (cheapest drive to be replaced with a RAID-1 setup)

Total cost was $789.33 with tax and shipping.

 

 

Posted Friday, July 22, 2005    Permalink    Comments [4]  View blog reactions

 

Google vs. Microsoft in China

Once again, Joshua has a very good post on the recent news regarding Google in China and MSFT.

“First, China has no shortage of engineers, and companies have limits on how fast we can hire and integrate new employees.  Even if both we and Google double the size of our China R&D operations every year for the next 5 years, we would still not be in a position where we would be competing with one another for the top 1% of entry-level engineers.  The bottleneck is not talent; the bottleneck is hiring.

Next, graduates of the very best schools in China (think IIT in India) have a high opinion of Microsoft.  Even if we were in direct competition with Google (rather than IBM) for the top hires, we would do well.”

[Better Living Through Software - Google vs. Microsoft in China]

I’m actually in Shanghai right now and can tell you that what he states is totally right. The folks I have interviewed and spent time with have a high regard for Microsoft, and we have a very established and good development team over here. I’m looking forward to working with many of them as they ramp up to become a core port of our team by contributing features to our product and talent to our team.

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

 

 Wednesday, July 20, 2005

Skype and Office Communicator

This is a whole lot of fantastic, but since arriving in Shanghai, I’ve been using SkypeOut and Office Communicator to talk to my family and it’s been fantastic. Of course it requires broadband which we have in our hotel. My the world has changed, you no longer have to pay big bucks to call using the hotel rates, or have a complicated calling card dialing sequence. At .2 cents a minute for SkypeOut it will take me a while to burn through my 10 Euro Credit.

I’ve also found Microsoft TimeZone to be an invaluable tool to keep me from doing complicated math to figure out what time it is in San Francisco and New York.

Mstimezone

Posted Wednesday, July 20, 2005    Permalink    Comments [1]  View blog reactions

 

 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