Archivo para la categoría 'JavaUy'

Fri
Oct
26

JAVAUY 07 - Integración continua


Ya se está subiendo el material del Javauy al sitio del JUGUY, así que voy a ir repasando las conferencias a las que asistimos y tratar de publicar algo de material por acá.

Estuve leyendo sobre “Integración continua“, la primer conferencia que asistimos. Lo bueno que tuvo esta charla al igual que muchas otras, es que el orador la presentó no solo basado en lo teórico, sino en experiencia propia. El orador fue Yonathan Lapchik, desarrollador de Tata Consultancy Services, que para mostrar ejemplos, se conectó por escritorio remoto a una computadora en Ciudad Vieja y otra en Zona América.

Me sirvió mucho haber aprendido a usar control de revisiones (Subversion en mi caso) en el trabajo para entender el concepto global. Pueden leer más sobre eso en Wikipedia.
No saqué muchos apuntes pensando en ver las diapositivas publicadas más adelante, así que voy a confiar en lo que me acuerde. De todas formas van a estar disponibles en el sitio del JUGUY más adelante, ya han subido unas cuantas, y siguen subiendo las que se van sumando.

La integración continua es una práctica de desarrollo de software, del lado de la programación extrema o programación ágil, introducida por Martin Fowler y Kent Beck. Fowler la define en su trabajo como:

“Una práctica de desarrollo de software donde los miembros de un equipo integran su trabajo frecuentemente, usualmente cada persona integra al menos diariamente - llevando a varias integraciones por día. Cada integración es verificada por una generación automatizada (incluyendo testeo) para detectar errores de integración tan rápido como sea posible. Muchos equipos han encontrado que ésta técnica los lleva a problemas de integración significativamente reducidos y permite a un equipo desarrollar software cohesivo más rápidamente.”

Por medio de un sistema de control de revisiones, y un sistema de automatización del build, se mantiene un repositorio único con el código del software. Es bastante popular y bastante usada en el desarrollo de software.

Algunas de las prácticas incluyen:
-Automatizar el build: De ésta forma, a pesar de haber muchos programadores trabajando en distintos sectores y partes del código, todos van a compilar y generar el proyecto de la misma manera.
-Incluir test automáticos.
-Administrar cambios al menos una vez por día.
-Testear en un clon del ambiente de producción: las condiciones en que se testean deben ser iguales a las del ambiente de producción.
-Facilitar acceso a último ejecutable a todos.
-Todos ven lo que está pasando.

Algunas de sus ventajas son:
-Cuando fallan los tests unitarios, o se descubre un bug, los desarrrolladores pueden revertir el código a un estado libre de errores, sin perder tiempo debugueando.
-Avisos tempranos de código roto o incompatible.
-Avisos tempranos de cambios conflictivos.
-Tests unitarios inmediatos de todos los cambios.
-Disponibilidad constante de un build actual para testear, demostrar, o entregar.
-El impacto inmediato de chequear código roto o incompleto es un incentivo para que los desarrolladores aprendan a trabajar incrementalmente con ciclos de feedback más cortos.

En la charla mencionaba cómo un desarrollador detecta errores propios enseguida, en contraste con un código sin integración. Ésto haría que todos perdieran tiempo buscando un culpable de un código erróneo. Y una de las cosas que más enojan a un programador es el código erróneo de otro. Por eso, al detectar al que metió la pata, le están echando mucha responsabilidad y presión encima.
Sin embargo, con éste método, uno mismo se da cuenta de sus errores, pudiendo corregirlos antes de incluirlos en el repositorio. Ésto supone una moral más alta en los desarrolladores al no tener que pasar por esa situación incómoda.

Mencionaron más de un software que hace posible el trabajo de la integración continua, y demostró el que usa en la práctica en su trabajo. Muchos de ellos son Open Source, por lo que pueden obtenerse gratuitamente por internet. Tengo entendido que los hay no solo para Java y .NET sino también para Ruby, Python y otros lenguajes. Tienen una interfase muy amigable y fácil de usar, e incluso plugins para Firefox.

Lo que descubrí por casualidad es que el equipo de desarrollo de SharpDevelop, el IDE gratuito y libre para desarrollar en .NET, utiliza un software de integración continua, CruiseControl. Caí de casualidad en la interfaz de integración continua del proyecto, y lo reconocí instantáneamente después de haber asistido a ésta conferencia.

En conclusión puedo decir que la integración continua es una práctica bastante interesante para proyectos grandes y rápidos, aunque lleva una disciplina bastante exigente de desarrollo para el programador. Sin embargo, sería interesante trabajar bajo esta disciplina en algún momento para poder conocer la metodología a fondo y determinar las ventajas y desventajas basado en experiencia propia.

Si les interesa el tema, pueden leer más detalles sobre las prácticas y beneficios en el papel de Martin Fowler, o buscar al respecto en Google.

