Primeras Jornadas de Ruby del Litoral

Rubylit

Rubylit, el Grupo de Rubystas del Litoral, está llamando a la participación de la comunidad argentina de Ruby para las Primeras Jornadas de Ruby del Litoral Argentino "acts-as-rubylit", a realizarse en la Facultad de Ingeniería y Ciencias Hídricas de Universidad Nacional del Litoral de la ciudad de Santa Fe, los próximos días Viernes 4 y Sábado 5 de Diciembre.

La intención del grupo es acercar a la comunidad académica y en general el lenguaje Ruby en sus diferentes sabores y colores, con casos prácticos y conscisos que irán desde el nivel básico al avanzado. Se contará con la presencia de profesionales muy conocidos y respetados dentro del ambiente Ruby en el país, quienes compartirán sus experiencias, consejos y descubrimientos con el público en general.

La registración para el evento ya puede realizarse en esta página y todas las novedades pueden seguirse en esta cuenta en Twitter, donde ya se confirmaron las siguientes charlas (al momento de escribir esto): "BDD, la metodología que te vuela la peluca", "Camino a Rails 3 - Integrando Arel en ActiveRecord" y "El modelo de objetos de Ruby: reflexiones sobre la reflexion".

Para los más interesados, todavía está abierta su "Call for Charlas". Más información puede solicitarse a este e-mail: ramos[dot]gaston[at]gmail[dot]com

GitHub cambia Engine Yard por RackSpace

GitHub es el popular servicio de hospedaje de código, gratuito para proyectos abiertos, basado en Git y considerado por muchos como el sucesor de la "web 2.0" de otros similares como SourceForge y hasta Google Code por sus característias sociales. GitHub, que comenzó como una aplicación escrita en Ruby on Rails (RoR), ganó una gran exposición e inhercia inercia cuando ese mismo proyecto migró desde sus repositorios de Subversion a una cuenta en GitHub. También se convirtió rápidamente en un servicio muy querido por la moderna comunidad de Ruby, que soporta sus servicios de muchas maneras.

Un miembro de esa comunidad fué Engine Yard, el proveedor de hosting especializado en mantener aplicaciones RoR en la nube computacional, que ofreció a GitHub hospedaje gratuito a cambio de publicidad y cuentas gratuitas para sus clientes. Pero aparentemente no contaban con éxito de GitHub en proyectos no relacionados con Ruby y la calidad del servicio ofrecido comenzó a sufrir, como lo notaron los usuarios de GitHub al toparse con problemas de performance y estabilidad. La explicación de Engine Yard fué poco feliz:

“GitHub ofrece la más grande cuota de espacio de almacenamiento gratuito entre los grandes proveedores de SCM y nosotros llegamos a la conclusión de que no queremos subsidiar esa cuota a desarrolladores no-Ruby”.

En su anuncio GitHub también revela interesantísimos datos sobre su configuración actual y futura: en Engine Yard contaban con 10 máquinas virtuales, 39 CPUs virtuales y 128 Gb de memoria; en RackSpace téndrán 16 máquinas físicas, 128 núcleos físicos y 288 Gb de RAM. La transición ocurrirá "en sólo unas cortas semanas".

¿Cuán rápido es Ruby en Linux?

La performance del lenguaje Ruby históricamente siempre ha sufrido bajo Windows. ¿Pero cuánto y cómo se compara con sus versiones más recientes contra su performance en Linux? Un autor se tomó el trabajo de evaluar justamente eso, y sus resultados son reveladores.

Las pruebas se realizaron bajo Windows XP SP3 y Ubuntu 9.04, ambos de 32 bits, usando Ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32] y Ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mingw32] en el primer sistema operativo, y sus versiones compiladas desde las fuentes en la distribución de Linux. La evaluación en sí se llevó a cabo usando el Ruby Benchmark Suite.

De acuerdo a los resultados obtenidos, Ruby 1.8.6 en Linux es el doble de rápido que en Windows. Ruby 1.9.1 es aproximadamente 70% más rápido en Linux que en Windows. Parte de la diferencia se debe a que las implementaciones para Windows están compiladas con el viejo GCC 3.4.5 y las de Ubuntu con el mucho más reciente GCC 4.3.3, disponible por defecto.

Nuestro compatriota Luis Lavena, encargado de la versión de Ruby para Windows, confirma que planean cambiarse a GCC 4.4.x en el futuro, hasta entonces, optar por Ruby 1.9.1 les dará una performance mucho mejor.

Es más divertido programar en Python y Ruby que en C# y Java

Stack Overflow

Stack Overflow es un popularísimo sitio donde sus más de 72.000 programadores registrados pueden publicar sus preguntas, consultas o pedir sugerencias y dejar que otros las respondan; las respuestas son luego calificadas por quien las pidió, creando una valiosísima base de datos de conocimiento en una gran variedad de tópicos.

Recientemente los creadores de Stack Overflow liberaron su esa base datos bajo una licencia Creative Commons, y los estudios independientes de sus números no se hicieron esperar. Por ejemplo, un experto realizó operaciones de data mining con SQL Server y Excel.

Pero más interesante para nosotros son estos resultados de un experimiento que demuestra que lenguajes "corporativos" como C# y Java aumentan sus preguntas durante los días de semana laborables, disminuyendo su cantidad los fines de semana. Lo llamativo es que exactamente lo contrario sucede con lenguajes dinámicos como Python y Ruby. Según las palabras de su autor, la conclusión es sencilla:

“Mi teoría es que los programadores eligen usar lenguajes como Python y Ruby para sus proyectos personales, a pesar de sus debilidades, porque es más divertido programar en esos lenguajes”.

Ruby 1.9.1

Y tan importante como el reciente lanzamiento de Python 3.0 es el anuncio de Ruby 1.9.1, la primera versión estable de las nuevas series 1.9 del cada vez más popular lenguaje de programación creado por el japonés Yukihiro "Matz" Matsumoto.

La anterior serie 1.8 de Ruby fué lanzada en el 2003, siendo su última versión la 1.8.7. Notar, sin embargo, que Ruby 1.8.x será todavía mantenido, con una próxima versión 1.8.8 a ser lanzada este mismo año.

Ruby 1.9.1 reemplaza ahora a la v1.8.7 como la última versión estable del intérprete de Ruby de "Matz", trayendo, entre muchos cambios importantes más, una notable mejora en su velocidad: una versión preliminar de Ruby 1.9.1 resultó ser el doble de rápida que Ruby 1.8.7. Mucha más información sobre este lanzamiento, incluyendo enlaces imprescindibles, en la cobertura de Ruby Inside.

Al momento de escribir esto, el sitio de Ruby-Lang.org se encuentra en mantenimiento, pero es probable que para cuando leas esta noticia el sitio ya esté de nuevo en línea.

¿Amarok 3.0 reescrito en Ruby?

Mark "Markey" Kretschmann es el desarrollador del popularísimo Amarok y en una reciente revista en el semanario Not the Gentoo Weekly News reveló su amor por el lenguaje de programación Ruby apasionadamente:

"Para mi programar en Ruby me abrió los ojos: es tan inteligente y maravilloso en tantos niveles, y aún así tán fácil de aprender. ... Prueben Ruby, es simplemente una obra de arte, y de hecho útil. Yo lo uso siempre que no estoy forzado a usar C++, y de hecho se me conoce por tener salvajes planes para reescribir partes de Amarok en Ruby. Tal vez con Amarok 3.0, ya veremos... :)".

Tan loca como pueda parecer esa idea, recordemos que antes otro proyecto pudo hacer justamente eso: Metasploit 3.0 fué reescrito en Ruby con muy buenos resultados.

Charla: Ruby, una Joya! en la UBA

En el marco de las Conferencias ECI de la Facultad de Ciencias Exactas y Naturales de la Universidad de Buenos Aires se dará la charla Ruby, una Joya! el próximo día Miércoles 25 a las 17:00 horas. Los temas que se tratarán incluyen:

  • Ruby, el lenguaje -- Generalidades del lenguaje. Transitaremos por su historia, el paradigma de programación en el que se basa, su sistema de tipos y su sintaxis a grandes rasgos.
  • Algunos features destacados y ejemplos de código -- Strings. Expresiones regulares. Asignación paralela. Funciones. Retorno de objetos múltiples. Bloques e iteradores. Mixins.
  • Syntactic sugar -- Algunos trucos de magia definiendo colecciones, arreglos y hashes.
  • Ruby on Rails -- Un web framework orientado al desarrollo ágil y a la felicidad del programador. Charlaremos sobre su filosofía de Convention Over Configuration, permitiendo el desarrollo ágil a puro MVC.

Entrevista a Luis Lavena, el tucumano detrás de Ruby en Win32

Luis Lavena es un tucumano de 26 años responsable en gran medida de que Ruby pueda tener unos grandes éxitos ejecutando en la plataforma Win32, como el servidor web Mongrel. Reconociendo su trabajo, el sitio O'Reilly le hizo una larga y esclarecedora entrevista, que afortunadamente la gente de Argentina On Rails se encargó de traducir completamente.

Algunos pasajes remarcables de la entrevista:

- Una de las cosas que dijo Pat Eyler sobre ti era que estabas trabajando mucho en mejorar Ruby y las librerias Ruby para la plataforma Win32. ¿Puedes decirme que es lo que estas haciendo?

"Para ser honesto, no creo haber trabajado tanto. Actualmente necesitamos cubrir nuestros requisitos: servidor web, balance de carga, servicios win32, procedimientos de instalacion, comunicaciones de bajo nivel USB y Serial".

"Incluir soporte para Win32 en muchos proyectos y librerias es sencillo. En otros proyectos requiere mas trabajo, muchas veces en el codigo y otras en los desarrolladores. Si es solo el codigo, aportar es sencillo. Cuando el desarrollador no puede (o no quiere) brindar soporte para Win32 decidimos tomar un enfoque radical / en lugar de clonar el proyecto, creamos nuestra propia implementación".

"Sabemos que haciendo esto reinventamos la rueda, pero en lugar de tratar de encajar soporte para Win32 en algun proyecto, podemos re-escribirlos completamente para ser independientes de la plataform hasta donde podemos probarlo".

"No puedo comentar mucho sobre estos proyectos por ahora, pero estaremos ofreciendo alternativas (y algunas potentes) a otros usuarios encerrados en entornos Win32".

Compilador Ruby 1.8 para .Net

Supongo que era sólo cuestión de tiempo hasta que la fiebre de Ruby llegara a .Net. Ahora ya está disponible una versión preliminar de un verdadero compilador Ruby 1.8.2 para .Net 2.0. La implementación todavía no está completa, pero ya es capaz de pasar exitosamente las 871 pruebas de samples/test.rb.

El objetivo de este proyecto es soportar todas las clases principales de Ruby, como Class, Object, Array, String y módulos como Math y Kernel. Otras liberías populares, como CGI y DBM pueden no ser incluídas en este esfuerzo, salvo que estén 100% escritas en Ruby.

¿Qué sigue ahora? ¿Ruby on Rails for .Net?

Metasploit 3.0 reescrito en Ruby

Ya está disponible la primera versión Alpha de Metasploit Framework 3.0, la plataforma para desarrollar, testear y usar exploits (código escrito con el fin de aprovechar un error de programación para obtener diversos privilegios).

Como gran novedad, esta v3.0 fué totalmente reescrita en Ruby, desde código Perl usando en su polémica versión anterior, logrando así _"reducir drásticamente el tiempo de desarrollo y promover el reuso de código entre módulos de exploits similares".

Por el momento esta nueva versión sólo soporta Linux y Mac OS X.