Hace 10 años | Por sevilla92 a ciencia-explicada.com
Publicado hace 10 años por sevilla92 a ciencia-explicada.com

Éste es el ¿absurdo? reto que propone cada año el International Obfuscated C Code Contest (IOCCC), en un intento de picar a programadores de todo el mundo hacia el extremo de la programación más enrevesada e imposible de entender. De entre los ganadores de 2013 me ha llamado mucho la atención una auténtica obra maestra: un emulador completo de 8086 capaz de ejecutar, sobre MSDOS, AutoCAD, Windows 3.0, etc. Mejor ver algunos screenshot:

Comentarios

D

#26 Es como los records Guiness: una chorrada admirable. lol

f

#26 como te gustaría tener un presidente que supiera modular los problemas con tan poco recursos


ha cambiado eso mucho... antes las tías le molaban los albañiles.... ahora los programadores son los que se lleva el gato al agua si no, mira las ofertas de trabajo son los que mas hace falta y viajan mucho al extranjero

D

#26: Recuerda:
Un buen programador es aquel que jamás escribe comentarios, sino que escribe un código tan súmamente legible y bello, que se comenta por si mismo.

PythonMan8

#10 Tranqui, tronco... todo lo que han hecho ha sido compactar el código del emulador que Fabrice Bellard ya hizo hace años. Como son unos impresentables han evitado nombrar la fuente original.


http://bellard.org/

http://bellard.org/jslinux/

A

#33 buenísimo

#10 Pues si tu sientes eso siendo programador, imagina lo que yo sentí cuando estudiaba ingeniería industrial y tuve que enfrentarme a la programación en C por primera vez. Estructurar mi pensamiento para entender un ejercicio tan básico como el algortimo de la burbuja me llevó un tiempo nada despreciable. Pero bueno, más allá de que no me dedique a ello me parece un mundo fascinante, y a esos niveles ya debe ser la p..a. A costa de la vida social, seguramente, por eso prefiero quedarme como estoy.

p

#8 Teniendo experiencia suficiente, cualquiera hace cualquier cosa. La diferencia es el tiempo y las ganas que le pone cada uno. No está de más recordar que cuando uno se vaya a la tumba, sus habilidades no sirven de nada para poner en perspectiva el tiempo que cuesta aprender algo vs. si merece la pena aprenderlo.

D

Música en 90 caracteres.

echo "main(i)" | gcc -x c - && ./a.out | aplay

D

#3 : In function ‘main’:
:1:1: warning: right shift count >= width of type [enabled by default]

t

Igualito que los programas de hoy en día en java.

D

Por cierto he conseguido ejecutar FreeDOS:


FreeDOS kernel version 1.1.33 (Build 2033) [Jan 31 2004 16:30:33]
Kernel compatibility 7.10 - WATCOMC - FAT32 support

(C) Copyright 1995-2004 Pasquale J. Villani and The FreeDOS Project.
All Rights Reserved. This is free software and comes with ABSOLUTELY NO
WARRANTY; you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation;
either version 2, or (at your option) any later version.
- InitDiskno hard disks detected

FreeCom version 0.82 pl 2 XMS_Swap [Apr 28 2003 17:47:52]
Current date is Sun 01-05-2014
Enter new date (mm-dd-[cc]yy):
Current time is 10:56:51.56 pm
Enter new time:

A:>


http://odin.fdos.org/fdodin06.8088.zip Bajadlo y descomprid el archivo. En vez de usar el disco Dos6.22.img usad el ODIN.720

f

Joder hay niveles, niveles y niveles, pero lo de emular completo 8086 es un puto genio lol.

D

#17 No soy programador pero en los #defines mete bastantes atajos.

p

Aquí versiones para Win7 de "4kB Demo - Elevated door RGBA & TBC": http://jansloot.telcomsoft.nl/Sources-2/DemoScene/Elevated_4kB/Elevated_4kB.htm

D

#20 En #19, usa la API de DirectX. Así, cualquiera .

m

No confundamos, un buen programador es:
-Aquel que su código hace lo que debe de hacer
-Aquel que su código no hace lo que no debe de hacer
-Aquel que su código es limpio, reusable y con comentarios cuando de verdad haga falta.
-Aquel que hasta cierto punto optimiza el código que genera (depende de las prisas).

Lo demás son frikadas. Que lo mete en 4K? Y?
Ahorrarse bytes no significa nada. Y menos hoy en día con GB de espacio hasta en un móvil.
Lo que suele ocupar en un programa no es el código, son los datos.

D

#include "SDL.h"

Ah vale, si puedo usar las librerías que quiera, la cosa cambia.

D

#15 Solo usa SDL como "pantalla" para visualizar los píxeles que genera. Lo demás es C puro.

Maki_

Avatares redondos! Y haría que me sobraran muchos caracteres sólo para dar más rabia.

afojyhad
D

#28 http://wurstcaptures.untergrund.net/music/?oneliner=((t%5E(t%3E%3E64%7Ct%3E%3E11)%2670%26t%3E%3E8))*(t%26t%3E%3E12%7Ct%3E%3E14)%2B(t%5Et%3C2)%2B(t%26t)-(t%3E%3E4)%2B(t%26%26t)-(t-t*4%2Bt)&oneliner2=&t0=0&tmod=0&duration=130&separation=0&rate=22050

