format internet:

…please wait (46% completed)…

EuRuKo 2009 (Barcelona’s Edition)

Posted by javier ramirez on May 12, 2009

What a fantastic weekend it was.

I met interesting people, I learnt a bunch of new tricks, I had fun in the talks (and out of them too!), and it didn’t rain so we could hang out of the citilab building between sessions. win, win, win.

As you know I was a part of the organization, together with Aitor García Rey, David Calavera, Emili Parreño, Fernando Guillén, Jaime Iniesta, Jorge Cangas, Juanjo Bazán, Marcelino Llano, Miquel Oliete, Raúl Murciano, and Xavier Noria

It’s a real shame Aitor and David couldn’t attend finally due to personal issues, so they couldn’t receive the applause of the audience by the end of the conference. A big part of it belongs to them :)

Being a part of the organization it would be inelegant to say how good the event went, so let me just skip that part and go directly to my personal impressions.

If I had to provide a one-liner as a summary it would go something like “Everybody was as cool as everybody else.. and that was actually so cool!”.

Let me ellaborate on that for a while. We are software developers, and so we are divas at heart (I know I am one for sure). We have attitude, lots of attitude :) Some of us love to be at the spotlight, and others really enjoy to play the chamaleon and blend with the environment… but deep down we all have a lot of attitude and that shows in our disposition to work, in our way of coding, and in so many other things.

In the recent bob-against-giles debate, that kind of attitude was referred to as “arrogance” when talking about the smalltalk/C++ guys. Now, don’t get me wrong, I’m all against generalizations -positive ones too- so I will not say everybody in those communities was arrogant. I would say it was a huge minority indeed. But.. the arrogance was there somewhere in those groups. And it is in so many facets of the software world. The rockstar developer myth.

And I thought that kind of arrogance existed in the Ruby community -whatever community means anyway- too. And I was proved wrong! There I was hanging around with common people, down to earth, as humble as you get.. and then I was shocked to know those people were actually developers like Mislav with so many world-level plugins, or Aslak contributing to the revolution of testing, or Tomasz doing black magic with code at the rythm of the metal, or Pratik and Xavier working in the shadow so we can get the best documentation ever, or Martha who knows so many things about so many subjects and delivers great presentations, and so many others. Not to mention the great Matsumoto San.

I was so surrounded by talent! and I couldn’t see even a single trace of rock star attitude… no looking down, no anything.. just openness and curiosity and a helping hand. And that ROCKS!

So, there.. that’s my summary of EuRuKo 2009. Sure there were also cool talks (and great delicious fantastic lighting talks!), and there was lot of partying, but you already knew that because it’s all documented in the euruko bot :)

What a fantastic weekend it was. Long live EuRuKo

Posted in conferences, EuRuKo, javier ramirez | Tagged: , , | 3 Comments »

Cucumber, Selenium, Webrat, and Windows

Posted by javier ramirez on April 27, 2009

I spent last Saturday hacking around with some really smart people in Madrid. It’s not widely known than in Spain there’s a thriving Ruby on Rails community -my guess would be a language thing- but if you take a look at some of the Rails patches, Hackfest winners or the official Rails documentation project, you would be surprised to see how many -and how good- contributions are coming from this side of the world.

Once in a while we like to get together and take code challenges, so we can learn from each other and eat pizza to match the stereotype ;)

Thing is I’m a Windows guy. I know I should be sorry, I know it’s for housewives (or househusbands for that matter), but that’s life. (disclaimer: I’m planning to switch to Ubuntu in the near future)

As you know, developing software in windows while entirely possible is a bit more difficult than in other systems, specially when it comes to compiling, forking and the like.

Last Saturday I was, as usual, the only windows at hand (the rest being a lot of Macs in different flavors and a lonely Ubuntu) and, as a part of the code challenge, I had to run some tests with Cucumber, Selenium and Webrat. Apart from libxml, that has been working flawlessly in my computer for months, no other binaries were involved, so you would think everything was working just fine.. well, think twice.

