This is cool. And the experience of gesture typing is so different from touch-typing on a physical keyboard that I think it might be easier to experiment with or learn new keyboard layouts in this environment.
Way back in the PalmPilot days I used the "Fitaly" keyboard layout (wow, their site is still up and hasn't changed in years: http://www.fitaly.com/fitaly/fitaly.htm) and it was fairly easy to learn (by point of comparison, I've never been able to make the transition from qwerty to dvorak on a real keyboard).
The complexity of gesture typing opens the door to a lot of interesting questions that aren't relevant for "normal" typing. I really enjoyed reading through this notebook, it's very clear and presented well. What's more impressive is that most of the questions were answered with less than ~150 lines of code!
In regards to the 6th question (one left only partially answered), some of you might find this blog post (posted to HN by my collegue a few months ago) that attempts to answer this question in a lot more detail (and with a lot more computing power) [1].
An aside: we made a python library (specifically intended for use in iPython) to help facilitate answering the exact types of questions posed in this article. A bit more time was spent on performance efficiency and visualization but there were some interesting functions in this notebook that would be a welcomed addition to the library [2].
Although the main point of our work was to determine the least confusing keyboard layout for gesture typing, we designed the library to make it quick and easy to answer all types of questions relating to keyboard input. As an example, at the request of an HN commenter on our previous post, we took a quick look at how the average path length on a random keyboard layout compares to the FITALY keyboard. Shameless plug: the question only took 5-10 minutes to code up and answer using iPython with the library mentioned above ([2]). In case anyone is interested you can find that notebook here [3].
The minimal work load average problem here seems like it would be a great candidate for simulated annealing. [0] It gets rid of the local maximum problem that the author mentions, without adding a significant amount of additional complexity to the computations.
14 comments
[ 6.2 ms ] story [ 46.5 ms ] threadLiterally every notebook I have read from him I just learn SO much! It's amazing ..
http://norvig.com/ipython/
If you don't have ipython notebook installed, you can view them by copying the URL (without the protocol) into:
http://nbviewer.ipython.org/url/<URL>
> the A key is half way between the Q and W in the horizontal direction
I'm not sure that's been strictly true of any keyboard I've ever used.
Way back in the PalmPilot days I used the "Fitaly" keyboard layout (wow, their site is still up and hasn't changed in years: http://www.fitaly.com/fitaly/fitaly.htm) and it was fairly easy to learn (by point of comparison, I've never been able to make the transition from qwerty to dvorak on a real keyboard).
In regards to the 6th question (one left only partially answered), some of you might find this blog post (posted to HN by my collegue a few months ago) that attempts to answer this question in a lot more detail (and with a lot more computing power) [1].
An aside: we made a python library (specifically intended for use in iPython) to help facilitate answering the exact types of questions posed in this article. A bit more time was spent on performance efficiency and visualization but there were some interesting functions in this notebook that would be a welcomed addition to the library [2].
Although the main point of our work was to determine the least confusing keyboard layout for gesture typing, we designed the library to make it quick and easy to answer all types of questions relating to keyboard input. As an example, at the request of an HN commenter on our previous post, we took a quick look at how the average path length on a random keyboard layout compares to the FITALY keyboard. Shameless plug: the question only took 5-10 minutes to code up and answer using iPython with the library mentioned above ([2]). In case anyone is interested you can find that notebook here [3].
[1]: http://sangaline.com/blog/swype_optimization/index.html
[2]: https://github.com/sangaline/dodona
[3]: http://sangaline.com/blog/optimizing_for_swype/FITALY.html
[0] https://en.wikipedia.org/wiki/Simulated_annealing