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.

jueves, 27 de octubre de 2011

Pragmatic Programmers: Aprovechando el poder de la web (+video)

The Pragmatic Programmer

Los lectores o conocidos desde hace tiempo ya saben que tengo mucho respeto y admiración por Andy Hunt y Dave Thomas, los Pragmatic Programmers. Su primer gran éxito en conjunto fue el libro que le dio título a su emprendimiento editorial: The Pragmatic Programmer: From Journeyman to Master, de 1999.

En este libro Andy y Dave destilaron una enorme cantidad de sabiduría aplicada a las labores, prácticas y actitudes básicas de la programación, justo antes de que algunas de ellas se convirtieran en parte del Manifiesto Agile poco tiempo después (siendo Dave uno de los firmantes iniciales).

En el libro apuntan a las premisas básicas del uso de editores, depuradores, control de versiones, generación de código, pruebas unitarias, meta-programación, cuestiones de diseño, refactorización, manejo de requerimientos, y muchísimo más.

Pero después del éxito de este libro, que es uno de los más populares de todos los tiempos en nuestra profesión (para mi, junto al decano The Mythical Man MonthCode Complete y los más recientes Clean Code y The Clean Coder), Andy y Dave fundaron una editorial bastante particular, The Pragmatic Bookshelf dedicada a publicar libros dedicados al desarrollo de software a costos realmente económicos y cubriendo una variedad de temas a los que las editoriales grandes generalmente no llegan por ser demasiado específicos.

Así llevan más de 120 títulos publicados, y además de editarlos en papel se pueden comprar en ediciones electrónicas, sin mecanismos de protección. Esto me parece destacable. A pesar de ser una editorial muy pequeña, ellos tienen un negocio que sobrevive y con altísima calidad y nivel de servicio, sin necesidad de "molestar" al usuario por temas de propiedad intelectual. De hecho, el único mecanismo que utilizan es un código de confianza: cuando uno compra un libro electrónico puede descargarlo en formato PDF, Mobi (para el Kindle) o EPub (para iOS, Android, etc). Lo único que ellos hacen es generar una copia personalizada con el nombre del cliente en los pies de página. Así, si alguien desparrama copias, al menos se hace responsable personal.

Otra cosa que les permite este modelo de negocio es permitir leer versiones preliminares de los libros mientras el autor todavía está escribiéndolo, a un precio reducido y con opción de recibir la edición impresa final o no, y por supuesto con posibilidad de ir comentando el avance con el autor y colaborar con él.

Pero toda esta publicidad gratuita (la hago sólo porque soy un cliente felíz) surgió por otro servicio sorpresa que agregaron esta semana y me comunicaron por email: ahora permiten sincronizar las sucesivas versiones de los libros con una cuenta personal de Dropbox, un servicio pionero en sincronización de archivos en la nube. Dropbox tiene la característica de ser el más exitoso de los múltiples competidores en ese área, basándose en la premisa de mantener el servicio sencillo en cuanto a características, pero siempre extremadamente funcional.

Si, también soy un cliente feliz de Dropbox, cuyo servicio básico y gratuito alcanza y sobra para uso personal y me ha permitido moverme y mantener sincronizados ambientes entre Windows, Mac OS X y móviles, y me liberó de la obsesión por los backups. Pero Dropbox también es un caso interesante para la comunidad Python, ya que usan este lenguaje para cubrir múltiples plataformas cliente, y también del lado del servidor.

Dejo para el final un video (en inglés) Rian Hunter, uno de los ingenieros de Dropbox contando detalles de la implementación en la PyCon 2011.

Ahora, volviendo al tema principal, lo que PragProg agregó a sus servicios es la integración con Dropbox, de manera que cada vez que hay una nueva versión disponible de uno de los libros que tengo comprados (ya sea una nueva versión preliminar o una nueva edición de uno ya publicado con agregados o correcciones).

Lo que me llamó la atención al recibir la noticia fue la experiencia completa como usuario de este mecanismo, que comenzó al recibir el mail con novedades de la editorial y esta noticia en particular:

Integrate DropBox

Al hacer click en esta parte del mensaje, mi navegador me llevó al sitio web, a una página a con todo el detalle, donde me explicaba cómo configurar esta opción en mi perfil:

DropBox options

Y en esta parte de mi perfil pude seleccionar qué formatos me interesan personalmente, lo que es muy prolijo. A continuación me redireccionó al sitio de DropBox utilizando (me di cuenta porque conozco el mecanismo) oAuth. De esta forma llegué al sitio de DropBox, donde me identifiqué con mis credenciales de ese servicio (que nunca llegaron al de la editorial), y el sitio de DropBox, que soporta este protocolo, me informó que PragProg.com deseaba establecer un vínculo, compartiendo mi identidad (mi nombre de usuario de DropBox y ningún otro dato).

Lo que me sorprendió gratamente es ver cómo dos servicios muy buenos permiten potenciar sus características utilizando protocolos estándares, brindando algo novedoso, seguro y práctico. Me pareció bueno compartirlo como un buen ejemplo de aprovechamiento de la infraestructura web actual para lograr productos de software más potentes.