First problem was the test server couldn’t be started automatically. I didn’t investigate much about it (my guess being that a fork or a system call is being issued and Windows cannot cope with it) since it was easier just to start it manually before running the tests. Also it was faster, because it didn’t need to be started every time.

After this obstacle, when I was trying to run the tests, I was getting a cryptic Errno::EADDRNOTAVAIL message. At first I thought it was because of Selenium not being able to bind to the given port, but a quick test from the command line discarded that possibility.

I don’t know anything about webrat (yet) but as the song goes, with a little help from my friends I was able to locate the source of the problem. When connecting to remote control Selenium, Webrat is trying to bind to the address “” and that’s something Windows doesn’t like.

All I had to do was opening the file “selecium_rc_server.rb” at the gem source and replacing “” by “”.

I was told I can do this much more clearly at the Webrat config, but I tried it out and I still had the same problem. Taking a look at the Webrat code I would say the config param is not honoured system-wide, but truth is I was in a hurry and I didn’t researched it thoroughly. I had a challenge to solve after all ;)

Once I did this, all was hunky dory. Selenium started, the form fields were filled in, the tests were passing (or not) and the result was displayed on my not-ansi console. Bummer.

Believe me, cucumber is not half the fun without the colors in the output. Fortunately enough, google can tell you where to find lots of ansi-aware console replacements. Unfortunately enough console2, my favourite, is not one of those.

So, there, it took a bit of extra work but now you can also run this neat stack in your good-old windows box.

Posted in development, javier ramirez, madrid, madridrb, ruby, ruby on rails, ruby on rails | Tagged: , , , | 6 Comments »

Speaking at EuRuKo 2009

Posted by javier ramirez on April 23, 2009

It’s only two weeks for EuRuKo 2009, the most important Ruby conference in Europe.

As you probably know, EuRuKo is a grassroots itinerant conference, entirely organized by -and for- Ruby developers. This year, the conference will be held in Barcelona, and I have the honor of being a -tiny- part of the organization as a member of the Spanish Ruby Users Group, the local group preparing the event.

It’s also pretty cool that ASPgems is one of the sponsors. I cannot help but feel a tang of pride (awww, the diva in me ;) ) when I see the commitment and support of the company when it comes to community events.

The list of scheduled talks looks promising. Starting with Matz’s keynote there will be sessions about things like cross-platform mobile development, voice-enabled applications, interacting with MIDI instruments from Ruby, Image processing and other non-typical uses of Ruby. They have the sweet scent of EPIC WIN all over.

Did you take a look at the list of talks? Any familiar names? Well.. yours truly’s talk proposal was accepted and I’ll be speaking about game development using Ruby and Gosu. How cool is that?

I’ve been speaking at other technical events before, and I have a good deal of experience in training, but this will be the first time I do this in English. I’m sure it’s going to be an enriching personal experience.

I’m looking forward to seeing you all there.

Posted in 1771, EuRuKo, javier ramirez, madrid, ruby, ruby, ruby on rails | Tagged: , , , , , , | Leave a Comment »

Parallel Assignment in Ruby and the conditional ternary operator

Posted by javier ramirez on April 8, 2009

You already know how parallel assignment in Ruby works

irb(main):001:0> a,b=1,2
=> [1, 2]
irb(main):002:0> p a
=> nil
irb(main):003:0> p b
=> nil

and you also know how the conditional operator (the only ternary operator in Ruby) works.

irb(main):004:0> false ? a : b
=> 2

so maybe you are thinking of putting that together and, given a “wadusable” object, do something like

wadusable = 'dummy value'
wadusable_type, wadusable_id = wadusable ? (,wadusable_id) : ('DefaultClass',default_id)

Well.. think twice.. the code above will FAIL.. syntax error. So.. does it mean I cannot mix the ternary operator with parallel assignment in Ruby? Not so fast.. after applying the technique of “Complaining Programming” (you heard it first here!) diego pointed me in the right direction.

