Hogyan bénította meg egy programozó az Internetet egy kis kódrészlet törlésével


Múlt héten egy programozó komoly problémát okozott a webfejlesztőknek, egy mindössze 11 soros kódrészlet kitörlésével.


A 28 éves Azer Koculu története pontosan megmutatja, hogy az internetre írt szoftverek mennyire függenek a javítócsomagoktól, amelyek gyakran a programozó emberek jóindulatán múlnak. Amikor a rendszer összeomlik, mint ahogy ez múlt héten is történt, a következmények hatalmasak és kiszámíthatatlanok lehetnek.

Koculu Március 20-án a következőt írta e-mail-ben, amelyet később nyilvánosságra hozott: "Azt gondolom, hogy jogom van letörölni valamennyi dolgomat."

És később ezt meg is tette.

A nyílt-forráskód

Koculu már régóta jelentet meg kódokat az npm szolgáltatáson kereszül. Ez egy népszerű szolgáltatás, amelyet széles körben használnak nyílt-forráskódok keresésére és telepítésére JavaScript alapon. Ez egy rendkívül fontos eszközzé vált a webfejlesztésben, köszönhetően az npm könnyű használatának és a hatalmas méretű ingyenes kódokat tartalmazó könyvtárának, amely jelentős mértékben segíti a nyílt-forráskódú közösséget.

A nyílt-forráskódú filozófia ösztönözte Koculut az npm-hez történő csatlakozásra, majd pedig a szolgáltatás lemondására. Többekhez hasonlóan, ő is írt egy kódot, amelyet bárki felhasználhat. Rá is hatással volt a hacker etika, amelyet a kezdő programozók számára tanítottak a massachusettsi Műszaki Egyetemen és több konkrét értéket adtak meg, amelynek az alapjait később a programozó Richard Stallman fektette le.

Stallman 1985-ben a következőt írta:"A programozók közötti barátság legfontosabb alapfeltétele a programok megosztása." Ellenezte a rendszerszoftverek üzleti alapokra helyezését, és olyan utakat jelölt ki, hogy a kódokat a közösségek minél szélesebb körben használhassák. Stallman ötleteinek nagy része, például a hacker etika, jelentős befolyással bírt a Koculuhoz hasonló programozókra.

"Autodidakta módon végeztem el a főiskolát, nagyon sokat köszönhetek a nyílt-forráskód közösségnek". Koculu a következő e-mailt írta a Quartz-nak:"Azon emberek közé tartozom, akik sohasem adják fel a nyílt-forráskódú filozófiát."

Minden egy levéllel kezdődött

Az egyik nyílt-forráskódú JavaScript csomag, amit Koculu írt, "kik" néven volt ismert, amely segített a programozóknak sablonokat beállítani a projektjeikhez. Nem volt széles körben ismert, de ugyanezen a néven volt ismert egy üzenetküldő alkalmazás is Ontarioban, Kanadában. Március 11-én Koculu levelet kapott Bob Stratton, védjegy és szabadalmi ügynöktől, aki szerződéses kapcsolatban állt a "Kik"-el.

Stratton a levélben azt írta, hogy a "Kik" arra készül, hogy kiadja a saját csomagját és megkérdezte Koculut, hogy át tudná-e nevezni a sajátját másra? "Lehetséges lenne a "kik" programcsomag átnevezése valami másra?"

Koculu a következőt válaszolta: "Nagyon sajnálom, egy nyílt-forráskódú projektet készítek ezen a néven." 

A beszélgetés hamar ellenséges hangulatúvá vált, amelynek során Stratton perrel fenyegette meg: "Nem akarjuk hülyének nézni, de ez a név egy bejegyzett védjegy a világ legtöbb országában és amennyiben Ön tényleg kiadja a "kik" nevű nyílt-forráskódú projektjét, az ügyvédeink zároltatni fogják a bankszámláját és további hasonló dolgokat tapasztalhat meg. Nincsen más választásunk, mert Ön szeretné érvényesíteni a jogait."

Koculu erre így válaszolt: "Hagyjon békén. Ne zaklasson."

