lunes, diciembre 29, 2008

Juegos para beber

Estaba hablando con un colega sobre las fiestas de nochevieja y he pensado en hace cuánto tiempo no me pillo una buena curda... fácilmente 3 o 4 años.

El problema es la falta de motivación. Hay gente que bebe para sentirse mayor, otros beben para olvidar sus problemas, algunos lo hacen para socializar... como yo esas cosas ya las tengo superadas, lo único que me puede hacer pillarme una buena cogorza es beber por el espíritu deportivo.

Así que si estáis en la misma situación que yo, para que seáis los putos amos en esta nochevieja, voy a explicar algunos de los mejores juegos a los que he jugado, algunos que se me han ocurrido y de paso voy a traducir algunos de los más interesantes que he encontrado por la red.

La Pirámide

Juego mítico donde los haya, se pueden alcanzar unos niveles de intoxicación etílica monstruosos.

La preparación del juego es sencilla, sólo hace falta un mazo de cartas y alcohol de alta graduación. Lo bueno del juego es que existen multitud de configuraciones y variantes, dependiendo del número de jugadores y de lo que se quiera beber. Es responsabilidad de los participantes encontrar la combinación que mejor les satisfaga, pero la mecánica siempre es la misma.

Se disponen boca abajo un cierto número de cartas, en forma de pirámide. No tiene por qué ser un triángulo perfecto, con que cada fila inferior tenga más cartas que la superior es suficiente (lo más convencional es una configuración 1-2-3-4-5). El resto de cartas se reparten de forma equitativa entre los participantes. Hay que encontrar un equilibrio entre el número de cartas que se reparten entre la gente y las que se quedan en la mesa, si hay muchos jugadores se pueden añadir más mazos. Lo más normal es que cada uno tenga entre 3 y 5 cartas en la mano.

A continuación hay que decidir el valor, en número de tragos o vasos, de cada fila de cartas. Lo normal es que las filas con más cartas tengan un valor menor que las de menos cartas, pero cada uno es libre de experimentar. En un caso típico con filas con 1, 2, 3, 4 y 5 cartas cada una, lo normal es darles un valor de 5, 4, 3, 2 y 1 unidades de líquido a las filas, pero se puede seguir una escala exponencial (muy peligrosa), como 16, 8, 4, 2 y 1, pero eso es aconsejable sólo si hay pocas filas... en cualquier caso, esos valores se pueden establecer a voluntad, según las ganas de beber.

Una vez que están definidas las reglas y repartidas las cartas, se procede a jugar. Se van levantando las cartas una a una empezando por la fila más poblada, hasta que se levantan todas las cartas de la fila y se pasa al siguiente nivel de la pirámide... así hasta que se llega a la cima.

Cada vez que se levanta una carta, los jugadores que tengan en su mano una carta con el mismo valor pueden ordenar a quien quieran beber tantos tragos como estén asignados a esa fila de cartas. Si se posee más de una carta, se pueden distribuir las órdenes de beber entre varios jugadores o asignárselas al mismo jugador.

Es posible lanzar faroles, es decir, ordenar a alguien beber sin poseer una carta válida en la mano. Si el ordenado no se cree el farol, puede anunciarlo y exigir que se le muestre la carta. Si el jugador que ordenó beber no tiene la carta es él el que debe beber el doble de unidades asignadas; en el caso de que efectivamente la tuviese, es el jugador al que se le encomendó beber y quiso destapar el farol el que tiene que beber el doble de la cantidad original.

Variante estúpida para cuando hay pocas personas y una de ellas no quiere beber: se reparten muchas más cartas en la mano que sobre la mesa y la persona que no bebe actúa de juez. Cada vez que se levanta una carta, cualquiera puede ordenar beber a quien crea que tiene esa carta en la mano. Para no revelar todas las cartas, es el juez quien verifica si esa persona tiene o no que beber. Si no tiene una carta del mismo valor, el que bebe (no el doble, sólo lo normal) es el que ordenó beber en primera instancia.

¡Hidalgo!

Esto realmente no es un juego de beber, sino simplemente una forma divertida de romper el hielo mientras la gente bebe normalmente en una fiesta. Cualquier persona que tenga su vaso de cubata lleno y que se cruce con otra persona con el vaso también lleno puede retarle gritando "¡Hidalgo!", tras lo cuál el otro responde "¡Maricón el que se deje algo!" y ambos se beben sus vasos del tirón.

Sniper shot

Éste se me acaba de ocurrir ahora mismo, así que todavía queda validarlo... cualquiera que se anime para hacer el beta-testing, que me deje un comentario.

Se juega con n vasos de chupito (idealmente uno por cada participante, pero se pueden hacer distintas rondas entre los participantes si no hay suficientes vasos) y n*m monedas (n >=2).

Cada jugador tiene su vaso de chupito (vacío) a la misma distancia prefijada; a una señal todos comienzan a lanzar sus m monedas tratando de introducirlas dentro de su vaso. Cuando el primero haya gastado todas sus monedas, todos dejan de lanzar. En ese momento, todo el mundo bebe tantos chupitos como la diferencia entre las monedas que el primero en finalizar ha conseguido encestar y las que hayan encestado ellos. Si esa diferencia es negativa, bebe el que terminó primero de lanzar. Si hay empate, todos beben tantos tragos como monedas falladas o restantes no lanzadas (así la gente se motiva y se penalizan los 0-0 de amarrateguis).

The Beer Hunter

Este juego me hizo bastante gracia por el juego de palabras con su temática y el título de una conocida película.

Se juega entre dos personas con six-packs de cerveza. Se escoge una de las seis latas y se agita con mala hostia (¿recordáis el episodio de Los Simpson en el que Bart le gasta una inocentada a Homer?). A continuación, se mezcla entre las demás latas (lo puede hacer un espectador mientras los jugadores están de espaldas o pueden desordenarlas una vez cada jugador mientras el otro no mira). Después, cada jugador por turnos escoge una lata y la abre apuntándose a la cara. Si la lata no era la agitada, se la bebe. El juego termina cuando a alguno le salta en la cara la cerveza.

Es muy recomendable jugarlo en exteriores.

Dragones y Cogorzas

Este es un tipo de juego que tengo en mente desde hace mucho tiempo, pero al que todavía no he podido jugar, porque si ya a la gente ya le cuesta ponerse a jugar al rol, pues ya borrachos ni te cuento...

Se trata de coger cualquier juego de rol sin los puntos de vida. Cada vez que un personaje recibe daño, el jugador tiene que beber tantos tragos como puntos de vida le hayan quitado. Si un jugador no puede seguir bebiendo, su personaje ha muerto.

Como sería difícil desemborrachar a la gente cuando se les cura, el efecto de las curaciones es eximir de tantos tragos futuros como puntos se hubiesen curado.

Dependiendo del tipo de juego, el máster puede beber por cada criatura que le maten o también por puntos de vida... eso sí, hay que jugar con deportividad y no sacar diez dragones rojos o a Chtulhu y Azatoth en cuanto se empiecen a notar los primeros síntomas de embriaguez.

Subasta alcohólica inversa

Este es otro futuro gran juego que se me acaba de ocurrir... ¡joder, estoy inspirado! :-D

Para jugar, hace falta algún medio para hacer apuestas ocultas, ya sea papel y lápiz, esconder fichas o monedas en el puño, escoger una carta del mazo y ponerla boca-abajo (a cada jugador se le asigna un palo entero), etc.

En cada ronda, los jugadores realizan su apuesta y todos la muestran al mismo tiempo. Cada jugador bebe tantas unidades como su apuesta más la suma de las demás apuestas del mismo valor. La apuesta mínima es 1.

Si juegan pocas personas, apostar bajo (por ejemplo, 1) significa que como mucho beberás tantos tragos como jugadores haya, pero si hay muchas, puede salir más rentable hacer una apuesta más alta y rezar para que no se le haya ocurrido a mucha gente el mismo número o el resultado puede ser desastroso.

Lo bueno de este juego es que siempre se bebe.

Sopla birras

Este juego es simple pero parece muy divertido. Consiste en colocar una baraja de cartas sobre el cuello de una litrona y cada jugador va soplando por turnos hasta tirar algunas cartas; el que tira la última carta bebe.

Una variante es que el que tira un as (y queda a la vista) tiene que beber.

Oca-limocho

Este es un juego tremendo, pero hace falta un poco más de preparación, ya que necesitamos un tablero especial. En la red podéis encontrar montones para descargaros e imprimirlos... si le tenéis especial cariño a uno, deberíais plastificarlo, ya que lo más probable es que acabe pringado de calimocho tras una partida (eso, o imprimir más).

Algunos tableros:
Pero sin duda lo más divertido es hacerte tus propios tableros, con casillas específicas pensadas para el grupo de colegas con el que sueles jugar... recuerdo que nosotros teníamos uno en el que había montones de casillas que decían que tenías que enrollarte con la maciza del grupo, pero creo que al final se aplicaba una regla especial que decía que en lugar de eso te llevabas una hostia.


Pues nada chavales, quiero que esta nochevieja seáis el alma de la fiesta gracias a estos juegos y cualquier otro que se os ocurra. ¡¡¡Y que no decaiga!!!

sábado, diciembre 13, 2008

Las fotos del facebook

Todos sabíamos que el facebook es algo así como la Iglesia, que es fácil entrar, pero casi imposible salir (con todo lo que conlleva la cesión de tus datos)... pues bien, ahora me acabo de dar cuenta de una putadilla nueva: Las fotos que subes, no se borran aunque las elimines de los álbumes.

Malaguita - Demostración:
  1. Crea un álbum nuevo
  2. Sube una foto
  3. Copia la URL de la foto (no la url de la foto dentro del album, sino la del archivo, lo puedes hacer con un click del botón derecho y "copiar la ruta de la imagen" o similar según tu navegador).
  4. Elimina la foto
  5. Pega la URL en la barra de direcciones... ¡tachán! ahí sigue.
  6. Si piensas que es porque todavía está en la caché del navegador, pásale el enlace a algún amigo a ver si él puede seguir accediendo.
Después de ver esto, se me quitan las ganas de subir fotos enseñando el rabo...

jueves, noviembre 27, 2008

Planes de futuro

Hace unos cuantos meses dejé el doctorado porque la universidad me parecía una torre de marfil en la que estaba encerrado y necesitaba conocer cosas nuevas.

Ahora que ya he cumplido lo que necesitaba hacer más inmediatamente tras dejar el curro (viajar a Texas, hacer el Bestia, rascarme los huevos...) estoy en el proceso de búsqueda de trabajo, aunque no sea el mejor momento del mundo.

Me he propuesto saltarme directamente el paso de ser mileurista y estar puteado en una consultora, para empezar en algún trabajo interesante.

En este momento tengo 3 ideas en mente:
  1. Irme a trabajar fuera de España, pero dentro de la UE. En principio la cosa parece más fácil de lo que es, hace unas 3 semanas hice una entrevista en una empresa de puta madre en Grenoble (FR) y creo que quedaron bastante contentos conmigo, pero todavía estoy esperando contestación (me dijeron que me la darían en 2 semanas, así que ya van con una de retraso)... ¿Doy por sentado que ya no me van a coger y sigo buscando más curros fuera?
  2. El entrenador de Fernando Verdasco (ese chavalote que nos hizo ganar la Copa Davis), con el que ya había trabajado antes en la universidad desarrollando un software de entrenamiento, quiere que sigamos con ello como socios. Esto es interesante porque puedo desarrollar ideas propias muy chulas, no tendría ningún jefe coñazo y trabajaría en casa. El problema es que los beneficios ahora mismo son inciertos, la cosa se podría dar mejor o peor.
  3. Buscar algún trabajo cerquita de casa y no complicarme demasiado la vida, que aunque me paguen menos que si me tengo que mover más lejos, me lo ahorro en vivienda, combustible y estrés.
Así que me estoy debatiendo entre las opciones... ¿alguna sugerencia?

lunes, noviembre 17, 2008

Informáticos de película: Operación Swordfish

Estoy viendo Operación Swordfish y me encuentro con la siguiente perlita:


