martes, 30 de noviembre de 2010

RHoK: escribiendo código por los demás

Random Hacks od Kindness

La iniciativa RHoK (Random Hacks of Kindness), según describen sus organizadores, es "acerca de utilizar la tecnología para hacer del mundo un lugar mejor construyendo una comunidad de innovación. RHoK reúne a ingenieros de software con expertos en administración de riesgos de desastre para identificar desafíos globales y desarrollar software para responder a ellos. Los eventos RHoK Hackaton agrupan a los mejores hackers de todo el mundo, que voluntariamente aportan su tiempo para resolver problemas de la vida real."

Detrás de esta singular campaña trabajan en común organizaciones tradicionalmente antagónicas o disímiles como Google, Microsoft, Yahoo!, la NASA y el Banco Mundial.

Este fin de semana, sábado 4 y domingo 5 de diciembre, se realizará la segunda RHok Hackaton a nivel mundial, incluyendo los siguientes puntos de América Latina:

Comparto con ustedes este interesante video hecho con post-its para promocionar el programa:

 

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.