martes, 8 de noviembre de 2011

Video: Arquitectura Orientada a la Web, por Diego Gonzalez

Diego Gonzalez

Siguiendo con las sesiones de la reciente Jornada de Arquitectura de Software organizada por el MUG en UADE, esta vez publico el video de la sesión de Diego Gonzalez acerca de arquitecturas centradas en la web.

Diego es uno de los fundadores de Lagash, una consultora argentina que se ha expandido a algunos otros puntos de América Latina, y que es reconocida en el mercado por la capacidad de su gente y por un espíritu innovador y creativo a la hora de resolver problemas, del que Diego es parcialmente responsable con sus socios. Desde hace muchos años tengo el placer de trabajar de tanto en tanto con Diego y su equipo, e incluso hemos llegado a compartir una cátedra de Arquitectura de Software.

En su sesión, Diego realiza algunas consideraciones generales en cuanto a arquitectura, y después indaga en las características que la web ayudó a establecer, y a una serie de tendencias que le parecen las más importantes a tener en cuenta en aplicaciones modernas.

Dejo a continuación las cuatro partes del video, de unos 15 minutos cada una.

lunes, 7 de noviembre de 2011

jQuery 1.7 disponible

jQuery

La más popular de las bibliotecas de JavaScript, instrumental en cambiar el panorama de este lenguaje, ha sido actualizada una vez más.

Esta versión 1.7 ya está disponible para descarga tanto en el sitio oficial (versión completa o minimizada) como en las redes de distribución de contenido de Google y Microsoft, desde donde conviene apuntarlas en nuestros sitios web para garantizar la mejor eficiencia de acceso.

Algunas de las novedades principales, además de correcciones y mejoras generales, son:

Nueva API de eventos on / off:

Esta sintaxis unifica diferentes maneras de enlazar eventos como las anteriores delegate() o bind(). La sintaxis completa es:

$(elements).on( events [, selector] [, data] , handler );
$(elements).off( [ events ] [, selector] [, handler] );

Ejemplos de uso:

$('form').on('submit', { val: 42 }, fn);

$(window).off('scroll.myPlugin');

$('.comment').on('click', 'a.add', addNew);

Enormes mejoras en el rendimiento de eventos delegados

Muchos otros frameworks basados en jQuery, al igual que muchas aplicaciones complejas hoy día, usan eventos delegados en forma cada vez más intensiva, por lo que el equipo hizo un arduo trabajo de investigación de los escenarios más típicos y logro mejorar el rendimiento de muchas operaciones en forma dramática. Vean el siguiente cuadro comparativo de velocidad de ejecución de las pruebas en diversos navegadores:

Eventos Delegados en jQuery 1.7

Soporte mejorado para HTML5 en Internet Explorer 6, 7 y 8

Aun utilizando bibliotecas como Modernizr o html5shiv, hay tags como <section> que eran eliminados por estos navegadores. Esta versión de jQuery (que no reemplaza las bibliotecas mencionadas) permite seguir manipulando estos elementos en métodos como .html().

Mejoras en jQuery.Deferred

El objeto jQuery.Deferred es parte del API para ejecución asincrónica. Este objeto representa una promesa de retorno de un proceso que está ejecutándose asincrónicamente, mientras nuestra aplicación puede seguir trabajando en otra cosa o atendiendo a eventos.

Esto ya funcionaba perfectamente, pero en la nueva versión se ha extendido el objeto para poder manejar notificaciones de progreso, de manera de poder reportar el avance, o poder preguntar por el estado en cualquier momento.

Otras mejoras generales

También se mejoró la activación y desactivación de animaciones para hacer más intuitivo el manejo cuando éstas operaciones están anidadas, se agregó soporte para el AMD API (definición de módulos asincrónicos), que unifica varias otras bibliotecas como RequireJS o curl.js para cargar módulos dinámicamente. jQuery contempla ahora estas operaciones correctamente y deja que los procesos de carga reporten realmente cuando el documento está ready. Finalmente esta versión agrega una función muy útil: jQuery.IsNumeric() que indica si un valor es numérico, algo que no siempre es tan fácil de determinar como parece en JavaScript.

