lunes, 29 de noviembre de 2010

Keynote de RubyConf 2010 de Matz (el creador de Ruby)

Yukihiro 'Matz' Matsumoto

Encontré publicadas las keynotes de la última Ruby Conference ocurrida hace unos días en New Orleans.

Quienes quieran escuchar el divertido acento de Matz hablando en inglés, pueden ver el video, que lamentablemente no está disponible para embeber en este post.

Durante la presentación habló entre otras cosas sobre las novedades planificadas para Ruby 2.0 y algunos proyectos como Rite, la implementación que está diseñando para correr embebida en dispositivos pequeños como relojes, teléfonos o televisores inteligentes.

Para quienes quieran simplemente revisar el material de la presentación, si ubiqué los slides que incluyen todo el contenido, incluyendo algunas bromas, y si pude embeber aquí abajo:

 

 

PyPy 1.4: ¡más rápido, más furioso!

PyPy

PyPy es una implementación de Python 2.5 (por ahora) escrita en Python, a diferencia de la implementación CPython de referencia. Más específicamente, PyPy es una arquitectura orientada a implementar fácilmente lenguajes dinámicos mediante dos componentes básicos: un intérprete y un framework de traducción.

Obviamente, implementar Python mismo fue el primer paso, y lo que impulsa el proyecto principal. Y con esta nueva versión han alcanzado un hito sumamente importante. En la mayoría de las pruebas estándar de velocidad de ejecución populares dentro de la comunidad Python, ¡PyPy es más rápido que CPython!

¿Suena increíble, verdad? Veamos los resultados de las últimas pruebas (aquí puede verse el análisis completo):

Comparación entre PyPy y Cpython

Para comprender cómo es posible, hay que entender un poco más la manera en que funciona el compilador JIT (just in time, ó a demanda) de PyPy. Que el lenguaje esté implementado sobre sí mismo no quiere decir que se trate de un intérprete sobre otro. PyPy está escrito en Python, pero lo que hace el intérprete es analizar el árbol de expresiones del programa, y a través de su framework de traducción, generar el código ejecutable a nivel de la plataforma objetivo, a medida que va necesitando hacerlo (esta es la parte a demanda).

Por ahora hay disponibles traductores para diferentes sabores de Intel, con los de ARM en camino, para IL de .NET (que a su vez compila a una serie de plataformas) y está en etapa de pruebas el soporte para la máquina virtual de Java.

Otras características PyPy son la capacidad de Sandboxing, es decir, la ejecución en un espacio controlado, lo que permite por ejemplo recibir scripts Python en forma anónima o semi-anónima y ejecutarlos en un servidor restringiendo algunas operaciones, como acceso al file system, comunicaciones de red, etc. Esto es muy útil para permitir crear soluciones extensibles sin generar problemas graves de seguridad.

PyPy también está disponible en versión Stackless que soporta el uso de micro-threads y otras características que permiten una enorme eficiencia en soluciones de muy alta concurrencia.

 

 

 

 

viernes, 26 de noviembre de 2010

Reunión Alt.Net en Buenos Aires

Alt.Net Hispano

Después de bastante tiempo, finalmente se organizó una nueva reunión de Alt.Net en Buenos Aires, programada para el próximo sábado 11 de diciembre, de 9:00 a 18:00. Un día completo entre geeks de alta gama.

Ya está abierta (y concurrida) la registración, y el evento será nuevamente en las oficinas de Microsoft Argentina, remodeladas recientemente, casi un estreno para la comunidad local.

El movimiento Alt.Net es totalmente independiente y distribuido, sin una organización institucional ni jerarquías, y agrupa a quienes utilizan la plataforma fuera y dentro de las ofertas corporativas, haciendo mucho énfasis en buenas prácticas de diseño y desarrollo, métodos ágiles, proyectos de código abierto y colaboración entre pares y entre la comunidad.

Más detalles pueden leerse en español en esta traducción de un artículo de Jeremy Miller, o con mucho más sabor local en este post del amigo Jorge Gamba. Es Jorge casualmente quien más trabaja en América Latina para mantener funcionando el movimiento Alt.Net Hispano, con el que se organizan las reuniones VAN (Virtual Alt.Net) semanales (una o dos por semana) desde hace meses, como comentábamos en un post reciente. Ya llevan casi 60 sesiones y todas están disponibles en video para verlas a demanda.

IMPORTANTE: Si van a asistir a la reunión en Buenos Aires, no dejen de revisar y agregar propuestas en la wiki del evento. Eso permitirá agilizar la votación y armado de la agenda durante el evento.

 

Como muestra del contenido de las VAN, reproduzco aquí esta fantástica sesión sobre Patrones de Diseño a cargo del Maestro Angel "Java" López, en la que hasta se da el lujo de mencionar algunos patrones en la música y ¡tocarlos en guitarra!

Unable to display content. Adobe Flash is required.

Videos de TDD en acción

Recién descubro esta excelente serie de videos de James Shore, autor del libro "The Art of Agile".

En la serie, James captura 10 o 15 minutos de sesiones de una aplicación que construye utilizando TDD en Java, sobre Eclipse. Los videos están narrados en inglés, pero más allá de la explicación, puede verse cómo va escribiendo el código y son muy ilustrativos, incluso cuando podemos no compartir algunos de los criterios que toma en determinado momento.

Comparto aquí el primer video de la serie, pero no dejen de ver la lista completa, que ya lleva 55 episodios, y últimamente involucra además a algunos invitados con lo que se puede ver no solo el ejercicio de TDD sino también el de programar de a pares.

jueves, 25 de noviembre de 2010

Cartilla visual de GIT

Para todos los que están todavía acostumbrándose a GIT o no recuerdan operaciones que no hace  frecuentemente, Matt Harrison comenzó a armar esta guía visual (cheatsheet), con la que se puede colaborar como explica en su post.

GIT Cheat Sheet

Pueden obtener la imagen a tamaño completo, para imprimirla y pegarla cerca de sus monitores.