Wednesday, August 18, 2010


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.


mhack said...

I like the idea of using a video game to demo plover and serve as a starting point for input from coders and financial contributions from others.

I've been meaning to help work on the skeleton tetris project but have had zero time up til now. I will start taking a look at it.

Doesn't it make sense that there should be a simple but functional application of plover that anyone can play around with? This seems to me to be the best starting point for getting contributions.

Tony said...

I had not thought before about people with communication issues using some form of steno. That opens the door to assistive technology grants. Having some kind of institutional affiliation with a university would help here. Is your coding person by any chance in the employ of a university?

All the ideas you talked about in your post sound promising, but I think trying for an assistive technology grant would probably be my priority if I were you. If you don't currently have an institutional affiliation, maybe starting a non-profit organization would be a way for you to pursue this idea and give you standing to approach a communicative sciences/disorders dept. for their backing.

I'd also encourage you, in the mean time, to set up a tip jar on this blog.

Tony said...

Mirabai, just as a follow-up to what I said earlier about grants, here's a link to the blog announcements at OSERS (the Office of Special Education and Rehab. Services at the Dept. of Ed). Take a look at Chart 7. I think what you're trying to do might fall into the line of some of these grants:

Mirabai Knight said...

Thanks, Tony! I'm definitely going to look into those grants. I agree that assistive technology is probably the best bet for Plover at this point. Thanks!

mark said...

have you ever thought of using Gedit as a base?

I have thought about doing this as well as I am programmer too. In a way I also think you could do this in html5 at it now has a browser database where you could store a dictionary. Lots of options here, but I think it would probably be a good idea to build out from a foundation, like a browser or gedit.

I like what you're doing.


mark said...

Mirabai Knight said...

Hey, Mark. My text editor of choice is Vim, and I've often thought that after Plover got to a certain point the next logical step would be to develop a steno-compatible plugin for Vim. I don't really use Gedit, so I don't know how that would be different, but I would love to give up my $5,000 dongle-bound proprietary CAT software in favor of Plover plus Vim plus a little extra steno support. I think it will take some time until Plover can get to that point, but the day when I can start CARTing full time using only Free software would be a glorious day indeed.

Rycuda said...

Have you come across ? It is basically designed for this type of situation.