Instalando Ruby(1.9.3) on Rails(3.2.2) en Ubuntu Server 11.10 (y de cómo solucioné los errores)

1 comment

Son las 17:50. Empecé a las 13:20. ¡Lo hice!

Error con RoR y zlib

Error con RoR y zlib

ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NameError)
uninitialized constant Gem::Commands::InstallCommand

En estas épocas del año, que me encuentro desarrollando en Ruby on Rails, me ha tocado montar otro servidor que utilizaremos en producción con un proyecto que tengo. Ha sido un largo trabajo. He tenido errores, pero los he solucionado (justo cuando estaba a punto de rendirme).

  1. He instalado un Ubuntu Server y he escogido los paquetes LAMP (para mis proyectos utilizaré Apache y MySQL con RoR).
  2. Instalamos el paquete que nos permitirá compilar y librerías de YAML:
    macool@shiriculapo.local:~$ sudo apt-get install build-essential libyaml-dev
  3. Descargamos el código fuente de Ruby (1.9.3):
    macool@shiriculapo.local:~$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz
  4. Descomprimimos el paquete de código fuente que acabamos de descargar:
    macool@shiriculapo.local:~$ tar xzvf ruby-1.9.3-p0.tar.gz
    Nos cambiamos a la carpeta que acabamos de descomprimir:
    macool@shiriculapo.local:~$ cd ruby-1.9.3-p0
  5. Esta es la parte importante.Antes de realizar este paso, estuve toda la tarde probando un millón de posibles soluciones, incluyendo:
    • utilizar rvm de mil maneras
    • instalar miles de librerías relacionadas con zlib
    • instalar ruby, rubygems y rails desde el repositorio, con apt-get install ruby-full rubygems rails
    • compilar zlib manualmente y especificarlo al momento de configurar ruby para su compilación
    • otras

    No pierdan su tiempo, ni el mío. No hablaré acerca de ninguna de estas “soluciones”; no funcionan. Haremos algo más sencillo, que es lo que a mi me resultó.
    Descomentaremos una línea en la que ruby (por defecto) ignora zlib. Yo soy un fan de GNU, y utilizaré nano(un editor de texto de terminal), pero ustedes pueden utilizar cualquier editor:
    macool@shiriculapo.local:~/ruby-1.9.3-p0$ nano ext/Setup
    Aquí, vamos a la última línea y descomentamos zlib, como en la imagen:

    descomentando zlib

    descomentando zlib

    En nano, cierro el archivo con CTRL+X (y lo guardo)

  6. Configuramos las librerías que ruby necesita para que coincidan con las de nuestro servidor:
    macool@shiriculapo.local:~/ruby-1.9.3-p0$ ./configure
    Una vez configurado, compilamos ruby:
    macool@shiriculapo.local:~/ruby-1.9.3-p0$ sudo make
    … E instalamos ruby:
    macool@shiriculapo.local:~/ruby-1.9.3-p0$ sudo make install
    En este punto, ruby ya debe estar instalado:

    ruby -v

    ruby -v (versión de ruby)

  7. Esta es la otra parte importante. Instalamos zlib. Nos cambiamos a la carpeta ext/zlib dentro del código fuente de ruby:
    macool@shiriculapo.local:~/ruby-1.9.3-p0$ cd ext/zlib/
    Configuramos las librerías de zlib:
    macool@shiriculapo.local:~/ruby-1.9.3-p0/ext/zlib$ ruby extconf.rb
    Compilamos zlib:
    macool@shiriculapo.local:~/ruby-1.9.3-p0/ext/zlib$ make
    Instalamos zlib:
    macool@shiriculapo.local:~/ruby-1.9.3-p0/ext/zlib$ sudo make install
  8. Ahora, vamos por rubygems. Salimos de la carpeta de ruby:
    macool@shiriculapo.local:~/ruby-1.9.3-p0$ cd ..
    Descargamos el código fuente al servidor:
    macool@shiriculapo.local:~$ wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.21.tgz
    Descomprimimos el código fuente de rubygems (que acabamos de descargar):
    macool@shiriculapo.local:~$ tar xzvf rubygems-1.8.21.tgz
    Nos cambiamos a la carpeta del código fuente de rubygems:
    macool@shiriculapo.local:~$ cd rubygems-1.8.21
  9. Instalamos rubygems:
    macool@shiriculapo.local:~/rubygems-1.8.21$ sudo ruby setup.rb
    Salimos de la carpeta de rubygems:
    macool@shiriculapo.local:~/rubygems-1.8.21$ cd ..
    rubygems debe estar instalado:

    gem -v

    gem -v (versión de rubygems)

    En este punto, ya podemos eliminar todo lo que acabamos de descargar; no nos servirá para nada más

  10. Instalamos rails (con rubygems, se deberían instalar todas sus dependencias):
    macool@shiriculapo.local:~$ sudo gem install rails

    rails -v

    rails -v (versión de rails)

