Friday, March 26, 2010

The Sidewinder X4 is here

It arrived today. This evening I cut up a couple of my old leather steno keypads, and laid out a steno machine on its keys.

This is a terrible webcam shot (I'll try to get a proper one with my partner's digital camera later), but you can sort of see the shape of the thing if you look for the non-illuminated black squares:



And here it is with the equivalent steno letters superimposed on the image by means of Microsoft Paint. Yeah, we're pretty high tech up in here.



I've tried it out, and the touch is actually not that bad. Some of the twistier steno outlines are a little awkward because the keys are quite a bit closer together than on a regular machine, but the anti-ghosting is working like a dream. I wrote the phrase "So is this working?" in steno six times and got this:

avarwdvlru
vaarwdlvru
avawrldvru
avarwldvru
avarwdvlru
avarwvdlru

AV or VA is "so" (SO)
A is "is" (S-)
WR or RW is "this" (TH-)
DVL or DLV or LDV or VDL is "working" (WOG)
RU or UR is "?" (HF)

The order doesn't matter in steno, so this amount of key-recognition consistency should really be all we need to make a relatively functional machine. I'm very excited. My Python tutor can't meet next week, but the week after that we might try to get the Sendkeys issue resolved, or we might backtrack a bit and see if we can get this $60 steno machine (plus $10 worth of keypads) working with our dumb terminal version of Plover. How amazing would that be, huh?

15 comments:

Stan said...

This is pretty cool stuff. I'm a steno hobbyist myself but like you said, it's just way too damn expensive for a broke college student like myself to dabble with it for fun. So frustrating! I am generally pretty dissatisfied with all popular methods of writing (longhand, orthography, qwerty) in that they are all so clumsy, slow, and unnecessarily complicated. This is particularly noticeable to me since I write a LOT in my daily life of being a college student. Naturally I wanted to learn steno to do all my writing with but for now I use Gregg shorthand to fulfill my stenographic needs. Fellow classmates actually gladly buy my copies of my notes off me because they're well, 80% verbatim transcripts of what was said in class minus random professorial tangents and the "uhh...um..."s and my own remarks or paraphrasing. But the decipherment and transcription process is disgustingly arduous (sometimes taking up to four hours everyday to transcribe a full-day's worth of notes) because of the level of abbreviation that is required in order for one to reach speeds of 120wpm+ with pen shorthand (I can't read my own freakin' notes!). But it is worth mentioning that after spending such ridiculous amounts of time deciphering my cryptic scribbles, for tests I would pretty much have a photographic, er, *stenographic* memory of all the lectures.

Anyway, I was initially trying to think of a way to take apart a keyboard and use its board to hack my old manual paper printer to digitize my steno strokes. Maybe by way of a rudimentary contact switch plate? But your keyboard setup seems *much* more promising. Please let me know if this actually starts to come together. I love the idea of being able to steno digitally for the price of a gutted keyboard and not droppin' a thou on what's not much more than a fancy electric typewriter.

Kudos to the good work and please keep it up!

Mirabai Knight said...

Stan, thanks so much for writing in! You are Plover's ideal user: Motivated, curious, but not able to spend big bucks on fancy equipment. That you're a pen shorthand writer is even better; I've heard that it's often a big help in picking up machine shorthand quickly. When I get Plover running on the X4, would you consider spending the $60 to buy one and try it out? I'll happily kick in to send you the keypads and provide any tech support that I can!

Stan said...

If you could do that it'd be amazing! I would most definitely do the keyboard hack for something so promising (and cheap!). And being a pen shorthand writer is absolutely helpful in that a lot of the principles in Gregg apply to steno theory (I've looked at Phoenix and Stenomaster) as well. "I have not been able" = AVNBA, "association" = ASOSH, "of the" = OTH, "please send me" = PLSEME (one big outline). I noticed that steno used a lot of the phrasing principles as well as the phonetic shortening of words. "is a" = SA*, "i have" = KWR-FB and having single strokes for common sounds in English by knocking out all the schwas and basically all the 'filler' in the language that contributes very little to meaning. Most of these things all have their pen equivalents.

Though it does suck that in real time steno, you have to write perfect outlines since a computer is not as good as you at deciphering less-than-perfectly executed forms or ones you make up on the fly. For example for some recent lectures I had to write the following and just arbitrarily made these up using abbreviation principles in Gregg: lipid bilayer = LB, anti-markovnikov addition of hydroxide to an alkene = A/MAKD(SH)HOS/D. Wouldn't I have to actually type them out on a steno machine?

"HREUP/UD PWAOEU HRAEUR"

I'm not even going to try the second example haha.

