Daniel Petersen's Blog

Developing two videogames -- 9001, an addictively fast paced arcade game, and It Usually Ends In Nuclear War, a strategy game which is something of a mix between Civilization and Stellaris.


Programming and Stenography

Posted on 2014-10-31

Before I got into programming I was interning and on track to be a professional stenographer. It’s a stenographers job to transcribe spoken word into written form, usually for courtrooms, conferences, TV captioning, or to help out the deaf community.

Pictured above is my machine, a Diamante.

In order to be able to keep up with how fast people are able to talk, Stenographers type on specially designed machines like the one above. These machines allow people to reach speeds of 300+ words per minute. You have to be able to write at a staggering 225 words a minute with at least 99.9% accuracy in order to even be eligible for work. To put this into perspective, 110 words per minute is about as fast as the most people can hope to reach on a regular keyboard setup.

I think people see these stats and start imagining all the different scenarios and uses cases for being able to type at 225+ words per minute. To give an example, I watched a presentation and read a Hacker News thread a few days about an open source program which is best explained as Microsoft Word for stenography machines. It’ll translate the strokes from a stenography machine into English and it’ll also allow you, with the help of an attachment you’ll need to buy, to turn a regular keyboard into a stenography machine. Stenography can now reach the common man!

A lot of people seemed generally optimistic about the idea of stenography creeping into everyday life, or at least other professions. One person asked, “If Plover can effectively make Steno keyboards understandable by our OS of choice… Should we start teaching our kids this thing before they ever get hooked into qwerty?”

And the answer is no.

Stenography is in no way shape or form suitable for everyday use. The talk I linked to above was pushing the idea of using stenography for programming, which is in my opinion is an awful idea. I cannot hammer home this point home enough – no one should seriously consider it.

This is the stenography keyboard. Notice anything unusual? There are only 21 keys on there, yet there are 26 letters in the alphabet. And it’s actually more unusual than that, because there are a few letters which are on both the left and right sides.

QWERTY is pretty straight forward to learn. There’s a key for every letter in the alphabet. You press a key and it appears on your screen. Simple. And yet I still see people struggling to type above 40 Words Per Minute.

With stenography machines, the keyboard is separated into two halves. On the left half there are only 9 keys, but each letter of the alphabet can be written with those 9 keys because it’s context sensitive. The letter “t” by itself would be the letter t, but if it’s next to a “k”, it might become the letter d.

You’re not so much typing letters as much as you’re typing sounds. So the word “car”, for example would be written “kar”, or the word “talk” would be written “tauk”. You’re also not typing letters individually. The entire word is considered as a whole, and the goal is to press as many letters of a word as you possibly can at the same time. So for the word “tauk” you’d press T, A, U, and K at the same time. Sometimes you can get the entire word in one stroke, but some words you need to come back for a second, third, or god forbid forth stroke.

Because it’s all phonetics based, you run into conflicts like “sell” and “cell”, so you still need a way to write a c, but that’s the gist of it.

Worth mentioning is that there are only 4 vowel keys on the machine. A, O, E, and U are the vowels that are on there, and if you press one of those keys individually, you’d write a short vowel of that key. If you wanted to write a short I, you’d press E and U together. You would write long vowel sounds by combining different vowels together. So for example, if you wanted to write a long e sound, you’d write aoe, long U sound would be aou, long a sound would be ai (or aeu depending on how you look at it), long o is oe, and long i is all the vowels together at once.

You can see that combining letters together to represent more complex strings is a big part of stenography. The real secret behind it is that they take this concept to the extreme. People use what they call briefs, which is combining commonly said words together into unique key strokes. “T S” combined together might form “it is” for example. And because speed is the only thing people really care about, the concept is taken to an insane degree. People try to abbreviate everything. Entire sentences written in one stroke.

What does all of this mean? For starters, it can be hard to read what you’ve actually written. The word dime, for example, you’d see raw as “TKAOEUPL”. TK for D, AOEU for long I, and PL for M.

It means that everyone is writing in their own language unique to them as an individual. Sure, you might learn the same theory as another person, but that theory gets warped and manipulated into an abomination of its former self thanks to the necessity of using briefs to achieve the desired speed.

It means that you have to go through a painstaking process of defining your own dictionary so that the machine can translate your strokes into english. This will take years. I was at it for two years, and while I was able to write at around 240-50 words per minute, I still had a daunting number of briefs and phrases that I was adding to the dictionary on a daily basis.

It means that speed is the only thing that people care about. At high speeds people are advised to just write something down, -anything- down in the heat of the moment, because you can decipher it later on. Which of course means having to actually go through what you’ve written and make sure everything is properly translated into english, because you’re going to make mistakes when you’re writing that fast. A misstroke might be obvious, or it might be a mistroke which forms another word or phrase. You won’t be looking for just an underlined red word, you’ll be checking every word written to make sure it’s the word or phrase you meant to type, decoding everything you’ve written based on the context it was written in. Sure, you’ll write write at 225 words per minute, but the aftermath is time consuming. Definitely more so than writing at 110 words per minute and not making any mistakes, which is something I’m confidently able to do with a regular QWERTY setup.

It means stripping syllables off of words in order to get the word written in fewer keystrokes, which of course adds to it being harder to translate later.

To expand on the last two thoughts, your writing will be vague. You can type exactly what you want to appear on screen with a QWERTY keyboard, and there will be no ambiguity about it. You can certainly type the exact thing you want on a stenographic keyboard, curly brackets with proper spacing and all if programming, but you’ll need to be unreasonably good to do so.

It means that it’s a complex system which is time consuming to learn. They tell you it’ll take two years to learn, but I’ve met people that were at the school for 4+ years and unable to advance. It doesn’t appear to be something which everyone is able to grasp.

It means changing your very way of thinking. I think anyone who reaches the state of being able to write at 225 words per minute has to have their way of thinking shift slightly. Stenography is now engrained in my brain, and every word, every single phrase you can possibly utter is permanently associated with a hand motion. It does not add any value, and it does not go away.

I’m quite frankly not even sure why people want to program at 225 words per minute. The bottleneck in programming, for me at least, is how fast I can think, how fast I can design and structure the code, and how fast I can solve problems. How fast I can type has never been a bottleneck. Stenography requires a certain portion of your brain power, so your thinking is going to be bogged down by adding that layer of abstraction between you and your writing.

Given that, I wouldn’t be surprised if stenography actually hindered programming. I think it’s very telling that the person leading the Plover project has had a hard time learning how to program. That extra layer of abstraction is distracting from the actual goal, writing code.

I’ve heard the idea that stenography might be good in terms of preventing arthritis or repetitive stress injuries, but I think that varies depending on the person. My hands have not been the same since I took up stenography. There are professional stenographers that I’ve spoken to who complain of horrible hand pain. I personally don’t have any problem typing all day on a regular keyboard, but a day of stenography takes a toll on my hands.

I think at the end of the day, the Plover guys are trying to solve the wrong problem. Stenography is a dying field. I don’t wish anyone to lose their livelihood, but realistically speaking, the job should not exist once text to speech technology advances far enough. I’m not claiming that the field will be replaced by it, but I also don’t love the idea of people having to learn such an inane and archaic system.

Copyright © - Daniel J. Petersen