Eso es todo :)

Plano digital de Loja (2D)

no comments

Espero que esto le sea útil a alguien. coloco un enlace a un plano de la ciudad de Loja en 2D.

El archivo se encuentra en formato .dwg, para ser abierto por programas de CAD, tales como AutoCad.

Plano digital de Loja 2D

Plano digital de la ciudad de Loja en 2D

Enlace a descarga directa | Plano Loja 2D

Cuando El Colegio Técnico Atahualpa, de Ambato, fue hackeado

no comments

Hace un par de días, mientras leía, encontré que ciertas versiones antiguas de Joomla tienen serios fallos de seguridad y son, teóricamente, muy vulnerables a ataques de hacking. Sabiendo esto, me nació la curiosidad de hackear algún Joomla del país. El objetivo fue  http://colegioatahualpaambato.edu.ec ; sucede que la versión de Joomla que tienen instalado es antigua, y tiene muchos fallos de seguridad.

Ahora, una captura de pantalla:

Colegio Atahualpa hacked

Colegio Atahualpa hacked

 
:)
Bueno, la verdad es que espero que lo tomen como una advertencia a lo que podría sucederles más adelante, si no actualizan Joomla, mas no como una fechoría

Cuando macool.me fue hackeado

no comments

Hace un par de días, http://macool.me fue hackeado. Coloco una captura de pantalla del deface que realizaron a este blog.

macool.me hacked

macool.me defaced

(Aún no he descubierto la manera que utilizaron para vulnerar wordpress)

Mac OS X Lion: Primeras impresiones

no comments

He actualizado a Mac OS X Lion hace un par de días, y hay un par de cosas que no me cuadran. Creo que soy bien geek y me gusta estar monitoreando siempre el uso de CPU, red, memoria, actividad de disco duro, y, en general, todo lo que pueda. (Para lo cual, uso MenuMeters, muy buena app, por cierto).

Desde que está Lion instalado, hay una demanda de recursos relativamente alta, comparada con la demanda que solía tener en Snow Leopard. Creo que tendré que comprar 4GB extras de RAM antes de dejar de quejarme. ¿Por qué mierda Mac OS X tiene que usar tanta RAM?. Sólo al encender mi computador, ya tengo 1.5GB usadas. Entonces, los 4GB no son una ventaja; son una necesidad.

Por ejemplo, el uso de CPU, con Snow Leopard se mantenía entre 3% y 7% con algunas aplicaciones corriendo: Twitter, Chrome (Unas 10 pestañas, mínimo), Safari, Mail, iTunes, Adium y Skype. La RAM se mantenía al 70%, aproximadamente.
Ahora mismo, en Lion, está abierto Chrome (4 pestañas), Twitter, Adium y iTunes. El uso del CPU no baja de 7%, la RAM está al 85%.

 

Launchpad

Launchpad

Launchpad: ¿Es necesario gastar recursos en algo así? Veo a Launchpad totalmente inútil. El acceso directo a las Aplicaciones, que venía por defecto en el dock de Snow Leopard (Imagen debajo)me agradaba mucho y me era muy sencillo encontrar mis aplicaciones. En Launchpad ni si quiera es posible tipear para encontrar la aplicación que estás buscando.

lanzador aplicaciones snow leopard

Lanzador de aplicaciones por defecto del dock de Snow Leopard

 

Mission Control: ME FASCINA! Es una excelente manera de gestionar las ventanas y aplicaciones en las que estás trabajando, pero si es la aplicación culpable del notable aumento de uso de RAM, entonces probablemente la sacrificaría y regresaría a Spaces y Exposé. Como lo leí hace algunas horas, los usuarios de Mac amamos exposé.

Mission Control

Mission Control

 

Gestos Multitouch: Aún pienso: “¿Es en serio? Vamos, Apple.. Sé que puedes hacerlo mejor!”. Echo de menos algunos de los anteriores gestos, como por ejemplo, ir atrás o adelante con tres dedos. Pero.. ¿Mostrar el escritorio con tres dedos y el pulgar? ¿Es en serio? ¿Unieron los gestos con dos y tres dedos?. Apple, se trata de simplificar las cosas! No de tenernos haciendo piruetas con nuestras manos en el trackpad! De los gestos en el mouse no me quejo, pero podrían ser mucho mejores.

Aplicaciones en pantalla completa: ¿? ¿Es un gran logro? ¿De verdad venderías Mac OS X 10.7 diciendo “Puedes correr algunas de tus aplicaciones en pantalla completa”?. Lo de poner a trabajar todos los pixels de tu Mac es una buena idea, y se ve bien, pero creo que un Mac es para trabajar en multitarea, no para centrarse solamente en una aplicación y tener que darle la vuelta al mundo para regresar a trabar en todo el resto de aplicaciones que tienes abiertas. Además, ¿No es hace ya un par de años que otros SO tienen pantalla completa?. No me convence en lo más mínimo lo de “Juega con Photobooth en pantalla completa”, ni “Lee tu Mail en pantalla completa”, ni “Navega con Safari en pantalla completa”, o “Mira tus fotos en iPhoto, más grandes, en pantalla completa”.

App Store: Tal vez no debería opinar de esta. No la he usado mucho y no soy de las personas que entran a comprar software en la “App Store”. No he visto nada ahí, que me llame la atención, que no tenga ya. Tal vez.. Aún le falta..

Mail: Sí, me agrada, pero aún me confundo. ¡No todos los mensajes que me llegan son tan bonitos como los pinta la captura del nuevo Mail! Llega un millón de correos indeseados al día, que con el Mail anterior era mucho más sencillo eliminar con un atajo de teclas. O tal vez sólo me falta acostumbrarme al nuevo Mail.

Auto Save & Versions: ¿?.. mmm.. Podría ser, pero como dicen por ahí, ¡#GeekQueSeRespeta guarda bien sus documentos! (En mi caso, Dropbox).

Dropbox

Dropbox

Facetime: Desafortunadamente, no todos mis amigos tienen un Mac, pero si, la mayoría, una cuenta de Skype.

[Actualización]:

Adobe Flash Player: Una mierda. Desde Lion, no he podido ver ni un sólo video completo en YouTube; ni en Chrome, ni en Safari; y cada vez que se ejecuta flash, ¡la demanda del procesador se dispara!

Pequeños bugs: Cuando apago la pantalla de mi mac, el teclado se enciende y no hay manera de apagarlo. Aunque el indicador de nivel de iluminación esté al 0, sigue encendido al máximo. Además, he visto a varias aplicaciones cerrarse inesperadamente estos últimos días.

Apple, haz algo por favor, sino, terminaré teniendo un Macbook Pro corriendo Ubuntu.

Educación: El mayor reto “social”

no comments

Hace mucho tiempo que ciertas preguntas, sobre cosas absurdas que nuestra sociedad tiene en la cabeza, rondan mis pensamientos, y aún no he sido capaz de encontrar una respuesta para ellas. Fue hace una semana, aproximadamente, que en mi clase de CTS (Ciencia, Tecnología y Sociedad), escuché por primera vez, a mi profesor, Jorge Luis Jaramillo, pronunciar las mismas frases que me había planteado ya a mi mismo.

Empecemos…

  • “Nuestra educación nos castró”1. Actualmente, en nuestro medio, nos hemos subordinado a creer que no somos nadie si no tenemos un título de tercer nivel. Eventualmente, no lo somos; desde el momento en que pensamos (gracias a nuestra educación mediocre) que no servimos para nada si no entramos en una universidad, simplemente no lo hacemos.
  • “Un muchacho graduado debería producir”1, sin importar si es graduado de escuela, colegio, universidad o si lleva 60 años de su vida estudiando. En mi querida Loja, he conocido Ingenieros en Sistemas Informáticos y de Computación que no saben ni si quiera lo que es un emulador de terminal; he tenido que pedir soporte técnico a mi ISP y cuando he hablado con el “técnico”, lo único que puede decir es “Desconecte el rauter por cinco minutos y vuelva a conectarlo. Si aún no tiene internet, vuelva a llamar para mandar otro técnico.”; alguna vez me tocó pedirles una IP pública para poner un servidor en casa, y me dijeron: “Entre al panel de control, vea en configuraciones de la red y ahí le muestra su IP”.
  • “Un joven con título de segundo grado, es solamente un bachiller que ha desperdiciado 12 años de su vida ‘estudiando’, porque nuestros colegios se encargan de graduar gente ignorante, que ni si quiera conoce el lugar en el que vive”1; incluyéndome. Alguien que se gradúa de bachiller debería ser capaz de producir, pero..
  • “Nos sacaron del contexto; alguien nos dijo que la sociedad existía”1, y en esa sociedad, si no te gradúas de la universidad, no harás nada de tu vida. Entonces, si no entraste a la universidad, no serás nadie, nunca.
  • “Esa sociedad prefiere que seas el peor ingeniero electrónico del mundo y no que seas el mejor carpintero del mundo”1. “La educación no debería tratarse de ganar títulos1 -> Lastimosamente, en nuestro medio, la educación se limita a eso.

1Mencionado por mi profesor de CTS, Jorge Luis Jaramillo. Por cierto, recomiendo su blog y sus presentaciones!

Resolviendo problemas de codificación en PostgreSQL para OpenERP

no comments

Me ha sucedido -más de una vez- que tras instalar Ubuntu Server, el PostgreSQL viene por defecto con una codificación de caracteres Latin1 -y da errores al intentar crear bases de datos con OpenERP.

Por defecto, PostgreSQL ha traído las siguientes bases de datos:

Bases de datos por defecto en Postgres, con codificación "Latin1"

 

Y para que OpenERP funcione sin problemas, tenemos que dejarlas así:

Después de hacer unos pequeños cambios en las bases de datos para que OpenERP funcione

Nota. [Me parece] que no es necesario que la base de datos postgres y template1 también tengan codificación UTF-8 para que OpenERP funcione sin problemas, pero yo le he cambiado en todas.

Ahora, empecemos:

  1. Nos hacemos superusuario:
    ubuntu@localhost:~$ sudo -i
    (Colocamos la contraseña del usuario)
  2. Una vez somos superusuario, nos cambiamos al usuario postgres (Quien es superusuario de la base de datos PostgreSQL):
    root@localhost:~# su postgres
  3. Ahora, para verificar nuestra codificación de bases de datos, le diremos que nos muestre la lista de bases de datos:
    postgres@localhost:~$ psql -l
    (Nos listará las bases de datos)
  4. Entraremos al psql:
    postgres@localhost:~$ psql
  5. Esta es la parte importante; cambiar la codificación:
    postgres=# update pg_database set encoding=6 where datname='template0';
    (Le decimos encoding 6 debido a una tabla que existe por ahí, en PostgreSQL y nos dice que el 6 corresponde a UTF-8)
  6. Ahora, cambiemos la columna Collation:
    postgres=# update pg_database set datcollate='en_US.UTF-8' where datname='template0';
  7. Por último, cambiemos la columna Ctype:
    postgres=# update pg_database set datctype='en_US.UTF-8' where datname='template0';
  8. Salgamos del psql:
    postgres=# q

