Rethinking Computer Interfaces



Categories: Uncategorized

The first dot-com boom has come and gone and we now find ourselves

in the gritty interim period, where only innovation, cunning, and

realized profits will save us and bring us back to prosperity. Gone,

thankfully, are the lucrative days when anyone with a webpage could

call themselves an “ebusiness” and acheive an obscene level of

rapport with investors. A lot of new business models have been tried and

a handful succeeded, but most failed.

What I thought particularly sad about the situation is that there

have only been a handful of attempts to really think outside the

box in terms of the computing experience and a user interface.

Some of this is understood, since so much of that which was new was

being thought up on the web and it was natural to think of the user

experience in “HTML mode.” HTML being just designed for document

formatting (and not a user experience akin to a program), the set

of operations we could perform using web applications actually

has decreased. There’s only so much you can do in the way of novel

interfaces if they have to be in HTML and rendered in a web browser.

Some creative folks have figured out how to give us a bit more power

in these experiences, such as having popup calendars to fill in a

date, but support of even such basic interface interactions as “drag

and drop” or uploading a folder of information at a time are made

impossible with HTML. HTML centrism has really made narrow possibilities for user interfaces; the move to try and shift all local applications to web applications has reduced the potential richness of user experiences.

To its credit, Macromedia has done a lot to attempt to fight this

battle and enable genuinely new and interactive experiences on the web.

However, such experiences have been primarily focused on entertainment

and artistic applications. There aren’t very many practical

Shockwave or Flash applications out there. Part of this has to do

with the fact that although both enable rich interaction experiences,

neither is designed as a full API for programming fully functional

applications. They make it easy to display data, but not to obtain it

or to interact with resources present on the local computer.

Thankfully, there is at least one trend that may bring hope to new user

experiences: peer-to-peer (P2P) computing. With most P2P computing

models, a program has to sit on the desktop that gives you access

to information through a network of peers, as opposed to a web server.

Since each P2P network uses a different client access program (and

indeed some of these networks have multiple clients!), there are a

rich array of opportunities to create novel end-user experiences.

We can only hope that some companies will take advantage of this

opportunity to experiment with making novel interfaces.

Now what is it that I mean by “novel interfaces?” It’s not that I mean

novel in the sense of entertaining, but instead, novel in the sense that

an interface that is unique, innovative, and takes advantage of the

client platform.

Most user interface designs are static. They are taken from the

standpoint of the text publishing world – to have an interface that is nicely

laid out is a high compliment. This aesthetic, as mentioned above,

works well for web design, which is largely a collection of pages with a

certain static visual arrangement. (This site is no exception.) It is

what I will call a “paper aesthetic.”

But paper is not by any means a natural aesthetic. Whether you’re a

creationist or a scientist, humans weren’t built to stare at flat

sheets of paper (or, indeed, flat monitors) for days and days on end.

It just isn’t how we work. We were built to focus in on things that

need our attention, keeping aware of our peripheral surroundings for

changes, quietly noting subtle changes and becoming alerted

to objects moving quickly and visibly.

This concept of motion bringing attention has been used primarily in one place on the web: banner ads. Since in most cases they are the only thing moving on the page, our attention often drifts to them. Taking a look at‘s new user interface as applied to

particular pages, we see that they have restructured their site such that the only motion on the page is dead center and occupies a good percentage of screen real estate. It sits in the middle of the text, forcing your eyes to come to it as the text wraps around it. You can’t help but look at it: it’s their new series of Flash ads. Naturally, these ads pay much better since the use is forced to view them.

But what if we took some of these base concepts, these notions of

what attracts our attention, what distracts us, and what informs us,

and created a new style of user interface more closely adopted to an

ideal aesthetic – an interface that makes more sense for humans?

What would such an interface look like?

First off, in the real world, when we are working on something, we

bring it up close to us: it occupies the majority of our field of

vision. We get up and close to the screw needing tightening; we

push up close to the blueprint to consider each line. The watchmaker

does not engage his task from arm’s length. Consequent to this, a

good user interface will cause the primary activity to occupy the

majority of a user’s field of view and will clear away irrelevant

data to let us focus on the task at hand. While some applications

support a “full screen” mode that allows for focus on only the

task and nothing else (IE, MS Word, Excel, Adobe Acrobat, etc.),

the user experience should allow for every application to be a

central focus. Apple made a good stab at this by allowing a user

to hide all interface elements not pertaining to the currently run

application, including the finder. Most Windows users I know of

(including myself) have a very crowded desktop – while in one

sense our own fault, it ends up leaving a permanent and distracting

cruft on which I must perform all my work. In addition, most menubars

