Category Archives: Life

Software is Harder than it Looks

Last night, I was thinking about the game Words with Friends for the iPhone. I haven’t played, but I know a lot of people who love it. It’s basically an online version of Scrabble with a twist. I think the maximum time a player can take to finish a turn is a whole week. Games take a while to finish. Most of the people I know who play are participating in a handful of games at once. The genius of this game, and what makes it perfect for mobile devices like the iPhone, is that you can play it on your own time. On the bus and have a few minutes? No problem … that’s the perfect time to play your turn.

On the surface, this game seems super simple. “It’s basically Scrabble but online.” The concept sounds so easy and obvious that the implementation is taken for granted. People don’t understand how complex it is because it just works.

I don’t have any first hand knowledge of the game, but as simple and obvious as it seems, the implementation is likely a lot more difficult than that. Aside from the actual app that you download from the App Store, there is a whole infrastructure running to make sure games and players are kept in sync. Again, I don’t know the folks who built it but I’ll bet they spent a lot of time and effort making it work as well as it does. And I’ll bet they are constantly working on it, making it better and keeping it running smoothly.

Another example is an application I did work on: The TWCableTV application for the iPad. This application also seems simple. The first version just streams live video. That’s it. Since the first release, we’ve added Remote DVR and other features, but the vast majority of the time it’s used to simply watch TV.

What might be surprising is only a small handful (3-4) of people actually worked on the app that gets installed on the iPad. At least 7-10 people worked on the services that talk directly to the iPad, a bunch more to test the app, yet another 2-3 on making sure the television streams were setup and continue to function properly, a whole host of people working in our data centers to keep the lights on, and lots and lots of previous work by other teams across the company creating ways to programmatically retrieve things like a billing data and validate usernames / passwords. Add a few lawyers in the mix to keep us from violating our contractual agreements and the number of folks who had a hand in the application, directly or indirectly, is at least 50 and likely more in the realm of a hundred.

That’s a lot of people for an application that just plays TV.

My point is that ideas for software are comparatively easy to come up with. The implementation of ideas is the hard part. We definitely weren’t the first to think “it would be cool to let people watch live TV on an iPad”. However, we were the first to implement it. And it was hard.

Software is usually like that.

Often, when a person I just met learns I worked on an iPad application, they’ll say something like “I have a great idea for an iPad application that [insert great idea here]” That’s similar to saying “I have a great idea for a skateboard that hovers or a device that converts matter to energy, transports it, and then converts it back to matter”.

The amazing thing about the titans of the computer industry is not that they had great ideas but that they actually implemented the ideas. Steve Jobs didn’t just think of the iPhone. He built it. He hired the talented team of engineers, designers, testers, and even lawyers to make it all work.

It takes work. It takes tenacity. It’s, well … just like everything else great in life I suppose.

It’s hard.


Why Chrome OS Likely Doesn’t Matter Anymore

In July of 2009, Google announced a new operating system based on the Chrome browser: ChromeOS. The idea was all applications would run inside the browser and the underlying OS would only provide enough functionality to allow the browser to load. All data would reside “in the cloud”.

