DreymaR said:Could you accept just losing the first key press per page and keep the rest? That isn't much of a loss. The first word (and trigram?) would be easily approximated by using the average speed of the other letters in it as the speed of the first letter; that ought to be acceptable. This would only be necessary in first words that don't start with a capital letter, for which you'd let the Shift key register the start of typing. It is my impression that most statistics collectors throw away much more information than that anyway! Keep in mind that with typing you tend you generate a generous amount of data over a couple of days so it's not as if there is a dearth of information to work on.
I'm afraid I find myself rather unwilling to get used to a routine of pressing Space to start each and every page of a long text. I actually think that this little annoyance could put me off your program in the long run, since it happens so frequently. This is in my view a typical example of a common problem in program design: The creator (and possibly many of the seasoned beta testers too) is quite willing to make an effort to work around the program's small quirks, but these become a problem for the first time user evaluating the program before that user has become 'loyal' to the program.
OK, OK, I made it optional.
But first off I think your "typical example" is a bit of a generalization although I caused that myself I guess: when I said I felt your pain I was more showing empathy than I was actually being in the same situation, because for me it has never been a quirk or an annoyance at all. I use this program like Typeracer.com. I don't seek to write serial texts at a leisurely, continuous rate, (I added the serial text feature fos a friend) I seek to race and go as fast as I can go, and at first I thought nothing of the space, it was something that followed naturally from the implementation, but later I have actually grown to like it as a sort of green light signal for my fingers. A dip before the sprint. (And space is a lot better than waiting 10 seconds on Typracer, which IS annoying.) I have never had anyone else comment on it either, though I guess you are like the third person to try this program, so 1 out of 3 is a pretty large chunk. << edit: Actually, strike that. I asked another guy who had tried it and he said he thought the space was odd, though he never voiced it before. :p Can't trust friends, it seems. >>
If you turn off the option it sets the time used for the first character to the time used the last time you were timed using that key. This should be natural enouth... (If this is the very first time you type the key, another approximation based on your average key-striking-pace is used.) As you suggest, this inaccuracy should get lost in the mountains of data to come and probably no one but me will be bothered by it. Problem is I am the wrong sort of idealist. The way my brain is wired I tend to choose the ideal of the numbers/mathematics of a programming issue instead of thinking about the lovable squishy meat popsicles commonly referred to as users. However I don't lose anything by making it optional and it wasn't too much of a hassle so that's what I've done.
I don't intercept shift keys since in the program I simply subclass a text box and track changes to it -- and shift doesn't do any changes. This is a conscious choice. I don't want to track shift, control, compose, altgr, etc. as then I would either have to mess with character composition or let go of keyboard agnosticism (what is shifted in one layout is composed on the next and a plain key on the third, etc). Second, I only want to care about the "end result". I mean maybe you have to press 3 physical keys to produce a "[" I don't want to have do deal with that, I just want to measure how fast you actually produce "["s.
GG reference? :)
Maybe you could entitle the disable button simply 'Disable selection' (if enabled; 'Enable selection' if disabled), and then the regexp field 'Optional regular expression for disable/enable'? If nothing were selected the button could be named just 'Toggle Disable' and when something were selected it would change name. Not sure how to optimize for intuitivity; the regexp is a nice touch but a complex concept for many users...
A redesign of the source tab has been at least several days coming! :) When that happens I'll probably do something wildly different, I don't know yet. I'll have to let my subconsciousness work on it. But I've been thinking of a sort of bastard union of Performance and Source where there is a "root" node and the sources underneath, and you get statistics and graphs when you click on the various items in the tree. Having several thousand items like that in a tree is quite slow in Python though, so I have to figure out how to make it faster.
I do like regexes though, as they give unprecedented power to the users who knows them -- and in an ideal world (mine) everyone knows them! Maybe make a separate search/edit tab for finding and editing texts/lessons, I don't know. All I have are ideas.
Indeed, it took a little to figure out what you meant by 'texts' versus 'lessons' but that wasn't a problem. When you mature the program a bit more you may have a tutorial or a setup session.
Hey - did you see the TypOMeter stat collector also made in Norway? I used it for a while and it's good fun. Maybe you'll make your own "Satellite" prog too since you're so good at this? ;)
http://www.informatics.no/progvareTMLoc.htm
Nope I haven't seen it. That's interesting, but doesn't give you word-stats, which is primarily what I wanted. I've sensed that there are a lot of left-handed-ish words (like "was" "wharf" "quaff" "war" "raster" etc) that kill me on Colemak when I try to go fast (I make the most mistakes and I am slowest with my left hand) and I wanted to identify them so I could train myself. However, a general key-logger that gives typing stats for all user programs is not something I have planned as it differs from Xlib to Windows to OSX to ...
<< edit: forgot to say, I uploaded it here this time: https://code.google.com/p/amphetype/downloads/list >>
Last edited by tristesse (22-Dec-2008 17:27:36)