¿Cómo calcular la distribución de teclado ideal para programadores?


8

Estoy pensando en crear un nuevo diseño de teclado para la programación. Ahora programo principalmente en HTML, JavaScript / jQuery / CoffeeScript, CSS / LESS / SASS, aunque puedo incursionar en scripting de shell y RegEx pronto, tal vez con LUA, C ++ y Java en unos pocos años. Quiero tener pruebas científicas de las ubicaciones de la clave. Tengo ideas / requisitos, algunos inventados por mí mismo, algunos tomados o derivados de otros:

  • Casi todas las llaves se pueden reorganizar
    • RETURN , Left SHIFT , Left CONTROL , SPACE-bar , y TAB deben permanecer, pero todos los demás, incluidos los números, símbolos y teclas de movimiento, están abiertos para moverse.
    • Puede ser óptimo dejar zxcv y perhhaps s para permanecer en su lugar, debido a los hábitos comunes de Deshacer / Cortar / Copiar / Pegar / Guardar :)
    • La tecla ELIMINAR probablemente se moverá a donde está BLOQ MAYÚS :)
    • Es improbable que los corchetes coincidan como () {} [] <> uno al lado del otro; vea abajo
  • La única manera precisa en mi humilde opinión de contar el uso de claves es mediante el registro de claves, no el recuento de claves de archivos:
    • Gran parte de la "programación" es el envío de correos electrónicos, publicaciones en foros, twitter, informes de errores, navegación web, etc.
    • Creo que gran parte del uso del teclado es "movimiento"; tabulación entre campos, avance de página, mover cursores, etc. Estos no son capturados por las salidas de archivo
    • Muchos editores usan autocompletar y macros, por lo que los delimitadores cercanos:)}]> pueden no escribirse con tanta frecuencia como los abridores, por lo que solo los archivos de registro de claves y no análisis serán precisos.

Entonces mis preguntas:

  1. ¿Qué son los keyloggers seguros de software libre / de código abierto, que no cargarán archivos a menos que usted mismo envíe un archivo separado? Preferiría NO recopilar nombres de usuario y contraseñas, no solo por seguridad, sino también porque eso puede arrojar mi análisis en mi humilde opinión.
  2. ¿Qué programas se pueden usar del lado del cliente para digerir recuentos de claves individuales y de pares? ¿O cómo construir mejor uno?
  3. ¿Dónde es mejor encontrar voluntarios para ayudar?

La mejor investigación hasta ahora: http://www.michaelcapewell.com/projects/keyboard/layout_capewell.htm

http://viralintrospection.wordpress.com/category/technology/keyboard-layouts/

& Wikipedia: Keyboard_layout # Non-QWERTY_keyboards_for_Latin_scripts

TIA!


Una pregunta interesante, pero permítanme proponer una propia: ¿Es mejor abandonar el diseño escalonado de la barra de chocolate que hemos estado usando durante décadas para algo completamente diferente?
Ignacio Vazquez-Abrams

¿Quieres decir que Ignacio cambiará a un diseño completamente nuevo como el teclado contorneado de Kinesis por $ 300USD? No, solo la reasignación de teclas en teclados baratos existentes se puede encontrar en una tienda normal por $ 5-20.
tomByrer

Si está acostumbrado a un teclado QWERTY estándar (u otro), puede ser más eficiente usarlo, en lugar de aprender un nuevo diseño. Especialmente si usa otras computadoras, que no tendrán su diseño personalizado, de forma regular.
Bob

1
Por cierto, para que las personas reciban respuestas, ¡debes hacer ping con @tomByrer, por ejemplo!
slhck

2
Sospecho que lo mejor que podría hacer sería darle <>{}[](y otras teclas que actualmente requieren mayúsculas) sus propias teclas; realmente no me consideraría un programador, pero sé que eso es lo que resulta más molesto al escribir scripts de bash.
evilsoup

Respuestas:


2

Use un programa como WhatPulse para registrar qué teclas se presionan y cuántas veces.

Después de preguntar en la red FreeNode IRC sobre cómo juntar las frecuencias clave, un usuario me llevó a esto:

  1. Obtenga su texto, como un programa (s), y cópielos.
  2. Vaya a http://type.trmnl.org/
  3. Debajo de los botones, asegúrese de desmarcar 'inicio automático con contenido del portapapeles en pegar'
  4. Luego, pegue su programa en el cuadro de texto.
  5. Presione Cntrl + Shift + K, que abrirá una consola.
  6. Escriba count_digraphs()y presione Entrar.

Los resultados se leen así: lo "ar" 7 17 10 "ra"que significa que 'ar' se presionó 7 veces, 'ra' se presionó 10 veces y todos juntos 'ar' y 'ra' se presionaron 17 veces juntos


"Opciones adicionales: mantenga un registro de las frecuencias de pulsación de teclas: introducido en WhatPulse versión 1.7, esto le permite rastrear cuántas de cada tecla ha presionado". whatpulse.org/wiki/Program_Settings_Tab_2 Sweet, thaks @ekaj! ¡Yo también tendré que investigarlo!
tomByrer

