Tuesday, April 19, 2011

Hover Plover!



So I've finally settled on the name I want to give to the as-yet-nonexistent steno tutorial video game: Hover Plover! A plover on the wing is already faster than your average earthbound creature, just as qwerty typing is much faster than scrawling stuff out longhand. But picture with me now... A plover in a hovercraft. Zooming around over land and water, rocketing a hundred feet into the air and then plummeting dizzily down to earth again, coming to rest an inch above the ground and snickering in your face. You can see it, right? Nothing, and I mean nothing, is faster than a plover in a hovercraft. It's the perfect symbol of what steno can do for anyone who wants to turn spoken words or thoughts into text. I'm not a game designer and I'm certainly not a programmer (sadly, I haven't written any Python code for almost a year now. I keep thinking I'll get back to it, but work has been ridiculously busy this semester.), but I've been playing video games since 1986, and I've got a few ideas on where to start. They can be refined and developed later, once Plover itself has gained a few more features and once we figure out a way to raise money for game development, but this is just to prime the pump.

There are several modes in Hover Plover, because it's got two distinct purposes: One, to teach steno to total beginners, from the keyboard layout to abstract principles of theory and briefing; two, to give people an incentive to use steno, to make it a self-reinforcing experience, as addictive as any game with a significant learning curve. The payoff of being able to write at 225 words per minute is so far in the future for many steno students that it may as well be impossible. That's why about 85% of people who enroll in steno schools drop out. And since Plover is designed for people who don't even want to make a career out of stenography, but who are approaching it more casually, who are mainly just curious about what it can do to help make their daily typing tasks more efficient, the fun-to-grind ratio has to be much higher than it is in your typical steno school (which basically just consists of mindwrenchingly boring dictation drills), or everyone will drop it like a lukewarm mudskipper within five minutes of trying it out. Even at low levels, there's got to be that incremental get-a-reward-and-raise-the-stakes mechanic that keeps people playing Tetris until 4:00 in the morning.

So the first mode is just key recognition, very similar to your typical qwerty typing tutor. Color-coded keys from the steno chart flash on the screen, and you're asked to type them. The plover zooms his hovercraft around the screen to show you where to go. First you get the whole keyboard with letters on the keys, then you get the keyboard with blank keys, and finally you're just given the letter and you have to find and press the key yourself to get the colored letter flag to come up. Then you start with basic chording, along the lines of the first few Steno 101 lessons. It's hard to make this bit too exciting, but once you've got the basics down, you can go into game mode.

Game level one is individual letters -- some of which are represented by chords, some by single keys -- in a split-screen format, to encourage people to use both hands. So you have S-, left side S, and -S, right side S. At first you only get one at a time, but eventually you start having to press two letters, one on each side of the screen, at the same time. I don't know if there should be multiple plovercrafts or if one plovercraft should phase shift so it's able to hit every letter simultaneously, then coalesce back into its singular form -- but that's something we can hammer out during the design process. The main thing is that every time someone hits the right letter and scores a point, they're reinforcing the keys in their muscle memory. They can have a choice of a game with single keys that starts slow and gets faster, or a game that keeps the same pace but starts with single keys and moves up to chords. At first you're allowed to stagger the keypresses, first hitting S- and then -S for a two-stroke point. But after a while you'll be penalized if you don't hit them more or less simultaneously. Tiny incremental steps with visual and auditory reinforcements all along the way -- that's the way to get someone hooked. Once they've fully internalized the keyboard, they go back to the tutor. Again, it'll follow the rough plan of the Steno 101 series (which I swear I'll finish someday, though possibly not before summer, I'm afraid.) After you complete each tutorial, you unlock a game, and each game you unlock becomes more complex and immersive.

Eventually, I'd like to offer at least half a dozen Hover Plover minigames, in every style of classic gaming, from a platformer (where your plover moves forward at a constant rate, but you've got to strike the right chord at the right time to make him jump, or else he'll smack into something and the plovercraft will shoot out from under him), to a bird's eye space shooter (along the lines of TypeStriker, where words fly around and shoot your plovercraft, and you have to stroke them out to auto-target your lasers on them before they can deplete your shields; a good dictionary builder and memory recall tool) to a rhythm music game (the Plover mailing list has already talked about this one a bit, with the working title of "Steno Hero"), for a more integrated intermediate to advanced drill, writing actual complete sentences at a rate defined by your own favorite songs. A package of several minigames, all unified by the simple plover-in-a-hovercraft motif, would let students focus on different aspects of steno writing without getting bored by just drilling the same thing all the time.

