diego's weblog

there and back again

Monthly Archives: July 2010

the end of the mechanical age

Anyone that knows me also knows that I am tablet fan. My first job out of college was at IBM’s TJ Watson Research Center creating a user interface for a tablet that never shipped (this was 1998!) even though we got it working in prototype form. I have used tablets of various kinds since then — my main portable computer was a Thinkpad X Tablet until the Macbook Air came out and replaced it. (yep, 1 lb lighter plus much faster wake time is just too much of a difference to ignore, tablet or no tablet)

While much has been said about the iPad, both pro and con, on the negative side the focus seems to be on what it doesn’t do. For those that would have wanted to get a tablet mac, as opposed to a big iphone (and I think of the iPad not as a big iPhone, but I think of the iPhone as a small iPad, if you get what I mean), there’s no argument that would bring them over. The iPad simply doesn’t do what they want, and that’s ok. There’s also been a lot of commentary on how much of a controlled environment it is, how it can’t be hacked, and so on. All of those are in my view good points but somewhat beside the point. Since the thing clearly isn’t meant to be a general purpose computer, it is not that helpful to say that it isn’t and to want it to be one. It’s not a general purpose computer, and Apple never said it would be one. Done. Let’s all get over that.

What I find interesting is not so much what it does or doesn’t do, but in what it is in terms of its construction as far as bigger devices go, and the consequences for software/hardware interfaces. It seems to me that Apple is on a mission to lead the age of glass — no mechanical components, or as few of those as you could possibly get away with, and increased control of the physical interactions by the software, to create interfacing modes on the fly.
From its screen all the way to the casing, the iPad is almost a solid block of metallic particles arranged in various ways, glass, and some plastic. If we had molecular assemblers (or maybe when is a better term) this is what I think the a lot of first products would look like.

Arguably, it was the iPhone that really broke ground here, and Apple has really been going in this direction for a while now. Macbooks now look like a slab of metal. Desktops (of all kinds, from the Mini to the MacPro) have this solid look that hides all the mechanisms that make it work. They generally seem to be sculpted, not assembled. Compare that to PCs, which actually do look assembled even if they’re now more streamlined.

Apple’s products are tightly controlled, but that also means they are tightly integrated. Apple is fusing the software with the device beyond anything else done in the computer/tablet/phone market today. The hardware is an extension of the software, and viceversa. They are one unit.

We have been infusing electronics and software into everything mechanical for decades now, putting software inside straightjackets of metallic hinges and spring mechanisms with rigid I/O interfaces (input through keyboard, output through display, and so on). It is really in consumer devices where interfaces blend more naturally into form and function. In modern cars (particularly mid- to high-end) the integration of software, processing units, memory, and storage, is fairly seamless as far as car functionality goes (the often times horrible integration of touchscreens and entertainment functions is another story). We don’t really think about it until something goes wrong.

This is one of the key areas in which Apple has pulled off a significant shift. Microsoft tried, for years, to bolt new form factors and ways of interaction into an already bloated system of concepts, software and hardware approaches (the PC). The quality of Windows aside, that’s why Windows tablets don’t work — and as long as Microsoft insists on shoving 40-year-old interaction paradigms and 20-year old software into various devices and form factors, it never will. Nor will Linux, or any other random PC OS anyone can come up with for that matter.

This new paradigm requires a redesign from the ground up. And to really pull it off, you need the hardware to blend into the background, not to get constantly in the way, calling attention to itself, and to become malleable. For that, you need the materials and the design to match them organically. Thinking of the device as a single unit, rather than disparate components to be mixed and matched, is what lets you achieve that. Which in turn allows software to really become the ghost in the machine, and to start to take control of the physical realm of the actions — creating physical interactions, like swiping, out of thin air, rather than having to rely on hinges and springs (like, say, a mouse or a keyboard) to communicate highly limited interactions.

The Mechanical Age is at an end. The Software Age is just beginning.

the web is an app