Sometimes, I tend to forget Ruby plays pretty nice when there are no ambiguities, and allows us to do certain things like omitting parenthesis when calling a method, or forget about brackets in array literals.

But when there are ambiguities, then Ruby needs to know what we really want. In this case, what I have to do is specifically use brackets around the operator return values, so Ruby can properly make the parallel assignment.

wadusable = 'dummy value'
wadusable_type, wadusable_id = wadusable ? [,wadusable_id] : ['DefaultClass',default_id]

And that’s it.

Posted in development, javier ramirez, ruby | 2 Comments »

Upgrading to RadRails 1.2.1

Posted by javier ramirez on April 7, 2009

Aptana RadRails 1.2 is out there. If you are lucky enough, your Aptana installation will prompt you to upgrade and everything will go just fine.

In case your installation is a bit too old, or if you installed everything manually and when checking for updates Aptana says there’s nothing new, you can still install the latest version by using Eclipse “software updates”.

As Chris says in the forums, the update site for RadRails is

When I tried to update by using that site, I got one error because this update depends on the latest version of Aptana Studio but, you guessed it right, Aptana check for updates insisted I had already the latest one.. but I knew I didn’t.

Once again, you can use Eclipse standard update procedure by using the Aptana Studio update site corresponding to your eclipse version, as explained here.

I’ve been using the latest version all day long and so far so good. It has some nice features like the rake files overview and the “explore files” option (I can finally say bye to the EasyStruts plugin), a polished interface, and improved compatibility with Eclipse 3.3 and 3.4.

Great work from the Aptana guys .

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

Scotland on Rails 2009

Posted by javier ramirez on March 30, 2009

De vuelta de la conferencia Scotland on Rails me vuelvo con unas cuantas cosas aprendidas/confirmadas

a) Lo de menos son las charlas (aunque sigue siendo importante que, si las hay, sean interesantes). Lo que importa es el ambiente que se genera alrededor . Creo que el futuro de los eventos de desarrollo va por menos charlas, o por charlas filosóficas.

b) Tener un nombre en la comunidad no garantiza que seas competente haciendo presentaciones. Lo que sí garantiza es que te aplaudirán digas lo que digas (o leas lo que leas, aunque lleve años publicado y no tenga ningún interés).

c) El feedback positivo en una conferencia será directamente proporcional a la gente que venga de otros países. Se ve que la cortesía hace que evalúes bien aunque cometas el suicidio de no tener wifi en un sitio lleno de geeks, haya pocos enchufes, y des un catering de todo a 100.

d) La comunidad Rails hispana es muy potente, técnica y personalmente. El día que nos dé por hablar en inglés la vamos a liar parda. Da gusto escuchar a cualquiera de los de la representación “española” formada por Sam, Rai, Blat, Xavier, Alfredo, Gaizka, Susana, Fernando G., Sergio, Christos, Luismi, Guillermo, Felipe, David, Raúl, Juanjo, Jaime (y yo mismo :p )

En cuanto a las charlas, las que me inspiraron algo fueron (en orden cronológico):

– Getting Git, por Scott Chacon. Muy didáctico y con un buen balance entre crash course y consejos para usuarios más avanzados. Me gustó tanto que en cuanto su libro se publique es muy posible que lo compre. EPIC WIN

– Building blocks of modularity, por Jim Weirich. A pesar de alguna diferencia de criterio que tengo en las categorías de “connascence”, me pareció una charla muy interesante. Lo mejor es que no tenía nada que ver con Ruby o Rails. Era una charla de ingeniería/arquitectura de software. Así sí. EPIC WIN

– Security – what Rails will and won’t do for you, por Rory McCune. Sin entrar en nada especialmente novedoso, hizo una muy buena exposición de seguridad, comprensible, con ritmo, y con algunos datos que me parecieron interesantes. Es posible que acabe cambiando el login en alguna aplicación después de escucharla. WIN

– Advanced deployment, por Jonathan Weiss. Estuve a punto de perderme esta charla porque el nombre es muy engañoso, pero afortunadamente una amiga me hizo leer la descripción de la charla y acabé viéndola. No va de cómo hacer deploy, sino de qué forma puedes lidiar con una instalación compleja que requiere rendimiento, en concreto muy enfocado a la capa de datos. Explicaba las diferentes opciones para que tu base de datos escale, bien con replicación master-slave, master-master, particionado vertical de base de datos, sharding.. o mucho más sencillamente aplicando los famosos KISS y less is more. Me gustó ver que varias de las soluciones que aportaba las tenemos en producción en algunos proyectos. Siempre reconforta ver que lo que has hecho confiando en tu instinto es algo que tiene sentido. WIN

– The Ruby Object Model, por Dave Thomas. Nada nuevo que no esté escrito hace años (de hecho en los libros de este señor), pero de todos modos muy bien explicado y con unas referencias muy bien puestas a Simula y Smalltalk, incluída alguna frase lapidaria de Alan Kay. Lástima que no dedicase unos minutos más (dos) para introducir la teoría de objetos y el concepto de mensaje. Es lo único que le faltó para que me pareciera brillante. EPIC WIN

Y las charlas a las que asistí y que me hicieron sentir decepcionado:

– Keynote por Marcel Molina. Me alegro de que sepas leer y de que conozcas la página El resto de la sala también tenemos internet en casa y también sabemos leer. Quizás sea especialmente duro porque en todas las charlas que he visto de Marcel me ha parecido brillante y esperaba mucho de esta keynote. FAIL

– Merb and Rails 3.0, por Yehuda Katz. Quitando el momento “teletienda engine yard de los primeros minutos”, me pareció en algunos puntos demasiado agresivo, en otros demasiado técnico, en otros demasiado ambiguo, y en otros pelín soberbio. Puede que por eso me dijeran que me parezco a él :P No me gustó su charla, pero he de reconocerle que de no haber sido por él puede que nunca se hubiera inventado el famoso juego “muerte violenta en seis movimientos”. De nuevo puede que sea un pelín duro porque Merb me gusta mucho y esperaba una charla espectacular. FAIL

– Server to server communication using XMPP and Ruby, por George Palmer. Dar una charla de XMPP sin hablar de XMPP y sin estar seguro de las siglas tiene su mérito. Dar una charla de 45 minutos en 20 tiene su mérito. Jactarse de no haberse leído un manual de 108 páginas porque es demasiado grande y luego no saber contestar a ninguna pregunta diciendo “pues esto estaría bien que lo hiciera, pero no sé si lo lleva”, tiene su mérito. Y a pesar de todo el FAIL no es absoluto porque la puesta en escena y la presentación multimedia me gustaron. Salvado por las slides de ser un EPIC FAIL.

A pesar de que el nivel de las charlas no me pareció óptimo y de que varios detalles de organización me parecieron muy malos (como que se llame “scotland on rails” y luego se quejen de que está demasiado orientada a Rails), el balance general que me llevo de la conferencia es bueno.

La experiencia fue muy interesante, la compañía inmejorable, y nada como ir a una de éstas para estar al día en tendencias de camisetas, zapatillas, y portátiles y gadgets cool ;)

Las fotos de la conferencia se están subiendo a flickr

p.s. gracias a aspgems por el detalle de hacerse cargo de mi viaje.

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

Rails Hot Or Not. The Movie

Posted by javier ramirez on December 24, 2008

Una vez pasada la resaca de la conferencia Rails, y a punto de entrar en la resaca navideña, ya están subidos los videos de la conferencia rails 2008

Aunque pierde mucho enlatada, os dejo por aquí el video de la sesión Rails Hot Or Not

Y para que no se diga, también dejo la presentación que utilicé, convenientemente editada para que se vea en cada uno de los casos cuál fue el ganador elegido por la audiencia

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