I remember that announcement very clearly and how excited I was. I even went around buying up domain names of web applications I thought ChromeOS would need and I would famously build in my spare time (anyone interested in a barely used I felt ChromeOS would be the perfect solution for casual users like my parents performing relatively lightweight tasks like viewing and storing photos, music, and documents. The ultimate “thin client” had finally arrived.

On January 27, 2010, Apple announced the iPad and things began to change. Many people, including myself, grew to think that a tablet could fill the casual computer user space better than a small notebook. The iPad is cheap, light, easy to use, and gets stellar battery life. And, not only does it have a very healthy app ecosystem, it also runs modern web applications extremely well. It’s the best of both worlds. Android also stands to perhaps fill that need in the near future with the same split of a native app ecosystem and an advanced web browser.

A few days ago, Google finally released reference hardware of ChromeOS to a fair amount of fanfare. While I’m still intrigued on the concept, the overall idea is much less exciting to me. Before the iPad, I could easily picture an ecosystem that didn’t bother with native applications.

Now, I’m not so sure.

The Platform
There’s a reason the “thin client” model never really materialized and I don’t see that changing any time soon. For the end user, and especially the casual end user, the fact that the “OS is a browser!!1!!1!” doesn’t matter nearly as much as the actual experience. Browsers have come a long way, but curated and tailored experiences are still very valuable and users have demonstrated they are willing to pay a premium for them.

In short, the application platform is really irrelevant to most people. What matters is a great experience. Both the iPad and MacBook Air turn on almost as quickly as you can press a button or open a lid … just like ChromeOS. Does it matter that one is a “thin client” and the other two aren’t?

The “Cloud”
I agree that remote data storage is a valuable thing for casual users. Issues of privacy aside, it’s extremely convenient to have access to documents, photos, and media regardless of location.

But we already have that. We can view and edit documents stored on the Internet from your phone, laptop, and desktop today. We can access Facebook and Netflix from a Samsung TV or an iPhone. What exactly is ChromeOS providing that adds something unique and new? Will it do it dramatically better? So far, I’m not seeing it.

Before the iPad, the cheapest way to get into casual computing was the relatively poor experience of an entry level “netbook”. Today, you can easily get a great casual computing experience for under $500. ChromeOS may have promised a much lower price point and better quality in 2009, but the bar has moved a lot since then.

I don’t know what’s going to happen with ChromeOS, but I honestly don’t see it gaining a lot of momentum. I see a future in which casual users will connect to their data with tablets, TVs, and phones and the more advanced users will continue to use powerful laptops and desktops.

Cycling Season 2010: Organized Event Recap

In early March, I purchased a brand new Specialized Roubaix in anticipation of an epic cycling season. I wasn’t disappointed. Between the beginning of March and the 7th of November (roughly what I consider to be the cycling season here in Colorado), I put in over 3500 miles on the Roubaix and close to 4000 miles total (I have a mountain bike as well).

At the beginning of 2010, I got together with a couple of my best friends and we mapped out the organized event rides we wanted to do for the season. There are a lot of these types of events all over the place, and it was a challenge to narrow it all down. Here are the ones we chose and my thoughts:

  • Elephant Rock (06/06/2010): This ride is commonly known as the kickoff of the summer riding season. It has been around for a long time and has a lot of distance options for various skill levels. I rode the century option which includes close to 6,000 feet of climbing.

    Elephant Rock

    Taking a turn on the Elephant Rock ride

    The course started and ended in Castle Rock traveling in a loop including a dip into Monument. There were ample rest stops along with the way and, despite some wind, was a reasonably great kickoff to the season. On the downside, the food wasn’t so great and, because of the sheer volume of riders on the course, there were times when congestion was a real issue. I’ve decided to ride it again next year as it helps set an early season fitness goal, but there were better rides this year no question.
  • Bike MS 150 (06/26/2010-06/27/210): This was a two day event. We rode from Westminster to Fort Collins, stayed the night, and then rode back the second day. Both days were roughly 75 miles leading to a grand total of 150 combined miles over the weekend. There is also a century option on the second day for people who want to ride a little farther.

    Finishing up the MS-150

    The ride itself was beautiful and relatively easy, with only about 1,500 feet of climbing over Horse-tooth Reservoir. We averaged close to 20mph on the way up. The food was outstanding and the volunteers were extremely fun and helpful. I’d definitely do this ride again except that the price of admission has gotten relatively high. Each participant is expected to raise $400 minimum to ride, and I ended paying the majority of that out of pocket. If you’re one of those people who love asking for money, then this ride is definitely for you.
  • Sunrise Century (07/24/2010): This ride was a 100 mile (with 7,000 foot elevation gain) loop from Boulder into Lyons, over to Nederland on the Peak to Peak, and back down into Boulder via Left Hand Canyon. This loop and its variants are extremely popular due to some challenging climbing and incredible scenery. It was likely the hardest ride of the year for us.

    Happy to be finishing the Sunrise Century

    The ride, however, isn’t something I’ll likely do again. I spent a lot of time on the Peak to Peak this year before and after the event, and didn’t really feel as though it was worth paying for the organized version. The food wasn’t great and the ride felt disjointed. If you feel like riding this course (and you really should; it’s a great course) I recommend doing it on your own.
  • Copper Triangle (08/07/2010): This was, hands down, the best ride of the year. The organization was outstanding, the food excellent, and the course incredible. There were the perfect number of people on the road and just about everyone was nice and courteous. We stayed the night before and woke up to one of the best days I’ve ever had on a bicycle. I’m most definitely going to be doing this ride again next year!

    Copper Triangle finish line

  • Tour de Fat (09/11/2010): This was a great family ride from our house to City Park and back. The total distance was about 35 miles. We took the family and kids along and had a great time listening to music and drinking some outstanding beer. The crowd there is always lively, and everyone is expected to be in costume (we dressed up as Mormons :)

    Amber and Leslie at the TdF

    Waving Hello at the Tour de Fat

    The baby at the Tour de Fat

Next year, I plan on doing Elephant Rock, the Denver Century, Deer Creek, the Copper Triangle, the Crooked Roubaix, and the Tour de Fat (of course). Also, probably the most exciting thing for me in 2011 is the inclusion of my wife on at least a few of those rides along with the weekly group rides.

2011 is going to be quite epic … I can’t wait!