domingo, abril 10, 2011

Las obsesiones de un programador

Tengo mucho tiempo sin escribir, vamos a ver si este mes me pongo las pilas y compenso con más entradas. Aquí va la quinta entrada en el blog de P*, traducida al castellano:

Hola, es Simón, uno de los nuevos programadores.

Creo que es algo obvio, pero el trabajo de un programador implica usar mucho el teclado. Sin importar qué herramienta, sistema o juego uno desarrolle, uno escribe el programa a través de un teclado. Yo utilizo el teclado más que el control de juegos, más que el mouse, más que los lápices, más que cualquier otra cosa. De hecho, creo que el objeto con el que más tengo contacto durante el día es el teclado.

Antes de empezar a trabajar en P* yo ya tenía experiencia en programación. Sin embargo, comparativamente, en el colegio no usaba tanto el teclado como lo uso en P*. Como en P* me la paso programando todo el día, empecé a desarrollar ciertas obsesiones.

Mi primera obsesión son los shortcut keys. Como cambiar las manos del teclado al mouse, y del mouse al teclado es algo fastidioso y quita tiempo, quería hacer mi trabajo utilizando sólamente el teclado. Para lograr mi deseo la única manera era utilizando shortcut keys.

Toda la vida he utilizado los shortcuts básicos como Ctrl-c, Ctrl-v (copiar y pegar) y Alt-Tab (cambiar de ventana); pero, recientemente no utilizó click-derecho para abrir el menú contextual sino Shift-F10, navego por la estructura de directorios con las flechas del teclado, incluso inicio los programas a través del teclado.

Para abrir un programa desde el teclado utilizó un programa llamado Launchy, que me lo presentó Ochiai, un programador que entró a la vez que yo. Si uno presiona Alt-Space, Launchy abre una pequeña ventanita. En esa ventanita uno puedo escribir el nombre del programa o del directorio y ejecutarlo. Si les interesa pueden visitar launchy.net.

Sin embargo, no me limité a los shortcuts del escritorio, ahora también uso bastante los shortcuts del editor de texto. Por ejemplo, para mover el cursor hacia la línea de abajo no utilizo ↓ (abajo) de las flechas del teclado sino Ctrl-n, para bajar una página utilizo Ctrl-v, para comentar una función utilizó Ctrl-c Ctrl-c, etc. El utilizar estos shortcuts me permite no alejar las manos de las teclas principales del teclado y teclear más rápido. (Por cierto, estos shortcuts sólo funcionan en el editor de texto Emacs)

Mi siguiente obsesión es la distribución de teclas del teclado. Aunque los shortcuts son muy útiles, si uno los utiliza mucho uno se dará cuenta de que la posición de ciertas teclas es inconveniente. En especial la tecla Ctrl (control) de la izquierda.

Muchos de los shortcuts utilizan Ctrl, ¿verdad?. Me intrigó por qué razón la persona que diseño los shortcuts decidió utilizar una tecla en una posición tan lejana e incómoda. Decidí investigar y terminé leyendo sobre la historia de los teclados. Resulta ser que la posición original de la tecla Ctrl es la posición actual de la tecla CapsLock (BloqMayús).



¡Por supuesto! Con la posición original, los shortcuts son fáciles de teclear. El problema es que cambió la posición de las teclas. Decidí probar cambiar la posición de las teclas, resultó ser súper fácil escribir los shortcuts. ¡Ya no se me cansa más la mano izquierda! Las personas que utilizan mucho los shortcuts deberían probar la posición original.

Para poder cambiar la posición de las teclas hay que editar el registro de Windows. Como eso es un fastidio, estoy usando un programa llamado SharpKeys. Como es muy fácil de usar, aquí se los presento: sharpkeys.codeplex.com

Mi última obsesión es el teclado en sí mismo. Es la última frontera de la obsesión con teclear. Si uno llega hasta este punto es que uno se ha convertido completamente en un fanático de los teclados.

Según los más fervientes entusiastas de los teclados, los teclados comunes no son suficiente para una persona que teclee mucho. Esto se debe a que, en un teclado común, aunque uno presione una tecla uno no sabe con certeza en qué momento se activa su circuito. La única retroalimentación que uno tiene es el ver que el caracter ha aparecido en la pantalla. Sin embargo, las teclas de los teclados mecánicos tienen cierta resistencia. Cuando el circuito de la tecla se activa, la resistencia de la tecla cambia inmediatamente. Por lo tanto, la retroalimentación no se limita al caracter en pantalla, uno también cuenta con el sentido del tacto. Dependiendo del diseño, también se puede escuchar un "click" cuando se activa el circuito. Según los amantes de los teclados, si uno cuenta con el feedback táctil y auditivo uno puede teclear más rápido y minimizar los errores. Aparentemente, también se siente muy bien.

Quisiera comprar un tecládo mecánico para probar. En estos momentos esto investigando diferentes marcas y modelos. Por lo que he investigado, la calidad de los teclados mecánicos hechos en Japón es muy buena. Posiblemente escoja uno japonés. Sin embargo, si tuviera infinito dinero, me compraría un teclado mecánico modificado al estilo steampunk por datamancer.



Sin embargo, como cuestan alrededor de (USD) $1500, creo me mejor me compraré un teclado mecánico normalito.

--

