Friday, September 21, 2007

Bite your thumb at text entry

Preamble - T9, Stylus, Thumb keyboards
There are many ways to enter text on a mobile phone - the best being T9 and its variants, by virtue of using the same set of 9 keys and their letters, and intelligently guessing the word you want as you type it.

Entering text using a stylus also has some competitors - MessagEase, Speedscript, Touch (better for long words, eg German), using a tiny onscreen QWERTY, Ring Writer and the highly impressive HexInput/QUONG and Shark/ATOMIK siblings. Most of these use the ability of a stylus-weilding user to make accurate strokes and shapes on the screen.

One arena suffers, though. Thumbs. Nokia's N800 (see 6:26) and the iPhone both offer a larger onscreen keyboard to mash with thumbs. Apple gets it fairly close with the iPhone keyboard, with the improvements given in the video linked above. Particularly impressive is the ouzza -> pizza recognition. It's this that I'm targeting with my thought.

Idea - Fuzzy matching
Suppose instead of delineated zones on any input device we define a fuzzier 'hotspot'. Thus instead of trying to guess what word the user is trying to type by looking at the sequence they hit (ouzza), we look at the fuzzier position that they hit (p-o, i-u,z,z,a). Ultimately, we look at the vector position of the tap, and look at a thumb radius around it. This should give us a weighted set of letters:
  • 40% P, 50% O, 10% L
  • 30% I, 70% U
  • 90% Z, 10% X
  • 90% Z, 10% X
  • 70% A, 20% Z, 10% S
This turns into a modified game of "My first is in... " to guess what the user is trying to type. There are other statistical games we can play as well. The user may systematically hit one side of P rather than the other, so we can drift the letter centre slightly (and show that to the user if we can leave the form-over-function land of Apple). This should produce a bias map across the keyboard, with some parts stretched and others compressed.

This would naturally yield a two-stage process - first undo the bias to get the de-biased coordinates, then try to match the vector path that the user has pressed with their thumbs to the words in the dictionary. This should yield a list of words, each with a confidence rating. Later incarnations could look at adjacent words, in the way that speech recognition does, to further improve the guess confidence. Then select the word with the highest confidence, or perhaps show the list of possible words to the user.

Sum
In the end, it should be a keyboard that you type on, which adapts to you, and to the fact that you're a human - you miss sometimes, you are usually trying to type words, and at speed you need some latitude and some help. So do error recognition and correction, and look at the actual geography of the keyboard to try to correct errors, or understand what is being typed. Let's use our brains, perhaps?

Wednesday, September 5, 2007

11 thoughts to improve Shelfari

Recently, I joined Shelfari. It's a social networking site centred on Books - your public thing is your bookshelf. It has some useful capabilities; groups, ability to send notes to other people, etc, but it lacks some of the features I expected when I arrived.

Here's my submission to their feedback box.

1. Reply button on a note - see Facebook's Wall to Wall etc. This is really important for fostering community, as community is only possible through communication.

2. A way to discover books that you might like. Think Amazon's Books You Might Also Be Interested In. It's that feature alone that I hoped for when signing up to Shelfari. I tell you what books I've read, you tell me what books I might like. For the technology, look for the Netflix prize stuff. Same concept, different medium.

3. Find the duplicate books and merge them. Otherwise I don't see half the people that have read the same book as me except with a slightly different title, or edition, etc.

4. Put up a money prize for someone to develop a Shelfari plugin. It can look up the Shelfari info on any book that it recognises on the current page and provide both the ratings that the most-similar-people-to-you give it, and provide the Amazon link. Oh, and modify the Amazon page to add Shelfari opinions (a bit like Stumbleupon does to Google search results).

5. Let authors put their books up on Shelfari for consumption via an ebook shop, or from Amazon sites, or from self-publishing sites. Sceptical though I am of ebooks, I might just read one that my friends like.

6. Link up with Stumbleupon. If I use Stumbleupon and read these websites, maybe those who also like my books would like these websites. Conversely if these people that Stumbleupon thinks are similar to me like those books, maybe I will too.

7. Engage with authors. Maybe this should be my first point, because it's the most important. If you can reconnect the author with the reader, then you've closed a loop that has been open for too long. Authors may find themselves compelled to write more, readers to read more, and hopefully for the authors to listen to their readers.

8. The Reading Room - enable people to communicate while they read any particular book. If someone is struggling with something, perhaps someone else can explain it. The ultimate version of this is a discussion section for each book, where the better informed or enlightened can help the less informed. To see how useful this is, see the php.net documentation.

9. Explanations - The ultimate meta-library resource, following on from 8 above. In allowing people to post blog-type articles about a book or chapter, they can form a complete guide to works like Hamlet or War And Peace. A supremely useful resource for students. It's mostly an expansion of the Member Review to allow multiple reviews, and to provide space for articles which may also give away the plot if written as a review.

10. Engage with independent secondhand book shops and/or Google Products. If I can see where I can buy secondhand or even first edition copies of a particular book, the barriers to entry are far lower. Extending further, show the resale prices of books. If I can see a list of the buy prices of all my books (particularly textbooks) at different secondhand book shops, then I might look to get some extra cash and sell books I won't read again. Shelfari is the ideal platform for this because it aggregates information about a particular book in one place.

11. Provide schools resources. This is probably the best idea here for growing Shelfari. Make it possible for a teacher to set up a group for their students, where the books on a reading list could be easily found, or where longer articles are available on a particular book. Give the class space to discuss the book there, and for the teacher to moderate the discussion and answer questions. This can just as easily allow formulation of book clubs, particularly for home-schooled children, or nerds. The only ethical issue is in encouraging already-reclusive children to spend more time at their computers.

With that, I bid you all the best. Shelfari is a great resource, with some very exciting potential. For the most part, its growth now should come from engaging with the world outside its members and Amazon's pages. I look forward to seeing that happen.