and icon trays are always visible and can’t be set to auto-hide.

This makes it considerably more difficult for a user to just focus

on what they’ve got to do. So the user must be able to concentrate

on a single task without being disturbed.

But what does it mean to be disturbed? One example of a bad

behavior in this example is Eudora’s default action when fetching

mail – if you’ve set it to go grab your email every five minutes

and put it in the background, when you do have mail, it whips you

out of whatever you’re in the middle of, takes you to Eudora, and

proudly displays a dialog box proclaiming that you have new mail.

This is obviously non-ideal behavior, but it’s also not a very

dramatic example simply because so many applications exhibit similar

characteristics. The classic thing that frustrates me is that if I’m

in the middle of wading through programs on the Start bar and some

program calls itself to attention, the computer drops the submenu

navigation (i.e., the Start bar menu goes away). The computer’s

designers are clearly making the statement “that which my program

has to say is more important than your navigation or input.” In

this modality, the computer can be considered an ouiji-based

entertainment center. You merely consent to the computer’s

understanding of how you should spend your time – it’s not designed

to take your interaction seriously.

A computer’s crisp, jerkily static imagery is poorly suited to

human interactions – we’re used to a world of “soft changes” and

things that move slowly, with a more or less smooth derivative,

instead of dialog boxes that jump out of nowhere and exclaim sounds

at us. We should come up with better interaction mechanisms for

keeping a user up to date with the status of a system without

disturbing them from a task. That is to say, an interface should

be designed such that with a cursory look, the status of the

system can be determined and changes actively reported, but not in

such a way as to be distracted. One way to do this would be through

color fades. For example, you could imagine a mail interface where

mail was sorted into various inboxes. Instead of having a list of

numbers of the quantity of unread messages in each inbox, coloring

each inbox in accordance with the importance of the unreplied

or unread messages in an inbox would allow for smooth color fades

when new messages came in. It would be subtle enough not to

distract you from a task, but by glancing over at the colors, you

could tell what you probably should look at next.

A database-backed file and email system is also called for. Instead

of putting a file into a specified category (i.e., folder), files

simply exist and can be filed under multiple categories (a job lead

from your friend Kevin about a Linux company could simultaneously

be filed under “job leads”, “Kevin”, and “Linux” without having three

copies). Data could also be retrieved via a variety of mechanisms

(looking for how recently it was composed, key words in its title,

its size, its type, etc.). As an added bonus, if implemented as a

“journalling” filesystem and coupled with a bit of data synchronization

sofftware, you could guarantee against losing documents and even

automatically have an infinite-level “undo” mechanism built in on the

filesystem layer, allowing you to version any files on your hard drive.

Modern hard drives are sufficiently large (80Gb hard drives now cost $300)

that there is no longer any feasible reason why textual, pictoral, and

even sound data should ever be deleted. Old copies should be automatically

kept around, but quietly so (e.g., they wouldn’t turn up in a general search or

clutter your views of which files existed, but you could still bring them

up explicitly).

The skills of television producers in drawing people’s attention to

information, actors, and scenes are particularly ingenius;

us programmers should learn from them and exploit the tricks they

have discovered. In the same way that many computer interfaces accidentally draw attention to the wrong things in the wrong ways (as mentioned above), we should

consider how we could purposefully bring the user’s attention to

certain things to guide and assist their focus. Apple had this in

mind when designing how alerts work in OS/X – they pull, transparently,

out of the top of a window. The motion lets the user know to look

there without surprising them, and the transparent but attached nature

of the alert lets the user know that the alert is tied to that particular


The main reason why these interface elements have not previously been

incorporated into common programs is inertia: with the current set of APIs, it’s much easier to piece together a program with usual menus, square windows, and a generally consistent feel relative to other applications (this is a good thing) than something really

groundbreaking. (Sonique, with its next-gen UI, has taken years to cobble together.)

Secondly, however, it’s only pretty recently that one

could assume that an end user’s computer would be fast enough to handle

smooth transforms, 3D effects, and fades in a complex environment. But

with even the cheapest of computers shipping with high-speed 3D accelerators these

days, that assumption is being shown to be false. But we haven’t really taken the

time to question the basic parameters by which we decided upon the current

mode of interfacing with a computer whose design really originated in the late 70’s

and early 80’s at Xerox PARC – and that actually originated from Stanford work

done in the mid-70’s! Clearly, (hopefully?) there is a larger set of possibilities

for human-computer interaction enabled by faster and more advanced technologies.

Now we only need to harness it and conceive of the next wave of interfaces, in

turn to be swept away in another 10-20 years when hardware will permit another

rethinking of interaction.