Sunday, June 22, 2008

Out in the Mountains

My wife and I took a trip this week to the Rockies, and I interviewed with a tech firm in Denver.

This is an excuse, I guess, for my lack of posts this past week.

While out here I've had a chance to clear my head a little bit and relax. We went to Rocky Mountain National Park north of Boulder, explored downtown Denver, and visited the resorts at Vail and Breckenridge which were quite busy even though the ski season is over.

The weather was great and the scenery was impressive. If you haven't been out to the Denver area, I recommend taking a trip.

Saturday, June 14, 2008

Better, or just different?

While I've been setting up my new Macbook Pro, I've been thinking about why computers are so freaking hard for most people to understand.

The Mac, of course, is supposed to be the paragon of human interface goodness. As I lifted the lid and booted the machine for the first time, choirs of angels were supposed to be singing and dazzling rays of light were supposed to be washing over my pudgy face. Here I was, finally liberated from the dreaded Windows PC that held me in shackles for all of these years. Hallelujah!

However, being completely objective — which is hard to do with a shiny new (and expensive) piece of hardware sitting in front of you — I can't say that using OS X is much easier than using Windows. As I've been attaching the machine to my network, adding printers, configuring preferences, and performing other mundane tasks associated with getting a new computer set up, I've encountered lots of stuff that puzzled me and certainly would be undecipherable to the average person.

Don't get me wrong, I'm not a hater. The overall Mac experience is much, much better than any PC I've worked on. The reliability and security of UNIX-based OS X is a huge improvement over Windows, the amount of software that you get with the machine is incredible, and the total package is tight and pretty.

However, I've come across many cryptic dialog boxes, I've needed to try things multiple times, I've had to repair keychains, and I've spent a fair amount of time Googling to validate problems and find solutions. Once you learn some tricks the answers seem obvious, but until then you could spend a lot of time scratching your head.

I think a major source of this problem is that a computer, as Alan Turing taught us, is an 'anything machine'. Unlike a calculator, a car, or an iPod which has a few basic capabilities, computers can be extended with programs to do thousands of different things. Because of this, no two computers are alike; someone bought the same model Macbook I did on the same day last week, but I guarantee that by now our machines have lots of different software in them. Additionally, because computers can interface to so many things, the differences multiply by the number of printers, network routers, external storage systems, cameras, portable media players, and other types of peripherals that they have to deal with. The probability of any two computers being completely alike within a week of purchase is basically zero.

All of this different software and all of these different peripherals lead to complexity and inconsistency. There are just too many options, too many choices, too many potential conflicts. There's no rule book that says, for example, if you're building a network router, here are the five items that should be user-configurable. In fact, it's just the opposite; in an attempt to gain market share companies try to make their products different, try to add new features, and as a result end up putting a hundred knobs on something that would work almost as well with two. Look at the millions of ways you can configure Microsoft Office! Does anyone really need every one of those options? Of course not, but when you want that one specific option you're going to complain if it's not there. (I'm sure that somewhere there is someone who wants to have page numbers only on every 7th page!)

So we have millions of dialog boxes, each designed with its own sense of a task flow and vocabulary that is relevant to the program or peripheral for which it was designed but not obvious to the unacquainted. As a result, we have billions of users getting confused and potentially screwing up, costing time and money. Yet overall the balance pays off, so people put up with the crap and try to deal with it as best they can. Sometimes they have to call Geek Squad, or a relative who can fix it for them. Sometimes they just live with the problem — I know people who are OK with restarting their computer multiple times a day because it locks up or drops the Internet connection!

I'm going on, I know, so I'll wrap this up by saying that Apple can't really solve this fundamental problem. No single company can. If things ever do get easier, it's going to take some more advanced logic that will hide all of these complexities from the user, not just present them in a prettier dialog box. Something that can analyze all of the dependencies and potential issues and automatically make the best decision based on the intent of the user rather than their direct input. This is a problem that's worth solving!

Wednesday, June 11, 2008

iJoe

I took the plunge into the Cult of Jobs today and bought a MacBook Pro.

Since my ex-employer liberated me from the Dell I had been using, I needed to get some kind of notebook computer to take on interviews and vacations. It seemed like the Mac was a decent choice in terms of performance and features and, since my wife has a Mac as well, I avoided the Microsoft Tax by not having to buy another copy of Office — the home edition comes with three license keys.

