# አስራ አንድ መስመር ጃቫ ስክሪፕት ኢንተርኔትን አወከ። አንድ ያልታተመ።

Published: 2026-09-13

ማርች 22፣ 2016፣ 21:30 UTC: አንድ ገንቢ "kik" የተባለውን የጥቅል ስም npm ለKik የመልዕክት መላኪያ መተግበሪያ ከሰጠ በኋላ 273 የሆኑትን ሁሉንም የnpm ጥቅሎቹን አላሳተመም፣ የKik የፈጠራ ባለቤትነት ወኪል "ጠበቆች በርዎ ላይ እያንኳኩ" እንደሆነ ቃል ገብቶ ነበር። ከ273ቱ አንዱ left-pad ነው፡ በአንድ ወር ውስጥ 2.5 ሚሊዮን ጊዜ የወረደ፣ በአንድ string ፊት ለፊት ክፍተቶችን የሚያስቀምጥ አስራ አንድ መስመሮች። በጥቂት ደቂቃዎች ውስጥ Babel, React እና Node ግንባታዎች በመላው ዓለም ይወድቃሉ፣ በደቂቃ በመቶዎች የሚቆጠሩ። በአስር ደቂቃዎች ውስጥ አንድ fork ብቅ ይላል እና ምንም አይለውጥም፣ ምክንያቱም Babel left-padን በመስመር ቁጥሮች በኩል ስለሚጎትተው፣ ይህም 0.0.3ን በትክክል ያስተካክላል። በ23:55 npm የተሰረዘውን ስሪት ከምትኬ ይመልሳል — በመመዝገቢያው ታሪክ ውስጥ የመጀመሪያው "ያልተሰረዘ-የማይታተም" — እና ከአንድ ሳምንት በኋላ የ24-ሰዓት ያልታተመ ደንብ ይልካል። ከሞት በኋላ፣ ከnpm የራሱ ሂሳብ እና Kik ካሳተመው የኢሜል ክር: ምንም ጥገኛ ፍተሻ ሳይኖር ማንኛውም ደራሲ ማንኛውንም ስሪት እንዲሰርዝ የፈቀደው መዝገብ፣ በእያንዳንዱ ጭነት ላይ በቀጥታ የተፈታው ጊዜያዊ ዛፍ፣ በነባሪነት ምንም lockfile የለም። የጊት ተጠያቂነት፡ 60 npm / 25 Kik / 15 የጥገኝነት ልማድ። ለጥገናው የተሰጠው ብይን፡ SHIP IT።

Canonical: https://thedailydiff.dev/am/video/2026-09-13-left-pad/

## ይህ ቪዲዮ ምን ይሸፍናል

