Sysinternals saved my day. Again!

So I got into office early today and was greeted with this error when I fired out Outlook: Cannot start Microsoft Office Outlook. Cannot open the Outlook window. The set of folders cannot be opened. The file D:\Merill\Mail\Personal Folders.pst cannot be opened.

The only promising link from searching (hmm.. I wanted to write googled, but since I used Live Search what should I say ‘lived’) around on the internet was this. But trying to start up in safe mode didn’t work.

I then fired up FileMon, made a filter to show only ‘outlook’ and then ran Outlook as expected the error occured again. I then went into FileMon to figure out what exactly was happening and there it was an Open request to D:\Merill\Mail\~Personal Folders.pst was returning a ‘Sharing Violation’.

Now having to figure out which process was holding on to this file I started up Process Explorer and did a search for the processes holding a handle to ‘personal folders’ and there it was, a rogue Outlook.exe (must have crashed earlier). So I killed of the outlook.exe process and got my Outlook running back again.

So what does this all prove. If you have any problems with files not being accessible first try restarting Windows.

Three reasons to attend Tech.Ed this year

  1. Sessions: There will be a total of 60 sessions and 8 (HOLs). This is nearly double the number of last year’s sessions. Your getting more bang for your buck this time around.
  2. Speakers: The speaker list this year is an impressive lineup with the likes of ‘Matty’ Matthew Hardman (voted best speaker for TechEd 2002), Steve Riley (the man hackers hate and it pro’s love), Dr. Nitin (super trainer), Kevin De Souza, Chad Hower, Vinod Kumar (dev guru), the list goes on…
  3. Career Calculus

In basic calculus we learned that the first derivative of a function is the "rate of change" of the value of that function with respect to another variable.  In the case of your career, the other variable is time.  The basic equation for a developer career looks like this:

C = G + LT

C is Cluefulness.  It is defined as an overall measure of your capabilities, expertise, wisdom and knowledge in the field of software development.  It is the measure of how valuable you are to an employer.  It is the measure of how successful your career is.  When you graph your career, C is on the vertical axis.

G is Gifting.  It is defined as the amount of natural cluefulness you were given "at the factory".  For each individual, G is a constant, but it definitely varies from person to person.

L is Learning.  It is defined as the rate at which you gain (or lose) cluefulness over time.

T is Time.  It is on the horizontal axis of your career graph.

As you can see above, your career success is determined by three variables, only one of which you can control:

  • You obviously can't control T.  Time marches forward mercilessly at the same rate for everyone.
  • You also can't control G.  The truth is that some people are just naturally smarter than you are, and that's the way it is.  But G is not the sole determiner of your success.  I have known some truly gifted programmers with lame careers, and I have also known some less-gifted folks who have become extremely successful.
  • You can make choices which affect the value of L.  In fact, you do make choices which affect the value of L, every day, whether you know it or not.
  • </ul></blockquote>

    Need I say more?

Find out who’s linking to you

Find out which web pages are linking to you by using the linkdomain: operator like this.

While the Live search caters to end users, Yahoo’s search is geared towards webmasters and gives much more detail and lets you switch between various views. 

Hmm.. the other search engine?

Is your company proud of you?

James Governor, an analyst. talks about how the WS02 guys cherish their developers.

What a nice change from the norm- where corporate web sites only have bios for the most senior execs. We'll be keeping an eye out for more about pages citing devs. Can you suggest any?

It shows guts to provide email addresses and links for to one of your most valuable resources - developers. But these days if you don't turn your colleagues into stars someone else will.

I can remember when I once interviewed at Virtusa, Keith Modder, an MD there, said something which went a long way to impress on me how much they valued their engineers. To paraphrase him “Everday at 5.00pm when the guys leave work, the value of this company goes down to $0. Bottom line we know our priorities.”

Talking of WS02, it’s  good to see the faces of some of the guys I’ve had an opportunity to work with in the past including Thilina, Ruwan, Ishan and Chamil.

BTW: Chamil, you need to fix the link to IT Ambalama from your profile.

