Hace 8 años | Por JackNorte a microsiervos.com
Publicado hace 8 años por JackNorte a microsiervos.com

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

Comentarios

D

#1 No, el kkrieger usa DirectX con llamadas. Tiene más mérito el assembler puro.

A

#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 ), 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.

editado:
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).

frankiegth

Para #8. Saludos desde un Intel Atom que comparte tu misma configuración.

Para #2. http://wos.meulie.net/pub/sinclair/books/

D

#14 #35 #41
http://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

D

#2 -> #75

smileyface

#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.

antuan

#23 ¿No serían 2^8184? (Número algo diferente, ahem)

Vaya, esto de no actualizar... gracias #25 :)

D

#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

A

#15 Si es ensamblador sólo irá en arquitecturas x86, no?

Vale parece ser que es para navegadores, fallo mio ^_^U

D

#16 Qué recuerdos, la de veces que habré puesto esa demo.

smileyface

#5 A8 y 4G, nos a joio, como para no ir bien lol
Por aquí Intel Atom 1,6GHz y 2GB RAM bastante llenos.

D

#28 no pasa nada, pero ten cuidado con lo que meas

antuan

#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

musg0

#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

antuan

#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

D

#48 En el motorora 68000 es posible, hay ortogonalidad de instrucciones, casi todas se pueden juntar con todas.

En X86 y Z80 no, #34.

smileyface

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. 😡

Peka

#4 A mi me va bien.AMD-A8 y 4GB.

D

#5

A mi me tarda en descargar, segun Estimated Time for Accomplishment

porcorosso

#4 Dale un poco de tiempo

D

#4 Lo míticos cracks de Paradox

uno_ke_va

#4 He intentando ejecutar la animación ganadora y se me cuelga el Firefox.

BLCK4777 was tested in the latest versions of Opera, Chrome & Firefox.

Firefox suffers with all the glow, so please use Opera or Chrome.

D

Es ahora cuando la empresa lider en el sector le ofrece un contrato de becario?

D

#27 Ambiente joven y dinámico, posibilidades de crecimiento, salario según experiencia.

D

#79 lol lol lol

te ha faltado añadir: formacion continua a cargo de la empresa (AKA te lo miras en google).
Se busca persona "proactiva"(palabra que no existe en el diccionario), con ganas de trabajar, que le gusten los retos (AKA echar mas horas que un reloj gratis).

NapalMe

¿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.

y

Parece mentira que hasta #73 nadie se haya percatado.

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

Ramanutha

#51 Y Belén Esteban consiguió batir récord de audiencia cuando la sometieron al polígrafo en Tele 5. Debe ser una artista maravillosa.

D

#52 hombre, Belén Esteban no sirve para nada; Windows sirve para todo.

Ramanutha

#53 Pues yo hago las mismas cosas sin Windows, y me evito grandes problemas que tendría si lo usara.

Los nuevos parches de Microsoft hacen que Windows 7, 8 y 8.1 espíen igual que Windows 10

Hace 8 años | Por --174-- a redeszone.net


Windows parece el Belén Esteban de los sistemas operativos.

D

#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.

Ramanutha

#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.

D

#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.

Ramanutha

#59 Tal vez, pero eso hace que Windows sea una basura, un sistema operativo asqueroso al que evitar.

D

#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.

Ramanutha

#61 Lo mismo que pretendes tú haciendo publicidad de anuncio de Tele 5, pero en el otro lado .

D

#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.

Ramanutha

#63 Tú eres un anuncio publicitario ambulante, y el Windows es una mierda.

D

#64 y tú eres tonto. Simplemente.

Ramanutha

#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.

D

#67 Claro, porque TODO el mundo paga Windows.

Genious.

Ramanutha

#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.

D

#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.

Ramanutha

#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.

D

#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.

Ramanutha

#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.

D

#96 ¿Tienes idea de lo realmente buena que era Dreamcast?

E

#56 Como dices que no quieres trollear te responderé :

No tener que instalar drivers, una sola instalación y tener el sistema listo, el equipo se siente más ágil (hasta el punto que miraba con cara rara que me vendieran SSDs, a penas notaba que fuese más rápido que lo mío), ah, y que las actualizaciones no me rompen los huevos cuando quiero encender o apagar mi equipo. El último punto, cuando estás acostumbrado se nota mucho.

Tiene sus contras, por supuesto, como todo: poca variedad de programas especializados y videojuegos (esta es la única que encuentro común, luego según la distro puede que sea más o menos estable y más o menos difícil de configurar algunas características como la aceleración gráfica con drivers comerciales).

