24 de marzo de 2010

Apoya a Nada

No cabe duda, las personas no queremos soluciones a nuestros problemas sino tener algo de que quejarnos. Así es como dedicamos nuestras vidas a buscar algo, un defecto, un error, una injusticia, cualquier cosa vale. Pero este personaje fue mas lejos, todo un pionero; se salto la parte de encontrar un problema y se fue directo a la queja.



Apoyaba a NADA, tranquilamente en una taza de baño con los pantalones abajo durante tres días hasta que lo metieron al bote, al parecer POR NADA.







Simplemente podríamos decir que le CAGA TODO y apoya a NADA.

fuente

23 de marzo de 2010

La metáfora del cuarto de baño

En el año 1500 la población mundial era de unos 400 millones de personas. Entre los años 1500 y 1800 aumentó a más del doble y volvió a doblarse entre los años 1800 y 1900 hasta alcanzar unos 1.600 millones. Hacia 1960 se volvió a doblar y de nuevo se dobló en el 2000. Somos entre 6.000 y 7.000 millones de humanos. Llegados a este punto, conviene recordar la metáfora del cuarto de baño que el genial Asimov explicó en una entrevista:

Si dos personas viven en un apartamento y hay dos cuartos de baño, entonces los dos tienen libertad para usar el cuarto de baño cuantas veces quieran y pueden estar en el cuarto de baño todo el tiempo que deseen y para lo que deseen usarlo. Y todo el mundo cree en el derecho a cuarto de baño y en la libertad a usarlo cuando le apetezca, nadie está en contra de eso, todos creemos que debería estar hasta en la Constitución.

Pero si hay veintidós personas en el apartamento y solamente dos cuartos de baño, no importa cuánto crea la gente en la libertad y el derecho a cuarto de baño, porque tales cosas no existen. Entonces hay que establecer turno para cada persona para usar el baño, se tienen que establecer normas como que no puedes usarlo para cortarte las uñas, solo para necesidades y ducharte, lo que tendrás que hacer en poco tiempo… tienes que golpear la puerta para entrar… “¿Aún no estás listo?”… y así.

De la misma manera la democracia no sobrevive cuando hay superpoblación. La dignidad humana no puede sobrevivir a ello. La comodidad y la decencia no pueden sobrevivir a ello. A medida que crece la población planetaria el valor de una vida no solamente declina, sino que al final desaparece. Ya no importa si alguien muere. Cuanta más gente hay, menos importa cada individuo.

11 de marzo de 2010

Los 10 mas raros lenguajes de programación.

Si creías que lo habías visto todo en el mundo de los lenguajes de programación deberías echarle un buen vistazo a esta lista con los 10 lenguajes de programación más raros jamás creados, con características realmente increíbles. Sus aplicaciones prácticas son muy limitadas (por no decir prácticamente nulas), pero parece evidente que hay cierto interés entre algunos desarrolladores por crear lenguajes muy, muy originales.



Olvidense de lenguajes de alta complejidad o incluso de bajo nivel como el ensamblador o incluso el código máquina: hay lenguajes que los superan en originalidad y en complejidad, como demuestra este artículo de Nettuts en el que se habla de los 10 lenguajes de programación más originales y raros de la historia. Realmente echándoles un vistazo está claro que su alcance práctico es muy limitado, y casi se trata de parodias de lenguajes reales.

1. Ook!

Lenguaje dedicado a los primates, y en especial, a los orangutanes, que solo consta de 3 elementos sintácticos: Ook, Ook? y Ook! Combinándolas podrías hacer virtualmente todo lo que quisieras. Virtualmente, repetimos.

