Rethinking Hollywood OS (Lame Depictions of Computers in Movies may not be so Lame)

Poking fun at hollywood depictions of computing is an old favourite on the net – compilations of dumb computing scenes outshadow even mentions of anomalies in the star trek universe. Meet The Hollywood Operating System (AKA the Movie Operating System, Movie OS). You know it well:

The Hollywood operating system, or Hollywood OS, refers to any fictional computer operating system clichéd in movies and television … These systems usually share common functions with real operating systems, but tend to be able to perform these functions at faster speeds with a more aesthetic graphical user interface (GUI), and are exceptionally more functional than today’s software. For instance, a Hollywood OS may have be able to download extremely large files in mere seconds, display error messages in large, flashing red text … They also tend to have sound effects unnecessarily accompanying every event, no matter how trivial. Some versions do not make use of a computer mouse, with virtually everything being done by keyboard or alternative input device.

I’ve often joked that it would be fun to have a job producing those systems, but recently I’ve been wondering: What’s so funny about Hollywood OS? This is not April 1 and I am serious when I say Hollywood OS has things to teach us (though I do find most of these depictions funny as well!), much as “serious” applications can be informed by video games as well (see Brenda Laurel’s The Art of HCI). In fact, Hollywood OS has two key virtues:

  • It’s an idealisation of how computing should be, and maybe one day will be. The Hollywood OS is not only easy to use due to its natural language and clear UI, but it’s also more aesthetically pleasing than the 2007 junk you’re looking at right now (even if you’re on a mac).
  • It’s a powerful abstract representation of what’s going on inside the computer and network
  • Many times, modern OSs and apps are too detailed. In contrast, Hollywood OS provides a presentation that’s not entirely accurate or precise, but conveys, at a level the user cares about, what’s going on. Just like the revolutionary London Tube Map, which foregoes precise locations in favour of a simpler view of the network and connections. Helpful Distortion principle. I could even imagine using these styles of animations in a tutorial on a given computing topic.

Let’s revisit the wikipedia definiton above – do you really think Hollywood OS sucks?

“tend to be able to perform these functions at faster speeds”

Good – it’s an idealisation of what should happen and also a compressed representation of what’s going on

“with a more aesthetic graphical user interface (GUI)”

Macs and Linux are prettier than Windows, but they Hollywood OS owns them all, and eye candy is nothing to sneeze at.

“exceptionally more functional than today’s software.”

Idealisation

“download extremely large files in mere seconds”

Good

“display error messages in large, flashing red text”

How many times have you missed an error message because it was buried in 12pt times roman on a boring blue dialog, the same dialog that asked you 5 minutes ago if you feel like checking your mail. If it’s critical, large, flashing, red text would seem to be exactly what’s required.

“interface with any computer, whether terrestrial or alien (as in Independence Day)”

Actually this is pretty much possible anyway nowadays.

“They also tend to have sound effects unnecessarily accompanying every event, no matter how trivial.”

As with the visual effects, some of these sounds are actually pretty neat and help build the user’s mental model of what’s happening.

“Some versions do not make use of a computer mouse, with virtually everything being done by keyboard or alternative input device.”

Right, like the way DOS or Unix or ATMs work?

More Links What code doesn’t do in real life

Documentation Needs Examples (Duh)

I’m constantly amazed at the amount of documentation people are inclined to create without including a single example.

Man pages that devote pages worth of command-line options, flags, grammar, caveats, historical anecdotes, and NOT A SINGLE EXAMPLE.

Textbooks that devote pages to a particular API, then expose it all in one monolithic program.

Countless reference documentation on HTML tags and CSS grammar, and NOT A SINGLE EXAMPLE.

In a world where free videos make it stupidly obvious how to kickstart your lawmowing experience and watching a screencast precedes the creation of “Hello World” in any language you care to adopt, let’s get it straight: An example says a thousand words.

How Rails Handles Use of Reserved Keywords, Wow!

I didn’t ever expect to get excited about how a framework handles keywords, but Rails just impressed me big-time. When I tried to create a model named “Activity”, Rails told me it was reserved and then came back with a list of thesaurus terms that might be used instead!. That’s not just opinionated software, it’s downright friendly! Most frameworks don’t bother checking this sort of thing at all, let alone providing helpful “What To Do Now” instructions.

  1. > ruby script/generate model activity
  2.  
  3.   The name 'Activity' is reserved by Ruby on Rails.
  4.   Please choose an alternative and run this generator again.
  5.  
  6.   Suggestions:  
  7.  
  8. Sense 1
  9. activity -- (any specific activity; "they avoided all recreational activity")
  10.       => act, human action, human activity -- (something that people do or cause to happen)
  11.  
  12.  
  13. Sense 2
  14. action, activity, activeness -- (the state of being active; "his sphere of activity"; "he is out of action")
  15.        => state -- (the way something is with respect to its main attributes; "the current state of knowledge"; "his state of health"; "in a weak financial state")
  16.  
  17.  
  18. Sense 3
  19. bodily process, body process, bodily function, activity -- (an organic process that takes place in the body; "respiratory activity")
  20.        => organic process, biological process -- (a process occurring in living organisms)
  21.  
  22.  
  23. Sense 4
  24. activity -- ((chemistry) the capacity of a substance to take part in a chemical reaction; "catalytic activity")
  25.        => capability, capacity -- (the susceptibility of something to a particular treatment; "the capability of a metal to be fused")
  26.  
  27.  
  28. Sense 5
  29. natural process, natural action, action, activity -- (a process existing in or produced by nature (rather than by the intent of human beings); "the action of natural forces"; "volcanic activity")
  30.        => process -- (a sustained phenomenon or one marked by gradual changes through a series of states; "events now in process"; "the process of calcification begins later for boys than for girls")
  31.  
  32.  
  33. Sense 6
  34. activeness, activity -- (the trait of being active; moving or acting rapidly and energetically; "the level of activity declines with age")
  35.        => trait -- (a distinguishing feature of your personal nature)

It’s interesting…the standard HCI advice for showing an error is to not only explain what’s wrong, but how to fix it. “Tell the user what happened, explain the consequences if it’s not obvious, outline how to fix it, explain what to do if they can’t fix it.” Yet, how often do software tools, like compilers, give you anything more than a terse error message. Sure, it’s important to be concise in some cases, but you could always offer an option, like –verbose, to actually provide a few insights.

Where’s that Sound Coming From?

Stop the Noise. Don't really stop the noise, I usually like it, but nonetheless I like this photo too.

Sound Thinking

Where's that sound coming from?
An app inside my box?
Is it ITunes on the desktop
Or YouTube in the 'Fox?

A Skyper shouting at me?
Or Pandora playing faves?
Media Player come to life?
Hmmm ... Real with recent saves?

A podcast I'm preparing?
A vidcast made for nerds?
Nope, it seems to be this picture,
It says a thousand words!

Huh?

I started writing the first four lines of this post when I realised I was writing a “poem”, so I just kept going even though I’m clearly no “poet”.

Anyway, my point is:

  • People multitask, running ten or more browser and desktop apps at the same time.
  • Sound is arising a lot inside the browser these days, and I’m not talking about Axel F midis running in an off-colour GeoCities page. YouTube and wannabees, Flash telephony like JaJah, Podcasts being played by publishers as well as aggregators, Flash and Ajax games. Hopefully we’ll see more Ajax developers introduce Richer Plugins to include sound, because good sound effects make interaction more productive and more fun.
  • So I’d like to see an app that locates the visual source of the sound, which 95% of the time, can indeed be traced back to a particular window or browser tab. And if there is such an app, it should be baked into the OS. For instance, you could use an Alt-Tab-like sequence to isolate each sound as you rotate through the various sources. Nothing more annoying than having twenty browser tabs open and not knowing where the sound is coming from.

Update Feb 26, 2012: And finally Chrome introduces it. Available now on Canary channel.

Who Needs These Browser Warnings?

Setting up a new Windows PC today and not loving the browser warnings.

The messages, as I recall them: “You are about to submit the form. It’s dangerous.”, “You’re going to leave the page. It’s dangerous.”, “This page is encrypted. It’s dangerous.”, “This page is not encrypted. It’s dangerous.”, “This is H20. It’s dangerous.”

So my question is, who’s benefitting? At this stage, the majority of internet users have been submitting forms and using encrypted pages for 5+ years. And if they’re a newbie, is it any more useful to them? (Hint: No.)

