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

lunes, 31 de octubre de 2011

JUGAR 2011

Jugar

Bastante sobre la fecha, me entero gracias a mi colega Nico Páez que mañana (1ero de noviembre, a las 14:30) se realiza la conferencia JUGAR 2011 en el Aula Magna del ITBAAv. Eduardo Madero 399, Buenos Aires.

Es muy bueno ver a la comunidad argentina de Java moviéndose de nuevo y organizando un buen temario como este.

Alguna de las charlas (según la misma organización):

Dan Diephouse de MuleSoft (Ingles)
Nos va a contar la experiencia y los desafios que enfrentaron al crear el primer iPaaS del mercado. Caidas de EC2, escalar MongoDB, las ventajas y desventajas de ElasticSearch/Fume, muerte del OS. Como lograron crear un servicio escalable y redundante sin punto unico de fallas en tiempos tan cortos.

Paulo Caroli de Thoughtworks (Ingles)
Paulo va a entrar en detalles sobre Kanban, y los limites que impone al Trabajo en progreso. Va a presentar una forma donde flexibiliza los limites de Kanban usando un metodo llamado objetivo-varianza. Donde el equipo controla  el trabajo en progreso usando el objetivo y varianza. 

Julio Faerman de Red Hat (Ingles)
JBoss es una comunidad open source muy activa desarrollando mas de 80 projectos. Algunos son muy conocidos como el application server y hibernate, pero otras pueden ser tan valiosos no tienen la misma publicidad. En esta charla Julio va a presentar todos los projectos activos de JBoss, como se usan en soluciones y como pueden mejorar la tuya.

Jose Alvarez Muguerza de Turmeric - Turmeric SOA
Jose nos va a presentar el proyecto Turmeric. Es una plataforma SOA para desarrollar, implementar, ejecutar y monitorear servicios y clientes. Esta escrito en Java y sigue los estándares SOAP, XML, JSON, XACML, etc.), y soporta WSDL (SOAP style - Doc Lit wrapped mode y REST style). Turmeric es la versión Open Source de la plataforma SOA usada por eBay para su negocio.

Matias Bagini de JRapid - Java en la nube
En los últimos años surgieron nuevas plataformas para alojar aplicaciones Java en la nube. Google App Engine, Heroku, AWS Elastic Beanstalk, CloudBees, CumuLogic, CloudFoundry y OpenShift son algunas de estas nuevas propuestas. Durante esta sesión haremos una comparativa y mostraremos cómo publicar aplicaciones Java utilizando estas plataformas.

Mariano Cortesi y Juan Codagnone de Zauber - Netty
Una introducción a a servidores no bloqueantes, sus usos, sus ventajas y como implementarlos usando jboss Netty

Sebastian Scarano y Jorge Aliss - Introduccion a Play! Framework
Desarrollaremos una aplicación paso a paso de manera interactiva, para mostrar las ventajas de este framework que trae la agilidad y facilidad de uso de frameworks como rails y django al mundo Java.

Gustavo Brey de Red Hat - Web Frameworks
El objetivo es una rápida introducción a frameworks web actuales y emergentes, para crear aplicaciones web y describir sus ventajas y desventajas. Este es un resultado de una investigación luego de haber desarrollado aplicaciones Web por más de 10 años en diferentes plataformas y lenguajes.

Esperemos tener mucha más actividad alrededor de esta renovada comunidad de Java.