1 Punkte von GN⁺ 2025-01-13 | 1 Kommentare | Auf WhatsApp teilen

Bad Apple in Vim abspielen

  • Was ist Bad Apple?

    • Bad Apple ist ein visuell ansprechendes Musikvideo, das an vielen Orten eingebaut wurde und als Meme verwendet wird.
    • Es wird als ein ähnliches Meme wahrgenommen wie DOOM auf einem smarten Kühlschrank auszuführen.
  • Frames beschaffen

    • Um die Daten jedes Frames von Bad Apple zu erhalten, wurde das Repository von Felixoofed geklont und in etwa 6.500 PNGs umgewandelt.
    • Mit Python-Code wurde jedes PNG in ein 2D-Array aus 0 und 1 umgewandelt.
  • In Vim zeichnen

    • Indem Bilder in ein Textgitter eingefügt werden, kann man in Vim zeichnen.
    • Mit der Highlighting-Funktion von Vim wird auf übereinstimmende Zeichen dieselbe Farbe angewendet.
    • Mit einer quadratischen Schriftart werden quadratische Pixel umgesetzt.
  • Beliebige Rechtecke zeichnen

    • Mithilfe der Suchfunktion von Vim werden Muster erzeugt, die bestimmte Zeilen und Spalten abgleichen.
    • Mehrere Muster können mit einer OR-Operation kombiniert werden, um mehrere Rechtecke auf einmal zu zeichnen.
  • Frames in Rechtecke umwandeln

    • Ein 90x120-Gitter wird in Rechtecke zerlegt, um Suchstrings zu erzeugen.
    • Mit verschiedenen Algorithmen werden die optimalen Suchmuster ausgewählt.
  • In Vim ausführen

    • Mit einem Vim-Makro wird das Video abgespielt.
    • Das Makro setzt das Suchmuster, bewegt sich zur nächsten Zeile und kann wiederholt ausgeführt werden.
  • Abschluss

    • Dieses Projekt wurde in nur einem Tag fertiggestellt; mit mehr Zeit ließen sich einige Verbesserungen in Betracht ziehen.
    • Das Projekt wurde in der ersten Woche am Recurse Center vorgestellt und erhielt positives Feedback.
    • Der Code ist komplex, kann aber bei Interesse auf GitHub eingesehen werden.

1 Kommentare

 
GN⁺ 2025-01-13
Hacker-News-Kommentare
  • Humorvolle Reaktion auf das Vertrauen in Nolens 1.000-fache Leistungssteigerung. Ähnliche Taktiken wurden in der Vergangenheit schon genutzt, aber nicht alle an einem einzigen Tag

    • Bad Matrix: wie man Blöcke im Terminal ausgibt
    • Animating Text Art in Javascript: wie man Text in einem festen Raster ausgibt, um einen Animationseffekt zu erzeugen
    • oxo: wie man ein Tic-Tac-Toe-Brett im Terminal ausgibt und das Ergebnis mit regulären Ausdrücken überprüft
    • Bad Apple ist am beeindruckendsten
  • Beeindruckt von einer technischen Demo, die Bad Apple auf dem NES ausführt. Link zu Bad Apple, das auf einem Everdrive läuft

    • Mit Audio, Datengröße etwa 1 GB. Läuft auf einem System, bei dem typische Spiele nur einige hundert KB groß sind
  • Erklärung, wie man ein Vim-Makro „abspielbar“ macht, indem es zur nächsten Zeile weitergeht. Befehl zum zeilenweisen Ausführen von Makros angegeben

  • Information zu den im letzten Monat verkauften Govee Curtain Lights. Man kann animierte GIFs hochladen, und es ist geplant, ein „bad apple“-GIF zu erstellen

  • Meinung zum Problem der Rechteckminimierung. Erklärung zu einem Vim-Projekt, bei dem Überlappungen erlaubt sind, anders als bei dem auf StackOverflow diskutierten Problem

  • Meinung, dass ein Generator für parallele Kandidatenlösungen eine gute Idee ist. Es dauerte eine Weile, bis klar wurde, dass man keinen optimalen Algorithmus bauen muss

  • Geteilte Erfahrung, die WM 2006 bei der Arbeit über SSH auf den Heimserver verbunden im Terminal angesehen zu haben. Wegen der geringen Bandbreite waren andere Methoden nicht möglich

  • Positive Reaktion auf die kreative Idee. Auch die zugrunde liegenden Spiele sind gut, und Bullet-Hell-Spiele wirken hypnotisch

  • Frage nach der ungefähren Zeit, die die Arbeit in Anspruch genommen hat

  • Wie der Autor selbst einräumt, ist es zwar Vim, aber keine regulären Ausdrücke, sondern eine „Bildschirmkoordinaten-Suche“. Es ist Zeichnen in Vim, aber kein Pattern Matching