jueves, 18 de diciembre de 2014

Top's suite

I'm glad to announce my new suite of Android apps to find the most popular social feeds. Each app is managed by a scope, for example: football, documentaries, trailers, ... At server side, there are a number of feeds that will be automatically executed using a Quarz scheduler. These feeds will search for new items in the registered social networks. Then for every user request to the server, an algorithm is applied to suggest the most popular items for the user based on its profile (genre, age, location ...).

Hope you enjoy these apps and any idea to improve are always welcome.

sábado, 22 de noviembre de 2014

El origen de los fantasmas

Levantó despacio los párpados pero se le volvían a cerrar sin fuerzas. Tras unos segundos, intentó de nuevo abrir los ojos, aguantando un poco más hasta que volvieron a caer. Soltó un suspiro llevándose las manos a la cabeza pero algo se lo impidió. Tampoco podía doblar bien ni los brazos ni las piernas. Necesitó de unos minutos para, por fin, despejarse la vista y ver que se encontraba tendido completamente desnudo dentro de una caja de madera. Intentó abrirla pero estaba bloqueada por fuera. Su nariz rozaba ligeramente con la compuerta, con lo que no tenía espacio para mover con holgura la cabeza. Con las manos, se tocaba con nerviosismo los muslos, la cintura, la barba, la nariz y el pelo, una y otra vez, de abajo a arriba y de arriba a abajo.

— ¿Hay alguien ahí?

Se corazón empezó a palpitar con fuerza y su respiración se hizo cada vez más pesada. Apenas podía reclinar su cuerpo para mirar si había algo dentro. Desde las rendijas de los tablones de aquella caja, únicamente llegaba a ver estanterías de aluminio con herramientas de taller: un par de sierras, una cizalla, varias tenazas, afiladores y una enorme cortadora de metal. La luz que entraba en aquél lugar le impedía ver algo más. Volvió a gritar con más fuerza. Nadie respondió. En voz baja, para sí, se esforzó en recordar lo último que le pasó ese día: salió del instituto después de una tutoría, paró en el supermercado para comprar y ahí se quedaba. Se reclinó levemente hacia su costado para intentar rascarse la espalda pero, o bien se topaba el hombro con la parte de arriba, o bien el codo con el lateral. Al cabo de un rato sin que nada pasara, empezó a propinar golpes a todos los lados de la caja usando las manos y las piernas, pero ningún tablón se resquebrajó. Suspiró y, de pronto, alguien entró.

— ¡Ayuda! ¡Estoy encerrado aquí!

Chillaba incansable mientras escuchaba a esa persona como se movía de un lado a otro, algunas herramientas pesadas que caían al suelo y el resoplido de algunas sabanas o toldos; hasta que, por fin, pareció llamar su atención. Desde los huecos de los tablones, logró ver que se trataba de un hombre no muy alto y regordete. No alcanzaba a ver su cara, pero su cuerpo estaba parado mirando en dirección a la caja dónde estaba encerrado. Al instante, volvió a desaparecer. Lanzó un grito solo interrumpido por el estruendo de un camión poniéndose en marcha. La caja, con él dentro, tembló cuando el vehículo empezó a circular. Todo se movía con brusquedad en cada curva, por lo que se cubrió la cabeza con las dos manos para amortiguar los golpes. Intentó controlar el ritmo de su respiración, tranquilizándose, hasta que el camión paró.  Luego, alguien pareció subirse a la parte de atrás, dónde él estaba. Incluso le pareció sentir que lo tenía al lado, pero no veía nada, estaba todo a escuras.

— ¡¿Qué os he hecho?! Estoy seguro que lo podemos arreglar. ¡Por favor! ¡Estoy aquí! ¡Por favor!

Hablaba llorando a lágrima tendida, balbuceando frases sin vocalizar. Cuando sintió que otra persona se subía también. En ese momento, los dos hombres auparon la caja, quedando él suspendido en el aire hasta que lo soltaron en el suelo con tal violencia que chilló de dolor. Seguía gritando cubriéndose con las manos por si se llevaba otro golpe. Cuando se dio cuenta que estaba entrando tierra en la caja.

