First two weeks at Microsoft

It has been an insane first couple of weeks at Microsoft. In actuality, though, I don’t know if I can count it as two weeks of experience. I’ve had two days of orientation, one day for the company meeting (which was awesome, by the way), and two more days for training in Live Search specifically. So really I’ve had only a week of work.

The team I’m working in is great. Everybody really knows their stuff and it’s fairly intimidating trying to comprehend all the knowledge (both project and organizational) that you need to drink from the fire hose. Supposedly, it takes an average of 6 months before most people feel like they’re contributing 100%. That seems like a really, really long time, given how fast things move in the Internet age. So far, I’ve mostly read code (fixed one small bug, and found another), and done online training (of which there is a LOT–you don’t have to do everything, but there’s a an awful lot there to choose from). It’s easy to start feeling caught between wanting to contribute as soon as possible and not wanting to screw up other people’s work.

I’ve also got to come up with my yearly commitments this week–a daunting task when you don’t know anything. 🙂 Thankfully, my lead is a lot of help. There’s a nice big section for personal development and I’m planning on reading Scott Meyer’s Effective C++ and More Effective C++. They’ve been on my list for a while, but now I can get graded on it!

I don’t know if I’ve mentioned it explicitly before, but I’m working on the Webmaster team as part of Live Search. The Webmaster tools are the interface between web site owners and the Live search index. If you have a web site, you should definitely create an account with our tools so you can see how your site is performing.

About Live Search in general…

Over a year ago I briefly tried Live Search as my main search engine, but quickly moved back to Google. About 6 months ago (before I was contacted about the job at Microsoft, incidentally), I decided to look at Live again–HUGE improvement. I have very rarely gone back to Google since then.

There are also some really exciting new features coming for both Live and the webmaster tools, so give them a try now and again in a few months. I can also personally attest to the fact that the Live Search team takes feedback seriously. If you have any issue with your site, or the results of your query–write up a little note and send it to the feedback page, or even send me an e-mail and I can make sure it gets sent to the right people.

P.S. My blog entry about my interview experience did make the rounds and a number of people commented to me on it….weird feeling…more infamous, than famous. Lesson: Make sure you never writing something you wouldn’t mind other people reading back to you. (I don’t think I did…)

Converting OLE_COLOR to System.Drawing.Color

I’ve been working on a project using Visual Studio Tools for Office 2008 (VSTO) and at one point I needed to get the colors for categories in Outlook 2007. There are actually 3 colors, and they are returned as uint’s–why the .Net wrappers don’t convert to colors for you, I don’t know (to avoid linking to System.Drawing?).

The important thing is to convert them into the friendly System.Drawing.Color objects I know and love. For this task, there exists a handy ColorTranslator class. There is a FromOle method that does the exact chore you need. Here’s a sample of my code:

 

   1: private void GetCategoryColors()
   2: {
   3:     foreach (OutlookLib.Category category in
   4:         Application.ActiveExplorer().Session.Categories)
   5:     {
   6:         CategoryColor color = new CategoryColor(
   7:             ColorTranslator.FromOle((Int32)category.CategoryGradientTopColor),
   8:             ColorTranslator.FromOle((Int32)category.CategoryGradientBottomColor),
   9:             ColorTranslator.FromOle((Int32)category.CategoryBorderColor));
  10:         _categoryCollection[category.Name] = color;
  11:     }
  12: }

Would you rather…

be able to read minds (anyone’s around you. Selectively. You aren’t forced.)

– OR –

be the smartest person in the world (in any field, you’re a genius)

…a question my wife and I pondered as we cleaned the house the other day…

Google Chrome – the Good, Meh, Ugly, and This Means War

I just read all about Google Chrome, their new open-source browser, in the comic they put out. No download link at this time, but I’m sure it’s coming. My initial thoughts:

The Good

  • The JavaScript changes seems to make sense. The better garbage collector and speed improvements can’t hurt.
  • The free API to download lists of malware or phishing sites is pretty nice.

The Meh

  • UI changes. Making each tab its own browser entity and putting controls in each tab? That’s it? So what!
  • Some of the search enhancements are interesting, but I don’t think that anyone will care that much in the end.
  • Showing most popular pages…meh
  • Unclear on the plugin model. Will they have their own? Will they run ActiveX (they imply yes). How about Firefox plugin compatibility? All we need is yet another API for writing plugins.

The Ugly

  • A new process for each tab? Are you serious? I understand that it’s (maybe)the only way to completely isolate web pages from each other, but given how many pages some people have running, that means an extra 50 processes on the system. That’s a lot of resources. I know their idea was to consider each web page an application, and of course each desktop application is its own process, but I don’t think we actually treat most web pages like applications. We create new browser tabs and switch pages with wild abandon. Most web sites are NOT applications–they’re reference. They’re just books open to 50 pages at once. (Was process isolation really a problem that needed solving? I almost NEVER have runaway tabs in IE7)
  • Proprietary JavaScript hooks. Sure, it’s open source, but they’re still building things into their version of JavaScript that only work with their browser.