People would post videos of themselves playing the game on YouTube, and random gamers would stumble across them, wondering how it's possible to type the words of a song as quickly as they're sung, how someone can keep their head while word-emblazoned enemy starships crowd the screen, coming faster and thicker all the time, as the dauntless plovercraft locks on to each, writes their name in a nanosecond, and blows them into smithereens. Once people see how fun the games are to play, they'll want to make the effort to learn how to play them. Then one day they'll look up from their high score table and realize that not only have they spent the past four hours blowing up baddies and buffing up their in-game word arsenal, but now they're able to write emails or sales reports or short stories or blog posts three times faster than they ever could before. That's how we build our secret steno army: We hook 'em, we train 'em, and then we let 'em loose. Who's with me?

Wednesday, February 2, 2011

Plover 2.1.1 Released!

This is a bit overdue, I'm afraid. The first few weeks of the semester are busy enough that I haven't been able to keep up with Plover emails. But I'll get to them soon, I promise!

So Josh, our dauntless programmer, has released a new version of Plover.

* Fix for a bug that caused crash when adding, for example, an -ing suffix to words that end in a consonant followed by y, such as early -> earlier.

* Fix for a bug that caused crash when starting Plover configured to use a Gemini PR with a non-existent serial port.

* Update of the default dictionary to the latest from Mirabai.

* Refactor of the underlying config file logic such that addition of configuration options in future releases is invisible to the end user and less error prone.

Download it at the Launchpad site

I also was pleased to see in a recent post on Metafilter, someone asked a question about steno, and someone else -- who was not me -- answered it with a link to What Is Steno Good For. So that's exciting!

In other news, I discovered a few days ago that I can make Plover sort-of-kind-of work with my laptop's built-in keyboard, if I sort of roll or arpeggiate the keys. For instance, if I want to write my brief for "supercalifragilisticexpialidocious" (which, along with "antidisestablishmentarianism", is the first word people tend to say when they notice they're being transcribed in realtime), STPRAPBLG, I couldn't just press down all the keys at once the way I can with my SideWinder or Revolution Grand; my laptop's keyboard doesn't have n-key rollover, and recognizes only two or three keys at a time, maximum. But if I start out by pressing the S key (the A key on the qwerty keyboard), then the T and P, then while still holding onto the T and P, let go of the S, roll onto the A, keep the A pressed down and lift up the TP while going on to the PB, et cetera. When I get to the end, I release the last key, and the word pops up like magic. Plover is actually able to recognize all those keystrokes, as long as they're only pressed one or two keys at a time. And since it doesn't mark a stroke as complete until all keys have been lifted, you can essentially play this arpeggio of keys and come up with a correct steno translation for any word in your steno dictionary, even on a keyboard without proper n-key rollover. Now, it's nowhere near as quick as actual strokewise steno, and it's a bit tricky to do properly, but at the very least it can be useful for testing Plover when there isn't a SideWinder handy.

Monday, January 10, 2011

Steno 101: Lesson Three

Steno 101: How to Do It
Steno 101: Lesson Zero
Steno 101: Lesson One
Steno 101: Lesson Two
Steno 101: Lesson Three
Steno 101: Lesson Four

If you've gotten this far, you have progressed from Plover Hatchling


to Plover Fledgling.


Congratulations! Keep at it, and you'll be zooming around in no time.

Yes, another installment of the Steno 101 Series! It's been a while, huh? I've been sitting on this one for a while because it's tough for me to calibrate how much information to deliver in each lesson, and which aspects of steno to focus on first. The first few lessons were fairly easy, because they just introduced the steno keyboard, which is universal to all stenographic theories. As the lessons go along, though, I'm forced to choose between various schools of thought while giving a certain amount of fair play to the methods I don't use. Many books could be written on the differences between theories, and no two implementations of a theory are alike; each stenographer adapts their theory to their own preferences. The best I can do is to tell you how I made my choices over the course of learning steno and developing my dictionary, and hopefully that'll help you to understand the choices you'll be obliged to make as you go along.

So now you know how to write all the letters on both sides of the keyboard, and you can write tons of simple words, like "clock" (KHROBG) and "vowel" (SROUL). But how would you write something like "trash" or "bench" or "pitch"? When a word begins with Sh- or Ch-, you write them with SH- or KH-, which is relatively intuitive. But when they end in -sh, you use -RB, and when they end in -ch (or -tch), you use -FP. Why? No particular reason; you've now entered into the realm of steno conventions, which inhabits the middle space between the hard and fast rules common to all stenographers and the "arbitraries", "short forms", or "briefs", which are so numerous and unbound by theory that many of them are used by only a single stenographer in the world.

