GN⁺ की राय
- यह लेख उन 'cursed hacks' के बारे में है, जिनमें software और technology का रचनात्मक और कभी-कभी असामान्य तरीकों से उपयोग करके मनचाहा परिणाम हासिल किया जाता है.
- technology enthusiasts और software engineers के लिए, ऐसे hacks तकनीक की सीमाओं से आगे बढ़कर रचनात्मकता दिखाने की प्रेरणा दे सकते हैं.
- यह विषय तकनीक की लचीलापन और उपयोगकर्ताओं की रचनात्मक समाधान खोजने की क्षमता को उजागर करता है, और कभी-कभी तकनीक को उसके मूल इरादे से अलग तरीके से इस्तेमाल करके चौंकाने वाले नतीजे पाने के उदाहरणों की पड़ताल करने में रुचि जगाता है.
1 टिप्पणियां
Hacker News राय
एक startup ने Microsoft Outlook के लिए एक plugin बनाया था, और वह सफल रहा। ग्राहकों को Outlook Express के लिए वही फीचर चाहिए था, लेकिन OE में plugin architecture नहीं था। हालांकि, Windows hooks और DLL injection का उपयोग करके एक macro system बनाया जा सकता था। यह system स्क्रीन पर होने वाली हर चीज़ देख सकता था, लेकिन पूरी तरह काम करता था। लंच के समय मज़ाक में कहा गया कि OE users को मनाना चाहिए कि वे स्क्रीन की ओर न देखें, और यह विचार सचमुच काम कर गया। तरीका यह था कि पूरे desktop का screenshot लेकर उसे full screen में दिखाया जाए, GUI manipulation छिपा दी जाए, फिर OE के update होने तक इंतज़ार किया जाए, और उसके बाद full-screen overlay हटा दिया जाए.
1999 में, तुर्की के लोकप्रिय social platform Eksi Sozluk को एक single text file को database की तरह इस्तेमाल करके बनाया गया। सिर्फ 3 घंटे में, बिना किसी web framework के, Delphi में लिखी गई EXE file से साइट बनाई गई। अब यह .NET/MySQL का उपयोग करता है, और तुर्की सरकार द्वारा "राष्ट्रीय सुरक्षा" जैसे कारणों से प्रतिबंधित किया गया है, लेकिन फिर भी लोकप्रिय है, और प्रतिबंधित domain के बावजूद अब भी एक वैध business entity है, इसलिए tax देता है और content deletion requests स्वीकार करता है.
90 के दशक में HBO में consulting करते समय, MS Mail on Mac server से MS Exchange on PC में migration का काम चल रहा था। समस्या यह थी कि Mac के MS Mail में address book export feature नहीं था, इसलिए executive assistants को contacts एक-एक करके कॉपी करने पड़ते थे। इसे हल करने के लिए स्क्रीन hotkey tool के साथ प्रयोग किया गया, और एक ऐसे tool का उपयोग करके, जिसमें पूरी programming language थी, contacts को अपने-आप CSV file में बदलने वाला tool बनाया गया जिसे Exchange में import किया जा सके.
Google Chrome के शुरुआती दिनों में, उसे Windows screen readers के साथ compatible बनाने का काम मिला। Chrome का design Firefox या IE से अलग था, इसलिए accessibility API को सही तरह implement करना चुनौतीपूर्ण था। इसे static web pages पर काम करने लायक बनाने की कोशिश की गई, लेकिन screen readers ने Chrome में web-specific features चालू नहीं किए। आखिरकार, जब Chrome के executable का नाम बदलकर firefox.exe किया गया और फिर चलाया गया, तो सब कुछ काम करने लगा। बाद में screen reader vendors से संपर्क करके कहा गया कि Chrome को web browser की तरह treat करें.
15 साल से भी पहले, mobile CPU पर gigabytes के text को index करने का काम किया। Word normalization logic बहुत धीमा था, इसलिए cache का इस्तेमाल करके speed काफी बढ़ाई गई। Cache eviction logic बनाते समय, desktop simulator में चीज़ें तेज़ हुईं लेकिन embedded device पर धीमी हो गईं। अंत में सबसे सरल eviction logic के साथ product ship किया गया.
Database boot-crash loop में फँसा हुआ था, और एक खास table के लिए innodb_history_list corrupt हो गई थी। Database तुरंत crash हो जाता था, इसलिए session खोलकर table delete करना संभव नहीं था। कई terminal windows खोली गईं और "while true; do mysql -e 'drop table xyz;' done" चलाया गया, और लाखों कोशिशों के बाद database से connect होकर table हटाने में सफलता मिली.
जब पहले कंप्यूटर का CD drive खराब हो गया, तो नया खरीदने के पैसे नहीं थे, इसलिए लगभग एक साल तक floppy disks का इस्तेमाल किया। आखिरकार drive को खोलकर समस्या ढूँढी गई, और पोलैंड की sausage kielbasa का उपयोग gear पर lubricant की तरह करके drive को ठीक किया गया.
30 साल पुराना natural gas heater smart thermostat को support नहीं करता था, इसलिए plastic gear को thermostat wheel से जोड़ा गया और उसे Raspberry Pi से जुड़े servo के साथ चलाकर तापमान नियंत्रित करने वाला system बनाया गया.
Retail FX में काम करते समय, ग्राहक अक्सर उस price पर विवाद करते थे जो वे देख रहे थे और जिस price पर order डाला गया था। इसे हल करने के लिए, trade button क्लिक करते समय price को log करने वाला solution बनाया गया। Log file में Java Swing GUI elements को ASCII art में बदलकर रिकॉर्ड किया गया.
Production service में पूरे SSD को mmap करके उसे C++ data structures में cast करने का तरीका इस्तेमाल किया गया। उस SSD पर कोई file system नहीं था, और data से भरे विशाल struct arrays सीधे उसी पर store किए गए थे। अगर SSD fail हो जाए तो backup से सारा data restore करना पड़ता था, लेकिन यह तरीका हैरान करने वाली हद तक तेज़ और सस्ता था.