Five Years Since the Switch

Five years ago today I made the switch from Windows to OS X and, while I've not stuck with Apple's preferred OS on my hardware for the entire duration, the move has been incredibly illuminating. It's been said on numerous occasions on this site, but the first computer I could call my own was an ancient off-brand 8088 back in 1994. It was on that machine that I learned how to program in Turbo Pascal and Watcom though a pair of books that were instrumental to my understanding of software development. From 1994 through to 2012 the core ideas in those books were used over and over and over again across thousands of projects, evolving as the field developed new processes and techniques. Core to the understanding, though, was that software should be written for the lowest-grade of hardware whenever possible. We can't assume everyone has the latest and greatest computer on their desk, nor should we make people suffer for our own impatience at finding the most efficient means to solve a problem. While I still very much stick to this core idea as much as possible, the platform switch in 2012 brought about a slightly different area of focus when designing digital solutions, and it's one I'm still actively learning about today.

For the first eighteen years, my primary goal was to create great software that would solve the problem at hand as efficiently as possible. The interface that people would see was often an afterthought, though I always tried to make the various elements line up and look good. After using iOS for a bit and seeing just how important interface design can be, I started to take it much more seriously.

Design is a funny word. Some people think design means how it looks. But of course, if you dig deeper, it's really how it works.
— Steve Jobs

While watching parts of Apple's big hardware release a few weeks back, they played an audio snippet with the above quote from the late Steve Jobs. A lot of people have heard this quote, but I wonder how many people think about it.

At the day job I've been working on a project for almost two years1 where I've tried very hard to think more about how the software is supposed to work rather than how "tight" the code is or slick the interface might be. When designing new functions and features, I try to collect as much information as I can from the people who will wind up using that part of the system because, at the end of the day, they are my customer. The software is used by people across the organization with very different sets of goals so, sometimes, the best solution is to write two or more interfaces that draw from the same source of data, but display the information differently. Sure, everything would work if I were to just make a single, unified view that people could then selectively ignore. But I want the software to actually work … so I ask questions. Lots of them.

Despite working with software for almost a quarter century, I still feel there is a lot left to learn. Every platform has taught me something valuable that is just as relevant today as it was days, weeks, months, or years ago when I would heavily lean on them. DOS taught me the importance of efficiency. Windows taught me the importance of object oriented coding. PalmOS taught me the importance of resource management. Linux taught me the importance of community building. iOS/OS X taught me the importance of designing tools rather than solutions. The web taught me the importance of picking a standard2 and sticking to it. The next area I expect to work in will involve a great deal of voice interaction, and I look forward to the evolution in thinking that move will bring.

  1. it's really hard to believe this much time has passed already

  2. there's an XKCD joke in here …

What Do Your iScreens Look Like?

Since getting my hands on an iPod Touch a few months back, I've been compelled to compare my screen layouts with everyone around me … and I've come to a conclusion: I'm not trying hard enough!

It seems that almost everyone I see has seven or eight screens that are full of icons. Games, utilities, tools, social media connectors, Twitter apps … you name it, they've got it.  But what about my screens?  They seem quite bare in comparison.

iPod Touch Home Screen iPod Touch Home Screen (Second Page)iPod Touch Home Screen (Games Page)

Maybe it's just me … but these screens look terribly bare.  Hopefully iOS4 will give me the opportunity to fill these screens a little more. Or, better yet, have the ability to remove the default applications completely.  Seriously … I don't need Stocks, Clock, or YouTube on this device.

Do you have an iPhone or iPod Touch? How many screens do you have? How full are they? I'd love to know if anyone keeps their devices minimal like this.

My iPod Touch Has a Camera?

Just when I thought I knew what hardware was under the hood of Apple's iPod Touch, I see this:

My iPod Camera?

I received this message after connecting the Touch to my notebook for the 2nd time today. Does my iPod Touch have a camera, now? Anyone else see this kind of message from time to time?

A Week With An iPod

