Usando múltiples Rubies con RVM

Lo primero que hice, incluso antes de empezar a trabajar en la empresa, fue instalarme Ruby 1.8.7 en mi Ubuntu, junto con Rails 2.3.5 y algunas gemas como mongrel. Para ello, seguí los howtos que fui encontrando por internet, como este de Hakido. Tras dejarlo todo configurado, al arrancar Eclipse te configura algunas gemas más como linecache, ruby-debug-ide y ruby-debug-base, con lo que ya tenía todo configurado para empezar a trabajar.

Sin embargo, en seguida te das cuenta de que si vas a tener que trabajar en varios proyectos, cada uno iniciado en un momento distinto con distintas versiones de Ruby y/o Rails, entonces cambiar de proyecto se puede hacer algo incómodo. La solución para ello, por supuesto, ya está pensada y es RVM (Ruby Version Manager).

RVM te permite tener distintas versiones de Ruby funcionando al mismo tiempo, con sus gemas particulares, y lo que es mejor, puedes tener todas las combinaciones de ruby/gemas que quieras. De esta forma, podemos tener un Ruby 1.8.6 con Rails 2.3.4, otro 1.8.6-2.3.5, otro 1.8.7-2.3.5 y otro 1.9.2-3.0.0. Simplemente cambias de configuración con un solo comando y a trabajar.

Al final, he desinstalado todo lo que tenía instalado de ruby en el sistema y lo he vuelto a instalar con RVM de la siguiente forma:

En primer lugar, instalamos las dependencias necesarias:

sudo apt-get install git-core curl zlib1g-dev libreadline5-dev

Después instalamos RMV. Como por ahora no hay un paquete .deb para ubuntu, lo bajamos desde Github:

mkdir -p ~/.rvm/src/rvm/
cd ~/.rvm/src
git clone http://github.com/wayneeseguin/rvm.git
cd rvm
./install

Ahora hay que añadir la siguiente línea en los ficheros ~/.bashrc y ~/.bash_profile

if [[ -s ~/.rvm/scripts/rvm ]] ; then source ~/.rvm/scripts/rvm ; fi

Cerramos y volvemos a abrir la shell para que nos pille los cambios, y ya estamos listos para instalar las versiones de ruby que necesitemos. Por ejemplo, si queremos instalar las versiones 1.8.7, 1.9.1 y jruby, haremos lo siguiente:

rvm install 1.8.7,1.9.1,jruby

Lo cual tardará un rato, pues debe descargar y compilar todas las versiones que les hemos dicho. Para seleccionar una versión en concreto:

rvm use 1.8.7

Y para hacer que una versión en concreto esté seleccionada siempre por defecto:

rvm use 1.8.7 --default

Ahora ya podemos instalar las gemas que necesitemos en esta versión de ruby, como rails, mongrel, …

gem install rails mongrel linecache ruby-debug-base ruby-debug-ide

que se instalarán sólo en la versión de ruby que esté actualmente activa.

Eclipse, sin embargo, tiene problemas para pillar el entorno de desarrollo correcto, por lo que tenemos que modificar el script de arranque y poner algo como esto para arrancar eclipse con la versión por defecto de ruby (podemos sustituir default por una versión concreta si queremos):

bash -cl "rvm default; eclipse"

Jornadas de formación interna en ASPGems

Aprovechando que tengo un par de semanas de vacaciones entre mi anterior trabajo en Utende y el nuevo en ASPGems, ayer me acerqué a la sede de Madrid On Rails para asistir a una de las charlas de formación interna que hace ASPGems, en este caso,
Lecciones aprendidas desarrollando “webs un poco grandes” con Rails, impartida por Diego. La charla en sí estuvo bastante interesante, y siempre viene bien conocer los problemas de rendimiento que han tenido otros en sus webs para cuando te tengas que pelear con la misma situación. Claro que a algunas de las optimizaciones que afectaban a Rails no les saqué todo el jugo posible, porque mi conocimiento de Rails está todavía un poco verde, así que tendré que revisarme la presentación en unos meses, cuando me haya puesto las pilas.

Aparte de la charla, ese día tocaban varias reuniones de empresa, a las que me sumé para conocer el equipo con el que voy a trabajar en breve. A muchos de ellos ya los conocía de mis tiempos de Qarana e incluso de Utende (Javi y yo fuimos cofundadores, entre otros) por lo que sé cómo piensa Agustín y no me sorprendió demasiado su forma de trabajar o la transparencia de la empresa -de hecho, esas han sido algunas de las razones que hicieron que me cambiara de trabajo-. Pero lo que sí me ha sorprendido, y mucho, es lo online que han llegado a estar.

Acostumbrado a trabajar durante 5 años para la SGAE en sus oficinas, donde todo está alojado en sus servidores, es un soplo de aire fresco comprobar que en mi nueva empresa muchas cosas las hacen online, como por ejemplo el correo y los documentos en Gmail, el tracker en Pivotal Tracker, la participación interna con Yammer…, aparte, por supuesto, de usar Twitter, messengers, blog personales… Si ahora mismo, antes de conocer a fondo a ASPGems me pidieran que la definiera con una palabra, esa sería online

Hello world!

Aunque hacer un “¡Hola Mundo!” en WordPress ha resultado facilito (sudo aptitude install wordpress), el ponerle unos colorines que me gustasen ha echo que mi propósito de año nuevo de tener un blog público se haya quedado en agua de borrajas. Pero como no es serio tener el blog en construcción durante 2 semanas, al final me he forzado a elegir el tema y poner en funcionamiento el blog. Et voila!

Lo dicho, ¡Hola Mundo!