Archive for category OpenSource
Installing RabbitMQ + Stomp in Ubuntu/Mac
Posted by jcastaneyra in OpenSource on May 30, 2010

In the project I’m working now it was needed to have RabbitMQ running with Stomp as a message queue for Orbited, we know that Orbited comes with MorbidQ, but in our system we already had running RabbitMQ and used by other processes, so, two queue systems at the same time were not needed.
But, searching for Stomp over RabbitMQ info or some kind of tutorial was difficult and painful, a friend of mine would say “a real pain in the ass”, there was info but not too clear. For that reason here is another note to myself, just in case.
- RabbitMQ 1.6.0 installed, here there are some steps to install it.
- Mercurial is needed to download Stomp code
- Download Stomp code
hg clone -r rabbitmq_v1_6_0 http://hg.rabbitmq.com/rabbitmq-stomp
cd rabbitmq-stomp make RABBIT_SERVER_INCLUDE_DIR=/usr/lib/erlang/lib/rabbitmq_server-1.6.0/include
sudo mkdir -p /usr/lib/erlang/lib/rabbitmq-stomp sudo cp -R * /usr/lib/erlang/lib/rabbitmq-stomp
sudo vim /etc/rabbitmq/rabbitmq.conf
#Add the lines below
NODENAME=rabbit
NODE_IP_ADDRESS=0.0.0.0
NODE_PORT=5672
LOG_BASE=/var/log/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia
SERVER_START_ARGS='
-pa /usr/lib/erlang/lib/rabbitmq-stomp/ebin
-rabbit
stomp_listeners [{"0.0.0.0",61613}]
extra_startup_steps [{"STOMP-listeners",rabbit_stomp,kickstart,[]}]'
And that’s it, if you start RabbitMQ will see how STOMP-Listeners are starting (In Linux you maybe will need to stop RabbitMQ with the following command sudo /etc/init.d/rabbitmq-server stop before running the next step, in my Mac I use this command to start RabbitMQ sudo /usr/local/lib/erlang/lib/rabbitmq_server-1.6.0/sbin/rabbitmq-server)
deploy@localhost:~$ sudo rabbitmq-server RabbitMQ 1.6.0 (AMQP 8-0) Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd. Licensed under the MPL. See http://www.rabbitmq.com/ node : rabbit@localhost log : /var/log/rabbitmq/rabbit.log sasl log : /var/log/rabbitmq/rabbit-sasl.log database dir: /var/lib/rabbitmq/mnesia/rabbit starting database ...done starting core processes ...done starting recovery ...done starting persister ...done starting guid generator ...done starting builtin applications ...done starting TCP listeners ...done starting STOMP-listeners ...done broker running

