Wednesday Apr 18 2007

Reimagining the PC, Part 3: The Crispy Exterior

What’s the ideal way to tell our computers what we want to do? Basically, we need to communicate two types of data: symbols (text, numbers, etc.) and kinetics (for lack of a better term–moving, clicking, dragging, etc.). Ideally, all we’d have to do is think about what we want done, and the computer would do it. Sadly, while progress is being made in the direction of a neural interface, I can’t imagine a general-purpose one succeeding in the market for at least another decade. So, at least for the time being, we need to focus on improving the current physical interface that allows us to use our hands to do the input.

The keyboard is a fantastic invention: an arrangement of buttons designed to let a person type any word or string of symbols they choose. However, the QWERTY layout (it is often said) was designed to slow typewriter typists down, so that the typebars wouldn’t jam. This is obviously not a concern with modern keyboards, but do we ever see any serious attempts to correct the layout and increase typing speed and productivity? Dvorak has sadly never caught on. And worrying about the layout doesn’t even touch on the fact that, with the addition of the ubiquitous computer mouse, the typical computer interface is optimal for a human being with three hands.

The mouse is a stopgap measure. Originally created to act as a sort of finger-proxy, a way to translate the intuitive human ability to point, push, drag, and tap with the fingers onto non-sensitive screens, it could be entirely superfluous now that touch-sensitive screens are both available and relatively inexpensive. But we’re stuck in our rut, and we don’t want to give up our three-handed interface, so we continue using a system that would be perfect for a mutant but requires wasted effort for most of us.

What to do?

Let’s face it: half-assed measures won’t cut it. If people have the option of sticking with the familiar suboptimal interface, they will. The redesigned computer shouldn’t give people this option. Its redesign must be so compelling, so obviously superior, that people will be willing to make the leap from the comfortable to the new. We need a powerful, intuitive new interface that eliminates the three-hand problem while still allowing us to do everything we already do and more.

Lots of research is being done into new input interfaces for PDAs and mobile phones and small-sized tablet PCs, but very little time and effort is being spent on regular old desktop or laptop input interfaces. I’ve spent hours looking into one-handed keyboards like the Matias Half Keyboard, the Frogpad, and the Twiddler, but they all suffer from one notable problem: typing anything other than regular English text is very difficult, so programmers like me will experience significant slowdown, which can be a stumbling block to staying in the creative zone. I’ve checked out on-screen writing software like Quikwriting and Dasher, but while these would be great for mobile phones or PDAs, they’re far too slow for regular use.

The makers of the Frogpad have begun mentioning that they’re working on a Frogpad for programmers that makes typing punctuation and symbols easier, but until that comes out, I think we’re effectively stuck with a two handed keyboard. So what can we do?

I recently took an informal poll of some friends to find out how they hit the spacebar on their keyboard while typing. Over 4/5ths of them answered that, like me, they always use the same thumb to type a space, leaving the other thumb always hanging there uselessly while they’re typing. An eye-tracking system uses cameras to track where on the screen you’re looking, and requires you to use something to input mouse clicks. Why not use that other, useless thumb? Instead of having a giant spacebar on your keyboard, just cut it down slightly and use the extra space as a “mouse key.” Then, to move the mouse pointer around the screen, you just have to look where you want it, and to click you just tap that key. Sure, you’d only have one button, but as Mac users will tell you, that’s not necessarily a problem.

The drawbacks to this method are that accurate eye-tracking hardware is expensive, cutting down on the spacebar’s size will be uncomfortable to many people (at least at first), and trying to control the mouse via eye-tracking is somewhat difficult, since eyes are prone to drifting and moving somewhat unsteadily. For more information on eye-tracking, see the Stanford HCI EyePoint project and the openEyes resources from Iowa State University. And finally, it leaves users with the suboptimal QWERTY keyboard layout, which most people won’t voluntarily abandon.

The big pro of this method is that it gives you the ability to handle positional input with your eyes as well as use both hands for typing on a full-size keyboard–a truly two-handed interface, as long as the tracking hardware and software can be made usably accurate.

But eye-tracking isn’t the only potential solution. Ever since Apple announced the iPhone, the web has been abuzz with talk of how multi-touch screens will revolutionize computers. Most touch-sensitive screens in the past have only been single-touch: they could only sense where you’re touching with one finger, and if you used more fingers, the interface would either ignore them or get confused. Multi-touch screens allow you to touch the screen with multiple fingers, manipulating objects from various points at the same time.

While people are oohing and aahing over Apple, most of them haven’t heard of an NYU researcher named Jefferson Han who has been working on an intuitive multi-touch interface for years. While his technology isn’t available outside his own lab yet, someday it will be. To get an idea of just how cool a well-designed multi-touch interface can be, try watching this video of Jeff demonstrating his interface at the TED Conference in 2006 or reading this in-depth FastCompany article (and be sure to watch the accompanying video for that, too).

Unfortunately, multi-touch screens don’t necessarily provide any sort of fantastic new method for text input. You can use both hands to manipulate objects on-screen, but when you want to type, you’ll be forced to take both hands off the screen and place them on a keyboard, or maybe just type on a simulated on-screen keyboard. Either way, you can’t effectively do both textual and kinetic input, so while multi-touch screens may provide a more intuitive and thorough way to interact with the computer kinetically, it still leaves us with the original problem.

I envision our redesigned computer using a combination of these two technologies. While typing, you can control the mouse with your eyes and a mouse-button on the keyboard. If you want to manipulate things on-screen more directly, you can reach up and do so via the multi-touch capability. This isn’t ideal, but I think it’s better than what we have now, and it’ll have to do until we get those direct neural interfaces up and running.

Next time, I’ll explore how the core of the computer’s operating system can be better-designed to support a human way of thinking.

(This post is the third part of my five-part post series “Reimagining the PC.” You might like to start back at the beginning.)

Tuesday Apr 17 2007

Reimagining the PC, Part 2: The Gooey Filling

A lot of the current research and development work on computer usability focuses on software: making it more intuitive, more contextually aware, and more powerful. I contend that this work should be secondary to making hardware support usability. The best-designed piece of software in the world is useless if the hardware it’s running on isn’t designed to keep it usable.

What does this mean? It means that hardware should be designed so that the user can totally ignore it and spend all their time thinking about their goals. The computer is a tool, and just like any tool, it works best when the user barely has to think about it. A hammer acts as an extension to a person’s natural arm motions; they hardly ever worry about the hammer itself, but rather about the nail they’re trying to hit.

Unfortunately, current computer hardware requires the user to think about it fairly often. Computers are great when things are running the way we expect them to, but as soon as something goes wrong–a power outage, a drive failure–the problems with the hardware totally overshadow any usability concerns with the software. Unless we solve the hardware usability issues, all the well-designed software in the world won’t make our lives truly easier.

Points of failure

I have identified six points of failure–that is, areas where current hardware falls short and can be drastically improved, thus making the hardware more usable and better able to support the user’s goals.

Power failure

If you’re using a traditional desktop computer system and you don’t have it plugged into a UPS, as soon as the power blinks or goes out entirely, say goodbye to whatever you’re working on. Software usability doesn’t matter one bit if you can lose your data and potentially corrupt your system in an instant when the power goes out. If computer power supply units included a strong surge suppressor and incorporated a small battery pack, data corruption could be stemmed and unexpected hard shutdowns could be avoided. The battery pack doesn’t need to be very powerful–just enough power to provide time for a clean save-and-shutdown is really necessary. Personally, I replaced our desktop systems with laptops a year ago and haven’t looked back since. Even in our current house in rural New Hampshire, where the power blinks every few days, we have no problems.

Power consumption

As power costs continue to rise and worries about global climate change become more widespread, concerns about power usage in the home are growing. All computers should be designed to be as frugal with power as possible. This means designing parts that put themselves in a low-power sleep mode when not needed and not including high-level power-hungry components like cutting-edge video cards on systems that don’t need them.

Additionally, it may be wise to investigate technologies to allow the system to generate its own power. Paneling exposed surfaces with solar panels may be prohibitively expensive now, but might not be in the future. Adding kinetic power generators to all keyboard keys (as detailed in this New York Times article and this patent) would convert the energy of the user’s keypresses into power for the system. Even if this only generates a few watts per day, Forrester Research estimates there will be 1.3 billion computers in use worldwide by 2010. That’s a lot of power saved.

Natural failure

Despite our best efforts, we just can’t seem to make computer parts that are infinitely stable and last forever. Surprise, surprise. At some point, anyone who uses a computer regularly has undoubtedly encountered some sort of hardware failure, whether it’s corrupted RAM, a dead hard disk, or a video card on the fritz. While companies will undoubtedly do their best to eliminate these problems, they’ll never completely go away. So what can we do to alleviate the problems?

Well, think about the concept of a RAID. The idea is that by using multiple hard disks, if one of them fails, your data is still safe, and your computer doesn’t totally flip out. Why not apply this concept to other areas of hardware? I propose the development of a hardware architecture that allows any system to have at least two of each type of major hardware subsystem: two video cards, two sets of RAM, two CPUs, etc. Included in this architecture should be the capacity for a smooth failover, i.e. as soon as a component fails, the system switches to the secondary component. While this isn’t entirely practical for some parts–you can’t really have a secondary motherboard, for instance–for many common points of failure it could, potentially, alleviate the problem.

Hardware RAID should also be a standard feature in every system. Any computer built should have at least two hard drives, one a straightforward backup of the other. Drive failure will become less and less catastrophic as more and more of our productive work moves online, but hard drives won’t ever really go away.

Diagnostics

Right now, computers are largely non-self-aware. When something goes wrong, the system continues blithely on, generally unable to even detect that something’s not right, much less figure out what it is. My theoretical new architecture must include, along with smooth failover to redundant hardware components, a thorough diagnostics and reporting system that can detect a problem, figure out what the problem is and how to fix it. hardware testing modules should be abundant and take cues from the software; checks can be triggered if there is a sudden unexplained change in the computer’s usage or memory load, or if a particular instruction or procedure fails unexpectedly.

Beyond merely detecting and identifying problems, the system should have a basic idea of how they can be fixed. If a hardware component fails, after the failover occurs the user should be alerted, and the specific details of the hardware that needs to be replaced should be noted. Ideally, the data provided should be enough that the user could simply print out the notification, take it to their local Best Buy, and walk out in five minutes with a compatible replacement part. Software could even detect these alerts and allow the user to automatically order replacements to be shipped to them. For less tech-savvy users, the computer could be set up to immediately notify a local computer repair center of the user’s needs, and the center could then call the user to schedule a time for the repair to take place.

Startup speed

Computers are starting more and more quickly, but it’s still a few minutes between turning on your system and actually being able to use it. Windows Vista has made some strides in the right direction here with their ReadyDrive technology: placing commonly-used but infrequently-changed core system files on a high-speed Flash NAND memory chip so that they can be read and executed more quickly. I’d propose taking this a step further, however, and connecting the NAND chip directly to the motherboard instead of on the SATA bus. Much like other parts, this NAND chip should have at least one redundant backup–here it’s even more important, since NAND chips are proven to have a finite lifespan, and failure is assured after some number of read/write cycles.

Security

As we become more and more connected in our daily lives, security in turn grows in importance in our lives. Today’s computers are largely insecure; even if a hacker can’t get in via typical attack routes, the various LEDs and electromagnetic radiations from the system are highly vulnerable to forms of Van Eck phreaking. I propose using shielded cables and components wherever possible, making sure that LEDs don’t flicker in ways that expose data (see this paper on “Optical TEMPEST” (PDF link), and scrambling video signals. While this all may sound paranoid, the countermeasures would be fairly simple to put in place and would help protect users against some possible attack routes. Even if scammers and identity thieves can be foiled in their remote work, that doesn’t mean they wouldn’t adopt local attack methods eventually as well.

Many laptops are already incorporating fingerprint scanners into their security systems. I think these should become standard, and a fingerprint scan should be requested anytime a sensitive operation is being performed or personal data is exposed.

Other hardware optimizations

When you open up a computer case, you’re presented with a bewildering tangle of cables and cords, all stretching this way and that, and parts plugged into each other willy-nilly. Even if your system has told you it needs its video card replaced, unless you’re already pretty savvy, it’s not easy to tell what the video card is. I suggest creating a standardized color-coding system, so that different standard computer parts use different colored plastic mounts. Instead of trying to slide a skinny circuit board into a narrow slot, why not design it to fit together more like a Lego brick, with an easily-accessible lock-lever to make sure it’s in place? And if a particular part needs a particular cable, the cable should also be color-coded to match the part. In addition to colors, all parts should have their role printed on them in large block letters (VIDEO, AUDIO, MEMORY, etc.), as well as a standardized symbol representing the role.

All cables should be rounded. Ribbon cables are incredibly difficult to work with. Additionally, the internal layout of a computer should be standardized to decrease cable-tangles: if we position the SATA connectors on the motherboard as close as possible to where the hard drives will go, we don’t need to worry about whether the cables will reach.

The end result

If all of these suggestions can be fully and robustly implemented, the resulting computer system will address all of the above issues. When the system is powered on, the time between the user pressing the power button and being able to use their software will be minimal, like turning on any appliance. If the power is cut, the system will continue running from its battery as long as possible, and then shut down cleanly. Battery life will be increased, and energy bills reduced, by using low-power components that incorporate energy-saving logic. The system itself will deny access to malicious hackers from a hardware standpoint, providing as much security as it can. If a part fails, the entire system won’t become unpredictable or useless; instead, it will smoothly recover by switching to its standby part. The system will notice the failure, explain it to the user, and suggest a course of action to remedy it. If the user needs to open the computer up to implement a suggested remedy, the physical hardware of the computer will be easy to understand and work with. This is stable, usable, simple hardware.

In the next entry, I’ll discuss how the computer’s hardware interface–that is, the parts that the user sees, touches, and interacts with–can be improved to support my usability goals.

(This post is the second part of my five-part post series “Reimagining the PC.” You might like to start back at the beginning.)

Monday Apr 16 2007

Reimagining the PC, Part 1: What’s All This, Then?

Since the advent of the commoditized personal computer in the mid-1970s (with the release of the MITS Altair 8800), things haven’t really changed much. Sure, computers have become significantly smaller and faster, and the number of things we can do with them has ballooned to the point where many of us can’t, or don’t want to, imagine life without them. But when you look at the nitty-gritty details of computer usability design, both the hardware and the software, it’s still largely based on assumptions made by a bunch of scientists who were flying by the seats of their pants decades ago, just making things up as they went along. Things don’t change, because we, as a global society, are stuck in familiar ruts. I contend that these ruts are not just suboptimal, they’re actively deleterious to our culture.

Here we are, brains the size of planets, and yet we’re using flaky computers that sort of do some of what we want most of the time. They require constant attention to keep them running smoothly, as if they’re made of sticks and twine rather than solid mechanical parts. We each spend countless hours fixing problems, upgrading, configuring, maintaining our systems instead of just using them. Throughout the entire computer-using world, that’s an unimaginable amount of potential productivity, education, enlightenment, or entertainment time lost to frustrating and annoying endeavors. And it’s even worse if you’re using a Microsoft OS!

Cave painting showing deer, hunters, and a man at a computerHow can you tell we’re stuck in ruts? Just look at the vestigial anachronisms that abound in the design of computers. When Microsoft releases a new version of Windows and the most apparent difference is that the windows are shiny and partially transparent, you know we’re not even attempting to seriously innovate beyond the WIMP GUI developed by Xerox in 1973. This sort of “upgrade” is like putting lipstick on a cow. Sure, the end product is superficially better, but the starting point wasn’t all that great to begin with.

Scientists and engineers have done hundreds of studies and spent millions of hours working on improving computer usability, but very little has actually been done. If we’re going to truly move into the next age of computer development, we have to be willing to take a giant leap in how we design our computers, including operating systems and software, from the ground up. This is what I want to explore.

Why does the PC need to be reimagined?

While computers have addressed many of our daily needs and have simplified many tasks, I believe they do so despite their design, not because of it. People are constantly fighting their computers, and that detracts from the potential of a computer as a tool to enhance life. Computers fall short in three major areas: stability, usability, and simplicity.

Stability: Computers are notoriously temperamental. The instant a single part fails, the rest of the system becomes frustrating and unpredictable at best, unusable at worst. Software usability only matters if the underlying platform can be trusted to be stable. My proposed redesign should correct this behavior, so that when something fails, the system smoothly and efficiently corrects for it, and gets it taken care of quickly.

Usability: Computers work in a way orthogonal to human brains–they’re excellent at the precise, mundane tasks that humans find difficult, like arithmetic and remembering data. Humans, on the other hand, are good at finding general patterns, making guesses and predictions based on observations, and generally being imprecise. Unfortunately, many of the ways computers are designed don’t take this fully into account, and still require humans to worry about precision, whether it’s accurately remembering a long file path or URL or aiming a pointer at a 16-by-16 pixel square to close a window. My proposed changes should allow humans and computers to each focus on what they excel at.

Simplicity: Computers are designed to be a tool, and the main purpose of any good tool is to simplify a task. Unfortunately, due to the way computers are created, the task is constantly redefined by competing groups with their own financial interests in mind. For instance, my laptop has 11 different types of ports in it, each designed to take a different plug. Computers (and this includes peripherals) need to simplify, so that when I want to plug something in, I don’t have to know the acronym used to describe the plug type and hunt through the myriad holes in the sides of my computer to find the right one.

What are my goals here?

I don’t think for a moment that my ideas and recommendations written here are going to, by themselves, jumpstart a revolution in computer usability design. I do hope, however, that by laying out my thoughts on all of these issues as clearly as possible and exploring the various problems and solutions, that I can start a discussion that might, at some point, lead to people making changes for the better. My goal is simply to highlight the problems that we all face (perhaps even unknowingly) but consider “just how computers work,” make it clear why these problems shouldn’t exist and can be fixed, and provide outlines for potential solutions.

I’m not an expert in computer hardware design by any means. My degree is in computer science, not engineering, and what I know I only know because I’ve spent two decades using, building, maintaining, and reading and thinking about computers. I’m open to hearing suggestions and corrections here as I write more on this topic; if you have any particularly good insights, I’ll gladly consider them and try to work them into my thoughts, so please, feel free to speak your mind. And just to make things clear: by “usability design,” I’m talking about the ways the design of the computer affects the way we use it.

In my next post, I’ll vivisect the beast and take at look at its innards, to see what could be designed a little more intelligently.

Sunday Apr 15 2007

Tune in tomorrow…

The reason I haven’t been posting for the past two weeks is that I’ve been working on a five-part series of posts about computer usability, just trying to collect all my thoughts in all areas of this topic and get them written down and perhaps start a discussion or two. The posts are almost complete, and starting tomorrow, I’ll be posting them one per day for the whole week. They’re fairly technical in nature but I think the ideas I’ve presented will be understandable to anyone conversant in computer usage, not just people interested in usability and design. If you’re at all interested, I think these will make for good reading.

So tune in tomorrow for part one of my series “Reimagining the PC.” I hope you enjoy it!

Thursday Mar 29 2007

Hope Squashed

I got a response on my story submission today: the editor liked it, but wasn’t seriously wowed, so he’s passing on it. At least I gave it a shot — and since sending it out, I’ve been looking at more potential markets for it (it’s a flash horror piece) and I’ve learned quite a bit about how it probably falls short, so I have some good ideas for rewriting it before I send it out again. Plus, hey, I’ve gotta get some rejections under my belt if I want to be considered a real writer!

I was fully prepared for a rejection, so I’m not upset about it. I learned from this, and I think it’ll make me a better writer in the end. Now, on to the next story!

Tuesday Mar 27 2007

A Glimmer of Hope

I haven’t said much here about how I’ve been seriously working on my fiction writing these days. I’ve put together a few stories over the past month and a half since attending Boskone in mid-February, and I’ve even sent one of them out as a submission to a paying market two weeks ago. This is the first time I’ve tried this since I was 16 and I wrote up a 3000-word piece of amateurish hackery and sent it to Asimov’s and Analog. I kept those rejection letters and still have them, somewhere, I think. But that was a long time ago, when I was young and could barely craft a coherent story, much less one that might be considered by either of those august publications.

When I sent the current story, I had no idea of the editor’s normal turnaround time, so I wasn’t getting my hopes up — many places take six to eight weeks or even more before they get around to reading your story. Today, the editor posted to his blog saying that when he rejects stories, he usually does so within five days of receipt, and anything that’s not immediately rejected like that is currently in his “Read Again” pile. So since I sent my story two weeks ago, I guess that means it’s at least made it beyond the immediate-rejection phase of the editing process. While I would be seriously surprised (stunned, shocked, bowled over, etc.) if my first story submission was accepted by the first market I sent it to, at least I have a glimmer of hope.

If I try, maybe I can get a second submission sent out before I get word on this one. I don’t yet have a big pile of polished stories to keep sending out like some writers do, but you’ve gotta start somewhere, right? And it’s really nice to know that, even if it doesn’t get accepted, my writing is at least worth a second look. I’m keeping my fingers crossed (which makes it hard to type).

Thursday Mar 22 2007

McLawsuit

You may have heard that McDonald’s is planning on suing Webster’s to make them take “McJob” out of the dictionary. The thing McDonald’s apparently doesn’t realize is that dictionaries don’t make these things up themselves, they just record how people use the language. The fact that “McJob” has entered the dictionary just means it’s in common enough usage that it’s a widely accepted and recognized term. When someone says it, people know they’re talking about a crappy job. Suing Webster’s won’t change that or make it go away.

I just hope this whole deal spawns a new term: McLawsuit, to mean any stupid and misguided trademark lawsuit destined to fail.

Wednesday Mar 14 2007

Sterling Rants

I get the feeling that Bruce Sterling is just trying to be ornery because it’s fun to be a contrarian. If you maintain the status quo, no-one talks about it. Discussions don’t go on for long when everyone agrees with each other. When Sterling tells bloggers they’re a passing fad, or says that mashups are a novelty art form that will fade away, it really gets peoples’ blood pumping — notice how I’m blogging it, like the good little sheep I am.

I don’t think blogs will be gone in ten years. People have always kept diaries and daily journals, and blogs are just those things with feedback. People, being generally social, love feedback and want to communicate, and blogs, as a means of communication, are great. You can talk to a whole crowd at once with each post, and it’s quick and easy to keep on top of if you want to do it.

And mashups — sure, a lot of them are just people playing with music, which is okay by me, but probably won’t lead to any great classics. But sometimes you find something like The Kleptones, who take loads of already-great songs and turn them into something much more than the sum of their parts, and you realize that this isn’t just “novelty music.” (If you haven’t listened to the Kleptones’ album “A Night at the Hip-Hopera”, go grab it now. It’s sheer genius.)

And as for the “commons-based peer production” economic model? Sterling may not think much of it, but to me it seems like a successful, if limited, form of socialism. We choose what we like and what is popular by clicking, visiting, and posting about it. The best stuff rises to the top of the popularity heap, and often reaps rewards based on that popularity. It’s a mini-reputocracy, and while the repute may only be among a certain small subset of the population, it can still cause changes in the way the rest of the world works.

Sunday Mar 11 2007

Bitten by the DST Bug

So I actually encountered a Daylight Savings Time-related bug today that kept me from being able to do what I wanted to do. It was on an online payment system — when I clicked the “make payment” link, the system consistently told me my session had timed out, despite the fact that I had only been logged in for a few seconds. I didn’t realized until later that the payment system probably hadn’t had its clock set ahead, so when I tried to connect, my session appeared to have been active for an hour, which was beyond their expiration time.

It’s a little bit exciting. It’s sort of like experiencing what the Y2K bug might have been like a tiny bit. Sort of.

Thursday Mar 08 2007

Trengedy

I have come up with a neologism.

trengedy, n.

What occurs when the mainstream media seizes on a particular type of tragedy that’s not actually very common, seeks out every instance of it, and reports on them all, making people think it’s much more common than it really is.

Example: “The rash of reports in Summer 2001 about shark attacks was a particularly heinous trengedy.”

Googling this term gives one hit, which appears to be a typo on a foreign language blog. Hence I think I can safely claim I’ve invented it. Now, go forth and use it! Maybe this can be my eventual claim to fame.

Wednesday Mar 07 2007

Tag, you’re it!

Tagging is all the rage. Every site worth its salt these days allows you to tag stuff. Whether it’s your blog, your bookmarks, your books, your music, or your friends, you can add tags to them, usually with just a few clicks and keypresses. What a fantastic way to organize collections and make finding stuff easier! And yet I still see people totally missing the point and using tags incorrectly. I’m an obsessive organizer at heart, and an infovore (voracious consumer of information), so watching people fail to classify information in a useful way makes me cry a little.

What is tagging?

Tagging is classifying things by adding simple, descriptive words or short phrases to them. Ideally, the tags you add encapsulate the key ideas and attributes of something. For example: if I were to tag my pants, I would add “jeans” to all the jeans, “shorts” to the shorts, and “cargo” to the cargoes — some of them would have combinations, like “jeans” and “shorts” — and then I might add colors, like “blue” or “black” or “khaki”. Then when I want to put pants on (which rarely happens, but bear with me) I would tell my robot butler “Show me the pants tagged ’shorts’ and ‘khaki’,” and the robot butler would pull out the pants that match those tags, and I would be able to choose from that selection, instead of having to look through all of my pants at once.

Figure 1: Pants
Figure 1: Pants with appropriate tags

How do I decide if a particular tag is appropriate?

Here is a simple guide to deciding if a tag is appropriate. Place the tag into the blank in each of the following sentences. If it makes sense in any of them, it is appropriate.

  • “This item is a/an ________.”
  • “This item is ________.”
  • “This item has to do with ________.”

For instance, I am looking at an alarm clock. I am considering tagging it with the term “bonobos”. Let me see…

  • “This item is a/an bonobos.” FALSE: IT IS AN ALARM CLOCK
  • “This item is bonobos.” ALSO FALSE: IT IS NOT BONOBOS
  • “This item has to do with bonobos.” FALSE AGAIN: BONOBOS ARE AFRAID OF ALARM CLOCKS

Hence, I can be fairly certain that my alarm clock should not be tagged “bonobos”. Let’s try again, this time with the term “waking”.

  • “This item is a/an waking.” WHAT
  • “This item is waking.” NO
  • “This item has to do with waking.” DING DING DING WE HAVE A WINNER

How do I use tags on this particular website I am looking at?

I don’t know, because chances are I have not used that particular website, since there are currently umpty-bajillion websites that support tagging. But, smart person you are, I bet you can figure it out if you look around a little. Does the website have a “help” or “FAQ” link? That might tell you. Or maybe near the “tags” area is a little question mark you can click on to learn about their tagging function.

That said, here are some things to pay attention to:

  • When you type in tags, do you use spaces to separate them (like “cargo shorts khaki”) or commas (like “cargo, shorts, khaki”)?
  • If you want to use a multi-word tag, do you surround it with quotes like “hulk smash”) or do you use underscores (like hulk_smash)?