- ማርች 11: የKik የፈጠራ ባለቤትነት ወኪል አዘር ኮቹሉን \`kik\`ን እንዲቀይር ጠየቀው; ከአንድ ሰዓት በኋላ: ጠበቆች "በርዎ ላይ እያንኳኩ እና ሂሳብዎን እየዘጉ"; አዘር: $30,000; Kik ለnpm ድጋፍ ኢሜይል ይልካል።
- ማርች 18–20: የnpm ዋና ስራ አስፈፃሚ ስሙን ለKik አስተላልፏል ("ከkik.com ጋር የተያያዘ ነው ብሎ ምክንያታዊ በሆነ መልኩ ይጠብቃል"); አዘር ሁሉንም ሞጁሎቹን እንዲሰረዙ ጠየቀ።
- ማርች 22፣ 21:30–23:55 UTC: 273 ጥቅሎች አልታተሙም; left-pad@0.0.3 በBabel, Atom, Node ፕሮጀክቶች ውስጥ 404s; fork 1.0.0 በ21:42; የnpm CTO በ23:03 "ያልተሰረዘ-የማይታተም" ብሎ በትዊተር ገጹ ላይ ጽፏል; 0.0.3 በ23:55 ከምትኬ ተመልሷል — 2.5 ሰዓታት።
- ማርች 23 እና ማርች 29: የnpm ከሞት በኋላ ያለው ዘገባ ("አጣነው") እና አዲሱ ፖሊሲ: በ24 ሰዓታት ውስጥ ብቻ ማጥፋት፣ ለተወገዱ ስሞች የደህንነት መያዣዎች (ከ2020 ጀምሮ 72 ሰዓታት)።

## የተተረጎመ ግልባጭ

ከዋናው የእንግሊዝኛ ትረካ የተተረጎመ። የሚገኙ ኦዲዮ እና መግለጫ ጽሑፎች በYouTube ቁጥጥር ስር ናቸው።

0:00 አንድ ገንቢ አስራ አንድ መስመር ጃቫ ስክሪፕትን ይሰርዛል፣ እና በጥቂት ደቂቃዎች ውስጥ Babel፣ React እና Node ግንባታዎች በመላው ዓለም በመቶዎች በደቂቃ እየወደቁ ነው። ተግባሩ left-pad ነው። አንድ stringን በክፍተቶች ይሞላል፣ እና ምሽት ሲያልቅ npm ያንን አንድ ነገር ሊያደርገው አይችልም ያለው ያደርጋል፡ የተሰረዘውን ስሪት እንደገና ማተም። እንዴት እንደሚሆን፣ ለምን እንደሚቻል፣ እና ማን ተጠያቂ እንደሆነ። ይህ The Daily Diff ነው፣ ከሞት በኋላ። ማርች 11። በKik፣ የመልዕክት መላኪያ መተግበሪያ ውስጥ ያለ የፈጠራ ባለቤትነት ወኪል፣

0:26 ለአዘር ኮቹሉ ኢሜይል ይልካል፡ የnpm ጥቅልዎን ይቀይሩ፣ kik የእኛ ምርት ነው። አዘር አይሆንም ይላል። ከአንድ ሰዓት በኋላ፡ የንግድ ምልክት ጠበቆቻችን በርዎ ላይ እያንኳኩ እና ሂሳብዎን እየዘጉ ይሆናል። አዘር ዋጋ ይናገራል፣ ሰላሳ ሺህ ዶላር፣ እና Kik ክሩን ለnpm ድጋፍ ይልካል። ማርች 18። የnpm ዋና ስራ አስፈፃሚ npm install kik የሚተይቅ ማንኛውም ሰው የመልዕክት

0:48 መተግበሪያውን እንደሚጠብቅ ይወስናል፣ እና ስሙን ይሰጣል። አዘር የእሱ የሆኑትን ሁሉ እንዲሰረዙ ይጠይቃል። ከሁለት ቀናት በኋላ እሱ ራሱ ያደርገዋል፡ ሁለት መቶ ሰባ ሦስት ጥቅሎች። ማርች 22፣ 21:30 UTC። left-padን የሚደርስ እያንዳንዱ ግንባታ 404 ያገኛል። አስር ደቂቃዎች በኋላ አንድ እንግዳ እንደ 1.0.0 እንደገና ያትመዋል፣ እና ምንም አይለወጥም፣ ምክንያቱም Babel እና Atom የሚጭኑት line-numbers በሚባል ጥቅል በኩል ስለሆነ፣ ይህም 0.0.3ን በትክክል ይፈልጋል።

1:13 በ23:03 የnpm CTO በትዊተር ገጹ ላይ ጽፏል፡ ያልተሰረዘ-የማይታተም። በ23:55፣ 0.0.3 ከምትኬ ተመልሷል። ሁለት ተኩል ሰዓታት። አንድ ሰው ይህን ማድረግ የሚችለው ለምንድነው? ሦስት ምክንያቶች። በnpm ላይ ያለ ማንኛውም ስሪት በደራሲው ሊሰረዝ ይችላል፣ ወዲያውኑ፣ ማን በሱ ላይ እንደሚመሰረት ምንም ፍተሻ ሳይኖር። ሁለተኛ፣ ጥገኞች ጊዜያዊ ናቸው፡ Babel left-pad መኖሩን አያውቅም፣ line-numbersን ያውቃል፣ እና ሙሉው ዛፍ በእያንዳንዱ ጭነት ላይ በቀጥታ ይፈታል።

1:36 ሦስተኛ፣ በ2016 ምንም ነገር ያንን ዛፍ በነባሪነት አያስቀምጥም፤ lockfiles የሚመረጡ ናቸው፣ ስለዚህ እያንዳንዱ CI ሩጫ ኢንተርኔትን አስራ አንድ መስመር ኮድ ምን እንደሚመስል እንደገና ይጠይቃል። አንድ መዝገብ፣ በሱ ላይ በሚመሰረት ሰው የማይሰራ። git blame. npm፣ ስልሳ በመቶ: የራሱ ከሞት በኋላ ያለው ዘገባ ያልተገደበ ማጥፋት ህመሙን እንደፈጠረ ይናገራል፣ እና፣ ጥቅስ፣ አጣነው። Kik፣ ሃያ አምስት: የፈጠራ ባለቤትነት ወኪል፣ ጠበቃ ሳይሆን፣ በKik አስቀድሞ ላለመጠቀም በወሰነው ስም ጠበቆች በር ላይ እንደሚመጡ ቃል ገብቷል። የጥገኝነት ልማድ፣ አስራ አምስት: አስራ አንድ መስመሮችን ከመተየብ ይልቅ

2:06 npm-የጫነ ሁሉንም። የKikን ጨምሮ፣ የሱ ግንባታዎችም ይወድቃሉ። የፍንዳታ ራዲየስ፡ ሁለት መቶ ሰባ ሦስት ጥቅሎች ተወስደዋል፣ ከእነዚህ ውስጥ አንዱ በወር ሁለት ተኩል ሚሊዮን ጊዜ የወረደ ነው። ጥገናው ሁለት ተኩል ሰዓታት ይወስዳል፤ ተግባሩ አስራ አንድ መስመሮችን ይወስዳል። በHacker News ላይ፣ ፕሮግራም ማድረግ ረስተን እንደሆነ የሚጠይቅ ፖስት አስራ ሰባት መቶ ነጥቦችን ይመታል፣ በአብዛኛው ግንባታዎቻቸው አሁንም ቀይ ከሆኑ ሰዎች። ብይን፣ ከሞት በኋላ: SHIP IT።

2:26 npm ከምትኬ ይመልሳል፣ ከሞት በኋላ ያለውን ፖስት በሚቀጥለው ቀን ይለጥፋል፣ እና በአንድ ሳምንት ውስጥ አሁንም ያለውን ደንብ ይልካል፡ ለ ሃያ አራት ሰዓታት ማጥፋት ይችላሉ፣ ከዚያ በኋላ ከሰው ጋር ይነጋገራሉ። ሰኞ: lockfileዎን ይስሩ፣ እና አንድ ተግባር አስራ አንድ መስመሮች ከሆነ፣ አንድ አንቀጽ ነው እንጂ ጥገኛ አይደለም። አሁንም ማውራት የማይፈቀድልዎትን ክስተት ይላኩልኝ፣ በአስተያየቶች ውስጥ፣ ወይም በ the daily diff dot dev። እና የዛሬው ልዩነት ይሄው ነው።

2:48 እኔ ከAxrisi ኒኮ ነኝ። በኃላፊነት ይዋሃዱ።

## ምንጮች

- [npm, Inc., "kik, left-pad, and npm" (Mar 23, 2016)](https://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm) — blog.npmjs.org
- [npm, Inc., "changes to npm's unpublish policy" (Mar 29, 2016)](https://blog.npmjs.org/post/141905368000/changes-to-npms-unpublish-policy) — blog.npmjs.org
- [Azer Koçulu, "I've Just Liberated My Modules" (Mar 22, 2016; archive copy)](https://web.archive.org/web/20160323201305/https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c) — web.archive.org
- [Mike Roberts (Kik), "A discussion about the breaking of the Internet" — the full e-mail thread (Mar 23, 2016; archive copy)](https://web.archive.org/web/20170112194445/https://medium.com/@mproberts/a-discussion-about-the-breaking-of-the-internet-3d4d2a83aa4d) — web.archive.org
- [Laurie Voss (npm CTO) on X, Mar 22, 2016, 23:03 UTC](https://x.com/seldo/status/712414400808755200) — x.com
- [left-pad 0.0.3 on the npm registry (the eleven lines)](https://registry.npmjs.org/left-pad/0.0.3) — registry.npmjs.org
- [Hacker News, Mar 22, 2016 — "I've Just Liberated My Modules" (1,573 points)](https://news.ycombinator.com/item?id=11340510) — news.ycombinator.com
- [Hacker News, Mar 23, 2016 — "NPM and Left-Pad: Have We Forgotten How to Program?" (1,725 points)](https://news.ycombinator.com/item?id=11348798) — news.ycombinator.com
- [Hacker News, Mar 29, 2016 — "Changes to Npm's unpublish policy" (320 points)](https://news.ycombinator.com/item?id=11382885) — news.ycombinator.com
- [The Register, Mar 23, 2016 — "How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript"](https://www.theregister.com/2016/03/23/npm_left_pad_chaos/) — www.theregister.com
