Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?

Interface Zen 482

Tom Christiansen , perl god, writer, and the guy that once kicked me out of #Perl for asking a question about sockets has written us another excellent feature. This one talks about modern keyboards, and the problem with them. It's an entertaining piece with gratuitous Who references so it's all good by me.

The following was written by Slashdot Reader and Perl God Tom Christiansen .

He stands like a statue, becomes part of the machine
Feeling all the bumpers, always playing clean
Plays by intuition, the digit counters fall
That deaf, dumb and blind kid sure plays a mean pinball.
from Pinball Wizard, sung by Elton John in Who's "Tommy"
When was the last time you really zenned out on a pinball machine? You know what I'm talking about: that transcendent state of consciousness in which you're no longer carefully calculating what to do and when to do it. You're completely oblivious of anything in the universe except for the ricochets of that silver ball. You're so totally in the groove that those extra balls and replays just keep racking up. Spectators and would-be players come and go, but their presence barely registers in your mind. Hours later, when it's all over and you finally step away from the machine, you find that words come haltingly; you've gone a bit nonverbal. Drifting off to sleep that night, instead of getting darker when you close your eyes, the world gets brighter as hypnagogic flashes from today's games explode in your mind's eye like comets dancing with lightning.

It's a pretty neat feeling, isn't it? You were in an altered mental state--a high, if you would. And like any other high, pinball zen is a bit addicting. Not only will this high leave you a lot less poor than plenty of others would, the only physical side-effects are apt to be some sore pects the next day.

This pleasant state of mind is hardly limited to pinball. You can become one with your skis and the powder you're flying over. You can become one with your musical instrument of choice. And, if you're a hacker, you can become one with your computer.

I'm not talking about sitting for hours on end, clicking from one web page to the next as trivia trickles passively in. I'm talking about actually creating or seriously manipulating something, not just impersonating the couch potatoes down the hall in the TV room. You're in the groove; you've got all the right moves down so pat you don't even think about doing them. The world again fades away. There is the computer. There is you. There is nothing else. And this is good.

This blissful state of being one with your computer doesn't actually have much to do with your computer. Paradoxically, the computer just gets in the way, a constant reminder of irrelevant physical constraints and realities. As long as your brain needs to spend time thinking about hardware, like the keyboard or the mouse or a flickering monitor or a whining disk drive, you will be forever denied access to the altered states. That's because it's not the computer itself you're trying to become one with. It's the software world that you're trying to enter. Only when the physical world recedes from conscious awareness can enlightenment become possible.

When you're learning a new piece of music, bringing it up to performance tempo and committing it to memory, a funny thing happens. After enough practice, it feels as though your fingers themselves remember how to play the piece. You don't even watch them. They've a job to do, and once they've it, can go about that job remarkably free of direct supervision. The key to clearing the mind of the outside world so that the program becomes the dominant reality is what a musician would call "finger memory". (You might have heard athletes or dancers refer to it as muscle memory, but when we're talking about using the computer, it really is the fingers that count.)

Of course, that's not really what's going on; it only seems to be. Your fingers don't really remember. But a part of your brain that controls them does, even though "you" don't realize it. What's happened is that you've so successfully assimilated the moves needed that conscious direction is no longer required. The little lighthouse keeper behind your forehead can worry about other things, assured that your fingers will do the job you've trained them to do. Your eyes are on the screen, the program in your head, and your head is in the program. Your fingers become an unnoticed extension of your will. They're are no more a conscious concern when typing commands than are your feet when you decide to walk across the room. That's probably just as well, because if you ever thought too much about how walking is really just perpetual falling and nick-of-time rescue, you'd probably stop being able to do it as well as you can now.

It's a shame, but many people never achieve the same zenning out with a program that they may with a pinball game or a musical instrument. Still, it can and does happen, and although it's something of an uncanny thing to witness someone else doing, it's a beautiful one to experience personally. In this satori-like state of experiencing knowledge without thought, the program's commands have become so deeply etched into your wetware that low-level tasks no longer require conscious direction. Your fingers seem to remember to do on their own. Now on automatic pilot, they dance across the keyboard as quickly and as accurately as any performing pianist's fingers move, and just as automatically.

This isn't to say that the keyboard is the sole path to blindingly efficient computer use. Far from it! To be honest, the keyboard is sometimes the worst possible choice. It's entirely dependent on the task. For example, if you're playing xbill, the hacker's favorite video game, you certainly don't want to try use the keyboard instead of the mouse. It's just going to slow you down. But neither does that mean that the mouse is always the best choice for all interactions.

Here's another example. I once tried using xmame to play millipede. Using the keyboard for movement was excruciatingly painful, but the mouse wasn't all that much better. I realized that I would never become one with the millipede using either access device. But just a few feet away stood a real millipede game (yes, I actually do own one). I have no problem becoming one with that version, even though as far as the software goes, it's the same as what xmame is running. Why? Because the real game has a trackball, that's why! No longer tied to a clunky input device, I could sail along so fast that the non-rational part of my brain could take over, and like Tommy, play by intuition alone. After the first 200,000 points, you get to play with eight darting spiders simultaneously. Try it sometime. It's a real trip.

There's no question that certain tasks, the keyboard is clearly the optimally efficient input device. Consider the game of rogue or one of its more recent incarnations. You wouldn't want to use anything but a keyboard there. The command set is just too rich. Trying to play the game with a mouse and menu interface instead of a keyboard one would slow you down by at least two orders of magnitude. It would be as bad as trying to play millipede with a keyboard, if not worse. As someone who at times spent most of his non-hacking waking hours at university playing rogue, srogue, larn, moria, and nethack, you'll just have to take my word on this. I certainly became one with the game. My fingers flew across the keys; my eyes never left the screen. I never had to think about how to do what I wanted to do, because no sooner did the desire enter my head than my finger memory took care of it.

When I wasn't playing rogue at university, I was hacking on code, for which I used a popular rogue-variant called vi. Yes, I know you probably think of vi as an editor, but I've always found people more receptive when I explain that it's actually a video game that gets a job done, too. In any event, the command set and design philosophy of the two programs overlap well enough to permit cross-competence between them. And as with rogue, I could zen out on vi. I was tremendously lucky I could, too, because most of the classes in my compsci program required more than 10,000 lines of code for each course. Now, try taking two or three of those classes in one term. You had to have a powerful and super-efficient editor, and you had to let the mechanics of the editor fade into the background, or else you just didn't survive. By zenning out, you ascended to a higher plane of productivity and did things that you normally couldn't do.

It sometimes seems that as time marches on, fewer and fewer people will get the chance to experience the sublime joy of becoming one with their computer. It's as though hardware and software manufacturers were all conspiring to render this good, clean high an unattainable one. It's not illegal, at least as far as I know, but for most people, it might as well be. In pursuit of the dubious goal of producing idiot-proof, zero-learning-curve programs, even programs intended for long-term, heavy-duty use such as an editor--arguably the most important piece of software you'll use--have been turned into children's toys, effectively expert-proofed. In mindless and unexamined pursuit of false efficency, the programs' authors have sacrificed all the design attributes that let our fingers go about their proper business, got our faces up out of the mundane mechanics, and let our minds transcend the hardware and get into the program. They installed, if not outright roadblocks, then velocity regulators and gratuitous speedbumps.

How did this ever happen? Let's start with why the current crop of keyboards are suboptimal in the extreme. There's a general rule (Fitts's Law) that says that the farther away something is, the larger it needs to be for equally swift access. This is true even if you are looking at the keys (but don't do that--see below), and fatal if you aren't. Distant keys like SHIFT, ENTER, TAB, CONTROL, and the spacebar used to be larger, but they keep getting smaller as more and more vanity keys get added to your main keyboard. Look at an old Sun keyboard. Notice how SHIFT is bigger than CONTROL, and CONTROL is bigger than TAB. This size corresponds to how much relative use you make of those keys. Oh, and the CONTROL key is both large and conveniently located on a Sun keyboard. What a joy.

Now go look on the cretinous keyboard that came with some poor sot's Wintel box. The spacebar, the most important key on the whole keyboard, is but a shrivelled and shrunken vestige of its former self. The ESCAPE key has been moved to the penalty zone, the CONTROL key is both distant and small (that's two strikes), and there's a CAPSLOCK key that's just as big as the TAB key. Hello? What are these people thinking? That I want to hit CAPSLOCK as often as I do tab, and that I don't care about CONTROL or ESCAPE? This is all nuts. The proper place for a CAPSLOCK key is in a different hemisphere from you. If we ever manage find out who invented that abomination, we're all going to show up for the lynching party, but we'll have to wait our turn in a line of programmeers stretching all the way from Boston to Mountain View.

If it were only the outlandishly rococo keyboards they were shoving at us, we hackers might still have a chance to become one with our computers. After all, we could always get a real keyboard instead, one with a decent layout and sans penalty zone.

But really, this is but the least of our many problems. First of all, there's no end of brain-damnged programs these days which both expect and require you to constantly enter and exit the penalty zone. This destroys your concentration, because you can no longer get there and back again while still looking at the screen. You incur a context-switch penalty that feels like a speedbump in your typing. It slows down your hands, and it interrupts your eyes. Once that happens, your concentration takes a severe blow as you're forced to deal with mechanics, once which you cannot internalize or omit.

The next gross inconvenience is requiring chorded key combinations. Any time you have to hold two or more keys down at the same time, this becomes more difficult to finagle. Compare how difficult it is to type a CONTROL-G chorded combination with a simple, unshifted `g'. If you ever need to hit a chord with more than two keys, such as CONTROL-ALT-SHIFT-F11, you're in serious, serious trouble. This kind of thing is especially arduous on keyboards lacking duplicated left and right versions of the modifer keys. There's a very good reason we have two SHIFT keys. We should have two control keys as well, and these should be easily accessible without looking. It's a lot easier on the hand to use the right-hand SHIFT key with a letter like `e' or `g'. Why should it be any different with CONTROL, ALT, or the vanity keys?

If you're striving for efficiency, it's best to stay away from chords entirely. If you look at the way popular video games like rogue and vi work, their command structure consist mainly of single, non-chorded keystrokes, or sequences of single keystrokes. That's why those games are inherently easier on the typist than games like emacs are, where all your most valuable real estate has been thrown away, and every command is now a chord. Chorded commands are harder to type because you have to hold down the SHIFT or CONTROL key, but in a program designed for efficient use, these are relegated to rarer activities, so the impact is minimized. The easy stuff is easy, and you never have to slow down, or even look down.

