Dasher:A Novel Text Entry System For Mobile and Other Devices [video]
video.google.com
video.google.com
The video is long, but I did not regret watching it. Here David Mackay, an information theorist, explains how one may input text through space limited devices. If only I could explain theoretical concepts as lucidly and as well as he does.
What interests me is that, Dasher, when adequately augmented, is even more appropriate for inputting programming text than say English. Though English has been modeled by (stochastic) context free grammars, its only an approximation. Whereas programming languages, fit it to a 't'. Mackay mentions that English has an entropy of around 1 bit per letter and that a finger is usually capable of generating 14 bits per second. Source code, I believe, has significantly less entropy than English (this depends on the language of course).
I think lisp is a good language to target because the actual layout of the source code does not matter and can be automated. Also because it is such a thin layer above the AST and hence an ideal match for simple context free grammars. It is also advantageous that the first token of an s-expression has an overwhelming possibility of being drawn from a set of few key possibilities. Making the language's bit rate low.
There are several extensions that are possible. For instance given a code base, learn the coding style and adapt the model to it (including the style of generating identifier names). For new code bases, one may learn the model on the fly.
Finally, I like his analogy. Writing as an activity has had two dominant forms, (i) pushing buttons (ii) scribbling. Dasher is writing by navigating/driving efficiently through a library of all possible text. Depending on the style of your intended text one may re-arrange that library.
The only drawback I see is that it requires your attention, unlike say typing. But that might after all be a good thing.
Its released under GPL and available for free on iPhone as well http://www.inference.phy.cam.ac.uk/dasher/MobileDasher.html
I tried to find a closed caption version of the video. But it appears that google has not enabled auto closed captioning on all of its channels. Apparently they are rolling that feature in gradually. So maybe sometime in the future the video will have closed captions.
http://googlevideo.blogspot.com/2006/09/finally-caption-play....
Definitely update us at some point with your progress; I'm always interested in hearing how people have surpassed it and led successful lives.
I don't see how being distracting can be an advantage for an information entry system. It seems like it would just distract you from the content of the message. Care to elaborate? (I'm curious)
Edit: The other major drawback is that it limits your expression. Suppose for example that I want to write the word "Rhinocephant" (it's half rhinoceros, half elephant, and 100% imaginary). But if I want to type that with Dasher, it will be extremely difficult (because it is not in their language model). On the keyboard (or pen) the hardest part is deciding how to spell it. (Unless I'm wrong about typing imaginary words?)
In fact I just had to try your example out on it. It turns out 'rhinocephant' isnt a hard enough word for the default English language model at all. 'rhinoce' and 'phant' turned out to be common substrings.
What's the low-down on this technology?
One can try it in one's browser here http://www.inference.phy.cam.ac.uk/dasher/TryJavaDasherNow.h... but looking at the video/demo helped in understanding what is going on. In fact I was surprised to find that it's actually easier to use than what it looked like in the demo.
http://git.gnome.org/browse/dasher/tree/
Last commit only a few days ago, that's good.