— ¿Qué cojones hacéis? ¡Por favor! ¡Lo podemos arreglar!

Pero seguía entrando cada vez más arena y más polvo. Aun así, vociferó hasta que su voz se quedó completamente ronca y desde los huecos de los tablones ya no veía más que oscuridad. Tampoco escuchaba nada de ningún lado. Intentó arañar los tablones hasta que se le rompió varias uñas. Luego intentó hacer palanca con su cuerpo, reclinándose a la derecha del todo para levantar sus piernas y hacer fuerza contra uno de los laterales. Al segundo intentó, uno de los tablones empezó a ceder.

— ¡Sí!

Al tercer golpe, el tablón se rompió completamente pero eso hizo que la tierra atrapara sus piernas. Intentó liberarse ayudándose de las manos, pero no tenía espacio suficiente para moverse. Empezó a sentir un picor a la altura del muslo que le subía por la cadera. Se trataba de hormigas. A oscuras, sin poder moverse de cintura para abajo, volvió a intentar de nuevo rascar los tablones aguantando el dolor y aspirando sus propios aires. Luego, continuó gritando.

sábado, 8 de noviembre de 2014

Monólogo del vegetariano

—Soy vegetariano—. Es decirlo y hacer amigos en todas partes. Unos te confiesan que ellos también lo serían, si pudieran dejar de comer jamón ibérico, el de bellota o el de jabugo, da igual, pero te enumeran todos los tipos que hay. Y estos son de los más suaves, hay otros que, repentinamente, les crece una voluntad irrefrenable de contarte cuando fueron a cazar cervatillos en su casa de campo de Poyales del Hoyo, Ávila. Por supuesto no se quedan ahí, te relatan con minucioso detalle cómo la mujer de turno prepara cada una de las piezas que van a cocinar, porque ellos no cocinan, ellos cazan, también juegan al póker, hablan de negocios, se van por ahí por la noche a divertirse con amigas, pero ellos no cocinan. A este tipo de amigos son los que yo llamo los “Vividores folladores”, no por lo que estáis pensando, sino porque les gusta joder literalmente a todo el que se ponga en su camino. Cuando hablan de los animales que han cazado, siempre hay algún jodido que le hace parar y le recrimina lo bárbaro y cavernícola que es, son los que yo llamo los “Heidis”. A mí me gusta hablar con los “Heidis”, te diviertes mucho.

— ¿Y cuáles son tus motivos para ser vegetariano? —te suelen preguntar siempre.

Aquí da igual si dices que es por la sostenibilidad del planeta o la explotación a los animales o porque Brad Pitt también lo es, los “Vividores folladores” se van a reír igual. Pero con los “Heidis” es diferente. Ellos escuchan e intentan entenderte:

—Yo adoro a los animales también. Tengo varios perros y me dan arcadas de pensar que los chinos se los coman. Pero, ¿y cómo puedes vivir sin proteínas si no comes animales?

La eterna duda existencial de las proteínas. Aquí me gusta ponerme técnico y les contesto: “lo cierto es que cuando llevamos un tiempo sin tomar proteínas, nuestro hígado, a partir de la encima WTF-47, es capaz de generar sus propias proteínas, muchos más grandes y bonitas, a partir del oxígeno que respiramos y las heces que soltamos”. Lo digo de sopetón y los “Heidis” se quedan maravillados. La verdad es que no les culpo. Desde el parvulario nos dicen que las proteínas sólo pueden obtenerse de los animales, que sin ellas no podemos vivir, y los “Heidis” aún necesitan dormir con la luz encendida. Por eso mismo, los “Heidis” suelen ir acompañados de los “Iluminados”, otros de los amigos que me suelo encontrar a menudo. Los “Iluminados” son la antorcha que ilumina y da sentido al camino trágico y melodramático de los “Heidis”. Para ellos, todo en la vida tiene una explicación y un fundamento lógico-científico-religioso, todo junto, que sólo ellos conocen, entienden, o si no se lo inventan. Nada se escapa a su raciocinio privilegiado, excepto una cosa: que alguien se haga vegetariano. Al principio, identificar entre mis nuevos amigos a “Iluminados” es complicado. Te los puedes encontrar en cualquier sitio: en un bar, pidiendo en la calle, en el congreso de los diputados. Incluso a veces van solo, sin ningún “Heidi”. Afortunadamente, cuando empiezan a hablar se les identifica perfectamente:

