1 puntos por GN⁺ 2025-01-13 | 1 comentarios | Compartir por WhatsApp

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

 
GN⁺ 2025-01-13
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

    • Bad Matrix: cómo imprimir bloques en la terminal
    • Animating Text Art in Javascript: cómo crear un efecto de animación imprimiendo texto en una cuadrícula fija
    • oxo: cómo imprimir un tablero de tres en raya en la terminal y usar expresiones regulares para verificar el resultado
    • Bad Apple es lo más impresionante
  • 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

    • Con audio, el tamaño de los datos es de aproximadamente 1 GB. Corre en un sistema donde un juego típico apenas ocupa unos cientos de KB
  • 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