Saturday, April 17, 2010

Writing and Coding With Steno

What is Steno Good For?

Part One: How to Speak With Your Fingers
Part Two: Writing and Coding
Part Three: The Ergonomic Argument
Part Four: Mobile and Wearable Computing
Part Five: Raw Speed
Part Six: CART, Court, and Captioning

Part 2 in my "What is Steno Good For?" series

In Part 1, I talked about how steno could be used by people who speak
with voice synthesizers, making it easy to communicate in English at
true conversational speeds using only their fingers.

In this part I want to talk about the benefit of steno in prose composition. I'm currently writing this on a qwerty keyboard on a subway train (the A down to Hoyt-Schirmerhorn in Brooklyn, if you're interested) because there isn't room to use my steno machine and my laptop's keyboard isn't antighosting, so I can't use Plover (which also needs a file output option before it will be anything more than a demo. Planning to get on that very soon.) I'm typing out every letter of every word I want to write, plus spaces between each word. Though I make my living writing in steno, I still use qwerty for a lot of things, because my $4,000 proprietary steno software isn't much good as a keyboard replacement and because my steno machine isn't always immediately to hand. I'm pretty used to it; before I learned steno, I worked for several years as a qwerty transcriptionist, and I can type at around 110 words per minute.

Even so, whenever I switch to qwerty, it feels so clumsy and plodding. It's not all that great for my wrists either, but I'll write more about that later, in the section on using steno to avoid repetitive stress injuries. Mainly it's just such an inefficient input mechanism. I already know the word I want to write when I type the first letter, but instead of moving on to the next word, I have to spend however many more fractions of a second typing out the rest of the letters, then pressing space, then starting on the second word. It artificially slows down my thinking and forces a staccato note into whatever I'm writing.

Steno, by contrast, is quick, clean, and smooth. Many famous writers composed their works in pen shorthand, including Samuel Pepys, Astrid Lindgren (author of the Pippi Longstocking books), and Charles Dickens, whose work as a London court reporter probably had a lot to do with his matchless ear for dialogue. The trouble with pen shorthand, though, is that it needs to be transcribed manually, which few modern writers have the patience for. Machine steno, on the other hand, can produce digital text three times more efficiently than the best qwerty typist can type; but I don't know of any authors who use a steno machine in their work. This is almost certainly due to the high cost of the equipment and software, coupled with a general lack of knowledge about the benefits of steno.

Steno is an unparalleled method of text input, especially for high-volume work, where fluency of thought is vitally important. Writers and programmers would seem to profit the most from it, considering the amount of time they spend putting words up on a screen. If you're only interested in programming, skip down three paragraphs. If you're a writer, keep reading. I think this applies equally to essayists, bloggers, science writers, business writers, and the rest of the gamut, but most of my experience has been as an intermittent writer of amateur fiction, so I'll use that as a template to extrapolate from. I'm sorry to say that I don't get the chance to do much writing for most of the year, but I'm a longtime participant in National Novel Writing Month, the yearly ordeal in which otherwise sane people try to write 50,000 words of fiction in 30 days, just for the fun of it. I've attempted it four times and won it twice. The first time I won, I was living with my parents after college and working the graveyard shift in a group home, where my duties involved about three hours of actual work and five hours of sitting on a couch keeping watch over a house full of peacefully sleeping people.

I wiped my November clean of social engagements and devoted nearly every waking hour in November to my novel. It was a terrible piece of writing, but after sweating and moaning and suffering untold tortures, I wrote the last of my 50,000 words and declared victory just shy of the December 1st deadline. Six years later, I won again, but my circumstances had changed. In that time, I had moved to New York City, learned steno, and found my own apartment. I was supporting myself and my partner with my CART business, plus working weekends as a theater captioner and picking up a bit of transcription on the side. I didn't have the luxury to sweat and moan over a novel; if I wanted to write, I had to do it between CART gigs. There's no way I could have done it without steno.

Every day, between one job and another, I'd haul my gear to the Square Root Cafe and bang out a couple of chapters between bites of grilled cheese sandwich. It wasn't great writing by a long shot, but it flowed in a way that I'd never experienced before. Every word my characters said to me came up on the screen as quickly as they could have spoken them. Before, in the time it took me to type out the six or seven letters that made up each word, my brain would cloud over and I would start second-guessing myself so much it was a mighty battle even to get to the end of a sentence. With steno, most words came in a single stroke, so my text was able to keep ahead of my doubts and excuses and just keep going. I could write for half an hour on the subway going home, or pull out my gear and do a quick 10 minutes in the park before schlepping onward to my next gig. Before, I would have told myself that I didn't have time to get anything substantial done in those few scattered intervals, that I needed several solid hours to get into the flow and mood of writing. After learning steno, I couldn't get away with that ploy. Before I knew it, my 10 minutes were over, but I'd managed to fill half a dozen pages. It wasn't even the speed that helped me do it, primarily; it was the fluency that steno gave to my thinking.



The cover of my 2008 NaNovel.