Of course, all of that should be taken with a large grain of salt since this machine is also somewhat of a new toy for me. (I hope my wife doesn't read that!)

The specs, in case you're interested:
  • 2.6GHz Intel Core 2 Duo w/ 6MB L2 cache
  • 4GB DDR2-667 RAM
  • 200GB 7200RPM HDD
  • GeForce 8600M w/ 512MB of GDDR3 memory
  • Slot loading SuperDrive
  • LED-backlit 15" 1440x900 display
It may be the fastest PC in my house, and it all fits into a 5.4 pound package!

So far things are going pretty well, but I have to get used to the keyboard differences. The delete key, for example, is where the backspace key should be, and it performs the same function as backspace on Windows. To get the delete function as on windows you have to use fn+delete. I guess this is just something you get used to as you learn to Think Different™.

I'm curious to know how many of you are Apple users and how many have converted from Windows recently. If you have any tips for me, I'm all ears.

Tuesday, June 10, 2008

Web Applications the Right Way

A few years ago I didn't believe that the web platform could offer the functionality required for serious applications. I have a different opinion now, primarily based on my experience with three technologies with which every web developer should be familiar.

CSS (cascading style sheets) is a technology that allows the visual layout of web pages to be specified independently of the structural layout. Using CSS, you keep the HTML code that defines your content clear of formatting commands. This provides tremendous power to present that content in many ways without having to re-code the web page. You can overlay elements, move them around, animate them, and perform almost any visual manipulation you can imagine. If you want to see a cool example, check out CSS Zen Garden; this site lets you select different style sheets and apply them to the same base HTML document, showing the tremendous creative flexibility that CSS provides.

Asynchronous Javascript and DOM (document object model) manipulation allows a web page to respond to user input and other stimuli by asynchronously calling remote logic and re-drawing itself. This is tremendously faster, more efficient, and more secure than the old school approach of requesting new pages to be shown. User-perceived response times go from seconds to milliseconds. Another bonus is that you don't have to worry about the dreaded 'back' button — since you're not loading new pages as the application runs there's nothing to go back to!

JSON (Javascript Object Notation) enables efficient data transfer between client to server with almost no coding. Simply take an object and flatten it as a JSON string with one function call. On the other side of the connection, use a complementary function to re-inflate the object and start using it in your program. Way, way simpler than messing with XML. And it works with almost any server-side language, so encoding PHP or Python objects in JSON is still just as easy as Javascript. See the JSON.org web site for more information.

Using these technologies, I think that building a significant application using the web browser as your front end is not only possible, it's almost easy.

Friday, June 6, 2008

The iPhone Hype Wave

It's Friday before Apple's WWDC in San Francisco, and it seems like everyone's got something to say about the new iPhone expected to be announced there.

The latest rumor is that the phone won't actually be available until June 16th. This is based on some inside information leaking from stores and support centers related to stock levels and suspended vacations. It seems reasonable, but a little surprising. Maybe they realized that with all the hype it would have been impossible to keep devices from leaking out early if they had been shipped to stores before the 9th, and I'm sure that Mr. Jobs doesn't want anyone stealing his thunder.

I'm going to buy one of these new iPhones. Here's why:
  • 3G support (finally!)
  • Good integration with Google mail & calendar
  • Push e-mail / Exchange integration (for business use)
  • GPS for Google Maps (help on my travels)
  • The only truly usable mobile browser
Of course it looks cool, but so do the new Blackberries. My older Blackberry has been a workhorse, but suffers from lack of GPS and poky EDGE data speeds. These faults are corrected in the latest RIM models, but still the browser sucks and the screen is too small. That last compromise enables physical keys, but I find that my use of the device is 90% reading and 10% writing, so I'd rather have the screen real estate and deal with a virtual keyboard when I need it.

I wonder if more of the 'crack berry' crowd will migrate along with me. Any way you slice it, it seems like Apple is going to eliminate all but one of the reasons people had for not getting an iPhone. That last one, the virtual keyboard, may just be a matter of taste. Will it be enough to keep RIM in the dominant market position?

A busier week than I thought it would be

It's Friday, and I haven't posted anything since Monday! It's been a much busier week than I planned.

I thought I could take a couple of weeks to 'veg out' and get my head straight, but a couple of job opportunities can't wait and I've been on phone calls, sending resumés, and making site visits. I have more visits to make over the next couple of weeks, and meetings with lawyers and financial planners, so my new plan is to take off some time in early July and start my new career after that.

You know what they say about the best laid plans...

Monday, June 2, 2008

Metered Internet Service

Yesterday, the news broke that Time Warner cable was going to test metered Internet service in Beaumont, Texas — basically laying out plans that limit monthly usage to between 5GB for 768Kb/s service and 40GB fro 15Mb/s service. Going over that amount will result in a $1/GB overage charge.

Sound familiar? We've been living with plans like these in the mobile space for years, but the funny thing is that the mobile operators are moving to (practically) unlimited plans. What market forces are driving these service providers in different directions?

The proponents of metered IP say that they have to do this to protect the scarce network resources from P2P file sharing rapscallions who use up all of the bandwidth and kill performance for the rest of us. They say that 5% of the users consume most of the bandwidth, and that these are the people they want to control with metering.

I have to wonder if there are other forces at work.

Besides file sharing, there are a few applications that could consume large amounts of bandwidth; can you guess what they are? How about telephony and streaming audio? Maybe streaming video and movie download services? Isn't it interesting that these services compete directly with the traditional telephone and video on demand offerings offered by most broadband providers?

So if you use the provider's voice and video services, you're safe from the overage charges, but if you dare to use Skype, Vonage, AppleTV, Netflix, and XBox Live you run the risk of a massive bill. After all, if you're on a Skype call for 4 hours, how many bits did you use? How many bits were in that episode of "The Simpsons" you watched? Do you even have any way of knowing?

Beyond that, IP is a notoriously lossy protocol. There's packetization overhead, re-transmission overhead, and a lot of other things beyond the applications' control that influence exactly how many bits are transmitted. Is it fair to make customers worry about this?

Am I being overly cynical? Maybe, but I think that the last mile providers have been worrying for a long time about being bypassed by these 'external' service providers. They don't want to become just 'bit pipes' to their customers, they want to own their customers. By capping monthly bandwidth, the local broadband providers effectively create a barrier to competing services delivered by companies like Microsoft, Apple, Blockbuster, Netflix, and Google.

What do you think?

Sunday, June 1, 2008

iPhone, Android, and the Changing Face of Telecommunications

Now that I need a new phone, I've decided to get an iPhone. However, I'm going to wait for the "rumored" 3G iPhone that's supposed to be released on the 9th of June after the WWDC keynote. I say rumored because Apple really hasn't said anything official and all I can go by are the hints given by AT&T and various unnamed sources.

I also recently viewed the latest Android demos from the Google I/O event. They showed the prototype software and hardware working together and doing some cool stuff. My impression was generally positive but there seemed to be some usability and performance issues and it wasn't as nicely packaged as the iPhone platform.

These developments have made me think about what's over the horizon. I remember getting a Palm Pilot when they first came to market in the '90s. PDAs and mobile phones have been inching closer since then, and I think 2008 is the year that most people will start to see that they've effectively merged. It makes sense: The PDA's necessarily small form factor means that they can't use a lot of power, therefore to make them useful they have to be supported by other computers in the network. Those computers 'in the cloud' handle all of the heavy lifting and allow the personal device to focus on providing a good aural and visual human interface.

The growing availability of 3G mobile networks around the world (in most major cities, anyway) makes this model practical. Let's face it, only a real geek would wait for web pages on a 2G network; normal folks don't have the patience. 3G, with lower latency and bandwidth approaching a megabit per second, should eliminate much of the lag that plagues mobile applications today.

The last domino to fall will be the traditional circuit-switched phone network. When the devices and networks can reliably handle mobile VoIP, you'll see the change begin. Some people will start using GoogleTalk, Microsoft Messenger, AIM, and Yahoo Messenger to make phone calls. At first they'll do it to save money, but eventually they'll start seeing new benefits. People will start asking questions like:
  • Why do I have to remember numbers for people?
  • Why do I see a different interface on my mobile phone, house phone, and personal computer?
  • Why can't I use audio and visual information together in a single 'call'?
The traditional telcos will fight this change, but how can they stop it without creating some artificial hurdle that will upset courts, governments, and their customers? The genie is out of the bottle, and powerful companies like Google and Microsoft have a stake in the success of the new model.

With the technical restrictions gone, it's time to drop the functional, legal, and contractual restrictions that have been around for the last hundred years and move to a new, open communications model. Someday they'll pull the plug on the last switch in the PSTN. That transition is starting now.

A vacation... maybe

I'm trying to figure out what to do with myself for the next few weeks. I had this great idea to take a trip to the Apple WWDC in San Francisco, but it's sold out (of course). I had another offer to go diving, and I'm thinking that we might try the Bahamas or Cancun due to availability of cheap flights. With the tropical storm now in Yucatan, the Bahamas is looking like the best bet.

In any event, I think it would be a good idea to take advantage of the down time, since who knows when I'll be buried in another project.