—Los vegetarianos vais contra el círculo de la vida. El ser humano está arriba, el resto de cosas está abajo. Tampoco es tan complicado.
—Maldito hipócrita come-césped, y las plantas ¿qué? ¿Acaso no son seres vivos?
—Sería totalmente insostenible que todo el mundo fuera vegetariano. No hay tanta tierra.

La verdad absoluta no se discute así que mejor no rebatir ninguno de estos argumentos con ningún “Iluminado”. Pero todos estos amigos de los que os he hablado hasta ahora, no le llegan ni a la suela de los zapatos al último y más temible de todos. A un “Vividor follador” le das un fajo de billetes, aunque sean falsos, y ya les haces felices. A los “Heidis”, les dices que hay una mariposa por ahí detrás y están entretenidos. Y a un “Iluminado” le planteas la paradoja del huevo y la gallina y se queda absorto en un bucle infinito. Pero los peores de todos con muchísima diferencia y sin lugar a dudas son los “Padres”.  Cuando le dije por primera vez a mi padre que era vegetariano, él lo entendió más rápido que mi madre, la verdad, y tampoco intentó convencerme de lo contrario, simplemente salió de la habitación diciendo:

—He perdido a un hijo.

Con mi madre fue diferente. Al principio, le costó reaccionar tras este tremendo golpe. Tenía muchas dudas e inquietudes por esta nueva forma de vida.

—Pero hijo, ¿y los pescados también?
—Sí, mamá.
— ¿Y el atún?
—Mamá, el atún es un pescado.
—Ya, pero… Es diferente. ¿Las gambas también?

Hoy la situación se ha normalizado con ella, pero hubo momentos realmente tensos. Como cuando me cocinaba lentejas con chorizo, y lo quitaba antes de ponerme el plato en la mesa. Si algo aprendí de aquellos días es que si te sientas a comer y todo el mundo se queda mirándote, coge el plato y tíralo por la ventana.

Nuestras conversaciones también han cambiado, se centran única y exclusivamente en los análisis de sangre.

—Hijo, ¿cómo estás?
—Pues me han despedido otra vez y cuando llegaba a casa, un encapuchado tartamudo me robó el móvil, le tuve que dar los dos que llevaba, claro.
—Ya, pero digo que cómo han salido los análisis de esta semana, te lo has hecho ya, ¿no?
—Sí, tengo la creatinina dos puntos por encima mamá.
— ¡Ay! Hijo. Deja de ser vegetariano. Eso es porque te faltan proteínas.
—Mamá, la creatinina sale porque hay un exceso de proteínas.
—Mira que ya lo dijo tu padre y eres nuestro único niño…

sábado, 25 de octubre de 2014

Pequeño gatito

Me relajaban los días de lluvia. Cerraba los ojos para escuchar el traqueteo de las gotas, rítmico y constante, luego el silbido del viento y los pasos nerviosos de aquellos a los que el temporal había pillado por sorpresa. Cuando de repente escuché un maullido que parecía venir de muy cerca. Abrí los ojos y vi un gato bajo la tumbona de mi jardín. Me quedé un rato mirándole. Debía tener solo unos pocos meses y estaba mirando hacia todas partes. Salí repitiéndome una y otra vez: “Con calma, que no quieres espantarlo”. Sin embargo, el gatito no se espantó. Mientras me iba acercando, me miraba con esos ojos bien abiertos que clamaban por auxilio. Sin esfuerzo, lo cogí y lo traje a casa. Teníamos empapado todo el cuerpo, así que fui a por dos toallas, una la dejé en el suelo para pequeño gatito para, antes, secarme el pelo. Pero él, con orgullo se empezó a revolcarse solo, sin esperarme. Parecía que estábamos sincronizados escurriéndonos toda el agua que teníamos. Aun riéndome, fui a abrazarlo. Me daba cuenta que, ya tan rápido, empezaba a cogerle cariño. Ya me imaginaba que siempre que llegara a casa, pequeño gatito me recibiría tan contento, o esos días en los que uno se siente triste, él me intentaría animar con sus mimos. Me gustaba. Volví a coger su toalla para terminar de secarle, y ahí fue cuando me di cuenta que le salían unos hilillos de sangre que le brotaban de las orejas. ¿Debía buscar ayuda? Decidí esperar al día siguiente y darle algo de comer. Pero no quería comer, sólo quería acurrucarse al calor de mis brazos. Se arrimó a mi cuerpo y empezó a gorgorear. Los dos nos quedamos dormidos. Cuando me desperté, pequeño gatito estaba muerto.