Hasta ahí el post original. Si tienen curiosidad, terminé comprándome un Filco Majestouch Tenkeyless, con switches Cherry MX azules. En castellano: un teclado mecánico de la marca Filco, que no tiene la sección de números de la derecha, y que utiliza los switches que fabrica la compañía Cherry; los switches azules proveen feedback tácil y auditivo.

Y aquí las fotos de mi bebé:





Como pueden ver, lo modifiqué con unas teclas de colores diferentes. Esc ahora está en rojo, y en una posición más cómoda si uno se la pasa cancelando programas, y las teclas WASD (que se usan mucho en juegos de computadora) están en morado.

:D

14 comentarios:

  1. Comentas en Emacs con Ctrl-C Ctrl-C ? Yo uso Meta-;
    :-O

    Qué bueno saber que sigues usando Emacs por allá. Acá la gente me mira como un bicho raro por usar Emacs... De hecho, soy el único loco que conozco por acá que no usa Eclipse para todo :S

    ResponderBorrar
  2. No creas, aquí también me miran como si fuera un bicho raro. La mayoría utiliza Maruo (http://hide.maruo.co.jp/) que es un editor de texto que nunca salió de Japón. Sin embargo, no soy el único excéntrico, ¡hay un programador que usa vi!

    ResponderBorrar
  3. Es totalmente cierto XD
    Yo me aprendi los atajos del photoshop, asi cambio las herramientas sin tener que buscarlas en el menú, y además puedo ocultar la caja de herramientas ganando espacio de trabajo :P

    Yo tengo teclado y mouse de A4Tech, están muy buenos y cómodos, lo bueno del mouse que no me hace sudar la mano y si lo hago no se patina. El teclado es dentro de todo normal, pero había otros diseñados para juegos, es decir tenían en los lados laterales, las teclas más usadas para juegos, flechas, espaciador, shift, alt, ctrl y los F1-12.

    Mi mouse tiene un botón extra para cambiar la sensibilidad y otro para hacer 2 o 3 clicks según esté configurado.

    Tengo curiosidad por ver un teclado 100% japonés.

    No conozco esos editores de texto pero voy a probar :D

    ResponderBorrar
  4. William: aquí puedes ver un teclado japonés: http://www.diatec.co.jp/products/det.php?prod_c=577

    La única diferencia es que además de tener las letras latinas, las teclas también tienen impresas las sílabas hiragana. Bueno, también la posición de algunos símbolos cambia, como `@' al lado derecho de la letra `p'.

    ResponderBorrar
  5. Mentira, se me olvidó agregar que hay unas teclas que te permiten cambiar el modo de input entre ascii y un IME de japonés.

    ResponderBorrar
  6. Oye Simón un offtopic total. Es cierta esta nota?
    http://www.fayerwayer.com/2011/04/japon-aumenta-alerta-de-fukushima-al-nivel-de-chernobil/

    Espero que no sea tan grave la cosa y todo mundo este bien

    ResponderBorrar
  7. según las noticias que leo en japonés, sí, subieron el nivel a 7...

    ResponderBorrar
  8. Cuando tipeas, por defecto, en que idioma lo hace? Veo muchas teclas extras, debe tener una para cambiar el idioma, no te la vas a pasar escribiendo con el shift o el alt presionado :P

    Te debe haber costado acostumbrarte, más que nada por el trabajo, deben tener todo en japonés, S.O., programas, teclado, etc... Después llegas a tu casa y tenes todo en español(?) :P

    ResponderBorrar
  9. Al principio me imaginé un teclado puramente en japonés, supongo que deben existir también así.

    ResponderBorrar
  10. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  11. William: depende de qué es lo que tipeo. Si es código de programación, el teclado lo tengo en letras latinas con la distribución japonesa.

    Sí, al principio fue difícil acostumbrarse a todo en japonés. Nop, en mi casa tengo todo en inglés.

    Nunca he visto un teclado puramente en japonés, siempre tienen las letras japonesas al lado de las latinas.

    Katherine: en la barra de la derecha hay una sección que dice contáctame. Ahí puedes encontrar este link: http://scr.im/534f

    ResponderBorrar
  12. Launchy es TRE-MEN-DO! Lo uso hace años y destaca, por sobre el resto de lanzadores de aplicaciones, el hecho de que permite indexar las carpetas que desees con el tipo de archivo y extensión que consideres conveniente. Digamos que trae consigo un potencial de personalización muy por sobre la media.
    Estoy probando SharpKeys en combinación con Autohotkey (también para mapeo de teclado pero mediante scripts, lo cual permite centralizar ctrl+c en una única tecla, por ejemplo) y HotKeyMan (teclas rápidas, para mí en principio levanta las aplicaciones más rápido que las teclas rápidas de windows, al tiempo que lejos de reemplazar a las últimas, puede ser un complemento).
    No me acostumbro mucho todavía a prescindir del CapsLock, ya que estando en el lugar del Ctrl ahora es un poco difícil llegar a él... Uso las teclas Shift en su lugar, y sí, entiendo que con estas últimas haya una ganancia de eficiencia resolviendo en un único teclazo lo que con CapsLocks debiera hacerse en dos (activar y desactivar mayúsculas en texto corriente).
    Felicitaciones por el blog.
    No solo para desarrolladores es de interés tu aporte.
    Habemos muchos fanáticos de la usabilidad y eficiencia (sí, ambas juntas, no se enojen los fanboys) que valoramos estas herramientas.

    ResponderBorrar