Noth Schwa's profile¡Por la cara!PhotosBlogLists Tools Help

Blog


    December 31

    Reflexiones finales

    Así es, le hemos dado otra vuelta al Sol (por costumbre más que otra cosa) y para celebrarlo voy a pensar un poco en qué ha sido de este año, algo que no hago nunca y que como me aburro, voy a hacer.

    Ha sido un año largo, o tal vez sea porque es la primera vez que me pongo a mirar tanto tiempo hacia atrás. Ha sido un año largo, y un año impar, y como todos los años impares, acaba siendo una mierda (en recuerdo del 2005, que como su nombre indica nos dieron por ahí mismo).

    Ha sido también un año marcado por todo tipo de aglomeraciones sociales, todo un desfile de personas nuevas y diferentes. Un año en el que he dicho y escrito más veces la palabra “social” y derivados que en el resto de mi vida, y que, con esta entrada, espero sea la última vez en mucho tiempo.

    Porque este 2007 ha sido un año de roce (que aunque a veces hace el cariño, recordemos que fina es la línea que separa el odio del amor, y el roce no deseado genera sentimientos negativos), de expansión de horizontes, vistas y demás. En resumen: una constante observación de conductas humanas, comportamientos absurdos, pensamientos parciales y racionalidad irracional. ¿Será que cada vez el mundo está más lleno de estupidez y mentiras? ¿O será que con el tiempo uno va abriendo los ojos y las va detectando en mayor número?

    Tal vez sea que cierta prepotencia inherentemente humana nos ciega, nos hace pensar que vivimos en un mundo diferente del que vivieron emperadores locos, déspotas egocéntricos y dictadores descontrolados. Quizá pensamos que en el pasado las cosas eran más brutales, más primitivas, rudimentarias. Que el pueblo llano era bruto, que los eruditos tenían la cabeza llena de ideas equivocadas sobre cosas aún por descubrir y que unos pocos oprimían al pueblo, ignorante y crédulo. ¿Hablo del pasado o hablo del presente? ¿Cuál es la diferencia? Ahora el pueblo llano en lugar de ir a caballo va en latas motorizadas, en lugar de leer el periódico ve la televisión, y en lugar de ir a la iglesia... va a la iglesia. Los eruditos se sientan en sus altos y cómodos sillones, desde donde pueden seguir diciendo gilipolleces, basados en que saben un poquito más que los que estuvieron antes que ellos. Y unos pocos siguen oprimiendo de la mejor forma que siempre ha existido para oprimir: fingiendo que no lo hacen.

    Creed que sois libres, que hacéis lo que queréis y que vivís en el estado del bienestar, que todo está bien y que no necesitáis nada más. Pensad, si es que podéis, que está todo hecho y sólo nos queda “disfrutar” de la vida. Abrazad la comodidad de la jerarquía de los huevos y admirad su funcionamiento.


    En general, cambiando un poco de tema, el ser humano se empeña en agruparse en sociedad y tener al mismo tiempo un comportamiento egoísta e individual. Quizá sea esa necesidad competitiva de reconocimiento adulador, la inseguridad palpable de la persona que cada vez que hace algo corre a mostrarlo y espera ansiosa la aprobación por parte de los otros, y no se queda tranquila hasta que recibe el deseado “lo has hecho muy bien”, “es muy bonito”, etc.

    Lo más sorprendente de esto es que únicamente en esos momentos es cuando te prestan atención: si no les dices lo que quieren oír probablemente tengan reacciones variadas en el rango entre la depresión y la ira. El resto del tiempo, digas lo que digas, entenderán lo que les dé la gana, que la mayor parte de las veces será lo que más les convenga. Total, un tema que no quiero volver a tratar hasta dentro de mucho tiempo (para eso escribo esto hoy, como despedida formal de la sociedad, digo... como despedida de entradas que hablan de las relaciones interpersonales y de la impersonalidad de éstas).


    Por el momento eso es todo, pronto habrá cuarenta millones de personas atragantándose mientras tratan de engullir doce uvas en un intento supersticioso de obtener suerte para el año entrante. Porque ése es el motivo, origen y tal y cual de las dichosas doce uvas.

    Ya para terminar, y que podáis disfrutar de esas doce compañeras del alma de todos los años, me despido hasta la próxima vez que tenga algo que escribir, que será menos aburrido que esto en cuanto a que será menos serio, y será mucho más aburrido que esto, en cuanto que tendrá mucho menos sentido.

    Y no deseo feliz año ni nada de eso porque si mis deseos se cumplieran tan fácilmente las cosas serían diferentes y, aunque desear es gratis, prefiero desear cosas para mí mismo, que si se cumple alguna que me toque a mí (es una cuestión de probabilidad, principalmente).

    Lo dicho, fin.

    December 30

    Coliseo

        Akhlem podía oír el crujido de la arena bajo sus pisadas a pesar del clamor de la multitud. Estaba nervioso, y sentía las sienes latir. Por un momento llegó a creer que su cabeza explotaría, pero evidentemente, no lo hizo. Con un último suspiro salió a la luz, que lo cegó momentáneamente. La muchedumbre emitió un rugido ensordecedor que poco a poco se fue apagando cuando un hombre se puso en pie en el palco de honor. Akhlem pudo distinguir a los que allí había a pesar de la distancia: eran el Emperador Backus y el Rey Cobboyd, su rey. Junto a ellos distinguió a la Hermana Dalybet, mortalmente seria, y de pie, al Juez.
        El Juez Eremius Ob Tyrrek era el doble de alto que un hombre normal, e irradiaba un aura de luz que le envolvía como a una criatura divina. Debía de ser realmente molesto sostenerle la mirada, pensó Akhlem mientras desviaba la suya para mirar de soslayo a la multitud.
        Había muchos soldados, y también gente corriente, panaderos, carniceros, zapateros y demás, que habían venido a contemplar el destino del pequeño reino, que descansaba sobre los hombros del joven Akhlem. No se detuvo mucho a observarlos, sin embargo, pues aunque deseaba con toda su alma comprobar si la bella Fiona estaba allí y le estaba mirando, en el fondo estaba asustado, y temía leer desaprobación en su rostro, o incluso indiferencia por aquel nimio soldado al que le habían encomendado la misión de salvar el reino. Así que desvió rápidamente la mirada y se centró en su enemigo, y se le cayó el alma a los pies.
        El campeón del imperio era tan alto como el Juez, vestía una larga cota de malla que lo cubría por completo y llevaba un escudo y una lanza, además de una espada enorme colgada a su espalda, cuyo mango descomunal sobresalía tras la cabeza y se podía apreciar desde la distancia. Akhlem estaba sudando. Le molestaba la armadura de placas, que estaba demasiado ajustada y que tenía resquicios por todas partes, por los que podría penetrar la lanza de su enemigo y atravesarlo en un instante. Les había dicho a todos que no le estaba bien la armadura, que le resultaba incómoda, que no podría luchar con ella; se lo había comentado al herrero, a su padre, a su escudero... y todos habían respondido con tonterías acerca de los nervios y el temple para la batalla.
        Bobadas, un par de tallas más y parches de anillas para tapar los huecos, eso era lo que necesitaba. Y Fiona... se obligó a no mirar, y en lugar de eso centró su atención en el Juez, que había comenzado a hablar.
        -... acorde a las Leyes establecidas, bajo la atenta mirada de los dioses, en justo y honorable combate, Akhlem Herregaart luchará contra Ghard Zhahz en combate singular bajo las normas establecidas para estos casos, para decidir el destino del reino de Hyrda, en su guerra contra el imperio de Itolania. Paso a detallar las normas de este combate y los acuerdos a los que habrán de atenerse el Emperador Backus y el Rey Cobboyd tras el desenlace de esta gesta. En primer lugar, los contendientes no contarán con ninguna ayuda adicional, aunque podrán solicitar una nueva arma en caso de perder todas las que lleven, en segundo lugar...
        La lista se le antojó enormemente larga a Akhlem, que deseó que el Juez, con su poder absoluto, le protegiera o luchara de su lado. Pero sabía que eso era una tontería, si el Juez tomaba partido por alguno de los dos bandos, o incumplía la Ley en algún término tal que no actuase de forma justa de acuerdo a la Ley, su aura se apagaría y significaría que el Juez ya no es justo, y perdería todo el poder que poseía, pasando éste a un nuevo Juez. Los Jueces debían seguir la Ley y hacerla cumplir con justicia, y hasta la guerra tenía cabida en esas Leyes, tan grande era la necesidad de los humanos de la violencia y las disputas.
        Casi no se dio cuenta cuando el Juez terminó de hablar y Ghard, su enemigo, blandió su lanza y comenzó a avanzar hacia él. Akhlem desenvainó su espada y sintió su peso, pero eso no le reconfortó. Con un último suspiro avanzó y por fin se decidió:
        Deseó que, después de todo, ojalá Fiona no estuviera mirando.
    December 23

    Probando... awanchufrí

    El señor Zanahoria corrió rápidamente de un margen a otro de la página en busca de su reloj automático marca Wachiwán-Chim-Pau, que le fue regalado por su primo Jotaolín Guajen-jen una noche de borrachera tras haber descubierto entre ambos el Algoritmo Perfecto. Por desgracia, a la mañana siguiente, de resaca, cuando intentaron descifrar lo que habían escrito descubrieron que cuando estaban borrachos su letra se volvía ilegible, y fueron incapaces de recordar los pasos exactos del algoritmo perfecto. Por lo tanto, tras discutir diecisiete minutos y medio acerca de si publicarían o no sus aventuras en el reputado espacio de ¡Por la cara!, se separaron para no volver a verse jamás en doce años y siete días, momento en el que lucharían como enemigos en una apasionante batalla épica y demás, con un final inesperado que nadie se esperaba.

    Así las cosas, es normal que el señor Zanahoria buscase su reloj por toda la página, sin darse cuenta de que aparecía en la segunda línea. Pero claro, se distrajo observando la batalla final y un señor con una cantimplora verde y una sartén en la cabeza le dijo ¡Ni! y lo mató a traición. Más tarde se supo que había sido uno de los Caballeros que anteriormente decían Ni y que había sido expulsado de la orden por no saber pronunciar la “i”.


    Así que, como os habréis dado cuenta, esto es una entrada chorra de las habituales mías, pero es que quería hacer unas pruebas, que últimamente tengo que publicar las cosas cuatro veces y me cansa (por no hablar de que en la última entrada el código en Brainfuck salió mal, menos mal que nadie lo va a comprobar...)

    December 20

    El legado del Factorial

    EDITO: Voy a cambiar el sangrado del código (a dos espacios) y añadir una cosita al final.

        Así es, hoy presentaremos esa función matemática que ha salido tantas veces que no sabemos si es amiga o enemiga, si es eterna o sólo inmortal. En todo caso, disponemos de muchas armas para enfrentarnos a ella. Yo diría que el factorial es a la recursividad lo que el "Hola mundo" es a la programación en general...
        En primer lugar, su definición matemática (si esto estuviera en condiciones podría poner símbolos bonitos, pero como no es así, hay que aguantarse).
        Se define el factorial para los números naturales n de forma que: factorial(n) = { 1 si n = 0 / n·factorial(n-1) si n > 0
        Bien, veamos cómo podemos atacarla (suponemos en todos los casos que la llamada se hace con n >= 0):

    // En pseudolenguaje, entiéndase ! como una flecha hacia abajo y :< como pertenece)
    FUNCIÓN factorial(!n:
    INICIO
      SI n = 0 ENTONCES
        RESULTADO <- 1
      SINO
        RESULTADO <- n*factorial(n-1)
      FINSI
    FIN

    /* En C */
    int factorial(int n)
    {
      return n ? n*factorial(n-1) : 1;
    }

    % En Matlab
    function y = factorial(n)
    if n == 0
      y = 1;
    else
      y = n*factorial(n-1);
    end

    *** En Maude
    op factorial : Nat -> Nat .
    var N : NzNat .
    eq factorial(0) = 1 .
    eq factorial(N) = N*factorial(N-1) .

    ; En ensamblador (sintaxis de Intel)
    factorial proc near
      push bp
      mov bp,sp
      push bx
      push dx
      mov bx,ss:[bp+4]
      or bx,bx
      jnz c1
    c2:  mov ax,1
      jmp fin
    c1:  mov dx,bx
      dec bx
      push bx
      call factorial
      mov bx,dx
      mul bx
    fin:  pop dx
      pop bx
      pop bp
      ret 2

    // En Java
    public static int factorial(int n){
      if(n == 0){
       return 1;
      }else{
        return n*factorial(n-1);
      }
    }
    ; En ensamblador para el MIPS
    Fact:  addi $sp,$sp,-8
      sw $ra,4($sp)
      sw $a0,0($sp)
      slti $t0,$a0,1
      beq $t0,$zero,L1
      addi $v0,$zero,1
      addi $sp,$sp,8
      jr $ra
    L1:  addi $a0,$a0,-1
      jal Fact
      lw $a0,0($sp)
      lw $ra,4($sp)
      addi $sp,$sp,8
      mult $v0,$v0,$a0
      jr ra

    (CSP o algo basado en su sintaxis, entiéndase :< como pertenece y <> como un cuadradito)
    factorial = {n :< N -> [[ n = 0 -> res := 1 <> n > 0 -> res := n*factorial(n-1) ]]

    -- En Haskell
    factorial :: Integer -> Integer
    factorial 0 = 1
    factorial m@(n+1) = m*factorial n

    % En Prolog
    factorial(0,1).
    factorial(N,F) :-
      N > 0
      N1 is N-1,
      factorial(N1,F1),
      F is N*F1.

    -- En Ada
    function factorial(n:integer) return integer is
    res:integer;
    begin
      if n = 0 then
        res := 1;
      else
        res := n*factorial(n-1);
      end if;
      return res;
    end factorial;

    (* Pascal-FC *)
    function factorial(n:integer):integer; begin
      if n = 0 then
        factorial := 1
      else
        factorial := n*factorial(n-1);
      end;
    end;

    -- Y por último en Ada otra vez, pero esta vez iterativamente,
    -- porque por algún motivo desconocido me fascinan los bucles
    -- de Ada
    function factorial(n:integer) return integer is
    res:integer;
    begin
      res := 1;
      for i in 1 .. n
      loop
        res := res*i;
      end loop;
      return res;
    end factorial;

    Y ahora para terminar de verdad de la buena, otra versión iterativa del factorial:
    ¡El factorial en Brainfuck (y sí, lo he hecho yo)
    Esta versión calcula el factorial de 5 y escribe por pantalla el carácter 'x', cuyo código ASCII es... 5! = 120:
    >+++++ Esto es el 5 (se puede cambiar)
    [>+>+>+<<<-]>-[>>-[>+>+<<-]>>[<>-]<<<-]>>[<>-]<<<-]>.
    December 15

    Entrada aleatoria count(*)

        Estaba escribiendo una entrada demoledoramente bestial, soberbia y ultra fantástica tan absolutamente increíble que he tenido tanto miedo de que al publicarla el mundo entrase en colapso, que he decidido con gran pesar en mi corazón borrarla y fingir que nunca existió.
        Es decir, que era una mierda total y completa.
        Bien, aclarado este punto, digamos que como todo el mundo sabe, o si no lo sabe, lo sabe, los Wachus son entidades gregarias. Veamos que es cierto lo que he dicho:
        Si reescribimos lo anterior como: "Todo el mundo sabe que los Wachus son entidades gregarias, o si no todo el mundo sabe que los Wachus son entidades gregarias, entonces todo el mundo sabe que los Wachus son entidades gregarias". Si tomamos que p = "Todo el mundo sabe que los Wachus son entidades gregarias", tenemos que lo que he dicho puede escribirse como: p "o" (¬p -> p), que se puede escribir como p "o" p "o" p, que es lo mismo que p, por lo tanto, todo el mundo sabe que los Wachus son entidades gregarias.
        Y si ya lo sabéis, no tengo nada más que añadir.     Nos veremos en el futuro.
    December 08

    Snippets

        Diciembre, diciembre, diciembre, ¡fun, fun, fun! ¿Y eso qué es? Pues es una frase en la que aparece una palabra "fun" que no tiene sentido en sí misma, porque no, admitámoslo, no significa diversión en inglés por más que queráis que sea eso.
        Y la gran pregunta es: ¿todo esto a qué viene? Como sé que si digo que es culpa de la ilusión navideña sólo voy a ganar caras escépticas, diré la verdad: viene a que me abu... digo... a que sigo una estructura de actualizaciones tipo pila o LIFO (Last In First Out, o el último en llegar primero en salir), es decir, que cada vez que se me ocurre algo lo apunto para escribirlo, pero luego se me ocurre otra cosa, y otra... y al final, no podía ser de otra forma: lo último que se me ha ocurrido ha sido esta introducción cutre, y por ello es la primera en ser escrita.
        Supongo que en cierto modo es una suerte, de lo contrario tendría que realizar las tareas del principio de la lista, como por ejemplo dominar el mundo, que hace siglos que la apunté y aquí sigo... así que hoy toca soltar unas cuantas tonterías para rellenar, y hacer algo que nunca antes había hecho (o no lo recuerdo, que es equivalente).
        En primer lugar: la agenda.
        Tengo que escribir un pequeño resumen del año (porque me da la gana), así que si los extraterrestres con cuerpo de pollo y cabeza de vaca no han invadido la tierra para entonces,durante las uvas habrá actualización (decir esto sí que es temerario, pero puedo hacerlo porque no importará si no lo hago :-)). Dejando a un lado la dudosa construcción de la frase anterior, también tengo que continuar con el caso de los asesinatos de variables, que no lo he olvidado, pero como se me han ocurrido cosas nuevas después, el inevitable curso del tiempo me impide continuar (o la falta total de éste). En fin, muchas ideas sueltas, como por ejemplo las siguientes, que no madurarán porque no tengo ganas.

    Eudelio había comprado una vieja máquina de escribir a su vecino, Don Dremebundo Bombalio, periodista jubilado que en realidad poco había escrito en su vida (eran tiempos en los que leer no se llevaba, y Don Dremebundo había orientado su carrera hacia la televisión). La máquina pues, estaba en perfectas condiciones, aunque las teclas se atascaban alguna que otra vez. Pese a ello, Eudelio pasaba horas frente a la máquina, escribiendo un sinfín de historias, recreándose en su mundo mágico en el que no existía la televisión (importante detalle), bajo la mirada preocupada de su madre.
        -Eudelio -le dijo un día-, ¿por qué escribes y escribes historias de fantasía, de aventuras, de rechazo, de amor, de terror o de intriga? ¿No te has dado cuenta de que ya se han escrito libros sobre todo, hecho películas sobre más y modelado infinidad de personajes?
        -Sí, mamá -respondió Eudelio alzando la vista hacia su madre-, pero los personajes de los que hablo también tienen derecho a vivir, experimentar, a ser conocidos; si yo no les ayudo no podrán existir.
        -Pero ya existen otros parecidos, ninguno de tus personajes aportará nada realmente nuevo, así que es como si ya existieran -objetó Doña Arufaisa, la madre.
        Eudelio miró fija y seriamente a su madre y le preguntó:
        -Mamá, ¿vas a abortar?
        Doña Arufaisa se llevó las manos a su vientre hinchado, horrorizada.
        -¡Pero hijo! ¡Claro que no! ¿Cómo se te ocurre decir semejante barbaridad?
        -No sé... ya han nacido todas las personas que tenían que nacer, un niño más no aportaría nada realmente nuevo, ¿no?

        Llovía. Llovía, porque siempre que empiezo una historia nueva o está amaneciendo y hace un calor de mil demonios o llueve. Llovía a mares, aunque nunca he visto llover al mar. Caía agua del cielo, pero dicho así suena raro. Caían gotas, pero caían muchas. Como si cayeran chorros. Al cabo, uno no se daba cuenta, porque estaba calado hasta los huesos. Arriba, las nubes oscuras eran dueñas del firmamento, ocultando el sol y tiñendo el mundo de sombras grisáceas, más oscuras aún al estar mojadas por la lluvia. Algunos asociaban esas imágenes a la tristeza y depresión, ciegos ante la tranquilidad y la calma que realmente reflejaban. No era tan sorprendente: los humanos que pululaban por allí tenían sus sentidos tan cerrados como sus mentes, y que no veían más allá de sus narices era obvio, pues no veían siquiera sus propias narices. En resumen: llovía.

        Y eso es todo por hoy, ¿qué? ¿ya? ¿tan pronto? Pues sí, tan pronto, y ya hasta el año que viene o más, aunque teniendo en cuenta ciertos factores, es probable que dentro de un rato me aburra y me entren ganas de escribir más, pero, ah, la vida, cosas que pasan, recordad que el odio a veces puede ser sano y otras, incluso útil.
        Y recordad: "No toques mi ascensoooooooooor"