Here are the Channel9 links to the PDC talks I co-presented:  http://channel9.msdn.com/pdc2008/BB01/
http://channel9.msdn.com/pdc2008/BB02/.

The first video is a brief overview SQL Services, .NET Services, Live Services - everything except “Windows Azure”. The second talk is a bit more of drill down into .NET Services.

Just over three years ago, I was part of the team that launched Windows Workflow Foundation as part of .NET Framework 3.0 at PDC 2005.

Shortly after WF, I co-founded a team along with David Wortendyke, John Shewchuk (and briefly Mike Vernal) - we all strongly believed that a developer cloud platform was the obvious evolution in computing. Mike left the team early on (and ultimately left Microsoft to go to facebook) while David, John & I continued pursuing building a platform I often called “the .NET Framework in the cloud”. 

Today, at PDC 2008, this one-time incubation was unveiled to the world as “.NET Services” - a key part of Microsoft’s Services Platform.

Several people have mentioned to me that to the degree that you’re able to do a ’startup at Microsoft’ we did it with this project. I’ve read that the founders of a company often play many different roles and in the company’s infancy, struggle to describe their exact role other than “to get it done”.  Fortunately over the years, we’ve built a world-class engineering team - intelligent, dedicated and passionate about the platform we’re building. There are many aspects of this project I’m proud of - but this team is top of the list.

There are many stories I’ve collected over the last couple of years… here’s one I thought was particularly funny… when I moved into my new office to work on this project, I decided to come into the office on a Saturday and paint my office. I knew it was going to be blue… I went back and forth on the various shades and ultimately ended up with what I thought to be an appropriate choice… the color of the sky - Azure Blue. I couldn’t help but smile when nearly two years later, when I first heard the name of the brand.

You can hear that story and learn a bit more about what I’ve been working on in this Channel9 video that was posted today. I haven’t watched it yet so please let me know how and when I embarrass myself :)

During his (unfortunately) short tenure at Microsoft, I got a chance to work with Don Ferguson. I actually created an Outlook Rule that routed mails from Don to his own folder. I made sure I read every single email and every single line of these mails because not only were they insightful… but absolutely hilarious.

Good luck in your new ventures Don!

15th Mar, 2008

My facebook status..

I recently realized that I’m very cautious about updating my facebook status. As a consequence of the spectrum of people I have on my friend’s list including co-workers, my bosses, close friends, not so close friends, and peers, I’m often aware that a simple status update could (and would likely) cause unanticipated angst.

This is boils down to a long requested facebook ‘friend grouping’ feature. This would expand on the existing set of information disclosure settings they to provide (limited profile access, full access, or various access controls on various parts of your profile).

Alternatively, I was thinking I might just create one (or more) additional accounts… which leads me to wonder how many people have multiple accounts for similar reasons. 

I guess I’ll just have to update my status with less insightful, carefully considered, bland details. Or not at all.

19th Oct, 2007

Elevator Etiquette

I’d previously blogged about correct usage of the To: Line and Outlook Propose/Decline. I’m not sure exactly why I think of issues like these… perhaps it’s because I feel that being considerate to those around you is generally an indication of your intelligence… either that or the Canadian in me about obsesses appropriate etiquette.

The building I work in at Microsoft has 5 floors (1 parking level and 4 floors of offices). There are four stairways, two in the middle of the building (close to the elevators) and two at the ends of the building.

I’ve recently moved from the first floor to the fourth and in this time I’ve become acutely aware of people using the elevator for a single floor.

Nearly every day, I’ll start on the first floor and someone will press the button for the second floor when the stairs are no more than 15 feet away. I can understand this if you’re on crutches or limping etc… but otherwise, you’re inconveniencing everyone in the elevator because of your laziness to walk up a few steps.

What’s worse.. those people who use the elevator to go down a single flight of stairs!

19th Oct, 2007

TiVo Series 3 HD DVR

After nearly 2 years of suffering with Comcast and their HD DVR, we finally bought a TiVo Series 3 HD DVR. The Comcast DVR was tolerated because the price for dual tuner HD DVRs was too high and I thought I’d be a good corporate citizen and stick with the Microsoft software that was on the box.

My only regret is that we didn’t do this sooner… we had an original Series 1 TiVo and we really missed it! There’s no question that it’s a product which has been through a lot of end user testing.

