Perhaps the most visible new feature in Tinderbox 5.1 – which debuts today – is improved typeahead selection. This is a quiet little feature that lets you select a note in a complicated map or a long outline by simply typing part of its name.
In the old design, you had to type the first few characters of the name. And that worked pretty well.
The new design lets you type any characters from the note’s $DisplayName. For example, typing “toaster” could select “The Brave Little Toaster”. In fact, the characters don't need to be contiguous; you can type abbreviations like "BrToast" and get good results.
Of course, you might have meant something else. “Brazilian Toastmasters” could also be BrToast. So could “Boys Roam To Alaskan Terror”. Tinderbox tries to find the best match, but it’s hard to know what people have in mind. So far, I find its guesses are surprisingly good.
We’re using a heuristic measure of goodness-of-fit that places a significant penalty on each deletion; if you type “start”, Tinderbox prefers notes that contain the word to notes that contain an “s” in one word, a “t” in another, and and “a” even later. A surprisingly tricky problem occurs when the same note has several different potential matches for the same pattern. To do this optimally, we'd need to enumerate them all (hello, dynamic programming). My guess is that the problem will seldom occur in the wild. We’ll see.
It’s interesting to observe that we’re in 2010, and we’re implementing a simple user interface enhancement, and as far as I can see we’re already doing research. Sure, there must be studies of this in the CHI literature. But I’ve been asking around, and I’ve received very few pointers. I bet there’s a nice MA here for someone. I’m just trying to ship the feature!