1. Me gusta ver el telediario por la mañana. Evidentemente, no sirve para estar informado. Lo que te ofrece es la oportunidad de asomarte fugazmente a otro mundo, a una realidad alternativa, distorsionada, siniestra a veces, similar a la que conoces pero en la cual, donde menos te lo esperas, salta la liebre mutante (por favor, tatarear aquí la cancioncilla de "En los límites de la realidad", que la SGAE no me deja poner el mp3).

    Por ejemplo, hoy, 30 de agosto de 2006:

    • Declaraciones de Mariano Rajoy, sobre el envío de tropas españolas al Líbano: "La operación [...] mete a España en el peor escenario bélico internacional que hay en este momento". Mariano, tu lo flipas. No se lo que estás tomando, pero déjalo inmediatamente y consulta con tu equipo médico habitual. Y tranquilo, que la amnesia traumática es, en la mayoría de los casos, transitoria. Tu sigue mirando fijamente esa foto en Las Azores.

    • Mundial de baloncesto. Después de ignorar durante semanas al equipo español, que están dejándose los higadillos en el mundial, en Informativos telecinco se ven en el brete de no poder seguir ninguneándolos; han llegado a semifinales, los muy cabrones. Hay que hablar de ellos en el telediario, sí o sí. ¿Qué sacamos? Está claro, opiniones de un futbolista sobre el mundial de baloncesto. Con dos. Por fin he entendido la expresión "pa mear y no echar gota" (Que conste que no tengo nada en contra de los futbolistas, tengo muy claro que Fernando Torres es un friki).

    • Exceso de velocidad en la carretera. En pantalla vemos una tremenda carretera de varias vías (Aquí no dudaríamos en calificarla de "autopista"), situada más o menos por donde Doraemon perdió los calzones, y sin una sola curva a la vista. Una voz en off nos informa de que la mayoría de los coches van a una velocidad muy superior a la autorizada, mientras vemos a los picoletos (Dicho sea cariñosamente) inflarse a poner multas. "Sólo los que vayan a mucha velocidad serán parados y multados en persona, a los demás se les notificará por correo", nos informa amablemente el periodista. Un breve plano de la señal nos indica la velocidad máxima permitida: 60 Km/hora. ¿60 Km/hora?. La noticia, pedazo de ganso, es otra: "Tramo de carretera incorrectamente señalizado".


    ¿Ven lo que quiero decir? ¿Cómo puede competir cuarto mierdenio con esto?


    twilight-zone
    6

    Ver comentarios

  2. Hace mucho tiempo, en el blog del paleofreak, se publicaba una bonita historia, La escala evolutiva, ilustrada con un diagrama que, a falta de mejor título, llamaré "El ornitorrinco, cumbre de la evolución". En los comentarios, alguien pedía permiso al dueño para hacerse una camiseta con tan inspirador dibujo:

    Ha llevado algo de tiempo, pero ha valido la pena:


    camiseta-4
    Camiseta "El ornitorrinco, cumbre de la evolución" (Tal y como se reveló en el blog del paleofreak)


    No se que pasa, que siempre salgo con la misma cara en las fotos.

    Una vista en detalle (tuve que rehacer el dibujo, porque la imagen original no tenía la suficiente resolución):

    ornitorrinco-cumbre-de-la-evolucion

    ¡Gracias, paleofreak!
    2

    Ver comentarios

  3. Funciones Parciales (PEP 309)



    Hay un nuevo múdulo, functools, que contiene varias utilidades para la programación funcional.

    Una herramienta útil de este nuevo módulo es la función partial(). En programación funcional, a veces se necesita construir variantes de una misma funcion, con el valor de uno o más parámetros ajustados a un valor predeterminado. Por ejemplo, si tenemos una función f, que espera tres parámetros a, b y c, tal que así: f(a,b,c), podríamos definir una nueva función g, con sólo dos parámetros, b y c, fijando un valor específico para el parámetro a en 1, por ejemplo. El resultado de llamar a g(b, c) sería equivalente al de llamar a f(1, b, c). Esta idea se basa en el concepto matemático de las funciones parciales.

    Los parámetros de la función partial son los siguientes: function, arg1, arg2, ... kwarg1=value1, kwarg2=value2). El objeto resultante se puede llamar como si fuera una función (Lo que en python se conoce como callable). Llamar a este objeto es equivalente a llamar a la función original, con los parámetros indicados ajustados a los valores deseados.

    A continuación un ejemplo, simplificado pero realista:

    import functools

    def log (mensaje, subsistema):
    """Escribe el contenido de mensaje en el subsistema indicado.
    """
    print '%s: %s' % (subsistema, mensaje)

    server_log = functools.partial(log, subsistema='servidor')
    server_log('Unable to open socket')


    Otra función dentro de este módulo es update_wrapper(wrapper, wrapped), que facilita la escritura de decoradores. La función copia el nombre, el módulo y la docstring de la función recubierta (wrapped) a la función recubridora (wrapper), de forma que la información incluida en la traza resultante en caso de errores sea más fácil de entender. Por ejemplo, se puede escribir:

    def mi_decorador(f):
    def wrapper(*args, **kwds):
    print 'Llamando a la función original, f'
    return f(*args, **kwds)
    functools.update_wrapper(wrapper, f)
    return wrapper


    El decorador wraps se puede usar dentro de otros decoradores para copiar la información de la función decorada. Una versión alternativa del ejemplo anterior sería:

    def mi_decorator(f):
    @functools.wraps(f)
    def wrapper(*args, **kwds):
    print 'Llamando a la función original, f'
    return f(*args, **kwds)
    return wrapper


    ¡Sagrado Doraemon! ¡Has conseguido leer todo lo anterior sin desfallecer! Santo varón, descansa la vista con este magnifico video ilustrativo de las diferencias entre los recubrimentos (wrappers) y las serpientes (python):



    Satánico Pandemonium ¡Chúpate esta, Java!



    Más información sobre las novedades en Python 2.5

    4

    Ver comentarios

  4. Cada vez que me encuentro encabronado o de muy mala leche [nótese la sutil diferencia], entro en una espiral autodestructiva de mal rollo de la que me cuesta mucho salir, vamos que no salgo, me sacan.

    Pero hace tiempo leí que alguien [no recuerdo quién] usaba un curioso método, ver “Una noche en la opera”. Parece ser que esa información aunque pudiera parecer superflua se alojó en algún recóndito lugar de mi coco, y hoy he visto la película, que por intervención divina obraba en mi poder.

    Los que no conozcan la película, pueden dejar de leer este post, o si lo desean pillarla en ese famoso videoclub del que somos socios unos cuantos.

    Para los que la hayan visto, tranquilos, tampoco me voy a meter a analizarla en plan sesudo, fumando en pipa como tertuliano en programa de Garci, seguro que hay críticas estupendas de la película por ahí.

    Lo que quieto contar son las sensaciones que me ha proporcionado, después de comprobar que efectivamente quita el encabrone y la mala leche, me he dado cuenta de que además tiene un principio activo tan contundente como demoledor, el absurdo.

    Siempre que la he visto me he preparado mentalmente, para una dosis de risa, pero la risa es la consecuencia del absurdo, un absurdo que se plantea desde el principio con una simplicidad deliciosa.

    Por esa razón cuando la risa cesa, lo que queda es el buen sabor de boca, el buen rollo, por esa razón la película que tiene tropecientos años sigue funcionando perfectamente, no se si me explico, no se si me sigue usted, pero como no deje de hacerlo llamaré a la policía.

    Una_Noche_en_la_Opera
    3

    Ver comentarios

  5. Voy a iniciar una serie de entradas destacando las novedades que incluye la nueva versión 2.5 de Python. Consistirán en traducciones parciales del texto de Andrew Kuchling, que se puede consultar en What's New in Python 2.5. Atención: las traducciones no serán ni exactas, ni completas, y posiblemente se quedarán muchas cosas en el tintero. A quejarse al monte.

    Para el que no le interesen estos temas, todas estas entradas empezarán con la leyenda "[Python 2.5]", así las pueden mandar a freír espárragos más fácilmente.

    A medida que vaya publicando las entradas, iré modificando el índice para enlazar las nuevas incorporaciones:



    Expresiones condicionales(PEP 308)


    Durante mucho tiempo se ha pedido incluir una manera de escribir sentencias condicionales, que son expresiones que retornan un valor A o un valor B, dependiendo de un tercer valor booleano, C. De esta forma, es posible expresar en una sola línea el equivalente al siguiente código:

    if condición:
    x = valor_si_verdad
    else:
    x = valor_si_falso


    Ha habido un largo y tedioso debate sobre la sintaxis a utilizar, tanto en la lista python-dev como en comp.lang.python. Estaba claro que la mayoría quería sentencias condicionales, pero no había una sintaxis que fuera claramente favorita. Las opciones incluían, entre otras 16 variantes, una muy similar a la usada en C y derivados:

    x = condición ? valor_si_verdad : valor_si_falso


    Finalmente, Guido van Rossum se decantó por una alternativa diferente:

    x = valor_si_verdad if condición else valor_si_falso


    La sintaxis puede parecer extraña y enrevesada ¿Por qué la expresión condicional va en el medio, en vez de al principio, como en C? La decisión se tomó aplicando la nueva construcción al código de la librería estándar, y comprobando su efecto en la legibilidad del código. Se descubrió que, en la mayoría de los casos, un valor parecía ser el caso habitual, mientras que el otro era el caso excepcional, usado en raras ocasiones, cuando la condición no se cumplía. La sintaxis pretende destacar ese patrón de uso, por ejemplo:

    contents = '[' + doc + ']' if doc else ''


    La sentencia anterior se leería: "la variable contents normalmente vale lo que valga la variable doc, pero entre corchetes. No obstante, en algunos casos la variable doc está vacía; en este caso especial, contents será también una cadena vacía".

    También se ha discutido extensamente sobre la conveniencia de que el lenguaje obligue a rodear las expresiones condicionales con paréntesis. La decisión final ha sido dejarlos como opcionales.

    De lo cual, me congratulo. Odio los paréntesis.
    1

    Ver comentarios

  6. Soy un gilipollas, si, hoy me he dado cuenta, alguien diría “ya era hora”, pero yo prefiero pensar “mejor tarde que nunca”, aunque todo es relativo, porque el reconocimiento de mi gilipollez no lleva necesariamente implícito que vaya a terminar con ella, es más, me temo que seguiré igual, como dice un colega “sospecho”, pues eso, sospecho que seguiré igual de tontoelculo.

    En este párrafo segundo, el siguiente al de la declaración de mi incompetencia, y según el guión típico y usando unos cuantos tópicos tendría que detallar una virtud, una que me disculpara por mi estupidez, pero no, paso de ese rollo, lo he visto demasiadas veces, yo me pegaré el rollo en el tercer párrafo, haciendo todo un alarde de originalidad que me congratulará conmigo mismo.

    Hoy me he dado cuenta, de que las emociones que sentimos, se dictan por la sociedad, al menos se dicta el tiempo en el que debemos sentirlas, en concreto en navidades y en verano debemos ser felices, obligado, y en caso contrario debes gastarte tu dinero en que parezca que eres feliz, porque al fin y al cabo si no lo eres siempre te queda el consuelo de aparentarlo, que en muchos casos es casi más importante.

    No es momento de hablar de las navidades, pero siempre que pienso en ellas rezo a doraemon en que no duren mucho, porque son agotadoras.

    El verano está muy bien, en primera instancia porque descansas del curro, en el caso de que cambies de aires pues mejor, cambias la rutina de tu vida, ir a la playita todos los días, ponerte moreno, beber y comer más de la cuenta, reencontrarte con los amigos del verano, todo muy chulo o no.

    Al menos yo, no he podido discernir por mi mismo si todo eso me gusta o no, desde que recuerdo oigo hablar sobre eso, y sobre lo bien que sienta y todo el pastel, pero coño quizás no sea tan enrollado ir a la playa todos los días, quizás no sea tan guay pegarse un viaje del carajo e ir con álbum de fotos debajo del brazo dándole la brasa a todo el mundo, quizás hace demasiado calor, y los mosquitos te estén dando el coñazo todo el verano, quizás te das cuenta que te estás bebiendo litros y litros de alcohol con pseudo-amigos, para hacer más soportable el trance.

    El tópico que más me llama la atención es el de que desaparecen las rutinas, es mentira, se sustituyen unas por otras, y no necesariamente tienen que ser mejores la del verano.

    Lo reconozco estoy hastaloscojones del verano, tengo ganas de volver, a mi casa, a mi ciudad, a mi rollo, al curro no (gilipollas si, pero no tanto). Luego llega el shock el que conlleva volver a las rutinas anteriores, de un día para otro.

    Por eso este verano he decido conscientemente no ser feliz, y lo he conseguido, lo cual me ha resultado altamente dignificante, además tengo el propósito de ser feliz justo CMDLRG*.

    En conclusión, termino como empecé, pero a mi manera.

    Soy un gilipollas.

    * CMDLRG = Cuando me de la real gana.
    6

    Ver comentarios

  7. Liberada la primera versión de Python 2.5. Sigue sin ser recomendable pasarla a producción, porque el objetivo es que ayude a recabar información tanto sobre posibles errores como de las dificultades que se pudiera encontrar al adaptar código ya existente. Como sabemos los que llevamos un tiempo trabajando con Python, estas dificultadas suelen ser mínimas. Se supone que a finales de septiembre saldrá una versión final ya utilizable en producción.

    A ver si tengo tiempo y hago una pequeña entrada sobre las mejoras introducidas.

    Nada más que ver por aquí. Esta vez no tengo ni chiste.

    Bueno, si:


    - Suegra, ¿usted cree en la reencarnación?
    - Claro que si.
    - ¿En qué animal le gustaría reencarnarse?
    - Pues a mi siempre me han gustado las serpientes.
    - ¡No vale repetir, no vale repetir!
    2

    Ver comentarios

  8. Seguimos con la transcripción del guión perdido de House. Para los que hayan llegado tarde, House tiene que curar a un paciente, pero no es un paciente cualquiera, es el Gobierno de Canarias. Todo él. Más detalles en House y el paciente maldito bastardo (1). No sé bien porqué, me ha parecido apropiado publicarlo ahora.

    (En el último episodio, el equipo médico había conseguido salvarle de una crisis presupuestaria a base de inyecciones de capital europeo y cataplasmas de impuestos aduaneros)

    Cameron: House, el paciente ha sufrido un atasco circulatorio, pero parece que los calores de agosto han aliviado momentáneamente la situación. Lo extraño es lo que muestran las nuevas radiografías que hemos encargado a otra empresa, especializada en el sector.

    (Cameron se planta ante la pantalla, mostrando las radiografías antiguas al lado de las nuevas. Se aprecian, incluso sin entrar en detalle, diferencias significativas. Cameron explica los hallazgos visiblemente emocionada; mientras explica las diferencias gesticula y señala las manchas correspondientes.)

    Cameron: Las radiografías mostraban varios tumores: desde papilomas hasta sarcosomas, por toda la superficie del paciente y especialmente en las costas. Pero las nuevas radiografías muestran una clara remisión. Muchos de los abscesos han desaparecido ¡Cómo si nunca hubieran estado allí! Sólo cabe una explicación ¡Milagro!

    (House termina de comerse una manzana, busca la papelera y tira el corazón)

    House: ¡O quizás quepa otra! ¡Chapuza! ¿Quién hizo las nuevas radiografías?

    Cameron: Deja que mire la letra pequeña ... "radiografías hechas por Grafcan"

    House: Vale, pues dámelas, que me servirán para ponerlas debajo de la jaula del canario, y ya no tendré que estar barriendo todos los días las jodidas semillitas.

    (El equipo medico de House se turba, todos hablan a la vez)

    Cameron (que es la más turbada): ¿Estas insinuando que las radiografías han sido manipuladas?

    Foreman: Es una broma ¿no? ¿es alguna conspiración para mentirnos, como hacen siempre los pacientes, según tú?

    Chase: ¿Por qué iba a mentirnos el paciente? Sólo hay que mirarlo para ver que está para el arrastre. Si hasta huele mal. No tiene sentido.

    House: No hay conspiración. La explicación es perfectamente natural.

    (Irrumpe la doctora Cuddy, que oyó toda la conversación escondida detrás de la puerta)

    Cuddy: ¿En qué te basas para decir que no las han manipulado? mira que tengo un ejército de abogados esperando para darle la del pulpo (give the octopus what it deserves) a cualquiera que nos intente colar un documento falsificado.

    House: Es por la navaja.

    Cuddy: ¿La navaja de Occam?

    House: No, mujer, la navaja de Hanlon: "No atribuyas a la malicia lo que puede ser explicado perfectamente por estupidez". Llámate a Grafcan, y pídele explicaciones. Aunque ya se lo que te van a decir: la culpa es del mensajero.

    (Corte a las oficinas de Grafcan. Toma posterior de la mesa del jefazo de Grafcan. De espaldas a la cámara, se ve a un señor con dos cabezas. Se lo que estáis pensando: me refiero del cuello para arriba, so guarros. Nota para producción: Utilizar el efecto de eco cuando hable.)

    Grafcan: ¿Hola, podría hablar con don Google, por favor?

    Google: Dígame.

    Grafcan: Oye, que estaba yo pensando ... que si te envío las radiografías que tengo actualizadas y tal, pues que me voy a quedar sin negocio, sin bisnes, para que me entiendas.

    Google: ¿Y?

    Grafcan: Que, si no te importa, te voy a enviar unas que tengo, son algo más antiguas, pero se ven más bonitas, y tal, y así yo puedo seguir cobrando, y tal. ¿Te parece?

    Google: Mándeme las que le de la gana, coño ya (pussy yet).

    Grafcan: Pues vale, y tal.

    (El gerente bicéfalo cuelga, se frota las manos y se regodea de su propia astucia, se carcajea y empieza a dar vueltas por el despacho. El uso inteligente de las sombras y el ángulo de la cámara nos impide ver sus caras con claridad)

    Grafcan: BWAHAHAHAHA. ¡Qué listos somos! ¡Nadie se dará cuenta del cambiazo! Después de todo, ¿quién usa Google? Si ni siquiera tienen una animación flash en su página. Menudos mindungis, y tal.

    (Fundido en negro, usando como banda sonora la canción "Money, money" de Cabaret)

    CONTINUARÁ (O no...)
    11

    Ver comentarios

Archivo del blog
Etiquetas
Etiquetas
Enlaces interesantes
Cargando