Consider how much easier it is to type a `/' to start a search than it is to start a search instead of a ALT-S, or horrors, pulling down a menu. There's no reason that a slash can't mean a search in context where it makes sense. This wouldn't mean that if you were typing in a path name in some text box that a search window would pop up. You simply make it context sensitive. Humans, you know, are really very good at context. Check out this sentence: "Can you please can the can-can while I'm in the can, man?" No problem. You see, our brains don't work off of a context-free grammar, and there's no reason that commands, keystroke or otherwise, should. In fact, because our brains do not work off of a context-free grammar, making our command set context free would be running against our inner natures. It's just not how we think.

Besides the useless vanity keys stealing invaluable real estate from the main keyboard, we are saddled with an ever-growing number of extra keys in the penalty zone, such as function keys, INSERT and its friends, arrow keys, and relics out of the shrouded mists of antiquity such as SysRQ and Scroll Lock. I'm sure there will be more in a year or two.

Can you imagine how painful it would be if you were typing in some code or a letter, and every time you wanted to go to the next line, you had to use ENTER key way over on the numeric keypad? That would be nuts, wouldn't it? So can anyone tell me why programs expect you to switch back and forth between the real keyboard and the penalty zone? Apparently nobody ever told them that the closer something is, the easier it is. According to Fitt's Law, something right underneath you is infinitely large, and, consequently, the most readily accessible. Proximity combined with non-chorded keystroke commands is why the rogue-style movement ("hjkl") is easier on the hand than emacs-style movement (CONTROL-B, CONTROL-N, CONTROL-P, CONTROL-F), and both of these are easier by far than using arrow keys over there in the penalty zone.

The much vaunted arrow keys, ostensibly easier to use for cursor motion, are in fact tremendously harder to use. First of all, if you're mixing commands over in the penalty zone with other commands which are on the keyboard, you're never going to achieve keyboard satori. You've got too much back-and-forth going on to find your grove. Your eyes act as a bridge linking two virtual worlds, one inside your head and the other inside your computer's memory. With arrow movements, they have to desert their post as vicar and go slumming in the real world for a while to play tour guide long enough to get you there and back again.

The second reason the arrow keys are inherently evil is that they are set in an arrangement designed by a masochist, probably the same nimrod who stuck us with the CAPSLOCK key. Even if all you were doing was keeping one hand poised above the arrow keys and never switching keyboard domains, you still would be slowed unacceptably. That's because the up arrow and the down arrow are directly aligned vertically. Your hand despises this, which is why the rest of the main keyboard has no such configuration on it anywhere. To see what I mean, try using the `j' and `k' keys in rapid succession, back and forth as though you were executing a trill. It's quite easy to go up three, down one, up two, etc. But now try playing your trill on the up and down arrows. Whoops! You have to turn your hand completely sideways, or use the same finger to do both jobs. Either way you play it, you lose.

Does the visible label on the arrow keys truly offset the gross inefficiencies of being placed in the penalty zone and being stacked vertically? After all, the argument runs, someone who doesn't know the key command to move around can just use those. In the shallow and ephemeral world of zero-learning-curve and one-shot programs, this might have a scant of iota of reason behind it. But really, for just how long do you expect your users to remain ignorant? Once they learn what the motion key is, they're not going to forget it from one moment to the next. If you assume that users cannot or will not learn, you thereby guarantee this very outcome. That hardly seems either fair or productive.

The third reason that arrow keys are inherently evil is that they support navigation based characters alone. You'll never move on to higher abstractions, like words, sentences, or paragraphs, or in the programming world, to tokens, expressions, statements, blocks, or functions. By relying upon arrow use alone for movement and discouraging other kinds of information chunking, you lock your poor users into a tedious monotony and forever bar them from making the jump to light speed.

