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