Thursday, August 19, 2010

Misleading WCF MSMQ Binding Error

I was getting the following error message when activating a WCF service with a net.msmq binding.
Binding validation failed because the endpoint listen URI does not represent an MSMQ direct format name. The service host cannot be opened. Make sure you use a direct format name for the endpoint's listen URI.

You'd think this had something to the endpoint URI, but you'd be wrong. A little sleuthing revealed WCF trying to validate that it could move the message to the retry subqueue in the event of an error. The queue is hosted on a Windows Server 2003 system, which doesn't support the retry subqueue. I'm testing my WCF service is on Vista. Solution: run the queue and WCF service on the same level OS and curse Microsoft for misleading error messages.

Monday, August 16, 2010

Smartphone Install Base

There's been a lot of buzz about Android's amazing growth in the last quarter. Assuming the vast majority of customers don't buy a new phone more often than every two years, the install base would reflect the sum of sales over the last 8 quarters.

Worldwide Smartphone Sales to End Users by OS 3Q08-2Q10 (Thousands of Units)

Symbian166,463.346%
RIM69,370.619%
iOS50,791.914%
Windows Mobile30,596.98%
Android22,619.26%
Linux17,440.45%
Other5,699.62%


Note this doesn't include business sales, which would likely boost RIM a lot and iOS a little. Nor does this include devices other than phones, e.g. iPod touch and iPad.

Tuesday, July 20, 2010

How a $2 iPhone app restored my love for photography

In 2004 I bought a digital SLR camera for a trip to Hawaii and my journey into photography began. I took photos of mountains, fields, barns, flowers and occasionally people. I read books on exposure, composition and posing. Eventually I took some family portraits, engagement portraits and even a couple small weddings. My collection of lenses, lights, filters and other accessories evolved until I had just about everything to take whatever kind of photo I could imagine myself taking. I honed my technique and looked with a critical eye at every photo I or anyone else took.

In 2006 my wife and I went on safari in Kenya. I took thousands of photos, mostly of animals. I did a pretty good job, too. They're not going to appear in National Geographic, but I was pretty happy with them and I'm pretty picky. When I got home from Africa, I hit a photographic wall. Nothing seemed interesting anymore because I felt I couldn't top what I had done before. I'd peaked two years into my life as an amateur photographer. So I stopped taking photos.

Then about two weeks ago, my wife asked me about buying an iPhone app called Hipstamatic, which she had seen a few of her friends use. She got it and took a few photos. Then I installed it on my phone. I got hooked.

Hipstamatic is cool for a few reasons. It looks and feels kinda like a camera, which is fun. It makes you choose how your photo will look before you take the photo, like with a film camera. Different lenses, flashes and films produce different effects. The alternative -- endlessly tweaking a photo in Photoshop, applying filter after filter -- sucks the joy out of the photo. I love the simplicity that Hipstamatic provides in this regard.

All the photos it produces have imperfections that are modeled after imperfections from real film photographic equipment. The imperfections keep me from focusing on making a technically perfect photo and instead focus on making an emotive photo. To that extent, Hipstamatic is really good at creating photos that evoke emotion, specifically nostalgia. The photos look like the ones in my parents shoe box or on my grandma's end table. The blurred edges and yellow tint of the photo of my daughter makes me remember her smile a little sweeter. I can hear my son's laugh through the blue cast and faux film frame.

This $2 app is also cool because it makes me want to buy the other lenses and flashes, just like I did on my real photography journey. Except this time, the lenses are $.99 instead of $499. Hipstamatic is the fist app that has compelled me, a total cheapskate, to make an in-app purchase.

I do hope I can transfer my renewed enthusiasm for photography from my iPhone to my DSLR. I do have quite a bit of money invested in all that equipment and it's not doing me any good sitting on a shelf when I should be using it to record memories.

Thursday, July 8, 2010

WCF .NET MSMQ Binding URLs

I spent some time struggling with a WCF service with a .NET MSMQ binding. The public queue resided on a test Windows Server 2003 machine. Everything worked fine on my machine, but when I installed the WCF service on the test server, I got the following error message:

An error occurred while opening the queue: The queue does not exist or you do not have sufficient permissions to perform the operation. (-1072824317, 0xc00e0003). The message cannot be sent or received from the queue. Ensure that MSMQ is installed and running. Also ensure that the queue is available to open with the required access mode and authorization.

The error code (0xc00e0003) corresponds to MQ_ERROR_QUEUE_NOT_FOUND.

Turns out, I needed to reference the queue with net.msmq://server/queue instead of net.msmq://server/public/queue. It's unfortunate the latter URL works in some cases but not others.

Tuesday, June 1, 2010

5 Device Categories

Computing devices tend to fit into one of these categories, based on the device's physical characteristics:
  1. Stuff that fits in your pocket (e.g. phone)
  2. Stuff that you can carry around comfortably (e.g. tablet)
  3. Stuff that you can carry around in a bag (e.g. laptop)
  4. Stuff that you can fit in a back seat (e.g. desktop)
  5. Stuff that requires a truck to move (e.g. rack of servers)
Devices should be optimized for their category. If you want something that will fit in your pocket, you want the best thing that will fit in your pocket, but not so small that you'll lose it. If you're going to carry around a laptop bag, you want the best laptop, but you don't want something so big that it's too heavy or so small that you might as well just use your phone.

I don't get some of these new devices, like the Dell Streak, that are just a little too big to fit in your pocket. I think the Nokia MIDs are there too. Once you move into category #2, you might as well make the most of it. I think netbooks are right in between 2 and 3. They could be carried by themselves, but they're awkward to use with one hand and you often have to bring a power brick along. That's why they're really only attractive from a price standpoint.

Of course that pricing thing plays a big role in decisions, too, which is a significant factor in there being such a broad spectrum within each category.

How to make a horrible Infographic

Wednesday, March 31, 2010

Dewey Griffin Loses a Customer Forever

I just had Dewey Griffin do some recall work on my Subaru to fix a fuel leak. The mechanic broke a gasket while removing a part. They didn't have another one and had to order it, leaving me without a car for the day. I understand that stuff happens, but here's what I don't understand: they charged me for the gasket. I argued with the service manager, Jim Clark, but he wouldn't budge. He acknowledged that the gasket would not have broken if they hadn't done the work but because Subaru wouldn't reimburse him he chose to charge me. Congratulations, Jim, you got your $9.74 and lost a customer forever.