-FP and -RB are on the standard side of the steno convention spectrum and used pretty universally, as far as I can tell. There are quite a few more that are commonly accepted across a wide range of theories. Several of the consonant clusters I use in this chapter, though, are used in only one or two theories, and some I came up with myself through trial and error. Entries following these rules are all pretty well represented in the Plover default dictionary, but if you look at other dictionaries or steno theory books, you probably won't find all of them there.

Consonant clusters, in no particular order:

-PBLG -- "-dge", as in edge, badge, or Raj.

-FRB -- "-rve", as in nerve or serve

-FRPB -- "-rch" or "-nch", as in perch, bench, or crunch. Usually this works fine for both consonant clusters; it isn't necessary to specifically distinguish which one you mean. The only exception that comes to mind is "lunch" and "lurch", which I solve by writing lunch "HRUPBS".

-RBS -- "-tious, -cious, -xious", As in delicious, obnoxious, precious.

-*T -- "-th", as in fifth, plinth, or bath.

-*PL -- "-mp", as in plump or lamp.

-*LG -- "-lk", as in milk, whelk, or balk.

-FT -- "-st", as in taste, blast, or boost.

F is used frequently to serve as an S or S sound in the middles of words; SPAFPL is spasm. TKPWHRAFS is glasses. KIFG is kissing. But since F already serves double duty as both F and V, it can sometimes be tricky to handle, as in paves/paces, braves/braces, proves/process, laughs/laves/lasses, et cetera. Usually F as S gets lower priority (takes the asterisk or requires a extra stroke) compared to F as F or F as V. More on this in subsequent lessons.

-GS -- "-tion, -cian, -cean, -sion, -gion,", as in notion, ocean, passion, fashion, Titian, fission, elision, region, physician.