Perillota - Impresionante, ¿eh? Lo que necesitamos de ti es un gusano. Una hidra, en realidad.
Guarrilla - Un gusano múltiple para rastrear huellas digitales a través de una red encriptada.
Lámer - ¿Qué clase de cifrado?
Perillota - Una encriptación Vernam.
Lámer - Ehm, el código Vernam se destruye al aplicarlo, además de ser una auténtica encriptación de 128 bits.
Guarrilla - En realidad hablamos de una de 512 bits.
Lámer - Eso es definitivamente imposible.

Obviando purismos como que "encriptación" no existe, vamos a ver de qué están hablando.

¿Qué es un gusano? Es un programa que se propaga de un sistema a otro a través de una red. La analogía mitológica de la hidra nos hace pensar que se refieren que se propaga de forma exponencial. Vamos, como todos los gusanos (no conozco ninguno que lo haga de forma lineal).

¿Qué es rastrear huellas digitales? Como no creo que se refieran a esos dibujitos que tenemos en las yemas de los dedos, se trata de buscar resúmenes (hashes) de archivos. Algo así como lo que hace el e-mule para identificar archivos idénticos.

¿Qué es una red "encriptada"? Una en la la que los datos se en transmiten previamente transformados para que no sea posible su interpretación si no se conoce la clave correcta. Aquí hay muchos matices sobre los protocolos, pero tampoco pretenderíamos que la película fuese una lección de seguridad telemática.

Hasta aquí todo más o menos razonable, (aunque no sé muy bien para qué cojones quieren rastrear huellas digitales, ¿tienen complejo de SGAE?), pero lo cachondo viene con lo siguiente.

¿Qué es el cifrado Vernam? Se trata del único sistema de cifrado que puede ser realmente irrompible. En cuanto los Wachowsky vieron eso, se les debió hacer el culo pepsi-cola y ahí dejaron de leer. Pues bien, el cifrado Vernam es la repolla si se usa una clave realmente aleatoria tan larga como el propio mensaje (one-time-pad); no 128 ni 512 bits. En este caso concreto lo que tenemos entre manos es algo parecido a lo que se usa, por ejemplo, en el nefasto WEP. En cualquier caso, se trata únicamente de un tipo de cifradores de flujo y bajo esa denominación puede haber cientos distintos, de modo que esa conversación tan "acojonantemente técnica" tenía el mismo valor que hablar del tiempo que hace en la calle.

A partir de ahí, me dediqué a concentrarme en las mameillas de Halle Berry y dejar de torturarme con las garruladas informáticas.


Actualización
Ahora han dicho que 400 millones de dólares dando intereses en 15 años se convirtieron en 9.500 millones... pues ya me dirán dónde, porque es un 23,5% TAE, riete tú de la cuenta naranja de ING Direct xD

domingo, noviembre 09, 2008

Putos todos

Una memez de esas que da que pensar es la de que cuando pones "putos " en la barra de búsqueda de Google el autocompletar en seguida te sugiere "putos catalanes".

Eso ha llevado a mucha gente (catalanes, claro) a indignarse y clamar contra el resto de los Españoles diciendo que somos unos catalanófobos y unos hijos de puta, entre otras cosas.

Pues bien, como siempre, San Google que todo lo sabe, nos va a dar la respuesta sobre cuál es el colectivo más odiado en la geografía española, teniendo en cuenta el número de resultados de sus búsquedas:

aproximadamente 1.450.000 de putos valencianos.
aproximadamente 441.000 de putos gallegos.
aproximadamente 200.000 de putos vascos.
aproximadamente 199.000 de putos cántabros.
aproximadamente 133.000 de putos castellanos.
aproximadamente 128.000 de putos murcianos.
aproximadamente 118.000 de putos españoles.
aproximadamente 94.500 de putos catalanes.
aproximadamente 84.800 de putos andaluces.
aproximadamente 71.200 de putos baleares.
aproximadamente 67.300 de putos navarros.
aproximadamente 66.500 de putos canarios.
aproximadamente 43.600 de putos aragoneses
aproximadamente 35.800 de putos madrileños.
aproximadamente 33.900 de putos leoneses.
aproximadamente 16.700 de putos extremeños.


Así que nada, lo siento por nuestros amigos los catalanes, pero están relegados al grupo medio de la tabla. Seguro que destacáis en montones de cosas, pero en cuestión de ser odiados, os quedáis en mediocres. Os ganan por goleada los valencianos (¡Valenciano, eso seguro que tiene algo que ver contigo!), los gallegos (y ahí vamos todos los españoles también, gracias a nuestros amigos de América Latina), los vascos, los cántabros, los castellanos, los murcianos, y los españoles en su conjunto. Cabe destacar que pobrecitos los extremeños, los últimos hasta para esto.

Como ya me ha entrado el intríngulis, he continuado la investigación sobre colectivos étnicos, políticos, de otros países e incluso otras especies y enseres, vamos a ver qué sorpresas tenemos:

aproximadamente 1.410.000 de putos rojos.
aproximadamente 577.000 de putos comunistas.
aproximadamente 544.000 de putos animales.
aproximadamente 483.000 de putos amarillos.
aproximadamente 475.000 de putos etarras.
aproximadamente 419.000 de putos chinos.
aproximadamente 378.000 de putos euros.
aproximadamente 356.000 de putos locos.
aproximadamente 346.000 de putos perros.
aproximadamente 333.000 de putos ingleses.
aproximadamente 308.000 de putos coches.
aproximadamente 303.000 de putos negros.
aproximadamente 283.000 de putos punkis.
aproximadamente 277.000 de putos extraterrestres.
aproximadamente 274.000 de putos peruanos.
aproximadamente 242.000 de putos americanos.
aproximadamente 222.000 de putos portugueses.
aproximadamente 218.000 de putos viejos.
aproximadamente 211.000 de putos franceses.
aproximadamente 186.000 de putos pijos.
aproximadamente 161.000 de putos rusos.
aproximadamente 155.000 de putos verdes.
aproximadamente 150.000 de putos curas.
aproximadamente 124.000 de putos maricones.
aproximadamente 112.000 de putos ecuatorianos.
aproximadamente 97.500 de putos moros.
aproximadamente 95.900 de putos científicos.
aproximadamente 95.800 de putos naranjas.
aproximadamente 72.000 de putos gabachos.
aproximadamente 72.000 de putos azules.
aproximadamente 63.500 de putos fachas.
aproximadamente 63.600 de putos gitanos.
aproximadamente 57.400 de putos profesores.
aproximadamente 57.200 de putos estafadores.
aproximadamente 50.200 de putos ciclistas.
aproximadamente 45.600 de putos judíos.
aproximadamente 46.100 de putos marrones.
aproximadamente 45.100 de putos raperos.
aproximadamente 40.700 de putos rumanos.
aproximadamente 40.300 de putos garbanzos.
aproximadamente 35.700 de putos marroquíes.
aproximadamente 35.100 de putos sudacas.
aproximadamente 34.600 de putos anarquistas.
aproximadamente 29.400 de putos yonkis.
aproximadamente 11.100 de putos panchitos.
aproximadamente 10.100 de putos bakalas.
aproximadamente 1.150 de putos biciclistas.

De todos modos, cuando buscas "putos X", lo primero que suele aparecer es una página de alguien perteneciente al coletivo X quejándose de que les insultan... pero si es la primera página en los resultados (la más popular) es porque hay más gente haciendo ruido de la parte "ofendida" que de los otros.

Curioso cuanto menos.

viernes, octubre 31, 2008

This is jalogüin...

En Texas obviamente me esperaba que todo estuviese preparado para Halloween, pero que ocurra en España me parece absurdo. Dentro de unas horas estarán llamando a mi puerta niñatos disfrazados de pollas en vinagre con la tontería del "truco o trato" (pá tu culo mi aparato, ya sabéis), como si no tuviésemos suficiente con la tontería del aguinaldo (ir por ahí a pedir dinero cuando tu padre tiene un Mercedes-Benz).

Pero lo cachondo no es lo de los niños, que al fin y al cabo es comprensible, sino lo de los adultos que se supone que ya tienen dos dedos de frente. Ver cómo se entregan con pasión a tradiciones que ni les van ni les vienen es tronchante... el equivalente sería un estadounidense corriendo los Sanfermines (¡ay, si Hemingway supiera!), con el agravante de que Halloween es una fiesta para que la disfruten los pequeñajos. Imaginános a un maromo americano de unos 30 tacos corriendo delante de un chotillo o intentando atrapar un gorrino engrasado. Pues eso.

Luego hay otras cosas que hacen gracia, como ver los disfraces que escoge la gente, a veces muy acordes con su personalidad. Dan ganas de decirles que no se molesten, que ya son brujas, chupasangres o zombies descerebrados el resto del año, que intenten ser personas normales por un día para variar.

Si salgo hoy por ahí con los colegas me voy a disfrazar de cirrótico mutante del apocalipsis, para que no me dé demasiada vergüenza ajena.

martes, octubre 28, 2008

El viaje de vuelta

Bueno, ya hace unos cuantos días que estoy de vuelta en España y ya que estoy asentado voy a comentar las experiencias del viaje y la re-adaptación a Spain (is different TM).

Lo primero es que en la correspondencia en Philadelphia me fijé en la cantidad de películas que se habían rodado allí. Tienen un pasillo lleno con los pósters, que lo recorres con la cinta transportadora y mientras lo recorres vas descubriendo que a parte de Philadelphia y las de M. Night Shiamalan hay montones más, entre ellas Rocky, de lo que no tenía ni idea.

En el mismo aeropuerto, me comí una mierda muy extraña en el McDonald's, que era una especie de bollo relleno de mermelada con una tortilla y bacon dentro, además de que en lugar de patatas fritas había una especie de torta de patatas... qué cosas.

Durante el vuelo PHL-MAD se dio la casualidad de que coincidí con las señoras que iban a Utah, pero no me tocó nadie de compañero de asiento... supongo que sería para compensar que tenía el cagadero al lado. La comida, de nuevo una puta mierda, como en todos los aviones.

Como llegué a casa a eso de las 8:00 am, tenía la duda de si aguantaba el resto del día despierto para combatir el jet lag o me echaba una siesta y ya vería cómo evolucionaba el tema. Al final me fui a dormir, considerando que el jet lag es tu mejor amigo cuando quieres salir de fiesta hasta las tantas.

Luego estaba el tema de volver a usar mi coche... eso fue lo más duro. Un diesel con marchas manuales y con la mitad de potencia. Al principio estaba a punto de calarlo siempre al frenar, porque me olvidaba de ir reduciendo, pero al cabo del rato ya recuperé el tranquillo.

Pues eso es casi todo, no hay mucho más que contar a parte de que en unos días me voy a hacer una entrevista de trabajo a Francia, a ver si hay suertecilla.

lunes, octubre 20, 2008

Las ciudades de Texas

Bueno, ya he visto las 4 ciudades más importantes que hay en Texas: Austin (la capital del estado), San Antonio, Houston y Dallas; así que voy a hacer un pequeño resumen sobre qué nos podemos encontrar en cada una de ellas.

Austin

De Texas

Austin es una ciudad relativamente pequeña, pero muy cuca. La parte histórica tiene un aire al Camden Town de Londres, con montones de pequeñas tiendas raras, bares y restaurantes. En ella está el capitolio del estado, que tiene como curiosidad los escudos de armas de todos los gobiernos de Texas, siendo el primero de ellos el de la Corona de Castilla.

Aquí me pude dar cuenta de la rivalidad que existe entre la University of Texas y la Texas A&M, porque todo el mundo señalaba a mi novia, que llevaba una camiseta de los Aggies, aunque como le sienta bastante bien (que todo hay que decirlo), parecía que la saludaban de buen rollo. Como siempre, todo está en Los Simpson, ya que hay un episodio en el que Lenny y Karl que han estudiado en la A&M se pican con Homer que estudió en la S.U. cuando sus equipos de fútbol se enfrentan. De hecho, si recordáis la camiseta de la que hablaba en el post anterior, se refería a la mascota de la University of Texas, que es una vaca de raza Texas Longhorn.