Here’s a concrete example of what both the Microsoft and Guideware are both lacking: I’m using the guide, and it currently shows listings for channels 1 through 5. When I hit page down, channel 6 is where 1 used to be. So, if I wanted to get to 5, I have to press up one more time. I can’t think of a single application that uses the page metaphor and exhibits this behavior. Ever other application leaves a portion of the page you were currently reading visible (if for nothing else, some context as to where you are). You can even it try it now, hit page down in Internet Explore or Firefox and see what I mean!

One more example where the Microsoft software irritated me: Adding a Season’s Pass (which records all the episodes of a program) took far more time than it should have. Further, it would freeze the box while it detected potential conflicts. If you can’t calculate the conflicts in a reasonable amount of time (that is, less than say 2 seconds), just add the series and prompt me for resolution once the conflicts have been detected. Waiting for synchronous results in UI is extremely frustrating.

There are numerous other complaints I could vent about… but “I don’t want to get off on a rant here…”

Now that we’ve elimated the Comcast box, the only other option that I felt existed was Windows Vista (or XP) Media Center. There are two main reasons why I chose a TiVo over a  Windows Vista Media Center. First, when I watch TV, it needs to ‘just work’. I don’t want to tinker with the machine because a Windows Update broke it, or it’s not waking up at the correct times to record my shows. (Note: I don’t have any first hand experience here… I’m projecting based on what I read about when researching). Second, when compared feature for feature, the TiVo is cheaper than any MCE I could build or buy.

Beyond the superior user experience in both software and hardware (a very quick and intuitive menu system and an fantastic remote), the TiVo just has better features (relative to the Comcast box).

There are a lot of features, but my favorites are:

  • Remote web scheduling - I can add/remove programs from the web.
  • Amazon Unbox - I have access to the latest movies and TV shows from both my TiVO and PC. I can kick off a download from my PC at work and when I get home, its ready to go.
  • TiVoToGo - I can already stream my music and photo from my computer and I’ll soon be able to stream my video collection! Further, almost anything I record I put onto my laptop or phone.

Over the last few years, TiVo (the company) hasn’t faired well. I hope it pulls through, because they have a fantastic product.

John Shewchuk & I recorded a channel9 video that describes the why and what of BizTalk Services. 

Its now online here: http://channel9.msdn.com/showpost.aspx?postid=317646

I think everyone has a bad travel story. I’m submitting this as my personal worst experience.

Lilian & I spent the weekend in NYC. We enjoyed central park, checking out a few museums, doing some shopping and some fantastic food. Overall a fantastic trip. I think NYC is an incredible city which everyone should experience atleast once in their lives. More on that later…

The trip back to Seattle was less than ideal.

It took 1.5 hours for the taxi to get from midtown Manhattan to JFK. This was primarily due to the flash flood rain fall that started on Sunday night.