I’ve been thinking a lot recently about what apps mean for web development, and how they intersect, and my conclusion so far is that very soon web apps will always be built… as apps.

What do I mean by this? Apps are user interfaces optimized for a particular device or screen, and they communicate with servers purely through APIs. Web servers for apps never serve HTML content directly — they expose REST APIs that render JSON (or, alternatively, XML).
It used to be that for typical website development you would create a website that connected to a data source (conceptually — naturally there’s a lot more going on) to generate HTML. Inevitably, pages would end up mangling at least some amount of back-end data management (no MVC model is perfect), and the server defined what to render depending on the capabilities of the user’s browser.

Then, to create an app (typically for iPhone or Android), you would create a separate access path with APIs that would also connect to the data store. The result is two separate sets of business logic that over time become a pain to maintain, or a complex rearchitecture project that involves pulling the business logic out of the web app code so that it can be moved to a separate library or codebase that can be shared by both the APIs and the web app code.

Now, taking into account some interesting, very solid trends:

  • The increasing power of browsers in handling more complex logic, and new APIs (for runtime, data, semantics, and display) provided by HTML5
  • The imminent demise of IE 6 (let’s hope) and increasingly tiny market share of other older and less capable browsers
  • The continued improvement of solid web client-side development frameworks, like GWT and SproutCore.

Put all of these together, and it has become perfectly feasible, and I’d say preferred, to build a web app as just another app, albeit one written entirely in JavaScript, CSS, and HTML5.

In this scenario, the “website” is really one static HTML file that initializes the JavaScript code, which dynamically decides what is the appropriate set of libraries and client code to pull from the server. Once the client is initialized, it can authenticate via OAuth or similar to the APIs, just like any other app client does, and will afterwards only talk to the server via the REST APIs.

This results in a very different front-facing architecture for websites from what we’ve gotten used to (and the change ripples out significantly to backend architecture as well). You can just load up an Apache instance or two to have comfortable static file serving capability, and the entire dynamic front end becomes a set of APIs that is shared across all devices — including PC browsers. The backend becomes simpler to build and maintain, because there’s zero display logic embedded in it. It’s just a data interface.

This has big implications for how we build websites and webservices. Designing a website as a giant API is not something common (APIs are generally bolted on later). Frameworks like Rails teach people to think in terms of pages, not function calls, which is what web requests become when the website is only an API. Libraries like Jersey and Atmosphere will become more important than Spring, since most of what you need is already there, and they’re simpler. Also affected are how we handle everything from outages to Operations, since load balancing and failure handling become different in a world where the user interface components (served as static HTML) have much, much lower probability of failure than the dynamic data components, and a lot more data can be handled statically as well.

Major services are already evolving in this direction. Google has led the way for deploying these ideas at scale, with rich web apps like Gmail or Google Reader. Unsurprisingly, GWT itself has this model as the centerpiece of how they approach software design.

This also intertwines with the topic of “hybrid apps” as I call them — apps that provide native shells that nevertheless use an embedded browser to handle a lot of common behavior (e.g. on the iOS platform, The App Store, Netflix, and other apps are really just shells for webkit) — but that’s a topic for another post. 🙂

the missing predators

Over the weekend I saw Predators (fairly entertaining, if slightly slow in the reveal for some portions of the story). I don’t think I’ll ruin anything by saying that in this movie we meet a new caste of predators that we’ve never seen before, a sort of super-predator that kinda slaps around the original predator as if they are oversized calamari with dreadlocks.

