1 poin oleh GN⁺ 2025-01-13 | 1 komentar | Bagikan ke WhatsApp

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

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

    • Bad Matrix: cara menampilkan blok di terminal
    • Animating Text Art in Javascript: cara menampilkan teks pada grid tetap untuk memberi efek animasi
    • oxo: cara menampilkan papan tic-tac-toe di terminal dan memeriksa hasilnya menggunakan regex
    • Bad Apple adalah yang paling mengesankan
  • Terkesan dengan demo teknis menjalankan Bad Apple di NES. Menyertakan tautan yang memperlihatkan Bad Apple berjalan di Everdrive

    • Dengan audio, ukuran datanya sekitar 1GB. Berjalan di sistem yang ukuran game biasanya hanya beberapa ratus KB
  • 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