E-Scribe News : a programmer’s blog

About Me

PBX I'm Paul Bissex, and e-scribe.com is my consulting business. I build web applications using open source software, especially Django. I teach photographers web design and professional skills. In the '90s I did graphic design for newspapers and magazines. Then I wrote technology commentary and reviews for Wired, Salon.com, Chicago Tribune, and lots of little places you've never heard of. Feel free to email me.

Book

Python Web Development with Django I'm co-author of "Python Web Development with Django", an excellent guide to my favorite web framework. Its strong points include an introduction to Python, and better coverage of Django 1.0 than nearly anybody else. Published by Addison-Wesley, it is available from Amazon and your favorite technical bookstore as well.

Colophon

Built using Django, served by Apache and mod_wsgi. 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. The markup engine is Markdown.

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

Spam Report

At least 67572 pieces of comment spam killed since January 2008, mostly via Akismet.

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

Thanks for reading! Please note: Your comment will not appear until approved, which may take a few hours or more. Spammers will be torpedoed.


(Will not be shared)

(Optional)