Thursday, January 26, 2006

Der Fledermaus

Last night Natascha and I cleaned ourselves up and went to see Der Fledermaus, put on my Seattle Opera. Although I have been to countless Symphonies and Ballets (ok... maybe not quite countless), I have never been to an Opera. We tried out different seats from where I normally sit, and I must say that I rather liked these. We were seated on the first balcony, about 3/4 back. Similar prices compared to my normal seats, but a better view of the stage, and I think the acoustics might be better there as well.

The opera itself was amusing, but nothing spectacular I fear. The soprano playing the part of the chambermaid dominated Rosalinde. I rather liked Eisenstein's voice, but Natascha had a hard time discerning some of the words. It was quite funny, which I didn't really expect, including a few Seattle-local jokes thrown in. And yes, I'll admit to rather liking the dancing girls.

I found the crowd rather interesting. It was a decidedly older crowd that the Ballet performances I have been to recently. Less younger couples on a date, as well. There was even one guy we saw wandering around in shorts and a Hawaiian shirt. People-watching at these types of events can be almost as fun as the event itself.

Would I recommend it? Probably not, but if you are looking for a good excuse to get dressed up and listen to some impressive music, with a dash of humour, then this might just float your boat.

Monday, January 23, 2006

Oh Apple... You are a hard mistress

I've been using an Apple 12" PowerBook as my personal machine for about 2 years now. Aside from some complaints about the size of the control key, I love that little machine. The form-factor is perfect for most of my personal use.

Recently, I've been using it to take some work home. For the last few years, I've done most of my development on laptops. Mostly, that was because, as a manager, I lived off my laptop anyway, why bother with 2 machines? Modern notebooks are easily fast enough to be used for development. My basic requirements were a SVGA+ screen, ~1gig ram, and a fastish Pentium-M processor. Now lets compare that to my little PowerBook. My PowerBook is a 1GHz PPC, which can't compete with any current Pentium-M. The memory is maxed out at 3/4Gb, which is usually acceptable, I just get used to long pauses when switching apps. The real kicker is the screen though. SVGA (1024x768) just is not acceptable for most modern IDEs. I don't really use Xcode, but Eclipse and NetBeans barely have space to show any text. I'd just live in Emacs, but I'm addicted to intellisense.

I've been holding off buying a new laptop because I was waiting for the big announcements about Apple's new Intel laptops. MacBook Pro to the rescue. But now that it is here, I am having doubts. With the Intel transition only just starting, how much software will really work well? How long before they iron out all the bugs? As Apple's first Intel laptop, how will it compare to the classic WIntel laptop makers? And then there are the rumors about much more impressive machines coming out later this year.

Then there is the other thing eating at me. I'm just used to using Windows. There is so much software, including some damn good freeware, out there for Windows. The Mac has some really cool apps, but it just isn't a developer platform the same way Windows is.

So, for now, I'm waiting for the hands-on reviews of the new MacBook. By then a number of the big PC manufacturers will have their Core-Duo laptops out as well. This may be the year I un-switch.

Monday, January 16, 2006

Old friends

Last Friday, I went back and had lunch with my old friends Adam and Umut, who basically own MSXML. It was great to be back (although the cafeterias still suck), and catch up. A lot has been going on with the XML team, and while I may have left, I still want the best for that team. They have a lot to do with the success of XML at Microsoft.

Not that I'm in any mood to run back. I left Microsoft for many reasons, and a little nostalgia is just that. It did remind me of one of Microsoft's greatest assets: it's people. There are some just amazing people there. I really loved working with that team, and it was full of people who I would be proud to call a friend, many of whom are also some of the best programmers (or PMs/Testers/etc...) I have ever worked with. If you want to work where the people really care about what they work on, and are kick-arse smart, Microsoft is still an absolutely great place to work. Hmm... did I mention that the XML team there is hiring? Looking to contribute to what is possibly the single most used XML stack in the world? Or how about the XML editor in the next release of Visual Studio.

If you haven't tried it, definitely try out the XML editor in VS 2005. I used it daily. The XSD integration is my favorite feature, hands down. Load a document and its schema, then go to any element in the document, position the cursor on the tag-name, and select 'Go To Definition' from the context menu. You can even use that to navigate around the schema, following links through type references, etc. I don't use it as much, but the XSLT debugger is another amazingly useful feature, for when you can't quite figure out why your XSLT output isn't quite what you were expecting. With so many tools outputting XML reports, I use XSLT all the time to reformat the reports for import into Excel, or to just pivot the results for easier casual analysis. The XSLT debugger can be a huge time-saver.

The Webdata-XML team is hiring, by the way: go to the Microsoft career site and search with the keyword 'Webdata'. Some of their version-next plans are gonna rock. This is a chance to be part of a team that is 'at the center of the Universe!' (as William used to say...).

Tuesday, January 10, 2006

New Mac Laptops...

Just announced... new Mac laptops. Me wants one. My PowerBook just isn't up to real development work, especially java. Eclipse is almost unusable. These new laptops should fix that.