The only thing it does is add overhead to setting up a new system. You have to stop and think, “Hmmm is this a negative, double-negative, or triple-negative question? Ah, okay, I think I’ll leave the checkbox unchecked so as to imply I don’t want to not submit the form. And also, I’ll leave the ‘Don’t show me again box’ so it doesn’t not show me again.”

Summary:

  • Only provide dialog boxes that are useful, otherwise users will ignore them all.
  • Avoid not excluding negative phrasing in your options. Even if the most likely value is negative, you should still phrase it as a positive. (“Remember this” as opposed to “Forget this” or “Don’t remember this.”)

More is Sometimes Less

Someone sent Don Norman a critique implying that a machine was more usable because it contained only one button. His response is interesting:

Nice story, but wrong. Fewer buttons do not necessarily mean easier use … When assessing simplicity, don’t get all hung up on the number of buttons. Look at the whole picture: more is sometimes less.

The sentiment will resonate with anyone who’s tried to set an el cheapo digital clock, the kind of clock that skimps on an hour button and makes you run through all 1440 minutes of the day. Slow. Or tried to set the time on a digital watch, whereupon you learn in the manual (if you’re fortunate enough to have kept it) that you must depress down “Button B” for 3 seconds. Confusing.

The same thing happens with language. Sometimes introducing a new term for something reduces complexity overall. When talking about software architecture, for example, life would be a lot more tedious if you didn’t have terms like “Factory”, “Singleton”, “Proxy”.

Captcha Impossibillis

(Update: Thanks ImageShack for deleting my images.)

I was wrong, the third character is apparently a nine.

There ought to be a Captcha gallery/blog for all these. Apparently I’m not the only one who feels that way. Oh well, blame the spammers.

But more to the point, what’s up with this Captcha brought to you by the letters “A…F”???? Hex captcha? Hey, why bother with letters at all, let’s just go with binary captcha.

Here’s how inaccessible Captcha should really be done. (My first in-blog form too :-)).

Your answer (in base 10, of course!):

Redundant Design is Worth Fighting For

Matt @ 37Signals discusses new countdowns being used at pedestrian crossings (crosswalks). Did you ever count how many redundant messages are available at a pedestrian crossing? Good, let’s be sad together and count them, then. At a workshop one time, various attendees from different countries came up with a list of cues, something like the six below:

  • The walking man (is there a walking woman anywhere in the world?) or “Walk”/”Don’t Walk” message.
  • The main traffic lights for drivers.
  • Countdown displays.
  • Display next to the button, indicating if it’s already been pushed (in which case, currently in “Don’t Walk” mode).
  • Sound. (A continuous noise to indicate whichever phase they’re in, and/or a transition sound.)
  • Cars and pedestrians. (Not actually designed and not reliable, but certainly an indication.)

The redundancy is presumably to cope with different sets of disabilities, as well as improve safety for everyone. Software developers don’t always like redundancy – it goes against just about every fundamental design principle you care to name – but users generally benefit from it. So it’s a matter of architecting things so that redundant UI doesn’t lead to redundant code. e.g. point two event handlers to the same Command object.

Yeah, another funny thing about crossings is the button. In one place (Singapore?), I was told not to push it, because it’s only for disabled or elderly people (and of course, ignorant tourists). Everyone else just waits and it will turn green eventually.

Error Messages We’d Rather Not See

Uh, thanks for the heads-up.

Reminds me of a presentation at Interact 2001, where the laptop suddenly interrupted proceedings with that legendary message, “Your computer is now fully charged”. The presentation was about user attention, I kid you not.

And, by way of contrast, how to write good error messages: tell the user what happened, explain the consequences if it’s not obvious, outline how to fix it, explain what to do if they can’t fix it.

Error Messages We’d Rather Not See

Uh, thanks for the heads-up.

Reminds me of a presentation at Interact 2001, where the laptop suddenly interrupted proceedings with that legendary message, “Your computer is now fully charged”. The presentation was about user attention, I kid you not.

And, by way of contrast, how to write good error messages: tell the user what happened, explain the consequences if it’s not obvious, outline how to fix it, explain what to do if they can’t fix it.