
Typing at 255 WPM shouldn't cost $4000 - tux1968
http://opensource.com/life/11/12/open-source-changes-face-stenography-and-possibilities-hearing-impaired
======
impendia
I was a juror on a court case, and we had a court reporter who typed in steno.
Witnesses, lawyers, the judge all spoke fast, regularly interrupting each
other -- and our reporter got it all down, perfectly.

It is easy to glaze over a figure like "255 WPM" and not realize how
impressive it is. In the courtroom, once I thought for a second about what she
was doing, I felt as if I were watching a magician at work.

~~~
wisty
Some lawyers (from a certain firm?) in Australia are said to be taught. to.
speak. really. slowly.

It's clever, because even the dumbest juror will find it uncomfortably slow,
and kind of tune out. It has a hypnotic effect, allowing irrational points to
be drilled in without anyone realising that it's not quite logical.

Other lawyers will try to talk fast, and use big words, but people are
actually incredibly good a parsing fast speech. It's slow speech which really
tricks us.

------
naner
How she envisions stenography would be used for programming:

<http://stenoknight.com/WritingCoding.html>

 _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._

~~~
sliverstorm
Not a programmer here, but would you say your productivity is impaired by
boilerplate?

I always got the impression the thing that ate up time was compiling,
debugging and thinking. Not typing.

~~~
wahnfrieden
Thinking and debugging take up a lot of time, but typing time is still
nontrivial and worth optimizing. Especially in debugging where moving around
the file quickly is important, vim's movement commands make this quicker.

~~~
conradev
I do agree that being able to navigate an editor like vim quickly is the
determining factor in code writing, however, I do not think WPM is directly
related to one's ability to do this. Even though I don't type insanely fast, I
can hit a 1-5 key combination in an instant.

~~~
FuzzyDunlop
Correct me if I'm taking this the wrong way, but I don't think WPM even
applies to programming. To audio typers, secretaries, etc. it's a good measure
of how well you can keep up.

To a programmer, you can only go so fast when you're not even dealing with
human language that has no natural flow, and the quirks of the editor of your
choice. Especially on, say, a Mac, where you could be typing a '#' far more
times than you ever would in any other situation, or a backtick or pipe.

It's probably telling that we're favouring languages that reduce the syntactic
complexity of coding, like CoffeeScript in favour of Javascript, Ruby, maybe
Python, Clojure, and the functional languages like Haskell and Erlang. Not
just because it's easier to read, but because it's easier to type.

I might just be talking rubbish, of course. But I wouldn't use typing speed as
a performance metric for a programmer.

~~~
jiggy2011
It's not much of a performance metric , but I don't really enjoy typing very
much in situations where I have decided what I'm going to do and then have to
type it out. I can't generally think and type very well at the same time.

This means for me that trying a random idea I have quickly is much more
enjoyable in say python that it is in Java.

Sometimes I want to just try something random in Java but I really can't be
bothered to type all the code required to create a new class, handle
exceptions and then also do the compile and run.

If I had super fast typing skills or a more concise language I would find much
less friction is doing that, this would make my programming time much more
educational and make me better in the long run.

~~~
ploversteno
It's the fluency that steno lends to composing text or code that's far more
useful than the speed. Tab-complete requires that you pause for a short time
to read your options while you flip through them. Steno is entirely
deterministic; you can implement the command in one stroke without twisting
your hands around (unlike metacommands, especially those used in emacs, which
can result in the dreaded emacs claw), and you know exactly what the result is
going to be. Because you're writing entire words with each stroke, if you
accidentally hit the wrong key, you'll be able to reverse the error in a
single "delete last stroke" command, rather than having to backspace 20 times
to correct a letter transposition error you made several words ago. Qwerty
requires commands and variables to be broken down into minuscule portions,
with the potential for error occurring each time a key is deployed. Steno
reduces that error potential drastically by chunking words and variables into
single-stroke entities, requiring less vigilance for error and allowing for a
much smoother flow of thought and composition.

------
saulrh
<http://stenoknight.com/plover/ploverdemo/ploverdemo.html>

In-browser demo of the software.

~~~
chrisohara
<http://i.imgur.com/iKqk9.jpg>

~~~
saulrh
Ah, I forgot to post the tutorial link!
<http://stenoknight.com/wiki/Quick_References>

~~~
ploversteno
Also useful: <http://stenoknight.com/plover/qwertytosteno.png>

------
fragsworth
This is actually going to remain a problem until computerized speech-to-text
is solved. And I'm pretty sure speech-to-text will not really be solved until
generalized artificial intelligence is solved, so this will be quite some
time.

~~~
Vivtek
According to what I'm reading, speech is only about 180 WPM and steno can be
240-300 WPM. Speech-to-text will actually be _less_ efficient than steno. And
for me, typing 1.25 million words of English per year (in technical
translation, mostly from German) - if I tried using speech-to-text my larynx
would be burnt out in a month. No way. I've heard some people get mileage out
of it, but not me. I'm learning me some steno, starting today.

