format internet:

…please wait (46% completed)…

Posts Tagged ‘ruby on rails’

Instalando Rails 2.1

Posted by javier ramirez on July 9, 2008

Rails 2.1 mola.. la verdad es que trae un buen puñado de funcionalidades interesantes… yo le estoy sacando ya partido, por ejemplo, a los dirty objects (molarían aunque sólo fuera por el nombre) que son especialmente interesantes en callbacks y observers.

Si te interesa saber qué trae de nuevo la 2.1, un punto de partida interesante —aunque pelín básico en algunas partes— es el libro gratuíto “ruby on Rails 2.1: what’s new” . Por cierto, el primer cambio que aparece en la página 22 fue un patch mío… como se puede ver, el cambio fue humilde, pero el autor no :p

..a lo que iba… que Rails 2.1 mola… si consigues instalarlo. En muchos casos, es suficiente con un simple

gem install rails

Si es tu caso, puedes dejar de leer… pero lo que viene a continuación te interesará si al ejecutar ese comando te has encontrado con este error

ERROR: Error installing activesupport:
invalid gem format

La primera reacción es imitar a enjuto mojamuto y gritar “noooooo.. interneeeeeeeeé”

Una vez pasado el shock inicial, intentas volver a instalar… y cuando ya ves que no, buscas en el plugin google a ver si hay suerte y por lo menos esto le pasa a alguien más… y, efectivamente, hay más gente a la que le pasa.

Después de intentar diferentes cosas, la que me ha funcionado a mí ha sido irme a la página de active support en rubyforge descargar el fichero de la gema, y hacer la instalación local con el comando

gem install activesupport –local activesupport-2.1.0.gem

..y ya con esta gema instalada, podemos proceder a

gem install rails

El resto de gemas se bajan y se instalan correctamente desde el repositorio remoto

searchwords: rails 2.1, ruby on rails, gem install, github source

Posted in development, javier ramirez, ruby on rails, ruby on rails | Tagged: , , , , | Leave a Comment »

masochism: plugin para replicación master-slave en MySQL

Posted by javier ramirez on May 18, 2008

Recientemente me he encontrado con la necesidad de trabajar desde Rails contra una base de datos MySQL replicando en modo master-slave.

Replicación Master-Slave In a Nutshell:

La idea de montar un master-slave es tener la base de datos maestra para realizar las modificaciones a la base de datos, y usar la/las bases de datos esclavas para realizar las lecturas. De esta forma, las operaciones de lectura, que son las más habituales, se pueden balancear entre diferentes instancias de una base de datos.

Por otro lado, cada vez que se hace una modificación en la maestra, esta modificación se replica en las esclavas, de forma que los datos siempre están sincronizados.

Esta imagen del manual online de MySQL es muy explicativa

mysql master slave

Claramente este esquema nos puede ayudar mucho de cara a la escalabilidad de una aplicación, ya que la base de datos es uno de los cuellos de botella típicos.

Lo que necesitamos en este caso, es asegurarnos de que todas las operaciones de escritura van contra la conexión de la maestra, mientras que las lecturas van por una conexión esclava.

Una de las ventajas de usar un framework- en este caso Rails, pero podría haber sido cualquier otro- es que tu aplicación tiene una arquitectura bien definida. O al menos debería. Esto significa que al usar Rails tenemos bajo control las operaciones que se hacen contra la base de datos, con lo que identificar las de lectura y las de escritura debería ser simple. Si seguimos las reglas del framework, las operaciones contra la base de datos pasarán siempre por el modelo y por los métodos que AR nos proporciona.

Al final, el número de métodos que realmente acaban accediendo a la base de datos son más bien pocos, con lo que podríamos jugar un poco con el framework, establecer dos conexiones con la base de datos (una con la maestra, y otra con la esclava) y decidir qué conexión va a usar cada método. Así todos los métodos “find” y similares irían por la esclava, y los “delete”, “insert”, etc.. irían por la maestra.

Esto mismo es lo que el plugin masochism hace automáticamente por nosotros. El plugin viene de la mano del hiperproductivo Rick Olson.

Uno de estos días tendré que contar en más detalle cómo va, pero el resumen ejecutivo es que lo instalas, le añades una conexión master_connection en tu fichero database.yml, llamas a un método en uno de tus initializers… y te olvidas. A partir de ahí todo funciona de forma transparente (siempre que hayas configurado tu master/slave de MySQL previamente, claro).

