Category Archives: Apple

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.


A Simple Solution to iOS Scrolling

One of the most common metaphors for iOS applications, and especially iPad applications, is an independently scrolled window pane. In the iPad’s mail application, for example, you can easily scroll the message list and the current message itself independent of one another. This is such a common thing on the iPad that transferring it over to iOS web applications seems like a trivial matter.

Except it’s not. The iPad doesn’t support this feature, likely the most common UI metaphor on the device, in an easy way for Mobile Safari applications. There are some solutions (including Pastry Kit and Sencha Touch), but they all solve the problem a very similar and kludgey way: overwrite the default scrolling behavior with one that uses CSS transformations and JavaScript to move the elements down the window pane. Even Google’s iPad GMail interface, one of the best implementations of this in Mobile Safari, is using this strategy. Implementing this requires a large amount of effort in most cases even with the support of a JavaScript framework behind the scenes.

A simple solution, however, would be to simply change the iPad’s overflow support. In most modern browsers, setting a static height / width for a div element and adding the overflow: scroll; property in CSS will result in an independently scrollable portion of the page should content exceed the height / width boundaries. The iPad does support scrolling in these circumstances, but it requires using two fingers and is often slow and unresponsive. Most Android browsers (including, as of the time of this writing, the Galaxy Tab) don’t support this type of scrolling at all.

Changing the device’s behavior to automatically add the native style tweening, momentum, and scrollbars to these elements would allow UI developers to very easily add intuitive independently scrolling sections to their iPad web applications. Even better, this solution graceful degrades as desktop browsers would automatically add scrollbars to the content making it easy to understand that additional data is available.

UPDATE: Looks like this feature is making its way into iOS 5!

I Can Has Your iPhone?

Watch your iPhones, kids!

Walking out of work today, a guy stopped me on the sidewalk and asked if he could pay me a dollar to make a call. I told him that he could make one for free (how nice of me) and asked him the number (it is a lot faster for me to dial a number since many people don’t know how to access the dial-pad unless they already own an iPhone).

The guy called a number (720-621-7655) and said something along the lines of “I’m stranded at 21st and Larimer” to the answering party. He then proceeded to steal my phone.

I chased him around the corner with Amber in the car (who had pulled up right as the guy started running away) following on the street. About two blocks or so later, I caught up to him and he proceeded to change direction and cross right in front of a line of cars on a one-way street running into a small alleyway. At that moment, another car (going the wrong way on the street) pulled into the same alleyway and I thought that my phone was gone. I figured the guy had called a friend to come pick him up and my mind went right to figuring out strategies to either locate my phone (unlikely) or simply make sure all my personal / work data was properly disposed.

After saying a few curse-words, Amber noticed a group of people congregating about half a block from the alleyway the thief disappeared into, and I recognized the vehicle as the same car that pulled in after him. As it turns out, the driver of the car had noticed me chasing the guy down the street and had taken it upon himself to retrieve my phone. In just a few minutes, I had my phone back in perfect condition.

I learned a few things from this:

  1. Don’t let strangers make calls. It’s 2008 … get your own damn phone.
  2. I enabled the password on my phone. If it’s entered incorrectly 10 times, all data will be wiped clean. It’s not too cumbersome to type in the code every now and again, and it will definitely come in handy if this ever happens again.

The phone itself is valuable but it’s the data that I was most concerned with. I can always cancel the phone’s IMEI and suspend the account, but the jerk-off would have had access to all my emails, Twitter account, and whatever else I have loaded. Granted, the guy didn’t seem very technically minded (probably just saw a shiny object he thought he could sell for crack or something), but the fact that my personal information was just “out there” really sent me for a loop.

Learn from my mistakes and lock up your phones!