Uncategorized


Hace un par de días tuve el gusto de ver una charla de Gonzalo Frasca en Educ.ar, sobre la que Alejandro Piscitelli cuenta algunos detalles aquí (en realidad sólo asistí a la segunda de las que relata).

Gonzalo es uno de los teóricos de videojuegos más conocidos del mundo (con mérito: ya que fue quien dio origen a toda la nueva corriente de ludología), además de ser dueño de un estudio de desarrollo que produce algunas joyas en materia de videojuegos.

Sigan atentos a su blog, ya que es posible que siga dando conferencias por aquí, y realmente vale la pena verlas.

Una breve explicación de esta pausa en el blog: estoy trabajando muchísimo, y cuando no, haciendo los preparativos para un viaje inminente a los Estados Unidos. Pronto haré un post sobre el tema, pero lo que puedo decir por ahora es que voy a estar estudiando unas semanas en University of Vermont, y luego voy a hacer una breve visita a Boston, por motivos que ya explicaré luego.

Más detalles pronto, o quizás durante el mismo viaje.

Tetris AI: computer plays Tetris” es un proyecto verdaderamente curioso. Desarrollado por Colin Fahey, el proyecto presenta un software que juega al Tetris solo, es decir sin ningún tipo de asistencia humana.

tetris_ai_256x192.jpg

Más interesante todavía es el funcionamiento del programa: el software interpreta lo que sucede en la pantalla del juego a través de la información que ingresa desde una webcam, y realiza sus movimientos directamente ingresando las teclas presionadas por el puerto de teclado.

En definitiva, el programa combina algoritmos de visión artificial (para reconocer la imagen en pantalla), de inteligencia artificial (para realizar las jugadas), y una sencilla interfaz de hardware para lograr su objetivo.

standard_tetris_demo_ai.jpg

El sistema de reconocimiento de piezas en acción
(la segunda computadora)

Una instalación típica de este programa se haría en dos computadoras separadas: la primera corriendo el Tetris; la segunda capturando la pantalla de la primera a través de una webcam, tomando las decisiones correspondientes y enviándolas de nuevo a la primer computadora a través de una interfaz de teclado (hmm… creo que los que estudian la cibernética, y los ciclos de feedback, etc. estarían muy felices con este sistema).

Menciono este proyecto acá porque cuando lo vi me pareció realmente interesante, además de ingenioso. Digo ingenioso refiriéndome sobre todo al enfoque que usa para realizar el reconocimiento por visión de las fichas, que permite simplificar mucho un problema que de otro modo resultaría bastante más complicado. Pero además hay que decir que ya el concepto básico del proyecto (hacer un programa que juegue solo al Tetris) es curioso y original por sí mismo.

Más info sobre este proyecto en la página dedicada a “Tetris AI: computer plays Tetris“.

adobe_flash-logo.jpgSorpresa sorpresa… por un proyecto particular, colgué mis herramientas usuales de programación (C++, Python, Lua y similares) para pasar a Flash y Java por una breve temporada.

No tengo mucho que decir sobre Java ahora, pero en cuanto a Flash: ya tenía alguna experiencia con esta herramienta, que había tenido que usar en algunas ocasiones, e incluso estaba hace poco usando para un proyecto personal. Pero siempre la usé muy a disgusto, en un disgusto compartido con una gran cantidad de colegas, sin duda: me resultaba útil pero me molestaba enormemente tener que acudir a Flash.

Sin embargo, trabajando en este proyecto me terminé de convencer, ya no a nivel técnico, sino a nivel personal, del valor de esta herramienta. Tiene sus limitaciones, sin duda (aunque son limitaciones muchas veces realmente inteligentes, considerando el funcionamiento de Flash como plataforma), pero por otra parte es una herramienta de una versatilidad y poder increíble.

Yuri Gurevich y Nachum Dershowitz, de Microsoft Research, publicaron hace unos días un paper demostrando la Tesis de Church-Turing (primero haciendo una axiomatización que le permita luego realizar la demostración formal). El paper se puede encontrar aquí y parece ser muy interesante.

Por otra parte, este post en el blog de Scott Aaronson es realmente divertido. El mismo hace referencia a la devolución que el Foundations of Computer Science (FOCS) le dio a Alan Turing en respuesta a su paper “On computable numbers …“, ahora absolutamente clásico (70 años después se lo sigue estudiando, y sigue siendo la base de muchas investigaciones).

Hace no tanto, finalmente aprendí que son inútiles las categorías para las personas, cuando se las quiere utilizar para prescribir y no meramente para describir.

Podemos describir a alguien como una persona amable, y eso nos puede ser útil para hacer pequeñas predicciones sobre su comportamiento futuro, pero ni siquiera de ellas deberíamos fiarnos mucho. Podemos etiquetar a alguien de acuerdo a su profesión, y llamarlo abogado / profesor / cerrajero / físico / médico / escritor, pero difícilmente con esa sola palabra podamos dar completa figura de lo que esa persona es capaz de hacer, y de lo que a esa persona despierta pasión.

Creo que las categorías en las personas pueden ser sumamente perjudiciales, sobre todo cuando se las trata de usar para la prescripción del propio comportamiento. Existe siempre la tentación de decir “epa, yo soy X, y por tanto debo hacer Y“; para decir un ejemplo tonto: “yo soy abogado, debería comportarme como un tipo serio y solemne“. Pero creo que esas pequeñas inferencias cotidianas son casi siempre un error.

Es que de todos modos ninguna categoría puede llegar a hacer justicia completa a una persona, excepto que la persona sea en realidad increíblemente chata y poco original, o que sea exageradamente prototípica.

Esto nos deja, en definitiva, a nuestros propios medios para saber cómo vivir, qué hacer, y cómo ser. Pero esto es perfectamente natural: después de todo, somos humanos y la ambigüedad y la falta de lógica reinan en nuestras vidas. Y de cualquier modo, seguramente así es como debería ser.

Hace un par de semanas me encargaron la redacción de un artículo de 1000 caracteres. No pensé que pudiera ser una tarea complicada, ¡en lo absoluto! Mil caracteres, después de todo, es muy poquito texto.

Hasta que empecé a escribirlo, y encontré que el primer texto que me conformaba tenía ya unos 2000 caracteres. Era el doble de extenso de lo que debía ser y ya parecía suficientemente sintético. Entonces empecé a entender el verdadero desafío de la tarea en cuestión.

Tenía que escribir, reescribir, podar y reescribir. Tratar de sintetizar las ideas tanto como pudiera, sin que éstas perdieran profundidad ni claridad; un trabajo en alguna medida similar al de optimización por computadora.

No creo que haya tenido un gran éxito en esta tarea, pero sí me sentí bastante conforme con el resultado. Y sobre todo, me divertí mucho trabajando en ese pequeño desafío de encontrar el texto justo, la combinación exacta de unas pocas oraciones que comunicara (espero) de forma clara, concisa y elegante.