De momento le he encontrado una única pega. Entre los métodos que se envían a la base de datos maestra no está el método “execute”, que es el típico método que sólo utilizas cuando quieres modificar algo en la base de datos. Sin ir más lejos, el (imprescindible) plugin Foreign Key Migrations usa ese método para crear las FK, por lo que si no nos aseguramos de que se usa la base de datos maestra, podemos tener problemas.

Le he mandado un parche (en realidad es añadir una palabra y una coma) a Rick , a ver si le parece apropiado incuírlo como parte del plugin.

update: y el patch ya ha sido incluído :)

Y a escalar!!

searchwords: scalability, mysql replication, master-slave, javier ramírez

Posted in development, javier ramirez, ruby, ruby on rails, ruby on rails | Tagged: , , , , , , , | 4 Comments »

Aptana RadRails. El libro… Mi libro ;)

Posted by javier ramirez on May 5, 2008

Ya va quedando menos para que se publique el libro de RadRails en el que llevo trabajando varios meses. Acabo de terminar los últimos cambios después de las revisiones técnicas y ya queda sólo la revisión de estilo de los últimos tres capítulos.

portada del libro

En la web de la editorial ya han creado la página para el libro, así que parece que esto ya no tiene marcha atrás (aunque el título todavía podría sufrir algún cambio)

La verdad es que tiene su aquel eso de ver tu nombre en la portada de un libro… y eso que al final no han escogido mi propuesta de foto para la portada ;)

mi propuesta de portada

searchwords: javier ramirez, radrails, aptana, aptana radrails book

Posted in development, eclipse, javier ramirez, radrails, ruby, ruby on rails | Tagged: , , , | 7 Comments »

madrid-rb el grupo de ruby (y ruby on rails) de madrid

Posted by javier ramirez on April 22, 2008

Después de unos meses de silencio por overflow de actividades extraescolares, voy a intentar retomar el blog… aunque veremos lo que dura porque dentro de un par de días empiezo a dar clases otra vez.

Aprovecho la ocasión para anunciar la creación de madrid-rb, el grupo de ruby de madrid. Queremos organizarnos un poco y retomar las quedadas que se hacían hace tiempo, pero dándoles un carácter mensual. En concreto el último jueves de cada mes.

La idea es vernos, hacer comunidad, buscar puntos de encuentro comunes, dar alguna charlita ligera, juntarnos para hackear un poco y quizás crear alguna gema o algún plugin… y usarlo como excusa para salir un jueves al mes :p

La primera cita es este mismo jueves, a las 19:30, en el Starbucks de la calle Génova 4 en madrid.

El grupo se está organizando a través de este grupo de google. Además también tenemos un grupo creado en working with rails.

Y, lo anunciaré en la quedada del jueves, pero lo voy dejando ya por aquí, me han aprobado un proyecto en rubyforge para que podamos dejar el código que vayamos haciendo. Como puedes subir tus páginas estáticas y rubyforge mola, llevo idea de proponerlo para subir la home del grupo ahí.

Si no quieres perderte ninguna cita, hay disponible un calendario al que te puedes suscribir.

searchwords: madridrb, madrid, quedada, rubyforge, google groups

Posted in conferences, development, internet, javier ramirez, madrid, madridrb, ruby, ruby on rails | Tagged: , , , | 1 Comment »

Desarrollo de Plugins Rails (programa en rails como si jugases con lego)

Posted by javier ramirez on November 24, 2007

Tras mi charla de ayer sobre desarrollo de plugins con rails dejo disponible por aquí el material que usé durante mi presentación (la tira de cartón negra y las piezas de lego no van incluídas en el pack).

La podeis ver online un poco más abajo o descargarla en pdf desde la página de descargas.

Así en frío, sin los comentarios que iba haciendo, quizá la presentación no os diga demasiado (aunque da varias pistas), pero en cuanto se publique el video de la conferencia anunciaré el link para que podais ponerlo todo en contexto. *update* el video está publicado más abajo.

Un punto que me gustaría destacar es cómo la ponencia ha crecido un poquito gracias a una aportación realizada durante la conferencia. Durante mi sesión hablé de problemas derivados de la prueba de plugins que trabajen con modelos (el típico, acts_as_xxx).

Nada más terminar, y ya en la zona del coffee break, Sergio Gil Pérez de la Manga me comentó que él se encontró ese mismo problema y que implementó una solución para resolverlo. He añadido una página más a la presentación para reflejar esta solución y ahorrar trabajo a quien se encuentre con esta situación. Otra prueba más de que tener una comunidad activa y amigable es toda una garantía para mejorar tu productividad. Gracias Sergio!