D

#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 comoRamanuthaRamanutha

Un saludo.

ikipol

¿Por qué no se envía la página oficial http://archive.assembly.org/2015/1k-intro en vez de ésta que NO aporta nada y solo chupa tráfico del que crea contenido?

Magankie

Se para un poco en mi pc...

2x Intel Xeon E5-2697
32GB RAM
Nvidia 980 Ti

El explorer se me cuelga...

frankiegth

Para #18. No te preocupes, ya se cuelga el solo... lol
(#11)

Ramanutha

#18 Y Windows.

D

#46 Windows va muy bien y lo usa casi todo el mundo.

Vamvan

#11 A mi me peta el controlador de la gráfica, pero me da para que vea a pedos la introducción lol

D

#11 Con chrome se ve estupendo en un i7 12GB RAM nVidia GTX 660

Claudio_7777

#11
2x Intel Xeon E5-2697
32GB RAM
Nvidia 980 Ti

El explorer se me cuelga...


epic fail. mucho pc y poco conocimiento de software.

Magankie

#42 Tal vez debí poner /joke lol

Claudio_7777

#44 juas, mira que lo pensé tras escribir la respuesta y releer tu comentario; este tio lo mismo está de coña lol

D

#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)

D

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.

Nova6K0

Eso sí es optimizar el código, y no lo que hacen muchos de los programadores de videojuegos de ahora...

Salu2

sharcashmo

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.

Horrorizado me hayo.

Mister_Lala

#20 Nosotros sí que nos hallamos horrorizados

http://www.wordreference.com/conj/EsVerbs.aspx?v=hallar

sharcashmo

#36 Jajajaja!

sonixx

#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

sharcashmo

#55 Para mí el megabyte es y será 2^20, y no 10^6.

Entre eso y lo del hayo, me cubrí de gloria

E

#20 Ya puedes ver con otros ojos los gigas que "te faltan" del último disco que compraste (En efecto, compraste GB del sistema internacional, no GiB). Y de paso entiendes por qué es necesario cambiar el nombre a las potencias de 2 usadas en informática

D

"técnicamente dentro del 1 KB permitido" pues no: https://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.

sonixx

#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.

E

#58 Si nos quedamos en los 90 si.

http://members.optus.net/alexey/prefBin.xhtml

Faced with this reality, in January 1997 the IEEE Standards Board has decided that IEEE standards will use the conventional, internationally adopted, definitions of the SI prefixes. Mega will mean 1 000 000, except that the base‐two definition may be used (if such usage is explicitly pointed out on a case‐by‐case basis) until such time that prefixes for binary multiples are adopted by an appropriate standards body.

In 1998 the 7th edition of the SI Brochure was published, which included a marginal note, explicitly stating that SI prefixes should not be used to indicate powers of 2.

[...]

These prefixes for binary multiples, which were developed by the IEC Technical Committee (TC), Quantities and Units, and Their Letter Symbols, with the strong support of CIPM, IEEE and ISO, were first adopted by the IEC as Amendment 2 to IEC International Standard IEC 60027‐2: Letter symbols to be used in electrical technology — Part 2: Telecommunications and electronics. The full content of Amendment 2, which has a publication date of 1999‐01, is reflected in the table above and the suggestion regarding pronunciation. Subsequently the contents of this Amendment were incorporated in the second edition of IEC 60027‐2, which has a publication date of 2000‐11 (the first edition was published in 1972). The complete citation for this revised standard is IEC 60027‐2, Second edition, 2000‐11, Letter symbols to be used in electrical technology — Part 2: Telecommunications and electronics.


Es difícil cambiar algo que llevamos toda la vida haciendo, pero hay que entender que seguir usando mal los prefijos del SI "porque yo lo valgo" sólo nos puede llevar a estrellar un cohete .

Una pena que el documento del IEC sea de pago.

sonixx

#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.

E

#97 No entiendo ¿Sigo sin? ¿Hemos hablado antes de ello? ¿Y cuál es el sistema nacional que tiene un sistema diferente?

Decía que es una pena porque están en la ISO y son parte del sistema métrico internacional, pero como es de pago no te puedo pegar un enlace para que lo veas.

Traduzco rápido y mal:

Frente a esta realidad, en enero de 1997 el IEEE Standards decidió que los estándares de la IEEE usuarían la definición convencional de los prefijos del SI, internacionalmente adoptada. Mega significaría 1.000.000, a no ser que la definición en base dos requiriese ser utilizada (si tal uso se indica explícitamente en cada caso específico) hasta que estos prefijos para múltiplos binarios fuesen adoptados por un ente de estandarización apropiado.

[...]

Estos prefijos para múltiplos binarios, que fueron desarrollados por el Comité Técnico del IEC, con fuerte apoyo del CIPM (Comité Internacional de Pesos y Medidas), IEEE e ISO, fueron adoptados por primera vez como enmienda del Estándar Internacional IEC 60027-2: Letter symbols to be used in electrical technology - Part 2: Telecommunications and electronics. El contenido completo de la enmienda 2, la cual fue publicada en enero de 1999, se refleja en la tabla anterior [La segunda del link] así como la sugerencia de pronunciación. Seguidamente, los contenidos de esta enmienda fueron incorporados en la segunda edición del IEC 60027-2, con fecha de publicación noviembre de 2000.

[Después sigue una conológica de eventos relacionados y entidades que han recomendado esta nomenclatura: IEEE, ANSI, CIPM, W3C...]
En mayo de 2008 el BIPM (Oficina Internacional de Pesas y Medidas) publicó la 8a edición de su catálogo del SI con una nota al margen extendida que describe los prefijos IEC 60027-2 y defiende su utilización en el campo de las tecnologías de la información para evitar el uso incorrecto de los prefijos del SI.


Yo también digo "mega" siempre, porque "mebi" me suena como el culo, pero a la hora de hacer algo profesional o de ponerlo por escrito intento poner MiB porque veo necesario abandonar la mala decisión de alterar los prefijos del SI. (No está tan mal, siguen siendo "megas" solo que "binarias", ante la duda puedes decir "megas binarias", que es más largo pero suena mejor que "mebis").

sonixx

#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.

E

#99 Vamos a ver, es que es la jerga, porque ninguna institución estandarizadora te obliga nunca a nada. Según tu lógica ninguna unidad del Sistema Internacional es válida o tiene autoridad alguna.

Te lo están recomendando la práctica totalidad de organismos unificadores y estandarizadores, tanto los de ámbito tecnológico como IEC, IEEE, W3C como los generales como ISO o el mismísimo Bureau International des Poids et Mesures (y por tanto, implícitamente, exigiendo si quieres cumplir cualquier normativa que los entienda como autoridad, incluso en disputas legales).

Que yo en mi casa puedo llamar metro a mi gato y gramo al peso de mis huevos contabilizado a 3 de Enero de 1999. Ahora, buena suerte como denuncie a la tienda porque los 750 gramos de mantequilla que compré no corresponden a mi medición.

sonixx

#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

D

https://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) .

D
D

Parece que necesita un reactor nuclear para ejecutarse. No le veo ningún mérito.

mailman

AMD FX 8350 con Nvidia Quadro K620 y me va a tirones en Firefox

meneandro

Las demos mayores ya no son tanto realizar efectos chulos y exprimir los recursos del sistema, sino hacer arte:

y

A propósito la API de la que tira es Window.requestAnimationFrame()

https://developer.mozilla.org/es/docs/Web/API/Window/requestAnimationFrame

D

Sólo hay 66977856 programas posibles. Dan ganas de generarlos todos y enviárselos. Creo que sería como mucho 64GB. Bah.

D

#10 256 elevado a 1024 creo que son unas cuantas posibilidades más. (Y cuando digo unas cuantas digo unas cuantas)

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 ...

D

#13 No.
1023 bytes, 1023 * 8 = 8184 bits; cada bit puede ser o 0 o 1: 8184² = 66977856 programas posibles.

D

#24 Cierto. Meo culpa.

D

#24 En realidad son muchos menos, de hecho millones de millones de millones de [...] veces menos, porque los 1024 bytes tienen que incluir un mínimo de cabeceras para que sean ejecutables, sobre unos 97 bytes en windows, y unos 45 bytes en linux

D

#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.

D

#68 Pues... en realidad serían aún menos, porque no todas las combinaciones darían programas ejecutables válidos, muchos de ellos (¿la inmensa mayoría?) se colgarían o entrarían en bucles infinitos

D

#68 CPC no usaba el Z80?

En el spectrum es todo más simple

D

#77 en efecto, era un z80, igual que el MSX tanbien

piki.g.saraza

hey ¿alguien tiene un enlace para verlo en un navegador? es para verlo en vídeo de youtube pierde su gracia ¿el código está protegido?

1 2