Thursday, May 6, 2010

Collaboration!

So Moss, my awesome programmer friend, came down from Boston and worked with me today on Plover for four glorious hours. The good news is that we made several changes to the structure of the program, arranging things more logically so they could be handled in a less convoluted way and laying the groundwork for the next several things on the agenda, namely:

1. Reconciling the Gemini version of Plover with the Sidewinder version of Plover. (Currently they're in two separate files, and the Gemini version doesn't interact with the GUI part of the program.)

2. Making it so that words deleted by the asterisk key in the GUI are also deleted in the log file. (Currently log.txt just records all translations made during the session, even if they were supposed to have been deleted.)

3. Fixing the bug where, if more than the maximum recognized number of keys is pressed on the Sidewinder at once (which seems to be around 13 and up), the program freezes because the "released keys" list is longer than the "pressed keys" list, and so it can't figure out when to process the stroke, flush it, and move on.

4. Eventually adding special syntax recognition, so that punctuation, capitalization, glue strokes, and adfixes all work properly. This is at the bottom of the list, but it's an important step to get to in terms of Plover's actual usefulness as a method of text entry.

The bad news is that we haven't actually implemented any of those features -- yet. We did add a test file (stenowinder_tests.py) for developers to use in figuring out dCAT versus Eclipse compatibility, and we also made two little helper files to streamline the process of swapping out dictionaries and changing the 'dCAT' or 'Eclipse' flag in stenowinder.py.

* If you have a dCAT dictionary, rename it 'dCATDict.py', then download dcattktest.py, stenowinder.py, and tktest.py. Run dcattktest.py and it should launch the GUI in the proper format.

* If you have an Eclipse dictionary (like ploverbd.py), rename it 'eclipseDict.py', download eclipsetktest.py, stenowinder.py, and tktest.py. Run eclipsetktest.py and it should launch the GUI in the proper format.

I know this seems more convoluted than it used to be, but it keeps people from making mistakes when switching between dictionary formats, like I did last week when I thought I'd fixed the asterisk bug and it turned out I'd just forgotten to switch between 'dCAT' and 'Eclipse' format. The difference between this solution and the alternate files I made (and later discarded, namely dcattest.py and dcatwinder.py) when I first converted the StenoMaster dictionaries is that eclipsetktest.py and dcattktest.py are just tiny little launching programs, not an entirely separate fork of Plover, so I can make as many changes as I want to the main program and they should still work fine. It's better. Trust me. More later!

No comments: