Memutar Bad Apple di Vim
-
Apa itu Bad Apple?
- Bad Apple adalah video musik yang menarik secara visual, dan sering disisipkan di berbagai tempat lalu digunakan sebagai meme.
- Ini dianggap sebagai meme yang mirip dengan menjalankan DOOM di kulkas pintar.
-
Mendapatkan frame
- Untuk memperoleh data setiap frame Bad Apple, repositori milik Felixoofed di-clone lalu dikonversi menjadi sekitar 6.500 PNG.
- Kode Python digunakan untuk mengubah setiap PNG menjadi array 2D yang terdiri dari 0 dan 1.
-
Menggambar di Vim
- Dengan menyisipkan gambar ke dalam grid teks, gambar dapat digambar di Vim.
- Fitur highlighting Vim digunakan untuk menerapkan warna yang sama pada karakter yang cocok.
- Font persegi panjang digunakan untuk mewujudkan piksel berbentuk persegi.
-
Menggambar persegi panjang arbitrer
- Fitur pencarian Vim dimanfaatkan untuk membuat pola yang mencocokkan baris dan kolom tertentu.
- Beberapa pola dapat digabung dengan operasi OR sehingga banyak persegi panjang bisa digambar sekaligus.
-
Mengubah frame menjadi persegi panjang
- Grid 90x120 dipecah menjadi persegi panjang untuk menghasilkan string pencarian.
- Berbagai algoritme digunakan untuk memilih pola pencarian yang optimal.
-
Menjalankannya di Vim
- Macro Vim digunakan untuk memutar video.
- Macro tersebut menetapkan pola pencarian lalu berpindah ke baris berikutnya sehingga bisa dijalankan berulang.
-
Penutup
- Proyek ini diselesaikan hanya dalam satu hari, dan jika lebih banyak waktu dicurahkan, ada beberapa peningkatan yang bisa dipertimbangkan.
- Proyek ini dipresentasikan pada minggu pertama di Recurse Center dan mendapat respons positif.
- Kodenya rumit, tetapi jika tertarik, bisa dilihat di GitHub.
1 komentar
Komentar Hacker News
Tanggapan bercanda tentang kepercayaan pada peningkatan performa 1.000x ala Nolen. Pernah memakai taktik serupa sebelumnya, tetapi tidak semuanya dipakai dalam satu hari
Terkesan dengan demo teknis menjalankan Bad Apple di NES. Menyertakan tautan yang memperlihatkan Bad Apple berjalan di Everdrive
Penjelasan tentang cara memindahkan makro Vim ke baris berikutnya agar bisa "diputar". Menyertakan perintah untuk menjalankan makro baris demi baris
Informasi tentang lampu tirai Govee yang dijual bulan lalu. Bisa mengunggah GIF animasi, dan berencana membuat GIF "bad apple"
Pendapat tentang masalah minimisasi persegi panjang. Penjelasan tentang proyek Vim yang mengizinkan tumpang tindih, berbeda dari masalah yang dibahas di StackOverflow
Pendapat bahwa generator solusi kandidat paralel adalah ide yang bagus. Butuh waktu untuk menyadari bahwa tidak perlu membuat algoritma yang optimal
Berbagi pengalaman menonton Piala Dunia 2006 di terminal dengan masuk ke server rumah lewat SSH dari kantor. Bandwidth tidak cukup sehingga cara lain tidak memungkinkan
Respons positif terhadap ide yang kreatif. Game-game yang menjadi dasarnya juga bagus, dan game bullet hell terasa menghipnotis
Pertanyaan tentang perkiraan waktu yang dibutuhkan untuk pekerjaan ini
Seperti yang diakui penulis, ini memang Vim tetapi bukan regex, melainkan "pencarian koordinat layar". Menggambar di Vim, tetapi bukan pencocokan pola