Borrar sesiones viejas en Rails 2.3 con ActiveRecordStore

Tarea rake para borrar las sesiones que no se han utilizado en las ultimas 3 horas.

desc "Borrar de la base de datos la sesiones que han expirado ."
task :delete_old_sessions => :environment do
 sesiones = ActiveRecord::SessionStore::Session.find(:all, :conditions => ['updated_at < ?', 3.hours.ago])
 sesiones.each {|s| s.delete}
end

Instalación de Feedzirra en Ubuntu 8.04

Feedzirra en un parser de feeds muy rápido, basado en nokogiri y libxml.

Primero hay que instalar nokogiri:

sudo aptitude install libxslt-dev libxml2 libxml2-dev
sudo gem install nokogiri

y luego feedzirra:

sudo apt-get install libcurl4-openssl-dev
sudo gem install pauldix-feedzirra -s http://gems.github.com

Instalción de Rails y Passenger en Ubuntu 8.04 (Hardy)

Instalación de ruby:

sudo apt-get install build-essential 
sudo apt-get install ruby rdoc ri irb libopenssl-ruby1.8 ruby1.8-dev

Instalación de rubygems desde las fuentes, porque los paquetes para Ubuntu no están disponibles para la última versión:

cd /usr/local/src/
sudo wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
sudo tar xzfv rubygems-1.3.1.tgz
cd rubygems-1.3.1
sudo ruby setup.rb

sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

Ahora puedes borrar los ficheros que has descargado en/usr/local/src/ si quieres.

Instalación de sqlite3 (opción por defecto a partir de rails 2 para la base de datos):

sudo apt-get install sqlite3 libsqlite3-dev
sudo gem install sqlite3-ruby

Instalación de Rails:

sudo gem install rails

Instalación de apache y mysql:

sudo apt-get install apache2 
sudo apt-get install mysql-server mysql-client libmysqlclient15-dev

sudo gem install mysql

Para usar virtual hosts en apache quitar la linea

NameVirtualHost *

de /etc/apache2/sites-available/default

Cambiar la primera linea por <VirtualHost *:80>

En /etc/apache2/apache2.conf poner

NameVirtualHost *:80

<IfModule mod_ssl.c>
    NameVirtualHost *:443
</IfModule>

antes de

# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.

# Include generic snippets of statements
Include /etc/apache2/conf.d/

# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/

Crear /var/www/default y mover ahí el index.html que hay en /var/www

Cambiar el DocumentRoot de /etc/apache2/sites-available/default al nuevo directorio.

Instalación de Passenger (a.k.a mod_rails):

sudo gem install passenger
sudo passenger-install-apache2-module

Y seguir las instrucciones. No te olvides de poner las tres líneas que te dice Passenger en el fichero de configuración de apache /etc/apache2/apache2.conf (yo lo pongo antes de lo del VirtualHost del párrafo anterior).

Otra opción de instalación para Ubuntu Hardy 8.04 es el paquete que ha hecho BrightBox.

Luego en el virtual host para la aplicación Rails pones como DocumentRoot la ruta al directorio public de la aplicación y ya está. Si quieres afinar más la configuración mírate la guía de usuario de Passenger.


Euruko 2009 en Barcelona, 9-10 de mayo

Pues sí, ya tenemos fechas oficiales para la próxima Euruko (European Ruby Conference), será el fin de semana del 9-10 de Mayo de 2009 en Barcelona, en el Citilab.

Nos vemos por allí.


Actualizar RubyGems a la versión 1.3.1

La versión 1.1 y la 1.2 de RubyGems tienen problemas para actualizarse, si después de ejecutar

$ sudo gem update —system

ves un "Nothing to update", prueba a instalar y ejecutar la gema rubygems-update:

$ sudo gem install rubygems-update
$ sudo update_rubygems

Y a correr :)