05 MarActiveRecord.find_by with join from irb

Friday, 05 March 2010 — 09:00

If you like to run your code on irb before it goes to the project like me, you might find this problem when running “find_by” ActiveRecord’s queries joining multiple tables.

Let’s take this as an initial example of what i mean:

projects = Projects.find(:all,
:select => "projects.id, projects.title, projects.version, managers.name",
:joins => :manager,
:conditions => "projects.technology='Rails'",
:order => "managers.name asc")

What would you expect from this?. I would expect a resultset with the values under :selected clause, that is an array of projects, with title, version and manager name.

However, if you run this from irb, you will get something like this:

[#<Project id: 18004351, title: "ggomeze.com", version: "1.0">]

Where is the manager’s name?. But if you run next command, in the worst case, you will get:

>> projects[0].name
=> nil

Let me explain you what might be happening here: you probably has an instance method in project class with same name!!. Really?, ok, let’s check it::

>>Project.instance_methods.grep(/name/)
["name","name_xxx"]

There you go!. So applying rule of thumb “right and top”, rails is running that method instead of getting the attribute from the resultset. That’s obviously a flag that we are not doing things right. There are several techniques to refactor that code. Delegates might be one.

Just to demonstrate manager’s name is there, let’s make a small change in our initial code:

projects = Projects.find(:all,
:select => "projects.id, projects.title, projects.version, managers.name as foo",
:joins => :manager,
:conditions => "projects.technology='Rails'",
:order => "managers.name asc")

And now, back to irb:

[#<Project id: 18004351, title: "ggomeze.com", version: "1.0">]
>> projects[0].foo
=> "Gerardo Gomez"

Don’t be lazy and refactor your models!

Ger

20 DecLos toros, el catalán... y Loquillo

Sunday, 20 December 2009 — 09:09

Son varias las noticias que están llegando recientemente como el referéndum por la independencia de Cataluña, la batalla lingüística y por último la prohibición de los toros en Cataluña.

El referéndum es el claro indicio de los propósitos impulsados, no nos olvidemos, por los partidos nacionalistas.

Así, en Fraga el problema no es sólo la lengua, sino la inclusión de Fraga en los Países Catalanes, la pérdida de la categoría de españoles y la catalanización de los colegios, como ya ha sucedido en Cataluña. Es sólo un pasito más en su reconocido anti españolismo.

Ahora ha llegado la propuesta de prohibir las corridas de toros al Parlamento Catalan. Nada cabe objetar a quienes consideran que los espectáculos taurinos implican maltrato animal y, en consecuencia, solicitan su erradicación. Pero hasta los promotores de la iniciativa legal para que los toros sean proscritos, así como los diputados que la han apoyado por convencimiento, convendrán que defensores de los derechos de los animales los hay en toda España y en ningún otro lugar se ha llegado tan lejos. La explicación es clara: la legítima aspiración de los antitaurinos ha contado en Cataluña con un aliado de conveniencia que ha visto la ocasión para seguir marcando distancias con el resto de España. Seamos rigurosos! sin el decidido apoyo de los nacionalistas, el envite nunca hubiera prosperado. Eso quiere decir que no estamos tanto ante un debate social, que lo hay, y no hay que temer abordar, como ante un nuevo pulso político que contamina de raíz la polémica. Si de verdad el interés de los nacionalistas fuera la defensa de los animales, bien podrían plantear una modificación de las corridas para preservar el festejo evitando que muriera el toro, como sucede por ejemplo en Portugal. O añadirían en su empeño otras actividades como la caza, la pesca, el embuchamiento de ocas… Su objetivo es otro. No es casualidad que en las manifestaciones antitaurinas en Cataluña predominen las banderas independentistas, como no lo son tampoco las agresiones que el símbolo del toro, en tanto que emblema de lo español, ha sufrido reiteradamente en esa comunidad.

En su discurso, los nacionalistas arremeten contra los toros con dos argumentos básicos: dicen que es un signo de barbarie e incultura y que se trata de un espectáculo ajeno a la civilizada Cataluña. Sobre lo primero, baste decir que sociedades más cultas y con mayor tradición democrática como la francesa no se plantean la supresión de los toros. Sin ir más lejos, esta misma semana Luis Francisco Esplá hablaba a los estudiantes en la Universidad de la Sorbona. Es imposible resumir aquí todo lo que de manifestación cultural tiene el mundo de los toros, todo lo que ha contribuido a otras artes y la miríada de intelectuales que a él se ha adherido históricamente. Sobre lo segundo, por mucho que se quiera retorcer la realidad, nadie puede negar que sólo la ciudad de Barcelona ha llegado a tener tres plazas abiertas para satisfacción de los miles de aficionados de Cataluña.

Pero el debate va incluso más allá, porque estamos también, y sobre todo, ante una cuestión de libertad. El problema en Cataluña es que, cuando hay un conflicto de derechos, para la clase política pesa más lo identitario. Surge entonces el espíritu censor, el mismo que ha inspirado otras prohibiciones escandalosas, como la de que el castellano pueda ser lengua vehicular en la enseñanza, que los niños puedan hablarlo en el recreo o que los comerciantes lo usen en sus rótulos. Cataluña está a un paso de prohibir los toros arrastrada por un nacionalismo que mantiene firme su escalada de antiespañolismo, en buena medida por culpa de un PSC acomplejado que ha atizado un fuego que no deja de arder. Ojalá no llegue tarde la advertencia de su diputado David Pérez en el Parlament, que dijo que se está imponiendo la tesis según la cual si te gustan los toros, te gusta Loquillo y no eres del Barça, «no eres catalán».

01 DecHijo, apaga la lavadora!

Tuesday, 01 December 2009 — 22:30

Son las 4 de la tarde de un sábado cualquiera, en un hogar tipico español, como es la republica independiente de mi casa. La mitad de los miembros de la familia yace en el sofa, intentando echar la siesta. De fondo, la película de la 3, y los no tan silenciosos electrodomésticos funcionando, como la lavadora, lavavajillas,…

Decido ponerme al ordenador. Estoy trabajando en un proyectillo personal, y quiero darle otro empujón. Cuando me disponía a conectarme con mi repositorio git remoto, zas!, saltan los fusibles y manda todo al traste. Algo normal, y bastante frecuente, para una instalación arcaica, en la que para poder encender el horno, hay que apagar un fuego, o para encender la lavadora, hay que apagar el lavavajillas. No será tampoco la primera vez que apago la televisión para poder freír un huevo frito, manda narices! Pero vamos sobreviviendo y ahorrando en gastos, que ahora, esta de moda.

Cuando me dirijo al cuadro eléctrico para levantar los fusibles, mi madre desde el salon me grita: “Hijo, apaga la lavadora!”. Yo extrañando, reviso los electrodomésticos en la cocina, y compruebo que el unico funcionando era la lavadora. "Mama, solo esta la lavadora… ". No había llegado a acabar la frase cuando me encuentro a mi madre en el salon, HP en las rodillas, gafas puestas para no perderse detalle, y dos dedos indices apuntando al teclado extendido, y dispuesta a buscar las letras del que para ella es el mejor juego de “sopa de letras” últimamente. “Si, apaga la lavadora, que estoy navegando. Hijo, donde esta la @?”

A donde hemos llegado…

Ger

07 Nov45 años, divorciad@ y con un hij@

Saturday, 07 November 2009 — 13:22

Este es el perfil mas repetido en nuestra sociedad. Esta claro que se trata de una evolucion “natural” de nuestra sociedad. Pero donde estan las causas?.

Todo empezo con la inmersion de la mujer en el mundo laboral. Durante muchos anyos la mitad de la poblacion ha estado sumisa al otro 50% de la poblacion con tareas pre-establecidas y sometidas a unos prejuicios a priori insuperables.

Los hombres iban a la guerra. Las mujeres se encargaban del cuidado de los enfermos, la costura, la cocina. El hombre es quien traia el dinero al hogar, y la mujer se dedicaba a la atencion y cuidado de “la gallina de los huevos de oro”. El puto poder del dinero.

La mujer busca su independencia y con el paso de los anyos, no es que hayan igualado en poder a los hombres en muchas facetas, sino que envalentonadas por su condicion de “sexo debil”, han conseguido ganarse la sensibilidad de la sociedad y con ello muchos de sus objetivos, con el proposito de ser reconocidas en nuestra sociedad.

La mujer es independiente, y el hombre tiene que cambiar su mentalidad y aprender a “fregar y cocinar”. La mujer tiene poder, y sus derechos le son reconocidos, como debiera haber sido mucho tiempo atras.

En otros paises, como por ejemplo en America, los adolescentes suelen vivir con mayor celeridad que en Europa por ejemplo. Aqui sin embargo, las dificultades para independizarse, los largos anyos de carrera, el modelo de ensenyanza, hacen que muchos adolescentes no salgan del hogar familiar hasta bien pasados los 30. En American nos consideran unos raros.

La mujer no necesita de nadie para vivir, y ademas, posee algo que el hombre nunca podra tener (al menos por medios naturales): dar vida a una nueva criatura. Pero este don es perecedero.

Disfrutamos como nadie de la adolescencia, vivimos al amparo de la familia por mas tiempo, y cuando nos llega la hora, tratamos de formar una familia, en muchas ocasiones con prisas, y tomando decisiones precipitadas. La tolerancia baja a los niveles mas bajos en las relaciones, y el “amor” a la “gallina de los huevos de oro” dura menos que de costumbre

Conclusion: 45 años, divorciad@ y con un hij@

Ger

09 AugA ETA, METRALLETA

Sunday, 09 August 2009 — 16:00

Estoy harto. Estoy harto de dormir una media de cinco horas todos los dias. Estoy harto de pasar mis dias delante de un ordenador. Estoy harto de internet, de las comunicaciones, de las tecnologias que te permiten estar siempre “online”. Estoy harto de Facebook. Estoy harto de la television, y su publicidad, que nos tratan de vender una vida idilica. Estoy harto de no poder hacer lo que cualquier chico de 27 anyos hace en su edad. Estoy harto de no poder casi quedar con amigos o ir de vacaciones, ponerme mi camisa de seda, mi pantalon de lino, mis sandalias de Hugo Boss, y tomarme un coctail en un lugar paradisiaco.

Estoy harto de los politicos que nos ningunean, sean del partido rojo, o del azul. Estoy harto de la camaderia politica, el abuso de poder, y el egocentrismo de los que nos gobiernan. Estoy harto de las decisiones que interesan a unos pocos. Estoy harto de la prensa partidista, es decir, estoy harto de la prensa.

Estoy harto de los nacionalismos. Estoy harto de los independistas. Estoy harto de la conformidad de los espanyoles.

Pero con eso y con todo, sigo conservando el valor mas importante del ser humano, la vida, y pienso ejercer mi derecho a vivirla. Tratare por ello de cambiar mi vida, y buscar la felicidad donde haga falta.

Otros, por causas del destino como Jarque, jugados del Espanyol o ideologias absurdas, ya la han perdido. Han dejado familias destrozadas, y un pais entero que llora su ausencia, aunque sea solo por un tiempo, demasiado corto.

Me pongo en la piel de esos familiares, que de forma injusta hayaron su destino final, y me salen los instintos mas asesinos. Desde que tengo uso de razon, he vivido con el “miedo” de ETA. Cuanto tiempo mas vamos a tener que aguantar sus amenzas?

Cuanto tiempo vamos a dejar que el repetidor de octavo nos quite el bocadillo en el recreo?. Cuanto tiempo vamos a aguantar sus amenzas de no decir nada al profesor?. Durante cuanto tiempo vamos a sucumbir a sus chantajes?. El primer dia llegas a casa asustado. El segundo estas atemorizado. Despues tienes rabia de saber que lo que tu madre prepara con carinyo se lo esta comiendo otro. Y llega un dia, que dices BASTA YA!

Hoy al asomarme a la ventana, veia un graffiti enfrente de mi casa que decia: “CONTRA ETA, METRALLETA”. Creo que la gente empezamos a estar hartos, de que se nos coman el bocadillo…

Ger