format internet:

…please wait (48% completed)…

Posts Tagged ‘rails madrid’

Slides and video for my talk “La herramienta de desarrollo definitiva” in conferencia rails 2009

Posted by javier ramirez on February 28, 2010

I just realized I still hadn’t published in my blog the slides and video of my talk “La herramienta de desarrollo definitiva” in conferencia rails 2009, back in november.

My talk was a reflection about web development and the relative importance of the development tools. I was defending the idea of the individual with good practices being much more important than the choice of a tool or another. I was also talking about why Ruby on Rails is very appealing for such an individual and why it’s still relatively hard to find companies using modern techniques in development.

I talked about which were the best practices I consider an “ultimate developer” should embrace, linking it to concepts found in geek literature such as The Mythical Man Month, The Cluetrain Manifesto, Microserfs o The Soul of a New Machine.

This material is published under a Creative Commons NonCommercial-Attribution-ShareAlike license 2.5

The video is divided in two parts:

Vodpod videos no longer available.

Vodpod videos no longer available.


Posted in conferences, conferenciarails, conferenciarails2009, javier ramirez, ruby, ruby on rails | Tagged: , , , , , | 3 Comments »

it’s not the framework, it’s you

Posted by javier ramirez on July 21, 2009

I’m getting tired already of the hype about Ruby on Rails and how it is better than any other framework past, present or future.

Sure Rails is a cute piece of software, and Ruby is a gorgeous language (supposing you are into programming languages, that is), but if you take a critical look at Rails, you could just say it’s another MVC framework.. Big deal.. And with some coupling issues between the layers too, which are fortunately being targeted on Rails 3.

Moreover, if you take a look at some of its components they could frankly be better. ActiveRecord, for example, is a wrapper ORM, which is implicitly tying you to the physical database layer, with one class per table, as opposed to a mapper ORM such as DataMapper or Hibernate. And the principle of least surprise is kind of a joke when it comes to some of the ActionView helpers and the parameters you have to pass along.

Still, as we like to say around here “Ruby on Rails mola infinito”, and it’s right now my favourite framework for non trivial web applications.

So.. what makes this framework so special? Is it only the absence of configuration and the sensible defaults? Would we sell ourselves for a couple of parlor tricks like those? Surely not.. specially with so many frameworks providing already sensible defaults. Come on, even in Java you can kind of forget about writing so much XML code if you make proper use of annotations and the like. No, it has to be something else.

Ruby on Rails has something that transcends the framework itself. It has you. The Mighty Developer. The Early Adopter. The Status Quo Challenger. The so-called Community —whatever that means.

Bottom line is, when I get together with people working with Rails, they are always in search of the holy grail of web development —or the nearest tavern, whatever comes first.. you have to love that kind of pragmatism. We like to break our assumptions, to learn new things and forget about the ones we already know.

We embrace Rails *today* but we are willing to embrace any other tool as long as we like it better. Do you remember the months before the Merb-Rails love affair? Half the Rails developers I know were already making eyes at Merb without the slightest hint of shame.

And by challenging the system, we are obliged to keep learning… and to find new ways to build the web. And instead of trying to make a carbon copy of what we did before, we like to start anew, because that’s where the fun is.

Sure you can argue this attitude is not the exclusive property of the Rails community. And I would second you on that based on theory.. but in practice, I have seen other some other communities lack this need of challenging. Maybe it’s because they have maturity models and certifications and black belts and whatnot…. And maybe having so many constraints is killing creativity; but fact is in some environments trying to take a step forward is seen as something odd, not desirable.

Rails will pass —or not— but as long as we keep alive the spirit of embracing change, we are entitled to be on the fun side of web development.

So, if you ask me, that’s the secret ingredient of Rails. Sure the language and the framework are cool, but the real power of Ruby on Rails is you.. and me.

update: please read the comments, since I was a bit ambiguous in the post and some points needed further explanation :)

Posted in internet, javier ramirez, madrid, ruby, ruby on rails | Tagged: , , , , , | 10 Comments »

Rails HOT or NOT

Posted by javier ramirez on October 16, 2008

Este año en la Conferencia Rails voy a presentar la sesión “Rails Hot or Not”

