martes, 13 de septiembre de 2011

Video: Programando de a pares con Emilio Gutter

Emilio Gutter

En esta nueva sesión de programación de a pares me sumo a Emilio Gutter para hacer un ejercicio utilizando Java.

Conocí a Emilio a fines del 2006 cuando fuimos compañeros de equipo durante el curso de Certified Scrum Master dado por Tobias Mayer. Nos divertimos mucho durante ese curso, y varios de los que pasamos por ahí nos mantuvimos en contacto después a través de una primer lista de distribución que fue uno de los puntos focales de donde surgió el grupo de organizadores de la primer conferencia de la serie Ágiles: Ágiles 2008.

Emilio lleva más de 10 años trabajando en desarrollo de software y es un desarrollador trotamundos que ha trabajado en proyectos en Argentina, Brasil, UK, USA, Francia, Rumania y Bulgaria, por lo menos. Actualmente es uno de los líderes de su consultora 10pines, que brinda servicios de desarrollo, entrenamiento y coaching, con fuerte foco métodos ágiles, incluyendo un alto compromiso con la calidad y la cultura organizacional.

En el video podrán ver cómo hacemos un ejercicio de diseño en Java, usando Eclipse con JUnit 4 y la biblioteca de mock objects mockito y planeábamos utilizar también harmcrest,una biblioteca de matchers (o predicados) muy útil para realizar aserciones en las pruebas unitarias, pero no alcanzó el tiempo esta vez, así que quedará para más adelante.

Les dejo el video (de aproximadamente 25 minutos) y espero que lo disfruten:

lunes, 12 de septiembre de 2011

Exposición de Videojuegos 2011 en Buenos Aires, 11 y 12 de noviembre

InventEVA2011, la novena edición del evento organizado por la Asociación de Desarrolladores de Videjuegos Argentina se llevará a cabo el viernes 11 y sábado 12 de noviembre en el Centro Metropolitano de Diseño, en Algarrobo 1041, en Barracas.

El evento está aun en proceso de organización final, y hasta el 23 de septiembre está abierta la llamada a propuestas para disertantes en los siguientes formatos:

  • Charlas y Postmortems
  • Workshops (talleres participativos)
  • Debates on‐stage
  • Mesas redondas

Y ésta es la lista sugerida de áreas temáticas (aunque no son excluyentes):

  • Arte
  • Negocios y Producción
  • Game Design
  • Música y Sonido
  • Programación

Las propuestas se reciben en línea en esta página.

Según la definición de los organizadores:

EVA es un espacio de encuentro, diálogo y capacitación. Se trata del evento más importante de la industria local de videojuegos, que año tras año crece en público, invitados y sponsors.
Este año, el foco estará puesto en analizar cómo llegar a nuestro primer blockbuster hasta simplemente tener un valor diferencial ofreciendo servicios de calidad superior.

Por lo que los principales ejes temáticos serán:

  • Creando Valor.
  • Generando marcas de entretenimiento.
  • Agregando valor en los servicios de desarrollo.
  • Futuro de los videojuegos.

Habrá workshops, mesas redondas, conferencias, talleres, business rounds, charlas y expofloor. Se tratarán temas que, de una manera amplia, expandan los horizontes de las empresas nacionales a partir de la participación de importantes Keynote Speakers internacionales, aportando conocimiento y experiencia.

Por ahora el primer invitado especial confirmado es Jonathan Blow, creador del premiado juego Braid.

viernes, 9 de septiembre de 2011

¿Cómo funcionan los navegadores?

Mi amigo y compañero de trabajo Charly Páez compartió el otro día este documento que me parece algo fundamental para todo desarrollador hoy día. Está en inglés, pero no podía dejar de compartirlo con ustedes.

How Browsers Work: Behind the Scenes of Modern Web Browsers”, es parte del portal HTML5 Rocks construido por Google, conteniendo introducciones, presentaciones y guías de referencia.

Como se explica en el prefacio, gran parte de este documento surge de la cuidadosa investigación de la desarrolladora israelí Tali Garsiel sobre las características internas y análisis del código de WebKit (Safari y Chrome)  y Gecko (Firefox) los motores de presentación de código abierto que hoy suman aproximadamente un 60% del uso de la web. Aunque Internet Explorer no puede ser analizado de la misma manera, los lineamientos generales de su arquitectura seguramente no difieren fundamentalmente de lo que este documento cubre.

El contenido completo cubre los siguientes procesos, basados en el flujo típico debajo (dejo muchos términos si traducir para evitar confusiones):

  • El motor de rendering
  • Parsing y construcción del DOM (HTML, CSS, Scripts)
  • Construcción del árbol de render
  • Layout (distribución de los elementos)
  • Painting (la aparición real de los elementos en pantalla)
  • Cambios dinámicos
  • Los hilos del motor de rendering
  • Modelo visual de CSS2

Todo comienza con la descripción de alto nivel de la estructura de los navegadores, resumida en el siguiente diagrama:

El trabajo es bastante extenso y detallado, pero nuevamente lo recomiendo muy especialmente. No importa aprender todo ese nivel de detalle, pero leerlo detenidamente nos permite retener al menos algunos conceptos generales que nos ayudarán a comprender más fácilmente situaciones comunes en el desarrollo web.