Please, bitch

D

#28 #30 Si os va el tema ese "music oneliner player" nació por estos lares:
https://www.pouet.net/topic.php?which=8357&page=1
Y en ese hilo (muy recomendable) hay ejemplos a montones, algunos muy buenos como este:
http://wurstcaptures.untergrund.net/music/?oneliner=t*(0xCA98CA98%3E%3E(t%3E%3E9%2630)%2615)%7Ct%3E%3E8&rate=8000

D

nada, yo tengo una vida

deabru

Interesante método para comprimir código con DEFINE's.

D

Este tio hace cosas parecidas:

http://bellard.org/

http://bellard.org/projects.html

Es el padre de Qemu y FFMPEG (Usado por VLC y demás).

D

Y luego hay cosas como esto:

http://www0.us.ioccc.org/2004/arachnid.c

D

#include

int main() int a;
return a;//Soy un temerario
">

Nova6K0

Se nota que es un concurso, si programase yo eso me caería una buena bronca de mi profesor de Radiocomunicaciones, por no poner comentarios. lol

En todo caso es una maravilla. Es más estos concursos siempre salen maravillas. Creo recordar de alguien que un año, hace pocos años vamos, hizo un juego entero que se basaba todo en matemática para crear la música y los niveles en tiempo real.

Salu2

RojoVelasco

Más de alguno programa parecido en mi empresa. No hay Dios que entienda nada.

D

Aquí quería decir un detalle, ¿valorariamos como buen cirujano a alguien que sepa hacer cirugas a corazón abierto con un juego de cubertería?

Aviso que mi intención no es desprestigiar a nadie, evidentemente hay mejores programadores que otros, sin embargo hacerlo en medida a este concurso, me parece exactamente lo que mi ejemplo, absurdo. Ahora en informática hay otras prioridades, y según lo que programes ahorrarte unos bits en booleanos metiendolos juntos en un mismo byte no tiene tanto sentido y te crea dependencias complicadas de modificar en el futuro.

Tampoco tiene tanto sentido optimizar el código cuando el compilador hace un trabajo mucho mejor. Esto es un concurso, así que vale, pero en un proyecto real hay que saber cuando eres tacaño con los recursos y cuando es mejor ser flexibles.

D

#43 "Tampoco tiene tanto sentido optimizar el código cuando el compilador hace un trabajo mucho mejor."

Intenta programar un emulador de Play Station para ARM sin XV ni OpenGL ni nada por el estilo y que te salga rápido.

El compilador optimiza, pero para ciertas cosas, meter mano a bajo nivel es imprescindible.

http://notaz.gp2x.de/pcsx_rearmed.php

D

#44 Por eso digo que en un proyecto real hay que saber cuando haces una cosa u otra, optimizar solo porque eres guay, es una chorrada.

Y por cierto, date cuenta que ese en particular es un proyecto "muerto", programas un emulador para un sistema que ya no se desarrolla, tus requerimientos estas congelados, no cambian.

D

Depende de las librerías que te dejen usar.

S

con librerias externas que ocupan cientos de megas yo tambien hago el windows 8 con 3 lineas

D

#32 Te equivocas, SDL solo dibuja la matriz de pixeles que genera en un recuadro. Ejerce de "pizarra", nada más. La pantalla VGA, el código de arranque para los disquetes, disco duro y demás está en la BIOS externa del emulador, que es exactamente el funcionamiento de aquellos PC con CPU 8086 de Intel

Así que sí, ha creado un emulador de PC XT.

D

Estoy de acuerdo con muchos comentarios de aqui. Hay programadores y programadores, estan los de arrastrar y soltar y estan los "primos lejanos de Chuck Norris", y estoy totalmente de acuerdo, para que TODOS lo puedan entender, de ahi que a algunos nos contratan las carnicas, a otros no se quien y otros exigen lo que se les canta en sueldo, y a los envidiosos, nada de excusas, que ellos son buenos y nosotros malos ! printf("Hostias !")

D

Yo programo en Objective-C, que C es de perroflautas. Tengo pasta => uso Mac. Tú no.

D

Ahora ya sabeis porque a los "programadores" de hoy os pagan 800€ .Mucho me parece,os deberian pagar menos.

La necesidad aviva el ingenio, y cuando solo tienes 4k de memoria ,tienes mucha necesidad.

D

#24 Emulador de Spectrum 48k. Funciona en un i386 con DOS y compatibles como FreeDOS. Se creó en la guerra yugoslava mientras los programadores esquivaban el fuego de los francotiradores.

http://www.worldofspectrum.org/warajevo/Story.html

s

#20 Estudio ingeniería informática, y el profesor nos dice: "Si ahora el Eclipse os lo hace todo" Java

aironman

#50 profesores malos hemos tenido todos

neyla

#include

int main()
return 0;
">

b

#include
int main()
#1 and #2 n ;)");
return 0;
">

D

#2 puts("POLLA");

D

#1 Falta de uso... no problem google te ayuda: http://bit.ly/1eAhHvU A ver si alegras esa cara, lol