|Portada|Blog|Space|

[Índice] > ¿Cómo puede haber gente usando dvorak?

Durante estos días lluviosos me hice una pequeña comparación entre
dvorak y qwerty, que espero sirvan para convencer a más de uno a
pasarse a dvorak.

====== Palabras que se pueden escribir con la fila del medio ======

19 con qwerty, 1958 con dvorak. Son 103 veces más.

grep '^[asdfghjklñ]*/' es_ES.dic | wc -l; : 19
grep '^[aoeuidrtns]*/' es_ES.dic | wc -l; : 1958

es_ES.dic la lista de palabras en español del myspell, con una palabra
por línea, y seguido siempre de una barra con atributos.

====== Sacando musculatura ======

Si por ejemplo nos interesa conocer qué porcentaje de las veces hay que
mover el mismo dedo al escribir dos teclas sucesivas, principal
limitante de velocidad en los teclados, podremos ver los datos con el
siguiente script:

function gen_deltas() {
  sed -n '
  4h;5H;6h;7H;10h
  1 i\
  BEGIN {
  s|\(.\)\(.\)\(.\)|\
    DELTAS["\1\2"] = DELTAS["\2\3"] = 1\
    DELTAS["\1\3"] = 2|p
  10g;10s|\(.\)\(.\)\(.\)|\
    DELTAS["\2'\''"] = DELTAS["\3'\''"] = 1\
    DELTAS["\1'\''"] = 1|p
  s/.*//
  5g;7g
  s|\(.\)\(.\)\(.\)\n\(.\)\(.\)\(.\)|\
    DELTAS["\1\4"] = DELTAS["\2\5"] = DELTAS["\3\6"] = 1\
    DELTAS["\1\6"] = 2.5\
    DELTAS["\2\4"] = DELTAS["\3\5"] = 1\
    DELTAS["\1\5"] = DELTAS["\2\6"] = 1.5\
    DELTAS["\3\4"] = 2|p
  $ a\
  }
  '
}

echo $'.a-\n,oq\nñej\npuk\nyix\nfdb\ngrm\nctw\nhnv\nlsz' | \
	gen_deltas > fn_dvorak.awk
echo $'qaz\nwsx\nedc\nrfv\ntgb\nyhn\nujm\nik,\nol.\npñ-' | \
	gen_deltas > fn_qwerty.awk

Y por medio del script dist.awk:

BEGIN {
  max_d = 0
}

function d_delta(w,    i, n, c, d) {
  c = substr(w, 1, 1)
  for (i = 2; i <= length(w); i++) {
    d = substr(w, i, 1)
    n += DELTAS[c d] + DELTAS[d c]
    c = d
  }
  return n
}

{
  sub(/\/.*/, "")
  gsub(/á/, "'a")
  gsub(/é/, "'e")
  gsub(/í/, "'i")
  gsub(/ó/, "'o")
  gsub(/ú/, "'u")
  if ($0 == "")
    next
  d = d_delta(tolower($0))
  dist += d / length
  if (max_d < d) {
    max_d = d
    worst_word = $0
  }
}

END {
  print "Distancia acumulada "dist" en "NR" palabras."
  print "Palabra más difícil de escribir: " worst_word
  print "Promedio: " 100 * dist / NR "%"
}

Podremos ver como qwerty limita bastante más la velocidad máxima:

awk -f fn_qwerty.awk -f dist.awk < es_ES.dic
Distancia acumulada 4507,44 en 49365 palabras.
Palabra más difícil de escribir: deshumedecer
Promedio: 9,13083%

awk -f fn_dvorak.awk -f dist.awk < es_ES.dic
Distancia acumulada 2017,89 en 49365 palabras.
Palabra más difícil de escribir: pipiripao
Promedio: 4,0877%

====== qwerty vs random keyboard ======

Usando teclados aleatorios, ¡y juro que no hice trampa!:

RANDOMKEYBOARD=$(awk 'BEGIN{srand();t=".,ñpyfgchlaoeuidrtns-qjkxbmwvz"
while(t){k=int(rand()*length(t))+1;printf substr(t,k,1)
t=substr(t,1,k-1)substr(t,k+1)};print}' | sed 's/.../\\n&/g;s/..//')

Para probar, generé y probé 150 teclados aleatorios, y aunque ninguno
superó a dvorak (pero estuvieron cerca), un 25.3% de estos teclados
son mejores que qwerty.

Paso algunos de estos ejemplos:
  .az\nim-\ntju\ncgx\nsqp\nnv,\nñrh\nkwb\neoy\nlfd => 4.60147
  rn,\n-gi\n.he\ntqñ\nymd\nlpk\nouw\nxbj\nvaz\ncfs => 5.66972
  lrj\nvaz\ney,\nqñd\nhs-\ntwm\ncng\nfpi\nkxu\nbo. => 5.83792
  s,l\niqe\nnum\nvt.\nkyj\nzgñ\nwah\nfdo\nbcx\n-pr => 5.92655
  joa\ngsu\n.yt\nvpl\nzxc\ndqh\nikm\n-ñb\n,we\nfrn => 6.58196

¡Hasta los teclados aleatorios son mejores que qwerty!

====== La Santa Biblia ======

Todas estas pruebas mencionadas en los textos anteriores podrán ser muy
divertidas, pero alguien podría disputarlas diciendo que en un texto
común no todas las palabras son equiprobables, lo cual es cierto.

Por eso me tomé unas cuantos minutos de tiempo del procesador para
realizar la prueba anterior contra el texto completo de la traducción
al castellano de la bibla católica, en particular en este caso usé la
"Bibla de Jerusalem" con notas y todo.

awk -f fn_qwerty.awk -f dist.awk < biblia_en_una_palabra_por_línea.txt
  Distancia acumulada 105322 en 991545 palabras.
  Palabra más difícil de escribir: enmudece
  Promedio: 10,622%

awk -f fn_dvorak.awk -f dist.awk < biblia_en_una_palabra_por_línea.txt
  Distancia acumulada 21683,6 en 991545 palabras.
  Palabra más difícil de escribir: expuls'o
  Promedio: 2,18685%

Como habrán visto, en oraciones comunes y corrientes también gana
dvorak, y hasta con una diferencia bástante más pronunciada.

====== Conclusión ======

Lisa y llanamente hay que ser vagos (por no querer volver a aprender),
o necios (al negar la superioridad de dvorak) para andar usando qwerty.

Pero no todo son rosas para dvorak, dado que escribir español en rot13
es más eficiente en qwerty ;)

PD: Esta reedición del 23/2/2009 22hs corrigió errores de la versión
anterior, en particular el de no considerar las tildes, y el de contar
repetidas veces las repeticiones de teclas, quedando los porcentajes
multplicados por una constante.

PD: Encontré otro error más, que corregí el 23/2/2009 23hs, en el cual
había confundido la i con una y, ese error favorcía a qwerty, y en la
realidad qwerty es aún peor.

---------
Los documentos en este sitio se encuentran licenciados bajo la GFDL.
Ver comentarios: [Hay i comentarios]
Para agregar un comentario: agregue a la URL: ?do=show_comment_form (explicación)