¿Habrá sido mi culpa? En los días siguientes no podía evitar repetirme esta pregunta una y otra vez. Tendría que haberlo llevado al veterinario cuando vi que sangraba. ¿O quizás fue por hambre? No le insistí para que comiera. Tal vez, incluso lo ahogué mientras dormía. El tiempo pasaba y, no solo no me olvidaba de él, sino que cada vez me sentía peor. ¡Maldito irresponsable! Lo fuera o no, yo me sentía culpable de su muerte y tenía que hacer algo.

¿Pero qué podía hacer? ¿Quizás acoger a otro gatito? Pero luego pensaba que si iba a una tienda de animales: ¿cuál escogería? ¿Por qué uno y no otro? ¿Por qué esas tiendas los venden como simples productos? De pronto, me sentí aterrado antes esas preguntas que prefería no responder. Pero entonces, ¿qué otra cosa podía hacer? En ese momento, se me ocurrió intentar algo. Llevé una mesa al jardín y debajo puse unas toallas, con un tiesto con agua y algo de comida. Al día siguiente, no había rastro de agua ni de comida y todos los trapos estaban llenos de pelos. Con el tiempo, los nuevos gatitos se dejaron ver, sin esconderse. Les hice una caseta más grande y no pasaba noche alguna sin que les pusiera su ración de comida. Ellos sentían mi jardín como su nuevo hogar. Se dejaban acariciar y me buscaban siempre para jugar. No intentaban entrar en mi casa, supongo que respetaban esas reglas de toda convivencia, en las que lo tuyo es tuyo y lo mío es mío. Excepto en los días de lluvia, que se refugiaban en la terraza. Esos días me seguía relajando tanto como antes. Cerraba los ojos para escuchar el sonido del aguacero. Luego un maullido. Abría los ojos y allí estaba siempre. Pequeño gatito.

lunes, 13 de octubre de 2014

Mi primer diario

Lunes. He decidido empezar a escribir en el diario que me regaló mi madre por mi cumpleaños. Dice que si escribo todos los días cuando pase el tiempo lo disfrutaré mucho leyéndolo. Por ahora, solo me divierto entremezclando las tintas de colores que me han conseguido, aunque tengo que esforzarme más para que mi letra se entienda mejor.

Martes. Todos los días de primavera nos juntamos los vecinos para cantar y que los mayores nos enseñen cosas muy interesantes sobre las plantas. Luego la vecina de al lado se puso a bailar delante de todos. Es muy vergonzosa, así que todos la animamos. Hasta los jilgueros se callaron para escucharla. Ha sido muy divertido. Sin embargo, mi madre ni así parecía pasarlo bien. La miraba de reojo y estaba como ausente, como si aquello no fuera con ella. Y lo entiendo. Hace unos meses mi padre se fue para no volver y desde entonces mi madre no es la misma. Quiero conseguir que mi madre sea tan feliz como antes.

Miércoles. Hoy me he dado una vuelta por el pueblo. Es muy pequeño pero para mí tiene mucho encanto. Está a orillas de un lago muy grande y a lo lejos se ven unas montañas altísimas. Prometo que un día me perderé subiendo y bajando al trote por esas colinas.