Google Reader – Design Simplicity

Joe Wilcox of Microsoft Monitor joins the ever growing group that keeps raving about Google Reader.

He touches on one of the key aspects in product design where many software products falter.

Little details matter, when evaluating the simplicity and complexity attributes. Unlike other readers that generally require users to mark or set preferences to mark feeds read, Google Reader automatically marks them read as the reader advances from one retrieved post to another. When the user scrolls down to the end of the page of cached feeds, Google Reader automatically refreshes the browser with new feeds.

These functions work by default, without the user setting preferences. I see this as sign of Google designing for common tasks. By contrast, I see Microsoft often overly focused on customization. That's fine if the customization is a layer removed and the fundamental design principle is providing the most utility for the most people.

When developing a product it's always easier to simply add dialogs and let the user decide than taking the time and effort to figure out how your product is going to be actually used by the end user.

The Office and IE teams at Microsoft seem to have learnt this lesson and have gone the whole hog and removed even the menus.

[Posted using Microsoft Word 2007]

Bye, bye SmartClient, hello WebApp

Well I never thought I would say this but I’ve just bid goodbye to RssBandit my feedreader for the last three years and completely switched over to Google Reader.

The deciding factor was that I could read all my feeds from home. Google Reader is way fast over dial-up than RssBandit simply because the heavy lifting is done on the server.

If I had better bandwidth, would I have switched? I think it’s time someone wroteup a serious WPF XBAP that does feed reading. I’m betting on Newsgator to do this. Wait, that’s a super cool project to work on…

Robot employees


An excellent post by Kathy, here’s an extract:

In an earlier post I said, "If you asked the head of a company which employee they'd prefer: the perfect team player who doesn't rock the boat or the one who is brave enough to stand up and fight for something rather than accept the watered-down group think that maintains the status quo (or makes things worse), who would they SAY they'd choose? Who would they REALLY choose?

In his book Re-imagine", Tom Peters says, "We will win this battle... and the larger war... only when our talent pool is both deep and broad. Only when our organizations are chock-a-block with obstreperous people who are determined to bend the rules at every turn..."

So yes, I'm thinking Mr. CEO of Very Large Company would say that their company should take the upstart whatever-it-takes person over the ever-compromising team player. "If that person shakes us up, gets us to rethink, creates a little tension, well that's a Good Thing", the CEO says. riiiiiiiiiight. While I believe most CEOs do think this way, wow, that attitude reverses itself quite dramatically the futher you reach down the org chart. There's a canyon-sized gap between what company heads say they want (brave, bold, innovative) and what their own middle management seems to prefer (yes-men, worker bees, team players). "

I LOVE Google Code Search!


This is wicked cool! Check out google code search to find out how various commands are being used by developers.

Say you want to figure out how to use the File.ReadAllText method from C#, it’s as simple as typing lang:C# File.ReadAllText and this is what you get. For VB use lang:basic File.ReadAllText

What’s cool is that it even looks up code inside zip files. Wait, it gets better, drill-down into a hit and you see a list of all the other code files in that zip/project. 

No more downloading code samples to figure out how a command is being. To keep things clear the license under which the code is published is displayed as part of the result.

I’ve been living on Live search for the past four weeks, but I’ll definitely be relying on Google for code search.

Check out the Advanced Search to figure out what the options are.

One feature that should be added though would be color coding. I’m sure it must be in the works though.

Introduction to .NET 3.0 slides and links

Thanks a lot for all the positive feedback I’ve been hearing from you guys on yesterday’s presentation. I need to make a public apology to Manzi though, sorry man for cutting into your presentation time.

As promised you can download the .NET 3.0 Overview Presentation [10MB]. Ed saved my day but had to fight the devil himself to get this presentation across to me.

Julie Lerman has a good post that clarifies .NET roadmap and word soup. If you missed my session yesterday check out the video of a similar session from Tech.Ed Australia at Charles Strelings’s blog. I spent a whole night poring through the presentation to figure out the demo script and I’m glad you all enjoyed it.

FYI: The official .NET Framework 3.0 site is at