Stratton felajánlotta, hogy fizetnek a névért. Koculu 30.000 dollárt kért a projekt abbahagyásáért. Nyilvánvaló volt, hogy nem fognak megállapodni egymással.

Az npm a Kik oldalán áll

A vállalat felhívta az npm-et. Noha az npm profit érdekelt vállalat, nyílt forráskódú, ingyenes névadási szolgáltatást működtet, amelynek célja a nyílt-forráskódú JavaScript fejlesztés elősegítése.  A vállalatnak a magán szolgáltatásokból származik bevétele, amelyek nem nyílt-forráskódok, hasonlóan a GitHub üzleti modelljéhez.

Stratton felvázolta a "kik" kérését a névvel kapcsolatban, megemlítve a védjeggyel kapcsolatos összetévesztést. Az npm vezérigazgatója Isaac Schlueter egyetértett abban, hogy a nevet át kell adni a vállalatnak.

"Úgy gondoljuk, hogy ebben az esetben, ha a felhasználó egy "kik" csomaggal találkozik, joggal várhatja azt, hogy az a kik.com-al kapcsolatos" - írta Schuelter március 18-án Stratton-nak és Koculunak. Ebben az összefüggésben a tulajdonjog átruházása a két csomag tekintetében eléri ezt a célt."

Koculu erre a következőt válaszolta: "Több éve ismerlek, sohasem gondoltam volna, hogy ugyanarra az oldalra állsz a vállalatok ügyvédeivel a nyílt-forráskódok terjesztőit fenyegetve."

A programozók jelentős része, különösen a nyílt-forráskódú közösségnek fenntartásai vannak az Egyesült Államok szerzői-jogi törvényével kapcsolatban és a szabadalom és védjegy tulajdonosok keresik a lehetőséget a jogaik érvényesítésére. Éveken keresztül, a szoftver cégek, perek sorát indították a mindenhol jelenlévő technológiákat védő védjegyekkel kapcsolatban. Például képek megjelenítése a weboldalon, hírek küldése e-mail segítségével. A fejlesztők ezeket az eljárásokat a fejlődés gátjának tekintették. 

Az npm döntését követően Koculu azt követelte, hogy távolítsák el valamennyi bejegyzett programcsomagját. "Nem szeretnék az npm tagja maradni. Ha nem csináljátok meg, akkor mondjátok meg, hogyan kell véghezvinni."

Március 22-én, két nappal Koculu utolsó e-mail üzenetét követően a JavaScript programozók furcsa hibaüzeneteket kezdtek kapni, amikor megpróbálták lefuttatni a kódját. A probléma olyan súlyos volt, hogy néhány fejlesztő nem tudta frissíteni a programját és szolgáltatását, amelyek az interneten keresztül működtek. A hibaüzenet több sorból állt, de a legfontosabb rész a következő:

 

Ez a következőt jelentette: A kódnak, amelyet futtatni szeretnének szüksége van egy left-pad nevű programcsomagra, de az npm-nél ez nem található meg.

A legtöbb programozó sohasem hallott a left-pad-ról, de most, valamiért a kód nem futott le nélküle. Fontos megérteni, hogy a legtöbb szoftver egy másik szoftverre épül, amelyik szintén egy másik szoftvertől függ. A saját alkalmazás elindításához bizonyos programcsomagokra van szükségünk az npm-től, de azoknak a csomagoknak is további csomagokra van szükségük. A legfontosabb ok, amiért az npm ilyen népszerű lett az a tényező, hogy segít kezelni ezeket a függőségeket, a különböző csomagok egyetlen helyen történő tárolásával.

Megbízható, legalábbis addig, amíg az egyik programcsomag nem tűnik el.

A fejlesztők összegyűltek a GitHub központjánál, ahol a left-pad-et kezelték. Legtöbbjük meg volt zavarodva, mivel a csomagok általában nem tűnnek el. Az egész azért volt zavaró, mivel a left-pad csupán 11 sor kódot tartalmazott.

            

A kódot az elején karakterek hozzáadására lehet használni. Ez egy egyszerű funkció, a legtöbb programozó saját maga is meg tudja írni. Nagyon sok npm csomag a left-pad-re támaszkodik, ezért lett ez a kicsi kódrészlet ilyen fontos.