Austin es además la capitual mundial de la música en directo, o eso dicen, y su lema es "Keep Austin Weird".

San Antonio

De Texas

San Antonio es una ciudad chula, sin demasiado rascacielos, pero con mucho legado histórico. Allí está la misión de El Alamo, que por lo visto fue escenario de unos pifostios muy chungos y hasta hicieron una película.

De las cosas que tienen más encanto, está el riverwalk, que digo yo que se traducirá como paseo fluvial. Se puede pasear tranquilamente por ahí y te olvidas de que estás en Estados Unidos, parece más una pequeña ciudad europea.

Houston

De Texas

Houston es una metropolis en toda regla, con montones de rascacielos, ambiente cosmopolita, tranvía, polis negros y esas cosas. Ahí está el George Bush International Airport, que es donde aterricé y desde donde me iré en un par de días.

Cuando anochece, empieza a molar bastante ver cómo va cambiando la luz, hasta que te acuerdas de que es la 3ª ciudad más peligrosa de Estados Unidos.

Dallas

De Texas

Un coñazo de ciudad. Sólo tiene oficinas, que eso sí, están en unos rascacielos enormes. Había un culebrón que llevaba el nombre de la ciudad y todo. Las pasas putas para encontrar un McDonalds.

Aquí recomiendo que ni te metas en el downtown, las mejores fotos las puedes hacer desde lejos.

lunes, octubre 13, 2008

You call it a mascot, we call it hamburger!

Ya llevo las suficientes anécdotas acumuladas como para soltar otro post sobre el american way of life, así que vamos a ello.

El título del post es lo que ponía en la camiseta que llevaba un chaval en la Texas A&M, que tenía el dibujo de una simpática vaquita. ¿Por qué me acuerdo de esto? Pues porque el tío estaba intentando atrapar una ardilla con una red para nosequé polladas de esas de las fraternidades de las universidades americanas. Como parecía divertido, nos fuimos uniendo unos cuantos a la cacería. En un momento dado, la ardilla se subió a un árbol y no se quería bajar... yo como estoy curtido en las frikadas del Bestia Team les dije que me podía subir para hacerla bajar, así que dicho y hecho, ahí me tenéis a casi diez mil kilómetros de casa subido a un alcornoque texano.

La ardilla bajó en cuanto le pegué unos cuantos meneos a la rama y todos estaban entusiasmados. El chaval de la camiseta graciosa les contó al resto que yo era de España (ya se lo había comentado yo antes) y todos asintieron con admiración mientras yo baja de un salto. De puta madre, si no tenían suficiente con este tipo de cosas , esto y esto ahora llego yo y les hago creer que en España vivimos en los árboles. De todos modos, al final el chaval no consiguió atrapar a la ardilla.

Algo que llama la atención de Texas es lo verde que está todo. Cuando dicen Texas, lo que se evoca son desiertos, cactus, amplias llanuras y vaqueros. Pues bien, ahí hay una pequeña contradicción, los vaqueros cuidan de las vacas y las vacas necesitan hierba para pastar. Así que lo de los desiertos y los vaqueros son cosas bastante incompatibles. Además, hay una humedad en el ambiente acojonante.

Veamos más cositas que me han ido pasando... estar en Estados Unidos es parecido a la pantalla del Super Mario Bros 3 en la que todo es gigante. Aquí todo es XXL. Los coches, jodidamente enormes, los Hummer ya me empiezan a parecer normales y todo. La comida, también viene envasada en recipientes descomunales, la leche y los zumos no los compras en envase de litro, sino de un galón (casi 4 litros).

Respecto al tema de las carreteras, una cosa que me sorprende es que no hay rotondas ni pasos elevados. Aquí todo lo solucionan con cruces a nivel y si hay mucho tráfico pues plantan un semáforo y ya está. Incluso en las autopistas. Por suerte aquí hasta el coche más mierda tiene como poco 170cv y uno puede incorporarse rápido. Ayer sin ir más lejos tuve que darlo todo con el Subaru para no eternizarme esperando y justo tenía al lado al Sheriff del contado, que se puso al lado con el coche y se nos quedó mirado un rato.

Más de las pequeñas diferencias que llaman la atención, aquí al McRoyal con queso lo llaman Cuarto de Libra con queso... ¿y al Whopper cómo lo llaman? Pues Whopper. Ahora en serio, las hamburgueserías son prácticamente iguales, pero con algunas diferencias que hay que conocer para no hacer el ridículo. Lo primero es que para pedir la hamburguesa con patatas y bebida, no pides "menu" (que es realmente la carta, y quedas un poco gilipollas), sino "meal". Tampoco indiques de qué quieres la bebida, porque ellos te dan el vaso y luego te lo llenas tú de lo que quieras las veces que te apetezca (como en el Ikea en España). Las servilletas y el ketchup suelen estar junto a las bebidas, para el tomate tienes un dispensador con el que te llenas unas tacitas de papel en las que luego puedes mojar las patatas o incluso la hamburguesa (en serio, lo he visto hacer, ¡la gente moja la hamburguesa en el ketchup directamente!).

Vivo en el país de los sabores... ¡y es un país grande! Otra cosa que sorprende es la variedad de todo que hay. Mismamente en el McDonalds tienes para elegir de refrescos, además de las típicas Coca-Cola normal y Light, Sprite y Fanta (sólo de Naranja), Dr. Pepper, Cerveza de Gengibre, Powerade, dos variedades de té... En los supermercados es todavía más exagerado, por ejemplo, hay filas enormes enteras dedicadas solo a los helados, que también vienen en tamaño elefantástico, por cierto (vi una tarrina de helado de vainilla que por lo menos era de 5 litros... hmmmm... yummy!).

También he estado en una misa baptista. Es parecido a lo que sale en las pelícuas, cantaban bastante y eso, pero no había negros. En el sermón me quedé un poco flipando porque a no ser que entendiera mal (que es muy posible), pusieron a España como mal ejemplo de religiosidad. Je je je je... esos no sabían que mientras aquí sólo había indios nosotros ya estábamos quemando herejes en la hoguera como unos campeones. El predicador estuvo un buen rato haciendo mofa del sacramento de la confesión como medio de expiar los pecados, usando un ficticio "kit de arrepentimiento" que compró en una tienda española como elemento ilustrativo, supongo que a modo de metáfora de las bulas. Luego estuvo hablando sobre que Jesús era la piedra fundacional (cornerstone, que aunque normalmente se traduce como piedra angular son conceptos arquitectónicos distintos) sobre la que se construían las vidas de los cristianos. Estuve a punto de levantar la mano y decirle que no estaba de acuerdo, que la piedra sobre la que está construida la Iglesia es San Pedro, por designio de J.C. en persona, que si continuamos la metáfora arquitectónica él sería el albañil, y el arquitecto sería el Espíritu Santo. Ese es el problema de alejarse de la tradición grecorromana, que Peter y Stone no están tan claramente relacionadas etimológicamente como Pedro y Piedra (o similares) en las lenguas romances. No dije nada para evitar una situación violenta, que con el Speakers' Corner en Londres ya tuve bastante experiencia oradora.

Ahora por fin, lo que todos estábais esperando... ¿Cómo son los cagaderos americanos? Si alguna vez os ha llamado la atención lo fácil que es sumergir la cabeza de alguien en el retrete en las películas, la explicación está en que aquí el agua del tubo sifónico llega mucho más arriba. La ventaja que tiene esto es que cuando cagas, la mierda cae al agua desde menos altura y con eso las probabilidades de salpicarte el ojete y de que roce la pared y deje mancha son menores. Por eso tampoco tienen escobillas.

Bueno, por ahora eso es casi todo. En el próximo post seguiré contando las cosas que me vayan pasando y hablaré sobre las visitas que estamos haciendo por aquí.

jueves, octubre 09, 2008

Sailing to Philadelphia... and then to Houston

Ya llevo un par de días en los Estados Unidos de América, así que mientras mi queridísima novia está preparando la cena, voy a aprovechar para contar cómo está resultando la experiencia americana...

Me levanté el martes a las 8:00 de la mañana (hora española), para coger el vuelo a las 13:05. En la facturación ya empiezan a hacerte preguntas tontas sobre si llevas explosivos en la maleta y te ponen unas pegatinillas que parecen de esas que dan con el bollicao. El avión era un Boeing 767-300, de esos bimotores que cruzan el atlántico ETOPS (Engines Turn Off: Passengers Swim). La primera escala sería en Philadelphia, la ciudad del queso untable, la del abogado gayer con SIDA y la del 6º Sentido entre otras cosas. El viaje dura unas 8 horas, así que había que comer y cenar en el avión. Me tocó sentarme al lado de una chica, que por suerte se arrancó a hablar conmigo (que ya estaba aburridísimo) y pasamos un vuelvo bastante entretenido. Después de un par de horas de cháchara, ya me dolía el cuello de mirar hacia mi derecha, así que le pedí cambiar un rato el asiento para mirar hacia el otro lado.

En el aeropuerto de Philadelphia hicimos la parte más engorrosa de todos los viajes a los U.S.A., el control de inmigración y de aduanas. Durante el vuelo teníamos que rellenar un par de tarjetillas con nuestros datos, intenciones y productos que llevábamos... ya te empiezan a meter en el cuerpo la sensación de que estás haciendo algo malo, así que tuve que confesar que llevaba algo de jamón ibérico.

En la cola del control de inmigración coincidimos con un par de señoras españolas que iban de vacaciones frecuentemente allí. Una de ellas se había comprado una casa en Utah, con los colegas mormones. Nos estuvo contando que siempre le hacían perder el tiempo cuando veían en el pasaporte la gran cantidad de veces que iba. Yo me conformaba con que no me hiciesen el examen rectal. En cuanto les dije que iba a ver a mi novia que era española y me volvía luego, no me pusieron ninguna pega... por lo visto si vas a ver a tu novia americana se ponen más cabrones por el tema de que a lo mejor te quieres quedar a vivir allí, nos comentó la señora de Utah.

En el control de aduanas me requisaron todo el embutido y el queso, los muy incultos gastronómicos. Si supiese que al menos se lo iban a comer ellos me habría dado menos pena, pero estos no aprecian estas delicatessen. Al menos lo hicieron muy amablemente y con una sonrisa, se ve que están hartos de hacerlo cada vez que llega un vuelo desde España.

Después me di unas cuantas vueltas por el aeropuerto hasta encontrar mi puerta de embarque, porque pensaba que era en otra terminal (la habían cambiado). Con el cambio de hora no tenía muy controlado el tiempo y me pegué unas carreras impresionantes hasta que una señora de información me dijo que estuviese tranquilo, que faltaba más de una hora. Mientras esperaba en la puerta de embarque se me acercó un chaval (al que yo ya le había notado las pintillas de spanish guiri) y me preguntó que si era español... resultó que él era de Barcelona y yo siendo de Madrid teníamos así que ser enemigos mortales, bromeé. Estuvimos contándonos nuestras vidas durante el viaje a Houston, la verdad es que es increible qué rápidos somos los españoles cogiendo confianzas, sobre todo cuando estamos lejos de casa y nos entra la morriña.

Una cosa a tener en cuenta sobre los aeropuertos estadounidenses es lo rápido que descargan el equipaje. En cuanto llegas a donde está la cinta, ya están todas las maletas esperando en el suelo de la sala de recogida. Y eso que tampoco se demoran demasiado en dejarte salir del avión, mucho menos que en Europa.

En Houston me despedí de mi compañero de vuelo y me fui corriendo a por el coche que tenía reservado para alquilar. Una vez allí, me metieron una sorpresa bastante desagradable por el culete, pero que al fin y al cabo ya me temía (aunque en menor medida): el precio del alquiler era casi el doble de lo que me habían dicho en la web. Hijos de puta, cómo se aprovechan de que es tarde y tienes una necesidad.

Al final resignado firmé el contrato y me fui a recoger el buga, que esperaba que fuese un Dodge Caliber (o similar). La señorita de la caseta de alquiler me dice que coja el blanco que está aparcado más cerca, que las llaves están puestas. Hey, no es un Caliber, tiene mejor pinta... me aproximo y reconozco que es un Dodge Avenger, me habría gustado que fuese un Charger para hacer rugir ese motor V6, pero bueno, tampoco está mal. Me meto dentro y las llaves no están puestas, salgo a preguntar y resulta que ya lo había cogido otro señor antes. Me dicen que si no me importa esperar... en ese momento devuelven otro coche y me preguntan que si me vale, les digo que sí, que lo que sea. El coche resulta ser un Subaru Legacy nuevecito. Toma pepino de motor Boxer de 2.5l y 170cv con tracción symmetrical AWD. La verdad es que es una pasada de coche, me siento un poco mejor por el pastizal que he pagado.

La toma de contacto con el cambio automático es un poco traumática, le pido a la chica de la cabina que me por favor me explique cómo funciona eso, que estoy acostumbrado a coches europeos. Me mira con cara de "vaya gilipollas que no sabe mover el palito este, que es palante y patrás". Al final resultaba que mi mayor problema es que intentaba meter una marcha sin tener el freno pisado, y no te deja. Después tuve que refrenar constantemente el impulso de usar el pie izquierdo para desembragar, ya que como el pedal de freno es anchote, lo pisaba y clavaba el coche de golpe, incluso lo llegué a calar una vez.

En cuanto conseguí salir del parking, que también tuvo miga, me puse a seguir las indicaciones del GPS lo mejor que pude, pero la zona de salida del aeropuerto no estaba cartografiada así que tuve que improvisar un poco. Al final me puse en ruta, pero me pasé una salida y tuve que dar cierto rodeo. Puse la radio para intentar relajarme un poco, porque además me había dejado las gafas en España y de noche mi visión deja algo que desear. Me acordé del Grand Theft Auto 2, porque las emisoras sonaban exactamente igual que las del juego, la voz de los locutores, el tono, el ritmo, todo era igual.

Tardé un par de horitas en llegar a Bryan, y en cuanto el GPS me indicó que había llegado a mi destino, comenzó el siguiente problema... ¿dónde coño tienen indicado el número de las casas?. No lo veía por ninguna parte. Dejé el coche parado en medio de la calle con las luces de emergencia y me dispuse para bajar a investigar. Ouch, las llaves no salían. Estuve haciendo fuerza en todas las direcciones, encendí y volví a apagar el motor y nada. Las dejé puestas, total, no había nadie por la calle a esas horas (ya eran más de las doce de la noche).

Vi una casa con las luces encendidas, así que me acerqué a ver si veía algo más. Di una vuelta alrededor, intentando cotillear entre las persianas, pero no me sonaba de nada. Volví al coche y entonces vi los números. Estaban pintados en el bordillo de la acera. Efectivamente, la casa que había estado merodeando no era la que buscaba, porque estaba en los impares y yo tenía que ir a los pares. Por suerte creo que nadie se dio cuenta, o habría podido pasar la noche en la comisaría o devorado por unos perros rabiosos.

Por suerte, la casa de mi novia sí que tenía el número puesto y llamé por la puerta trasera. Al fin salió mi novia y la alegría del reencuentro fue aguada por el problema de que el coche seguía con las llaves puestas. Al final probé a meter la marcha de "Parking" y las llaves salieron.

Ya habían pasado 24h despierto desde que me levanté en España, como en las mejores LAN Partys, así que eché el resto para cumplir y luego a sobar.

martes, octubre 07, 2008

El Bestia Team se sube arriba (a La Galana)

¡El Bestia Team vuelve a montarla en Gredos! Esta vez hemos ido a por el segundo pico más alto después del Almanzor, pero con un poco más de mala leche: La Galana.

El plan era el siguiente: recoger al Figura después de su curso de reciclaje, a eso de las 21:15 y salir pitando para Gredos. Una vez allí, hacer el camino desde la plataforma hasta la Laguna Grande, acampar, pasar la noche lo mejor que pudiésemos y a la mañana siguiente subir (y luego bajar) a La Galana.

La cosa empezó un poco retrasada, porque entre que encontré al Figura y al resto de colegas con los que habíamos quedado (Paco, Fran e Isa), nos dieron más de las 21:30, luego nos tomamos unos sandwiches putrefactos del Rodillazo (en el estómago) y al final salimos sobre las 22:00 de Madrid hacia la A6.

Llegamos a la Plataforma de Gredos a eso de las 00:30, sin mayores contratiempos por el camino que una pillada de mano que le hice al Figura con la ventanilla de mi coche, cuando la bajé por un segundo para que nos hiciésemos una idea del frío que hacía fuera, ese tiempo fue suficiente para que asomase la zarpa y se la entallase mientras la intentaba retirar. La verdad es que tiene fuerza el elevalunas de mi coche.

Una vez en la Plataforma, nos empezamos a abrigar con todo lo que llevábamos (varias capas de ropa, guantes, gorros, bragas, forros polares...), porque hacía un frío de pelotas. Entre eso y el preparar las linternas, los frontales, cargar bien las mochilas y comer algunas piezas de fruta, empezamos a marchar sobre las 00:50 hacia la Laguna Grande.

Al poco rato empezamos a notar que andar tan abrigados por caminos tan empinados da demasiado calor, así que tuvimos que hacer algunas paradas técnicas para poner y quitarnos prendas hasta encontrar el equilibrio térmico adecuado. Hicimos algunas intentonas de ir sin luces, pero la luna estaba bastante escondida y las estrellas, que se veían con muchísima claridad, no eran suficiente.

Encontrar la primera fuente fue más fácil de lo que pensábamos, a pesar de haber tenido unas cuantas falsas alarmas durante el primer tramo del recorrido, pensando que la teníamos delante. Paramos allí a repostar agua y descansar unos minutos y luego continuamos el camino hacia el mirador.

Sobre las 2:55 notamos que algo se mueve delante de nosotros. Acojone tipo "Blair Witch Project" durante unos segundos, hasta que conseguimos reconocer al OANI (Objeto Asustador No Identificado), que no era más que una cabra que salió corriendo camino hacia adelante.

El resto del camino hasta la altura de la laguna no tuvo mayores incidentes, pero justo al llegar a la orilla tuvimos que hacer un poco de backtracking para seguir por la ruta correcta hacia el refugio. El segundo susto de la noche vino cuando yo iba a la cabeza y escuché un repiquetear metálico... tardé unas décimas de segundo jodidamente intensas en asociar ese sonido a las patas encadenadas de los caballos que tienen los encargados del refugio.

Una vez al lado del refugio estuvimos a punto de pisar a unos cuantos montañeros que estaban vivaqueando entre las piedras con un par de huevos. Buscamos un sitio más o menos llano para plantar las tiendas y a las 4:00 de la madrugada aproximadamente ya estábamos metidos hasta las orejas en los sacos de dormir. A mí se me empezó a quedar el culo frío porque justo tenía que ponerlo fuera del aislante para tener una postura equilibrada y no resbalarme... así que le tuve que pedir al Figura que me arropase con el saco extra que había traido amablemente en previsión de que hiciese demasiado frío; todo un detallazo.

Después de hacer un par de veces la coña de "Necesito una mujeeeeeeé!", ya empecé a quedarme sopa mientras el Figura me contaba nosequé historias y tuve que advertirle que no se molestase mucho, que ya no procesaba lo que me decía.

A las 9:00 de la mañana ya se empezaba a oír actividad de nuestros compañeros, que querían ir a desayunar al refugio. Nosotros optamos por seguir durmiendo un rato más. El frío mañanero, que se nos cala en los huesos más que durante la noche, nos incita a quedarnos en los sacos el máximo rato posible, pero al final al grito de ¡¡¡Bestia Team!!! el Figura y yo nos armamos de valor y salimos de un salto, para acto seguido empezar a abrigarnos como unas nenazas.

A eso de las 11:00 ya tenemos recogidas las tiendas y estamos preparados para comenzar la ascensión. Fran, que es novel en este tema (juas, dicho así parece que nosotros fuésemos Edmund Hillary, que por cierto, murió a comienzos de este año), tuvo un ataque de sentido común y decidió quedarse cerca del refugio en lugar de venir con nosotros (un alivio también para nuestras espaldas, porque se quedó encargado de cuidar las tiendas y los sacos).

La ascensión, como siempre, es un coñazo al comienzo. Mucho esfuerzo físico al subir por las morrenas y poca diversión. A mí siempre se me quitan las ganas de continuar por el cansancio muscular, sobre todo cuando pienso que todo lo que estoy ascendiendo lo voy a tener que descender luego, pero por suerte siempre están ahí los colegas arengándome. Me acuerdo mucho de lo que pesa mi cámara réflex y de por qué narices me la habré llevado... al menos sólo me he llevado el Vivitar 28-210mm f3.5-5.6, que a pesar de que no es lo mejor en óptica, es el más versátil que tengo y también muy robusto, por si se lleva alguna sacudida.

Vamos subiendo hasta la portilla del venteadero, donde nos encontramos con más gente que sube a La Galana y algunos que ya bajan. Hacemos una parada para disfrutar de las vistas, picar un poco y echar un trago, aunque el agua ya se nos está acabando y preferimos reservarla. Desde ahí, La Galana está un poco tapada y aún así acojona bastante.

Terminamos de bordear el pequeño pico que tenemos delante hasta llegar a la muesca que lo separa de La Galana. Aquí, una sensación de auténtico riesgo empieza a rondar la cabeza. Es el momento del todo o nada: o te vuelves para el refugio con el rabo entre las piernas o le echas huevos y sigues hasta la cima de La Galana. Al final se impone el "ya que he llegado hasta aquí...".

Esperamos a que se volviese toda la gente que había subido a la cima o que estaba por allí, para evitar congestiones en pasos complicados, que podrían provocar situaciones bastante incómodas. Dejamos las mochilas al otro lado de la muesca y sólo con la cámara de fotos (hija de puta, lo que pesas) y nos pusimos a ello.

A partir de ahí al Figura no paró de temblarle el labio hasta que llegamos arriba (y ahí le siguió temblando). Cuando estábamos llegando al punto complicado, unos de los montañeros con los que nos habíamos cruzado antes, nos dieron a gritos desde abajo indicaciones sobre cómo subir. Se agradece bastante cualquier apoyo, más que nada por saber que hay gente que ya lo ha hecho y que no vas a ser el primer loco que suba y se escoñe por meterse por sitios imposibles.

Al final coronamos y ya nos quedamos tranquilos, pero por poco, porque el descenso suele ser más jodido que la subida.

Sin más incidentes llegamos de vuelta a la base del Ameal de Pablo, donde el Figura y yo nos quitamos las botas y remojamos un rato los pies en la charquita. Paco e Isa sacaron los kikos y nos pusimos a comer. Al poco rato, vemos que se acerca un macho cabrío con unos cuernos bastante imponentes. Suponemos que las intenciones que trae son de picotear lo que se nos caiga o les arrojemos, así que le digo a Paco que para que nos deje tranquilo que les eche unos kikos lejos, porque el Figura y yo estamos descalzos y no nos apetece echarnos a correr por si pretende embestirnos.

Paco se pone a tirar kikos como loco, mientras ve que el cabrón se le acerca. Desesperado ya tira la bolsa y se aleja. Yo me incorporo y le quito la bolsa de delante de los morros al cabrón antes de que empiece a considerarlo como propiedad suya y nos quedemos sin kikos.

Al momento, se unen un par de machos cabríos más y somos testigos a escasos metros de unos pequeños testarazos que se meten entre ellos para ver quién se come los kikos. Mientras tanto, el primer cabrón gorrón parece que está posando para mi cámara de fotos. Cuando nos hemos hartado de hacer fotos a los cabrones seguimos con el descenso, que es más puñetero por el cansancio que ya llevan los cuádriceps encima.

Por fin, sobre las 17:30 pudimos llegar al refugio, donde estaba Francisco esperándonos. Por suerte se lo había montado bien y había estado dando paseos por ahí cerca y hablando con la gente, así que no llegó a aburrirse. Nos habríamos sentido bastante mal los demás si no hubiese sido así...

Nos ponemos a comer como unos posesos, las deliciosas empanadas, tortilla y pan de ajo que ha preparado la madre de Paco, al lado de lo cual los bocatas palidecen por completo. Después, estiramos las esterillas y nos echamos un rato al solecillo, que pega bastante bien.

A las 19:00 nos vamos incorporando, porque el sol se ha puesto detrás del Almanzor y empieza a refrescar cosa mala. Nos abrigamos, recogemos todo y emprendemos el camino de vuelta hasta la plataforma.

Anochece por el camino y a la altura de la primera fuente nos encontramos con otros tan frikis como nosotros, que van hacia la Laguna Grande con linternas y frontales,a repetir nuestra pequeña gesta.

Llegamos a los coches sobre la 21:30. Estamos bastante contentos por el esfuerzo realizado. A pesar de que todo el mundo nos había dicho que a quién se le ocurría hacer esas locuras, nos había salido todo perfectamente sin ningún percance de importancia.

A mi coche le cuesta un poco arrancar después de haber pasado una noche a la intemperie, pero al poco ya está ronroneando como un gatito asmático y rodando hacia Madrid.

martes, septiembre 30, 2008

Sobre las crisis

Hay unas cuantas cosas que llevo queriendo comentar con ocasión del desastre financiero que se supone que tenemos encima, así que ahora que llevo el blog parado desde hace algunas semanas voy a aprovechar.

La primera es en relación a la actitud de los políticos. La balanza económica es principalmente un acto de fe. Realmente la mayor parte de tu dinero no existe, pero como tienes confianza en que está ahí, pues te quedas tranquilo. Por lo tanto, lo que no se debe hacer es crear un clima de inseguridad en la población, o todo se desmorona. Esto me lleva a pensar que en PP hay algún interés en acentuar la crisis, bueno, ya sé que lo hay, es su forma de hacer oposición: sabotear al estado (no al gobierno, sino a todos), para erigirse como salvadores en las siguientes elecciones y llevarse las migajas de lo que quede, tal es su ansia de poder. Yo todavía sigo esperando que nos enseñen esa varita mágica que agitarán para que la crisis desaparezca al instante.

La segunda reflexión es en torno al mercado de valores. La bolsa tiene unos mecanismos muy curiosos, estrechamente relacionados con la teoría de juegos. En el fondo, se parece bastante a un duelo entre varios pistoleros, como en el final de El Bueno, el Feo y el Malo... todos están esperando a que uno haga el primer movimiento y entonces se arma la de FSM. Me explicaré con algo más de claridad: los grandes agentes bursátiles controlan tanto dinero que sus propias actividades influyen en el mecanismo de forma artificial; es decir, que si eres el Puto Amo de la Bolsa (tm) y te pones a comprar alcachofas, de forma automática las alcachofas subirán, por el gran volumen propio y la suma del efecto llamada. Lo mismo si vendes, desplomarás el activo en cuestión. ¿Qué beneficio se le puede sacar a esto? Pues como eres tú el que marca la tendencia, sólo tienes que estar comprando y vendiendo, que los demás te seguirán después, son ellos los que se comen las pérdidas entre el desfase de compra barata y venta cara.

La tercera reflexión es sobre la banca y las aseguradoras. En estos momentos estamos viendo que ni los bancos tienen dinero y las aeguradoras no aseguran una mierda, que al final es el Papá Estado el que tiene que venir al rescate, con el dinero de todos (mientras que los beneficios fueron sólo para unos pocos). Haciendo algo e memoria sobre las teorías del libre mercado, uno siempre escucha que la empresa privada es más eficiente que la pública... pero ¿cuál es el producto de los bancos y las aseguradoras? El dinero. No fabrican una mierda, sólo inflación, no son empresas en el sentido clásico del término (entrada de materiales, procesamiento y salida de producto final, porque la materia prima y el producto final son el mismo). Así que ¿cuál es el motivo por el cuál deben ser privadas? Porque si al final los que respondemos por ellos somos todos los ciudadanos, deberían ser cooperativas públicas (todos nos beneficiamos por igual) desde un primer término.

La cuarta reflexión es sobre cómo se forman las burbujas. Básicamente es porque compramos cosas (cualquier cosa, no sólo casas) sabiendo que estamos pagando más de lo que realmente valen con la confianza en que habrá alguien más gilipollas que nosotros que vendrá luego a pagarnos más todavía. Eso funciona hasta que se acaban los gilipollas. Ahí también tienen la culpa los bancos, que deberían ser el pepito grillo que te dijese "oye mira, no te puedo dar un crédito de 1 millón de euros para ese piso de 30 metros cuadrados en Aldeacipote de Abajo porque es una locura", en lugar de animar a la gente a endeudarse hasta las cejas con tal de llevarse ellos mayores comisiones. Me recuerda en cierto modo al relato de R. L. Stevenson del genio en la botella.

La quinta y última es sobre el sistema económico mundial en general... ¿a nadie le resulta demasiado parecido a un timo piramidal?

En estos momentos me alegro de no tener mucho dinero, porque hay que ver en los líos que te metes en cuanto juntas cuatro perras.

viernes, septiembre 05, 2008

10 de Septiembre de 2008, hora H+1

Vista oral del Juicio Final:
- Ehhhh... pues que nos hemos equivocado de partícula, y hemos acelerado un hadrón encima de un bosón, eh, no, un mesón, no... No sé lo que era. Y lo hemos acelerado y se ha formado una reacción que flipas, ha empezado a salir un agujero negro por ahí... Ha afectado a gente, porque la gente ha sido succionada, y ha habido gente que tenía que ir a trabajar y el coche no tenía potencia suficiente para escapar al horizonte de sucesos... Que vamos, que la hemos liao parda, ¿sabes?
Ahora en serio, ¿qué sorpresas nos deparará el cojoexperimento del LHC en el CERN? por desgracia el 99,9999% de la humanidad (y seguramente me quedo corto) lo más seguro es que nos quedaremos igual que antes, la verdad es que sería tan bonito que después de procesar todos los datos en el Grid, todas las pantallas de los ordenadores de los físicos arrojasen un resultado simple, elegante y esclarecedor que todos pudiésemos entender: 42.

domingo, agosto 31, 2008

Cold puke

Este fin de semana me han pasado un par de cosas bastante fuera de lo normal (bueno, es posible que hayan sido más de dos, pero el caso es que en este momento sólo me acuerdo de esas).

La primera ha sido un encuentro imprevisto con los fans saliendo de fiesta. ¡Qué sensación! ¡Ni John Cobra! Saludé a unos colegas que iban con un par de amigos más y cuando nos presentaron se quedaron con la boca abierta y preguntaron "¿Pero Fortran, el del blog?" y sí, ese soy yo. Nos hicimos las freak'o'fotos de rigor, como las que se hace uno cuando se encuentra con gente como John Cobra, para que el momento pase a la posteridad... a ver si me las mandan y las cuelgo por aquí.

Me alegró mucho que me animasen a seguir publicando más posts marca de la casa, es decir, los escatológicos; que al fin y al cabo a lo largo del día hay momentos para todo, incluso para cagar (aunque algunos vayan por ahí haciendo como que no tienen ano) y eso es algo digno de celebración.

Así que dedicado a esos fantásticos seguidores, aquí va el segundo acontecimiento extraordinario del fin de semana: el vómito frío.

Hace un rato estuve en un buffet libre y yo cuando veo los letreros que dicen "puedes repetir todas las veces que quieras" me lo tomo como un reto. La última vez tuve un pequeño problemilla con la proporción en la ingesta de sólidos y líquidos, fue tremendamente desagradable llegar a casa sediento y con estómago a reventar, con tal desatino que al beber se me infló aún más la comida y acabé teniendo un incidente romano.

Pero esta vez fue algo distinto. Conocedor de esos terribles avatares que acaecen cuando no llevas bien el ritmillo, fui comiendo y bebiendo al unísono. Cuando llegaron los postres, simplemente me dejé llevar. Cogí cinco (por el culo te la hinco) helados de vainilla, los rocié bien con sirope de chocolate y nata y me los zampé, aunque no negaré que el último costó un poco que entrase (quién me iba a decir a mí que comer helado iba a ser un sacrificio).

El resultado de mi heroica proeza fueron unas punzadas en el bajo vientre que no presagiaban nada bueno. Me retiré a los servicios a ver si podía hacer algo de hueco, ya fuese con una ventosidad o un buen par de eructos (que el gas es lo que más ocupa y lo que más fácilmente sale). Incapaz de reducir la presión en mi estómago, tomé la decisión fácil, la de la niña bulímica. Me lavé bien las manos y me puse a tañir la campanilla.

Los movimientos persitálticos inversos no se hicieron esperar mucho y así que por mi boca volvió a fluir el delicioso helado. Y digo delicioso porque intuyo que no llegó a salir del esófago, ya que seguía frío y no tenía ese sabor amargo a jugos gástricos que asociamos a estos excesos. Parecía una máquina de esas que tienen para los cornetos del McDonalds.

El helado en sí era de vainilla, amarillo, pero la mezcla con el sirope de chocolate le confería un tono bastante amarronado, así que imagináos el efecto que hacía en el cagadero. Sólo esa visión fue suficiente para que siguiese echando unas cuantas bolas más y un cacho de pollo tepanyaki rezagado.

Después de todo, me entraron ganas de volver a sentarme en la mesa y volver a ingerir otras nuevas bolas que fuesen a reemplazar a las que había perdido, pero no quise caer en un bucle infinito del siguiente tipo:
while (stomach.get(IceCreamBall.class).size() < 5) {
try {
mouth.eat(new IceCreamBall(Flavour.VANILLA));
}
catch (StorageException e){
stomach.removeAll();
mouth.clean();
}
finally {
burp();
}
}
legs.go(Place.HOME);
brain.sleep();

Así que pagamos y nos fuimos a dar una vueltecilla para que el resto de la comida no emulase a Michael Scoffield.

Ahora voy a ver si le doy salida al resto del material.

lunes, agosto 25, 2008

Cuando la ficción quiere suplantar a la realidad

Hoy estaba viendo la tele un rato y zapeando me he encontrado con un episodio de la serie JAG, esa que parece Juzgado de Guardia pero con militares... Ha sido impresionante ver cómo han utilizado un programa de entretenimiento para hacer propaganda política sobre la invasión de Irak y de paso ridiculizaban al Tribunal de La Haya, tachándoles de corruptos e intrometidos.

Alguna otra vez que pasé unos minutillos viendo algún trozo de episodio de la serie me había preguntado cómo podía una producción cutre para TV tener tanto portaaviones, cazas y demás parafernalia que no parecía de cartón piedra, así que ahí estaba la respuesta: el tío sam ponía la pasta y los medios, a cambio de que le hiciesen una limpieza de imagen en la pequeña pantalla.

No deja de impresionar lo diversificadas que están las técnicas de maquinaria del ejército para cumplir sus objetivos, que pasan desde cargarse a periodistas que graban cosas que no deben, hasta meter su versión de los hechos en culebrones.

Volviendo a un tema de algo más de actualidad, como el reciente accidente del vuelo de Spanair, uno se plantea varias cosas... la primera, ¿cuánto tardarán en sacar el mini-serial o película de bajo presupuesto sobre el accidente del vuelo JK5022 (ya hemos visto el de Biescas, el de Miguel Ángel Blanco, el del 11M, el de El Solitario, algunas cuantas pelis sobre el 11S...)? Porque mucho rollo de autoregulación, sentencias judiciales sobre qué se puede o no se puede emitir, pero al final lo que cuenta es hacer caja, con fotos y videos reales o si no, pues inventados.

Pero el tema de no herir las sensibilidades es bastante jodido, porque cada uno tiene las suyas... parece que hay una gradación del morbo que va, por poner un ejemplo, desde películas bélicas basadas en hechos históricos, como "Enemigo a las Puertas", películas basadas en tragedias reales. como "Viven", y luego que no sabría muy bien cómo catalogar (a lo mejor como "género de sucesos").

Supongo que la diferencia estriba en el grado de control que tienen los protagonistas sobre sus vidas y sus actos. No es lo mismo narrar una historia épica de alguien que lucha por la libertad o contra un entorno adverso e implacable, que la de unos pobres mártires que reciben un tiro en la nunca o vuelan por los aires sin poder hacer absolutamente nada para evitarlo. Las primeras interesan porque sirven de ejemplos de superación, nos hacen ver la fortaleza del ser humano; las segundas son una mezcla entre un programa del corazón sobre las vidas de gente anónima que tuvo la mala suerte de estar en el sitio equivocado en el peor momento y una ejecución en diferido.

Retomando el asunto de cómo afrontan las noticias los medios, me parece que hay una especie de código o acuerdo tácito que les lleva a dar los primeros informes optimistas e ir dejando para después la carnaza (así les cunde más, supongo). Yo todavía no me creo que Miguel Ángel Blanco siguiese respirando cuando lo encontraron con dos tiros en la cabeza. Tampoco me creo que después de ver 4 trenes reventados en hora punta las primeras noticias indiquen que sólo hay heridos. Y me cuesta mucho creer que cuando un avión se convierte en una enorme bola de fuego alguien pueda pensar que es un incidente sin víctimas mortales. Aunque es más probable que sean las llamadas fuentes oficiales las que tienen esa actitud conservadora, para que la gente esté pendiente del televisor en lugar de salir a tomarse la justicia por su mano (como pudo haber pasado en el secuestro y asesinato de M. A. Blanco).

Hay un dato que me resulta curioso que nadie haya asociado todavía (ni como hipótesis remota) con la pérdida de control del aparato: muchos de los pasarejos estaban utilizando sus teléfonos móviles... supongo que cuando piden que se apaguen durante el despegue y el aterrizaje porque pueden interferir con el instrumental de vuelo no es algo arbitrario. Sería una ironía tremendamente macabra que precisamente el hecho de avisar a los familiares de que el avión tenía problemas fuese lo que desencadenase la tragedia. Espero que las causas reales fuesen otras, porque esa explicación sería la peor posible para consolar a los que quieren saber qué causó la pérdida de sus seres queridos...

Resumiendo: no estéis muy receptivos cuando os sentéis a ver la televisión, que la mitad de las cosas que nos cuentan tienen pinta de estar sesgadas y en la otra mitad salen Belén Esteban y Anita Obregón.

jueves, agosto 21, 2008

La diferencia entre tú y yo

Me da igual que te tires 3 días haciendo memoria de todos mis "trapos sucios" (lo pongo entre comillas, porque la mayoría de las cosas son apreciaciones subjetivas de mis intenciones totalmente equivocadas; o directamente fantasías)...

Yo no me avergüenzo de mi pasado. Me da igual si lo publicas en tu blog, si se lo mandas por correo a todos mis amigos o si sale en la primera plana de El País. Es más, me parece encomiable tal esfuerzo biográfico, cualquiera diría que te has pasado tu vida más pendiente de la mía que de la propia tuya. A ver si superas de una vez el complejo de príncipe destronado, que ya te ha dado tiempo en 26 años.

A una persona que no tiene nada que ocultar, no se le puede hacer daño con cosas tan burdas.

Por cierto, queda muy coherente con lo de que tienes mucha clase, sí señor.


Actualización: aquí está el post que retrata lo mala persona que soy, por si a alguien le interesa.

martes, agosto 19, 2008

Diga usted que sí, jefe

He quitado el post anterior a petición de mi madre, porque alguien le fue lloriqueando para que me pidiese que lo retirase (ya que ella ni siquiera conocía mi weblog)...

Me molesta de sobremanera haber tenido que hacerlo, porque como dice mi abuela "quien dice la verdad ni peca ni ofende", y yo no utilizo la mentira para conseguir mis fines, sean cuales sean, pero supongo que hay cosas que no se le pueden negar a una madre.

De todos modos, en cierta manera sobraba, no era necesario que yo moviese ni un dedo, las cosas siempre acaban cayendo por su propio peso.

Ahora yo me voy a disfrutar de la vida, que tengo unos amigos cojonudos que lo darían todo por mí y yo por ellos, una carrera llena de posibilidades sin tener que lamerle el culo a nadie y una novia realmente maravillosa a la que adoro. No necesito envidiarle nada a nadie.

domingo, agosto 10, 2008

Cómo ser borde en 3 lecciones

Creo que últimamente me estoy volviendo demasiado borde... es cierto que es desagradable para las personas que te rodean, pero hay veces que la situación lo requiere y puede ser bastante satisfactorio si lo haces con cierta gracia.

Así que aquí os dejo tres ejemplos que a lo mejor os sirven de utilidad si os veis en situaciones parecidas.

La devolución

El año pasado había comprado un decodificador de TDT en un centro de oportunidades de El Corte Inglés. El cacharro era una porquería y la verdad es que se veía mejor el analógico que el digital, así que volvimos a conectar la antena de toda la vida y dejamos el cacharro apagado, esperando al apagón analógico, cuando no hubiera más remedio que usarlo.

Un día me dio por volver a probarlo y ni siquiera se encendía. Con calma, busqué el embalaje y el recibo y el cacharro estuvo esperando todavía unas cuantas semanas más a que encontrase un momento para llevarlo a devolver.

Cuando tuve un rato, me acerqué al mismo sitio donde lo habíamos comprado, esperé la cola de clientes (las devoluciones se hacían en la misma caja que las compras, vaya cutrerío) y cuando me tocó el turno, le comenté a la cajera que el decodificador no se encendía y le di el recibo. Le dije que me daba igual que me lo cambiasen, que lo enviasen a reparar o que me devolviesen el dinero, lo que les fuese más cómodo a ellos.

Supongo que en ese momento la tía debió pensar que era gilipollas, porque me dijo que la garantía era de 6 meses y que no podían hacer nada. Le respondí que no me tomase el pelo, que los aparatos eléctricos tienen todos por ley 2 años de garantía. Ella me dijo que en los centros de ECI normales sí, pero que eso era el centro de oportunidades y que la ropa tenía nosecuantos días y los electrodomésticos 6 meses. Ahí le dije que me parecía muy bien lo que dijese la empresa, pero que la ley estaba por encima de las políticas internas y que me lo tenían que cambiar o arreglar.

Después de un rato repitiéndome que era un centro de oportunidades, etc. ya me harté y le dije "Mira, ya te he oido la primera vez, la segunda y la tercera, pero es que me da igual, la ley me ampara. Quiero hablar con el encargado". Va y me dice que ella ya le ha preguntado antes y que me dijo que no se podía devolver y que ahora estaba ocupado. "Espero". Al final la tía vuelve a hablar con el encargado y me dice que me hará una tarjeta abono con el importe de la compra. Le digo que me vale.

La tocahuevos del ADSL

Llaman por teléfono y me despiertan de la siesta; me empiezan a contar milongas sobre la velocidad de acceso de mi zona... le digo "la verdad es que estamos contentos con telefónica", y la tía me pregunta, como si me conociese de toda la vida que por qué estábamos contentos. Mi respuesta no pudo ser más tajante "Pues porque, por ejemplo, no nos tocan las narices. Adios." y colgué.

Llevan un par de semanas sin tocarnos más los cojones para que nos cambiemos de proveedor de internet.

El gracioso sin gracia

Estaba yo en mi coche, probando mi nuevo objetivo Tokina 60-300mm, siguiendo con el foco a mi novia que se alejaba, cuando un viejo se me acerca y me dice que si estoy siguiendo a alguien. Le digo "le estoy intentando hacer una foto a mi novia que está por allí ¿le importa mucho?", mientras mascaba chicle con cierto aire chulesco, no lo negaré. Creo que incluso le di demasiada información, pero el caso es que el tío se jiñó bastante y se intentó disculpar, diciendo que no era su intención meterse conmigo... le dije que no era eso lo que se había percibido desde aquí, pero que si no le había interpretado correctamente que me disculpase. El tío me volvió a pedir perdón y se marchó.

La verdad es que con el tema de estar con una cámara de fotos y que te venga alguien a decir algo estoy bastante susceptible, sobre todo si estoy en la calle y dentro de mi coche.



En resumen, que todos sabemos que está feo contestar de forma cortante a la gente, pero si vas como un corderito te pisotean. Creo que la mejor regla es ir siempre de buenas de primeras, pero luego devolver el doble de lo que te dan, si es bueno, no escatimes en cortesía, halagos y educación, si es malo, pues ya sabes también lo que toca.

En otro post contaré cómo ser todo un gentleman en vacaciones y hacer del mundo un lugar un poquito mejor.

martes, agosto 05, 2008

Software y técnicas para los foteros

Como dije en el post anterior, ahora toca hablar de los programillas chulos que no pueden faltar para trabajar con las afotos.

HDR

Ya que tenemos una cámara super-chachi-guay, con la que guardamos las fotos en RAW (porque verdad que lo hacemos, ¿no?), podemos permitirnos el lujazo de trabajar con ese margen extra de 12 bit (más o menos) que nos da nuestro cojoprocesador A/D en lugar de los 8 bit guarruzos del JPG.

Lo más fácil de hacer es ajustar la exposición, es decir, si una foto te sale muy clara o muy oscura, pues sumas o restas luminosidad a los pixels y santas pascuas.

Pero hay momentos en los que una foto tiene partes muy claras y muy oscuras al mismo tiempo; así que si subimos la luminosidad nos cargamos las claras y si la bajamos nos cargamos las oscuras... ¿qué hacemos en estos casos? Pues el HDR Tonemaping viene al rescate.

Os pongo un ejemplo del Templo de Debod para que os hagáis una idea de qué va el tema:


Tonemapping Normal (lineal)
HDR Tonemapping


Sin embargo, el toneado HDR tiene dos problemas: el primero es que la gente abusa mucho (daos una vuelta por flickr) dando un cantazo que no veas y el segundo que hay montones de formas de pasar de una imagen HDR a una LDR, algunos quedan mejor y otros peor, según la foto.

Ahora un poquito de vocabulario, para que no vayamos por ahí haciendo el gilipollas y diciendo tonterías.

HDR significa High Dynamic Range, usease "Alto Rango Dinámico" (o una traducción un poco menos forzada "Rango Dinámico Grande") y se refiere a que la gradación de colores de la imagen es mayor que la que puede ver el ojo humano. Es decir, que tanto la primera como la segunda imagen son LDR (Low Dynamic Range supongo que la traducción ya la intuís) puesto que son JPEGs y ambas dos provienen de una misma imagen HDR (estaba capturada en RAW con mi cámara), la diferencia estriba en cómo se ha hecho el paso del HDR al LDR (lo que se llama el tonemapping).

Si sois unos piratas o unos pijos y usáis el Photoshop os dan mucho por el culo y os buscáis la vida, que seguro que sabéis de sobra. Si sois unos linuxeros (o freebsderos, o solariseros) radikales, entonces coged vuestro gestor de paquetes favorito e instalad el "QtPFSGui"; que es un programita muy cojonudo para hacer estas cosas... el mayor problemilla que le veo es que parece que no se entera muy bien del balance de blancos que tenía la imagen y suelen quedar con un tono verdoso que hay que corregir a posteriori.
ACTUALIZACIÓN (7-8-2008): he comprobado que el problema del color verdoso es por cómo decodifica la imagen RAW (DNG en mi caso) el QtPFSGui, la mejor solución es pasarla previamente a un TIFF de 16 bit por canal, haciendo el balance de blancos adecuado (con RAWStudio o UFRAW, por ejemplo) y abrir ese TIFF en lugar del DNG original.

Panoramas

Como ya vimos en un post anterior, los 18mm de los zooms que vienen con el kit de la cámara son básicamente para vomitar, así que si no nos entra la imagen de una sola toma ¿cuál es la solución? Pues pegar varias juntas.

Las jinchocámaras compactas son un poco más amigables para esta labor, puesto que te suelen sobreimprimir en el visor una guía para que veas por dónde tienes que empalmar la siguiente foto, pero aquí a no ser que tengas una cámara con Live View (es decir, que permita componer la imagen con la pantallita TFT), que digo yo que permitirán hacerlo (aunque la verdad no lo he comprobado), tendrás que hacerlo a ojo (y fíjate bien en que haya zonas de solape, que yo me he quedado más de una vez sin poder pegar 5 fotacas juntas por poquito).

Después o bien lo haces a mano como un auténtico campeón, o le dejas el trabajo duro al ordenador, que para eso te lo has comprado (además de para ver porno).

Un buen programa para estas cosas es el "Hugin". Además, también sirve para hacer correcciones de perspectiva para una sola foto.

Por separadoJuntitas





ACTUALIZACIÓN (8-8-2008): Una cosa que se me olvidaba sobre los panoramas, un detalle a tener en cuenta es que la exposición debe ser homogénea entre las fotos, así que lo ideal es poner la cámara en modo manual, ajustar con el fotómetro para una zona intermedia y usar esos valores para todas las fotos. El enfoque también se puede dejar fijo en modo manual, para que no se note el cambio de nitidez de una imagen a otra, pero eso es menos cantoso...

Toqueteando las imágenes

A veces hay fotos en las que te sobra o te falta algo. Ese es el momento de echar mano del montaje fotográfico, arte dignificado por gente tan ilustre como Stalin.

Creo que a estas alturas de la vida, el Gimp es de sobra conocido por todo el mundo; así que lo único que comentaré sobre él es que está a puntito de caer (dicen que para este otoño) la versión 2.6, que usará el nuevo motor de gestión de imágenes y transformaciones, que entre otras cosas permitirá trabajar (por fin) con canales de color de más de 8 bit de profundidad, que creo que era el principal motivo por el cuál Krita podría ser considerado como alternativa seria. Para los mismos menesteres, un fork de las versiones tempranas del Gimp llamado Cinepaint permite trabajar con los formatos HDR de forma nativa.

La idea es que cuando uno edita las fotos al final no suele utilizar ninguna de las herramientas de dibujo, lo que más se utiliza son las herramientas de selección (la varita mágica, las tijeras, por colores, etc.) para hacer algún retoque concreto sobre alguna zona específica (a lo mejor quitarle el color a toda la imagen excepto a la chaqueta roja de una niña, por ejemplo).

El principal consejo que te puedo dar sin hacer de este post una guía sobre retoque fotográfico es que, si eres novato, aprendas lo antes posible a usar las capas y las máscaras.

Frikadas avanzadas

Hay otras cuantas cosas chulas que se pueden hacer con las fotos para mejorar su calidad, como deconvoluciones para reenfocar imágenes borrosas (yo estuve haciendo pruebas a pelo con el Scilab y se veía todo de culo). Por desgracia, los algoritmos que lo hacen de forma más o menos automatizada están muy en la frontera del estado del arte y no están implementados en paquetes amigables para que los usemos directamente, así que lo más parecido es el plugin "refocus" del Gimp, en el que tendrás que especificar a mano mediante ensayo y error los parámetros.

Si te apetece frikear, tú mismo puedes editar las imágenes toqueteando pixel a pixel con algún toolkit para trabajar con gráficos en tu lenguaje de programación favorito.

Organizando las fotos

Tan importante como las herramientas para editar las fotografías es tenerlas accesibles y organizadas. El primer paso es estructurar bien el sistema de archivos; mendiante un árbol de directorios descriptivo ya se tiene gran parte del asunto resuelto. Aquí cada uno puede tener sus propios gustos y preferencias, organizar un nivel por categorías, otro por fechas, o por lugares... es cuestión de cada uno. Yo tengo en un primer nivel un directorio para cada cámara (el móvil, la compacta, la slr, etc.) y otro para las que me envían los amigos. Después tengo organizadas las fotos por "salidas" o eventos, con la fecha y un título descriptivo como nombre.

Otro tipo de organización también se hace necesario si vamos a editar las fotos, pues es conveniente separar las originales de los productos... yo en mi caso dejo para las originales el nombre del archivo de la cámara y para las editadas les añado algún sufijo descriptivo sobre el proceso realizado (además de que ahora con la SLR las originales son RAW's DNG y las editadas son TIFF, XCF, JPEG, etc.).

Luego está el tema de organizarlas de una forma un poco más orientada al contenido... para eso hay que tirar de software especializado, que nos permita etiquetar las fotos por calidad, gente que sale en ellas, sitio donde han sido tomadas, etc.

Una opción fácil, gratuita y bastante decentilla es Picasa. Tiene algunas cosas muy chulas, como el botón "voy a tener suerte", que suele acertar bastante bien al hacer un balance de blancos y contraste automáticos, además de que no modifica las fotografías (guarda la información sobre los cambios en ficheros "picasa.ini") y en general sirve bien para hacer retoques rápidos. Después de usarlo un rato, se echan en falta algunas cosillas como las etiquetas.

Otra opción que está disponible sólo para los linuxeros es F-Spot, que va bastante bien, aunque me toca un poco las narices su manía de ponerse a copiar las fotos a su carpeta propia antes de preguntar...

Por último, una muy prometedora opción, que no sé yo si algún día acabará de despegar, es Bluemarine, que está desarrollado en Java sobre la plataforma del NetBeans y parece que será la opción más avanzada y potente (para cuando lo terminen).

viernes, julio 25, 2008

El melenas de Cifras y Letras no tenía ni puta idea

Siempre habíamos sospechado que el tío del pelo canoso, largo y grasiento miraba las soluciones a la prueba de las letras en el ordenador, pero ¿cómo es el programa que busca todos los anagramas de los subconjuntos de las letras dadas?

Pues ayer* me dio por programarlo y es una gilipollez. La parte más complicada es obtener el lemario, que manda cojones que para el inglés, que no tiene ningún organismo normativo, sea extremadamente fácil encontrar una lista muy completa de palabras inglesas y para el español lo más parecido que hay sea el COES que, sin ánimo de ofender a sus autores (según me dijo uno de ellos pringaron como unos campeones sin recibir ninguna ayuda de la RAE), es bastante deficiente.

Volviendo al asunto principal, aquí os dejo el programilla en Python que no es muy eficiente en memoria (para un fichero con 109230 palabras, de 1.2MB, la imagen del proceso son 36MB), pero que una vez cargado (el archivo de 1.2MB tarda unos 9 segundos en mi ordenador nuevo) las consultas son prácticamente instantáneas (¡olé mi rigurosidad midiendo tiempos! la verdad es que estoy bastante hasta los huevos de hacer experimentos cambiando parámetros y luego sacar gráficas, así que si yo digo que son instantáneas, es que lo son xD).


import time
import sys
alpha_chars = filter(lambda x: x.isalpha(), map(chr, range(256)))

"""
quita los elementos con multiplicidad cero de la lista l, cuyos
elementos son tuplas del tipo (n, k)
"""
def remove_zeros(l): return filter(lambda x: x[0] > 0, l)

"""
l es una lista de tuplas del tipo (n, k) donde n es el numero de veces
que aparece el elemento k
"""
def subsets(l):
if l:
(n, k), t = l[0], l[1:]
for i in range(n+1):
for j in subsets(t):
yield remove_zeros( [(i,k)] + j )
else:
yield []

"""
ordena las combinaciones, de menor a mayor numero de elementos
"""
def sort_subsets(cl):
def put_size(nkl): return sum(map(lambda x: x[0], nkl)), nkl
keylist = map(put_size, cl)
keylist.sort()
return map(lambda x: x[1], keylist)

"""
devuelve el string s como una lista de tuplas (n, k), siendo k las
letras por orden alfabetico y n el numero de veces que aparecen
"""
def normalize(s):
s = s.lower()
return remove_zeros(map(lambda x: (s.count(x), x), alpha_chars))

"""
crea un diccionario inverso, con las claves las palabras normalizada y
los valores una lista de las palabras validas
"""
def make_dict(f):
d = {}
for i in f:
i = i.strip()
norm = str(normalize(i)) #la clave no puede ser una lista
if norm not in d:
d[norm] = []
d[norm].append(i)
return d
"""
devuelve todos los anagramas y subanagramas de la palabra s que haya en el diccionaro d
"""
def get_anagrams(d, s):
sssns = sort_subsets(subsets(normalize(s)))
def getif(x):
if x in d:
return d[x]
else:
return []
return filter(None, reduce(lambda x, y: x+y, map(lambda x: getif(str(x)), sssns), []))

"""
El primer argumento es el nombre del fichero con la lista de palabras, despues lee las letras por la entrada estandar
"""
def main():
fdict= file(sys.argv[1])
t1 = time.time()
print "making dictionary..."
d = make_dict(fdict)
print "ready!"
t2 = time.time()
print "took", t2-t1, "seconds"
dict_stats(d)
print ">>" ,
line = sys.stdin.readline()
while line:
print ", ".join(get_anagrams(d, line.strip()))
print ">>",
line = sys.stdin.readline()
main()


Pues eso, regocijaos con la elegancia y el poder de Python. ¡Te alabamos, oh, Guido Van Rossum!

De todos modos, el tema del rendimiento al construir el diccionario me tenía algo preocupado, no lucía nada... así que me puse a optimizar. Primera opción: meter el optimizador JIT para Python Pysco. En teoría es la repolla, para código algorítmico tienes incrementos del rendimiento de hasta un 100x, aunque lo normal está en torno a 4x. Pues ĺa primera decepción es que no funciona para AMD64 (si es que todavía no estámos preparados :-s). Después lo probé en el ordenador de mi despacho y me llevé la segunda decepción: iba más lento. Bastante más lento.

Había que optimizar a mano, así que me lancé a por la tercera opción: paralelizar con threads. Estos son los cambios que introduje (el resto igual):

import threading

def split_seq(seq, size):
newseq = []
splitsize = 1.0/size*len(seq)
for i in range(size):
newseq.append(seq[int(round(i*splitsize)):int(round((i+1)*splitsize))])
return newseq

def merge_dicts(dlist):
d = {}
for i in dlist:
for k in i:
if k not in d:
d[k] = []
d[k] += i[k]
return d

def get_nprocs():
count = 0
try:
lines = file("/proc/cpuinfo").readlines() #solo funciona en unixes
except:
lines = []
for i in lines:
if "processor" in i:
count += 1
return count

class ParallelMakeDict (threading.Thread):
def __init__(self, lines):
threading.Thread.__init__(self)
self.lines = lines

def run(self):
self.d = make_dict(lines)

"""
El primer argumento es el nombre del fichero con la lista de palabras, despues lee las letras
por la entrada estandar
"""
def main():
fdict= file(sys.argv[1])
nthreads= get_nprocs()
t1 = time.time()
print "making dictionary..."
lines = fdict.readlines()
print "words loaded"
print "splitting list and creating threads"
threadlist = map(ParallelMakeDict, split_seq(lines, nthreads))
print "threads created"
for i in threadlist:
i.start()
print "thread running"
for i in threadlist:
i.join()
print "thread joined"
print "merging"
d = merge_dicts(map(lambda x: x.d, threadlist))
print "ready!"
t2 = time.time()
print "took", t2-t1, "seconds"
print ">>" ,
line = sys.stdin.readline()
while line:
print ", ".join(get_anagrams(d, line.strip()))
print ">>",
line = sys.stdin.readline()

main()

¿Mejoraba el rendimiento? Qué va, también iba más lento que la versión secuencial... le eché un vistazo al monitor del sistema mientras construía el diccionario y las barritas iban alternando el 100% de ocupación entre un procesador y el otro, pero nunca se ponían al 100% los dos a la vez. Algo me decía que los threads de Python tenían un problemilla... hice alguna búsqueda y efectivamente, no van muy bien para paralelizar cómputo por cuestiones de cómo están programados los cerrojos del intérprete, así que su mayor utilidad es para hacer servidores que puedan despachar multiples peticiones mientras otras esperan a la E/S en sistemas monoprocesador.

Ya sí que estaba a punto mosquearme... la siguiente opción era buscar algo más serio, como MPI, pero por suerte encontré exactamente lo que estaba buscando, una librería muy "pythónica" para hacer computación paralela con memoria compartida y clusters: Parallel Python.

Le eché un vistazo al tutorial y en seguida tenía la nueva versión, que consistía en introducir los siguientes cambios (sobre la de threads, quitando la clase del thread):

import pp
"""
def normalize_no_globals(s, chars):
s = s.lower()
return remove_zeros(map(lambda x: (s.count(x), x), chars))

def make_dict_no_globals(f, chars):
d = {}
for i in f:
i = i.strip()
norm = str(normalize_no_globals(i, chars)) #la clave no puede ser una lista
if norm not in d:
d[norm] = []
d[norm].append(i)
return d

def main():
fdict= file(sys.argv[1])
nthreads= get_nprocs()
t1 = time.time()
print "making dictionary..."
lines = fdict.readlines()
print "words loaded"
print "splitting list and creating threads"
job_server = pp.Server()
fdeps = (normalize_no_globals, remove_zeros)
jobs = [job_server.submit(make_dict_no_globals, (x, alpha_chars),fdeps,tuple()) for x in split_seq(lines, nthreads)]
print "threads created"
d = merge_dicts(map(lambda x: x(), jobs))
print "ready!"
t2 = time.time()
print "took", t2-t1, "seconds"
print ">>" ,
line = sys.stdin.readline()
while line:
print ", ".join(get_anagrams(d, line.strip()))
print ">>",
line = sys.stdin.readline()
main()

¡Ahora sí que se notaba el speedup! El diccionario que antes tardaba unos 9 segundos en construirse ahora tardaba sólo 6, un 33% de aceleración, no estaba mal. La verdad es que me he quedado con las ganas de probarlo en los dos nodos con 16 cores cada uno que tenemos en la Universidad, pero es que el Parallel Python no tiene opción de instalar en local para un único usuario y no me apetecía molestar al administrador y ni ponerme a instalar yo los módulos a mano...

Mientras investigaba con la versión paralela, me dio por reimplementarlo en Java a ver si iba más rapidillo o más lento. Después de escribir 4 o 5 clases (una para las tuplas caracter-número de veces que aparece; otra para las palabras normalizadas, un par más anónimas para los Iterator de subconjuntos, otra para el Main...) me di cuenta de una cosa: Java se ha vuelto para mí un coñazo insoportable.

Así que tras la frustración inicial de intentar portar el elegante y conciso código en Python al tedioso y aburrido Java, decidí hacer un poco de gimnasia mental y pasarlo a un lenguaje del que ya había hablado en los comentarios del post sobre lenguajes para listos y lenguajes para tontos: OCaml.

He intentado mantener el estilo puramente funcional en todo lo que me ha sido posible (excepto en la tabla del diccionario y en la entrada/salida, claro) y la verdad es que se me escapa alguna sonrisita al recordar a mi profesor Paradigmas de Programación diciendo que la programación funcional es la hostia de legible (sobre todo en LISP :-p), como Joyce, no te jode xD. Tampoco quiero desmerecer, creo que programar este tipo de algoritmos es mucho más fácil en un lenguaje con características funcionales que en uno totalmente imperativo; y también es más fácil verificar formalmente que hace lo que se supone que tiene que hacer, pero si no sabes de antemano qué es, resulta bastante complicadillo hacer ingeniería inversa sobre el código. Yo ahora mismo sería incapaz de descifrar qué hacen algunas funciones que escribí ayer si no fuese porque he puesto comentarios.

El código resultante tras una tarde y un ratillo de una noche estrujándome un poco las neuronas (traducir de un lenguaje a otro no siempre es tan directo como nos gustaría, echadle un vistazo las 3 funciones necesarias para generar los subconjuntos), el código resultante en OCaml es este:

(* de una lista de tuplas (c,n) quita las que tienen n = 0 *)
let remove_zeros l =
let f x =
match x with
_, 0 -> false
|_,_ -> true
in
List.filter f l

(* devuelve una lista que contiene listas formadas a partir de la
concatenacion de todos los elementos de la primera lista con la segunda *)
let cat_lh_l a b =
let rec priv_cat_lh_l acc rest_a =
match rest_a with
[] -> acc
| h::t -> priv_cat_lh_l ((h::b)::acc) t
in
priv_cat_lh_l [] a

(* devuelve una lista que contiene las listas formadas a partir de la
concatenacion de todos los elementos de la primera lista con todas las
listas contenidas en la segunda*)
let cat_lh_llh a b =
let rec priv_cat_lh_llh acc rest_b =
match rest_b with
[] -> acc
| h::t -> priv_cat_lh_llh ((cat_lh_l a h)@acc) t
in
priv_cat_lh_llh [] b


(* genera todo el rango de tuplas (c,n) con multiplicidad de c desde n hasta 0 *)
let make_range (c, n) =
let rec priv_make_range acc m =
match m with
-1 -> acc
| _ -> priv_make_range ((c,m)::acc) (m - 1)
in
priv_make_range [] n

(* devuelve true si la lista no esta vacia, false de lo contrario *)
let not_empty x =
match x with
[] -> false
| _ -> true

(* devuelve todos los subconjuntos validos de una lista de tuplas (c, n) *)
let subsets l =
let rec priv_subsets l =
match l with
[] -> [[]]
| h::t -> cat_lh_llh (make_range h) (priv_subsets t)
in
List.filter not_empty (List.map remove_zeros (priv_subsets l))

(* devuelve una lista de letras desde first hasta last *)
let make_charlist first last =
let rec priv_make_charlist l c =
match c with
d when d == first -> (c,0)::l
| _ -> priv_make_charlist ((c,0)::l) (Char.chr ((Char.code c)-1))
in
priv_make_charlist [] last

(* devuelve una nueva lista de tuplas (c,n) en la que las tuplas con c
== k tienen n incrementado en 1 *)
let inc_charlist lcn k =
let f (c, n) =
match c with
d when d == k -> (c, n+1)
| _ -> (c, n)
in
List.map f lcn


let lowletters = make_charlist 'a' 'z'

(* devuelve la forma normalizada, como lista de tuplas (c,n) en minusculas, de un string *)
let normalize s =
let slc = String.lowercase s
in
let rec priv_normalize l i =
match i with
-1 -> l
| _ -> priv_normalize (inc_charlist l slc.[i]) (i-1)
in
remove_zeros (priv_normalize lowletters ((String.length s)-1))

(* devuelve el diccionario construido con las palabras del fichero *)
let make_dict fname =
let dict = Hashtbl.create 262144
in
let cin = open_in fname
in
let freadline _ =
try Some (input_line cin)
with End_of_file -> None
in
let lines = Stream.from freadline
in
let add_entry s =
Hashtbl.add dict (normalize s) s
in
Stream.iter add_entry lines;
close_in cin;
dict


(* devuelve todos los anagramas y subanagramas que hay en el
diccionario para la palabra pasada por parametro*)
let get_anagrams dict word =
let rec priv_get_anagrams acc rest =
match rest with
[] -> acc
| h::t -> priv_get_anagrams (acc @ (Hashtbl.find_all dict h)) t
in
let cmp a b =
(List.length a) - (List.length b)
in
priv_get_anagrams [] (List.sort cmp (subsets (normalize word)))

(* El argumento por parametros es el nombre del fichero de palabras,
luego lee de la entrada estandar *)
let main =
print_endline "making_dictionary";
let dict = make_dict Sys.argv.(1)
in
let rec loop _ =
try
print_string ">>";
print_endline (String.concat ", " (get_anagrams dict (read_line ())));
loop ()
with
End_of_file -> true
in
loop ()

let _ = main


Cosas que me han gustado de OCaml después de este programilla de tamaño pequeño y complejidad media:
  • El pattern matching mola, aunque no lo he llegado a explotar al máximo porque en este programa no era necesario (combinarlo con los tipos variantes es ya la leche).
  • La inferencia de tipos es como ir a una playa nudista, al principio te sientes incómodo e inseguro, pero luego te das cuenta de que es de lo más natural y te hace sentir más ligero.
  • Escribir funciones grandes es bastante feo, así que te fuerza a hacer el código muy modular.
El principal problema que le veo es que he tardado demasiado (el doble que en Python, y eso que tenía el otro como plantilla), pero claro, es normal teniendo en cuenta que es el segundo programa en OCaml que escribo (y el primero fue una gilipollez enorme y encima hace casi un año). La sensación de ser un pez fuera del agua tampoco me la he conseguido quitar del todo, todavía no me siento suficientemente suelto con OCaml y siento que hay algo perverso en él que está esperando para joderme en cuanto decida usarlo para algún proyecto mediano-grande. Este artículo confirma en parte mis miedos: OCaml Sucks.

Bueno, vamos al tema del rendimiento, que era al fin y al cabo por lo que me puse a transcribir el código de Python a OCaml (que dicen que es casi tan rápido como C bien escrito).

Primero lo probé con el intérprete y el compilador a bytecode (ocamlc) y cargando el diccionario de siempre (de 1.2MB) tardaba lo mismo que Python, unos 9 segundos. Pues vaya mierda de optimización para tanto curro.

Después me acordé de que hay un compilador optimizador que genera código nativo (ocamlopt), así que me decidí a probarlo. Resultado: tarda en cargar el diccionario cerca de 1 segundo. Ahora sí, ni Python en paralelo ni pollas.

Pero como con todo, recibí una de cal y otra de arena; en el tiempo de consulta la situación se invierte. En las palabras cortas es despreciable tanto en Python como en OCaml, pero cuando crece la longitud, se nota mucho que el programa en Python usa generadores perezosos y que el que está escrito en OCaml está construyendo y aplanando un árbol en memoria. Para la palabra "ljegogjfglafsdshak" el programa en Python tarda unos 2 segundos en mostrar todos los anagramas y subanamgramas y el de OCaml tarda la friolera de unos 35 segundos (seguro que también se puede usar evaluación perezosa en OCaml y que los tiempos se igualarían, pero ya me parecía que tardaría demasiado mirándolo).

Conclusión: yo qué sé, si había empezado antesdeayer hablando del melenas de Cifras y Letras y he terminado con 4 versiones del mismo programa. Bueno, voy a intentar decir algo coherente. Lo más interesante ha sido poner a prueba un par de lenguajes que desde el punto de vista de diseño y funcionamento son bastante antagónicos (tipado estático vs tipado dinámico, interpretado vs compilado), pero ambos son de muy alto nivel (gestión automática de memoria, multiparadigma).

El resultado en ambos ha sido que el tiempo de desarrollo ha sido rápido (más en Python por mi trasfondo pythonero), tanto que ahora mismo no me veo capaz de aguantar el coñazo que supondría hacerlo en un lenguaje que no tuviese como tipos built-in listas, diccionarios, funciones de orden superior y gestión automática de memoria. Otros posibles candidatos para implentar un código parecido serían Erlang (creo que este programa se podría traducir literalmente desde OCaml), Lisp o a lo mejor Ruby, si es que un día consigo quitarme la aversión que siento hacia él.

En cuanto al rendimiento, está contenido dentro de unos límites prácticos, si bien el programa en OCaml era mucho más rápido inicialmente, no escala demasiado bien para consultas grandes, lo cuál nos lleva a una máxima que muchos "entendidillos" se empeñan en ignorar (esos que dicen que ciertos lenguajes son lentos y que hay que programar siempre en C y C++): lo que importa es la idoneidad del algoritmo y de las estructuras de datos utilizadas. Utilizar un "lenguaje eficiente" normalmente lo que hace es enmascarar ineficiencias en el diseño (p.e. "como tardo demasiado en programar una tabla hash, pues me hago un array de estructuras clave-valor y busco secuencialmente, que total, como C es muy rápido, no pasa nada.").


¿Quién se anima a hacer su versión en algún otro lenguaje? Si alguien tiene huevos a hacerlo en Java, C o similar, que me diga cuántas líneas le ha ocupado (con un estilo normal, sin hacer el marrullero) y cuánto tiempo le ha llevado programarlo. Probablemente más que todas las versiones que he hecho yo aquí.

Los freaks de Perl estoy seguro de que pueden hacerlo en una sola línea.

*Ese ayer se refiere al día antes de empezar a escribir el post, no de cuando lo he publicado.