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
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
Beeindruckt von einer technischen Demo, die Bad Apple auf dem NES ausführt. Link zu Bad Apple, das auf einem Everdrive läuft
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