Ahora, si queremos cambiar en el resto de bases de datos, solamente tenemos que cambiar el último parámetro (donde está datname='template0', cambiamos template0 por el nombre de la base de datos que queramos modificar).

Instalando OpenERP 6

no comments

Bueno, hablaremos un poco de nuestra última experiencia, instalando OpenERP 6 en Ubuntu Server 10.10, y coloco un par de scripts muy útiles para ejecutar OpenERP Server y Web como servicios del sistema.

En la instalación de Ubuntu Server, se puede elegir la instalación de ciertos paquetes:


Ubuntu Server. Selección de Software a instalar



Esta vez, elegí los paquetes:

  • LAMP server (Para dar una buena bienvenida a los visitantes, con Apache).
  • OpenSSH server (Para administrar el servidor remotamente).
  • PostgreSQL database (Postgres es la base de datos que usa OpenERP).

Bueno, no necesitamos más paquetes de momento. Una vez instalado el Ubuntu Server 10.10, debemos descargar los sources, desde http://www.openerp.com/downloads. Una vez descargados, a instalar dependencias. Como lo dice un archivo de texto dentro del paquete de OpenERP server, las dependencias necesarias para instalar el mismo son:

  • Python (Viene con Ubuntu Server 10.10)
  • Postgresql (Lo instalé antes, con el instalador de Ubuntu Server)
  • Psycopg2 (Módulo de python)
  • Reportlab (Librería de python para generar PDFs)
  • Lxml (Módulo de python)
  • Pytz (Módulo de python)
  • PyYaml (Módulo de Python)
  • Vobject (Módulo de Python)

Además, estos paquetes (No aparecen en el archivo que viene en los sources de OpenERP Server, pero sirven para compilar y satisfacer ciertas dependencias en el OpenERP Server y el Web Server):

  • build-essential
  • python-setuptools
  • python-profiler
  • python-pastedeploy

En Ubuntu y otras distribuciones basadas en Debian, es posible instalarlo todo con las siguientes líneas:
$ sudo apt-get install -y postgresql graphviz python-psycopg2 python-lxml python-tz python-imaging python-pychart python-egenix-mxdatetime build-essential python-setuptools python-profiler python-pastedeploy python-vobject
$ sudo easy_install PyYaml

Nota: Una vez instalado, me pidió la librería PyWebDAV. En lugar de descargarla de ese link, la hallé en los repositorios de Ubuntu.

Una vez instalados dichos paquetes, sólo hace falta desempaquetar los sources, y basta con un:
$ tar xzf openerp-web-6.0.1
$ tar xzf openerp-server-6.0.1

Ahora, a cambiarnos a las carpetas que acabamos de crear desempaquetando y a instalar, así:

  • Server:
    $ cd openerp-server-6.0.1$sudo python setup.py install
  • Web (He notado que busca e instala por si misma las dependencias):
    $ cd openerp-web-6.0.1$ sudo python setup.py install

Listo. En este punto, ya deben estar instalados el servidor y el cliente web. Ahora, creemos un usuario para la base de datos:

  • Nos cambiamos al super usuario postgres:
    $ sudo -i
    # su postgres
  • Creamos el usuario openerp, que será el usuario de la base de datos postgres:
    $ createuser -d -R -S -P openerp