La idea es sacar partido de que vamos a estar juntos más de 200 personas que trabajamos todos los días con Rails, para poder extraer algo de conocimiento colectivo de la comunidad. Lo que pretendo hacer con esta charla es obtener una lista actualizada de los plugins/gemas/librerías varias que a día de hoy preferimos los desarrolladores Rails a la hora de empezar un proyecto y porqué.

Por ejemplo, una de las comparativas podría ser: Attachment_fu vs. PaperClip

Para que la sesión sea lo más interesante posible, no quiero hacer yo la lista de librerías a evaluar, ni quiero sacarla de sitios algo desactualizados como la toolbox de working with rails, sino que prefiero que sea un reflejo de lo que realmente usamos a día de hoy para desarrollar.

Supongamos que os toca hacer una aplicación compleja con Rails (os pongo debajo una lista de funcionalidades como ejemplo). Me gustaría saber qué gemas,plugins o librerías (en el sentido más amplio, javascript/css también me valen) son los que usaríais para abordar este proyecto. Si vosotros me mandáis esa lista, lo que voy a hacer es categorizar los elementos que me mandéis para poder hacer la presentación con ellos y que así quede la comparativa interesante.

Lista de posibles funcionalidades: un buscador, generación de pdfs, caché, integración con APIs de terceros, generación/lectura de feeds, multi-idioma, carga significativa de Ajax, procesos de fondo de larga duración, volumen de envío de mails razonable, autenticación con roles, un backend, foros, chat, edición de texto con formato (al estilo redcloth o wysiwig), popups estilo lightbox, notificación de excepciones, captcha, control de spam, upload de ficheros, creación de thumbnails, creación de gráficas/informes, notificación de excepciones, mapas y geolocalización… además de la funcionalidad que se ve, está la que no se ve: tests, profiler para el código, framework css, framework js…

Para facilitar en lo posible la recopilación de librerías, enviadme vuestras listas a No seáis vaguetes y enviadme algo… así la charla será más interesante… y, ya puestos, como la conferencia empieza el 13 de noviembre, intentad enviarme la lista antes de que acabe octubre para que me dé tiempo a prepararla.

Publicaré el resultado de las votaciones en este mismo blog unos días después de la conferencia. Así podemos sacar todos partido.

searchwords: conferenciarails, conferenciarails2008, hotornot

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

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 »

[Q&A] Diferencia entre nil y empty

Posted by javier ramirez on July 5, 2008

Inauguro una nueva serie en el blog. Como sabéis, me gusta participar en las listas de correo para aprender de los gurús, y para echar una mano cuando puedo a la gente que tiene dudas.

De vez en cuando respondo a mensajes en las listas de correo que me parecen dudas genéricas. Otras veces contesto a problemas con los que me he encontrado antes y que no eran fáciles de encontrar en la documentación. Creo que puede ser interesante referenciar estos mensajes en el blog para darles un poco más de visibilidad.

Podrás encontrar todos esos posts marcados con el tag y la categoría format_internet_q&a

En este primer caso de la serie, alguien planteaba cuál es la diferencia entre nil y empty. En concreto, quería entender porqué pasaba esto

x = ""
=> ""
=> false
=> true

Puedes encontrar debajo mi contestación a esta pregunta

> soy nuevo en ruby y me esta gustando mucho el lenguaje me gustaria que me dijeran que diferencia hay entre nil y empty

