Thursday, September 30, 2010

Calm Before the Storm

Just so none of you are alarmed, I've temporarily switched Plover's Github repository to private, at the request of Josh, the programmer. He's putting the finishing touches on the big release version and doesn't want old messy code lying around all over the internet. I've tested the version he's currently polishing, and it's absolutely glorious. Installation is dead easy, the interface is simple and intuitive, and the actual translation (now with formatting and orthographic suffix rules!) is like butter. Like butter, I tell you. You're gonna love it. He says it'll probably be about a week before the big reveal, so I hope you can all hold out 'til then. If I get a chance, I'll try to put together that screencast I've been promising. It's gonna knock your stenoloving socks off.

Tuesday, September 21, 2010

Plover takes control

So Josh, the person responsible for 99% of Plover's code, came by my coworking space today and showed me the newest version of Plover. It's wonderful beyond description. The dream I had when I first came up with the concept and started this blog back in 2008 is finally realized: Plover now writes instant English translations from a steno machine or SideWinder to the active window. Yes, we have achieved keyboard emulation. It blew my mind to see it, and I did a jig of giddy glee.

Now, for the time being this only works on Ubuntu. Windows development, when it comes, will be a fair distance down the road (possibly after development for Android, though we're still thinking about how best to work out that one.) Still, with Wubi available, there's no reason that anyone with a Windows machine can't install Ubuntu as a dual boot option on their system in about 20 minutes, without affecting their existing configuration at all. It's remarkably seamless. There are also a few other kinks to work out before I upload the new code to the Github. We discovered a bug or two today, so Josh is going to tackle them over the next few weeks and hopefully after some testing we'll have a good stable release to show you. Then there's the polishing that needs to be done, adding some linguistic and orthographic rules, and putting all the formatting syntax back under the hood where it belongs. But this is a huge step, and I'm thrilled to bits. In the next day or two I might try to do a sneak preview video to show you guys, if I can get a screencast put together. But for now, you're gonna have to take my word for it. It works! It works! Yeehaw!

Saturday, September 4, 2010

New readme file!

So the illustrious Stan, longtime Plover user and supporter, has turned the ugly-as-sin Github readme file into a gorgeously formatted PDF. He also assigned it a version number, which I'd been extremely neglectful in not attending to up 'til now. Behold!

Plover Readme 1.3

Thanks, Stan! You're the best. Hopefully in the not too distant future we'll be writing a whole new extensive readme to incorporate the keyboard emulation features that Josh, Plover's lead programmer, is currently working on.

Edited to add Stan's reply in the comments, just because it's too good to be overlooked by people who might not click through:

Well, it ain't open source for no'n ;).

I definitely had fun doing it -- even though it distracted me from actually practicing steno along with the fact that I stayed up until nearly five in the morning to do it. But I figured this would be easier than the old readme file which I for some reason I had a hard time following (maybe I was the dummy toward which the dummy series are directed).

But I'm glad I could contribute. I hope the version number makes sense. My reasoning was as follows:

1.0 - Plover that worked in command line.
1.1 - Plover that opened the small window (for which you made the 'it really works!' video)
1.2 - Addition of Eclipse and DC dictionary support
1.3 - Current one with the text output and GUI.

On a final note, I want to let everyone know that everything in that readme is subject to change and revision. I threw that logo together because it was the first idea that popped in my mind but again, I can design something a lot sleeker if I spend a little more time thinking about it. But I do love the designs from the design prototypes post so I will do my best to try to somehow integrate them if I decide to change it up.

And of course with any major changes with Plover will hopefully be documented in the readme.

I'll put up a url for the original InDesign file once I get my FTP server working again (home ISP services tend to look down on mass file sharing I have found) to uphold the opensource spirit.

Go Plover and opensource software! I'm pretty much done shoveling through my backpack for the hardware key every time I have to open CaseCATalyst or having to spend $5k on Eclipse once I go pro. Many people at my school and around Seattle have even expressed interest in learning steno after observing me practice at coffee shops or libraries. They say, "How is it that you're 'typing' THAT fast?" Or, "My fingers and wrists would kill me if I even attempted half of that pace on a regular keyboard." Then I begin to explain how it works, show them my theory notes, and tell them that I was doing a 200wpm drill and they become captivated further. Once I tell them how much machines and software cost however...

Makes me wonder how many people we could get to at least give steno a chance if the equipment were more accessible.

Steno machines and software are really not complicated things. It's only because of its esotericism that companies are able to reap in as much as they do and bully their users around with excessive and cumbersome anti-piracy measures for technology far exceeded in complexity by things as common as the iPhone or a netbook PC.

