in reply to Re: creating crystal ball
in thread creating crystal ball

Sorry ... I couldn't wait for you to post the next chunk. It's an interesting question...

Good, that you didn't wait. I plan to enter next chunk in a few days rather than in a few hours. You have almost written that for me, because in a natural way thinking about the problem goes in direction 'probabilities', 'mostly used', etc. Let me answer this part in another meditation.

...and while reading it, I couldn't help thinking about LZW compression. I'm not sure if you're familiar with it or not...

Yes, I know about compression algorithms, maybe not in detail, but overall technology. It will help storing those all possibilities, no doubt. Made me think about another approach: offer common 2-, 3-letter long hints, e.g. 'thr', 'in', 'st'. But it won't work. Either I'll end learning to stenotype (and learning new alphabet/set of symbols) or spending time accepting offered hints. I mean, what is quicker: to choose from 'is', 'if', 'in' or just to write letter 'i' and letter 's'?

Something like: space would autocomplete the current word, tab would autocomplete the current "best guess".

Space is not a good thing to accept hint while typing text full of spaces. Rather Tab and Enter. But it's detail and matter of personal preference. One can make shortcuts configurable.

Regarding resource usage...

I think it is not yet time for bothering about resources. You are right, memory is cheap, CPUs fast. A propos, I 'discovered' what efficiency is needed for final solution: it depends on user's typing speed. If user types 10 CPM(chars per minute), algorithm should run 10 times per second, for me it will be ca. 40 CPM, if there is any 100CPM magician willing to use it, it would be nice to have it working with frequency 100/s. Tough constraint...

If you decide to start implementing it with this table-based idea, let me know, and I'll jot down my ideas for the data structure and such. Be sure to keep us apprised of this project, it sounds fun!

You can be sure I won't keep it hidden :) I want to split the fun to following parts:

('Project'? He called this a 'project'... I though I'll end up with one file, maybe 50 lines long?...)

P.S. How do you, people, do it?!? I mean, writing nodes so quick! It takes time to preview and format correctly and you give almost immediate (and so long!) response! Admit, you had this answer prepared for a few weeks and just waited for proper question... :)

Replies are listed 'Best First'.
Re^3: creating crystal ball
by roboticus (Chancellor) on Apr 22, 2008 at 18:12 UTC
    grizzley:
    P.S. How do you, people, do it?!? I mean, writing nodes so quick! It takes time to preview and format correctly and you give almost immediate (and so long!) response! Admit, you had this answer prepared for a few weeks and just waited for proper question... :)

    Well ... you almost answered it yourself earlier...

    if there is any 100CPM magician willing to use it, it would be nice to have it working with frequency 100/s. Tough constraint...

    I first touched a computer (terminal) in high school, and immediately realized that I'd be using them for the rest of my life......so I took typing classes the very next semester. The large number of pretty girls in the class had no bearing on my decision! ;^) It was perhaps the most useful course I took.

    One thing about being a relatively fast typist, though...I can't *stand* it when an IDE tries to help me type or predict what I'm going to do next. There's a "flow-state" you're in when you touch-type, and making decisions on choosing text fragments keeps pulling you out of the flow, so it ultimately slows me down. So even if you're successful in this project, I still won't be able to use it... ;^P

    ...roboticus
      I tried to search google for some stats on how fast people type. I found this typing test and it seems that for simple text without '[]{}$!&%^#' even I am much faster than 100CPM. So the constraint becomes at least 300/s.