~~~
fragsworth
I can't tell if you're joking or not. The point of speech-to-text is not
necessarily efficiency, it's also for subtitling and/or recording normal
speech (i.e. phone conversations, or TV screens in public areas)

~~~
Vivtek
Ah. Yeah, for that it's obviously going to be the bee's knees except for the
whole AI-completeness issue. But for me it's useless; I look at German text
and type English text, so the issue really is throughput. (Mostly.)

So no, not joking at all. Just talking about a different application.

------
Estragon
I already type way faster than I can compose code or prose. 255 WPM would be
pure stream-of-consciousness, but I suppose that would be nice to have in some
situations.

~~~
mbowcock
I had the same thought. Maybe for short burst where something is well thought
out in your head and all your doing in transcribing. For most coding I find my
typing to be more than sufficient. Maybe for something like documentation (but
who writes that anyway?).

~~~
Estragon
Even documentation, if you want people to actually read it.

------
SoftwareMaven
So it's emacs as a keyboard driver? Seriously, being able to chord more
efficiently would be awesome. I wonder how integrating emacs and stenography
would work.

~~~
gcr
I use <http://www.emacswiki.org/emacs/key-chord.el> to great effect. Lets you
bind arbitrary commands to arbitrary keystrokes. For instance, I have switch-
buffer bound to Z+X, which is just a short distance away and more efficient
than C-x b for my tastse.

------
pkulak
Wait... 98% of deaf and hard-of-hearing people don't know ASL?

~~~
Homunculiheaded
I can't verify this claim, however I would guess that the "and hard-of-
hearing" part is a big factor. I have a suspicion that the number of people we
would refer to as deaf is dwarfed by the number of people who are 'hard-of-
hearing'. Additionally the actual quote only claims that this percentage of
people are not fluent. I would guess the most people born without the ability
to hear have learned to sign fluently, I would likewise guess that most people
who become even severely hard-of-hearing later in life get by on closed-
captions, lip-reading, and basic knowledge of signs.

~~~
redthrowaway
The problem with sign language is that it doesn't do you any good unless
everyone else speaks it, as well. Sure, there might be special services for
the deaf where they can expect to be able to converse with someone in ASL, but
for the vast majority of their interactions they will be dealing with people
who don't know it. It then becomes something of limited use.

It's as if there were a programming language that greatly improved your
productivity, but was only available for SPARC boxes running Solaris. Sure,
the few times you were able to use such a system, it would be great. But how
many programmers would bother to learn a language that they would use so
infrequently?

~~~
kingnothing
If the hypothetical language actually were that much "better" than existing
languages, hackers would flock to it in droves. SPARC boxes running Solaris
would quickly become the new AWS boxes running nginx.

~~~
redthrowaway
Right, and perhaps it's a poor example. That was, in fact, the first
counterargument that I thought of when I wrote that comment. I was trying to
think of something that would be intuitive for the audience here, and perhaps
in pursuing that goal I made a poor analogy.

The point is, ASL must be a _language_ first, and an aid for the disabled
second. On that point, it fails. The goal of a language is to enable
communication; if less than 1% of people you are likely to interact with are
capable of communicating in that language then it is of limited utility.
People who have normal hearing are generally not going to learn ASL, as the
value proposition just isn't strong enough. Because of that, even people who
have hearing problems might not be incentivized to learn it, for the same
reason: it just might not be that useful.

Now, as with any group, a shared language leads to shared culture and a sense
of belonging. That, in and of itself, will make ASL attractive to many people.
That's fine. It fails at its intended use as a primary means of communication
however, as it just doesn't let you communicate with that many people. This, I
think, is why many deaf people also learn to lipread: it allows for
communication outside of the (relatively) small deaf community.

------
jpiasetz
I wonder how this compares to switching to a Dvorak keyboard. I tried that for
a while and was much faster (my vi keyboard motions getting screwed up is why
I switched back).

~~~
jcrites
I'd like to share some products and techniques which have helped me deal with
daily intense computer use:

I learned to type Dvorak and did so for months. It got to match my Qwerty,
about 100 WPM. I didn't find that it provided much advantage overall.

Note that you can type Dvorak on most modern keyboards with software settings
-- in Windows for example, you can just change the key layout and it will
start acting like a Dvorak keyboard.

The best advantage I got from learning Dvorak wa san opportunity to re-learn
proper finger positioning. As a result, my form in Dvorak is better than
Qwerty (which developed organically and is not correct). I never saw much of a
substantial overall improvement, despite months of use. If you'd like to speed
up your typing, look to improve your finger positioning (primarily: not taking
the index/middle fingers away from the home row under any circumstances).

The biggest disadvantage from Dvorak is that it moves characters such as
Z,X,C,V. I was not able to effectively re-learn the "undo cut copy paste"
commands. I was not able to find a good way to categorically customize them
across applications (which is really disappointing -- why can't the OS handle
mapping physical keys to common logical commands like undo?)

In the past year I got a Kinesis Advantage contoured keyboard:
<http://www.kinesis-ergo.com/advantage.htm> \- once I got it, what a breath of
fresh air!

