Welcome !
Site google-analitix.com just created.

Real content coming soon.
© ISPmanager control panel
July « 2009 « INSIGNIA

July, 2009


30
Jul 09

Howto: Configurar Rails en Ubuntu

El propósito de este post es presentar la receta oficial que utilizamos en (in)signia para encarar el setup de nuestro ambiente de trabajo.

Es muy importante resaltar que nuestro entorno de trabajo se encuentra basado en Linux (prometemos en breve dedicar un post completo a las razones/motivos que nos llevaron a inclinarnos por Linux como plataforma de trabajo). La distribución que elegimos es Ubuntu en su versión 9.04, básicamente por su popularidad y crecimiento.

El primer tema que tenemos que encarar al empezar el setup de nuestro entorno de trabajo es la instalación de Ruby. La forma tradicional de instalar esto en linux sería con el siguiente comando:

  sudo apt-get install ruby

Esto funciona pero nos acarrea un problema serio debido a que apt-get (debido a los repositorios de Ubuntu) nos instalará la versión 1.8.7 de Ruby. Versión que ha resultado ser bastante conflictiva en lo que respecta a compatibilidad con las gemas más utilizadas.

La solución a este problema es ir por el camino más seguro y compilar directamente la versión 1.8.6 de Ruby. Para ello, estos son los pasos a seguir:

  sudo apt-get -y install build-essential libssl-dev libreadline5-dev zlib1g-dev
  wget http://rubyforge.org/frs/download.php/45875/ruby-1.8.6-p287.tar.gz
  tar xzf ruby-1.8.6-p287.tar.gz && cd ruby-1.8.6-p287
  ./configure --prefix=/usr/local --with-openssl-dir=/usr --with-readline-dir=/usr --with-zlib-dir=/usr
  make
  sudo make install

Existen patch levels más nuevos (el 369 para ser exactos) pero hemos tenido serios problemas de compatibilidad con capistrano, una gema cuyo funcionamiento es indispensable.

Una vez completada la instalación de Ruby, el paso a seguir es instalar rubygems. Para esto tendremos que seguir los siguientes pasos:

  wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
  tar xvzf rubygems-1.3.5.tgz && cd rubygems-1.3.5
  sudo ruby setup.rb

En este punto, podemos instalar las gemas básicas para trabajar con una aplicación Rails. Para esto, simplemente corremos:

  sudo gem install rails mongrel capistrano

A continuación tenemos que seguir por la instalación de los motores de base de datos y sus repectivos adapters para Ruby. Nosotros manejamos dos motores: MySQL y SQLite3.

Empecemos por el mas liviano… Para instalar SQLite3, tenemos que seguir estos pasos:

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

Los pasos para instalar MySQL son muy parecidos (aunque es necesario instalar más paquetes):

  sudo aptitude install mysql-server mysql-client libmysql-ruby1.8 libmysqlclient-dev
  sudo gem install mysql

Hasta aquí, estaríamos en condiciones de realizar la siguiente prueba:

  rails prueba && cd prueba
  ruby script/generate scaffold Persona nombre:string apellido:string
  rake db:migrate
  ruby script/server

Luego intentamos ingresar con un browser a http://localhost:3000/personas. Debería funcionar.

Aunque en este punto nuestro entorno de trabajo posee un corazón que late bien fuerte; nos falta una pieza sumamente importante: un framework para testing. En (in)signia estamos muy familiarizados con el Behavior Driven Development, por lo que en nuestros proyectos utilizamos Rspec y Cucumber. Para instalarlos necesitamos los siguientes pasos:

  sudo apt-get install libxml2 libxml2-dev libxslt1-dev
  sudo gem install rspec rspec-rails cucumber webrat nokogiri

Las dependencias que instalamos son requeridas por la gema nokogiri.

Resta instalar un buen sistema de control de versiones, actualmente el código fuente de todos nuestros proyectos se encuentra administrado con Git. Su instalación es relativamente sencilla, basta con ejecutar:

  sudo apt-get install git-core gitk

Con esto instalamos todos los comandos de  Git, su aplicación GUI (muy util cuando las papas queman) y el autocompletion para la consola.

Sin embargo, en (in)signia procuramos trabajar con las últimas versiones disponibles del software que utilizamos diariamente. Por lo que, luego de la instalación básica, normalmente hacemos:

  wget http://kernel.org/pub/software/scm/git/git-1.6.4.tar.gz
  tar xzvf git-1.6.4.tar.gz && cd git-1.6.4
  ./configure
  make
  sudo make install

A esto le agregamos un buen .gitconfig, como este:

[alias]
  up = pull --rebase origin
  br = branch
  st = status
  ci = commit
  co = checkout
  ql = log --abbrev-commit --pretty=oneline
  qlr = log --reverse --abbrev-commit --pretty=oneline
  pending = log --reverse --abbrev-commit --pretty=oneline master --cherry-pick master...
  undo = reset --soft HEAD^
  pick = cherry-pick

[push]
	default = matching

Y mejoramos nuestro prompt, agregando las siguientes lineas en nuestro .bashrc:

function parse_git_dirty {
  [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}
function parse_git_branch {
  git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)]/"
}
export PS1='\u@\h \[\033[1;33m\]\w\[\033[0m\]$(parse_git_branch)$ '

alias ack='ack-grep'

Y listo! Ya tenemos un entorno de trabajo bien sólido para encarar las exigencias de nuestro trabajo de la mejor manera.


28
Jul 09

Rediseñamos nuestro blog!

En realidad el verdadero título de este post debería ser “Reabrimos nuestro blog!”. Nuestras ocupaciones y las exigencias, a las que nuestro equipo ha sido expuesto en este ultimo tiempo, nos llevaron a “descuidar” este pequeño rincón de nuestro universo. Nuestra falta!

Una de las metas que nos propusimos encarar, para este segundo semestre, es la reapertura de nuestro blog. Para lo que decidimos empezar por el principio -dicen que es un muy buen lugar para empezar- y fue así como encaramos el rediseño del blog.

Optamos por buscar un template que sea simple, creativo y que nos permita, mediante un poco de CSS, adaptarlo a nuestra imagen. El ganador fue el tema cleanr, desarrollado por Chandra Maharzan. (nuestros agradecimientos por este exquisito aporte!).

Luego de un hacking furioso al CSS del tema obtuvimos un template acorde a nuestros gustos. El resultado es este:

Rediseño de nuestro blog

Rediseño de nuestro blog

Tal como dijo Lao Tse: “Un camino de mil leguas empieza por un paso”.  Esto es el comienzo de una nueva etapa.

Ahora si! Nuestro blog esta oficialmente reabierto! Pasen y vean!