El pasado 29 de Junio tuve la oportunidad de ser parte de los ponentes del JConf Dominicana. Un evento realizado por la comunidad local de Java en la PUCCM. El evento estuvo formado por ponentes de distintas partes del mundo para comentar sobre las últimas tendencias en la JVM.

La estructura del evento me gustó porque en la mañana se hicieron las principales ponencias por parte de los conferencistas mas importantes en el teatro de la universidad. En la tarde, se hacían el resto de presentaciones en aulas de clase donde los asistentes podían escoger a cuales ir. Me gustó la organización porque estos temas tenían diferente dificultad y áreas, así que podías asistir a las charlas de tu perfil profesional sin problemas de choque.

Sesión matutina

Para llegar a Dominicana tuve que tomar varios vuelos con horarios incómodos. Por esta razón, tuve que dormir el día antes del evento y me levanté un poco tarde. Me perdí la apertura y la primera charla. Pero pude entrar al final de la de Sebastían Daschner sobre los mejores frameworks empresariales de JAVA. Posteriormente fui a la de Mark Heckler sobre plataformas escalables con spring. Excelente ponencia con buenos chistes en español. Finalmente se hizo un panel de conferencistas para discutir los temas actuales de la plataforma Java y del futuro de la misma. Excelente opiniones y temas tratados allí.

Sesión de la tarde

La primera conferencia que entre fue la de Eliezer Herrera sobre plataformas como Graal, Gradle y Vertx que permiten la ejecución de otros lenguajes en la JVM. Muy interesante y no conocía que se podían hacer ese tipo de cosas. De ahí fui a la charla de Carlos Paulino sobre desarrollo continuo para plataformas Android. Me llamó la atención porque trabaja en American Express y quería conocer como es el proceso de desarrollo de una aplicación móvil en ese tipo de empresas. Me llamó al atención el cuidado hacia la calidad y cómo las pruebas se realizan en distintas plataformas.

Luego de un receso para unas golosinas, comenzó la charla de Omar Berroterán Silva sobre GraphQL. La tecnología para obtener fácilmente datos a través de una API. Esta ponencia abarcó desde la introducción hasta dar ejemplos de como consultar datos, instalar esta herramienta, entre otros. Me gustó como Omar utilizó códigos QR en sus láminas para que los asistentes pudiésemos ver los ejemplos en el móvil y participar en la charla.

Java de nuevo a la web con WebAssembly

Mi charla en este evento la estaba dando por primera vez. Aunque había hablado de WebAssembly, nunca la había mezclado con Java. En ella pude hablar sobre una pequeña introducción a esta plataforma. Las diferencias respecto a los Applets de Java (pues tiende a confundir inicialmente a los programadores de Java). Por qué no iba a tener el mismo destino que los applets.

En el caso de Java, esta charla me gustó darla porque existen actualmente varias formas de llevar el lenguaje. Cada una trabaja de forma distinta y pude mostrar las bondades de cada forma.

La presencia fue excelente, hicieron preguntas muy interesantes y de ahí salí al cierre del evento con música dominicana.

Cena del JConf Dominicana

La cena fue excelente, tuve la oportunidad de compartir con otros ponentes. Conocí mas de la cultura Dominicana. Pude probar sus excelentes platos típicos como el mangú y mofongo. Disfrutar de un buen ambiente caribeño y discutir de tecnología.

Fue una gran experiencia participar en el JConf Dominicana. A pesar de estar solo 2 días en el evento. Me llamó la atención como la mayoría de los ponentes internacionales hablaba español. Los temas fueron muy interesantes. Los organizadores hicieron un excelente trabajo.

¡Lo disfruté mucho! Espero volver algún día.

Viendo el blog de picando código, me encontré con este video y como tenía tiempo sin poner música geek aquí. He decidido compartirlo con ustedes:

Y para mis lectores programadores:  ¿Ustedes siguen programando en Java? ¿O han cambiado de lenguaje?

El viernes pasado recibi mi invitación para participar en la beta de AppInventor, un programa para crear aplicaciones para Android sin necesidad de escribir código, si nunca lo han escuchado o desean ver una introducción, pueden chequear el siguiente vídeo:

Para comenzar a usarlo, se debe iniciar sesión con la cuenta de google y descargar un instalador, revisándolo por encima, trae un emulador de un móvil con Android, un depurador de código y parte del SDK de Android. El instalador pesa casi 60MB y está disponible para Windows, GNU/Linux y MacOS.

Pantalla principal de AppInventor

Pantalla principal de AppInventor

Una vez instalado no pude encontrar el ejecutable para iniciar la aplicación, pero al buscar información en la página, me di cuenta que es una aplicación web hecha en HTML5/Javascript (estos de Google se estan tomando en serio la computación en la nube), la misma, contiene a la izquierda un menu con una serie de componentes para usar en la interfaz de la aplicación, en el medio la ventana de la pantalla telefóno y a la derecha las propiedades del componente y un navegador de componentes usados. Esta interfaz es sencilla, igual a los IDEs existentes por lo que para los desarrolladores no será problema el uso de AppInventor, los componentes simplemente se arrastran a la pantalla del teléfono y con doble click vamos editando las propiedades.

Esta parte es sólo la vista de la aplicación (como el modelo MVC) por lo que para agregar eventos y definir las acciones a ejecutar cuando el usuario interactúa con estos componentes, utilizamos la vista de bloques, accesible por un botón en la parte superior derecha. Al hacer click allí, se abre una aplicación Java Web Start (se vé el gran uso de Java en Android por parte de Google) donde pasarmos a la vista de asignación de eventos y acciones (como el controlador segun MVC), lo interesante, es que podemos asignar eventos y acciones a través de bloques parecidos a las piezas de un rompecabeza, uniendo los bloques podremos realizar el programa deseado sin escribir una línea de código. El famoso Hola Mundo, lo hice en menos de 5 minutos sin leer manuales, usando 3 bloques como se ve en la siguiente imagen:

