Resumen 6ta. Reunión de SpringHispano.org y JavaMexico.org
Les pongo a continuación un muy buen resumen de nuestra última reunión, escrito por miguel-1.mx vía SpringHispano.org...
La reunión en tiempos de influenza. El ambiente alrededor de este encuentro, celebrado (aclamado y reverenciado) el sábado 25 de abril pasado, fue inyectado y sanitizado con la dosis acostumbrada de buen humor, alegría y código fuente, mientras los expositores, Domingo Suarez y Luis Héctor Chávez, hacían gala de su pericia programadora en las charlas brindadas para esta creciente comunidad: el "Taller de Groovy" y "Programación de Wiimote con Java/Processing", respectivamente. Algunas características mostradas en estas charlas dejaron simplemente con la boca abierta a más de uno (que no se vio, merced del cubrebocas).
El ambiente alrededor de este encuentro se vio inmerso en la noticia que cambió la óptica y perspectiva del acontecer sociopolítico y económico de Mexicalpan de las Tunas. Muchos de nosotros preguntábamos donde podíamos o consultábamos en las redes sociales acerca de la realización de este evento. Con o sin confirmación, muchos valientes se dieron cita, el tercer día de la emergencia, cuando apenas comenzaban a darse los números y las citas, y bien a bien no se había siquiera dimensionado el alcance y consecuencias de esa serie de acontecimientos.
Acontecimiento bastante ya era que se habría de hablar de Groovy, ese lenguaje cuyo nombre ni siquiera sugiere la seriedad que ha conllevado su desarrollo evolutivo. Implementado sobre la plataforma Java, adoptó similitudes con lenguajes como Python, Smalltalk, Ruby y Perl, todos ellos muy dinámicos y con preferencia a instrucciones más directas.
El taller de Groovy...
Domingo Suarez inició su plática un poco más tarde de lo acontecido en las charlas anteriores, pues el diálogo sobre la entonces noticia del momento se extendió sobre el comienzo del tiempo para Groovy conferido. Comenzó describiendo Groovy como un lenguaje ágil y dinámico para la Máquina Virtual de Java, constuido sobre las fortalezas de Java, pero con características de potencialidad adicionales inspirados por lenguajes como Python, Ruby y Smalltalk, permitiendo una adopción prácticamente inmediata para los desarroladores en Java, es decir, una curva de aprendizaje de casi cero, merced de una sintaxis compacta para que el código se vuelva fácil de leer y mantener.
El Ing. Suarez mencionó entre las bondades de este lenguaje el poder simplificar el periodo de pruebas de proyectos, al soportar comprobación de unidad y "mocking", que integre sin problemas todos los objetos y bibliotecas de Java existentes, y que se compile directamente a código Java, pudiendo utilizarse en cualquier lugar donde se use Java.
Para mantener esta reseña de una longitud adecuada, esta demostración se ha transcrito convenientemente a www.grails.org.mx (http://www.grails.org.mx/codice/showContent/3), pues es ligeramente larga (bueno, este era un taller de tres horas, y fueron poco tiempo para los temas a cubrir). Vale la pena darle un vistazo, es un muy buen ejercicio introductorio.
Algo divertido fue ver cómo se instalaba Groovy en los sistemas de los asistentes a la charla. Ya que "entre gitanos no se leen las manos", fue harto entretenido ver las vicisitudes enfrentadas por los asistentes para conseguir que Groovy corriera en sus respectivos sistemas. No por iniciar una guerra de sistemas operativos. Me remitiré a señalar que para quienes llevábamos alguna distro de GNU/Linux todo fue miel sobre hojuelas. Los usuarios del único BSD con elementos propietarios demoraron más, pero no tanto como quienes confiaron en la tecnología NT con .NET. Dos de ellos lograron instalarlo cuando ya se habían abordado los primeros ejemplos.
Enseguida, ejemplos ejecutables de distintas características de Groovy: desde el HolaMundo mostrado al final de la introducción, el manejo de listas, mapas, loops, rangos y manejo de datos incluyendo XML (sí, rangos, listas y mapas dinámicos, tal como Python o Ruby) hasta lo que el mismo Ing. Suarez denominó "como Swing debería haber sido": entorno gráfico 2d sin sufrimiento. Un botón, una ventana y el previo de un entorno visual para una base de datos. Estos ejemplos dieron pie a volar la imaginación, y se distribuyó el código fuente de los mismos a los asistentes.
Realmente fue una "embarrada" de Groovy, pero fue como cuando se embarra crema de avellana y chocolate en un pan: ¡El sabor es único y deja con ganas de más! Las tres horas terminaron en un santiamén (poniendo una vez más de manifiesto la aplicación de la relatividad), y más por tiempo que por voluntad, se procedió al intermedio.
Este intermedio fue ligeramente distinto, pues no todo el tiempo se habló de Código. Algunos, mientras compartían impresiones y posibilidades sobre los ejemplos mostrados en la charla, también comparaban impresiones y rumores a ellos llegados del "tema del día". Era la primera vez que veía algo así. Felizmente, el código triunfó sobre el rumor, y hacia el final nos enlistamos hacia la segunda charla.
Wiimote + Processing...
De regreso, Luis Héctor Chávez nos brindó la oportunidad de explorar las posibilidades de programar con el Wiimote mediante Java y Processing. Si el mismo CEO de Sony, Howard Stringer, reconoció que Nintendo Co Ltd de Japón "obtuvieron resultados que el PS3 no; generar utilidades de las ventas de hardware" (http://techon.nikkeibp.co.jp/article/HONSHI/20090427/169423/?P=3 en inglés) pues es menester al menos conocer qué hizo Nintendo tan simple y con tantas posibilidades.
Comenzó la charla con características del Wiimote, diferentes a los tradicionales mandos para consolas. El Wiimote es semejante a un control remoto de televisión con unos cuantos botones, un altavoz, un sensor óptico PixArt (como una pequeña cámara al frente) y una barra de sensores con LEDs infrarrojos, además de contar con tres acelerómetros para detectar movimientos. Utiliza Bluetooth para comunicarse con la consola. Por ello puede detectarse por otos dispositivos con Bluetooth, como PCs.
De allí prosiguieron las características técnicas para utilizarlo. Processing es un lenguaje y entorno de programación basado en Java, usado para producción y enseñanza de proyectos interactivos y multimedia de diseño digital, como alternativa abierta, que puede usarse en aplicaciones Web o locales. En el sitio oficial (www.processing.org) se pueden desgargar binarios y fuente. Entre el paquete binario hay ejemplos específicos para el Wiimote.
Comenzó el código a salir a la luz, el primero de creación del exponente, y luego fue intercalando ejemplos propios con ejemplos de Processing. Entre ellos destacó la posibilidad de emitir sonidos en la computadora al mover el Wiimote (el ejemplo simulaba una espada Jedi: "el sueño de todo geek"), un juego para seguir una secuencia en pantalla y conseguir una melodía (al rotar el Wiimote se conseguía hacer subir o bajar un cursor en pantalla, cursor en extremo izquierdo que debía interceptar líneas que viajaban de derecha a izquierda de la pantalla) y preguntas sobre posibilidades de aplicación.
Varios intentaron "emparejar" el Wiimote con su sistema: la comparación entre los sistemas operativos está de más, pero los de Cupertino quedaron detrás de Redmont en esta ocasión.
Una posibilidad más para brindar alternativas a los proyectos. Entre las preguntas incluso comenzaron a despegar las ideas, invitando a los asistentes a investigar compatibilidades con teléfonos móviles y demás accesorios compatibles con Bluetooth.
En verdad, para terminar esta reseña sencillamente diré "quien no arriesga, no gana", y para quienes "osaron atreverse" (dirían los textos épicos) adentrarse a esta plática, el mejor sabor de boca fue su recompensa. Y pudieron (y pudimos) subirse a la "limusina anaranjada" completamente para sí. Eso no se ve todos los días. Y esto, tampoco.
Saludos a todos!
Actualización*
Puedes descargar la presentación y el código de los ejemplos de la charla de "Wiimote + Processing" desde la siguiente dirección:
Comentarios
Acabo de agregar el material
Acabo de agregar al tema el material y ejemplos que presentó lhchavez en su charla :-)