Olympus anuncia la E-P1

martes, 16 de junio de 2009
Como comentaba hace un tiempo, el nuevo sistema Micro Cuatro Tercios de Olympus es un guiño al pasado y la tradición de la marca que comenzara hace 50 años con sus cámaras portables y compactas. Hoy se anunció la primera cámara Olympus para este sistema (ya existía la Panasonic G1), y me sorprende agradablemente ver que no solo el estilo de la cámara sigue de cerca al de la Pen F, sino que la línea se lanza bajo el nombre de "Pen digital".


Hay un preview de la Olympus E-P1 en DPreview. Además del tamaño compacto, la cámara tiene estabilizador de imagen, limpieza automática del sensor y sale con un lente de 17mm f/2.8 pancake en dos colores (blanca o gris).

Miniaturas de código fuente

lunes, 8 de junio de 2009
Desde la primera vez que ví un iPhone me pareció que había muchas cosas para aprender el innovador diseño de su interfaz. Sin embargo, algo que me saltó a la vista enseguida fue la novedosa implementación de la lista de artistas. Además del consabido scroll con el dedo en el que se desliza la lista, en el costado de la misma, en lugar de una barra de desplazamiento convencional aparecen todas las letras del alfabeto.

Esta sencilla idea es muy eficiente desde un punto de vista de usabilidad: llegar al artista que uno desea se hace inmediato simplemente tocando la letra correspondiente, en lugar de tener que buscar con la vista en el desfile que se produce cuando scrolleamos la pantalla. Una idea similar utiliza Exposé en Mac OS X: con solo pulsar una tecla, todas las ventanas aparecen a la vista para seleccionar la más conveniente, un procedimiento mucho más rápido e intuitivo que buscar el nombre correcto en la barra de tareas. Las buenas ideas tienen éxito, y rápidamente variantes de Exposé vieron la luz tanto en Linux como en Windows Vista.

Para mí gusto, la implementación más feliz de esto es la que actualmente utilizo en Ubuntu. En Linux se utilizan mucho los llamados escritorios virtuales, con lo cual en lugar de mostrarse todas las ventanas cuando el usuario lo desea, se muestran simultáneamente todos los escritorios. La superioridad de esta opción por sobre el licuado de ventanas que se produce en Exposé cuando se tienen muchos programas abiertos proviene del hecho de que además de registrar que programa estamos usando, registramos también en qué lugar de la pantalla está ubicado. Al ver los escritorios completos, esta información se conserva, y nos permite reconocer más fácilmente la aplicación que buscamos, por obra y gracia de alguna extraña combinación entre memoria espacial y fotográfica.


Hace un tiempo se me ocurrió una aplicación de esta idea a la programación. Gran parte del tiempo, si los programas tienen una complejidad sustancial los archivos de código que los componen se vuelven largos (en líneas) con lo cual es vital estar permanentemente scrolleando dentro de los mismos. Muchas veces me encuentro pasando varias veces sobre un archivo para encontrar lo que busco. Si bien podría usar la búsqueda para llegar rápidamente al lugar que deseo, no me resulta intuitivo hacerlo. La existencia de este problema es innegable: un recuerdo particular que conservo de Google son los programadores con cuatro (4!) monitores de 24" dispuestos de forma vertical uno al lado del otro, para poder visualizar una mayor cantidad de código simultáneamente y sin tantos "cambios de contexto" entre una ventana y otra.


La idea es entonces sencilla: en lugar de mostrar una barra de desplazamiento vertical convencional, se muestra en el costado del editor de código un thumbnail o miniatura del archivo completo de código, con alguna indicación de que parte se está viendo en este momento. La idea es que la estructura irregular del código fuente permite identificar fácilmente los elementos del mismo, y llegar con un clic al lugar deseado. A su vez, un menú contextual desplegable puede aparecer cuando se cambia de pestaña dentro del editor para acceder directamente a la sección deseada del archivo.

Como para probar, hice un script con PIL que crea una imagen a partir de un archivo fuente en Python, a razón de 1 pixel por caracter, y con un coloreado de sintaxis minimalista (declaraciones y comentarios). Esta es la pinta que tiene mi trabajo práctico de Teoría de Lenguajes después del proceso:


Haciendo unas pruebas rápidas me pareció que si se reduce el ancho de las miniaturas a un 50% del tamaño que utilicé, todavía resulta identificable la estructura del código, y se ahorra espacio en pantalla (puesto que es vital que la miniatura esté siempre a la vista). En mi opinión esta sencilla idea puede ser muy cómoda para programar. Ahora solo me falta convencer a alguien de que la implemente en Eclipse o algún otro editor Open Source.

Mientras programaba esto hace unos días me encontré con que Microsoft Research tiene un paper de 2006 (que no pude leer, dado que es pago) sobre source code thumbnails (miniaturas de código fuente), pero no encontré ningún programa que lo implemente al día de hoy.