Vim में Bad Apple चलाना
-
Bad Apple क्या है?
- Bad Apple एक विज़ुअली आकर्षक म्यूज़िक वीडियो है, जिसे कई जगह एम्बेड किया गया है और meme के रूप में इस्तेमाल किया जाता है.
- इसे smart fridge पर DOOM चलाने जैसी meme के तौर पर देखा जाता है.
-
फ्रेम प्राप्त करना
- Bad Apple के हर फ्रेम का डेटा पाने के लिए Felixoofed की repository को clone किया गया और उसे लगभग 6,500 PNG में बदला गया.
- Python कोड का उपयोग करके हर PNG को 0 और 1 से बनी 2D array में बदला गया.
-
Vim में ड्रॉ करना
- टेक्स्ट grid में चित्र डालकर Vim में चित्र बनाया जा सकता है.
- Vim की highlighting feature का उपयोग करके match हुए अक्षरों पर एक ही रंग लागू किया गया.
- square font का उपयोग करके square pixel लागू किए गए.
-
मनमाने rectangles बनाना
- Vim की search feature का उपयोग करके खास line और column को match करने वाले pattern बनाए गए.
- कई pattern को OR operation से जोड़कर एक साथ कई rectangle बनाए जा सकते हैं.
-
फ्रेम को rectangles में बदलना
- 90x120 grid को rectangles में तोड़कर search string बनाई गई.
- अलग-अलग algorithms का उपयोग करके सबसे उपयुक्त search pattern चुना गया.
-
Vim में चलाना
- Vim macro का उपयोग करके वीडियो चलाया गया.
- macro search pattern सेट करता है, अगली line पर जाता है, और दोहराकर चल सकता है.
-
समापन
- यह प्रोजेक्ट सिर्फ एक दिन में पूरा हुआ, और अगर अधिक समय लगाया जाए तो कुछ सुधारों पर विचार किया जा सकता है.
- Recurse Center में पहले हफ्ते इस प्रोजेक्ट को प्रस्तुत किया गया और सकारात्मक प्रतिक्रिया मिली.
- कोड जटिल है, लेकिन रुचि हो तो इसे GitHub पर देखा जा सकता है.
1 टिप्पणियां
Hacker News राय
Nolen के 1,000x performance improvement पर भरोसे को लेकर मज़ेदार प्रतिक्रिया। पहले भी इसी तरह की tactics इस्तेमाल की थीं, लेकिन सब कुछ एक ही दिन में नहीं किया था
NES पर Bad Apple चलाने वाले एक technical demo से प्रभावित थे। Everdrive पर चल रहे Bad Apple को दिखाने वाला link साझा किया
Vim macro को अगली line पर ले जाकर उसे "playable" बनाने के तरीके की व्याख्या। macro को line-by-line चलाने वाला command भी दिया
पिछले महीने बिक्री पर आए Govee curtain lights के बारे में जानकारी। इनमें animated GIF upload किया जा सकता है, और "bad apple" GIF बनाने की योजना है
rectangle minimization problem पर राय। StackOverflow में चर्चा किए गए problem से अलग, nested होना allowed है ऐसे Vim project के बारे में बताया
parallel candidate solution generator को अच्छा idea बताया। यह समझने में समय लगा कि perfect algorithm बनाना ज़रूरी नहीं है
2006 World Cup के दौरान काम की जगह से SSH के ज़रिए घर के server में login करके terminal पर मैच देखने का अनुभव साझा किया। bandwidth कम होने की वजह से दूसरा तरीका संभव नहीं था
इस creative idea पर सकारात्मक प्रतिक्रिया। जिन games पर यह आधारित है वे भी अच्छे हैं, और bullet hell games hypnotic लगते हैं
इस काम में लगभग कितना समय लगा, इस पर सवाल
जैसा कि लेखक ने खुद माना, यह Vim है लेकिन regular expressions नहीं बल्कि "screen coordinate search" है। Vim में drawing है, लेकिन pattern matching नहीं