It took _significantly_ longer than Dvorak to learn, because Space/Delete and
all the control characters move to your thumbs. However, I was eventually able
to achieve about a 25% speedup. Their customer service was also good.

The keyboard is arranged so that finger movement distance is reduced. I feel
much more "flow" typing on a Kinesis. The keys roll off your fingers in a
long, continuous, fluid stream. Despite the long learning curve, if you type
daily for your work, I highly recommend making the investment.

I also highly recommend the 3M ergonomic mouse:
[http://solutions.3m.com/wps/portal/3M/en_US/ergonomics/home/...](http://solutions.3m.com/wps/portal/3M/en_US/ergonomics/home/products/ergonomicmouse/)
\- together with the Kinesis, these two products and a standing desk entirely
resolved some minor repetitive stress problems I had developed through years
of daily intense computer use.

I found that I needed to keep a regular mouse and keyboard for gaming and
precision applications. My use of the 3M mouse has never approached the level
of accuracy of a normal mouse, since it is deliberately designed to use the
larger, stronger, but less accurate muscles of the arm to move it (rather than
lower forearm/hand). But importantly, it has freed my hand from any repetitive
stress problems.

For precision mouse work, I prefer the Razor:
[http://store.razerzone.com/store/razerusa/en_US/DisplayHomeP...](http://store.razerzone.com/store/razerusa/en_US/DisplayHomePage)
\- I was skeptical about Razor products initially but took the plunge a few
months ago. Razor's mouse is really excellent and has _perfect_ feel. It
really is an improvement on the standard vanilla office mouse. I think it has
high measurement accuracy, and they seem to have greatly tuned the way
velocity/acceleration/jerk translate into cursor movement; the cursor more
closely matches my intention than with other mice (as rated by performance on
<http://dagobah.net/flash/Cursor_Invisible.swf> ). My favorite "regular
layout" is Das Keyboard: <http://www.daskeyboard.com/>

(I have no affiliation or commission with any of the providers of those
products; I'm evangelizing them purely as a satisfied customer.)

~~~
mkl
_The biggest disadvantage from Dvorak is that it moves characters such as
Z,X,C,V. I was not able to effectively re-learn the "undo cut copy paste"
commands. I was not able to find a good way to categorically customize them
across applications (which is really disappointing -- why can't the OS handle
mapping physical keys to common logical commands like undo?)_

Colemak was designed explicitly to get around this problem.
<http://colemak.com>

------
BasDirks
Is this worth learning for programmers?

~~~
Vivtek
Getting up to typing speed of 100 WPM on steno reportedly takes you six months
to a year - so almost certainly not.

Ask me again in six months to a year, though.

~~~
ploversteno
It takes students in vocational steno schools six months to a year. As of now,
they're our only source of hard data, because steno has been financially
inaccessible to people not pursuing it as a career. My hunch is that a steno
tutorial game will produce significantly quicker results than the current
steno school dictation model, and that programmers (and other technical types)
will likely pick up steno skills at a much faster rate than the average person
currently attending a steno school.

~~~
jodrellblank
_Based on your knowledge of English, is the phrase "pie nearing" likely to
come up in conversation as often as the word "pioneering"? No? Then setting
the outline "PAOI/NAOERNG" to "pioneering" is probably safe. Still, this kind
of probability check needs to be done whenever defining a multisyllabic word
in a steno dictionary, and the decisions are not always as clearcut as
"catalogues" and "pioneering"._

Really? In the days of Google, there's no clear and widely accepted answer to
questions like this?

~~~
ploversteno
That's a particularly clear-cut example, but what about something like "my
great" and "migrate"? 33 million hits for one, 37 million hits for the other.
They're both pretty likely to come up, so it's important to have separate
strokes for both. On the other hand, what about "mycolic" and "my colic"?
Mycolic has more hits, but it's also a more specialized word; if you're not
captioning in a scientific setting, you're very unlikely to hear it. On the
other hand, while a phrase like "my colicky baby" appears less frequently on
Google, you're more likely to encounter it in general conversation than you
are a specialized word like "mycolic". So a lot of these decisions depend on
the context in which you're likely to use them. They can sometimes get tricky.

~~~
jodrellblank
I see in the tutorials that you have bear (BAER) and bare (BAIR). Has it
altered your pronunciation of words so you try to pronounce the difference?
Does it cause problems when captioning people with strong accents?

~~~
ploversteno
Not really. When I'm in steno mode, it's like I'm speaking to myself in a
different dialect, but when I'm in English mode it's all normal again. Like,
this is how I would pronounce the previous sentence in steno:

When I'm n stoin mode, ts like I'm speeg to mysef nay difrt dailect, but when
I'm in glish mode ts aul nol sgen.

------
rsanchez1
\-- Sometimes I tell people "I can type 240 words a minute" and they're like
"Yeah, and? Who cares?" but sometimes people are like "Dude! That's so
awesome! I wanna do that!" and that's when I think this thing actually has a
chance."

I am firmly in the "Dude! That's so awesome!" camp. I will definitely be
trying Plover.