With everyone's small contribution I think Plover's really got a chance to rise up to become an equal competitor along side DC, Eclipse, CaseCAT, etc.

Linux did. It even runs on mobile phones. Who's to say we can't steno on an iPad or on a tablet PC?

Monday, August 30, 2010

Steno 101, Lesson Two

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

It's been a while since the last installment, but here without further ado is Steno 101, Lesson Two. Now is probably a good time to review Lesson Zero and Lesson One.



Before we get started, I have to address an issue I inexcusably neglected in the previous two segments. If you look at the steno keyboard, you'll notice that the left hand side has four columns of keys before it hits the asterisk, but the right hand side has five columns after the asterisk.



So unless you're Count Rugen from the Princess Bride, you might be wondering how you're supposed to handle that extra column of keys. The answer is that the right hand pinky finger operates both of the two rightmost columns, even though it rests on the left TS column rather than the right DZ column when it's not in use. I prefer to use steno machines with wide keys that let me hit all four keys with one pinky, if I want to, but different stenographers have different preferences. The main thing to remember is that the pointer fingers should always be on the columns adjacent to the asterisks, and the rest of the fingers should follow naturally from there. I've recently started tutoring a beginner in steno, and her fingers kept wanting to drift over to the right, which meant that she had to either stretch or shift her hand left whenever she wanted to press the FR keys, which is really inefficient, considering how often "FR" is used in steno, versus "DZ".

So you've learned S, T, P, and R on both sides of the keyboard, and you've memorized all the various vowel combinations and diphthongs you can get out of the four vowel keys, A, O, E, and U. What's left? First, the other consonants just represented by individual keys:



You can see there are more on the right hand than on the left, but they should all be pretty easy to remember, since they're just straight-up letters rather than chords. The tricky part comes in here:



These are all the letters represented by chords. This time there are more on the left hand side than on the right. In fact, in most steno theories, including mine, only the left hand side has a complete alphabet, and it's the only side used to spell words out letter by letter when they aren't defined strokewise in the steno dictionary.

All this is a lot to memorize, but I hope that breaking it down in this way will make the process easier. Feel free to print out these charts and have them on hand for reference. You might first try memorizing the individual keys on both sides, then try to memorize the complete alphabet on the left hand side incorporating both chords and individual keys, and finally incorporating the four chords on the right hand side. Then try putting the letter keys and letter chords together with the vowel chart from the previous lesson. Once you've got all that under your belt, you'll be able to write almost any English word phonetically, and you'll be able to use the left-hand spelling alphabet (which I write using the letter or chord plus the asterisk key for lowercase letters; I'll get to uppercase letters and other alphabets in subsequent lessons) to spell out words that aren't in the dictionary. Next lesson we'll learn what to do when a word isn't possible to write strictly phonetically, then work on a few principles for briefing prefixes, suffixes, and other common word components.

Wednesday, August 18, 2010

Funding

