Typing at 255 WPM shouldn't cost $4000
opensource.com
opensource.com
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.
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.
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 DFD 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 SPHUPBGS (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.
I still don't really "get" the syllable perspective but it seems like it's just a mapping of one stroke (I think my confusion is what constitutes a "stroke") on specialized hardware to several on a qwerty board? So I guess you're limited to the number of keys on a qwerty board for single-point-of-entry commands with vim, but you could always use the specialty keyboard and map the output of those as multi-character vim commands... It seems the main benefit is having those mappings done for you and available system-wide.
As far as I can tell, steno works by mapping a "stroke" (a combination of keys pressed at once -- like a chord on a musical instrument) to a "syllable" which appears to be a chunk of a word for prose but apparently can be any chunk of text for things like programming. I think this is why she recommends a 45$ "gamer's keyboard", most regular keyboards have a limit to the number of simultaneous key presses that will be registered. Also it appears that when using a keyboard for steno you still only use a limited number of keys. From the video it looks like she barely strayed from the home position.
Gaming on a keyboard with severe ghosting problems is infuriating, and I'd imagine that steno would be just as painful.
From playing around with it for a few minutes, there's a little bit more to it than that. It auto-inserts spaces between words, but there are some keys which add to the end of the previous word (e.g. one button adds 'es' to words ending in 's' or 's' to other words, or makes a new word if part of another chord). So it isn't a direct one-chord-to-one-string-of-characters mapping.
I always got the impression the thing that ate up time was compiling, debugging and thinking. Not typing.
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.
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.
To be completely honest these features don't save much time, even though I use them all the time. As you say thinking and debugging do, compiling not so much unless you're working on a very big project.
Writing fast means you can express the idea in your head before you forget exactly how you figured it was going to work. This is the reason I find most compelling to be able to type fairly fast as well as know the keyboard shortcuts for jumping around (for example jump word in VS is ctrl-left/right arrow).
Revelations can fade fast once you start implementing them.
(Said the guy who types in an increasingly-heavily-modified Dvorak layout. I recently mapped Backspace to "change window" (i.e., ALT-Tab in most WMs), since I long since moved Backspace to Caps Lock. You can't be much more willing to fiddle with your keyboard layout than I am.)
Thus, steno is not necessary for either of the advantages mentioned. However, it still might be good to have the mindset of using tools like vim-arpeggio more, and steno still might make typing variable names slightly faster.
Edit: "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." http://plover.stenoknight.com/2010/04/writing-and-coding-wit...
I wonder why.
But I didn't know anything about steno before today so I'm probably over-simplifying. And it's pretty interesting that plover can work with vim...I'd love to see a blog post or screencast showing how that works.
In-browser demo of the software.
Perfect text to speech also needs true AI that understand the text it is reading it's context and intention. Reader must understand the message to read properly.
So no, not joking at all. Just talking about a different application.
250WPM is at least 2 times faster than I write. That's surreal.
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?
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.
http://www.hearingconnection.org/hearing_loss_statistics.htm...
2% is actually a little generous based on this data, but I like to round up. 35 to 36 million people report some degree of hearing loss, out of around 311 million people in the US, or about 10% of the population. In 1972, an estimated 642,000 people signed ASL at home, and about 375,000 of those were deaf. It's somewhat likely that the number of signers has gone down since then, due to the decrease in rubella (a significant cause of childhood deafness), the oral deaf and cochlear implant movements, et cetera. It's unlikely that the number of signers has increased. So assuming there are still around 375,000 deaf/HoH signers in the country, that's 375,000 out of 35 million people with hearing loss, or just about 1%. I put the extra percent in there for wiggle room.
This means that stenographers can enter text at up to 300 words
per minute (the world record is actually 360, but that's an
outlier), making it the fastest and most accurate text entry
method currently available. By comparison, top qwerty typists can
do 120 WPM, top Dvorak typists around 140 WPM, and voice writers
dictating to voice recognition software top out around 180 WPM.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/... - 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... - 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.)
Colemak was designed explicitly to get around this problem. http://colemak.com
One is that it includes a keyboard layout called “Dvorak – Qwerty ⌘”, which lets you type text in Dvorak but switches to Qwerty temporarily while the ⌘Command key is held down. For instance, “⌘Q” according to the Dvorak labels would actually execute “⌘X” for cut, but you can still type a q by pressing the same key without Command.
The other solution is that it lets you globally remap keyboard shortcuts of menu items, in System Preferences > Keyboard > Keyboard Shortcuts > Application Shortcuts. To fix Undo, for instance, without using the Dvorak – Qwerty ⌘ layout, you would add a new shortcut for “All Applications” with Menu Title “Undo” and Keyboard Shortcut “⌘;”.
Ask me again in six months to a year, though.
Really? In the days of Google, there's no clear and widely accepted answer to questions like this?
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.
I am firmly in the "Dude! That's so awesome!" camp. I will definitely be trying Plover.