My 3rd Gen iPod Touch in HandIt's been over a week since Gary landed in Japan and delivered a nice 3rd Generation iPod Touch and, after a little difficulty with the initial setup, I must admit that Apple's little "music" device is really, really nice.  When stacked up side-by-side with the relatively new HP iPaq 211 and Samsung Omnia, the iPod trumps them both for portability, lack of weight, and storage.

One of the first things that I noticed (after getting Windows to recognize the device), was just how simple it was to navigate through the applications.  One of the first ones I played with was Maps and, I must admit, I felt a little giddy being able to pinch and swipe my way through the streets of Nagoya.

But Don't You Hate Apple?

Lots of people that know me have been a bit surprised to see that my shirt pocket is no longer sporting the ever-present HP PDA, but many were laughing at my foolishness the second I pulled out the more slender iPod Touch.

"I thought you hated Apple!" they'd say.

"I don't hate Apple, really. I just don't like how the CEO goes about getting things done," I'd reply.  "That said, I can't argue with his track record."

There are countless examples on this very blog where I've gone off on a rant about anything and everything Apple related, be it the AppleTV, the iPhone, or the mindless hordes of fanbois who do little to add value to the brand's image.  However, after spending a week with an iPod Touch and using OS X in a VMWare virtual machine (shh!), I have something to confess:

I was wrong.

Yes. That's right. I've admitted it.  After years and years of expecting computers to require endless amounts of attention for something as simple as a "First-Time Setup", years of expecting to pay at least $50 for the ability to work in a second or third language, years of working with cluttered user interfaces, I have had enough.

Working in a virtual machine on an under-powered notebook is not fun, but even OS X flies relatively well with the limited resources it has available.  After using PDAs using PalmOS and Windows Mobile and dropping lots of cash just for the privilege of being able to display (and sometimes write) in Japanese, the iPod has shown me just how easy it should be to work with other languages.

What About All The Apps?

Of the 20+ applications that I've written for Windows Mobile, none of them have ever caught on.  Windows Mobile is a very niche platform used by people who'd probably rather be using an iPhone.  The most popular application I've ever written for WinMo managed to score just 87 downloads over two years before I pulled the plug on support.  Clearly, I've been holding my breath like an idiot for no reason.  If I really want to make applications that people will use, I need to look at Apple's solutions.

Which brings me to one of my biggest gripes about switching from Windows Mobile to iPhoneOS: the development tools.

In order for me to program decently attractive Windows Mobile applications, I needed to buy Visual Studio for an unholy amount of cash.  Cash I could have otherwise used to buy a MacBook Pro, and two iPod Touches … it was that expensive.  In order for me to write software for the iPhone, I downloaded some software for free from Apple's development website, which included the iPhoneOS SDK that I needed in order to get started making programs.

Talk about a d'Oh moment …

So Now You'll Ditch Windows?

I highly doubt I'll ever ditch Windows, or even developing software for Windows.  Windows has been a part of my life for so long that I'd feel weird without it.  Besides, most people who ask me to write software for them are looking for Windows tools … it would be stupid of me to abandon the platform.  I will, however, begin working more with the Apple platform.  If that means buying a MacBook at some point in the future, then so be it.  However, I have no plans on ever being a fanboi like so many of the trolls that we see patrolling the Internet.  Windows has its place in the world, just like OS X, Ubuntu, and almost every other platform out there.

Now that I've got all that out in the open, it's time to start playing with the iPhone SDK.  I have some plans for a relatively slick Sudoku game in mind and, after that, I'll hope to begin writing software for people on  The goal is to become proficient enough writing quality iPhoneOS-based apps that I can pretty much write my own paycheck through freelancing.

Have I waited too long to get into Apple's game?  Did you have a similar rush of empowerment the first time you used an iPhone or iPod Touch?  Have an idea for an app, but not sure how to get it written?  I'd love to hear your thoughts.

Comparing the Devices (Click for Full-Size Image):

Side By Side: iPaq 211, Samsung Omnia, iPod TouchSide By Side (Edge): iPaq 211, Samsung Omnia, iPod Touch