Enviar a Teknear! Agregar esta página a Mister Wong
Sun
Oct
14

Merchandising Javauy 07


Siguiendo con la parte “no-técnica” del Javauy 2007, éste es el merchandising que obtuve:
-Una lapicera de Tata.
-Una lapicera Java.
-Tarjetas del programa de Grupos de Usuarios Java de Sun.
-Una carpeta del JavaUy (adentro están las hojas con mis apuntes de las conferencias y demás, aparte de otros papeles que agarré).
-Un mouse pad comodísimo de Arnaldo Castro S.A., quedó como mi mouse pad predeterminado.
-El “carné al estilo ‘Hola, mi nombre es…’” del Javauy07 con mi nombre y la empresa.
-Una remera del JUGUY

Merchandising Javauy

Enviar a Teknear! Agregar esta página a Mister Wong
Fri
Oct
12

De regreso del Javauy


JAVAUY 07

Ya volvimos del primer encuentro anual del grupo de usuarios Java del Uruguay. El segundo día, entré a la conferencia sobre J2ME + GPRS + Bluetooth GPS + J2EE. Llegué un poco tarde por un tema de ómnibus y demás, pero algo alcanzé a ver.

Después entré a conocer un poco de la Java Software Factory de Arnaldo Castro S.A., y la presentación del JUGUY.

JAVAUY 07 - Presentación JUGUY

JAVA:
  1. while(suministroCafe != 0){
  2. coffebreak += café;
  3. coffebreak += bizcochos;
  4. coffebreak += sorteos();
  5. }

En la segunda tanda, una muy buena charla de parte de Rodolfo Pilas, Presidente del UYLUG sobre Licenciamiento de Software y otras obras con Derecho de Autor.
Por último, me clavé con una "introducción" a Groovy, que se extendió en el tiempo y nos perdimos de los sorteos finales y supongo que cierre del evento. No me gustó Groovy, es lo único que voy a comentar al respecto...

No saqué muchas fotos, pero la gente del JUGUY sí sacó unas cuantas, así que algunas habrán para ver más adelante en el sitio.

Realmente excelente todo lo que fue la organización y el nivel de las charlas. Más adelante voy a ir escribiendo más en detalle sobre cada presentación a la que entré, pero ahora me tengo que poner al día con el trabajo y los estudios por esos dos días que anduve por la capital.

Si alguno de los que leen esto estuvo en el Javauy, dejen su comentario sobre qué le pareció el evento.

Enviar a Teknear! Agregar esta página a Mister Wong
Thu
Oct
11

Segunda jornada JavaUy 2007


 

JAVAUY 07

JAVA:
  1. System.out.println("En breve salgo para el LATU...");
  2. System.out.println();
  3. System.out.println("No hay internet y creo que tampoco Wi-Fi.");
  4. System.out.println(" así que no creo que vuelva a postear hasta el viernes.");
  5. System.out.println();
  6. System.out.println("Hasta ayer estuvo increíble, veremos hoy.");

Java Powered

Enviar a Teknear! Agregar esta página a Mister Wong
Thu
Oct
11

Primer informe JavaUy 2007


JAVAUY 07

Hoy fue la primer jornada del JavaUy 2007 en el Knowledge Development Center del LATU. Había mucho más gente de lo que esperábamos.

Entramos a la primer conferencia sobre "Integración contínua" de Martin Fowler, y estuvo bastante buena. La sala estaba colmada de gente, no dieron las sillas.
En la misma sala siguió una conferencia sobre mejorar interfases gráficas de usuario con Swing, que empezó bastante dinámica y divertida, pero se profundizó en códigos y abstracción de programación gráfica a medida que avazaba.

Más tarde sorteos, un coffee break con bizcochos, y entramos al taller de JPA., con una DELL con Netbeans en Windows XP.
Realmente muy productivo e interesante el primer día. Para mañana un conflicto de intereses porque se solapan varias charlas buenas en los mismos horarios.

Knowledge Development Center LATU


Muy buena organización por parte del JUGUY y muy buena la concurrencia de programadores, y las ofertas de trabajo de Tata C.S. e IBM.

Mañana cuento más sobre el calendario de la segunda jornada, y en éstos días atacar los temas más técnicamente.

Enviar a Teknear! Agregar esta página a Mister Wong
Thu
Oct
4

Afiche JAVAUY 07


JAVAUY 07

A los interesados les recuerdo que pueden ver el calendario de sesiones, detalles de las sesiones e inscribirse en el sitio: http://juguy.org/javauy07

Enviar a Teknear! Agregar esta página a Mister Wong

My Amazon.com Wish List

Debian Counter

Mi cuenta en Twitter
Feed RSS (completo)
Mis videos en YouTube
Technorati
Mi contenido en KDE-Look


LinkLift