The cab driver insisted on listening on either: spanish-speaking only salsa OR popular 70’s night club anthems (think: YMCA, Bee Gees, Queen etc. Further, the driver felt the need to make sure everyone around us could hear his music.

About 45 minutes into the cacophonous trip to the airport, I realized I had forgotten my noise cancelling headphones at the hotel.

I arrive at the airport, check-in and then am required to wait 45 mins to drop off my bags. When I finally reach the counter, I ask if I could apply miles and/or cash to upgrade to first class. At this point, I just needed a relaxing flight home. The attendant indicated that it was very likely and that I should check at the gate. She gave me an exit row seat and I was on my way.

I arrived at the gate and was abruptly told that my class of ticket didn’t qualify for an upgrade.

Upon boarding the plane, my seat wasn’t an exist row, it was the row BEHIND the exit row… thus giving me less leg room that a standard non exit row seat. Further, I had a middle seat… between two people who (as a consequence of their size) were already competing for my seat. None of this seemed to matter to the 6 month and 2 year old children behind me. I felt bad for the mom, up until she let the child use the tray table attached to the back of my seat as a trampoline for the 2 year old.

I decided that some music would help me get my mind off the situation. I ask the flight attendant for some headphones,  which she was happy to provide to me and then ask for $2. I managed to find enough wiggle room to extricate my wallet and pay the $2. Naturally, half way through the trip, my personal entertainment system decided to reboot itself every 2 mins. By the end of the flight, I learned to recite large portions of the boot sequence for the Red Hat distribution of linux.

We finally land, I’m waiting by the baggage carousel helping various people pick their bags up off the track. Finally one lady mentions that “I should get tips for being so helpful to all these people”… that was a bad bad sign. Naturally, the carousel stopped and my bag was no where to be found. I go through the lost baggage process, but I wasn’t quite out of the woods yet.

You see, I had parked the car in a “Park & Fly” lot and the reclaim ticket was with the lost baggage. This specific company has three lots and I had to call each of them and ask if they had my car. Of course it was parked in the last one I called… thankfully, the Park & Fly attendants were mostly accommodating, though it took some time to explain why the reservation was under Lilian’s name and a “Pilarinos” wanted to take the car…. the registration cleared that up and I was on my way.

So, that’s my worst travel story to date. Think you can top me? I’d love to hear it…

Just a small observation: ever notice that discussions around bad travel stories and traffic violations always seem to bring people together?

9th May, 2007

Las Vegas Jet Lag…

I just got back from two trips to Las Vegas last week.

The first trip was work related. On Wednesday, John Shewchuk & I presented an overview of the BizTalk Services effort. It was a great opportunity to talk about two new BizTalk Connectivity Service features which we just launched.

The first new feature is multicast messaging. In this case, multicast is the ability to have multiple applications listen and send to a name. You can think of a name as a place where applications can exchange data. For ease of use, we chose URIs to be the names. sb://connect.biztalk.net/services/dennispi/chat/ is an example of a name. 

Naturally, we build a sample in our SDK that demonstrates how to use multicast. It took us about 20 seconds to come up with the idea… a very simple chat application. A chat application is a straightforward example of having multiple applications exchanging data (in this case, chat messages) at a specific name (the chat room). You can find it in \BizTalk Services SDK\Samples\Connectivity\Multicast\.

The second feature we’ve released is support for a direct connection between clients and services. Now, after establishing a relayed connection, if possible, the connection will switch automatically to a direct connection. Further, we’ve added settings to allow developers to specify connection setting required for their application.

The feedback we’ve been getting from developers has been fantastic, its good to see a lot of people like what we’re building and your feedback definitely helps us prioritize our features for you. Expect to see a refresh of the SDK soon… it’ll include an updated readme (I was working with Steve on the readme through email I messed up the links!) and some additional technical docs.

Now, my second trip to Vegas was for personal reasons. Specifically, my bachelor party. 18 of my friends made the trip from Vancouver, Seattle and California. At the time we planned the party, I wasn’t aware that I’d be traveling for business only the day before. We coordinated our plans so most of the guys were on the same plane, so I couldn’t possibly skip out. Instead, I flew back to Seattle on Thursday, and back down on Friday.

I was trying to figure out how to describe how I was feeling today after an extremely exhausting weekend. The best way to describe it is as jet lag. Even though Las Vegas is in the same time zone as Seattle, it turns out that your waking hours are very very different… and as a result, when you return, you feel as if you’re suffering from jet lag.

That said, the trip was amazing. But as the saying goes… what happens in Vegas..

It’s been a while since I’ve blogged, I’ve been working hard on something we’re calling BizTalk Services. You might have seen the eWeek article. Update: Another eWeek article has been published.

In a nutshell, a year ago we started a small project thinking about the various characteristics that comprise a ‘composite’ application and what it would mean if those pieces were exposed as a set of developer oriented services.

Today we’ve made two of them public and available to developers interested in experimenting with them.

John has a bigger picture overview of where we’re going with these services.

I thought I’d be useful to provide a quick jumpstart to developers to get them started:

Step1: Register with https://identity.biztalk.net. This site allows you to register a Windows Cardspace Information Card that you will then use to authenticate with various services. We’ve come up with a pretty interesting user model where you can have multiple accounts registered with a card. I’ll have more details on this in a later post, but you can imagine that as services register with IBN, you’ll be able to login to them with a single card.

Step2: Use the Relay at http://connect.biztalk.net. We’ve shipped an SDK with a few samples showing you how you use the relay and identity services together. If you’re familiar with Windows Communication Foundation, you’ll find this trivial to use (by design!). Basically, your service opens at a URI on the connect.biztalk.net machines. Then a client connects to that URI and can start sending messages. We don’t want to be in the way of your app, so our relay will immediately try to establish a direct connection between clients. More details on this how this all works in a later post. Here’s a quick diagram that describes it at a high level. I’d recommend taking a look at the EchoSample first.

 

 

Step3: Start writing your own services and give us feedback on features and/or behavior you’d like us to start thinking about. You can expect to find more samples on my blog and in the SDK.

I’ll be writing up a lot more about how you can use these services and occasionally dive deep into how they work in the next few weeks. Let us know what you think!