And also what dictionary does your program use? More specifically, which theory? Are dictionaries that modern realtime reporters use downloaded from somewhere or do they just sit down and think of every word they would write and stroke them all out individually saving them to the machine's memory?

Thanks again!

Stan said...

btw, someone is selling a stentura 200 srt in my area for 350$. is that a good price? and do you think that there would be some way to hack it in order to make it battery powered? i'm thinking one of those portable battery packs for your ipod or phone to emergency charge on the go...

Sonja Elen Kisa said...

Slightly more expensive than Microsoft's keyboard is the Razer Tarantula... http://store.razerzone.com/store/razerusa/en_US/pd/productID.169420000

Dunno if it has any other pros and cons.

Sonja Elen Kisa said...

Whenever I convert my Qwerty keyboards to Dvorak, I buy stickers from www.4keyboard.com

I've been happy with their quality and speed of shipping.

Mirabai Knight said...

Stan: I'll definitely answer your questions over the weekend! I should be working, though, so I probably shouldn't put them together until this play is finished.

Sonja: According to my inside source, the SideWinder X4, Razer Tarantula and Stealth 7G (with PS2, not USB interface) are the only truly anti-ghosting keyboards on the market. There isn't any additional benefit to be had from the Razer Tarantula for steno purposes -- according to my source, who definitely seems like he would know. (I'm being cagey because I haven't gotten explicit permission to reveal his identity. I'll ask him and then hopefully I can be less cryptic if he doesn't mind me mentioning him here.)

Sonja Elen Kisa said...

How do dictionary files work? Is there a standard format that steno software applications use, or is it proprietary? Can somebody download or distribute a dictionary for Stenomaster or for Phoenix? Or do we need to invent a new free steno theory (which might look like a mish-mash of Stenomaster and Phoenix, for instance, or even a knock-off of Stenomaster or Phoenix but called something different) which we can then distribute the dictionary files for?

Mirabai Knight said...

Sonja: Again, I think keypads are going to be preferable to stickers, just because they have some thickness and heft to them, so they can overhang a bit and help bridge the misaligned gaps between keys. Also, they help the fingers haptically identify the keys that are used in the steno layout versus the ones that aren't.

Mirabai Knight said...

Sonja: There will definitely be support for multiple dictionaries in the near future. Theory shouldn't be an issue, though which CAT program they're exported from might change the variables slightly. For now I'm just using my own personal dictionary (which started in Case CAT, moved to DigitalCAT for two years, and has been in Eclipse for the last three years, converted to rtf/cre with each shift), which I'm converting into Python dictionary format manually. I'll definitely write a standard dictionary converter somewhere down the line, but I've got to get a few other things (like writing directly to the OS, emulating keyboard output) sorted first.

Mirabai Knight said...

Stan: Just to answer one of your questions very briefly, if you have the $350 to spend, it's a fairly good price for a Stentura SRT. On eBay they're usually listed around $600 - $800. Now, it's not the most ergonomic machine in the world; you have to press hard enough to manually advance the platen with each stroke, which can get very tiring. But it already has a built-in battery, so no hardware hacking would be required. Plover doesn't currently support the Stentura protocol (Nor does it currently support doing anything with steno input other than displaying it on the terminal screen. Keyboard emulation is next on the docket, though.), but I'd definitely make an effort to program it in if I knew that someone out there would find it useful. So yeah, $350 is a lot to spend on a whim, but if you actually want to buy a steno machine, it's a fairly decent price. If it were me, I still might be inclined to go the Sidewinder Route rather than the Stentura route, just because it's so heavy and hard to stroke on... But if you want to own an actual realtime-ready steno machine, that's pretty much the cheapest you're gonna get one.

Sonja said...

Can you do a blog post about what exactly you do to mod the keyboard? You're physically removing some of the keys and then replacing them with home-made or modified steno-style ones that try to line up in columns better? So if I want to participate, I buy the $60 keyboard and then I buy the steno keys from somewhere else?

Mirabai Knight said...