It's also used for literal -gs endings when there's no confusion (there's another one! KAUN-FAOUGS); since the word "bession" doesn't exist, you can use BEGS for "begs", but "PIGS" is reserved for "pigeon", and if you want "pigs" you're going to have to do it in two strokes (PIG/-S) or with sthe -Z key (PIGZ).

-BGS -- "-ction", as in faction, traction, constriction, diction.

Now, as you remember, -BGS is also -X, so you'll need to distinguish those sounds from one another when necessary. There are two schools of thought here. One is to decide that all -BGS words without the asterisk are -x words and if you want them to become -ction words, you have to put the asterisk in. This has the virtue of consistency, but it also requires more use of the asterisk than some people like (though you'll see as Steno 101 goes along that I'm quite a fan of the asterisk myself, and encourage its use for all sorts of purposes). The other way is to give the least common word the asterisk. So if "faction" is used more often than "fax", it'll be spelled TPABGS, but if "fix" is used more often than "fiction", you'll have to spell the latter "TP*EUBGS". Plover's default dictionary uses the "less common word gets asterisk" method, so you'll either have to memorize which word of each pair goes with which mapping, or you'll have to change them to suit your own preferences.

There are a few more consonant clusters that come up now and then, but these are the most frequently used, and they should be plenty to work on for now. In the next lesson I'll talk about prefixes and suffixes and give you some more principles for creating briefs and resolving homophone conflicts.

Finally, let me give you briefs for a few of the most common words used in steno, according to the hit counter of my steno dictionary. I told you about some of these in Lesson Zero, but then I wrote them in pseudocode, and now that you know all the keys on the keyboard, you're able to read and write them in actual steno.

-T = the
SKP = and (APBD can also be used, but it's more awkward due to the finger stretch)
TO = to
U = you
-F = of
AEU = a
THA = that
T- = it
S- = is
TPH = in
EU = I
SO = so
TH = this
T-S = it's
WAOE = we
SR = have
PWUT = but
TPOR = for
WHA = what
THE = they
R- or -R = are
OPB = on
TPHOT = not
PWAUS = because
TP = if
-B = be
TKO = do
W- = with
TKOEPBT = don't
-FT = of the
OR = or
PW = about
WAS = was
WUPB = one
K- = can

I know that so far this series hasn't had nearly enough practice material or exercises, and I'm going to try to fix that when I go back to revise the first three lessons. Of course, when the Steno Tutorial video game gets written, it'll offer tons of practice opportunities with realtime feedback, but until we're able to start working on it, you'll have to put yourself through your own paces. After posting this I'll start working on some exercises using what you've learned up to this point, and hopefully I'll be able to post them in the next week or so, but I really wanted to get this lesson up and out. With luck, the next one won't be so long in coming.

Sunday, December 19, 2010

Plover Speaks!



I finally uploaded a video of what Plover looks like when plugged into a text-to-speech engine. If you remember, the first part of my What Is Steno Good For series was called How to Speak with Your Fingers, and was about how steno can be used as a conversational tool for people who don't use their voices to speak. Plover's now at a point where that's not only possible, but ludicrously easy. All I did was to launch Plover, open a terminal window in Ubuntu, type eSpeak, press enter, and start writing. Whenever I wanted to send a line, I pressed R-R on my steno machine, which my steno dictionary has defined as "press return". That's all there was to it.

Recently, I was quite moved by Roger Ebert's blog post Trying to Get a Word in Edgewise, about the frustration he's experienced since he lost the use of his voice, and by my friend (and early Plover supporter) Mel's response to it. I was already in the middle of planning this video before the blog post went up, but after it was posted, one of Mr. Ebert's fans randomly came upon Plover and recommended it to him. The next morning I was thrilled to discover that Mr. Ebert had actually commented on the relevant article. I panicked a bit, because I didn't yet have anything to show him and no time to make the video until the weekend. Now it's finally up, though, and I can prove that Plover isn't just a pipe dream; it actually works. I know that Mr. Ebert uses a Mac, and that Plover is currently only working on Linux, but cross-platform support is high on our to-do list. I think this video speaks for me better than any blog post ever could, so I'll just leave it there.

(One more minor thing: YouTube lists the running time at 5 minutes, but the actual video is only about 2 minutes long. No idea why those extra three minutes of frozen screen were tacked on there, but just ignore them.)

Sunday, December 5, 2010

Plover 2.1 is Live!

Download Plover 2.1 here.

Incredibly exciting news! The new version of Plover has been released, and it now supports command strokes. This means you can use your steno machine to do anything you can do from your qwerty keyboard -- alt-tab, navigation, formatting, you name it. I'm going to try to make a screencast this week showing me using Plover with Vim, which has been a dream of mine since I first started thinking about Plover. Unfortunately Vim commands don't currently work with the SideWinder X4 (though we'll hopefully be fixing that soon), but the Gemini PR version works flawlessly with every program I could think to throw at it. The SideWinder should work fine with most other programs; it only has trouble with one-key alphanumeric command strokes. Next on the development list: Adding and editing dictionary definitions from the steno machine while using Plover.

Many thanks as always to Josh, our dauntless programmer. I've also updated the Donate button both here on the blog and on the FAQ page. For some reason it stopped working, but it's fixed now. Sorry for anyone who tried to donate and wasn't able to. If you'd like to give it another try, it shouldn't give you any more trouble. Please feel free to send questions, comments, bug reports, and feature requests to plover@stenoknight.com. I'm also hard at work on the next installment of Steno 101, so this blog should be seeing quite a bit more activity than it did over November, which was mostly consumed by NatCapVidMo.

I can hardly believe that my desire for a free, open source steno keyboard emulator that works on affordable hardware has actually come true. There's more to come, but this is a huge milestone, and I'm completely ecstatic.

Monday, October 18, 2010

New experimental version with improved GUI

Good news from Joshua, Plover's programmer. The newest update from the experimental series of Plover has been released. He says:

"The latest experimental release of Plover (version 2.0.0.4) includes a graphical user interface for viewing and editing all Plover configuration parameters. This will hopefully make Plover configuration much easier and less error prone. Aside from the known-to-be-buggy support for the Gemini TX stenotype, everything in this experimental release should work as advertised. If it doesn't, please let me know or, better yet, file a bug report directly in Launchpad."

Download it here.

New logo!



The logo I commissioned for Plover is done! Steno mavens will please note the eponymous feather pattern on the left wing. Logo design by Laura Lake, freelance illustrator. Font is ButterBrotPapier by Anke Art.

Now, I know it's generally traditional to name little animal logos that represent FLOSS projects. I'm not sure what, though. I was thinking of holding a competition for the longest (in terms of letters and/or syllables) common name that can be reasonably represented in one stroke on the steno keyboard. So something like KHREUFRD for Clifford or KHRAEURPBS for Clarence will do, but your invented SKWRO*EPBT brief for Jonathan doesn't count. Or we could leave the little guy nameless; I'm not particular. The main thing is we've got a logo. Now to print up some business cards for the next hacker/steno/accessibility conference I go to...