E-Scribe News : a programmer’s blog

About Me

PBX My name is Paul Bissex, and e-scribe.com is my consulting business. I build web applications using as much open source software as possible. From September to June I teach web design and other important non-photographic professional skills to photographers. In the '90s I wrote technology commentary and reviews for magazines, newspapers, and web publications, including Wired, Salon.com, FamilyPC, the late lamented Web Review, and the Chicago Tribune. Feel free to email me.

Book Project

I'm co-authoring a book, "Python Web Development with Django", with Jeff Forcier and Wesley Chun. It will be published by Prentice Hall in July 2008, but is available for pre-ordering on Amazon now.

Colophon

This site is built on a fresh trunk checkout of Django, running on Python 2.5.1, served by Apache and mod_python. The database is SQLite. The operating system is FreeBSD, on a VPS hosted at Johncompanies.com. Comment-spam protection by Akismet. Vintage topo imagery from the Maptech archive.

Pile o'Tags

Stuff I Use

Akismet, del.icio.us, Django, dpaste.com, Emacs, FreeBSD, Freenode, jQuery, LaunchBar, MacPorts, Markdown, Mercurial, OS X, Postfix, Python, SQLite, Subversion, TextMate, Trac, Ubuntu Linux, wmii

A Django site.
(Finally!)

Copyright 2008
by Paul Bissex
and E-Scribe New Media

Evolving a new keyboard

This is amateur science at its best. Peter Klausler, an aficionado of the Dvorak keyboard layout, decided to see if there were better permutations of keys yet unrealized:

...I constructed a complicated function that measures the amount of "work" needed to touch-type a given text with a given layout.

Very good. But where does the primordial soup of keyboard layouts come from?

...4096 keyboard layouts compete with each other. The layouts in the initial pool are entirely random. In each generation, they all race to "type" a word list, and their per-word times are multiplied by the word frequencies in the input sample. After the race, the fastest half are kept. The pool is then repopulated by generating a single mutation for each survivor.

He ran the simulation, which yielded a victorious layout -- which he then spent a couple days testing. It wasn't so great.

...Too many words required complicated patterns using the fingers of the right hand. The word bottom convinced me that Dvorak was on to something when he designed a keyboard that maximized alternation between the hands.

So he revamped his algorithm accordingly, ran the experiment again, got another layout, and tried that one too. He comments that the new layout:

...looks way more usable to me. But (perhaps not surprisingly), it sure looks a lot like Dvorak, too, and is not quantifiably all that much better, and that advantage is probably less than the level of error in my work estimation function.

So, to improve the whole setup, starting with better data for his evaluation code, he writes a statistical keystroke logger:

I'm tracking each single letter, digraph, and trigraph with timing data and error rates. This will let me construct a map of the keyboard that has a real empirical cost for movement between most keys. Of course, it may well be biased by my use of the Dvorak layout; I have found some QWERTY users willing to collect similar tracking data.

And that's where it ends, for now. Will Klausler return to Dvorak? Or will we all be using the scientifically proven, genetically engineered "KUYPWLMFC" layout in ten years?

(If all this makes you feel like a bit of an underachiever, don't look at his resume, which includes little tidbits like "invented technique of incremental global register coloring of SSA code interleaved with instruction scheduling" and "ported the Linux 2.6 kernel to the Cray X1 architecture.")

Wednesday, December 7th, 2005
+ + +

Post a comment

Comments use Markdown syntax. Your comment will not appear until approved, which may take a few hours or more. Spammers will be torpedoed.


(Will not be shared)

(Optional)