Saturday, January 07, 2006

The cost of being Microsoft

Dare's recent post: Fire & Motion: The Trouble with Competing with Google reminded me of one of the more difficult truths of working at Microsoft. As an industry gorilla, every move Microsoft makes leaves a wake that shares more in common with a tsunami than the poetic ripples of a pebble in a pond. Working at Microsoft on the XML team starting just after the publishing of the original W3C XML spec and staying with that team until relatively recently, I became acutely aware of the difficulties of working at a large company. I had meant to write a post about this when Oleg wrote about XSLT 2.0 and Dare responded with his comments. I was involved in some of the discussions about shipping XSLT 2.0 and/or XQuery. Just as Dare calls out how expensive it is for Microsoft to compete with Google's GMail, it is surprisingly expensive for Microsoft to implement XSLT 2.0 (or XQuery). An implementation of XSLT 2.0 would require man-years of implementation effort, as well as a few more man-years of QA, and then there is the long term cost of support/documentation/maintenance of such a complicated product. One might counter that Microsoft is huge and can easily afford a few man-years here or there, but the only team likely to ship such a product is the XML team, and the XML team is actually a relatively small team that already has its hands full supporting MSXML, existing System.Xml features, SQLXML, while still trying to innovate on the core XML programming experience (a-la XLinq).

This is one of the reasons I decided to leave Microsoft. Everything Microsoft does, it does in a big way. It isn't realistically possible to 'just try out an idea'. Even back 8 years ago, when I first joined Microsoft, they released a technology preview of some of the ideas that lead to XSLT. They had people designing companies based on that single tech-preview, with the assumption that Microsoft would ship something based on it. Unless it is a research group, it is virtually impossible to explore a new idea and release a tech-preview type release that is not directly tied to a product. In some ways, this is good. It forces people to be focused on profits and costs and not waste time and money. On the other hand, it means that innovation that isn't immediately tied to millions in revenue is discouraged. In a coffee conversation with someone else who left Microsoft, they mentioned that someone at Microsoft specifically mentioned that it is now openly talked about how some Microsoft divisions encourage innovators to leave to a start-up, with the potential for Microsoft to purchase the start-up if it pans out.

What this means is that Microsoft is a great place to start your career (because there are some excellent opportunities to work with experienced people who know what they are doing) or end your career (because you either want to sit on your arse and collect a safe salary, or are like Don Box or Anders Heilsjberg and are out to change the world). If you live in the middle, Microsoft can be a tough place.

What this means for XSLT 2.0, is that it is a non-priority. At least when I was on the team, we would have been happy to encourage a small team outside of Microsoft to build a .Net XSLT 2.0 engine. If it was good enough, there might be a chance that Microsoft would someday purchase the company or at least the IP. In the short term, the cost of implementing XSLT 2.0 is extremely high relative to the return. Getting back to Dare's original post, the economics of Michael Kay implementing XSLT 2.0 are flipped compared to Microsoft. As a 'small-time-player' his investment on the bleeding edge will garner him customers. This is similar to the phenomenon that Dare was discussion with GMail vs HotMail vs Yahoo Mail. The more entrenched in that domain, the harder it is to innovate. Usually. Clayton M. Christensen's Innovator's Dilemma series discusses this at length and provides some suggestions for how to avoid these pitfalls. More of Microsoft's management would do well to study how to apply some of the lessons mentioned in those books to its current business.

Thursday, January 05, 2006

the power of good tools

I was just reading Correctness by Construction: A Manifesto for High-Integrity Software (mentioned on Slashdot) and was reminded of one of the things I miss from working at Microsoft. I gushed about Microsoft's internal tools when discussing profilers, but Microsoft has an impressive set of source-code analysis tools. They have some amazing tools to catch buffer overruns and the like in C/C++ code, that I predict will make Vista and Office 12 some of Microsoft's most stable releases ever. No tool can protect against blatantly insecure design (such as was behind the recent WMF exploits), nor is it realistically possible to use a tool to verify that IE is secure. But I can personally attest that the tools are already doing wonders to reduce the number of missing null checks, off-by-one buffer overflows, and the like, which plague any C/C++ code-base.

If Microsoft plays its cards well, Vista has the potential to be a less buggy, and potentially more secure OS than linux/etc. Vista is still disadvantaged because it has more ancient code that has to be there for backward compatibility, but automatic analysis will find many bugs that code reviews by the open-source hordes may never uncover.

and yet... I still plan to run Mac OS X. Microsoft just can't touch the cleanliness of design that seems so omnipresent on the Mac.

That said, I'm still waiting for the new Mac/Intel laptops. No matter how secure they make the OS, I still love having a real command-line and near infinite set of tools at my fingertips.

GMail knows FedEx?

Over the holidays, I ordered a package online. Like many online retailors, they sent me an email confirming my purchase, and another email later with the tracking number for my package. I just noticed (as I went back to get the number to see where my package was), that GMail recognized it as a FedEx tracking number and provided a link on the right edge of the page, over with the advertisements.

Frigg'n cool.