jueves, 3 de noviembre de 2011

Video: Lenguajes dinámicos meta-circulares, por Hernán Wilkinson

Hernán Wilkinson

En la reciente Jornada de Arquitectura de Software organizada por el MUG en UADE, Hernán Wilkinson presentó esta sesión sobre lenguajes dinámicos en el contexto de entornos meta-circulares, un valor agregado a las características básicas de los tipos dinámicos.

Hernán es uno de los principales especialistas locales en programación y diseño orientado a objetos, uno de los miembros fundadores de FAST (la Fundación Argentina de Smalltalk) y organizador de la conferencia anual internacional Smalltalks que se realiza en Argentina en diversas localidades, en forma rotativa (la edición 2011 está corriendo hoy mismo en Quilmes).

Actualmente Hernán es uno de los socios de 10pines, una consultora de entrenamiento y desarrollo de software especializada en metodologías ágiles y buenas prácticas de ingeniería.

En la sesión (de una hora aproximadamente) podrán verlo explicar conceptos generales sobre lenguajes dinámicos, puntualizando la diferencia entre tiempos de evaluación y chequeo de tipos, y profundizando luego en la diferencia de flujo de trabajo al efectuar TDD en entornos meta-circulares como una imagen de Smalltak.

No tengo disponibles los slides de la sesión, pero una buena parte de la presentación incluye ejemplos sencillos en Java y en Smalltalk, con lo que el video es más importante. Van a continuación las cuatro partes de aproximadamente 15 minutos cada una.

miércoles, 2 de noviembre de 2011

Azure Hispano: un foro para discutir sobre Windows Azure en español

Azure

El viernes pasado en las oficinas de Microsoft Argentina, en Buenos Aires, hubo una reunión inicial de un grupo de gente de la comunidad de desarrollo interesada en intercambiar experiencias sobre los proyectos iniciales que se están dando en la región basados en Windows Azure, la plataforma de computación en la nube de Microsoft.

No pude asistir porque coincidía con la Jornada de Arquitectura del MUG, pero se que hubo varios amigos al menos invitados. Uno de los que iniciaron el movimiento fue el Tano Fabio Maulo, quien hizo el anuncio oficial en su blog.

El resultado de la reunión fue básicamente la creación de una lista de correo (o foro) para discutir sobre este tema. La dirección de la lista creada en Yahoo! es:

http://tech.groups.yahoo.com/group/azurehispano/

Por ahora sólo se dio una conversación sobre maneras de escalar automáticamente, pero es bueno ver muchos nombres conocidos en la lista, como el mismo Fabio, la anfitriona Guada CasusoGabriel Szlechtman, Julian Dominguez, Adrián Eidelman, Nico Bello Camilletti, Alejandro Labras, Jorge Fioranelli, Martin Legnoverde, y varios otros, solamente en unos pocos días.

Para los interesados en esta plataforma, un recurso prometedor.

martes, 1 de noviembre de 2011

Video: Equipos Agiles Distribuidos, por Ariel Schapiro

Ariel Schapiro

En la reunión de septiembre de Agiles en Buenos Aires (tomó un tiempo publicar el video, pero finalmente llegó), Ariel Schapiro presentó esta sesión sobre cómo manejar equipos ágiles en contextos distribuidos, algo que hacemos frecuentemente en Southworks, la empresa en la que ambos trabajamos.

Ariel recorrió una serie de desafíos particulares de mantener un enfoque fuertemente iterativo y basado en la comunicación en un contexto de miembros remotos, y comentó muchas de las prácticas que encontramos para minimizar el impacto de la distancia, mapeando los riesgos principales y trabajando preventivamente en minimizarlos.

Pueden ver los slides de Ariel en slideshare.

Todavía no está anunciada la fecha y el tema de la reunión de noviembre, pero en cuanto tenga novedades estaré comunicándolas en este blog.

 

A continuación, el primer segmento de la sesión. Si quieren verla completa, dejo debajo los links a las 5 partes.

Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5