जावास्क्रिप्ट की ग्यारह लाइनों ने इंटरनेट को तोड़ दिया। एक अनपब्लिश।
22 मार्च, 2016, 21:30 यूटीसी: एक डेवलपर ने अपने सभी 273 एनपीएम पैकेजों को अनपब्लिश कर दिया, जब एनपीएम ने "kik" पैकेज नाम मैसेजिंग ऐप Kik को सौंप दिया, जिसके पेटेंट एजेंट ने "आपके दरवाजे पर वकीलों की दस्तक" का वादा किया था।
22 मार्च, 2016, 21:30 यूटीसी: एक डेवलपर ने अपने सभी 273 एनपीएम पैकेजों को अनपब्लिश कर दिया, जब एनपीएम ने "kik" पैकेज नाम मैसेजिंग ऐप Kik को सौंप दिया, जिसके पेटेंट एजेंट ने "आपके दरवाजे पर वकीलों की दस्तक" का वादा किया था। 273 में से एक लेफ्ट-पैड है: ग्यारह लाइनें जो एक स्ट्रिंग के सामने रिक्त स्थान डालती हैं, जिन्हें महीने में 2.5 मिलियन बार डाउनलोड किया जाता है। मिनटों के भीतर Babel, React और Node के बिल्ड दुनिया भर में विफल हो गए, प्रति मिनट सैकड़ों। दस मिनट में एक फोर्क दिखाई देता है और कुछ भी नहीं बदलता, क्योंकि Babel लेफ्ट-पैड को लाइन-नंबरों के माध्यम से खींचता है, जो 0.0.3 को ठीक से पिन करता है। 23:55 पर एनपीएम एक बैकअप से हटाए गए संस्करण को पुनर्स्थापित करता है - रजिस्ट्री के इतिहास में पहली "अन-अन-पब्लिश" - और एक सप्ताह बाद 24 घंटे की अनपब्लिश नियम भेजता है। पोस्टमॉर्तम, एनपीएम के अपने खाते और Kik द्वारा प्रकाशित ई-मेल थ्रेड से: वह रजिस्ट्री जिसने किसी भी लेखक को बिना किसी निर्भरता जांच के किसी भी संस्करण को हटाने दिया, संक्रमणकालीन ट्री हर इंस्टॉलेशन पर लाइव हल किया गया, डिफ़ॉल्ट रूप से कोई लॉकफाइल नहीं। गिट ब्लेम: 60 एनपीएम / 25 Kik / 15 निर्भरता की आदत। फिक्स पर फैसला: SHIP IT।
लिखित संस्करण पढ़ें (अंग्रेजी) ↗
इस वीडियो में क्या शामिल है
- 11 मार्च: Kik के पेटेंट एजेंट ने Azer Koçulu को `kik` का नाम बदलने के लिए कहा; एक घंटे बाद: वकील "आपके दरवाजे पर दस्तक दे रहे हैं और आपके खाते बंद कर रहे हैं"; Azer: $30,000; Kik ने npm समर्थन को ई-मेल भेजा
- 18-20 मार्च: npm के सीईओ ने नाम Kik को हस्तांतरित किया ("उचित रूप से kik.com से संबंधित होने की उम्मीद करेंगे"); Azer ने अपने सभी मॉड्यूल हटाने के लिए कहा
- 22 मार्च, 21:30-23:55 यूटीसी: 273 पैकेज अप्रकाशित; [email protected] Babel, Atom, Node परियोजनाओं में 404s; 21:42 पर फोर्क 1.0.0; npm के सीटीओ ने 23:03 पर "un-un-publishing" ट्वीट किया; 23:55 पर बैकअप से 0.0.3 वापस - 2.5 घंटे
- 23 मार्च और 29 मार्च: npm का पोस्टमार्टम ("हमने गेंद गिरा दी") और नई नीति: केवल 24 घंटे के भीतर अप्रकाशित करें, हटाए गए नामों के लिए सुरक्षा प्लेसहोल्डर (2020 से 72 घंटे)
अनुवादित प्रतिलेख
मूल अंग्रेजी कथन से अनुवादित। उपलब्ध ऑडियो और कैप्शन YouTube द्वारा नियंत्रित होते हैं।
0:00 एक डेवलपर जावास्क्रिप्ट की ग्यारह लाइनें हटाता है, और मिनटों के भीतर Babel, React और Node के बिल्ड दुनिया भर में विफल हो रहे हैं, प्रति मिनट सैकड़ों। फ़ंक्शन left-pad है। यह एक स्ट्रिंग को रिक्त स्थान से भरता है, और शाम के अंत तक npm वह एक काम करता है जिसके लिए वह कहता है कि वह नहीं कर सकता: हटाए गए संस्करण को पुनः प्रकाशित करना। यह कैसे होता है, यह क्यों संभव है, और किसे दोष मिलता है। यह The Daily Diff है, पोस्टमॉर्तम। 11 मार्च। Kik, मैसेजिंग ऐप में एक पेटेंट एजेंट,
0:26 Azer Koçulu को ईमेल करता है: अपने npm पैकेज का नाम बदलें, kik हमारा ब्रांड है। Azer मना कर देता है। एक घंटे बाद: हमारे ट्रेडमार्क वकील आपके दरवाजे पर दस्तक देने वाले हैं और आपके खाते बंद करने वाले हैं। Azer एक कीमत बताता है, तीस हजार डॉलर, और Kik उस थ्रेड को npm समर्थन को फॉरवर्ड करता है। 18 मार्च। npm के सीईओ ने यह फैसला सुनाया कि npm install kik टाइप करने वाला कोई भी व्यक्ति मैसेजिंग
0:48 ऐप की उम्मीद करता है, और नाम सौंप देता है। Azer अपने सभी डिलीट किए गए सामान के लिए पूछता है। दो दिन बाद वह खुद ऐसा करता है: दो सौ तिहत्तर पैकेज। 22 मार्च, 21:30 यूटीसी। प्रत्येक बिल्ड जो left-pad के लिए पहुँचता है उसे 404 मिलता है। दस मिनट बाद एक अजनबी इसे 1.0.0 के रूप में पुनः प्रकाशित करता है, और कुछ भी नहीं बदलता है, क्योंकि Babel और Atom इसे line-numbers नामक एक पैकेज के माध्यम से लोड करते हैं, जो ठीक 0.0.3 चाहता है।
1:13 23:03 पर npm के सीटीओ ट्वीट करते हैं: un-un-publishing। 23:55 पर, 0.0.3 एक बैकअप से वापस आ जाता है। ढाई घंटे। एक व्यक्ति यह क्यों कर सकता है? तीन कारण। npm पर कोई भी संस्करण उसके लेखक द्वारा हटाने योग्य है, तुरंत, बिना यह जांचे कि कौन इस पर निर्भर करता है। दूसरा, निर्भरताएँ संक्रमणकालीन हैं: Babel नहीं जानता कि left-pad मौजूद है, यह line-numbers को जानता है, और पूरी ट्री हर इंस्टॉलेशन पर लाइव हल होती है।
1:36 तीसरा, 2016 में कोई भी डिफ़ॉल्ट रूप से उस ट्री को पिन नहीं करता है; लॉकफाइलें ऑप्ट-इन हैं, इसलिए हर सीआई रन इंटरनेट से फिर से पूछता है कि ग्यारह लाइन कोड कैसे दिखते हैं। एक रजिस्ट्री, जिसे कोई भी नहीं चलाता जो उस पर निर्भर करता है। गिट ब्लेम। npm, साठ प्रतिशत: इसके अपने पोस्टमार्टम में कहा गया है कि अप्रतिबंधित अप्रकाशन दर्द का कारण बना, और, उद्धरण, हमने गेंद गिरा दी। Kik, पच्चीस प्रतिशत: एक पेटेंट एजेंट, वकील नहीं, एक ऐसे नाम पर दरवाजे पर वकीलों का वादा कर रहा है जिसे Kik ने पहले ही उपयोग न करने का फैसला कर लिया था। निर्भरता की आदत, पंद्रह प्रतिशत: हर कोई जिसने npm-installed ग्यारह लाइनों को
2:06 उन्हें टाइप करने के बजाय। Kik सहित, जिसके बिल्ड भी टूट जाते हैं। ब्लास्ट रेडियस: दो सौ तिहत्तर पैकेज खींचे गए, उनमें से एक महीने में ढाई मिलियन बार डाउनलोड किया गया। फिक्स में ढाई घंटे लगते हैं; फ़ंक्शन में ग्यारह लाइनें लगती हैं। Hacker News पर, एक पोस्ट जिसमें पूछा गया था कि क्या हम प्रोग्राम करना भूल गए हैं, सत्रह सौ पॉइंट हिट करता है, ज्यादातर उन लोगों से जिनके बिल्ड अभी भी लाल हैं। फैसला, पोस्टमार्टम: SHIP IT।
2:26 npm बैकअप से पुनर्स्थापित करता है, अगले दिन पोस्टमार्टम पोस्ट करता है, और एक सप्ताह के भीतर वह नियम भेजता है जो अभी भी लागू है: आप चौबीस घंटे के लिए अप्रकाशित कर सकते हैं, उसके बाद आप एक इंसान से बात करते हैं। सोमवार: अपनी लॉकफाइल कमिट करें, और यदि कोई फ़ंक्शन ग्यारह लाइन का है, यह एक पैराग्राफ है, निर्भरता नहीं। मुझे वह घटना भेजें जिसके बारे में आपको अभी भी बात करने की अनुमति नहीं है, टिप्पणियों में, या daily diff dot dev पर। और आज के लिए यही अंतर है।
2:48 मैं Axrisi से निको हूँ। जिम्मेदारी से मर्ज करें।
स्रोत
- npm, Inc., "kik, left-pad, and npm" (Mar 23, 2016)blog.npmjs.org
- npm, Inc., "changes to npm's unpublish policy" (Mar 29, 2016)blog.npmjs.org
- Azer Koçulu, "I've Just Liberated My Modules" (Mar 22, 2016; archive copy)web.archive.org
- Mike Roberts (Kik), "A discussion about the breaking of the Internet" — the full e-mail thread (Mar 23, 2016; archive copy)web.archive.org
- Laurie Voss (npm CTO) on X, Mar 22, 2016, 23:03 UTCx.com
- left-pad 0.0.3 on the npm registry (the eleven lines)registry.npmjs.org
- Hacker News, Mar 22, 2016 — "I've Just Liberated My Modules" (1,573 points)news.ycombinator.com
- Hacker News, Mar 23, 2016 — "NPM and Left-Pad: Have We Forgotten How to Program?" (1,725 points)news.ycombinator.com
- Hacker News, Mar 29, 2016 — "Changes to Npm's unpublish policy" (320 points)news.ycombinator.com
- The Register, Mar 23, 2016 — "How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript"www.theregister.com