bueno.. aquí sería interesante si eres nuevo en ruby o si eres nuevo en cualquier lenguaje orientado a objetos. Te lo digo porque el equivalente a nil en muchos otros lenguajes (javascript, java, c++, c#…) es null.

voy a intentar hacer esto rápido.

ruby es un lenguaje muy orientado a objetos, hasta el punto de que todo es un objeto (a diferencia de otros lenguajes, que tienen tipos básicos a los que normalmente se llaman primitivas y luego objetos).

la forma normal de crear un objeto, es utilizar el método new de la clase correspondiente, por ejemplo

Cuando llamas a new, se asigna espacio en memoria para alojar un objeto de esa clase, se le asigna internamente un id, y se guarda la referencia a ese objeto en una tabla que ruby lleva internamente. En la línea anterior, verás que hemos creado un Array, pero ni guardamos en ningún sitio una referencia a ese array, no podremos hacer nada con él. Aquí es donde entran en juego las variables. Si haces

Estás creando un objeto, que se guarda internamente en la memoria, y además estás creando una variable llamada a, que apunta a la referencia de ese objeto en la memoria. De esta forma, cada vez que tu haces algo como


realmente lo que estás haciendo es invocar al método size del objeto al que apunta a. Ahora si haces

Tienes dos variables, pero las dos apuntan al mismo objeto, de forma que si modificas tanto a como b, estás modificando el mismo objeto.

Con esto lo que quiero que veas es que por un lado van los objetos, que es donde realmente se guardan tus valores y se ejecutan tus métodos, y por otro lado las variables, que simplemente valen para apuntar a esos objetos. Si creas un objeto y ninguna variable está apuntándole, ruby lo eliminará de memoria tan pronto como pueda, ya que es inaccesible y nadie lo va a usar.

Teniendo medio claro lo que es un objeto y lo que es una variable, es posible tener una variable que no apunte a ningún sitio. Esto a veces se llama una variable no inicializada (aunque en realidad no es el único caso en el que pasa). Cuando una variable no apunta a ningún sitio, apunta a nil.


Eso en muchos lenguajes es una variable que no apunta a ninguna parte. En Ruby es una variable que apunta al objeto nil (porque nil es también un objeto), pero la explicación te vale igual. nil se utiliza para indicar una variable que no apunta a ningún sitio, bien porque no se ha inicializado, bien porque se le ha asignado nil expresamente.

Si tú haces lo que decías en tu mail


x es una variable que está apuntando a un objeto que es la cadena “”. Al apuntar a ese objeto, puedes utilizar todos los métodos que da la clase String. Por ejemplo,puedes hacer


eso te va a devolver “”, porque la cadena “” en mayúsculas es “”, pero como ves, tienes un objeto String, que puedes usar como quieras. Por lo tanto, si haces


te va a decir “false”, ya que x no apunta a nil, sino a un objeto String vacío. Al estar vacío, si le pides


te va a decir que,efectivamente, la cadena está vacía. Sin embargo, no es nil, porque apunta a un objeto de tipo String que está referenciado en memoria.

Espero que te haya quedado medio claro.. si venías de un lenguaje orientado a objetos, seguro que ya sabes cómo va esto. Si no venías de un lenguaje orientado a objetos, quizás te valga la pena leerte algo de teoría de orientación a objetos para entender cómo funciona ruby. Te será especialmente útil para entender cosas como las variables de instancia, de clase, herencia, constructores, etc. Puedes programar sin conocer todo eso, pero vas a desaprovechar muchas de las funcionalidades disponibles.

puedes encontrar el hilo de este post en

searchwords: nil, empty, ruby programming language, garbage collector, object oriented programming

Posted in development, format_internet_q&a, javier ramirez, ruby | Tagged: , , , , , | 1 Comment »

UTF-8 al fin se consolida como el encoding líder en la web

Posted by javier ramirez on May 5, 2008

Veo en el blog de google que al fin UTF-8 es el encoding más usado en la web. Más que ASCII, más que ISO-8859-XXX, y muchísimo más que SJIS o GBXXXX (esto me ha sorprendido bastante).

Parece que al fin se va decantando hacia UTF-8 la balanza del encoding, a pesar del inconveniente que para algunos idiomas supone usar Unicode (un carácter en Japonés, Coreano o Chino ocupa tres bytes en UTF-8, mientras que un carácter en Inglés/ASCII ocupa solo uno, por lo que se necesita tres veces más espacio de almacenamiento y ancho de banda).

Sin duda una buena noticia en el complicado y semi-artesanal mundo de la internacionalización de aplicaciones.

encoding trends according to google

searchwords: UTF-8, encoding, google, i18n, javier ramirez

Posted in development, internet, javier ramirez | Tagged: , , , , , | Leave a Comment »

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 »

desde la conferencia rails

Posted by javier ramirez on November 22, 2007

La conferencia rails 2007 ya ha empezado. Este año el panel de conferencias tiene muy buena pinta.

Posted in conferences, conferenciarails2007, javier ramirez | Tagged: , , , , , | Leave a Comment »

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 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 »