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.

On Septemeber 2nd, 2007, Lilian & I were married in Vancouver, Canada.

The ceremony and reception went off without a hitch and everyone seemed to enjoy themselves. Once we have pictures from the event, I’ll post them with a few of the speeches from the reception.

You can find pictures of our honeymoon here: http://www.dennispi.com/gallery/v/honeymoon/

We started off by spending a few days in Hong Kong getting used to the new time zone. My impression of Hong Kong: wow, there are a lot of rich people living there. I’ve never seen as many nice cars on the road anywhere. (I’ll save you the details of specific makes and models :) ). We then went to Koh Samui (an island off the south coast of Thailand) for a week. Imagine pristine white sand beaches, hot weather, super cheap food/drinks, extremely nice people all on an island which was pleasantly absent of obnoxious tourists. It was definitely the highlight of the trip. Lil & I spent a couple of days learning to scuba dive, jet skiing and otherwise sitting by the pool reading our books.

We then headed north to Chiang Mai and slowly eased back into city life. I surprised Lil by staying at the Four Seasons, which apparently just won ‘best spa in the world’. So, after a day of traveling we decided to check it out. It was stunning, very serene and very relaxing… I can see why it would be at least a contender! That said, given the price, it’s something we’d only do once! Chiang Mai is basically in the middle of the jungle. We did some small hikes and visited some hill tribe villages which was incredibly humbling.

After a couple of days in Chiang Mai, we went further north to Chiang Rai. This is pretty much as far north in Thailand as you can go. It borders Burma and Laos, which together comprise ‘the golden triangle’. We visited both in a day… after spending nearly two weeks in Thailand we knew it was a poverty struck nation, but nothing like Burma or Laos. We spent the rest of the time visiting a few more villages in the jungle including the “long necks”… you probably saw pictures of the women of this tribe. They wear large brass rings around their neck starting at the age of five until they die. It was pretty stunning to see them in real life. One of the highlights here was playing with a little boy who was 2 or 3 years old… he was screaming and crying… I decided to see if I could entertain him and give his mom a break by taking a picture and then showing it to him. He was immediately drawn in and was amazed. The tour guide then decided to show them his mobile phone with a video of a water fall… nearly all the children (and some adults!) gathered around to watch and the kids were asking their parents what they were actually seeing.

Our trip finished up in Bangkok which is a large, noisy polluted city. We walked around for a bit, but found quite quickly that you could feel the pollution on your skin and by the end of the day, cough it up from your lungs. Given this and the heat, we decided to check out the largest mail in Asia… 7 floors of very high end merchandise include an entire floor of car dealerships (Ferrari, Porsche, BMW etc). It was quite the juxtaposition of this huge mall with lavish goods and the poverty just a few steps outside. We ate a few times in the food court, which was clean (as opposed to some of the street vendors which *literally* had coach roaches crawling in the food) and cheap.

We came flew back to Vancouver and Lilian went back to Redmond while I’ll await some greencard related paperwork to be processed before I can go back to the US.

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!

 

19th Feb, 2007

Code Talks..

I had promised to blog about this topic a while ago, but never had a chance. Dare recently posted a entry along the same lines and it motivated me to add my $0.02.

A co-worker and close friend of mine once told me that “Code Talks and Bullshit walks”.

In fact, its one of the key reasons why Windows Workflow Foundation was successful. The entire team was focused on execution…on occasion perhaps too much. There were times when copious amounts of work was discarded because there might not have been the “right amount” of planning/design before a code editor was whipped into action. One of the skills of creating software is knowing when you’ve designed enough (to at least repurpose what you might otherwise throw away) and can get going on writing some code. You’d be surprised how many groups/people love to spend time talking about building software, versus actually doing so.

I’ll make a straightforward observation : code is a currency.

Its the concrete artifact that grounds and proves-out the ideas you were only able to talk about until the moment the code starts to execute. Code pays your way. Its an undeniable truth of what you’re intention is. It proves you at least marginally viable. Of course, it can be flawed (poor design, bad UI, functionally inadequate), but once it exists, you’re not longer subject to the ‘mental masturbator’ stigma.

I find it interesting though, there aren’t many industries where your product is also your liability. As most developers know, as a code base grows, your liability increases exponentially.