Ahora, los scripts para arrancar OpenERP Server y Web cuando Ubuntu arranque:

  • Script para OpenERP Server. Borrar su extensión *.txt y colocar en /etc/init.d. (Ha sido modificado para que no muestre las bases de datos; así se mantiene confidencialidad entre bases de datos y mejora la seguridad; el usuario tiene que ingresar manualmente el nombre de la base de datos en lugar de seleccionarla de una lista).
  • OpenERP Web. Borrar su extensión *.txt y colocar en /etc/init.d.
  • Configuración para el servicio web. Borrar su extensión *.txt y colocar en /etc

Ahora, decirle a Linux que ya tiene los scripts:
$ sudo update-rc.d openerp-web defaults
$ sudo update-rc.d openerp-server defaults
Ya está todo listo, podemos usar los scripts de la siguiente manera:
$ sudo /etc/init.d/openerp-server start
$ sudo /etc/init.d/openerp-web start

En lugar de start, se puede usar stop y restart para detener y reiniciar los servicios.

Ya tenemos OpenERP Web corriendo en el puerto 8080! No hace falta más que abrir un navegador, colocar la Ip del equipo que corre los servicios seguido del puerto 8080:

Ventana de acceso de OpenERP 6

Loja, Noviembre de 2010

no comments

Hoy, Domingo 28 de Noviembre de 2010 se está realizando en Ecuador el VII Censo de Población y VI de Vivienda. En Twitter se publican fotos y desinformación bajo la etiqueta #EcuadorFantasma.

Más que para recordar una Loja fantasma, creo servirán para recordar (dentro de un par de años) como se veía Loja en Noviembre de 2010. Cito (Probablemente sólo algunas) fotos publicadas:

"#ecuadorfantasma el #CensoEC en #Loxa foto N.1". @calu

"#ecuadorfantasma el #CensoEC en #Loxa foto N.2". @calu

"#ecuadorfantasma el #CensoEC en #Loxa foto N.3". @calu

"#ecuadorfantasma el #CensoEC en #Loxa foto N.4". @calu

"Av. Emiliano Ortega y Miguel Ríofrio #Loxa #censoec #ecuadorfantasma". @jlsandovaln

"Terminal terrestre de #Loxa -- Completa calma". @adita1023

"Terminal Terrestre de #Loxa foto nro 2 #ecuadorfantasma". @adita1023

"#ecuadorfantasma bueno casi :D desde #loxa". @karlozkordova

"#censoEc Calle José Ma. Riofrío #Loxa solo se ven a militares y guardias a la distancia.". @abelsuing

"#censoEc Calles José Ma. Riofrío y Vicente Paz #Loxa". @abelsuing

Loja, Noviembre de 2010

Loja, Noviembre de 2010

Loja, Noviembre de 2010

Loja, Noviembre de 2010

Loja, Noviembre de 2010

Problemas con X11 en Mac OS X (Solucionado (?) )

no comments

Pues la verdad es que no se si me sucedía sólo a mi, pero nunca hallé nada parecido buscando en Google. Cuando abría algún programa que tenía que usar X11 (como Gimp, por ejemplo), el programa andaba bien; lo que me daba problemas era el X11. Pues daba un click y después de un corto plazo de tiempo se desenfocaba la ventana. Era demasiado molestoso, pues cada vez que tenía que dar un click, me veía obligado a dar dos; uno para enfocar la ventana y otro para dar click dentro del programa; y hacerlo rápido, antes que se vuelva a desenfocar.
Me encontré con XQuartz, al parecer, es una versión más actual del X11 que vino por defecto (al menos con mi Macbook Pro); lo descargué e instalé; pero no dio resultado sino hasta que borré el X11 que tenía en mi carpeta de utilidades, dentro de las aplicaciones.
Para evitar tener que abrir (por ejemplo) XQuartz y luego Gimp, para que funcione, le cambié el nombre a XQuartz (dentro de la carpeta de Utilidades, en Aplicaciones) por X11. Listo! La próxima vez que lo intenté (me parece que reinicié mi Mac), sólo le di click al Gimp, y éste llamó por sí mismo a XQuartz (que ahora se llamaba X11 dentro de Utilidades).


Gimp andando de maravilla con X11 (XQuartz)