Por supuesto, agradecer la participación y el buen rollo de los asistentes a la charla, que contribuyeron a que fuera un éxito.. aunque nunca llueva a gusto de todos ;)

searchwords: hot or not, conferencias, rails

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

instalando Google Native Client

Posted by javier ramirez on December 10, 2008

Mientras buscaba información de otra cosa, me he cruzado con este post donde explican un poco de qué va native client el nuevo invento de google

La instalación parece fácil. Descomprimir un fichero y probar directamente algún ejemplo desde línea de comandos, y después de eso ejecutar un script para instalar native code como plugin de firefox. La primera parte ha funcionado sin problemas pero, a la hora de instalar, me he encontrado un error.

I don't know where to install browser plugins.


Como ya sabeis, mi entorno principal de desarrollo es windows XP, aunque por lo que he podido ver en el código, el problema puede pasar en cualquier entorno soportado (linux, OSx, windows). El instalador, en python, va a buscar a tiro hecho el directorio de plugins de firefox, con lo que si tu instalación no está exactamente donde espera, te da este error.

En mi caso, el directorio de firefox no es el que se usa por defecto, así que me tocaba modificarlo, pero el script no admite parámetros.

Que no panda el cúnico… en el directorio donde hayas descomprimido native client, verás una carpeta “tools” que contiene un fichero

¿No sabes python? No pasa nada.. el cambio que necesitamos hacer es mínimo. Busca en el fichero la cadena “Linux_install”, “Windows_install” o “Mac_install”, dependiendo de tu entorno. Verás que hay una variable “PLUGINDIR” que se está definiendo. Haz los cambios que necesites para que apunte al path apropiado y guarda los cambios (el fichero viene comprimido como read-only, así que cámbialo antes de editar si es necesario).

Ya está.. ya puedes volver al directorio original y ejecutar el famoso

./scons --prebuilt firefox_install

.\scons.bat --prebuilt firefox_install

no contaban con mi astucia ;)

searchwords: native client, google, setup, firefox plugin

Posted in development, plugins | Tagged: , , , | 1 Comment »

Entrevista en infoq sobre Aptana RadRails

Posted by javier ramirez on December 3, 2008

Hace unos meses, Rob Bazinet, uno de los editores de InfoQ se puso en contacto conmigo para hacerme una entrevista con motivo de la publicación de mi libro sobre RadRails.

Un ratico después, aquí está el resultado

searchwords: aptana radrails, javier ramirez, book, interview

Posted in javier ramirez, ruby on rails | Tagged: , , | 1 Comment »

Actualizando rubygems a la versión 1.3.1

Posted by javier ramirez on December 2, 2008

Hace un rato iba a instalar la última versión de merb, pero para instalar necesitaba tener al menos la versión 1.3.0 de rubygems, así que le he hecho el clásico

>gem update --system

con el siguiente resultado:

Updating RubyGems
Updating rubygems-update
Successfully installed rubygems-update-1.3.1
ERROR: While executing gem ... (NameError)
undefined local variable or method `remote_gemspecs' for #

Sin embargo un segundo intento me decía esto

>gem update --system
Updating RubyGems
Nothing to update

(principio de la mínima sorpresa, ahem… )

Bien.. en teoría tengo la gema gem-update 1.3.1, de hecho un “gem list” parece que me dice que la tengo instalada, pero si hago un “gem –version” me dice que sigo en la 1.2.0

Por si acaso intento un “gem check” y un “gem pristine” sin éxito.. Y ahora qué? Ahora toca buscar en google, claramente.. tres enlaces después, parece que la solución comúnmente utilizada es la siguiente

>gem install rubygems-update

un minuto y tropecientas líneas de log después, ya puedes hacer un

>gem --version


p.s. en serio.. era necesario complicarlo *tanto* ?

searchwords: gem update rubygems-update update_rubygems merb

Posted in development, javier ramirez, ruby | Tagged: , , , | 3 Comments »