Reproducir Bad Apple en Vim
-
¿Qué es Bad Apple?
- Bad Apple es un video musical visualmente atractivo que se inserta en muchos lugares distintos y se usa como meme.
- Se percibe como un meme similar a ejecutar DOOM en un refrigerador inteligente.
-
Obtener los cuadros
- Para obtener los datos de cada cuadro de Bad Apple, se clona el repositorio de Felixoofed y se convierte en aproximadamente 6,500 PNG.
- Se usa código en Python para convertir cada PNG en un arreglo 2D compuesto por 0 y 1.
-
Dibujar en Vim
- Es posible dibujar en Vim insertando una imagen en una cuadrícula de texto.
- Se usa la función de resaltado de Vim para aplicar el mismo color a los caracteres coincidentes.
- Se implementan píxeles cuadrados usando una fuente cuadrada.
-
Dibujar rectángulos arbitrarios
- Se aprovecha la función de búsqueda de Vim para generar patrones que coincidan con líneas y columnas específicas.
- Se pueden combinar varios patrones con una operación OR para dibujar múltiples rectángulos de una sola vez.
-
Convertir cuadros en rectángulos
- Se descompone una cuadrícula de 90x120 en rectángulos para generar la cadena de búsqueda.
- Se elige el patrón de búsqueda óptimo usando varios algoritmos.
-
Ejecutarlo en Vim
- Se usa una macro de Vim para reproducir el video.
- La macro configura el patrón de búsqueda y pasa a la siguiente línea para poder ejecutarse repetidamente.
-
Cierre
- Este proyecto se completó en un solo día, y si se invirtiera más tiempo podrían considerarse algunas mejoras.
- El proyecto se presentó en la primera semana en Recurse Center y obtuvo una respuesta positiva.
- El código es complejo, pero si te interesa puedes revisarlo en GitHub.
1 comentarios
Opiniones de Hacker News
Reacción humorística sobre confiar en la mejora de rendimiento de 1,000x de Nolen. Antes había usado tácticas similares, pero no todas en un solo día
Quedó impresionado con el demo técnico de ejecutar Bad Apple en un NES. Comparte un enlace que muestra Bad Apple corriendo en un Everdrive
Explicación de cómo hacer que una macro de Vim sea "reproducible" moviéndola a la siguiente línea. Se comparte un comando para ejecutar la macro línea por línea
Información sobre las luces de cortina Govee que se vendieron el mes pasado. Se pueden subir GIF animados y planea hacer un GIF de "bad apple"
Opinión sobre el problema de minimización de rectángulos. Explicación de un proyecto de Vim donde se permite la superposición, a diferencia del problema discutido en StackOverflow
Opinión de que un generador paralelo de soluciones candidatas es una buena idea. Le tomó tiempo darse cuenta de que no era necesario crear el algoritmo óptimo
Comparte la experiencia de haber visto el Mundial de 2006 en la terminal, conectándose por SSH desde el trabajo a un servidor en casa. No había suficiente ancho de banda para hacerlo de otra forma
Reacción positiva a la idea creativa. Los juegos en los que se basa también son buenos, y los juegos de danmaku son hipnóticos
Pregunta sobre cuánto tiempo tomó aproximadamente el trabajo
Como reconoce el autor, es Vim, pero no son expresiones regulares sino "búsqueda de coordenadas de pantalla". Es dibujar en Vim, pero no hay coincidencia de patrones