Este material tiene una licencia Creative Commons Atribución-NoComercial-LicenciarIgual 2.5

searchwords: rails plugins development, plugins howto, conferenciarails2007, acts_as plugin

Posted in conferences, conferenciarails, conferenciarails2007, development, javier ramirez, plugins, ruby on rails | Tagged: , , , , , | 5 Comments »

yellow pages hecho en rails

Posted by javier ramirez on November 17, 2007

Gracias a happycodr acabo de enterarme de que AT&T ha lanzado su web yellowpages.com en Rails.

Me parece muy relevante porque yellowpages lleva un montón de tiempo online (no sé si era con la misma empresa detrás, pero yo la usaba sobre el 2001 bajo el mismo dominio) y porque AT&T no es precisamente ‘Cooperativa de Almacenes Ruipérez’. Otro caso de negocio para tener en la recámara cuando hable de sitios relevantes usando Rails.

update: investigando un poco más, me he ido a su web y he visto que entre las actuales ofertas de empleo tienen dos en las que entre varios otros lenguajes ponen Ruby como deseable (junto a Java, PHP y Python), y como cualidades deseables del candidato indican

  • Contributions to open source community
  • Experience working in AGILE environment

A ver si cunde el ejemplo y este tipo de requisitos se empieza a hacer genérico no sólo en empresas pequeñas sino en entornos corporativos.

searchwords: relevant sites using rails

Posted in javier ramirez, ruby on rails, sites | Tagged: , , , , | Leave a Comment »

video de la mesa de frameworks del SIMO

Posted by javier ramirez on November 12, 2007

Por gentileza de Sergio, acabo de ver que el video de la mesa redonda de frameworks en la que participé en SIMO ya está colgado en google video.

Lo podeis ver directamente en este blog o si lo preferís podéis ir directamente a la web de google video

(dura más de una hora, pero realmente se puede dejar de fondo porque la imagen no es significativa, solamente el audio)

Posted in conferences, internet, javier ramirez, ruby on rails | Tagged: , , , , | Leave a Comment »

Creación de plugins con rails

Posted by javier ramirez on November 7, 2007

Si quieres desarrollar tus propios plugins para rails pero no tienes muy claro por dónde empezar, puede interesarte la charla que daré el viernes 23 de Noviembre en la conferencia rails 2007. Bajo el no demasiado inspirado título ‘Programa en Rails como si jugases con Lego’, presentaré los puntos más importantes que necesitas para poder programar plugins con modelos, vistas, controladores y tareas rake.

Además, hay muchas otras charlas que prometen ser interesantes. Para los que no os podais pasar, colgaré en este blog el material que use para mi ponencia y, si todo va bien, habrá streaming de video en vivo y se subirán las grabaciones a la web oficial (aunque como hay que editar el video, eso seguro que lleva unos meses).

searchwords: rails plugins, conferencia rails 2007

Posted in conferences, conferenciarails, conferenciarails2007, development, javier ramirez, ruby on rails | Tagged: , , , , | Leave a Comment »

Ruby on Rails en SIMO 2007

Posted by javier ramirez on October 31, 2007

Cuando estudiaba informática en Zaragoza, fui un par de veces a SIMO en Madrid y a INFORMAT en Barcelona. Después de acabar con bolsas llenas de folletos y con merchandising de todo tipo, además de un GUPTA SQL que me tocó en un sorteo con su instalación en 9 floppies de 3,5″ decidí que no me valía la pena visitar esos sitios porque eran más un zoco que otra cosa.

Parece que se quiere que SIMO sea algo más (por lo pronto ya no dicen que sea el Salón Internacional del Mobiliario de Oficina) y se están dando los pasos para ello. Este año se va a celebrar dentro del SIMO el evento SIMO 2.0.

SIMO 2.0 trata de llevar al SIMO las iniciativas que se mueven en la informática moderna, y además de los stands y los panfletos, cuenta con unas interesantes conferencias que pueden ser lo que necesitaba el evento para convertirse en la feria de informática que una ciudad como Madrid necesita.

Tras años sin aparecer por ahí, vuelvo al SIMO este año, y lo hago además como parte de la mesa comparativa de frameworks que se celebra el próximo martes. Hablaré de porqué en ASPgems utilizamos Ruby On Rails como herramienta de desarrollo. En la misma mesa, expertos en Drupal, Code Igniter, Zend Framework y .Net expondrán los motivos por los que ellos hacen lo mismo con sus respectivos frameworks. Me hubiera gustado quizás algo más de variedad en cuanto a los lenguajes de programación en lugar de contar con tres frameworks de PHP, pero en cualquier caso promete ser interesante y seguro que tenemos varios puntos en común que refuerzan la idea de que los paradigmas de desarrollo están cambiando de ciclo.

