El programa ganador del concurso de programación en 1 KB de Assembly 2015 fue BLCK4777 de p01/ribbon. En total, 1023 bytes, técnicamente dentro de los 1024 bytes del KB permitido
#2 Muchos de los que hoy nos dedicamos profesionalmente a la informática sentimos la magia de esta ciencia con programas chorras como ese, escribiendo código en Basic 1.0 y haciendo juegos del tipo master mind, ahorcado, hundir la flota, etc...
Gracias a eso tan básico yo tengo hoy un oficio y un puesto de trabajo sin haber hecho ni la carrera ni un módulo siquiera.
#2 Un respeto, que ese fue mi primer programa. Y de chorrada, nada, que en las carreras donde se dan asignaturas de programación, se empieza por un nivel aún más bajo.
Pues a mi me recuerda a los librillos de 'Aprende a programar en Basic', que estaban llenos de minijuegos absurdos de 1KB o menos. Eran tonterías del tipo 'Estoy pensando en un nº, adivínalo' y hacía un bucle diciendo si era mayor o menor hasta que lo acertabas, una auténtica chorrada que tenía su gracia en aquella época.
#23 No es por fastidiar, pero te estás equivocando bastante.
Efectivamente son 8184 bits, pero el numero no 81842 sino 28184 que es lo mismo que 2561024
imagina 4 bits. El número de combinaciones posibles no es 42=8, sino 24= 16
Igual que en un bytes (8 bits) no son 82=64 sino 28=256
Siempre es buen momento para recordar second reality de future crew www.youtube.com/watch?v=XtCW-axRJV8 ( para verla mínimo sound blaster pro o gravis )
También lo comparo con los cracks que se hacían, y algunos se seguirán haciendo, en ensamblador para desproteger juegos. Eran pequeñas animaciones con musiquilla y todo que, al estar hechas en ensamblador, apenas ocupaban unos KBs.
He intentando ejecutar la animación ganadora y se me cuelga el Firefox.
pasmo.speccy.org/bin/pasmo-0.5.4.beta2.zip
Si usas windows crea un nuevo archivo con el bloc de notas en la carpeta donde
descomprimas el emulador con este contenido y guardalo como "compilar.bat":
pasmo --tapbas archivo.asm archivo.tap .
Para compilar, mete todo el código ensamblador en el archivo "archivo.asm" y haz doble click en el bat.
#29 Por cierto, ahora que os leo (sobre todo por el error de Spamalot), me he acordado del libro que me estoy leyendo "El hombre anumérico". Cuando he visto el número inicial, 66977856, he pensado que directamente estaba mal porque sería muy fácil hacer ese número de programas con un script y probarlos todos
Obviamente, el autor del programa no habrá tirado de azar
¿Pero se ejecuta en navegador? Entonces no debe ser ensamblador...si no javascript... creo importante recalcarlo, ya que anula la mayoría de comentarios realizados.
#74 Pero con assembler a palo seco solo puedes rasterizar por software, vamos, tirando de CPU que sería considerablemente mas lento incluso paralelizándolo en varios hilos. Para emplear la GPU, no queda más remedio que usar una API existente y soportada por tus drivers. Esta demo mismamente, probablemente use WebGL (o incluso si solo usase los métodos del contexto de <canvas>), no es más que una de las múltiples convenientes capas de abstracción, que a día de hoy todas las demos usan.
EDIT: Bueno, si el sistema operativo te lo permite y conoces de antemano la tarjeta gráfica, supongo que podrías inicializar el contexto y rellenar el ring bufer con comandos a mano, pero hay que estar fumado para hacer eso (y es probablemente imposible en Windows / OSX).
Podéis compilar los programas con Pasmo tanto en Windows como en Linux con:
pasmo --tapbas fichero.asm fichero.tap
y lanzando el .tap el cualqueir emulador de Spectrum, como FUSE
#56 Y yo me ahorraría muchos problemas afiliándome al Pp, y comulgando con ruedas de molino. Si no te dice nada el enlace que te he puesto, es que vienes a hacer publicidad del sistema operativo como las teletiendas que ponen de madrugada.
¿Por qué no se envía la página oficial archive.assembly.org/2015/1k-intro en vez de ésta que NO aporta nada y solo chupa tráfico del que crea contenido?
#80 Creo que las recreativas de los bares llevaban Z80, qué buenos recuerdos Gracias por la información, en su día hubiera flipado, ahora llego a casa con los ojos algo quemados del curro, aunque si tengo una tarde libre le echaré un vistazo.
#91 qué pasa, que ahora te ha dado por intentar justificar opinones?
Que las instituciones ahorren me parece fenomenal. ¿Dónde hay que firmar? Pero deja que los usuarios elijan lo que más les convenga. Tenemos derecho a usar lo que nos plazca sin que venga alguien a dárselas de listo despreciando las preferencias ajenas.
#20 leyendo no me entero, para ti el megabyte de siempre es 10^20 o 2^20? que como veras ya te has hecho un lió.
A esto yo a ambos los llamo igual, solo que uso el truco de si es en trasferencia uso base decimal y si es en espacio de disco duro binaria.
De todos modos me gusta mas la binaria, es mas coherente con la informatica
#70 incluso cualquiera que tuviese la instrucción HALT (F4) (si hablamos de x86) se pararía, y si ... y si ... y si
¿Cúantos textos se pueden escribir aleatoriamente juntando 1024 letras (el alfabeto es mucho menor 28 (aprox) < 256)? 7.7x101481
¿Cuantos tienen sentido? Muchísimos (millones), pero muchos más no tienen sentido (se cuelgan)
#34 los opcodes del x86 no pueden ir de cada manera para hacer un programa que funcione correctamente así que poniendo los opcodes fijos seguro que salen menos combinaciones. Pero hacer un programa que estime esas combinaciones se me antoja demasiado dificil
Está muy bien, pero ojo que es un 1k de Javascript. Curioso que han abierto las competiciones a todo tipo de formatos con tal de que el fichero "ejecutable" no supere el tamaño permitido. Alucino eso sí con lo que hace el compresor con el fuente.
#48 Sí, seguro que al final hay bastantes restricciones (que desconozco), pero estaba echando un número gordo, y esos 66+ millones de programas no me parecían excesivos
#65 Tal vez, pero yo no le hago el trabajo sucio a MS para que tengan más dinero todavía sin que me paguen a mi un sólo céntimo, mientras soy un pobre muerto de hambre.
#86 Realmente, todos los españoles estamos pagando muchas licencias que usan las instituciones del estado. Y el Estado podría ahorrar mucho dinero y gastarlo en personas que hagan el mantenimiento si fuera necesario, y supondría muchos puestos de trabajo y dinero que no iría fuera del país.
#93 Ah hombre, perdón. Por favor, no te sientas inferior cuando alguien te diga que Windows es una mierda. Yo entiendo perfectamente que te sirve para lo que a ti te interesa. Pero también te pido que te acostumbres a que alguna gente se cabree porque, cuando va a comprar un portátil, y tenga que pagar un SO que no quiere, que esté cabreada porque le han robado dinero, y encima no se lo ha robado un pobre que lo necesitaba para poder comer o para llevarles un trozo de pan a sus hijos precisamente.
#95 No te lo tomes así por favor. No es superioridad, es luchar por las cosas en las que creen. Hacer publicidad que está beneficiando a otros no es luchar por lo que uno cree, es perder el tiempo de uno e infravalorarse uno a si mismo. Si tú le haces el trabajo sucio a otros, te estás mostrando inferior a esos a quienes les haces el trabajo.
Sobre el ejemplo que has puesto, Dreamcast es mejor que PS2.
Acabo de descubrir leyendo el artículo que un Megabyte es, según el IEC, un millón de bytes y no 1024x1024 bytes, como toda la vida . Al Megabyte de siempre (10^20 bytes) se le llama Mebibyte.
"técnicamente dentro del 1 KB permitido" pues no: en.wikipedia.org/wiki/Kibibyte . No es cuestión de versión geek o pedante sino del sistema internacional de medidas. Esa afirmación pudiera ser cierta cuando yo empecé a estudiar informática pero ahora no, sino le gusta al redactor que se aguante pero que no se haga el guay.
#54 ¿Exactamente qué problemas te ahorras? No lo digo en plan troll. Siento curiosidad.
Yo con Windows me ahorro varios problemas: compatibilidad con el 99'9% de los periféricos; compatibilidad con todos los juegos, gran cantidad información en línea sobre solucionar incidencias, etc.
En Linux para encontrar según que solución has de pasar por el desagradable experiencia de remitirte a foros de ayuda específicos y tener que aguantar los desaires del típico listo linuxero, que siempre busca la manera de intentar despreciar a los novatos para demostrar que él sabe mucho.
#60 Porque tú lo digas. En serio, no sé qué pretendéis demostraros a vosotros mismos con esa actitud tan talibán hacia los S.O propietario.
Para mí, un S.O en el que tienes que emular programas, tener una partición para él porque sinó olvídate de jugar y que tengas que hacerlo casi todo lo importante por comandos, sí que me parece asqueroso y a evitar.
#62 Yo defiendo un S.O que es de gran utilidad demostrada, fácil de usar, que tiene muchos recursos en línea y que corre todos los programas sin problema.
Tú sigue creyéndote el rey del mambo solo por usar un S.O libre y haciéndote el graSioso con la chorrada de la teletienda. Pero en fin, los niñosrata/fanboy sois así de irracionales.
Yo he dado argumentos, pero no puedo pedírselos a alguien que evidentemente no los tiene.
www.shadertoy.com/
Para los que os pique el gusanillo de como se hacen esta clase de intros. Un referente de la Demoscene, y un montón de shaders para aprender (y alucinar con ellos) .
#31 en realidad es 28192 había puesto 28184 porque @Spamalot ha empezado haciendo los cálculos con 1023 bytes, pero son 1024=1K=210 ... pero vamos, para la explicación sigue siendo la misma
#38 no es cuestión pedante, pero creo que la definición de KB no es obligatoria y la de KiB solo es una proposición o sea que teóricamente no es obligatoria ni internacional, eso tenia entendido hace muchos años.
#57 si es por el tema del espionaje... ¿realmente crees que a ti no te van a espiar por mucho linux que uses? Es más, serás el primero solo por usar algo distinto al resto.
Tampoco tendrás smartphone o móvil de los antíguos. Supongo.
#66 soy absolutamente consciente de esto (he programado en ensamblador desde el Amstrad, he hecho demos y programs residentes a toneladas en 8086, he programado rutinas gráficas en StrongARM para ordenadores RiscOS, ...), sólo estaba tratando de corregir el error de Spamalot a la hora de calcular las combinaciones posibles de 1024 bytes.
De hecho puedes reducir el número que he puesto en mas de 1000 ordenes de magnitud, y estaríamos hablando de números inabarcables.
#83 Si has valorado los pros y los contras con Linux y te quedas con este, será porque realmente te conviene.
A mí por ejemplo me gusta mucho más Windows, sin desmerecer Linux en ningún momento (tengo una partición con Ubuntu para practicar).
Para mí las actualizaciones no son un problema porque las tengo desactivadas y tampoco veo que se me cuelgue el PC con Win7 ni me da problemas de velocidad.
Eso sí, también he de decir que Ubuntu me resució completamente un portálil de hace años que sufría Windows Vista. Instalar y usar. Una maravilla.
Yo soy más de perfil jugador, para mí un linux no es una opción.
Al menos hemos tratado el tema de forma correcta y respetuosa. Se agradece que no todo el mundo sea niñorata fanboy como @Ramanutha
#94 No, si yo no me siento inferior por usar una HERRAMIENTA de trabajo distinta a la que usas tú. El problema es cuando tú te crees mejor que todos los demás porque usas un S.O distinto, lo cual es actitud absolutamente infantil y tontorrona, muy del estilo "mI PleyStetiON ezh mEjor k tHu Ekisvox".
¿Y concretamente cuánto te cobran por la licencia? Lo digo porque si son más de 400€ creo que hasta podrías denunciarlo.
Mientras no entiendas que usar un puto S.O no te hace más inteligente, poco más se puede sacar de ti.
#92 sigues sin entender lo que dije. Que un sistema internacional no puede obligar a uno nacional a acogerse a su sistema.
Por cierto, hazme el favor de traducirme parte, hoy estoy otra vez que no veo, pero el ieee no es sistema internacional aunque pueda ayudar en ello.
Yo siempre lo dije mega para todos, pero diferenciar entre transferencias y almacenamiento, que es sumamente sencillo.
#98 es que es lo que estoy diciendo, promueven, aconsejan, sugieren, defienden pero creo que a día de hoy no es un sistema plenamente internacional. Se intenta implementar como común, pero esta lejos de lo común.
Edito, que estén en la ISO no implican que sean internacionales.
#100 creo que no me entiendes no es lo mismo recomendar que indicar que es, por lo que tengo entendido actualmente no es una afirmación si no recomendación, no es equiparable al ejemplo de kg ni metro, ya que no tienen esa cuestión ni siquiera.
Ya puestos de ir de papistas, no es peso lo mismo que masa
#106 vamos a ver que mezclas, primero donde viene que el sistema métrico decimal es una recomendación? Una recomendación que yo tenga entendido no es un estandar.
Lo otro es buscar tres pies al gato? En electronica e informativa la base 2 es sagrada.
Pero me da que dentro de poco sacarán procesadores de 100bits porque es tonteria la base 2.
Repito no te vayas a otros sistemas, hablemos solo de este.
Yo me puedo confundir tu tambien, pero no me gusta entrar en debates que no aportan nada
#108 te basas para decir que una esta al nivel porque aparece en ambos? Repito dime donde pone que el sistema metrico es una recomendación? Contesta a algo de lo que te pido. Lo que pides ahora de la base 2 estas de coña?
Que me tengo que creer?
#110 perdona yo hablo que el uso de KiB es una recomendación, repito, deja de inventar.
Deja de decir lo que es KB y demás, sistema metrico decimal.
En serio lee lo que he puesto, tu decías que ambos son recomendaciones para justificar que ambos son internacionales o yo que se.
Repito hablo que la recomendación de diferenciar 1024 y 1000. Y tu te obsesionas que si sistema métrico y demas, tio deja de alterar lo que digo, que hasta lo que recuerdo no usar 1024 como cambio de orden es una recomendación, no obligación y errata.
Ahora no se, pero seguramente no cambie mucho ya que es muyyy utilizada
#112 ahora si que te digo una cosa en serio, primero eres informatico o electrónico a nivel de usar bits, porque es una burrada decir que la notación 1024 no se usa(binaria), cuando es sagrada para representar desde directamiento hasta almacenamiento.
En eso si que no tengo dudas, es una burrada, directamente no puedes manejar bien un sistema decimal en bits, mas aun se usaría octal o hexadecimal gracias a la fácil conversión entre binario y estos.
Por dios no digas eso
1 090 748 135 619 415 929 462 984 244 733 782 862 448 264 161 996 232 692 431 832 786 189 721 331 849 119 295 216 264 234 525 201 987 223 957 291 796 157 025 273 109 870 820 177 184 063 610 979 765 077 554 799 078 906 298 842 192 989 538 609 825 228 048 205 159 696 851 613 591 638 196 771 886 542 609 324 560 121 290 553 901 886 301 017 900 252 535 799 917 200 010 079 600 026 535 836 800 905 297 805 880 952 350 501 630 195 475 653 911 005 312 364 560 014 847 426 035 293 551 245 843 928 918 752 768 696 279 344 088 055 617 515 694 349 945 406 677 825 140 814 900 616 105 920 256 438 504 578 013 326 493 565 836 047 242 407 382 442 812 245 131 517 757 519 164 899 226 365 743 722 432 277 368 075 027 627 883 045 206 501 792 761 700 945 699 168 497 257 879 683 851 737 049 996 900 961 120 515 655 050 115 561 271 491 492 515 342 105 748 966 629 547 032 786 321 505 730 828 430 221 664 970 324 396 138 635 251 626 409 516 168 005 427 623 435 996 308 921 691 446 181 187 406 395 310 665 404 885 739 434 832 877 428 167 407 495 370 993 511 868 756 359 970 390 117 021 823 616 749 458 620 969 857 006 263 612 082 706 715 408 157 066 575 137 281 027 022 310 927 564 910 276 759 160 520 878 304 632 411 049 364 568 754 920 967 322 982 459 184 763 427 383 790 272 448 438 018 526 977 764 941 072 715 611 580 434 690 827 459 339 991 961 414 242 741 410 599 117 426 060 556 483 763 756 314 527 611 362 658 628 383 368 621 157 993 638 020 878 537 675 545 336 789 915 694… » ver todo el comentario
Gracias a eso tan básico yo tengo hoy un oficio y un puesto de trabajo sin haber hecho ni la carrera ni un módulo siquiera.
Efectivamente son 8184 bits, pero el numero no 81842 sino 28184 que es lo mismo que 2561024
imagina 4 bits. El número de combinaciones posibles no es 42=8, sino 24= 16
Igual que en un bytes (8 bits) no son 82=64 sino 28=256
Para #2. wos.meulie.net/pub/sinclair/books/
Por aquí Intel Atom 1,6GHz y 2GB RAM bastante llenos.
Sólo decirte que 256 elevado a 100 es un 60000000..... (240 ceros)
Sólo en un byte tienes 256 conbinaciones. En dos bytes tienes 256 * 256. En tres bytes 256 * 256 * 256 .... en 1024 tienes ...
www.wordreference.com/conj/EsVerbs.aspx?v=hallar
He intentando ejecutar la animación ganadora y se me cuelga el Firefox.
Te va a encantar.
El compilador de código Z80:
pasmo.speccy.org/bin/pasmo-0.5.4.beta2.zip
Si usas windows crea un nuevo archivo con el bloc de notas en la carpeta donde
descomprimas el emulador con este contenido y guardalo como "compilar.bat":
pasmo --tapbas archivo.asm archivo.tap .
Para compilar, mete todo el código ensamblador en el archivo "archivo.asm" y haz doble click en el bat.
Carga el TAP resultante en el emulador FUSE.
Dirección:
Si, es Sourceforge, pero es un ZIP.
sourceforge.net/projects/fuse-emulator/files/fuse/1.1.1/fuse-1.1.1-win
Obviamente, el autor del programa no habrá tirado de azar
EDIT: Bueno, si el sistema operativo te lo permite y conoces de antemano la tarjeta gráfica, supongo que podrías inicializar el contexto y rellenar el ring bufer con comandos a mano, pero hay que estar fumado para hacer eso (y es probablemente imposible en Windows / OSX).
www.etnassoft.com/biblioteca/codigo-maquina-del-zx-spectrum/
Podéis compilar los programas con Pasmo tanto en Windows como en Linux con:
pasmo --tapbas fichero.asm fichero.tap
y lanzando el .tap el cualqueir emulador de Spectrum, como FUSE
2x Intel Xeon E5-2697
32GB RAM
Nvidia 980 Ti
El explorer se me cuelga...
(#11)
Vale parece ser que es para navegadores, fallo mio ^_^U
Que las instituciones ahorren me parece fenomenal. ¿Dónde hay que firmar? Pero deja que los usuarios elijan lo que más les convenga. Tenemos derecho a usar lo que nos plazca sin que venga alguien a dárselas de listo despreciando las preferencias ajenas.
A esto yo a ambos los llamo igual, solo que uso el truco de si es en trasferencia uso base decimal y si es en espacio de disco duro binaria.
De todos modos me gusta mas la binaria, es mas coherente con la informatica
¿Cúantos textos se pueden escribir aleatoriamente juntando 1024 letras (el alfabeto es mucho menor 28 (aprox) < 256)? 7.7x101481
¿Cuantos tienen sentido? Muchísimos (millones), pero muchos más no tienen sentido (se cuelgan)
Vaya, esto de no actualizar... gracias #25 :)
Salu2
www.meneame.net/story/nuevos-parches-microsoft-hacen-windows-7-8-8-1-e
Windows parece el Belén Esteban de los sistemas operativos.
twitter.com/obrero_liberal
En X86 y Z80 no, #34.
En el spectrum es todo más simple
Sobre el ejemplo que has puesto, Dreamcast es mejor que PS2.
BLCK4777 was tested in the latest versions of Opera, Chrome & Firefox.
Firefox suffers with all the glow, so please use Opera or Chrome.
Horrorizado me hayo.
Yo con Windows me ahorro varios problemas: compatibilidad con el 99'9% de los periféricos; compatibilidad con todos los juegos, gran cantidad información en línea sobre solucionar incidencias, etc.
En Linux para encontrar según que solución has de pasar por el desagradable experiencia de remitirte a foros de ayuda específicos y tener que aguantar los desaires del típico listo linuxero, que siempre busca la manera de intentar despreciar a los novatos para demostrar que él sabe mucho.
Para mí, un S.O en el que tienes que emular programas, tener una partición para él porque sinó olvídate de jugar y que tengas que hacerlo casi todo lo importante por comandos, sí que me parece asqueroso y a evitar.
Tú sigue creyéndote el rey del mambo solo por usar un S.O libre y haciéndote el graSioso con la chorrada de la teletienda. Pero en fin, los niñosrata/fanboy sois así de irracionales.
Yo he dado argumentos, pero no puedo pedírselos a alguien que evidentemente no los tiene.
Entre eso y lo del hayo, me cubrí de gloria
Para los que os pique el gusanillo de como se hacen esta clase de intros. Un referente de la Demoscene, y un montón de shaders para aprender (y alucinar con ellos) .
archive.assembly.org/2015/1k-intro/aw50cm8-by-knl-ishy
2x Intel Xeon E5-2697
32GB RAM
Nvidia 980 Ti
El explorer se me cuelga...
epic fail. mucho pc y poco conocimiento de software.
1023 bytes, 1023 * 8 = 8184 bits; cada bit puede ser o 0 o 1: 8184² = 66977856 programas posibles.
Tampoco tendrás smartphone o móvil de los antíguos. Supongo.
De hecho puedes reducir el número que he puesto en mas de 1000 ordenes de magnitud, y estaríamos hablando de números inabarcables.
Aparte que el INFOFILE.txt lo detallaba explícitamente:
Author: p01 / ribbon
Category: 1k
Platform: JavaScript
Description: BLCK4777: a JavaScript explosion of light and triangles in 1023 bytes
developer.mozilla.org/es/docs/Web/API/Window/requestAnimationFrame
Genious.
A mí por ejemplo me gusta mucho más Windows, sin desmerecer Linux en ningún momento (tengo una partición con Ubuntu para practicar).
Para mí las actualizaciones no son un problema porque las tengo desactivadas y tampoco veo que se me cuelgue el PC con Win7 ni me da problemas de velocidad.
Eso sí, también he de decir que Ubuntu me resució completamente un portálil de hace años que sufría Windows Vista. Instalar y usar. Una maravilla.
Yo soy más de perfil jugador, para mí un linux no es una opción.
Al menos hemos tratado el tema de forma correcta y respetuosa. Se agradece que no todo el mundo sea niñorata fanboy como @Ramanutha
Un saludo.
¿Y concretamente cuánto te cobran por la licencia? Lo digo porque si son más de 400€ creo que hasta podrías denunciarlo.
Mientras no entiendas que usar un puto S.O no te hace más inteligente, poco más se puede sacar de ti.
Por cierto, hazme el favor de traducirme parte, hoy estoy otra vez que no veo, pero el ieee no es sistema internacional aunque pueda ayudar en ello.
Yo siempre lo dije mega para todos, pero diferenciar entre transferencias y almacenamiento, que es sumamente sencillo.
Edito, que estén en la ISO no implican que sean internacionales.
Ya puestos de ir de papistas, no es peso lo mismo que masa
Lo otro es buscar tres pies al gato? En electronica e informativa la base 2 es sagrada.
Pero me da que dentro de poco sacarán procesadores de 100bits porque es tonteria la base 2.
Repito no te vayas a otros sistemas, hablemos solo de este.
Yo me puedo confundir tu tambien, pero no me gusta entrar en debates que no aportan nada
Que me tengo que creer?
Deja de decir lo que es KB y demás, sistema metrico decimal.
En serio lee lo que he puesto, tu decías que ambos son recomendaciones para justificar que ambos son internacionales o yo que se.
Repito hablo que la recomendación de diferenciar 1024 y 1000. Y tu te obsesionas que si sistema métrico y demas, tio deja de alterar lo que digo, que hasta lo que recuerdo no usar 1024 como cambio de orden es una recomendación, no obligación y errata.
Ahora no se, pero seguramente no cambie mucho ya que es muyyy utilizada
En eso si que no tengo dudas, es una burrada, directamente no puedes manejar bien un sistema decimal en bits, mas aun se usaría octal o hexadecimal gracias a la fácil conversión entre binario y estos.
Por dios no digas eso