Jueves. Mi madre me ha llevado a un riachuelo que hay cerca del pueblo. Es mi sitio preferido. Me encanta correr a contracorriente con el viento golpeándome la cara, saltar de piedra en piedra jugando a no tocar el agua y, sobre todo, salpicar a mi madre cuando no se lo espera. Sólo así parece divertirse por un momento aunque luego se vengue de mí lanzándome un buen cabezazo. Pero solo está así un momento. Luego vuelve a estar incluso más alerta y preocupada que antes. Me dice que allí hay muchos lobos, que no nos podemos descuidar. Yo los he visto alguna vez y siempre tenemos que salir corriendo. Pero bueno, hoy lo hemos pasado muy bien. La quiero mucho.

Viernes. Hoy tocaba ir al mercado del pueblo a por comida. Nunca hay para todos así que muchos salen en bandadas dando empujones. Es desagradable ver como los más ancianos o los inválidos se quedan otra vez sin nada. Por suerte mi madre siempre consigue para los dos.

Sábado. Ahora mismo sigo temblando mientras escribo estas palabras. No lo entiendo. No entiendo nada. Todo empezó esta mañana, muy temprano, cuando se escucharon como unas bombas que retumbaron en los cielos. Se hizo el silencio en el pueblo. Mi madre me vino a buscar acelerada y me abrazó como protegiéndome. Tras ella llegaron los lobos con su mirada puesta en mi madre. Luego todo pasó muy rápido. Uno de los lobos se abalanzó sobre ella y la despellejó parte del cuello. Sangraba mucho pero aun así reunió fuerzas para separarse de mí y alejarlos de dónde yo estaba. No pudo ir mucho más allá. Otro lobo fue a morderla a la rodilla resquebrajándole las articulaciones de un disparo. Ella me miraba, ya desde el suelo. Echaba cada vez más sangre por el hocico. Fue el último disparo el que le dio justo en la cabeza. Su cuerpo quedó con el cuello abierto, la rodilla desencajada y su cabeza desfigurada, y, más allá, estaba yo. Los hombres encorsetados en sus ropas de ir al campo, se felicitaron unos a otros por la pieza, se arremangaron sus pantalones y, entre varios, se llevaron lo que quedaba de mi madre.

Domingo. Este pequeño ciervo aún sigue solo, preguntándose qué ha pasado.


Relato del interrogatorio

Señor agente, le puedo asegurar que estaba aquí haciendo mi trabajo, sirviendo en el centro de todo este agasajo. Y en verdad le digo que soy muy bueno en lo mío, siempre atento y presto, así que, claro, pensará entonces que nadie más que yo pueda dar nueva alguna que aclare en algo todo este entuerto. No sé si cumpliré las expectativas, pero yo lo que vi únicamente era mucha gente bebiendo unos de otros. Y con otros también. Imagínese lo raro que todo era para mí pues para eso estaba yo, para servir, no sé qué pensara usted. Y no crea que no bebían con ansia, lo hacían con sarna, absorbían más bien como si se tuvieran que dar prisa en calmar alguna sed contagiosa. No sé la verdad, para mí todo era muy confuso y le puedo decir que he servido en todo tipo de mesas, pero, que yo sepa, no hay líquido alguno por donde bebían, o sí, en fin, más sabrá usted de esto, señor agente. 

Lo cierto es que todo cambió cuando llegó ella. Todos pararon sus bebidas para saludarla con vítores y aleluyas, hasta la música hizo una pausa para marcar los ritmos de su recibimiento. Ella entró meneando su cuerpo menudo y generoso con unos aspavientos que podrían decir mucho de ella. Qué figura señor agente, la recuerdo perfectamente con una piel tan oscura como nunca antes había visto, ni siquiera en mis tiempos mozos allá en la fábrica, que yo de esto sí le puedo hablar. También iba pintada con coloretes y brillantinas, que yo a veces también me pinto, no me entienda mal, todo lo contrario, lo lucía con tanto gusto y elegancia que si de otro se tratara me rompería solo de la envidia. Cuando la música se reanudó, ella fue a darle algo a cada dos, tres y cuatro individuos que bebían, también a algunos solitarios que botaban, vaya usted a saber por qué señor agente. Así siguió un buen rato repartiendo por todo el salón sorteando piernas, brazos e intimissimis, que recuerdo bien este nombre de una vez tuve unos en mis entradas. Vasos ninguno, sólo los que había a mi vera, allí se bebía sin vasos. El caso es que yo seguía allí, en mitad de todos, ignorados vilmente, pero absolutamente prendado de aquella mujer a la que no podía dejar de observar pero que parecía tener cuentas con todos menos conmigo. Hasta que llegó mi momento. Se acercó a mí toda ella dispuesta a requerir de mis buenas y en ese justo momento pasó todo. Un hombre se levantó despavorido, chillando como si algo le hubiera sentado mal. Tanto líquido, pensé para mis adentros. Luego allí todos fueron aquejándose de la misma dolencia, saltando y gritando desposeídos. Los intimissimis no se vieron afectados, señor agente. En una de esas, alguien me golpeó por detrás, caí al suelo y no pude ver más. 

- Agente, deje de hablar con botijos y aclare algo de las muertes en esta orgía. 
- Jefe, ha sido una intoxicación con alguna sustancia estupefaciente. Buscamos una mujer 
con forma de botijo. – contestó el agente. 

jueves, 4 de septiembre de 2014

Mule logging practices using log4j

This is a very short introduction to use mule with log4j practices to identify and trace messages within the flows when running Mule on embedded and standalone modes.

domingo, 17 de agosto de 2014

New version of Stories of Malaga

I'm grad to present the new version of Stories of Malaga with a completely new user interface and a timeline, an important new feature that enables to see the evolution of points of Malaga like the Cathedral or the port.

lunes, 14 de julio de 2014

jueves, 8 de mayo de 2014

JBehave and Selenium best practices

Recently, I have been using JBehave with Selenium Web Driver in JAVA as a framework for Behavior Driven Development. By means, the JBehave framework aims to write stories and selenium web driver models and automates the web sites. So, I want to sum up some best practices and hits that I would suggest in order to face out some pitfalls that you may suffer when you play with these techs.

lunes, 10 de marzo de 2014

Consejos para un workshop efectivo

La mayoría de los problemas que se afrontan hoy en día son lo suficientemente complejos como para requerir de al menos un grupo de personas para solucionarlo. En estos casos, lo primero es aunar una visión común del problema y, después, acordar la mejor solución entre todos. Sin embargo, esto no es tan fácil ya que no todos tienen la misma experiencia ni la misma motivación y, muchas veces, no todos tienen las mismas ganas de ceder ante la solución de otro. Entonces, lo mejor es hacer un workshop que reúna a todos los componentes y solucionar el problema de una manera efectiva.

miércoles, 26 de febrero de 2014

Ghost Game

Ghost game version in Spring MVC named Fantasmico.
In the game of Ghost, two players take turns building up an English word from left to right. Each player adds one letter per turn. The goal is to not complete the spelling of a word: if you add a letter that completes a word (of 4+ letters), or if you add a letter that produces a string that cannot be extended into a word, you lose.
The architecture of this solution is composed by Presentation, Solution, Infrastructure layers and a transversal one with utilities and entities.
The frameworks that have been used are: Spring MVC, perf4j, junit, jQuery and Knockout.

martes, 4 de febrero de 2014

Flujos de trabajo propuestos por Martin Fowler

Martin Fowler recientemente ha publicado un nuevo artículo sobre cómo aplicar refactoring en los desarrollos. Normalmente, se suele separar el desarrollo de nuevas características de las tareas de mejoras de una parte o partes del desarrollo, lo que provoca que, muchas veces, estas tareas de mejora quedan en la cola de la lista debido a exigencias de tiempo o desconocimiento de los responsables u otra índole.

viernes, 31 de enero de 2014

Priorities of dependencies resolution in Spring framework

When there are both implementations of a concrete service interface, one defined using annotation and another one using spring configuration. Which implementation will Spring use to resolve that interface?