Assuming you are running Linux and have a list of valid English words in 
the file /usr/share/dict/words or someplace or something similar.

Assume you have a cellphone with T9 predictive text input.

For those that don't, cellphones have each key overloaded to mean several 
things. eg. On my Sharp GX-15
2 also means A,B,C
3 also means D,E,F
4 also means G,H,I
5 also means J,K,L
6 = M,N,O
7 = P,Q,R,S
8 = T,U,V
9 = W,X,Y,Z

In T9 mode I can type in 43556 and it only finds one word in its 
dictionary that can be made with combination 
{G,H,I}{D,E,F}{J,K,L}{J,K,L}{M,N,O} and that is
HELLO

Which is a lost faster than typing 4433555555666.

How ever, some words like "high", can be entered by just bouncing on one 
key ... 4444.

Your mission, should you choose to accept, is to write the shortest ruby 
program that will find the longest word in the dictionary that can be 
produced by...
  * repeatedly typing one key
  * Can be produced by just using only two keys.
  * Can be produced by just using only three keys.
  * Can be produced by just using only four keys.
  * ....


John Carter                             Phone : (64)(3) 358 6639
Tait Electronics                        Fax   : (64)(3) 359 4632
PO Box 1645 Christchurch                Email : john.carter / tait.co.nz
New Zealand

Carter's Clarification of Murphy's Law.

"Things only ever go right so that they may go more spectacularly wrong later."

From this principle, all of life and physics may be deduced.