Creo que esta es la mejor solución hasta ahora lejos de un keyloger más intrusivo. Ser multiplataforma y salida XML / HTML es una bendición. Lo único que falta es soporte para bigram / digram (secuencia de dos elementos adyacentes). Razonamiento: en Inglés, no sólo es 'él' y 'th' junto común, sino también en muchos lenguajes de programación (como C ++, JavaScript, CSS) ' ; ENTER ' están muy a menudo escrito juntos. Entonces, si hay un clon WhatPulse que permita esto, entonces sería lo mejor. Mientras tanto, publicaré una sugerencia en su foro.
tomByrer

1
@tomBryer intentó actualizar la respuesta para usted, espero que ayude ... y tenga en cuenta que solo pude hacer que funcione en FF, no en IE o Chrome ... no estoy seguro de por qué.
cutrightjm

Sí, eso es útil de varias maneras. Código fuente: "'Desafortunadamente, esta aplicación no funciona en IE, sry'"; IE tiene una sintaxis extraña de JS a veces.
tomByrer

4

Las claves para el movimiento en los editores se adaptan con mayor frecuencia para ajustarse con un uso tan eficiente con QWERTY como sea posible, por lo que seguramente deberán reasignarse si cambia el diseño de las teclas y desea la ubicación óptima de todo, lo que se esfuerza. Por ejemplo, en Vim, los botones HJKL se usan por una razón con QWERTY, y probablemente sea necesario reasignarlos a la misma ubicación después de que se haya modificado el mapa de teclas.

Lo que quiero decir es que no te ayudará mucho rastrear las teclas de movimiento y edición y usarlo como base para un nuevo diseño, ya que son fácilmente reconfigurables (en cualquier editor vale la pena, y ya que estamos hablando de un programador diseño, lo más probable es que estemos hablando de Vim o Emacs), no debería interferir con la colocación de las teclas literales y ya se han optimizado (nuevamente: no estamos hablando del Bloc de notas).

Estás tratando de resolver un problema que es una forma ineficiente de productividad , especialmente para un programador , ** imho **. Tendría un efecto mucho mayor simplemente aprendiendo más sobre las herramientas (una vez más: probablemente Vim / Emacs). Descubrirá que cada vez se dedica menos tiempo a escribir caracteres cuando se programa, y ​​se dedica más tiempo (pero más eficiente) a la finalización automática, el etiquetado automático, la sangría automática, las búsquedas rápidas de definición de funciones, etc. Las teclas para hacer todo esto ya están adaptados para permitir la eficiencia, y el gran aumento de velocidad viene simplemente con familiaridad. Por lo tanto, sostengo que una distribución de teclado diferente es correcta para la productividad , ya que usted tiene muchosaños de ejercicio QWERTY. Si se gastara el mismo tiempo de entrenamiento analítico en QWERTY que las personas que cambian los diseños en Dvorak, también notarían un aumento de velocidad. La velocidad viene con entrenamiento explícito.

Si usted fuera un redactor / traductor / autor / etc., alguien que realmente pasa su tiempo trabajando con el significado literal de las teclas, entonces un diseño diferente podría ser de ayuda. Para un programador, el mejor consejo suele ser al menos obtener un diseño de teclado en inglés, ya que estos modismos de programación han sido moldeados por estos y su ubicación de teclas (en mi diseño de tecla local, @$[]{}~todos están detrás de AltGr, que es bastante subóptimo).

tldr: Dvorak / Colemak / [la siguiente "mejor cosa desde el pan rebanado"] (posiblemente) resuelve un problema solo para aquellos que ingresan una gran cantidad de texto fluido en un idioma específico (con mayor frecuencia inglés). Para la programación, las teclas necesarias no han estado sujetas a la misma restricción que el lenguaje literal y, por lo tanto, ya se han optimizado para su propósito (que no es solo "escribir lo más rápido que pueda"; se basa más en las operaciones lógicas). Empuje). Creo que el tiempo dedicado a aprender diseños alternativos y la confusión que ciertamente ocurre una y otra vez definitivamente no vale la pena el esfuerzo en la mayoría de los casos (no solo su propia confusión; otros que se sientan en la misma terminal que utilizó por última vez lanzarán cosas a ti), mucho más que la del programador.


Gracias @ Daniel-Andersson por sus ideas sobre Vim; ¡Es útil considerar que algunos editores permiten la reasignación de teclas de movimiento! Tengo que aprender más sobre mis herramientas. Sin embargo, hago MUCHA edición con MUCHAS herramientas; editores en línea y cuadros de texto: foros (como aquí;), gists, jsFiddle, GMail, Facebook, Twitter (¿no debería ser una tecla de cierre sin turno?) ... y otros editores como Inkscape, SynthMaker, Live, etc. Me gustaría unificar mis accesos directos tanto como sea posible mediante el mapeo de teclas, luego dar un paso más alto a través de app-configs :)
tomByrer
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.