Sonja: it's much simpler than that. I'm not removing anything. I'm using about $10 worth of leather steno keypads that I got from my steno machine company. They're self-adhesive and 2 or 3 millimeters thick. I trimmed them a bit and stuck them on the Sidewinder so that they were just a small amount wider and longer than each qwerty key, and slightly off-center to compensate for the misalignment of the qwerty layout. I'll try to get a higher quality picture soon, but it really couldn't be simpler. $60 for the keyboard, $10-$20 for the keys (I used less than half the full $20 set, and you can probably get them cheaper if you don't want leather). Trim, stick, and go!

Mirabai Knight said...

Hey, Stan. Sorry it took a while, but I didn't forget your questions!

And being a pen shorthand writer is absolutely helpful in that a lot of the principles in Gregg apply to steno theory (I've looked at Phoenix and Stenomaster) as well.

The dictionary I'm currently distributing with Plover (ploverbd.py) is my own personal dictionary, which is made up largely of the StenEd dictionary, plus plenty of my own modifications and additions, plus about 30,000 entries from the New York Career Institute theory dictionary, which is largely based on StenEd. If you're curious, you can download it and read it with a regular text editor to see how things are defined. I'd be interested to know what you think.

I noticed that steno used a lot of the phrasing principles as well as the phonetic shortening of words. "is a" = SA*, "i have" = KWR-FB and having single strokes for common sounds in English by knocking out all the schwas and basically all the 'filler' in the language that contributes very little to meaning. Most of these things all have their pen equivalents.

That makes sense. Now, am I right in thinking that pen shorthand doesn't have to worry about homonyms or conflicts, since you're always able to distinguish meaning from context while transcribing? That's a major hurdle in steno realtime, because the computer doesn't have the ability to choose the correct word or phrase from a soundalike steno outline.

Though it does suck that in real time steno, you have to write perfect outlines since a computer is not as good as you at deciphering less-than-perfectly executed forms or ones you make up on the fly.

That's not actually always the case, despite what I said above. Plover is a long, long way from addressing this issue, but Eclipse, the commercial steno software that I use, is actually able to guess at what word you were going for even if you misstroked slightly. Miss a letter, add an extra letter, and it can determine fairly well what you were going for by comparing the misstroked outline with correct outlines in your dictionary. Again, it doesn't have a semantic understanding so sometimes it guesses wrong, but computers are much better at guessing a right answer when given a wrong one than they are at distinguishing between two equally possible right ones. Eventually I'd like to put some of this fuzzy logic predictive stuff into Plover, but I've got to worry about the basics first, so I'm afraid you're right that you have to stroke things perfectly to get a correct translation in Plover. Of course, if you know that you make the same sort of finger slips over and over, there's nothing to stop you from putting the correct definition of a misstroke into your dictionary.

Mirabai Knight said...

For example for some recent lectures I had to write the following and just arbitrarily made these up using abbreviation principles in Gregg: lipid bilayer = LB, anti-markovnikov addition of hydroxide to an alkene = A/MAKD(SH)HOS/D. Wouldn't I have to actually type them out on a steno machine?

Certainly not. Briefs (also known as arbitraries) are the bread and butter of realtime steno. You could have LB defined as lipid bilayer in your chemistry dictionary, and as Late Babylonian in your archaeology dictionary. You could even use HRB for lipid bilayer and HR*B for Langmuir-Blodgett in the same class; pronounced the same, but written and translated differently. I define these from my machine several times a day, and it only takes seconds to do. It's tremendously useful. Plover doesn't have any dictionary management capabilities yet, but they will definitely be a priority in the next phase of the process.

"HREUP/UD PWAOEU HRAEUR"

I'm not even going to try the second example haha.


You could certainly write it that way, though if I were to write out lipid bilayer I'd do it "HR*EUPD PW*EU HRAER". "HR*EUPD" is my stroke for lipid, to distinguish it from "lipped". And PW*EU is my stroke for "bi^" the prefix, as opposed to by, which is PWEU or buy, which is PWAOEU, or bye, which is PWAO*EU. (for bi, the adjective, I either fingerspell or use the prefix and then force a space so that it doesn't glue itself to the next word. If it came up more frequently, I might come up with yet another outline, but it's not always worth the trouble for two-stroke words.)

And also what dictionary does your program use? More specifically, which theory? Are dictionaries that modern realtime reporters use downloaded from somewhere or do they just sit down and think of every word they would write and stroke them all out individually saving them to the machine's memory?

I'd venture to say that every working stenographer has a dictionary that's considerably different from the one they were given when they first started using CAT software. Additions, emendations, subtractions, substitutions, briefs -- everything is arranged according to the preferences, experiences, and mnemonic abilities of the stenographer. It takes a lot of time to truly customize one's dictionary, and the work never ends. I add an average of 20 words per day to mine, and I've been at this for almost six years now. In my first few years of studying steno, I added 15,000 words to my dictionary, and changed the outlines of many more. I've heard of some people starting from scratch, but fortunately I didn't have to do that. I started with a 34,000-word dictionary and then incorporated a 70,000-word one shortly before I started working. Now my main dictionary is over 121,000 definitions, and I've got many job dictionaries of several thousand definitions each. Dictionary customization is one of my absolute favorite parts of the job.