So I just had a good session with my Python tutor, and it seems that Plover has reached a turning point. The essential steno-to-English structure of the program is working well. The next biggest priority is getting it to work as a keyboard emulator, and it looks like the most efficient and robust way to do that is to plug Plover into a program with flexible, relatively low-level control over the OS: namely, Autokey in Linux and AutoHotKey in Windows. We're starting with Autokey first, because it's written in Python (AutoHotKey is written in C++, though fortunately it's also open source) and my Python tutor runs Ubuntu, so it's the most convenient one to try first. We dug through the program a bit today, and it looks like it's going to involve a fair amount of intricate rerouting and testing and kludging. The other issue is that Plover is written in Python 3 and Autokey is written in Python 2.6, so we'll have to negotiate how to work that in as well. What it comes down to is that an hour a week or every other week is not going to be enough to get this moving along in the near future. Plover development so far has been funded entirely out of my pocket, to the tune of nearly $2,000 so far. I can only afford to pay about $300 a month, which has been keeping development at a relative snail's pace. My tutor is excited about the project and would like to put more time into it, but he's got a business to run just like I do, and can't afford to work at a loss. It looks like our options are:

* Keep developing Plover at the same rate we've been moving, about three hours per month.

* Find more funding from an external source, either from individual donations, a FLOSS grant, or some kind of seed money from a person or organization interested in contributing to the project. The trouble there is that Plover is not something that can be monetized directly. The whole point is that it's free for anyone to download and/or modify. Donations might help a little, but its user base is currently pretty small, and not likely to get much bigger until it's capable of being used as a fully functioning keyboard emulator.

* Figure out a way to make money in ways adjacent to Plover.

- My Python tutor is also a hardware hacker, so he's interested in trying to put together some kind of wearable steno keyboard with Plover built in, so it can just be plugged into a computer and work without any software configuration or Autokey-style workarounds. The only way that can be profitable is if it's sufficiently cheap to make and there's sufficient demand from wearable geeks willing to pay $100 - $200 to triple their typing speed. Whether either of those conditions are possible is difficult to calculate.

- Alternately, we could work on making a standalone AAC device, using Plover and Open Source Text-to-Speech Software. The advantage there is that AAC devices are often funded by health insurance or governmental agencies, and can cost thousands of dollars for non-realtime speech synthesis. If we could act as a vendor to people with good fine motor control but the inability to speak, as outlined in my How To Speak With Your Fingers article, there might well be a bigger pool of money available and more motivated users willing to pay for and learn how to use such a thing.

- On the other hand, I could try to make money on the pedagogical side of things, offering Plover and the Steno 101 series (next installment coming soon!) for free, but charging for personal steno tutoring or classes or something of that sort, either remotely or online. I'm certainly willing to put in the time, but I wonder how easy it will be to find people who want to take steno classes on software that's still in development, and how much they'll be willing to pay for the privilege.

- The third way to pay for development would be to keep funding Plover out of my own pocket up until the point that it hits keyboard emulation, then try to build it into a video game hosted on the web. If that takes off, we can fund development via ads and donation requests on the website. (A Tetris/Guitar Hero hybrid has been proposed, and its skeleton is already sketched out here, just waiting for code and graphics to bring it to life) Again, lots of uncertainty, but I feel like the video game route is both the best way to learn steno and the best way to bring it to the attention of the general public. If we could get it working on a mobile/wearable system, all the better. But we can't even start on the video game until Plover is emulating qwerty output, and that's looking to be a considerable distance away.

* And, of course, I want to improve my own Python skills so that I can start contributing code rather than just money, enthusiasm, and steno expertise to the project. That's easier said than done, but I'm going to try to keep making headway in that direction. Currently Plover isn't in the best shape for collaboration, but it's definitely a future priority to structure and document it so that people can contribute code as well as or instead of money to help get it off the ground.

Any thoughts and suggestions are very welcome. As long as I have money to spare, Plover development will continue to go forward. For now, I think I'm going to keep spending that $300 a month; I'm going to work on making a dedicated Plover page with a FAQ, donation button, and links to relevant posts from the blog; I'm going to do a bit of outreach in the mobile/wearable and open source communities to see if I can figure out a hypothetical price for functioning plug-and-play steno hardware; and I'm going to keep blogging the Steno 101 series so that anyone who wants to teach themselves steno can do so, using the current not-quite-a-word-processor version of Plover. It's definitely a start, and we'll just have to see where it goes.

Monday, August 16, 2010

Update

I gave my first beginning steno lesson to the auction winner last week, using a new SideWinder and the latest version of Plover. She did remarkably well, for only an hour worth of steno training! I taught her how to write "the stoat sat at the top step" (old steno school habits die hard) and gave her some exercises on memorizing the vowels and diphthongs with S, T, P, and R. Hopefully this week we'll move on to some of the other consonants, and she'll be off and running. I'm also supposed to be having another Python lesson tomorrow, in which we're hoping to get qwerty emulation operational in the Linux version of Plover using Autokey. I'll keep y'all posted.

Thursday, August 5, 2010

StenoKnight Blog?

Lately I feel like I'm bubbling over with things to say about my business, StenoKnight CART Services. I get some of my thoughts out on Twitter, but the character restriction is starting to feel really limiting. I have an articles page, which contains both things that I wrote for the Plover Blog and things that I wrote on various other forums over the last few years. But I kind of want to have a space for blog posts on my daily CART work, freelancing, promoting a business, time management, Deaf/HoH issues, and all that sort of thing. The Plover blog doesn't seem to be an appropriate place for it, so I'm toying with the idea of creating a StenoKnight-specific Blog. But, on the other hand, I've had the StenoKnight Facebook page for a while now and it's been largely neglected. Maybe that's just because I don't really enjoy the Facebook interface, but I'm worried that starting another blog will quickly feel like a burden and dilute my professional web presence even more. So maybe I should just write the things I want to write offline, polish them up, and post them on my articles page rather than having a dedicated top-of-the-head blogging space. I don't know. I know this isn't Plover-related, but since a fair number of this blog's readers are aspiring court reporters or CART providers, I guess I'm wondering which you guys would rather read: Polished articles on various topics that are published pretty infrequently on my website, or a new space for less carefully edited but more frequent posts on running a CART business in New York City?