This Means War

  • First front: SilverLight. Gears seems to be a direct assault on the concept of .Net and SilverLight. The technology and scope are different now, but I think ultimately they’re going after the same target: having the rich-client experience in your browser on multiple OSes/browsers.
  • Second front: Firefox: the only people who are going to download Chrome or even understand what it is are the people who use Firefox. If Chrome succeeds, it will be at Firefox’s detriment. Thanks for playing.

Overall, I felt a big “meh” after reading the comic. While many of the ideas are interesting, overall, I don’t see a compelling reason to switch. I’ll try it out when it becomes available, and my opinions will probably change on some things, but Google is going to have to do a lot more to overthrow IE. Maybe their purpose really is to just throw ideas out there and see what sticks, what gets integrated into competing products, etc. We’ll just have to see what happens next. It’s going to be a fun couple of years!

(P.S. Also, please everyone, especially media, start mocking Chrome for it’s “p%%n mode” just liked you mocked IE.)

GeoEye supplying imagery to Google

My soon-to-be-old-company just announced a deal to give exclusive imagery to my-soon-to-be-rival. Sweet! I am a little disappointed Microsoft didn’t get it, but I don’t know any details of how the deal happened.

The GeoEye-1 satellite will be the highest quality commercial satellite out there when it launches next week. I am a little sad I’ll miss the launch party (my last day is the 2nd of September), but the date is what it is.

Airplane engines and teamwork

Charles Fishman has a wonderful article on a aircraft engine manufacture plant in Durham, NC. There are a lot of interesting lessons in here about teamwork, motivation, and work that make it a highly recommended read.

I’m supposed to be packing up the house and instead just read that.

Update:Jon supplied a link to a Joel Spolsky article counterpointing the above article. Now I’m going to be reading that instead of doing some chores.

No American resumes? – state of CS education

I had been planning on writing a blog entry on the apparently sad state of our CS industry these days, and the complete lack of qualified American resumes that come across my desk, when we actually got a decent one today.

Still, there is much to be said about the poor quality of education. At some points, we’ve gone through dozens of candidates that had such weak skills that I’m surprised they graduated from a reputable institution.

Then I noticed on the Google blog today a new initiative to partner with CS programs around the country. I applaud this effort and all like it. Serious companies like Google, Microsoft, Yahoo, Amazon, Adobe, Apple, and everybody else who builds amazing software need to get involved and lay down the expectations.

Does anyone know if Microsoft has a similar comprehensive program? I know that they have MSDNAA, but that seems more like giving software in a marketing campaign than setting the agenda. I do see smaller efforts with robotics that are great, but a more general push is needed.

I consider myself lucky for having gone through a fantastic computer science education at BYU. I found it even much better than my graduate program.

The thought leaders need to start insisting on higher standards, and we need to shame schools that churn out useless bodies whose jobs will soon be outsourced.

I can see some pushback from academic circles because they won’t want big business telling them how to teach, but the reality is that when schools are doing such a poor job of preparing people, they need to change and listen to those who are going to be hiring.

We need to stop complaining and start changing the situation.

Diagnosing SEO issues with Live Search Webmaster Tools

The folks on my future team at Microsoft have released a presentation about the diagnosing search engine issues with the recently released Live Search Webmaster Tools (it was out before, but in beta).

If you run a web-site, you should check out the tools and the presentation (even without narration, it’s worth a look).

Fans of LEGO: BrickFair is coming to DC this weekend!

If you are in the DC area, you must attend the BrickFair LEGO convention on its public days this weekend. The models here will be amazing. There will be over 12,000 sq ft of convention space. Bring the kids. If you don’t have kids, bring yourself–it will be worth it.

I was going to enter a large-scale creation of my own, but sadly ran out of time with dealing with new job, moving, etc. I’m still going to go, though.

When: Saturday, August 30, 2008 – Sunday, August 31, 2008 11am – 4pm

Where: Sheraton Premier at Tysons Corner

More info: BrickFair Website

Pictures of the 2006 event: http://www.brickshelf.com/cgi-bin/search.cgi?q=brickfest+2006&stype=dfc

Be there AND be square

Top 10 Reasons Why I’m Excited to Work at Microsoft

My last post was well and good (definitely read the comments), but I think I should be serious about my new employer because I really am excited to work there. Here are some reasons why:

  1. The opportunity to work with people smarter than me. The chance to meet some of the people I admire in the software community.
  2. The projects and technology under development always inspire me. Almost every event I’ve gone to has had me come away wanting to look into some other cool technology and thinking of the ways it can change the world.
  3. A real career path as a software engineer.
  4. Chance to change projects whenever I want. During my interviews, many people were quite open with me: they get bored with a project eventually and want to switch after two years or so. Microsoft’s culture easily allows this.
  5. Compete with Google. Google needs some real competition. Just as Firefox lit a fire under the IE team, MS needs to light a fire under Google.
  6. The benefits are awesome. They truly treat you well.
  7. They are extremely open on telecommuting.
  8. How many companies can you work at where your stuff affects so many people? There aren’t that many…
  9. The challenge. I love challenges. I love learning new things, and working hard to solve problems. Challenges are how you grow.
  10. The area. Beautiful country. Cheaper than DC. The rain.

What will be more interesting is to compare this list with what I come up with in a year.