Exercises

1. So there’s this guy, right? Let’s call him Bob. He reads a story on a website. The story is about robots and flying turtles and the end of the world. It’s a really great story, so he adds it to his bookmarks on a particular social bookmark website. The website says “For multi-word tags, use underscores between the words. Separate multiple tags with spaces.”

Which set of tags should Bob type?

  1. robots flying turtles apocalypse
  2. robots, flying turtles, apocalypse
  3. robots flying_turtles apocalypse
  4. bear hunny christopher_robin

The answer is 3.

2. On the system above, Bob wants to tag something so that his friend Alice knows it’s something she would be interested in. He types the tag for alice. What’s wrong with this?

Answer: Since the system separates tags with spaces, typing for alice will result in two tags, “for” and “alice”. What the heck does the tag “for” mean? It means nothing! You can tell because the three-sentence test for the tag “for” gives us three nonsense sentences. Bob should have typed for_alice.

3. Bob has read a news story about global climate change and Al Gore. He has saved it and tagged it “godzilla atlatl phonetic_spelling”. What should we do?

Answer: Either of the two answers below is appropriate.

  • Politely email Bob explaining that his tagging is fallacious and giving him the URL of this post.
  • Punch Bob in the face.
Saturday Mar 03 2007

More Google OS rumors

I know I’ve been focusing a lot on the future of Google these days, but it’s definitely a very interesting thing to think about. Here is an intriguing collection of thoughts about a potential direction for Google OS based on observed facts and rumors.

It’s neat to see Google working on this stuff, and speculate about how they’re planning to tie it all together into one big, happy network OS. But unless they concurrently work on strengthening the last stinkin’ mile so that customers don’t have connectivity issues that render their computers useless, I doubt they’ll manage to get many total converts.