what-if xkcd: Phone Keypad

La domanda della settimana e’:

“se si usa un vecchio telefono, di quelli in cui per scrivere i messaggi devi pigia’ sui tasti dei numeri, e ogni tasto fa piu’ lettere a seconda di quante volte lo premi, e per colmo di autolesionismo hai anche disattivato il T9[1] cosi’ che per scrivere lettere vicine devi aspettare anche qualche secondo, insomma se hai questa roba qua… quale e’ la parola inglese che ha il maggior numero consecutivo di lettere sullo stesso tasto?”

Un esempio in italiano potrebbe essere “mononomi“, in cui uno dovrebbe stiaccia’ il “6” per ben sette volte (dopo aver disattivato il T9, senno’ esce “nonnonog“), ma Randall prende molto seriamente il problema e lo risolve da ingegnere, con un bel comando da dare tuttosuunariga alla shell di linux:

cat wordlist.txt | perl -pe 's/^(.*)$/\L$& \U$&/g' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'22233344455566677778889999' | grep -P "(.)\1\1\1\1\1"[2]

Anche il comando di Munroe dichiara vincitrice una parola che insiste sul tasto “6”: nonmonogamous, e anche qua le volte che si deve pigiare il tasto sono sette.

Da li’, ovviamente, si parte alla scoperta di un mondo che sta scomparendo (quasi tutti oramai hanno la tastiera virtuale sullo smartphone…), in cui ad esempio -con il t9 attivo stavolta- si possono creare frasi di senso -quasi- compiuto fatte tutte da parole ricavate da un solo tasto e quindi: “a high def mmo on tv” lo si puo’ scrivere tutto pigiando in sequenza “2 4444 333 666 66 88”; poi Randall passa di botto alle tastiere per PC (le buone vecchie QWERTY), e le esplora a fondo con il cervello di un pazzoide geniale.

Divertente e interessante molto piu’ della casa del Grande Fratello che pare abbia preso fuoco, e di cui ci importa una sega.

Image

[1]: sostanzialmente, sta descrivendo il mio cellulare :-O

[2]: un utente sul forum ha corretto l’errore che avevo notato pure io da stolto ignorante -ovvero l’assenza di un “9” per la “z” :-)-, e migliorato parecchio lo script. Eccolo qua sotto:

perl -nle 'chomp; $_ = lc."\t".uc; tr/A-Z/22233344455566677778889999/; my $max; 
for $n (0..length) { $max=$n+1 if /(.)\1{$n}/ } push @{$accum[$max]},"$_\t$w"; 
END { my $s = pop @accum; print @accum."\t$_" for @$s }' wordlist.txt

Barney

Annunci

Un pensiero su “what-if xkcd: Phone Keypad

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...