All the while, I couldn’t help but think that there’s a lot missing from the Predator universe. Here’s some predator types I’d like to see in a future sequel:

  • Insurance Agent Predator. Kills slowly by burying you under a ton of forms. Only wears glasses in the office. For all of the regular predators that go on safari… they clearly need insurance products. Especially in case they need to activate the mini-nuke they have in their funky wristband (What is that thing by the way? And does it support bluetooth headsets?)
  • Janitor Predator. Given the mess they make with the skulls and the spines and all the weird creatures they hunt, they definitely need someone to clean up those spaceships. Does not kill, but if you piss him off you’ll be cleaning up your own garbage.
  • Software Developer Predator (aka Nerd Predator). Can kill with keyboard or strangle with mouse cord. Definitely a necessary addition — these guys keep hunting stuff, but who is building new versions of the software they use in the spaceships and all their wonderful machinery? who updates the firmware for the ships? do predators have their own engadget? do they have open source? Do their ships run Windows XP?
  • Gas Station Predator. Because they must get their fuel somewhere. 
  • Celebrity Predator. they must have celebrities, right? right? I mean, they are a natural byproduct of any advanced narcissistic civilization.
  • Paparazzi Predator. inescapable followup to celebrity predator. Uses a Nikon to kill its prey. 
  • William Gibson Predator. Great predator-writer. Wrote the seminal book in a science fiction genre that deals with a dystopian reality where predators live in peace with the universe and ride little ponies to work, which consists mostly of tending to endless fields of tiny beautiful flowers and contemplating the beauty of the universe.
  • James Bond Predator. Has a license to kill. Unlike the other predators, who don’t … but kill anyway.
  • Dentist Predator. Flossing optional for these guys.
  • Clown Predator. Provides entertainment in long trips, and between orgies of planetary destruction.

Proposed title for next movie? The Real Spacemen Predators of New Jersey.

That is all.

the problem with iPhone 4 (and it’s not what you think)

“Do you like your iPhone 4?”

I’ve heard this question more than a few times in the two weeks since I got it, and I imagine I’m not alone. I’ve owned and used as my primary phone every iPhone since the original but for the first time the answer to this question, surprisingly, has been a bit more ambivalent than in previous years. It’s gone from a clear “Yes” to a more measured “Yes, but…”

The ambivalence is not a factor of any of the functions or even the features. The display is amazing. It’s fast. Call quality is better, at least for me. Batter life is much better. And did I say the display is amazing? So these are all great, what’s the problem?

No, it has nothing to do with the antenna signal issue, annoying as that is.

The device itself is gorgeous to look at too… but that’s the thing. Apple has always built devices that maintain a good balance between being visually striking and being generally ergonomic (in the broadest sense). With the iPhone 4, for the first time, this balance has shifted.

The iPhone 4, somehow, feels as if it lacks a certain sense of humanity, or rather, it seems to not care very much if it’s something that humans actually use.


Let me run down the list: with the curved back gone, you can’t tell which way it’s facing by touch, and short of trying to find the groove of the home button you can’t even tell if it’s up or down, and the lack of any clear place to grab it from makes it trickier to get in an out of pockets. If you, like me, and I suspect many others, try to pocket your phone with the back facing outwards, in case you run into something, you can no longer do this without thinking, making something that normally you wouldn’t even be aware of feel onerous. The hard edges, the slippery nature of its ultra-polished surface materials, its thickness, and its geometry conspire to make it hard to set on a desk or pick up (in fact, the iPhone bumper, which everyone focuses on for solving the antenna signal problem, seems to me to be something built precisely to alleviate that problem — and the bumper itself then gets in the way, since you can no longer use the dock for syncing). If you had to design a mobile phone so that it would be difficult to pick up, this is how you’d do it.

These are all rules for affordances that phones, especially mobile phones, have established, and there are solid reasons behind them.

And the iPhone 4 gleefully breaks them all.

Like the monolith in 2001: A Space Odyssey, the iPhone 4 seems to be content with just sitting there and radiating a sense of self-assured perfection.

This is important, I think, not just because of Apple’s massive market share, but because of the host of copycat manufacturers that seem to match everything Apple does without thinking twice. Apple designs have impact far beyond users of its products.

Now, after a couple of weeks, I’m a bit more at peace with these problems, but they’ll never go entirely away.
And we can always hope that iPhone 5 will put us puny humans back in the equation.

%d bloggers like this: