baby typist

He hecho una pequeña aplicación para que mi hijo pueda juguetear con el ordenador. A él le encanta aporrear el teclado y mirar fijamente a la pantalla, en eso coincidimos.

Ese aporreo produce resultados bastante aburridos y a veces hasta dañinos. Si te pones a teclear a voleo no es imposible que borres algo, así que le he hecho este programita que ocupa toda la pantalla y captura todas las pulsaciones de teclado. Para la mayoría de las teclas responde mostrando el valor de esa tecla por pantalla, para algunas muestra una palabra, por ejemplo la m muestra mamá.

La aplicación se puede descargar aquí y sólo necesita tener java instalado. Para pararla tendrás que hacer ALT+F4 en Linux y Windows o COMMAND+Q en Mac.

La aplicación está basada en otra llamada bambini. El problema con esta es que si dejabas una tecla pulsada iba actualizando a toda velocidad la pantalla con unas combinaciones de colores lisérgicas. Casi me da un ataque de epilepsia. Por cierto, una vez bambini se quedó colgada y la maté a través del terminal. Me sentí como Herodes al ejecutar

$ killall bambini

Anuncios

featuritis

KISS es un principio de diseño, acrónimo de keep it simple, stupid. Según la wikipedia el principio KISS afirma que la simplicidad debe ser un objetivo del diseño y que se debe evitar la complejidad innecesaria. Es frecuente oirlo en informática, menos frecuente verlo aplicado.

Cuando se pide a un programador que añada algo a un sistema (web, aplicación, …) generalmente quien lo pide evalúa el esfuerzo de desarrollo, algo así como “costará dos semanas”. Pero rara vez tiene en cuenta el lastre que ese añadido tiene sobre el sistema en que se está insertando. Está convirtiendo a ese sistema en más complejo: más difícil de mantener y de probar, más probabilidad de sufrir fallos en el futuro.

La featuritis es lo contrario a KISS. Añadir funcionalidad (features) a un sistema hasta volverlo excesivamente complicado.

Acabo de terminar la lectura de the mythical man-month. Un libro sobre gestión de grandes proyectos informáticos, escrito por Frederick Brooks en 1975 y con muchas de sus ideas aún vigentes. Abre el libro con la afirmación de que un programa exige nueve veces más esfuerzo si está desarrollado como parte de un sistema que si está desarrollado de forma independiente. Brooks incluye en ese sobre esfuerzo la documentación, el testing, etcétera. Yo pienso que el principal coste proviene de la integración. Cuanto mayor es un sistema más puntos de integración y más posibles piezas pueden verse alteradas a introducir una nueva. Asimismo mayor número de personas han contribuido con lo que es más difícil tener una idea global del sistema y su estructura interna.

Si le vas a pedir a un informático que añada algo, piensa que lo estás haciendo más complicado de mantener y que estás haciendo que los futuros desarrollos sean más costosos. Por otro lado es posible que tus usuarios también prefieran un sitio con poca funcionalidad bien diseñada y bien ensamblada.