Bloques de acciones en AppInventor

Bloques de acciones en AppInventor

Luego podemos ver los resultados en nuestro teléfono Android o usando el emulador, generar el paquete y distribuirlo. No he leído, pero creo que por ahora no hay mucha interacción con el Market y no se como es la licencia para el uso de esta aplicación.

Me gustó como se trabaja con esta herramienta y permite desarrollar cosas sencillas en pocos pasos (obviamente cosas complejas requiere escribir código), además permite a personas ajenas a la programación, realizar aplicaciones sencillas para si mismas. Google está haciendo un buen trabajo con esto y me llamó la atención que todo fuese bajo web, muchos no nos imaginaríamos hace unos años la posibilidad de crear aplicaciones desde el navegador.

Hoy al subir unas fotos al facebook, me dí­ cuenta que funcionaba de nuevo la aplicación para cargar las fotos a través de un explorador de archivos. Desde que empecé a usar 64 bits con mi nueva PC, no habí­a podido usar esta aplicación porque necesitaba del plugin para Java, pero no estaba disponible para el navegador de 64 bits, sin embargo, instalando el navegador de 32 bits junto con las librerí­as requeridas, permite usar el plugin oficial existente para 32 bits. Pero nunca lo hice porque me daba pereza y para eso me quedaba en esa arquitectura.

Al investigar mi historial de actualizaciones, observé que se habí­a actualizado el JRE a la versión 1.6.u12, donde se incluye de manera oficial el plugin para la arquitectura de 64 bits.  Me parece excelente como cada vez se crean mas aplicaciones compatibles con  esta arquitectura; el año pasado recuerdo que la queja o el impedimento para la mayorí­a de migrar a x86_64 era la de ausencia del plugin de Flash y de Java para su navegador, dejando una gran cantidad de páginas web sin posibilidad de navegarlas completamente o de ver algo. Cada vez veremos como las aplicaciones saldrán para esta arquitectura que será el reemplazo de la actual, ya que 4 GB de Ram no serán suficientes para futuro próximo.

Nota: Si necesitan del plugin de java, solo actualicen el JRE a la última versión (1.6.u12) utilizando su gestor de paquetes.

Después de un tiempito he actualizado el Word Challenge Cheater para que funcione mejor con la nueva versión y ahora se incluyen los diccionarios para mejor uso del programa, para mayor información:

http://skatox.com/blog/2008/08/06/world-challenger-jcheater-v10/

Hace como un mes descubrí­ el juego «World Challenger» de Facebook , el cual me llamó la atención porque todos mis amigos lo jugaban y me pareció que la forma de ganar mas sencilla es como cuando se intenta adivinar una contraseña de una cuenta mediante fuerza bruta. Motivado por la fiebre que tenia la mayorí­a de compañeros de universidad y quedar de primer lugar rápido hice un programa para lograr un puntaje alto medianto el uso de fuerza bruta con un diccionario de palabras (obviamente eso es trampa).

El mismo está programado en Java porque queria ofrecer un binario para Linux y Windows sin tener que programar 2 aplicaciones distintas, ya que queria que se comunicara con el sistema operativo y escribiera por teclado las palabras automáticamente sin intervención del usuario. Otra razón es que todos los Cheaters de este juego que se consiguen  en Internet no corren bajo Linux y pues quise ofrecer uno.

Modo de Uso

Para usarlo, simplemente corren el ejecutable (si no les abre, tienen mal instalado el Java en su S.O.) se les abrirá una ventana del navegador con la pagina de World Challenge (si no han iniciado sesión en facebook se los pedirá hacer) y ahora lo que único que deben hacer es escribir en la caja de texto las letras que les pide el juego, presionan la tecla Enter o clic en Crackear y cambien a la ventana del navegador con Word Challenge EN MENOS DE 2SG ya que después de ese tiempo empezará a tipear todas las palabras del diccionario que sirvan.

Bugs conocidos

  • Por ahora no sirve para las palabras con í‘ ya que no he logrado producir que se escriba por teclado esa letra.
  • Existe un bug que sucede rara vez en Windows que se cuelga la aplicación si no se cambia a la ventana del navegador al momento de escribir, sin embargo, no siempre sucede.

Software Requerido

Requiere tener el JRE (Java) instalado en su máquina para correrlo y ademas tener en la misma ubicación del programa, el diccionario de palabras (incluido con el programa) con el nombre espanol.txt y/ó ingles.txt dependiendo del que vayan a usar (el diccionario debe tener como separador de palabras un salto de lí­nea, es decir, una palabra por cada lí­nea del archivo, por si desean usar otro diccionario).

Espero que les guste y no abusen de él; pueden redistribuir el programa libremente, pero si lo ponen en una página, favor de hacer un enlace hacia este blog o comenten del mismo. Aquí­ tienen el programa para usar:

Descargar World Challenger JCheater v1.1

Página web con buenos diccionarios de varios idiomas

P.D: «por ahora no libero el código fuente del mismo porque utilizo una liberí­a propietaria que no es mí­a, me falta arreglar un poco el código y arreglar unos detalles. Tal vez, para la version 1.2 será q lo lance».

Pues si, ya es oficial que Sun liberó Java bajo GPL y FELIZ CUMPLEAí‘OS 16 a la WWW.