25 mar 2007

Sin disciplina, pero con mucho weirdness.

Qué difícil es tener disciplina. Neta.

Tengo mucho trabajo qué hacer, especialmente fuera de Ingenio; gracias a eso, todo el tiempo libre que tengo está oficialmente dedicado "a trabajar". Pero mi cuerpo, mi mente, quieren relajarse... y yo me dejo llevar. Me acuso: he avanzado a paso de tortuga - no, más bien a paso de mosca, de mosca atrapada en telaraña... en la telaraña global (el web, pues). Especialmente Wikipedia. U_U

Y lo peor es que hasta me he desvelado, por lo que me estuvo doliendo la cabeza la noche del jueves y tooooodo el viernes... nada agradable.

==============================

Lo geek de esta semana: 99 bottles of beer. Un programa, 1071 versiones del mismo (en diferentes lenguajes y variaciones). El programa, obvio, es el que imprime la letra de la canción "99 bottles of beer in the wall", que es como la de "un elefante se columpiaba / sobre la tela de una araña", pero en orden decreciente. Es decir, va así:

99 bottles of beer on the wall, 99 bottles of beer.
Take one down and pass it around, 98 bottles of beer on the wall.

98 bottles of beer on the wall, 98 bottles of beer.
Take one down and pass it around, 97 bottles of beer on the wall.


Y así sucesivamente, hasta:

1 bottle of beer on the wall, 1 bottle of beer.
Take one down and pass it around, no more bottles of beer on the wall.

No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.


De donde es posible volver a comenzar la canción.
Esto es un ejercicio sencillo de programación que involucra un ciclo; algo muy básico. El objetivo del sitio web es demostrar cómo se hace esto en diferentes lenguajes de programación, que usan diferentes paradigmas (no solo el estructurado y el orientado a objetos). Ooooh, pero ahí no para la cosa...

Descubra usted a los lenguajes de programación esotéricos. Hasta donde sé, son lenguajes que existen solo como una prueba de concepto o simplemente de curada. ¿Cómo es eso? Pues bien, mi amigo programador, para prueba, unos cuantos ejemplos de "99 beers":
  • ¿En qué programaría una vaca? Pues en Cow, el sistema operativo para los bovinos que solo saben decir "moo". Ejemplo: (ojo, es case sensitive)
    moOMoOMoOMoOMoOmoOMoOMoOMoOMoOMoOMoOMoOMoOMoOMoOMMMmoOMMMMoOMoOMoOMoOMoOMoO
    MoOMoOMoOMoOMoOMoOMoOMoOMoOMoOMoOMoOMoOMoOMoOMoOMMMmoOMMMommMoOMoOMoOMoOMoO
  • Brainfuck es el primer lenguaje de estos que conocí. Las primeras líneas de este programa van así:
    >                           
    +++++++>++++++++++[<+++++>-]
    +++++++>++++++++++[<+++++>-]
    ++++++++++
    >+++++++++
  • Fromage. Mira, ratoncitos:
    >>>>>>>>>>:>>>:>:>>>:>:>:<<<<<<<<<{:[>:[>:[>:[<<<<<<:>>>>>>]:<]:<]:
    <]:<<<:[:>>>[<<<<<<:>>>>>>]>[<<<<<<:>>>>>>]>[<<<<<<:>>>>>>]>[<<<<<<
  • Shakespeare, un lenguaje hecho para que los programas parezcan obras de William Shakespeare - esto me encanta:
    Shakesbeer, by Jonas Sj�bergh, jsh@nadakthse.

    Romeo, a man who curses men and likes women, while taking up some space.
    Juliet, often the temporary affections of Romeo.
    The Ghost,holds his liquor.
    Hamlet, a man who is a bit jumpy.
    Oberon, o.
    Emilia, e.
    Titus, t.
    Ajax, n.
    Angelo, a.
    Shylock, s.
    Lennox, l.
    Bianca, b.
    The Abbot of Westminster, w.
    Desdemona, d.
    Robin, r.
    Capulet, ,.

    Act I: Where the action is.

    Scene I: Where the beginnings are located.

    [Enter Hamlet and The Ghost]
    Hamlet:
    Thou art as mighty as the sum of a proud rich trustworthy hero
    and a handsome Lord. Thou art as noble as the square of thyself.
    Thou art as rich as the difference between thyself and a plum.
    The Ghost:
    Thou art as good as the difference between a Lord and a Lord.

  • Para mi gusto, sin embargo, el que se lleva las palmas es Whitespace... imagínate programar con espacios en blanco: (sí, ahí hay algo... selecciona el texto)
    Whitespace version of 99 bottles of beer (Bottles.ws) 2003-04-01  
    See http://compsoc.dur.ac.uk/whitespace/ for details+interpreter
    Example by Andrew Kemp

    (*All* space/tab/linefeed characters are significant!)






















Si esto te resultó divertido... felicidades, eres un verdadero geek. Regocíjate con más sobre lenguajes de programación esotéricos.

7 comentarios:

52X Max dijo...

solia pensar ke era geek, y luego lei sobre esta gente ke no solo le basta batallar con los lenguajes de programacion existentes, sino ke todavia inventan otros, nomas por diversion

bueno, la neta si soy geek, y para muestra este articulo de wikipedia, me acorde por akello de las 99 botellas

Miguel Lozano dijo...

Yo sólamente conocía el brainfuck, pero debo decir que este tema me resulta sumamente fascinante. Gracias por ponerlo.

Atte.
BadBit

Gaolga dijo...

Chale... me asustaste... por que me dieron mucha gracia y se que si lo ensenio a otros amigos no les dara... wow... bueno esto de pensar computologo es todo un arte hehehehe

Pero bueno... programo por dinero asi que no me puedo considerar geek...

Saluditos!...

sgenius dijo...

No, no... si programas por dinero y te gusta, entonces no solo eres geek: eres una geek feliz ^_^

Orizschna dijo...

Me falta ser geek, lo reconozco
saludos!

Anónimo dijo...

jajajaja mi grado de geekiness a veces rebasa mi propio ser, pero trato de controlarlo :P mas ahora que me he desconectado un tiempo de esta matrix.

saludos muy buen post.


set mode geek = disable;
poweroff

Alos dijo...

MMmm ahora escribiré mi código inmantenible en Cow...

La verdad me suena como el nivel de las vacas en Diablo II