Switching suddenly from fiction to programming might make for a weird transition, but it's one I've made myself over the past year, so it bears mentioning. This November, instead of attempting NaNo again, I decided to find a Python tutor to help me develop this idea for an open source steno program that had been fighting to get out of my head for several years already. Part of the frustration was that, try as I might, I was never able to make my steno software work effectively with Vim, my favorite text editor. Even when writing fiction, the 1.5-second time delay built into Eclipse's buffer drove me crazy. In the program itself, it lets me see my words instantly (in a sort of distorted "preview mode" that I have to turn off when I'm CARTing, because it's too distracting to my clients), but when I piped its output to other programs, the delay was there not only when I tried to write using steno, but when I tried to edit or navigate around the document as well. I still haven't managed to find a good solution to programming using the steno keyboard, but I can see so clearly what it might be like, if only the software were properly designed.

Programming is especially suited for steno, because there's so much boilerplate to write again and again, even in an eloquent language like Python. If I want to define a function, I have to type:

def someFunction(arg):
stuff.

That's eight strokes just to get started, plus 20 more strokes to write "someFunction", "arg", and "stuff". In steno, on the other hand, you could write something like D*FD in a single stroke, and it would put in the def, the space, the parentheses, the colon and the carriage return automatically, then jump you up to the space after the def to write your function name and arguments, then then drop you back down to the body of the function, all in four strokes. Best of all, once you defined that function name in your steno dictionary, you wouldn't need to worry about remembering to write out the name in camel case each time. Just use a single stroke like SPHU*PBGS (pronounced "smunction"), for instance, and start thinking of it as just another word, instead of two words mashed together in a lexically unnatural way.

I love the way Vim has mapped a useful command to each key of the qwerty keyboard. It's immensely powerful once you get used to it. But it's only got 26 keys to choose from, and it takes a long time to learn which key does what, since the correlation between "move one word forward" and the "w" key is pretty abstract and arbitrary. In steno, you could certainly keep using just the w key, if it's what you're used to, but you could also, say, map the "move one word forward" command to a single stroke like "WOFRD" (pronounced "woffered"). That's mnemonically much more useful than just "w", and an even bigger advantage is that the number of possible one-stroke commands is almost infinite. Instead of one stroke equalling one letter, steno lets one stroke equal one syllable, which is about five times more efficient quantitatively. As a qualitative improvement, the advantage is inestimable.

Mark Twain, one of the first professional authors to buy a typewriter, said:

"The machine has several virtues. I believe it will print faster than I can write. One may lean back in his chair and work it. It piles an awful stack of words on one page. It don't muss things or scatter ink blots around."

Mr. Clemens was a forward-thinking man, and qwerty was a remarkable innovation for its time. It's been responsible for over a century of great prose and programming. But everything he says there goes for steno too -- plus a whole lot more besides.

5 comments:

Stan said...

I agree with everything you said but I have questions. Everyday I look over at my colleagues writing everything out in longhand and think, "wow, how does anyone get away with NOT KNOWING shorthand?!" To me, the thought of slowly dragging along at normal handwriting speeds of 20-30wpm seems unnecessarily arduous and clunky. Likewise, after learning the basics of steno, I am questioning the usefulness of ALL "complete" input systems like qwerty whereby the person must type out everything letter-by-letter. We have the technology to let computers make very accurate guesses as to what we are typing just by entering the bare skeletons of words and phrases -- just take a look at T9 and your CAT program (so it's not faulty technology like with speech recognition that's the problem). Yet people hold on dearly to what they know. I get so many comments in lecture, work, and study groups as to how "great it would be to know pen shorthand" but at the University of Washington Seattle, a school of 39,000 I would safely say that I stand alone in knowing shorthand at any usable level. I've offered to teach it and maybe even hold a small evening class at the library either freely or with a nominal charge. Yet no one else really wants to step up and learn it -- the same ones who struggle to keep up in lecture writing furiously watching me effortlessly swish a bunch of strokes at a 100wpm and put my pen down.

So I guess my questions is: how are you going to implement this system in such a way to promote wide access and interest? If no one is willing to learn Gregg shorthand, something that requires no more than a 4$ book from Ebay, a pen, paper, and some motivation, why would anyone voluntarily submit themselves to the self-education and nominal investment of steno? As a shorthand writer, I can see the obvious benefits of this (and can't wait until it is developed to the point I could really use it) but the layman, I would imagine, would much rather just stick to pressing 'w' for one word forward as opposed to learning "WOFRD" on an unfamiliar keyboard.

Hell even the predictive text feature on cell phones now days are waning in favor of "full keyboards" because consumers demand it (which infuriates me). People aren't use to interfaces between language and view it as clunky when in reality it is the act of typing out every letter of every word including spaces that is clunky. I still use a T9 phone because a) I hate touchscreen buttons that have no tactile feedback whatsoever, b) qwerty was never meant to fit on a mobile phone and in being that small it is just a clunkier version of an already-clunky system, and c) it's hard to text on full qwerty while driving ;).