Aqu{i un pequeño ejemplo de Ook! en acción:

1. Ook. Ook?
2. Move the Memory Pointer to the next array cell.

Ook. Ook?
Move the Memory Pointer to the next array cell.

1. Ook? Ook.
2. Move the Memory Pointer to the previous array cell.

Ook? Ook.
Move the Memory Pointer to the previous array cell.

1. Ook. Ook.
2. Increment the array cell pointed at by the Memory Pointer.

Ook. Ook.
Increment the array cell pointed at by the Memory Pointer.

1. Ook! Ook!
2. Decrement the array cell pointed at by the Memory Pointer.

Ook! Ook!
Decrement the array cell pointed at by the Memory Pointer.

1. Ook. Ook!
2. Read a character from STDIN and put its ASCII value into the cell pointed at by the




2. Piet

Lenguaje inspirado por el artista abstracto Piet Mondrian, este lenguaje convierte programas en pinturas abstractas con 20 colores diferentes representados con códigos hexadecimales. Un compilador luego los interpreta y crea el código objeto. Creanme, existen ejemplos reales de uso y las pinturas resultantes.



3. Whitespace

Como su propio nombre indica, este lenguaje crea programas a partir de espacios en blanco, y el propio sitio web oficial de este lenguaje describe sus características: "la mayoría de lenguajes de programación modernos no considera los espacios en blanco, tabuladores o retornos de carro como elementos de la sintaxis y los ignora, como si no estuvieran allí. Creemos que esto es una injusticia a esos miembros perfectamente normales del juego de caracteres. ¿Deberían ser ignorados solo porque son invisibles? Whitespace es un lenguaje que busca recuperar ese equilibrio. Cualquier caracter que no sea de este tipo se ignora. Solo los espacios, tabuladores, y retornos de carro se consideran como parte de la sintaxis".


4. LOLCODE

Este lenguaje se basa en el fenomeno Lolcat; utiliza Lolcats como sintaxis para hacer funcionar programas o algo así:



1. HAI
2. CAN HAS STDIO?
3. PLZ OPEN FILE "LOLCATS.TXT"?
4. AWSUM THX
5. VISIBLE FILE
6. O NOES
7. INVISIBLE "ERROR!"
8. KTHXBYE



5. Shakespeare


El nombre es también muy descriptivo aquí, y en este caso el lenguaje de programación utiliza el estilo y sintaxis que probablemente hubiera seguido el mítico escritor inglés de haber desarrollado un lenguaje de programación. Todo formaría parte de una obra de teatro con diálogos, y un buen ejemplo sería escribir el famoso programa "Hello World!" en este lenguaje, cuyas primeras líneas quedarían más o menos así:


1. The Infamous Hello World Program.
2.
3. Romeo, a young man with a remarkable patience.
4. Juliet, a likewise young woman of remarkable grace.
5. Ophelia, a remarkable woman much in dispute with Hamlet.
6. Hamlet, the flatterer of Andersen Insulting A/S.
7.
8. Act I: Hamlet's insults and flattery.
9.
10. Scene I: The insulting of Romeo.
11.
12. [Enter Hamlet and Romeo]
13.
14. Hamlet:
15. You lying stupid fatherless big smelly half-witted coward!
16. You are as stupid as the difference between a handsome rich brave
17. hero and thyself! Speak your mind!
18.
19. You are as brave as the sum of your fat little stuffed misused dusty
20. old rotten codpiece and a beautiful fair warm peaceful sunny summer's
21. day. You are as healthy as the difference between the sum of the
22. sweetest reddest rose and my father and yourself! Speak your mind!
23.
24. You are as cowardly as the sum of yourself and the difference
25. between a big mighty proud kingdom and a horse. Speak your mind.
26.
27. Speak your mind!
28.
29. [Exit Romeo]


6. Befunge


El objetivo del creador de este lenguaje, un joven llamado Chris Pressey, es que este fuera lo más difícil posible de compilar. Para ello Befunge está dotado de dos características muy interesantes:

1. Auto-modificaciones: la instrucción puede escribir nuevas instrucciones de forma autónoma.

2. Multi-dimensional: la misma instrucción se puede ejecutar en cuatro contextos distintos (de izquierda a derecha y viceversa, o de arriba a abajo y viceversa).




7. reMorse


La idea de este lenguaje era la de poder reutilizar el famoso código Morse para programar, y obviamente es un lenguaje muy orientado a los especialistas en radio y telégrafo. Hubiera sido un lenguaje perfecto probablemente para la segunda guerra mundial, aunque eso sí, muy engorroso a la hora de escribir los programas.


1. - - - ..- ...-.---.;newline
2. - - - .-. - ..-.- ...-. ---.;!
3. - - - ...- . . -.---.;d
4. ----. . . -.---.;l
5. ----. . -...---.;r
6. ----. -...---.;o
7. ----...-.- ..-. ---.;W
8. //author didn't feel like doing this part
9. -..............;output all characters


8. FALSE

Este curioso lenguaje de programación también tiene un objetivo propio: el de tratar de desanimar a cualquier programador con ganas de dominarlo. Está basado en el famoso lenguaje Forth, pero hace uso de una sintaxis basadas en símbolos de puntuación para añadirle una nota más de complejidad al asunto. Como indica su creador, "diseñé este lenguaje con dos objetivos en particular: confundir a todo el mundo con una sintaxis ofuscada, y diseñar un lenguaje lo más potente posible con una pequeña implementación: en este caso con un compilador ejecutable en tan sólo 1024 bytes escrito en ensamblador para el Motorola 68000".

9. Whenever


El lenguaje de programación perfecto para los adolescentes, ya que este sencillo lenguaje es el rey de la procrastinación, y trata de retrasar cualquier tipo de acción, de modo que el lenguaje hace lo que quiere... cuando quiere. Como dice su creador, "toma todas las líneas del código y las trata como elementos de una lista de tareas. El intérprete elige un elemento de la lista de forma aleatoria para ejecutarlo, y lo ejecuta. En algunos casos la sentencia contiene una cláusula que especifica hasta que se cumplan ciertas condiciones. El resultado es que dicha sentencia se aplaza y vuelve a colocarse en la lista de tareas". Brillante para programadores (y programas) perezosos.


1. defer (4 || N(1)
2. defer (4 || N(1)==N(2)) print("Take one down and pass it around,");
3. defer (4 || N(2)==N(3)) print(N(1)+" bottles of beer on the wall.");
4. 1#98,2#98,3#98;


10. l33t

l33t es la equivalencia de Eleet ("Elite", un lenguaje que sustituye combinaciones de caracteres ASCII por caracteres latinos convencionales, de forma que las frases quedan prácticamente ilegibles a no ser que seas parte de esa "élite" capaz de comprender dicho lenguaje.

1. Gr34t l33tN3$$?
2. M3h...
3. iT 41n't s0 7rIckY.
4.
5. l33t sP33k is U8er keWl 4nD eA5y wehn u 7hink 1t tHr0uGh.
6. 1f u w4nn4be UB3R-l33t u d3f1n1t3lY w4nt in 0n a b4d4sS h4xX0r1ng s1tE!!! ;p
7. w4r3Z c0ll3cT10n2 r 7eh l3Et3r!
8.
9. Qu4k3 cL4nS r 7eh bE5t tH1ng 1n teh 3nTIr3 w0rlD!!!
10. g4m3s wh3r3 u g3t to 5h00t ppl r 70tAl1_y w1cK1d!!
11. I'M teh fr4GM4stEr aN I'lL t0t41_1Ly wIpE teh phr34k1ng fL00r ***j3d1 5tYlE*** 12. wItH y0uR h1dE!!!! L0L0L0L!
13. t3lEphR4gG1nG l4m3rs wit mY m8tes r34lLy k1kK$ A$$
14.
15. l33t hAxX0r$ CrE4t3 u8er- k3wL 5tUff lIkE n34t pR0gR4mm1nG lAnguidGe$...
16. s0m3tIm3$ teh l4nGu4gES l00k jUst l1k3 rE41_ 0neS 7o mAkE ppl Th1nk th3y'r3 ju$t 17. n0rMal lEE7 5pEEk but th3y're 5ecRetLy c0dE!!!!
18. n080DY unDer5tAnD$ l33t SpEaK 4p4rT fr0m j3d1!!!!!
19. 50mE kId 0n A me$$4gEb04rD m1ghT 8E a r0xX0r1nG hAxX0r wH0 w4nT2 t0 bR34k 5tuFf, 20. 0r mAyb3 ju5t sh0w 7eh wAy5 l33t ppl cAn 8E m0re lIkE y0d4!!! hE i5 teh u8ER!!!!
21. 1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE.
22. 1t 3v3n MiTe jUs7 s4y "H3LL0 W0RLD!!!" u ju5t cAn'T gu3s5.
23. tH3r3's n3v3r anY p0iNt l00KiNg sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s whAt 24. th1s 1s!!!!!
25.
26. 5uxX0r5!!!L0L0L0L0L!!!!!!!


Señores pues a programar!!!

fuente: http://net.tutsplus.com/articles/top-10-most-bizarre-programming-languages/

1 de marzo de 2010

El Universo: algunas informaciones para ayudarle a vivir en él

1 Zona: Infinito.

La Guía del autoestopista galáctico da la siguiente definición de la palabra "infinito".

Infinito: Mayor que la cosa más grande que haya existido nunca, y más. Mucho mayor que eso, en realidad; verdadera y asombrosamente enorme, de un tamaño absolutamente pasmoso, algo para decir: «vaya, qué cosa tan inmensa». El infinito es simplemente tan grande, que en comparación la grandeza misma resulta una nadería. Lo que tratamos de exponer es una especie de concepto que resultaría de lo gigantesco multiplicado por lo colosal multiplicado por lo asombrosamente enorme.

2 Importaciones: Ninguna

Es imposible importar cosas a una zona infinita, al no haber un exterior del que importarlas.

3 Exportaciones: Ninguna.

Véase Importaciones.

4 Población: Ninguna.

Es sabido que existe un número infinito de mundos, sencillamente porque hay una cantidad infinita de espacio para que todos se asienten en él. Sin embargo, no todos están habitados. Por tanto, debe haber un número finito de mundos habitados. Un número finito dividido por infinito se aproxima lo suficiente a la nada para que no haya diferencia, de manera que puede afirmarse que la población media de todos los planetas del Universo es cero. De ello se desprende que la población media de todo el Universo también es cero, y que todas las personas con que uno pueda encontrarse de vez en cuando no son más que el producto de una imaginación trastornada.

5 Unidades monetarias: Ninguna.

En realidad, en la Galaxia hay tres monedas de libre cambio, pero ninguna cuenta. El dólar altairiano se ha desmoronado hace poco, la bolita pobble llainiana sólo se puede cambiar por otras bolitas pobbles llainianas, y el pu trigánico tiene sus propios problemas muy particulares. Su tasa de cambio, ocho ningis por un pu, es bastante simple, pero como un ningi es una moneda triangular de goma, de diez mil cuatrocientos kilómetros por cada lado, nunca
ha tenido nadie suficiente para poseer un pu. El ningi no es una moneda negociable porque los galactibancos se niegan a tratar con un cambio insignificante. A partir de esta premisa fundamental es muy sencillo demostrar que los galactibancos también son producto de una imaginación trastornada.

6 Arte: Ninguno

La función del arte es servir de espejo a la naturaleza, y no existe un espejo lo suficientemente grande: véase el punto uno.

7 Sexualidad: Ninguna.

Bueno, en realidad hay muchísima, sobre todo debido a la total ausencia de dinero, de comercio, de bancos, de arte y de cualquier otra cosa que mantenga ocupada a toda la población inexistente del Universo.

Sin embargo, no vale la pena emprender ahora una larga discusión sobre ello, porque es algo verdaderamente muy complicado. Para más información véanse los capítulos siete, nueve, diez, once, catorce, dieciséis, diecisiete, diecinueve, veintiuno a ochenta y cuatro inclusive, y la mayor parte del resto de la Guía.



El restaurante del fin del mundo (pag. 102).