In any program designed for heavy use, the penalty zone should be not merely strenuously avoided, but completely banned. The keys there interfere with your prospects of ever becoming one with the computer. But isn't the numeric keypad in the penalty zone, and isn't it great for accountants? Don't they become one with their keypad? Well, sure they do. That's because they're staying in the same area. If all you're doing is entering numbers, then it's actually a good bit quicker to use the numeric keypad, because it fits under the hand better. The keypad also optimized for numeric data entry: see how much larger the `0' key is there, and the `+' key? If you don't know why, watch a bean counter entering numbers on it some time. Now go to your keyboard manufactures and demand the return of the your CONTROL key to it proper place and the restoration your wimpy spacebar to its proper size.

Don't expect to switch between numeric keypad and the main keyboard with anything resembling speed or accuracy. Unlike a normal clavier, where you can feel where you are in the scale because of the alternating two-three sets of raised keys, on a computer keyboard, no such sign posts exit. That means that while, the musical keyboardist can often make tremendous leaps in complete confidence without bothering to engage his eyes, the computer keyboardist cannot. Sure, you've probably got little nibs on your `F' and `J' keys, and on the `5' over on the numeric keypad, and it's a good thing that they're there, but really, they don't help that much compared with a real keyboard's cues.

The lesson is that if you're going to change domains so radically that your hand has to move somewhere else, you absolutely need to stay right where you are for a good while in order to amortize the extreme cost of movement. Otherwise the context-switch latency issues will just kill you. And this is where the true root of all keyboard evil rears its ugly head: the mouse.

The mouse is the single greatest obstacle standing in the way of becoming one with your keyboard and the dramatically higher productivity levels which that state promises. That's because, of course, it has nothing to do with your keyboard. Compared with the mouse, even a high density of chorded commands in quick succession becomes fast and easy. Chorded they may be, but at least they're still on the keyboard. The mouse might as well be in Timbuktu for how convenient it is to get your hand over to it and then safely home again.

Unlike the arrow keys, that doesn't mean the mouse is inherently wicked for all things. (Well, unless you're an RSI victim, that is, or if you'd prefer not to become one. Mice, you see, destroy your wrists, and much more quickly than keyboards.) The mouse is only evil when you have to repeatedly switch between mouse and keyboard. That's because it knocks you out of the groove just as badly as an CONTROL-ALT-SHIFT-F11 chord would. (I call that one a demented eleventh.)

Let's go back to that wonderful, angst-purging video game, xbill. You think of yourself as a Jedi sharpshooter, the last, lone defender against that creeping darkness which seeks to pollute and assimilate the free world into its hive mind. Reflexes are everything. You must walk the path of knowledge without thought, of action without contemplation. Anything less than complete dedication to your sacred duty will see another sun lost to the Evil Empire. In the back of your mind, you know that if you set down your laser rifle, you could program up a smart bomb to encase the Bills in a treacle and slow them down for a file. This you would do by taking your hand off the mouse, moving over to the keyboard, and typing the mystic words, "Department of Justice Anti-Monopoly Litigation". But in the time it would take to do that, untold numbers of worlds would be lost, assimilated into the collective. So the smart bomb of slowness remains untriggered. The price is too great to justify putting down your laser rifle.

So you see, there's certainly a place for a mouse. And contrary to popular mythology, that place is not simply any system that provides the user with something more sophisticated than a 24-by-80 character display. Mouse doesn't mean GUI, you know (nor, for that matter does GUI mean mice and menus). And a keyboard doesn't mean a CLI. A keyboard means efficient input of diverse commands covering a vast domain. A mouse means efficient selection of points and areas. Even if we temporarily tolerate the mistaken notion that CLI=text and GUI=pixels, a keyboard should not be limited to the world of command-lines and pipes, nor should a mouse limited to the world of pixels and pop-up menus. Those are not the effective criteria for the most effective use of those two input devices.

If you don't believe me, just think for a minute about gpm, the mouse package for virtual consoles on Linux operating systems. It sure is a nice program to have around, isn't it? You don't have individual pixels, but you still appreciate having a mouse for certain tasks. Now think about your favorite pixel-addressable program, like xv or eterm. They have keyboard-accessible keystroke commands as alternatives to tedious mouse hunting. Aren't you glad those are there, too?

I'll say it again for the logic-impaired: keyboards aren't just for CLIs, and mice aren't just for GUIs. There's no good reason whatsoever that even in what's commonly referred to as the GUI world, that you should eschew the keyboard. For many problem domains (xbill and its ilk notably excepted), the keyboard remains the fastest, most efficient, and most powerful input device available, and it would be the height of folly to avoid it.

Have you ever tried to play a piano using a stick that's clenched tightly between your teeth? Oh, you can do it, sort of--if you call that playing. The percentage of your brain devoted to the hand, and in particular, the support structures for the fingers, is incredibly huge compared to the amount devote to nearly any other physical activity. By avoiding the full potential of Man's wondrous capacity for prestidigitation (in the literal sense), you cut him off from one of his greatest assets, one near and dear to his neural biology--he was made for.

There's just no way you'll ever zen out on a keyboard when all you've got is a one-bit stick stuck in your mouth and your hands are tied effectively behind your back. Perhaps you prefer it this way, but you should understand the consequences of that choice. You'll never reach the point where your fingers know what to do on autopilot. You'll never get your face completely up off your desk. And you'll never savor the pleasures of having your mind firmly ensconced in the virtual reality of the program you are manipulating. The higher levels of mastery will be forever forbidden to you, and you shall dwell in the House of Clumsiness and Inefficiency all the days of your life.

Software engineers need to pay attention to both the keyboard and the mouse, irrespective of whether the program is running in a terminal or in a full-display environment. They should maximize locality of operations to faciliate eyes-free operation of the program. Above all, careful attention must be given to programs destined for heavy use so that they offer an upward path for users so that experts are not hampered by zero-learning-curve demands from non-users. Don't require infelicitous input combinations that would hamper finger memory in accomplished speed demons. Only when the speed limits are removed can a programmer hope to reach that transcendent state of zenning out.

This discussion has been archived. No new comments can be posted.

Interface Zen

Comments Filter:
  • No fair padding your homework by repeating the same text over and over.

    I count 10 occurrences of the paragraph that begins "How did this ever happen?". Methinks an editing goof has occurred.

    -- Brian
  • by Signal 11 ( 7608 ) on Tuesday November 30, 1999 @05:41AM (#1493693)
    He moves mythodically though the hallways, bouncing grenades off the walls an onto the hapless souls that dared to fire a rocket at him. He deftly completes a rocket jump, does a 180 spin, and unloads a rail slug into the LPB below, sending a fine red spray across the divide below. Grabbing the Quad, he procedes down the hallway - The familiar BFG10K whine is heard. Instinctively he switches to his railgun and peels off the imputent wrench before the payload can be unleashed. Showering the open cavern with rockets, he angles for the flag, grappling for the dark ceiling. Just before a pair of rockets hit him, the grapple catches hold, whisking him to safety. The flag now glows an deep red, taunting him: "You'll never get me!" it cries. Determined, he fires his last rocket at the flag defender, and the tell-tale sound of a quad-damage about to run out echos through the cavern. "Now's your chance!" He grapples for the flag, and in a crescendo of chaingun and rocket launchers firing in tandum, he grabs the flag, and pogo-sticks backwards, grabbing the med pack, and saving his curvy ass.

    Several hours later, the geek quietly logs out and stands up. It is now 11:30 at night, and he has work tomorrow. It is dark... the only illumination coming from the LEDs of his four computers and 19" inch monitor. He steps back, crashing into a tower of spent mountain dew containers. He thinks to himself "Ah, the real world... I was wondering where that went", and winces as he removes the remains of a microwave pizza from his foot and trots across the room. He sinks into his bed, pulls the covers up over his head, and dreams of his job - "How much I would like to have Quad Damage to deal with customers..." .. his last parting thought before he drifts off into a world of carnage and C code.

  • In english poetry and literature you can find something called a refrain. A literary device that is used to emphasize a point or a basic theme that is moving through the whole piece.
  • Two objections:

    The caps lock key is as important to AOL users as the little windows key is to all our 9x-using chums. Don't diss it.

    I don't care how small the space bar gets as long as I can hit it with my right thumb. My old five-year-old dell space key is quite dirty, except for a 1-cm length that I've tapped millions of times. I've a dirty thumb, though.

  • by lar3ry ( 10905 ) on Tuesday November 30, 1999 @05:43AM (#1493696)
    Despite the repeated sections (Rob... PLEASE fix this!), this is pretty informative. But I still have a few nits to pick.

    CAPSLOCK. Why? Well, some people don't touch type. Other people have physical deformities that makes hitting SHIFT plus another key difficult, and "accessibility" wasn't something that was thought about in previous generations of systems.

    CONTROL. Yes. It should be where PC keyboards put the CAPSLOCK key, but it isn't. Same with the ESCAPE key being sent to Siberia. Frustrates the heck out of us VI users (um... EMACS users use those keys too... no flame wars please).

    Those of us with X have xmodmap and xkeycaps and other utilities for redefining our keyboard layouts. I imagine that there are similar utilities for Macs and Windows... so there are people aware of the problem and who have some solutions.

    Using the right input device for the right job is crucial. Otherwise we will never be able to get the non-initiated to use them.

    People not "in the know" still wonder how a Palm Pilot can survive without a keyboard. The answer is really simple: the software is written such that using the stylus becomes second nature. Same as with the Millipede example... the software was written for a specific input device.

    Maybe neurocomputing will allow people to get information into a computer faster than is currently possible (I doubt so, but I'm willing to be proven wrong!), but that is not available right now. Keyboards have worked for a nice long time and will probably be ubiquitous for a time being.

    Remember that laptops were thought of as toys (with "chiclet keys!") originally until the TRS-80 Model 100 came out with a FULL SIZE KEYBOARD. We've progressed past that humble 8K RAM beginning, and now laptops are so common that even the people at the airport detectors barely look at them except to tell you to turn them on.
  • by NME ( 36282 ) on Tuesday November 30, 1999 @05:47AM (#1493697)
    To go along with this excellent essay:

    an old wired [] article by Brian Eno

  • I have made the journey to my garage, and have retreived my old keyboard. Goodbye, windows keys, goodbye cheap rubber mat keys. Hello, fast typing, and non-aching fingers.

    If you still have your old keyboard that you used with your XT, get it out of the garage and use it. These things are priceless. If you don't have one, it's time to check eGay and buy one. There are some suckers out there that don't know what treasure they have, and will gladly get rid of it for a few bucks.

    You can drive nails into cement with this thing, and it will still work. You can spill hot coffee and sweet sticky soda on it. It will work for years after that. Don't use the wimpy $5 keyboards. They will do major damage to your fingers.

    On this thing, it takes virtually no effort to press a key. Therefore, I type much faster.

    Yadda yadda yadda... I've become an old fart before becoming an adult.

  • by gnarphlager ( 62988 ) on Tuesday November 30, 1999 @05:48AM (#1493699) Homepage
    First: I'm sure there's something quite zen about reading the same paragraphs several times in a row ;-)

    Second: I've found Tetris a great gateway to programming satori. I play a game or two, and my mind is buzzing, and elevated beyond the actions of the game, or the computer. I then fire up an editor, and get to work, no longer distracted by the physical actions of interfacing with the computer. Perhaps in the future I'll have trained myself to enter that state without the game, but for now, it really helps me focus. Who says video games aren't productive!

    Third (and final, I swear): I don't have a problem with the "penalty zone". Perhaps it comes from growing up with pc keyboards instead of unix keyboards. I use the numeric keypad without missing a beat too. Or at least I don't THINK I miss a beat (as that I'm not too aware of typing). I agree the big caps lock and small ctrl keys are just damn stupid (but I do like the placement of ctrl . . . maybe switch tab down, and caps lock up where esc is?), but the great thing about humans is our ability to adapt and train ourselves. If you think of typing as just finger motions instead of hand motions, yeah, it's going to be awkward and slower.

    Carrying the music metaphor, it's like playing a guitar solo in one hand position as opposed to moving up and down the neck. It's easy to learn to play in one position, and you can be brilliant doing nothing but that. But once you learn to move hand positions without checking yourself, you'll be a much more versitile player.

    I'll shut up now.
  • For Macs it's very easy. Just use ResEdit to make a new keyboard map and select it from the Keyboards control panel. (you need the right file type code, but I don't know what it is. and since I'm sitting at something decidedly non-Mac right now, I can't check)
    "I was a fool to think I could dream as a normal man."
  • While he puts the smack down on apps that require frequent changes between the mouse and the keyboard, I've had a pretty good solution to that one for a while now. I broke my right hand (my mouse hand) about 3 years ago, forcing me to have it in a cast for 13 weeks cause of the stupid pins they had to put in it. Well, that forced me to learn to type one & mouse one handed. After I got my right hand back in working shape, I then had a very high one-handed typing speed, and can keep my hand on the mouse for mouse operations, with out having to switch at all. Normally this is for MMI development packages, but, also applies to some programing cases, and to some other things like AutoCAD.

    Someone else mentioned that they don't belive in that 'zoned feeling'. You may not be a programmer then, or at very minimum, you've never been one of those people who's initals are at the top of the score board at the arcades. In that environment, being 'in the zone' isn't just an option, it's almost the only way to be numero uno on 'em.

    I still get that feeling, however, setting and programing, and even more so, setting and playing something like Quake2 or Unreal Tournament. He makes a very good case about layout of the keyboard affecting the ability to get 'in the zone' - any first person shooter I play gets the keyboard portion of the mappings changed completely, so that I don't think about the keys anymore. I'm just at one with the game (and slaughtering people left and right.) Over all, keyboard isn't the greatest interface, but, the ability to remap applications to get that same 'effiency' I get in UT and Q2 would be awsome, and help capture that 'zoned' feeling much easier!
  • by DonkPunch ( 30957 ) on Tuesday November 30, 1999 @05:55AM (#1493711) Homepage Journal
    For some reason, I heard my grandmother's voice saying, "You don't know where that thumb has been." :)

    More On-Topic: There seems to be a fair amount of hatred for CapsLock. I use it quite a bit for #define constants and macros in C. Do Perl programmers not use ALL_CAPS for much?
  • The problem isn't limited to input devices. This article got me thinking about something I've been wondering about for awhile -- the recent tendency to use a 'standard' interface for various tasks, rather than a purpose-built, optimal interface.

    It seems like there are dozens of companies these days that want their interface design to be the One True Interface to All Things. The best example of this is Microsoft, which every couple of years makes noise about how toasters and refrigerators should be controlled with some variant of Windows. But MS isn't the only offender -- lots of Internet companies do this too, by forcing you to use an HTML front-end to their resources rather than designing software for the purpose.

    Don't get me wrong, I can see the reason for this approach -- once you've learned the One True Interface, you're set, you don't have to learn anything else. The problem is that trying to force all devices to share the same interface means that some of those devices are going to feel clunky -- or, worse, be downright unusable.

    Take, for example, the whole WinCE vs. PalmOS war. On its face, you'd think people would prefer WinCE devices, since they're already familiar with the Windows interface. But (based on my observations, not any hard research) it seems to me that people vastly prefer the Palm interface, which is optimized for handheld devices, rather than Windows, which really wants you to have a big, roomy display to work well. In other words, people are willing to learn a new, unfamiliar interface if doing so offers them substantive productivity benefits -- which would seem to give savvy product developers an incentive to follow Mr. Christiansen's advice to optimize the interface for the task.

    This trend is only going to get worse as computing intelligence is embedded in more and more consumer devices. The temptation will be very strong for those developing software for such embedded systems to leverage interface designs they already have, rather than create from scratch. With more and more of a car, for example, being run by software, it's not hard to imagine MS someday proposing that you run your AutoPC through a modified Windows interface, even though such an interface would be totally inappropriate for the task at hand. Let's hope that more product & software designers take note of the evidence that people prefer optimized interfaces and don't automatically rule them out.

    -- Jason A. Lefkowitz

  • Who said anything about special powers? Think of zen as the focusing of mental ability. Rather than spreading our capacity over a large range of tasks, our mind becomes focused on a single task (or set of tasks), allowing for a dramatic performance increase (i.e. the mental version of distributed processing).
  • I agree with a lot of what Tom is saying, though not with the arrow keys -- I have no problem moving my hand slightly to get to them, and I can move one word at a time with the Ctrl key.

    Of course the right editor is key. I can use vi, bt not fluently. I use nEdit, which I find extremely efficient and also easy.

    But all of this is minor. In the end most of typing in code would work fine in pico. The real critical path is the keyboard. Here at school they seem to buy a lot of Dells with the cheapest keybaord, Dell's horrendous "Quietkey". It's squishy, you can nver tell if you've hit a key.

    Sun's Type 5 keyboards are very nice -- good feel, intelligent key location. I use Suns for this reason when I'm not using my computer.

    But ah, on my computer, I have a big old IBM PS/2 keyboard. Super tactile click. Indestructible (still working perfectly since '87!). The key doesn't actually contact till exactly on the click, and the peripheral keys are nice and big. The Ctrl key is in the wrong place, but that can be remapped pretty quickly...

    I've seen IBM keyboards refurbished going for $50-80, and they're worth it. I'm just glad my highschool had a pile of them on really old machines, so we could just help ourselves when they finally junked 'em.
  • by Pyr ( 18277 ) on Tuesday November 30, 1999 @05:58AM (#1493716) Homepage
    early in the morning, listening to some heavy industrial, I start reading a slashdot article. I begin to slip into a transcendendal state.. and then I realize that I haven't suddenly jumped out of time.. I'm just reading the same few paragraphs over and over.

  • by kooma ( 92065 ) on Tuesday November 30, 1999 @05:59AM (#1493721)
    Just the other day I witnessed someone who used his mouse with his foot. He had both of his hands at the keyboard and (quite effectively) moved in the X-environment with his foot...

    He said it took approx. 2 weeks to master the Art, but it was worth it. The advantages were about the same as what was mentioned in the article as drawbacks with the mouse. The advantages were:

    One doesn't have to take eyes off the screen while mouse is required,

    One doesn't have to move the hand away from the keyboard when mouse is required,

    No one at the workplace wants to borrow his mouse.

    I ain't gonna try it (since I like to keep my feet in my shoes while at work), but at least some hardcore zen-wannabe could try this one for kicks. :)


  • "Sure, you've probably got little nibs on your `F' and `J' keys"

    Tom seems to diss those little nibs as largely insignificant...and in the realm of the types of movements he's talking about...they largely are...but I tell you...this is the single biggest thing that I hate about typical Mac's...they have the nibs on "d" and "k". I know it sounds insignificant, but I always end up typing like, "O ;Qua wms i[ ru[omf ;olw" (translation: "I always end up typing like")

  • by Ted V ( 67691 ) on Tuesday November 30, 1999 @06:00AM (#1493723) Homepage
    This article.
    This article is.
    This article is minimalist.
    This article is very minimalist
    The minimalist article is.
    The minimalist article is repetitive.
    The minimalist article is not repetitive.
    The minimalist article appears repetitive.
    The minimalist article topics appear repetitive
    The minimalist article topics repetitively appear.
    The minimalist article topics repetitively change.
    Topics repetitively change minimaly.
    Topics change minimaly.

    Now look at that text and compare it to Tom's article. He says the same thing over and over-- ALMOST. This is the zen of writing. At the end, he's brought up a totally different point than what he started with, except for one common theme. In my example, the theme is "minimal". In his article, the theme is "Zen".

    Here's a brief summary for those who don't want to read the article.

    Starting idea: Zen interfacing is good.
    Ending idea: Bad use of input devices stops Zen.

    Hope this helps.

  • Here is my /etc/X11/xinit/Xmodmap to get control instead of caps lock

    ! Swap Caps_Lock and Control_L
    clear Lock
    remove Control = Control_L
    !remove Lock = Caps_Lock
    keycode 0x1A = e E currency
    keycode 0x36 = c C cent
    keycode 66 = Control_L
    keycode 37 = Control_L
    keycode 115 = Caps_Lock
    add Lock = Caps_Lock
    add Control = Control_L
    keycode 0x40 = Alt_L Meta_L
    keycode 0x71 = Alt_R Meta_R

    Also, changing the keyboard map to emacs2 fits with this. The above changes the dreaded window$ key to caps lock... Far enough out of the hemisphere?

  • by klund ( 53347 ) on Tuesday November 30, 1999 @06:01AM (#1493727)
    I have Quickcam connected to a machine running Windows that updates a picture on my web site. Which sucks, because it's the only machine I own that doesn't recover gracefully from a reboot. For some reason, there is no way to put the little Quickcam applet into the Startup Folder so that it starts up in Autocapture mode. Everytime the machine reboots, I have to go up to the keyboard and type "Alt-F, down, down, return, return" to get it to start taking pictures. I have sent Connectix technical support a few emails about this, and here is the (rather curt) reply that I finally received:

    > Is there a way to put the quickpict applet in the startup folder
    > so that it starts up automatically in the autocapture mode?

    Unfortunately, not at the moment. Thanks.

    The menu in the Color QC applet claims that spacebar is the keyboard short cut for "start capturing", but that doesn't even work.

    You know, this touches on one of my pet peeves. Say what you want about graphical user interfaces making computers "easier to use", sometimes they make computers less useful. This is a perfect example. Here's a perfectly good program, that these guys spent time on, but they were so wrapped up writing a GUI for Windows that they forgot to make any command line options available. Give me a break! This autocapture function was written for a web server (obviously), yet it explicitly requires user intervention at startup. How smart is that? Shouldn't servers be able to reboot in the background without user intervention?

    A friend of mine works for a company that recently bought a specialized piece of scientific software for $50,000. It has a beautiful graphical user interface, but no batch mode. So if they had some 10,000 data files that they wanted to run through it (and they do), they'd have to paid somebody to sit there for a month clicking with the mouse. They're sending it back. Like I said, easier to use, but less useful.
  • Nobody said anything about mystical powers, it has more to do with focusing your whole being on the task at hand. The way tchrist describes it as being where thought and action are one is very good IMNSHO. I believe in it for the same reason I believe in gravity, because I've experienced it. I've experienced it on 4 different occasions, in three different circumstances.

    1. twice while programming
    2. once while just lying in the sunlight relaxing
    3. once while kneeing my friend in the groin - very long story (sorry ken)

    And while it was happening, I was indeed in 'another place', and it felt damn good. A place where motion, thought, & deed were all the same. Though of course after I was finished with #3 there were some problems to deal with :)
  • Excellent article, though it's a bit repetitive, though it's a bit repetitive, though it's a bit repetitive, though it's a bit repetitive.

    Personally, I don't think the keyboard matters as much as the working environment, and how well it and the programmer are attuned to each other. This is probably why people are so religiously bound to their choices of development tools, in particular their editors. People who can find that zone do so because they work well with their tools, because they know the tools well enough that the tools themselves fade into the background, and the code and programmer come to the fore. Having a bad keyboard will certainly get in the way of this experience, but having to use bad tools will get in the way more.

    For the programmer to be able to adapt to the tool can be as effective as the tool being able to adapt to the programmer. This is why people are able to reach the zone with editors like vi that aren't as programmable and as extensible as editors like emacs. That's not a judgment of either editor, just an observation that the highly touted customizibility of emacs doesn't necessarily help its users reach the zone, nor does the lack of a built-in programming language prevent vi users from reaching the zone. It simply means that the choice of editor as a matter of taste.

    It probably also means that programmers who use detestable IDEs such as Visual C++ can probably also reach the zone.

  • by DoomHaven ( 70347 ) <> on Tuesday November 30, 1999 @06:10AM (#1493744)
    If so, he should "refrain" from doing it, because I lost interest after the 3 iteration.
  • I'd have to argue that the arrow keys are useful, and not that awfully arranged. With chords like shift and control the arrow keys can easily be used to navigate tokens. I am ALWAYS using CTRL-ARROW to move around the tokens when I'm programming. Since programming languages are nicely broken up into words I can easily traverse a block, select a parameter list etc. With SHIFT-CTRL-ARROW it is easy to select multiple tokens.

    On the other hand when I use vi, I am ALWAYS traveling to ESC-land to reset the context. Most of the editing functions I do can be contained within one "context", so breaking them out so as to have overlapping contexts puts a burden on my by having to unnecessarily go out and find ESC to switch contexts. This context switching is awful and I can't really get in the "zone" in vi. Perhaps if ESC was closer and I actually took time to memorize all the meanings of all the keys in all the contexts I could do things faster.

    I use jEdit (, and find the conventional use of the arrow keys and SHIFT and CTRL chords very convenient and inuitive. I /can/ switch to and use the arrow keys without looking down. In fact it is /convenient/ that "up" is directly above the "down" arrow because I use my index finder on left, my ring finger on right, and my middle finger hovers between up and down. It is very easy to push either up or down with my middle finger. Sure it may not be easy to "trill" the up and down with one finger, but what chords do you know of that contain both the up and down arrow keys?
  • An argument by any other name...

    Personally, I believe the benefits of a one key search function are offset heavily by the penalty of having to hit the escape key before searching. The mode changes in vi are tricky to get used to, even for someone like me, who's been through ed, edlin, countless embedded IDE editors, vi, joe, jed, pico, emacs, and epsilon. Most of the time, you are either inserting or deleting text. Anything else takes extra keystrokes to change modes, or chorded keystrokes, regardless of which editor you use. BTW, Tom was complaining about being unable to do scanning by word with the exiled arrow keys: most sane editors (since wp4.0) have word scanning wired to control+arrow keys. Also, the "trill" of the jkjkjkjkjkj in vi is mostly wasted effort, imho. Why on earth would you need to keep going back and forth between two lines, without doing anything to them? If you feel the need for useless exercise, trill the left and right arrows.

    VI bigotry aside, I believe there were several valid points about the non-ergonomic design of modern keyboards.

    One's editor of choice is largely a matter of what makes sense to your fingers. I've personally settled on xemacs, and am quite capable of programming "in the zone" with it, but whatever works for you, eh? It's just a tool. Does it make that much of a difference whether you use Black&Decker or a Makita power drill to build that dog house? Probably not.

  • by CaseyB ( 1105 ) on Tuesday November 30, 1999 @06:16AM (#1493754)
    There is not logical notion that human kind has any implied fuzzy quasi-telepathic state wherin they gain "mystical" powers.

    It's not mystical at all. It has nothing to do with telepathy. But I can tell you that the brain seems to enter a very different state when it is focusing on certain tasks. It happens to me often when I code and when I play videogames.

    IANANeurologist, but I would guess that 'zenning' is the process of shutting down portions of the hundreds of inputs that the brain manages from moment to moment. You're allocating mental resources to the problem at hand, rather than wasting them on trivia like maintaining an awareness of your environment, checking for bodily requirements like food, water, or sleep, or even keeping your eyeballs moist. It stands to reason that ignoring these distractions will allow the brain to run at a faster, more productive pace.

  • What I find ironic about the Caps Lock rant is that the focus of the article seems to be about the evils of chording, particularly when the keyboard he espouses uses the 'caps lock' idea for the function keys. ;)

    Mind you, I think the caps lock is in a pretty lousy place, but "a lynching party"?? C'mon...

  • Best user interface for zoning out I've seen so far is the old ViewLogix ECAD system. 1 letter commands, and mouse for connecting the parts. As a test, I decided to CAD the PC-XT, and it took 30 minutes. 30 minutes to CAD out a PC motherboard.

    But, alas, they made the windows version. They got rid of middle mouse button support after a while. Then the command keys became chord combinations. All bad. I just couldn't get into it.

    Many programs have this whole "mouse for drawing, and keyboard for entering command" thing going, but I just haven't found too many that do it well. AutoCAD, for instance... not being extremely familiar with it, but I just couldn't get into the whole picking from the palette thing, or type in the primitive you were trying to draw, and then moving hands to the keybaord to punch in parameters... there must be a better way...

    And as for arrow keys, I'm going to have to disagree here... there is nothing intuative, or good about using 'hjkl' for movement. Except that your terminal software doesn't need to send extended control characters to make it work (very useful when using the M$ telnet abortion. VT100 emulation, and sends ANSI ID, what?!?).

    And as a finaly note, I do agree with most of what the author is saying, but the big thing missing here is choice. I normally work a bunch of differnt editors, and I choose them based on suitability to task. XEMACS has it hands down when coding (for me). Syntax highlighting, auto tabbing, parenthases matching, and numerous other nifties make my life easier, and make the code roll out faster. This is because it takes care of crap that I don't want to deal with.

    When editing text files, and long config files, and most other things.... vi rules. it has a faster search system (fewer keystrokes to get it to give you the love you need), and is so much faster to load. Doesn't use up megs of swap, either.

    Summary: Utiliy, familiarity, and suitability should choose your editor, and input device. There is no absolute on any.

  • Nope.

    The origional mac keyboard didn't even have an escape key. The control key was also in the wrong place (it was in the lower left hand corner). The Happy Hacking keyboard is really nice compared to lots of PC keyboards, but I still like the Sun 5 unix kbd better...

  • by bluGill ( 862 ) on Tuesday November 30, 1999 @06:25AM (#1493765)

    I spent some time studing human factors in college. Human factors in breifly design of interfaces to be useful. All GUIs should be built from human factors, but obviously few are.

    This zen is a common misconception in human factors. Bruce Togniziky (the Guy Apple had doing most of their mac design) put expirenced uses in front of a comptuer, and had them select text with the keyboard, and then do the same thing again with the mouse. The users reported the keyboard was faster, but his stop watch reported the mouse was faster! (This was for a very specific example, and he admits it doesn't generalise. This however changed my thinking, I no longer hate the mouse, I use it when it is faster, and keyboard when that is faster)

    We know how long it takes someone to move to the mouse make a selection and move back. We also know how long it takes someone to type a few keys to invoke a command. We know how to design user interfaces so they are useful. Few people apply this.

    Human factors is NOT about getting rid of the keyboard or all those shortcuts. That is a misconception, human factors requires shortcuts! Human factors doesn't require zoning on the interface because the user zoned into typing is wasting time when moving to the mouse (which brakes concentration unless you do it all the time) is faster.

    If you want to write comments like this, PLEASE PLEASE PLEASE read Donald Norman's Design of Everyday Things. This is a wonderful easy to read book that defines the field of human factors and could change your way of thinking.

  • I've long held that AT-style keyboards killed WordPerfect.

    Good ol' WP 4.2 for DOS was easy to use once you trained your brain to feel the necessary key combinations. When asked what the keystroke for Print, or Search & Replace or Reveal Codes were, I typically didn't know the names of the keys, but I knew their feel with my left hand.

    I say my left hand, because my old XT-style keyboard arrayed its function keys on the far left of the keyboard.

    Cursor keys were easy to navigate without looking, because the only cursor keys available were on the un-NumLocked numeric keypad, where they are much more usefully arranged than in today's dedicated cursor keypad area. My right index finder still does the HomeHomeLeft dance in its sleep.

    Then new & improved keyboards arrived with function keys arrayed across the top, so that for most WP commands, two hands and a glance down were now required. Being able to keep NumLock on and have separate keypads for cursors and numbers was a nice enhancement, but why completely rearrange the relationship between the cursor keys and Home, End, etc? Good luck executing a HomeHomeLeft without looking down.

    As the new keyboards arrived (with top fuction keys, new cursor keypad, and migrated Ctrl key), two things happened to WP for DOS users.

    • First, the learning curve retrain our brains to feel the new locations of WP functions was nearly as great as the learning curve for a while new app.
    • Second, once new locations were learned, the ability to type without glancing down was seriously compromised.

    Given these constraints, is it surprising that many chose to learn a new app -- MSWord -- rather than relearn the old app? I think not.

    Even now, if it weren't for e-mail and browsers, I'd be happy with my only computer being a Compaq 386LTE laptop w/ 1 MB of RAM, 20 MB disk space, DOS 3.3 and WP 4.2. I'd get a lot more work done more efficiently, which is supposed to be the whole point of computer enhancements, isn't it?

  • So pressing a single key ('j', for example) in an editor is faster than a chorded combination like, oh, I don't know, CTRL-n? Not necessarily. How should you distinguish between 'j' to perform the special action, and 'j' to insert that letter?

    If you introduce the concept of different modes, you need to switch between modes, and that has to require an extra keypress. In vi you must press ESC once before moving, and once after - that's three keystrokes instead of one. Those extra ESCs are a constant whether you move by one character or fifty, so it's arguable that for large movements the two-modes version is indeed better. But if you just want to move down a line, it's a lot more hassle.
  • But whatever it that helps a person achieve Zen is soon changed. Tom's example is that of the keyboard on computers.

    For another example, look at cars. I learned to drive with a Geo Metro. Part of the interface is sound-- the engine is screaming; shift gears. The engine is rumbling and sputtering; shift gears. The radio? That's way down by the ashtray, where I will only reach it when I make a conscious effort to do so.

    Today I drove a Mercury Villager-- automatic, naturally. Now I have a penalty zone-- the time just before the transmission shifts up a notch. It pulls me out, it shakes me. Not only that, but when I look down at the steering wheel, I see buttons for tuning the radio! The old buttons (right behind where the stick should be!) are still there, but now I have radio buttons. It's idiot-proof.

    For another example, look at the portable phone I bought the other day. There are 12 speed-dial buttons (memory buttons, the manual calls 'em). They are placed more prominently than the actual numeric pad! I know that a lot of people don't attain Zen when dialing phone numbers, but it's been known to happen on occasion. But anybody wishing to Zen out as he dials Fiji will now be stuck trying to avoid the memory keys.

    It's history, folks. It's the natural progression of things. Something is good. Hackers "Zen out". Suits see that hackers are more productive, decide that good thing should be made available to all. Suits change good thing and destroy Zen. Hackers move on.

    Such is life. We shall soon move on, I suppose. Zen will be found somewhere, and hackers will follow. It's our drug of choice, and junkies don't do too well without it.
  • Keyboard preference is often a historical thing. I always use ` instead of ' for my apostrophes. This is because once upon a time I typed on an Amiga keyboard, which only had the one, which was in the position that ` is on PC keyboards. I also took quite a while to adjust to the repositioning of the capslock and ctrl keys too.

    As to `the penalty zone`, I can actually see good ergonomic reasons for keeping it, mainly related to those people (the majority) who do not touch-type. By removing the less-commonly-used keys from the main array, it reduces confusion on the part of the hunt-n-pecker, who knows they don`t have to consider these keys as they search for the one they want. As for the arrow keys - well, it may be difficult for extended use, but you can`t say that the placement of the up key above the down key isn`t intuitive!

    Please remember that most people these days can`t touch-type, and would be at a disadvantage on the sort of keyboard proposed here. And since the market depends on what `most people` want, it`s the non-touchtypers who have - and should have - most say in the design of our keyboards.
  • There is not logical notion that human kind has any implied fuzzy quasi-telepathic state wherin they gain "mystical" powers.

    There certainly is, although there's nothing "mystical" about it.

    Some tasks are executed rarely, and are complex. Higher, conscious, parts of the mind are involved in performing them so it's a conscious mental effort. Other tasks (walking, running, playing soccer (for some of us)) OTOH, have become so ingrained that they really are almost automatic. A good interface gets far enough out of the way so that you can begin to learn this autonomic (?) response. Once you've acquired that (it takes both a good interface, and practice) then you'll see a vastly improved performance, even with far less effort.

    I'm both an (occasional, and dismal) Zen practioner and a skier. I empathise completely with what Tom was talking about in that fine piece.

    There's never a neurologist around when you need one...

  • It's a sad fact when the Occident is determined to reduce Zen to a simple game of Quake. For the record, 'forgetting' your keys and going on automatic pilot mode is as Zen as driving your car. Ever notice how drivers just forget about the controls and just 'become' the car?

    It's just a matter of repeating something often enough that you jumpwire your brain, and don't need to think about every command anymore. The same goes on in walking.

    If that were Zen, then Zen would be another word for 'automatism'.

  • It looks like you're responding to the first couple of comments about the article repeating itself. I'm pretty sure that at the time the article truly had some repeated text. I swear that the first time I tried to read it, there were several paragraphs (the one with the link about Fitts's Law caught my eye) repeated, verbatim, at least four or five times. The article seems to have been quietly (perhaps too quietly; an "update" notice would have been nice) fixed to remove the truly redundant paragraphs. I still find the article a little longwinded, but Your Mileage May Vary.
  • What on earth are you doing, moving your hand off the keypad?
  • If you still have your old keyboard that you used with your XT, get it out of the garage and use it.

    Look out though, some XT era keyboards, while using the same DIN-5 connector are not exactly signal compatible with newer machines. Some do have an "AT/XT" switch though. And some XT keyboard (particularly some of the original IBM ones with the dinky shift and return keycaps) are even more heinous than the current cheapo keyboards.

  • this is the single biggest thing that I hate about typical Mac's...they have the nibs on "d" and "k"

    Unfortunately, on recent keyboards (the "iMac" Apple USB keyboard and some powerbook keyboards) Apple has sunken into the mindless conformity that is jf keyboard nipples (wtf is a nib? The word is "nipples"). Nipples on d and k are actually far superior. No, this is not a matter of opinion, this is a fact about human interface design. A person can get used to either fj nipples or dk nipples so the while personal preference does matter, it's only a matter of which one a person uses. What makes dk nipples superior is that there's a more or less equal chance of putting your fingers down left/right/inward/outward shifted from the correct position for typing. dk nipples give you positive feedback no matter which direction you're off in. That is, you feel the nipple being on the wrong finger, as opposed to just failing to feel a nipple at all. As any intelligent interface designer will tell you, positive feedback is many, many times better than negative feedback.

  • I swear that the first time I read this article, I scrolled past three or four identical copies of the paragraph with the "Fitts's Law" link, and it looked like a lot of other text was being repeated as well. I go back and look at it now, and I only find one iteration of the paragraph in question. Was I hallucinating, was my browser tripping out, or was the article text actually changed? If the last, an "Update" notice would have been nice.
  • With your 'working environment' I encompass both mouse and keyboard together.
    I disagree about the arrow keys (if he means cursor keys) as they're a god-send, but I do hate the arrows on the numeric keypad.
    Something else not to forget: the arrow keys *do* scale into words and paragraphs (if not sentences) with WinWord (and no doubt others), using ctrl+cursor up/down. (And on the subject of WinWord, did you know that F12 does file/open, print, save and SaveAs ever since Word 2?!)

    You're right that author and editor adapt to each other. ObHistory: I used to be into emacs in a relatively big way, but I didn't really know my way around it - I let others' opinions of vi keep me with emacs. Then I decided to branch out and do the Other Thing, and hey presto, I'm still *with* vim, because vim and I get on better together.
    However, for webpage editing, I do sometimes prefer something like screem, because I hate having to mess around with word-delimiters to manipulate tags.

    When I'm working, I don't mind having one hand on the mouse for about a quarter of the time - I optimise where it is so no time is lost in the focus change, and of course it's way faster than alt+tab between 10 windows or whatever.

    Caps lock can go, and CTRL can reappear where caps was, by all means.

    But I also disagree about chording keyboard - there's nothing wrong with having, say, alt+shift+N mapped to '/usr/local/netscape/netscape' if that's what turns you on. And on ergonomic grounds, that sort of keypress can be pretty quick to come by.

    Ever tried playing quake under X on a notebook? The only problem with restricting oneself to the keyboard is that the turn-angle delta is way too huge, and in my case, I have a Fn key on the left of Ctrl so I don't get a chance to shoot anyone!
  • I thought this was going to be an interesting article about user input interfaces and then WHAM, right in the middle, it starts to turn into an EMacs slam-fest.

    Personally, I get a shitload more work done with EMacs than I do with vi, despite what some may consider a "brain-damaged" interface. I'm used to it. *I* can "zen out" with EMacs.

    Just 'coz "Ctrl-S" isn't as easy to type as "/" doesn't mean you can't get as much work done with it, or even more. I know if I had to use vi all day long, I'd get much less work done.



  • I grew up playing games on the family's Kaypro II (then 286, 386...), and they all required the use of the wonderful keypad. My favorite was the PC version of spacewar, which required the use of all nine keys in order to use all of the functions. My hands still easily fit over the 8,4,6, and 2 keys. I can navigate around any document using home, end, pageup and pagedown.
    I play quake with no less than 13 seperate keys (with my left hand, even), including seperate keys for every single weapon. The only drawback is that I use my thumb for both backwards and jump, so that combination is a little tough.

    I certainly don't like having the keypad quite so far away from the main keyboard, but I don't agree with his assertion that having the arrows where you expect them to beis better than the HORRIBLE hjkl deal. I mean, what is up? Why is up to the side of down? that makes no sense! I also don't like the inverted-T deal, because the up and down keys are too close together.

    Is there any way to enable the keypad in linux? Mine never works
  • It's the wrong place to ask about things that aren't really PERL-specific, such as CGI programming and sockets.
  • but I still like the Sun 5 unix kbd better...

    My favorite keyboard for layout and feel is not the current or first Mac keyboards, which were crap, but the model they originally sold with the Mac II in 1987, the 'Apple Extended Keyboard' or 'Saratoga' aka 'Keyboard of The Gods'. That sucker was huge, but it has exactly the right feel - great tactile feedback, short key throw and no clicky noise, and a hell of a lot of attention to detail including a concave shape to bring all the keys a little closer together. I still use mine with my G3 - it's too bad I never was able to find a PC keyboard as well laid out or constructed.

  • you feel the nipple being on the wrong finger, as opposed to just failing to feel a nipple at all

    That is a point I had never thought of. Another thing that you don't mention is that your middle fingers are the longest fingers, and thus the most likely to come into contact with the keys first as your hands come down to the keyboard. I always assumed that the dimples on the fj keys were because the people who designed the early IBM PC/XT/AT keyboards were obviously hunt and peck typists (and thus would prefer the fj keys due to using primarily the index fingers).

  • First, vim did things right by always letting you use arrow keys regardless of context.

    > In vi you must press ESC once before moving, and once after

    No you don't. If you're in insert mode, you have to hit ESC to go to normal mode, but you don't hit ESC again after that. If you want to start inserting again, you hit "i" or "a". Hitting ESC in normal mode will just give you a beep.

    vim does things even better. Regardless of your mode, you can always use the arrow keys (and PgUp/PgDn/Home/End).
  • If I had to know what I was talking about before I posted, I would probably never post.

    (I hear the response of thousands -- "So, what's the downside?")
  • by Gurlia ( 110988 ) on Tuesday November 30, 1999 @07:24AM (#1493822)

    Good point. Although I suspect that most people here have emacs or vi as their favorite editor, mine is aXe. On the surface, it seems clunky and less optimal than the "true hardcore text editors" like vi/emacs where a few simple keystrokes get you to do what you want. Tom seems to be making the point that only a certain kind of keyboard allows you to "zen out".

    That's not quite true. I think the underlying thing is that you have to be comfortable with what you're using. Tom happens to grow up with a certain style of keyboard, therefore anything else seems klunky to him. I grew up with aXe as my text editor (it was Norton Editor in my DOS days, but unfortunately I can't find an equivalent to that on Linux, and pico sucks). When I'm really "into" my programming, it seems that aXe isn't even there any more. Every time I need a new editing window, my hands automagically nudge the mouse, slide over the button just enough to click it, and up pops a new window, another wiggle, and it loads up the file I want to edit, another flurry of taps on the keyboard, and my fingers have just added a new feature to my program. Well, it's not quite this simple, but when I'm "in it", (or "zenning out" as Tom calls it) none of these "cumbersome" operations as switching back and forth from the mouse/keyboard seem to matter.

    Now, if I only had pico or had to use vi (which IMNSHO has a really sucky interface) I would've completely forgotten the on-the-spur inspiration I had on how to implement this new neat feature I wanted in my program. I'm not saying this to start a "religious war" between vi/emacs/pico/aXe, but I'm just illustrating that it's not so much a matter of which tools you're using, but it's more a matter of which tool you're used to. If you're used to vi, forcing you to use aXe would probably send you through the ceiling in frustration after a few seconds. But for me, it's the other way round. If I had aXe, I'd "zen out" real fast. If I had vi, well... it'd be a week from now and I'd still be wondering, "How on earth do you exit this miserable editor now?!"

    Just my $0.02 worth.

    (Offtopic) BTW, I can fully identify with Tom's piano analogies. I'm a self-taught pianist, and I can truly identify with Tom's description of "zenning out" when I'm at the piano and inspiration just comes pouring out, seemingly independent of the way my fingers are moving. I hear the music in my head, and my fingers cause the piano to reproduce what I (pre-)hear. Now, that is zenning out on a piano! :-)

  • Now this interests me. I might just be crazy enough to try it. I suppose you've got to have a certain kind of mouse, though -- looking around my desk, I see a Dove-bar shaped Dell mouse... the ever-present warped M$ mouse... and what looks like a melted Dove-bar Compaq mouse. :-)

    What kind of mouse did said person use? What size were his feet? (I wonder if my size 13's could move a mouse effectively at all...) I wonder if OSHA has any problem with it...

  • As far as ergonomic nightmares go, I have to wonder what people think of the split keyboards. I put my hands on one in an office store once and immediately felt nauseous, but I wonder... if they didn't have the Windoze keys (among others), would they help or hinder in achieving keyboard zen?

  • by slothbait ( 2922 ) on Tuesday November 30, 1999 @07:49AM (#1493844)
    This article makes me shiver. It is not -- as billed -- an analysis of computer interface. Rather, it is a fervent piece of VI advocacy from someone who has been stuck on that interface so long that their mind has irrevocably wrapped around it. I do *not* view VI as a superior editor, and for the record, I've had a number of "transcendent" experiences with Emacs.

    The basic argument for VI is: "You never have to move your hands! Isn't it amazing?". Well, that's all nice, I suppose, but I view the interface as archaic and clunky. He goes off on how control keys slow down an interface...CTRL slows me down a hell of a lot less than switching modes does. (Yes: I've used VI for more than 5 minutes at a stretch, and I'll confess it has its merits, but I've never liked editing "modes").

    And arguments against arrow keys? Please...if you don't like them, then don't use them. I for one find them useful even if they are "exiled". And the argument that they can only operate on characters is wholly wrong. I have Emacs set up so that CTRL+ARROW skips words horizontally and paragraphs vertically. Very useful, that.

    While I'll agree that CAPS LOCK deserves to be exiled and that the shrinking of SPACE BAR at the hands of the "vanity" keys is tragic, I like my function keys, and I like my arrow keys...even if they are a bit "out of the way". So up is stacked on top of down? Damn, I can't do trills all day long like I can in VI. But wait...I don't *need* to do up/down trills when editing code. Maybe VI users like them, but they've always struck me as unproductive.

    Let me close this by saying I respect Tom and enjoy his books a lot. I can't believe that I am flaming him. However, I'm offended at VI propaganda being passed off as an interface analysis. Minimum finger movement is important, but it is far from the only thing one should be concerned about in an interface.

  • Everytime the machine reboots, I have to go up to the keyboard and type "Alt-F, down, down, return, return" to get it to start taking pictures.

    I know Windows at least used to come with a ``macro recorder'' of some kind that, it would seem, could automate this for you. But as I have been avoiding Windows innards religiously for some time I can't say for sure what the current state is...

  • Well, everyone else has argued that what you don't believe in actually does exist, so I'll look at something else. This discussion has a supreme irony that no-one else seems to have noted. What TC described (and everyone else here) is actually the exact opposite of a Zen trance. It is actually much more like a yoga trance. In the yoga trance state the participant becomes oblivious to the outside world. In a true Zen trance, the participant becomes totally and unconditionally aware.

    I read about an experiment (sorry, no references - too long ago) that studied these mental states. It involved three groups, on of untranced subjects, one of Zen-tranced subjects and one of yoga-tranced subjects. The experimenters measured brain activity with an EEG and then exposed the subjects to a series of loud surprise noises. In the untranced, the measured startle response was large for the first noise but died down and then died out with repitition - normal acclimatization. In the yoga-tranced, there was no measured reaction, even to the first loud noise. The big surprise was the Zen-tranced group who showed the same, large response as the untranced on the first loud noise and an unchanged response on each subsequent loud noise. Not only did the Zen-tranced respond to the sound, they did not acclimatize to it.

    I believe I have experienced a similar state exactly once in my life. I was in Amsterdam in a video arcade, playing space invaders (yes, a *long* time ago). I had just bought a learning Dutch book and was having the game of my life. I definitely entered some kind of trance and became aware of everyone around me and on the street, as well as everything happening in the game. I was already way beyond my previous personal best when a Dutch youth quietly snatched my book and started to slip away. Normally I would not have noticed, but in this state I was able to take two steps and surprise the life out of him by clapping my hand down on his shoulder. He apologized, rather subdued, as he handed the book back. That was the end of the game, though, and that's what I really resented. Still, I didn't feel anything from my knees down for a good half-hour.

    So, these altered states DO happen. Mystical? Bullshit! A combination of a severe addrenalin high and other neurological factors that I for one do not know or understand (and I suspect that applies for everyone else at the moment). You don't believe in unexplained but natural, if wierd, effects? Well, I'm sorry for you, Horation, but there are more things in Heaven and Earth than there are in your philosophy.
  • As I was reading this article, something similar occurred to me. I do spend a fair amount of time switching between my mouse and my keyboard, and it does suck. But there are several ways that you could keep your hands on the keyboard and use a pointing device.

    I think the perfect thing would be to use your tongue! What if you had a little pointer or a touchpad on the roof of your mouth? Aside from the nastiness of using it at a public terminal, I could imagine I would really like it. Anybody know of anything like that?

  • No, I don't use caps for much. Only for global constants, really, and even then, sometimes I don't. I'm a perl programmer, by the way.

    I started, however, as an HTML jockey, and during my servitude with that miserable beast, I got so I can type in all caps, just by holding down the shift key, almost as fast as I can type without holding it down. I was always in the "HTML tags are capitalized and that's that" school. So, the caps lock key is thoroughly useless and should, indeed be banned outright. The only thing it appears to be good for is getting in the way of the tab key and making me capitalize a whole line instead of moving it four (that's pronounced "The One True Tab") spaces to the right.

    Morning gray ignites a twisted mass of foreign shapes and sounds

  • Great column, Tom (especially as I jammed the caps lock key at some point and kept getting a lowercase g on Great). I take issue, however, with the idea that you can't have a zen experience with the number keypad and the keyboard at the same time.

    When I was working at an ISP, I found myself consoled into 4 or 5 cisco routers on a regular basis, typing things like:

    sh ip bgp
    sh ip route
    access-list 110 permit ip eq any
    ip route 1
    ip route null0 255

    The typing would be ... (keyboard, obviously) access-list 110 permit ip *this keeps my hands near the keys when I do the 110, so I can quickly move back to permit ip*

    and then (number pad)

    and back to the keyboard for permit/deny, etc.

    There was absolutely no interruption in the flow of movement from keyboard to number pad and back, mostly because the action was repeated under extreme stress and network-down failures over and over until it was reflex. In the routing world, at least, the beautiful nearness and easy access to period (.) from the number pad allows the entry of IP addresses and masks with blazing speed. Still, a quick hand on the keyboard is necessary ... so if you are going to do it correctly, and reach that Zen state of routing, you find yourself moving seamlessly between keyboard and number pad.

    Of course, I don't blame you for missing this possibility, as it wouldn't be apparent to anyone who didn't drill in a lot of IP addresses on a regular basis.

    Just a thought. Cheers!

  • Ok but why is this suddently so special to people?
    Whadda mean, "suddenly"? The Buddha lived about 2500 years ago, and Bodhidharma brought the beginnings of Zen to China (the famous Shaolin temple) about 1500 years ago. It's hardly a new idea! American interest in Zen first became strong during the Beat movement and has been growing ever since.

    Anyway...I have to say that never having been a touch typist, I just don't find Mr. Christiansen's complaints all that moving.

    If I'd bothered to take "Personal Use Typing" in high school (back when Apple IIe's with Z-80 cards running CP/M were The Coolest Thing In The World), I might share his objections. But my typing style (such as it is) grew up on a computer keyboard, arrow keys and all. (Mostly the old PC version with the arrows on the numeric pad, though). "hjkl" are no more special to my hands than "M-x" (that's emacsish for "alt-x") or the arrow keys. And given the realities of the modern keyboard interface, studying touch typing now would be, IMHO, counterproductive - it's now an outdated methodology.

    So long as entry isn't too painful (as it sometimes gets on the Mac I'm typing this on - I loathe the feel of this keyboard), I can still get flowing on content.

    Well as a #perl (ir)regular and op, I'd like to bring up two points that are often lost.

    1) #perl is not a helpdesk. Honest.

    2) Being kicked from IRC is not a big deal.

    I've been kicked from #perl (and by Tom) numerous times. Oh the scars...

    Often what happens is someone will come into #perl demanding answers to questions that really require more research on that user's part. If you are kicked from #perl because you are asking legitimate questions, perhaps you need to read some of the basic documentation again (or once).

    RFTM is a form of Tuff Luv(tm). If you do the research, you will be a better programmer.

    Said another way, #perl will help you become a better fisherman, not a better beggar of fish.

    On another note, I've been waiting for CmdrTaco to show up in #perl again. I have to think that a little virtual kicking wouldn't leave so many emotional scars, but he does seem to bring this up a lot. Rob, I think you'd bring some interesting conversation to the table.

    For the record, Tom isn't in #perl these days. Something about having a life - I didn't get all the details. :-)

    Anyway, I like the standard 101 layout. It works for me, but then I use emacs. What would I know of Zen?

  • Alan Cooper is Da Man! I absolutely love "About Face : The Essentials of User Interface Design" [], but his new book "The Inmates Are Running the Asylum : Why High Tech Products Drive Us Crazy and How To Restore The Sanity" [] just seems to rehash his old material. Check out his company's web site: []
  • "He's in the Zone, babee!"

    A decidedly western concept, "the Zone", can be roughly the same thing. It is a state of oneness. Of being. Achievable in nearly all forms of action, including simple inaction (meditation). A fun place to be, but I wouldn't want to live there. (The stark realization of being in the zone usually happens at the same time you come out of it)
  • by outlier ( 64928 ) on Tuesday November 30, 1999 @09:29AM (#1493906)
    Neuro-Linguistic programming brings it down to 4 stages:

    Cognitive scientists have studied this phenomenon extensively. It's called proceduralization.

    Some neat things about procedural memory (as compared to declarative memory which is a memory for facts and events):

    * Seems to be more resistant to forgetting than declarative knowledge (which is why you can still ride a bike or use an interface years after having done so). In fact, people with anterograde amnesia (inability to learn new stuff) can still learn (and improve) at skills such as reading backward text.

    * You can maintain procedural memories without equivalent declarative representations (with your hands at your sides try describing how to tie your shoe)

    * Skill acquisition follows a power law, and can be expressed as T=aP^-b where T= execution time, P= practice a and b are constants (a>0, b>=1).

    * The best thing about proceduralization is that it reduces cognitive load, so you can allocate attention to important things like talking to a passenger while driving (although there are data that suggest that talking on a cell phone isn't the same, because the other person isn't reacting to the environment by shutting up during urgent situations)
  • There are adb/usb adaptors, so I don't think this is an obstacle.

  • I think a lot of keyboard preference comes from what you grew up on. I think this stems from the fact that a keyboard is an unnaturual interface. It is a device for entering a language, but built using letters. Oh, I can't think of a better way to do it, short of voice recognition, but that doesn't change the fact that a keyboard is never going to be natural.

    Thus, those who grew up with CONTROL to the left of A and ESC to the left of 1 will find modern PC keyboards useless. Myself, I grew up on the classic IBM 101-key layout, and that is what I use. I have zero trouble with CONTROL being where it is. In fact, the dual CONTROL and ALT keys allow me to use one hand for shifting and one hand for the prime key, whereas a single CONTROL key gets in the way.

    I don't type using home row. I use what I term "Modified hunt-and-peck". I don't have to look at the keyboard anymore, buy my typing style appears somewhat random. I often comapre it to a line printer, which has a chain of letter faces in continuous rotation. Whenever the right letter is over the right spot, a hammer strikes. Likewise, I move my fingers around constantly, and when they are over the key I want, I press down. It works.

    I find both vi and emacs to be not want I want. I grew up in DOS land, and am used to keybindings making heavy use of the cursor movement keys: Arrows, page up/down, HOME and END. Shift states (CONTROL, mainly) are used to move in larger steps (words, pages, etc.). (This doesn't worth a damn over Telnet, unfortunately.)

    To someone like me, who grew up with this style, emacs seems like a random puzzle of control strokes, and vi fits the old joke: "vi has two modes: The one that beeps, and the one that doesn't." My mind thinks editors should not have states, and commands are single character shifted strokes (again, usually CONTROL, sometimes ALT).

    The function keys are reserved for programmable macros or very infrequently used commands. With one exception: File commands get put on unshifted function keys. I still go for F2 whenever I want to save something. :)

    I also find myself automatically adapting to the "penalty box", as Tom puts it. If I'm typing a lot of numbers, my right hand mindlessly migrates to the number pad. If I'm doing a lot of movement, it hovers over the cursor keys. If I'm using a lot of shifted strokes, one hand takes up station over CONTROL, the other punches keys. Thus, I get no big penalty for lots of shifts.

    Of course, a typing teacher would likely have heart failure watching me, but hey, that's life.

    But what I wouldn't give for Boxer on Linux! :-)
  • Ah, my apologies...i'd interpretted what i saw on their website incorrectly, then.
  • by Get Behind the Mule ( 61986 ) on Tuesday November 30, 1999 @10:05AM (#1493935)
    This enormous hyperbole, all 4697 words of it, IMO all boils to a few simple truths: Tom C. has been using certain tools for many years, knows them, likes them and can operate them well. But he has a peculiar need to demonstrate that his irrational preferences are somehow superior, and hence has confabulated all of these overstated arguments. In fact, it's all just a fluke of history. If emacs had come before vi, and hence Tom had learned and mastered emacs instead, we'd be reading an essay about "evil" design decisions inherent in vi.

    Contrary to Tom's assertions, I can and do "Zen out" while using Emacs to write programs all the time. And I think that vi is an astonishing example of brain-death. (And yes, I know enough of vi to cope with it, because it's the only editor you can be certain to find on J. Random Customer's Unix machine.) But I'm not going to subject you to some dogmatic rationalizations for my tastes; I simply learned Emacs first, mastered it, and by now I can become "one with it". vi just frustrates me, because I haven't learned it and can't grok it. And that's all there is to it -- it's certainly nothing that needs 4697 words to explain.
  • I recommend that all hackers learn to juggle.

    The reason is that juggling requires that Zen state. Think about it.

    As a kid you were taught to keep your eye on the ball. You can't keep your eye on three balls simultaneously, nor can you mentally focus on each ball.

    I keep a set of juggling balls by my desk at work. It raises some eyebrows, but it really works well for instantly inducing that zen state.

  • Yes; everything got shuffled around a bit to make way for the £ sign..

  • Tom's hatred of the Caps-Lock is a result of his vi zealotry. In vi, forgetting to unlock your caps can be fairly deadly. This is just one of the reasons why I became an emacs zealot.

    And don't get me started on Sun's keyboards. Perhaps switching the caps-lock and control was a good idea, but it sure sucked having to switch back and forth. And why can't they decide whether Escape belongs in the base setup or next to the never-used function keys? Worse still, please put the backslash and pipe key combination below the backspace! It's not too fun accidentally pressing enter when you meant for a pipe!

    Seriously, Tom makes a good point about software/hardware that is neophyte-friendly at the expense of being expert friendly. I tend to prefer the software that's primarily expert-friendly, but allows experts to make it neophyte friendly (emacs is a great example, I might add).

    I allow him the poetic license to use some exaggerated analogies, but this was a bit too long...

  • I don't have a big problem with the standard IBM PC layout, although I generally find anything other than the main key group superfluous. I don't use the arrow keys, function keys, or numeric keypad if I don't have to.

    Of course, under Windows, I have to use those parts of the keyboard because the Windows keybindings are so awful. On UNIX, of course, keybindings are usually very programmable and often optimized for skilled keyboard users.

    One aspect of human/computer interaction I do find pretty awful is the mouse. But I bought Trackpoint keyboards [] for all my computers and hardly use the mouse anymore. A pointing stick device like that also lets me avoid using the inconvenient keybindings under Windows. Keyboards with a trackball under the thumb also seem very effective to me, and you can get them a lot cheaper.

    If key shape rather than pointing device is your biggest problem, there are some manufacturers of older keyboards. In terms of key shapes and feel, the Symbolics Lisp machine keyboard was very good: it had solid keys, and all the peripheral keys were very big.

    So, I think you can get the keyboards you want. With IBM PC keyboards, just ignore the useless keys or get one without them. I'd pay attention to the pointing device; Trackpoint (not the imitations) and trackballs under the thumb seem very efficient to me. And, try to use software that was designed for keyboard use and prefereably allows reasonable remapping.

  • I totally agree - this person is extolling the fundamental VI mindset of modes as the best UI paragdim possible! He slips up though, look at this paragraph arguing against arrow keys:

    The third reason that arrow keys are inherently evil is that they support navigation based characters alone. You'll never move on to higher abstractions, like words, sentences, or paragraphs, or in the programming world, to tokens, expressions, statements, blocks, or functions. By relying upon arrow use alone for movement and discouraging other kinds of information chunking, you lock your poor users into a tedious monotony and forever bar them from making the jump to light speed.

    First he claims keyboard chording is Evil(tm). Then he whines about not having idividual keys for different sorts of movement!!! This is just where keyboard chording shines as the perfect example of how to do something without getting in your way - in Emacs an arrow key moves left, and by various chording combinations with CTRL and ALT you can move my higher orders of abstraction (words, function blocks, etc.) all in a very intuitive manner.

    Hasn't the author ever played a FPS? I'd venture to say most people are quite fond of chording and don't think it gets in the way at all.

    The authors basic problem is that he has obviously learned to touch-type, and his UI philosophy is blinded by strict adherance to finger position. Free your fingers and your mind will follow!! Finger position should be based on the task at hand, not one particular set of positioning meant to enahnce your ability to produce books.

    And just in case you think I have no VI experience, I can navigate around in VI just fine thanks - and I've also played to the "zone" state in moria/nethack/rouge and other text based games I've forgotten the name of now.
  • I actually posted a comment like this a couple of weeks ago. The only reply I got was that "tongue mice" (mouth joysticks) are used for paraplegics and amputees; however, those mice must be molded to their mouths like retainers. (That would not be necessary for those with the manual ability to put a mouse back in, should it fall out.) After meditating on the subject and discussing it with various people, here are my thoughts:

    1) People are totally grossed out by the idea of "tongue mice." It evokes the image of licking a mouse, not the cleanest thing around. Also, people I've talked to expressed fear that these devices would become like retainers, reeking and covered with old spit. The portion of these devices put into one's mouth MUST be replacable and disposable. No commercial success of such a device would be otherwise possible. (Also, a name other than "tongue mouse" would be needed -- I think "hook" would be a good name; it would evoke the idea of a hookah or fish hook, not of a retainer.) But the main thing is to eliminate fear of putting a nasty, public thing in one's mouth; making the intra-oral parts of these things disposable would do that.

    2) Rather than a touchpad, I think a good design would be a small joystick with a single button, the approximate size and shape of a cigarette holder. Cigarette holders are gripped between the teeth; a (roughly) ball-shaped button could be put here for bite-clicking. The actual joystick part could be put on the end, where the smoke would come out of the cigarette holder, as it were. It could be the approximate size and shape of a clitoris (:>), large enough to get one's tongue around, small enough not to get in the way. The intra-oral part probably could be designed cheaply as a disposable tip, as not much of the device would actually go in the mouth.

    All in all, I think it's pretty marketable if done correctly. People tend to forget how cool smoking is -- you can bite contemplatively on a cigarette, you can use it to gesture, etc. -- and this would be a non-eating substitute for that oral fixation. Plus it would totally eliminate RSI from pointing.

    I've searched around, but no one is doing this as a mass-consumption product. (Several vendors have feet mice.) I found no relevant patents on the IBM patent search.

    Doctors amputate Turkish earthquake survivor's arm [This story contains video]

  • This zen is a common misconception in human factors. Bruce Togniziky (the Guy Apple had doing most of their mac design) put expirenced uses in front of a comptuer, and had them select text with the keyboard, and then do the same thing again with the mouse. The users reported the keyboard was faster, but his stop watch reported the mouse was faster!

    This experience occurs for the exact reason that I tend to drive on backroads on my way home from work when there is a great deal of traffic. Even though taking the 25 mph road actually takes longer (I know because I've timed it) than just sitting through the traffic on the highway, I prefer to keep moving instead of constant stop-and-go motion -- It keeps my subconscious occupied and gives the rest of my mind a chance to zone out and think about other things.

    Anyone who has driven great distances alone could probably tell you the same thing. I drove 4,000 alone last Spring Break and only travelled during non-peak traffic hours. I keep a digital recorder handy for sudden inspirations this zen state drives out of me. I've figured out quite a few problems and have have thought up many new features for various programs while driving at 2 am through a new city or state...

  • But some of those require chording or double strokes, and are all over the keyboard.

    I know how to use those commands in VI but with the Emacs way of adjusting the granularity of movement with one hand (over the alt/control/shift keys) while maintaining the direction of movement with the other (over the arrow keys) I can quickly depart for some location in my code (or any document), slowing down as I get near a critical section like a train slowing down for a station.

    Now that I find intuitive, instead of having basically a 104 key gamepad with randomly labled buttons.
  • You are all losers.

    First, put your name behind it or shut up, ladies.

    Second, the overwhelming majority of the time when someone is kicked or devoiced it is because they are offtopic, rude, refusing to read documentation, or otherwise being generally disagreeable. The small portion of the time that someone gets kicked for no good reason ... well, we are all human. Get over it. If merlyn had a bad day and kicked you, deal.

    Dollars to dipswitches you got kicked for being a KLB [ lyrics [] | mp3 [] ] though.

    Third, merlyn may not be the best programmer in the world, and he is not perfect, but he is certainly a better programmer and a better person than most of the people who post on /. (though I realize that isn't saying much, unfortunately). And he has few "followers" on #perl. He has what people who know about life apart from computers call "friends."

  • Right on.

    I have one more major nit to pick: What has this guy got against chords??? For someone using music analogies pretty darn freely, he seems remarkably clueless about the agility chords can provide.

    The finest moment of zen keyboarding I ever witnessed was on the Mother of All Chordal Software: WordPerfect 5.0 for DOS. Once upon a time I did power word-processing for a living. On one contract, the supervisor of the manual writing team demonstrated the following viruosity: she was making corrections on the electronic document from the red-marked paper, hands flying, while I waited for her attention; she turned to me to take my question, and after I had been chatting with her a while, I noticed her monitor was still flickering, the cursor still dancing over the document, characters spilling out, getting sucked back in, other modes flashing across the screen, while she serenely talked to me. I was about to ask if it should be doing that, when I realized: She had out-typed the computer, which was doggedly catching up. And the program allowed her to do that - accurately and reliably.

    Power typists will always use a combination chords and runs, for the same reasons pianists and lutenists: because it's powerful, and it can be done blindlingly fast.

  • The market, in particular the US consumer market, selects for things that are easy to use for novices, rather than things that are efficient for experienced users. Easy adoption underlies business success.

    That's pretty much why systems like Windows and MacOS, systems that look easy to get started with, have been so successful. As an added bonus, because those systems lack a lot of power out of the box, there is a thriving market for add-ons for power users.

    If you want hardware that is designed for professionals and experienced users, you have to pay a premium. That's true for computers just like it is for cameras. And often, you end up paying more for getting less (but the right kind of less). Fortunately, for software, the "professional" versions are often open source and free.

  • I'd have to say the best keyboard I've used is the one hooked up to my NeXTstation. It has a massive spacebar, no capslock key, escape key not in limbo, etc, etc. Plus, it has the best feel of any keyboard I've ever used - just clicky enough. It would be perfect if it had Fkeys and pgup/pgdn or keys shiftable to these. But it's as close as I've found to perfection.

  • Chords aren't really bad, but they aren't great.

    Most chords require the use of two or more typing fingers, and take a fairly long time to hit, for you to be sure you hit the keys in the right order (alt-s is different than s-alt).

    The more complicated the chord, and the more finicky the timing (ie, key1 before key2, and hold both until key3 is hit and released) the more it distracts from the goal of getting out as many characters as possible in as short a time as possible.

    What would be ideal is for systems to have both a chorded system that opens the menus, much like Alt on a windows system will select (and alt will open) the first menu. Then a novice, or someone entering a less used command gets visual guidance as they enter the command. Other commands could, in a context sensitive way, use / to signal a string of command letters. Then you could type them in as fast as possible.
  • Modal (context sensitive) interfaces are good, as long as you aren't locked into the mode the program uses as default.

    ctrl-x/c/v are great cut and paste commands, but I wouldn't want Quake 3 to interpret them that way in the middle of a firefight.

    Besides, a good system that, for instance, used '/' to pop up a command window to execute the following keystrokes, could, in a context where '/' is part of the possible input, change '/' to 'ctrl-/' or '\'... Not as handy as the default control, but still easy to get to. That way you don't handicap the interface in one area just to make it compliant to the rest of the interface.
  • This is by far not an unusual phenomenon. I know that myself as well as a few others (seeing in that I don't often stand over my friend's shoulders and watch exactly how they type) all tend to use a modified hunt-and-peck style rather than the classic "home row". It would be quite intriguing to find out how many other hackers and geeks end up developing thier own, much more efficient typing style.
  • Hmmmnnn... so you can stroke your computer's nipple, you can get vibrations from it, and, if you use a Breathalyser-style stick, you could just as well attach an actual Breathalyser to gauge your blood alcohol level. A computer that can tell when you're drunk and horny, and respond appropriately?

    Vovida, OS VoIP
    Beer recipe: free! #Source
    Cold pints: $2 #Product

  • I have never met a programmer who couldn't touch type.

    Maybe not. However, this may come as a surprise to you, but most people who use computers aren`t prorgammers. They type the odd letter in a wordprocessor, they check their email, they might do a spreadsheet every once in a while. These are the majority users, and there`s no particular reason for them to learn to touch-type. And these, as I said before, are the people the keyboards are designed for.
  • My, aren't you a polite little boy.

    Try this: Use the KP_[8456] for moving, KP_[123] with a three state modifier to switch weapons ("best weapon" aliases may be handy sometimes, but why limit yourself like that when you can pick precisely the weapon you want?). KP_DEL and KP_ENTER are for crouching and jumping, the mouse looks, Mouse1 fires and the remaining mouse buttons can be the weapon switching modifiers and FOV control.

    Yes, that's right, I'm actually talking about the LEFT hand on the keypad, the RIGHT one on the mouse (I know sliding the keyboard a foot to the left is hard idea to come up with for some people).

    Neither hand needs to leave its station at any time for aim, motion, weapon selection or FOV control. That's the way I like it and if any of you W A S D punks have a problem with that, I'd be happy to sort it out on a Q3A or Q2 server.

  • Unix *has* standardised on get and put. (I don't know what this "copy" thing is.) Use button one to get, button two to put. Button three makes it bigger. And the single/double/triple click gets characters, words, and lines.
  • The hard part of knowing what right click means is that for some of us (gente zurda), it means clicking with our left finger. :-)
  • Dvorak never became popular because the price of entry is far, far too great with respect to its payback for most people to consider. The price is not the keyboard itself. That's zero-cost: you just xmodmap the thing into its new morph. The real cost is the wetware cost.
  • The essential difficulty people have in understanding vi is that it is not some modal thing. Rather, it happens to have an insert command, which happens to be terminated by an ESC key (or ^] for bad keyboards like Wintel crap.)

    The other problem is that the Prisoners of Bill and other members of the drooling public are expecting guessware. You know what guessware is--it's when you should just be able to fricking guess what a program does. This, of course, is fundamentally at odds with not merely vi, but emacs and virtually all the rest of Unix as well.

    Can you imagine trying to learn how to play a game merely by guessing? Of course not. How about Java or C++? Please don't laugh. People try this. And they fail, miserably, and then blame the programmer for not understanding how idiotic the user was that he would never even think to bother to read something. Unix is no different, nor any programming language.

  • The problem is that these GUI folks have the nutty idea that non-chorded, simple keystrokes are forbidden to them. That's where they're fundamentally fucked in the head.
  • What do you mean built for programmers rather than typists? Programmers are typists, you know. Well, maybe not Hawking, but you get the picture.
  • Just because many people who use computers are not programmers, this is absolutely no excuse for creating programmer-hostile software. Which is what we have. Make something even a drooling idiot can use, and only drooling idiots will want to. And programmers are not drooling idiots.

    End of story.

  • The way you make all programs recognize both ^H and ^? for some operating is to modify the tty driver. Currently, there's only one byte per action, so if you bind ^H to erase, you can't use ^? for that.

    Of course, it's already bound to your interrupt character, right? :-)

  • You think you use the arrows without pause, but you are demonstrably deceiving yourself. The arrows are not underneath your fingers. You have to move to get there. Therefore, there is more of a delay than there would be if you had simply depressed the keys immediately underneath your fingertips.


  • Neither are the others. They are normal, fairly bright people. They just happen not to know a particular skill. Maybe they`ve never felt the need to; maybe they don`t realise the improvement it would make; maybe they consider it not worth the time they`d have to invest in it compared with the time they actually spend typing. But that doesn`t make them drooling idiots, any more than my not having a motorbike licence makes me a drooling idiot.

    Besides, it all depends on what you`re used to, doesn`t it? I notice you`re not arguing for a complete redesign of the keyboard layout (Dvorak instead of Qwerty, for example). That`s because you learned to type on Qwerty, and other keyboards would only slow you down. You basically want the keyboard you`re most used to. Well, surprise, surprise, so does everyone else, including those whom you so arrogantly dismiss as `drooling idiots`. You know the reason everybody hasn`t gone over to Dvorak? The improvement gained in typing speed isn`t enough to make it worth relearning the layout. And don`t you think some people might consider this to be true of the non-alphabetic keys too?
  • Funny how this sounds like an argument of manual transmission versus automatic transmission. Can you imagine the outcry if all cars would have only automatic transmissions? Or how about not allowing anything but 1st and 2nd gears simply because untrained individuals screw up a lot if the car can ever exceed 2nd gear?

    By restricting the interface to something that can be used with zero training and a complete inability to remember something from one day--or moment--to the next, you put up needless speed limits that penalize the competent. There is no reason whatsoever to do that save for pure laziness.

    Finally, now that reading and writing are no longer effectively taught at our oxymoronically named grammar schools, it's long past time that simple typing should become a mandatory subject. Part of using a computer is using a keyboard. Part of using a keyboard is typing. Learn to type.

  • First of all, the Happy Hacker keyboard is not small. In fact, the keys are farther apart than on many keyboards. As for those fufi keys than you long for, they're completely useless. And yes, you can get at them if you chord. But they're really silly.
  • Oh, six of one and half-a-dozen of t'other, innit?
    I mean, Awel's right in some ways, the demand works against any technical excellence whatsoever (rough large-scale paraphrase), or "the morons have all the money".
    Days were when I approached Usenet knowing there were gurus out there who would delete articles with MIME and upside-down responses. Now I know a thing or two more than then (I hope) and definitely do the same to others, I'm all for it staying that you learn what you approach, and you correct the obvious bad bits in it thereafter.

    Where would we be without vi?!
  • If you want a keyboard that`s better for you, go out and buy one. Such things are available - in the same way that manual cars are. The differenced is that more people are prepared to learn to use manual cars than the different keyboard layouts. It`s not a matter of regulation: no-one`s passing a law saying that the caps lock key should be to the immediate left of the a. It`s a matter of market forces. People sell what the customers will buy. And the customers are not drooling idiots. They merely don`t see the point in putting in what is, in all honesty, quite a considerable effort, for what may be little gain. In the same way that some people don`t see the need to learn to use a gearstick when automatic cars are available.

    What I am objecting to is not your stated preference for keyboard layout, but the gratuitous insulting of everyone who isn`t quite as skilled on the keyboard as you are.

MESSAGE ACKNOWLEDGED -- The Pershing II missiles have been launched.