Don't get me wrong, I support Plover in every way and am considering doing something to help you out with it (maybe a Phoenix dictionary or other programming support -- I took Java a year ago) but how are you going to go about gaining widespread support that makes things like OpenOffice.org or Linux happen? The bigger question here is: why hasn't shorthand (in general) escaped from specialized fields like office work and captioning/court reporting services? What do you think is the biggest reason why people haven't thought of this already? Why are people too damn lazy to learn something so useful?! But then again, I suppose it does make the few of us who do possess stenographic skills to become a commodity. :)

Moss said...

I'm certainly very excited about Plover, but I have to admit, your programming example could only be written by someone who hasn't spent time using a modern IDE.

When I want to define a function, it's usually because there's a place where I'm ready to use it. In cases like this, I'll usually call the function before writing it:

obj.someFunction(1, 2, 3)

This is generally the first and last time I'll time out the full name of the function. IntelliJ notices that it doesn't exist yet, and highlights it in red. I type Alt-Enter (one stroke), and IntelliJ fills out all the boilerplate and drops me into position to start writing the function.

What about the next time I'm ready to call my function? Well, I'll get as far as the dot that starts the function call...

obj.

and IntelliJ will pop up a list of functions available on that object. If I'm in Java, with static types defined for everything, there's a good chance that it can tell which one I want from context, in which case it's one stroke: Ctrl-Shift-Space. If it can't tell from context, it may be as many as two or three strokes: s or possibly sF to disambiguate which function I want, and then Ctrl-Space.

What's more, if I rename the function later, there's no stroke to go back and redefine--IntelliJ knows about the new name automatically. And renaming is something I do basically all the time, so I need to have a good way of handling it.

When I started this, I was going to say that I didn't really see potential for steno in programming. But as I went on, I realized that it could actually be extremely helpful--if it was integrated properly. What I need isn't a faster way of entering code, it's a faster way of entering commands, and of entering text in the handful of situations where I still need it. I'd be very interested in an environment where:

* Every automated refactoring could be triggered by a single, memorable stroke.
* I could quickly type long names for test methods.
* Words typed in steno could be automatically camelCased or underscored_together.

I can't tell for sure how well it would work for me, but I'd at least want to try something like that out.

Tangentially, Stan's point about T9 reminds me that a friend of mine, also a programmer, went out his way to install a T9 keyboard on his Android phone. So clearly there are programmers out there who have an interest in shorthandish inputs of that sort.

Alice said...

You could also ask, Why hasn't America adopted the metric system yet? It takes a lot of money and effort to rehaul the entire system, which is what you would have to do if you want widespread support for something like steno.

Also think about why the Dvorak keyboard never caught on. Once people have learned QWERTY to the point of "you don't have to think about it," learning a new keyboard layout would not only take a long time, but slow down their efficiency while they were learning.

Learning steno would take even longer. Though I find it doesn't actually affect my typing on the QWERTY keyboard so someone could still perform at the same level of competency while learning steno, but you'd still have to be willing to retrain your typists. Combine that with the ridiculous costs of steno machines and software...

For most people, the benefits of shorthand are not worth the pain of training. It never ceases to amaze me how little effort some people make, whether for work or school. At my steno school, only like 3 or 4 people show up for class on Friday (compared to 15-20 Monday through Thursday), and my teacher said from what she's heard, it's the same at private schools where people pay thousands of dollars a month for tuition. Attendance just drops dramatically on Friday.

So it doesn't surprise me that nobody took you up on your offer to learn Gregg. How long did it take you to learn? And I don't mean, "Now, in theory, I can write everything in shorthand," but how long did it take for you to get to 100 wpm or speeds where it was more useful? And they'd be doing that on their own time - I'd bet there'd be more people interested if they could get some kind of academic credit for it. :P

Add to that the idea of having to transcribe everything back into English... (Could you just leave your notes in shorthand and come back to it a month later and be able to read it with nothing more than just notes defining any temporary briefs you made up for that class?)

For steno, at best I think you'd get a few forward-thinking professionals (writers and programmers as Mirabai mentioned) who adopt this system so they can be better at what they do. Everyone else will be too lazy or content with the current system to bother with something new.

In my dream world, people, even if they were too lazy to retrain themselves, would teach their kids shorthand - both in writing and on the keyboard. Then you wouldn't have to worry about retraining. :P

Tony said...

Ok, let me just say how excited I am about Plover. Mirabai, I've followed, and greatly benefited from, your postings on the Depoman forum.

I decided to learn steno about six months ago because I write a lot and I hate the speed of typing. It became an obsession. I ordered an antique steno machine online, started learning first Phoenix, now intensively studying StenEd. But I have nothing electronic.

I am buying a Sidewinder this very day. You will be hearing more from me.

Mirabai Knight said...

Tony: Woo-hoo! I can't believe how many people are actually going through with this and buying Sidewinders. I really have to get back to work on Plover so it at least outputs to a file and isn't just a pretty-looking demo. I'll do my damnedest to carve out some time this weekend. Thanks for stoking the fire, guys!