En el proyecto en el que estoy trabajando era necesario tener corriendo RabbitMQ con Stomp para poder hacer conexiones con Orbited, Orbited ya incluye MorbidQ, pero en este caso ya teníamos corriendo RabbitMQ para otros procesos y no era necesario tener un segundo sistema de queues.
Sorprendentemente, encontrar información de cómo agregar Stomp a RabbitMQ resultó algo doloroso, si había información pero como que no indicaba bien que pasos seguir. Entonces como parte de mis notas personales estoy agregando esta receta por si se llega a ofrecer de nueva cuenta.
- Tener instalado RabbitMQ 1.6.0, aquí hay unos pasos para instalarlo.
- Tener instalado Mercurial para bajar el código de Stomp
- Bajar el código de Stomp
hg clone -r rabbitmq_v1_6_0 http://hg.rabbitmq.com/rabbitmq-stomp
cd rabbitmq-stomp make RABBIT_SERVER_INCLUDE_DIR=/usr/lib/erlang/lib/rabbitmq_server-1.6.0/include
sudo mkdir -p /usr/lib/erlang/lib/rabbitmq-stomp sudo cp -R * /usr/lib/erlang/lib/rabbitmq-stomp
sudo vim /etc/rabbitmq/rabbitmq.conf
#Add the lines below
NODENAME=rabbit
NODE_IP_ADDRESS=0.0.0.0
NODE_PORT=5672
LOG_BASE=/var/log/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia
SERVER_START_ARGS='
-pa /usr/lib/erlang/lib/rabbitmq-stomp/ebin
-rabbit
stomp_listeners [{"0.0.0.0",61613}]
extra_startup_steps [{"STOMP-listeners",rabbit_stomp,kickstart,[]}]'
Listo, si intentan arrancar RabbitMQ se verá que dice que está levantando los STOMP-Listeners (En Linux talvez necesiten terminar el proceso con sudo /etc/init.d/rabbitmq-server stop antes de correr lo siguiente, y en Mac para levantar el servidor yo ejecuto sudo /usr/local/lib/erlang/lib/rabbitmq_server-1.6.0/sbin/rabbitmq-server)
deploy@localhost:~$ sudo rabbitmq-server RabbitMQ 1.6.0 (AMQP 8-0) Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd. Licensed under the MPL. See http://www.rabbitmq.com/ node : rabbit@localhost log : /var/log/rabbitmq/rabbit.log sasl log : /var/log/rabbitmq/rabbit-sasl.log database dir: /var/lib/rabbitmq/mnesia/rabbit starting database ...done starting core processes ...done starting recovery ...done starting persister ...done starting guid generator ...done starting builtin applications ...done starting TCP listeners ...done starting STOMP-listeners ...done broker running
Table names case insensitive for MySQL Linux
Posted by jcastaneyra in Linux, OpenSource on January 7, 2010
Hola a todos, feliz año 2010, que tal se pasaron estas fechas? descansaron bastante? Pues yo más o menos, unos ratos descansaba y otros trabajaba, y para variar me encontré con esto en el trabajo.
Resulta que estaba montando un servidor de Weblogic y MySQL en Linux, para instalar una aplicación que originalmente estaba con Weblogic y Oracle, y resulta que al cargar las tablas de esta aplicación en MySQL empecé a encontrarme problemas con los nombres de las tablas (entre otras cosas, como los tipos de datos entre Oracle y MySQL), yo no sabía que MySQL por default en Linux es case sensitive, por lo que me di a la tarea de investigar y buscar como deshabilitar esta función.
Es necesario editar el archivo my.cnf que se puede encontrar en /etc o bien en /etc/mysql, e inmediatamente después de la sección [mysqld], agregar lo siguiente:
lower_case_table_names=1
Guardamos el archivo y reiniciamos MySQL, con esto al momento de crear nuevas tablas estas se harán en minúsculas, y ya no tendremos problemas de si son mayúsculas o minúsculas.
Instalando RabbitMQ
Posted by jcastaneyra in Howto/tutorial, OpenSource on June 7, 2009
Instalando RabbitMQ (English)
RabbitMQ es un sistema de message queue (MQ), el cual provee comunicaciones asíncronas, es decir que el productor y consumidor no tienen la necesidad de interactuar con los mensajes al mismo tiempo, además de que es una implementación del protocolo AMQP (Advanced Message Queuing Protocol), un protocolo para mensajeo de alto rendimiento, y por último decir que RabbitMQ está desarrollado con Erlang, Erlang es un lenguaje de programación funcional.
En Ubuntu 9.04
La instalación de RabbitMQ en Ubuntu 9.04 es tan simple como correr el comando
sudo aptitude install rabbitmq-server
Y con el cual si no has instalado Erlang te mostrará que paquetes tendrá que instalar para que lo tengas también.
jcastaneyra@ubuntu:~/sources$ sudo aptitude install rabbitmq-server [sudo] password for jcastaneyra: Reading package lists... Done Building dependency tree Reading state information... Done Reading extended state information Initializing package states... Done Writing extended state information... Done The following NEW packages will be installed: erlang-base{a} erlang-nox{a} libltdl7{a} odbcinst1debian1{a} unixodbc{a} The following partially installed packages will be configured: rabbitmq-server 0 packages upgraded, 5 newly installed, 0 to remove and 8 not upgraded. Need to get 28.6MB of archives. After unpacking 46.9MB will be used. Do you want to continue? [Y/n/?]
Una vez instalado ya está corriendo.
En Mac leopard
UPDATE (27/05/2010): Desde hace un rato que ya estoy usando Homebrew para instalar cosas en Mac, ya existe una fórmula para instalar también RabbitMQ y por supuesto Erlang, para más información visitar http://github.com/mxcl/homebrew y seguir las instrucciones para instalar Homebrew. Con RabbitMQ, incluso si se quiere una versión específica de RabbitMQ se puede modificar la fórmula
La instalación es a través de los MacPorts, hay que bajar el instalador de la página www.macports.org/install.php, pero para poder compilar es necesario tener XCode instalado. Los MacPorts son instalados en /opt, por lo que hay que asegurarnos que se tengamos agregados los paths necesarios en el profile para ejecutar los comandos de MacPorts.
En mi caso en .profile (pero también puede ser el .bash_login) debe estar algo así (si no está lo agrego):
# MacPorts Installer addition on 2009-02-25_at_15:37:48: adding an appropriate PATH variable for use with MacPorts. export PATH=/opt/local/bin:/opt/local/sbin:$PATH # Finished adapting your PATH environment variable for use with MacPorts. # MacPorts Installer addition on 2009-02-25_at_15:37:48: adding an appropriate MANPATH variable for use with MacPorts. export MANPATH=/opt/local/share/man:$MANPATH # Finished adapting your MANPATH environment variable for use with MacPorts.
Una vez que están los MacPorts hay que instalar primero erlang, así que ejecutamos
sudo port install erlang
Y esperamos un buen rato a que se instale.
Una vez instalado erlang, bajamos la última versión de RabbitMQ
mkdir /tmp/rabbitmq && cd /tmp/rabbitmq curl -O http://www.rabbitmq.com/releases/rabbitmq-server/v1.5.5/rabbitmq-server-generic-unix-1.5.5.tar.gz tar xvzf rabbitmq-server-generic-unix-1.5.5.tar.gz sudo mv rabbitmq_server-1.5.5/ /opt/local/lib/erlang/lib
Ahora ya lo podemos ejecutar.
sudo /opt/local/lib/erlang/lib/rabbitmq_server-1.5.5/sbin/rabbitmq-server
Recursos
http://www.rabbitmq.com
http://playtype.net/past/2008/10/9/installing_rabbitmq_on_osx/
Installing RabbitMQ (Español)
RabbitMQ is a complete and highly reliable Enterprise Messaging system, it provides asynchronous communications, meaning that the sender and receiver of the message do not need to interact with the message queue at the same time, also it is a AMQP implementation (Advanced Message Queuing Protocol) a protocol for high performance messaging, and last RabbitMQ is developed with Erlang, a functional programming language.
In Ubuntu 9.04
RabbitMQ instalation in Ubuntu 9.04 is so simple, it is just needed to run a command
sudo aptitude install rabbitmq-server
With this also install all packages needed by rabbitmq, Erlang is installed also.
jcastaneyra@ubuntu:~/sources$ sudo aptitude install rabbitmq-server [sudo] password for jcastaneyra: Reading package lists... Done Building dependency tree Reading state information... Done Reading extended state information Initializing package states... Done Writing extended state information... Done The following NEW packages will be installed: erlang-base{a} erlang-nox{a} libltdl7{a} odbcinst1debian1{a} unixodbc{a} The following partially installed packages will be configured: rabbitmq-server 0 packages upgraded, 5 newly installed, 0 to remove and 8 not upgraded. Need to get 28.6MB of archives. After unpacking 46.9MB will be used. Do you want to continue? [Y/n/?]
Once the installation is finished RabbitMQ will be running.
In Mac leopard
UPDATE (27/05/2010): I am using Homebrew to install some stuff in Mac from some months ago, Homebrew has a formula to install RabbitMQ and also Erlang, for more info please visit http://github.com/mxcl/homebrew for install instructions. Also if you want to install a different version of RabbitMQ you can do it just editing the formula
RabbitMQ installation is done through MacPorts, you need to download the MacPorts installer from www.macports.org/install.php, also XCode is needed. MacPorts are installed in /opt, for that reason we put these paths in the .profile file (could be .bash_login), if you don’t have these paths add them to your profile file:
# MacPorts Installer addition on 2009-02-25_at_15:37:48: adding an appropriate PATH variable for use with MacPorts. export PATH=/opt/local/bin:/opt/local/sbin:$PATH # Finished adapting your PATH environment variable for use with MacPorts. # MacPorts Installer addition on 2009-02-25_at_15:37:48: adding an appropriate MANPATH variable for use with MacPorts. export MANPATH=/opt/local/share/man:$MANPATH # Finished adapting your MANPATH environment variable for use with MacPorts.
In order to install erlang execute the following command:
sudo port install erlang
You need to wait some time, maybe several minutes
Once you have erlang installed, we download the last RabbitMQ version
mkdir /tmp/rabbitmq && cd /tmp/rabbitmq curl -O http://www.rabbitmq.com/releases/rabbitmq-server/v1.5.5/rabbitmq-server-generic-unix-1.5.5.tar.gz tar xvzf rabbitmq-server-generic-unix-1.5.5.tar.gz sudo mv rabbitmq_server-1.5.5/ /opt/local/lib/erlang/lib
Now we execute rabbitmq-server with this
sudo /opt/local/lib/erlang/lib/rabbitmq_server-1.5.5/sbin/rabbitmq-server
Links
http://www.rabbitmq.com
http://playtype.net/past/2008/10/9/installing_rabbitmq_on_osx/
Segunda reunión de MXOR
Posted by jcastaneyra in OpenSource on March 17, 2009
El día de ayer fue la segunda reunión de nuestro grupo de Rails MXOR, en el cuál se hablaron de diversos tópicos en general, pero como todos estamos interesados en aprender de estos tópicos llegamos a la idea de trabajar en un proyecto en donde se pueda trabajar con las cosas que nos interesan y que de esto surgan una serie de artículos los cuales puedan servirnos a nosotros como referencia y a las personas interesadas en Rails y de todo lo que está al rededor.
Sobre los tópicos que nos resultaron interesantes son:
- Instalación de Linux desde cero y con los necesario para Rails
- Version de Rails, VM’s
- Uso de Git con el proyecto
- RedMine como administrador de proyecto
- BDD
- Autenticación
- Servidores Web, App Servers
- Prototype, scriptaculous, JQuery (Edgar dice que es más ligero)
- CSS (blueprint, haml)
- Deployment
- Cache
- Plugins de consulta
- I18N
En la reunión se hizo una lluvia de ideas sobre que proyectos trabajar y sobre el proyecto que se eligió también se fueron aterrizando diversas ideas.
Problema:
Compartir historias de desarrolladores.
El contenido:
Tutoriales
Errores
Categorización de tutoriales
Categorización de Errores
Como wiki de errores
¿Compartir pasos de recetas?
Solo en español para empezar
Hasta aquí me quedé en las anotaciones ya que tuve que salir temprano, pero hay un podcast con la sesión de principio a fin. En este momento se está seleccionando un nombre para la aplicación, una vez que se haya elegido el nombre se podrá empezar a trabajar en estos tópicos, idealmente la gente involucrada en cada actividad sería la que esté interesada en aprender y no precisamente la que domine el tema. La lista de nombres al momento es:
Comunidades
Posted by jcastaneyra in OpenSource, Personal on January 29, 2009
El domingo pasado fui a la primer reunión de la comunidad de México On Rails, y también es para mi la primer comunidad en la que estoy, desde hace tiempo había querido integrarme a una comunidad pero en su momento no encontré una cerca a donde estaba viviendo, y también había leído de un buen de gurús de software que recomendaban el unirse a una comunidad que siguieran la tecnología o corriente que uno quería seguir o de la cual aprender, al seguir este consejo me di cuenta a lo que realmente se referían, en esta comunidad de México On Rails a pesar de que fuimos pocas personas, realmente pude ver el talento que hay aquí en México y con personas de todas las edades, la apertura que hay para aprender y compartir conocimiento, y con respecto a esto último, dentro de unos días será el Barcamp México al cual iré y contribuiré con mi granito de arena haciendo una ponencia, algo sencilla, pero la finalidad es compartir y aprender, y enseñando también se aprende mucho, la ponencia será cómo instalar Rails en Windows, por cierto aquí está la lista de ponencias que se planean dar por los demás miembros del grupo.
Por cierto a la otra convivencia de la comunidad a la que me gustaría asistir es la de Super Happy Dev House México, espero poder ir pronto.
Les dejo unas fotos del primer evento de MXOR (dar click en la foto para ir a Flickr):

Recent Comments