Agustín también cuenta con otra charla sobre Ruby On Rails al día siguiente. Es bueno que SIMO se modernice y es bueno que podamos participar ahí para exponer nuestro punto de vista sobre las nuevas formas de desarrollo de software y las herramientas que nos permiten ajustarnos a la realidad de los proyectos en el mundo web saliendo de la rigidez que venía siendo la norma hasta hace poco.

searchwords: simo, conferencia, ruby on rails, frameworks, comparativa

Posted in conferences, development, internet, javier ramirez | Tagged: , , , , | 1 Comment »

RadRails 0.9.1

Posted by javier ramirez on October 27, 2007

Después de que la anterior beta de RadRails funcionase solamente para eclipse 3.2, finalmente hay disponible una nueva beta, la 0.9.1, que puede correr en Eclipse Europa (he probado en 3.3 y todo funciona bien, aunque no sé si en la 3.4 se comportará igual).

La url para el update manager de eclipse es http://update.aptana.com/update/rails/beta/3.2

Si todavía no usas ningún IDE para tu desarrollo con Ruby o Rails, te recomiendo que le eches un vistazo. Aunque es cierto que Eclipse es algo pesado, en un ordenador moderno no debería tener mucho problema para ejecutarse de forma fluída. El conjunto de aplicaciones mínimo que ejecuto a la vez en mi máquina cuando desarrollo es un Eclipse 3.3 con RadRails, una o dos instancias de Mysql, FireFox, Thunderbird, Pidgin, Winamp, Notepad++, Console2, Kerio PF y AVG. Además, es muy habitual que tenga de fondo Emule o Skype, algún documento de OpenOffice y un Internet Explorer para ir probando. Y por supuesto todo el resto de servicios normales que corren normalmente en un XP.

Con esa configuración y con 2 megas gigas de RAM en un portátil normal comprado en el MediaMarkt hace más de un año, no noto ningún problema cuando trabajo con RadRails. Muy de vez en cuando, en algún caso raro de autocompletado se me queda pensando medio minuto, pero no es lo normal. En mi máquina anterior, un portátil con 4 años de antigüedad y 1 año giga de RAM, RadRails era usable pero de vez en cuando me hacía esperar más de la cuenta.

Hay otros IDEs y seguro que todos tienen sus puntos fuertes y sus puntos débiles. De momento no he visto ninguno que tenga nada tan espectacular como para hacerme plantearme un cambio. Mis motivos para escoger Eclipse son principalmente que lo conozco desde hace años como IDE para desarrollo en Java y me siento cómodo con él, que tiene una cantidad desorbitante de plugins para casi cualquier cosa, que es open source y multiplataforma, y que es un entorno que soporta muy bien el desarrollo en prácticamente cualquier lenguaje de programación. Profesionalmente lo he usado para desarrollar/editar Java, JavaScript, ASP, HTML, CSS, PHP, C++, y Ruby.

Entre mis características favoritas de Eclipse con RadRails están la navegación entre diferentes clases con un click, la búsqueda de clases y recursos, la integración con subversion y con la base de datos, la depuración gráfica, la gestión de los servidores Rails, la refactorización de código y vistas, y la asistencia al programar Ruby, HTML, CSS, o JavaScript.

Aparte de eso hay muchos detalles que hacen el día a día del desarrollo mucho más cómodo que usar un editor plano y la línea de comandos, a la que cada día recurro menos.

Bueno, llegados a este punto y como acabo de entregar el cuarto capítulo de una serie de nueve, ya es prudente anunciar que desde hace unos meses ando metido en la creación de un libro sobre RadRails.

A raíz de una conversación en la lista rubyonrails-talk me surgió la oportunidad de escribirlo y a pesar de que inicialmente no estaba muy seguro de querer dedicar el tiempo libre que me queda a esa tarea, acabó pudiéndome la curiosidad. Si todo va bien, terminaré de escribirlo para principios de 2008.

El título bajo el que previsiblemente se publicará es “RoR Made Easy with Aptana Radrails” y la editorial que anda detrás de esto es Packt Publishing

searchwords: RadRails, Aptana, Eclipse, PacktPublishing, javier ramirez, book

Posted in development, javier ramirez, radrails, ruby on rails | Tagged: , , , , | 2 Comments »