A legnagyobb npm csomagok hirtelen használhatatlanok lettek. A legnagyobb hatással érintett csomag a React volt, amelyet például a Facebook is használ valamint a kisebb oldalak például a Quartz tulajdonában lévő Atlas. Az előző hónapban több mint egy millió ember töltötte le a React-ot az npm-ről. A React csomagnak nem volt szüksége közvetlenül erre a 11 soros kódra. Számtalan csomagtól függött, ahogy azt a korábbiakban elmondtuk. És a left-pad eltűnt.

A hiányát nagyon sokan megérezték. A GitHub oldalára a világ számtalan helyéről írtak, Ausztráliától kezdve Németországon keresztül, egészen az Egyesül Államokig. Ontarioban ahonnan a probléma indult a "kik" programozói szintén left-pad problémába ütköztek. Mike Robert az üzenetküldő program vezetője egy interjú során azt mondta, hogy a hiba megakadályozta az éppen fejlesztés alatt lévő program futtatását.

Egy órával az első hibaüzenet után, Koculu egy üzenetet adott fel a következő címmel: "Felszabadítottam a programmoduljaimat." Röviden elmagyarázta a "kik"-el és az npm-el folytatott vitájáról, valamint bejelentette, hogy letörölte az npm-nél található összes csomagját. Az egyik legfontosabb a left-pad volt.

Koculu a következőt írta: "A mostani helyzet rádöbbentett arra, hogy az npm valakinek a magántulajdona, ahol a vállalat sokkal befolyásosabb az embereknél. Azért készítek nyílt-forráskódot, mert hatalmat szeretnék adni az embereknek."

A helyzet súlyosságára való tekintettel az npm visszaállította a 11 soros kódot. "A jelenlegi helyzet példa nélküli, amelyet nagyon komolyan veszünk az ügyfelek széles köre miatt", írta Laurie Voss az npm technológiai képviselője.

Az ügy 2 órán belül megoldódott. 

A web függőségei

A left-pad jelentős károkat okozott rövid idő alatt. A fontosabb web szolgáltatások mint például a Facebook, jelentős mértékben függővé válhatnak más programozók által írt kódrészletektől. Az ügy megoldása után egy kétkedő vélemény jelent meg a Reddit oldalon: "Egy 11 soros npm csomagot, amelyet left-pad-nek hívtak letöröltek...emiatt a legfontosabb npm csomagok nem működtek."

Néhány programozó a Kik-et hibáztatta a nyílt-forráskódú projekt perrel való fenyegetésért, továbbá hangsúlyozták hogy ez egy figyelmeztetés volt, hogy a szolgáltatás infrastruktújára nagyon törékeny. Sokan megkérdőjelezték az npm döntését, hogy elfogadták a "kik" követelését. A fórumozók a következőt írták: "Tényleg nem volt más lehetőség az ügy megoldására?" "Ez azt jelenti, hogy az npm megadja magát bármilyen hasonló jogi fenyegetés esetén?"

Egy telefonos interjú során megkérdezték a Quartz-ot, hogy mit tennének, ha a Twitter vagy a Google jogot formálnának hasonló nevű npm csomagokra. Schlueter szerint ez a csomagoktól függ. Általánosságban ez azt jelenti, hogy a Twitter hogyan szeretné használni a twitter nevű csomagot vagy hogyan használja a jelenlegi fejlesztő, mennyire megalapozott, hány ember függ tőle és még számtalan egyéb tényező. 

Mások pedig arról panaszkodtak, hogy a 11 soros npm csomagot a programozóknak saját maguknak kellene megírniuk.

Mike Roberts a "kik"-től egy interjú során beismerte, hogy sajnálja, hogy nem sikerült megállapodni Koculuval. "Az én nézőpontomból a nyílt-forráskód egy olyan közösség, ahol az emberek segítenek egymásnak." 

Csatlakozz Te is Facebook oldalunkhoz!

(qz.com)

Figyelem! A tartalom legalább 2 éve nem frissült! Előfordulhat, hogy a képek nem megfelelően jelennek meg.

Copyright © 2023 Trans-Europe Zrt. Minden jog fenntartva.
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram