tillbaka till startsidan

51. Stoppa huvudet i sanden

Lyssna på Spotify lyssna! Lyssna på iTunes

Vi följer upp en lyssnarfråga på vårt tidigare avsnitt Pakeldebakel med att snacka om Javascripts ekosystem och allt vad det innebär. Det blir NPM-paket, drag-n-drop-bibliotek, pengar inom open source, att stoppa huvudet i sandet och en idé på ett nytt licenstroll. Dessutom en hel del om ansvarsfulla beroenden och en liten teaser inför ett kommande avsnitt.

Om du gillar podden blir vi väldigt glada för en liten recension i iTunes eller en prenumeration på Spotify. Följ oss och säg hej på @asdfpodden på Instagram eller Twitter (Anton, Therése) <3

Länkar

Avsnittets skämt:

Varför var programmeraren så dålig på gitarr?
Dåliga strängar.
Skrapa här!!
Transkribering
Transkriberingen är gjord av nån "AI-grej". Du kan förbättra den genom att klicka precis här :)
00:00:00
Varför var programmeraren så dålig på gitarr?
00:00:05
Jag vet inte.
00:00:07
Dåliga strängar.
00:00:09
Okej.
00:00:11
Det känns som att jag borde börja kunna ta ett skämt innan.
00:00:17
Jag borde kunna spoila skämtet istället för att svara "jag vet inte" snart.
00:00:23
Jag vet, men jag vet inte heller om det här var ett skämt.
00:00:26
Jag vet inte vad som hände riktigt.
00:00:28
Det känns... det är nåt som känns off.
00:00:32
Det är ändå en sån dag idag tycker jag.
00:00:35
Jag är lite småförkyld.
00:00:38
Kanske hörs min röst, jag vet inte riktigt.
00:00:40
Det är oerhört irriterande.
00:00:43
Jag ska försöka att inte snörvla allt för mycket i micken.
00:00:46
Den ASMRen får man hitta på annat håll så att säga.
00:00:50
Och det är också extremt varmt i lägenhet, fast jag öppnade fönstret.
00:00:53
-Och att det är extremt kallt ute och snöar och blåser. -Ja, det är kaos.
00:00:59
Men och men, välkomna till ett nytt avsnitt av ASDF.
00:01:03
Vi tänkte idag prata om en lyssnafråga som vi fick för ett tag sedan från vår lyssnare Erik.
00:01:09
Jag tror att den kom in i samband med att vi pratade om det här "colors.js" paketdebaclet.
00:01:17
när det var någon som typ tog bort sina paket från NPM.
00:01:19
Jag kommer inte ens ihåg vad det var för något, det var typ tre avsnitt sedan.
00:01:23
- Jo, nej men det var faktiskt avsnitt 45.
00:01:26
- Mm.
00:01:27
- Det var väl, ja men han tog bara, han la in massa kod i sina paket va?
00:01:32
Eller bytte ut det.
00:01:33
- Ja, just det, han gjorde typ paketen oanvändbara.
00:01:37
- Ja, wow. - För att han var leds på att han inte fick betalt.
00:01:40
- Ja, alltså mitt minne är...
00:01:43
Det, det, det är som det.
00:01:46
Det är en sån där. Men så är det med båda.
00:01:48
Då skickade Erik in en fråga och frågade om vi har funderat mer kring ekosystemet
00:01:54
runt just javascriptutveckling framförallt.
00:01:58
Alltså att om man använder ett bibliotek som drar in ett annat bibliotek som i sin tur drar in ett tredje bibliotek och så vidare
00:02:04
ner i en oändlig pyramid av biblioteksberoende.
00:02:10
Och lite så här frågade, äger fördelarna och övernackdelarna, är det rätt sätt framåt, hur ska vi göra, måste vi ändra på hur faktiskt MPM fungerar och så vidare.
00:02:19
Och det är ju en diskussion som det känns som att den har, i alla fall så länge jag har varit utvecklare, det känns som att den har dykt upp lite då och då.
00:02:27
Och ofta kanske i samband med att, ja men det är någon som tar bort sitt paket eller vad det nu kan vara.
00:02:31
Men det känns inte som att det finns något solklart svar, men jag vet inte, du kanske sitter på lösningen Therese?
00:02:38
Ja, jag känner att vi två absolut är de två som har bäst expertis och lösningen på hela problemet.
00:02:45
Ja, det tror jag ändå. Vi kan lösa det här nu.
00:02:49
Ja, nej jag har faktiskt ingen aning. Alltså, det är ju, jag tror på något sätt i vardagen liksom att,
00:02:57
jag är väl medveten om det, men liksom bara det skiljer ju glappa på på något sätt.
00:03:02
För jag tycker det blev otroligt mycket tydligare också när man började med lockfiler.
00:03:07
Du drar in ett paket, men du får hur många ändringar som helst i en lockfil för att det är dependencies höger och vänster.
00:03:17
Och det är ju ingenting som jag brukar gräva så djupt i.
00:03:21
Ibland ser jag det och bara "vad är det här?"
00:03:23
Och har jag den här, ja men de skadliga paketen inne, jag har aldrig använt dem.
00:03:27
"Jaha, okej, men jag använder de här tre paketen som beror på de här, så jag är också utsatt."
00:03:32
Så huvudet i sanden kanske är lite mer än vad man borde ha, tror jag.
00:03:39
- Ja, jag är också på den huvudet i sanden-laget i det här, så att säga.
00:03:44
Även om det finns många...
00:03:45
Alltså, det är väldigt många som, i alla fall nu för tiden, pågår uppmärksamheten på att
00:03:49
man behöver inte ha så mycket bibliotek när man utvecklar, man behöver inte ha så mycket 3D-matchgrejer.
00:03:55
Det räcker med att man skriver lite HTML och lite CSS, så har man ofta en sida som räcker.
00:04:00
Och jag köper ju det helt och hållet, men problemet är ju att när du väl vill bygga någonting som inte bara är ett dokument,
00:04:08
alltså som inte bara är information, alltså någonting som är lite interaktivt eller någonting som är någonting annat,
00:04:13
att skriva allting från grunden själv skulle ju ta så extremt lång tid.
00:04:18
Det är ju liksom, ur ett affärsperspektiv så är det ju i stort sett helt omöjligt idag att tänka sig att
00:04:25
Man skulle bara "Nej men vi skriver allting från grunden själv".
00:04:28
Alltså det finns ju superavancerade saker som drag and drop som är skitsvårt att implementera själv på ett rätt sätt utan att bli buggar.
00:04:34
Alltså det finns liksom animationer. Alltså det är liksom hur mycket som helst som gör det väldigt svårt idag att faktiskt skriva något från grunden.
00:04:41
För att man har ju också vant sig med att det finns liksom en nästan oändlig flora med npm-paket som man bara kan välja och vraka ibland.
00:04:48
Ja, det är ju också så här att det är ju antagligen, alltså inte alltid, men ofta är det en person som också har satt sig in i problemet som de försöker lösa på mycket mera, alltså satt sig in i det mycket mer än vad jag själv skulle göra om jag hade fått en ticket på jobbet, ja du måste skapa en drag and drop.
00:05:09
Okej, det här hände faktiskt mig i veckan. Jag har faktiskt in ett drag-and-drop-lib idag.
00:05:16
Och då var inte såhär, min första tanke var ju verkligen inte "Ah, ett drag-and-drop, det tänker jag att jag ska bygga från grunden, för det har jag koll på och att det ska fungera i olika browsers"
00:05:28
Min första tanke var att det måste finnas ett paket för det här. Någon har gjort det.
00:05:33
Så det jag gjorde var att använda Google och läsa en massa "top ten" och bla bla bla.
00:05:41
Och hittade ett som har fått många stars, har många användare och stödjer det som jag vill ha löst.
00:05:51
Och det tog ju mig någon timme att ta in och testa, implementera, kontra om jag ska bygga en egen drag & drop.
00:05:59
Alltså jag hade ju hållit på i veckor. Säkert misslyckat.
00:06:03
- Vilket drag & drop-bibliotek landade du i till slut då?
00:06:07
- Typ Beautiful, React, D&D eller nåt.
00:06:11
- Ja, det är en av de populära. Det är nog ett känt företag som ligger bakom den tror jag.
00:06:17
-Jaha, jag sa nog inte det. Jag är säkerhetsläkare. -Jag tror det är Airbnb som ligger bakom den, om jag inte minns fel.
00:06:25
Jag utvärderade ganska många drag-and-drop-bibliotek när jag höll på att bygga min gameshows drag-and-drop-funktionalitet.
00:06:33
Då körde jag också React Beautiful DND, för den hade mycket out of the box från början.
00:06:42
Och sen bytte jag för att jag behövde någonting som inte den stödjer, och då bytte jag till ReactDnD, som jag tror Dan Abramov har gjort från början.
00:06:51
Som är liksom bara React-wrapper ovanpå browsernas inbyggda drag-and-drop-supporter, eller API-er.
00:06:59
Och sen sprang jag på några problem med den, så nu har jag till slut bytt till något som är ganska nytt som heter DnD-kit.
00:07:05
Och det är fan magiskt bra, kan rekommendera!
00:07:08
Ja, men det var ju också så här att vi byggde ett system och sen så sa de "ja, vi har fått användare nu och användarna har det här behovet och det har vi missat och vi ska egentligen bygga på det här andra systemet men kan vi lösa det här?"
00:07:22
Så då hittade vi någonting som ser ut att lösa det case vi har.
00:07:27
Ja, exakt och det hade ju inte hänt då om ni inte skulle använt en BNB-bibliotek.
00:07:34
Nej, det hade vi inte gjort. Och för den delen testa fem olika vad det nu har landat i.
00:07:42
Men jag menar, ja absolut. Vi hade aldrig kunnat vara så snabbfotade utan det.
00:07:46
Så att, ja, jag är kanske inte alltid glad när man rinner in en ny typ av dependency och försöker verkligen se till att använder vi det här annars ska vi inte ha det liksom.
00:07:54
Men det går, alltså det kommer inte gå lika fort utan det.
00:07:58
Tror jag.
00:08:00
- Nej, jag håller såhär, jag tror att det är avvägningen som de flesta gör tror jag också.
00:08:07
För jag tror ju att de flesta är nog som oss att det är lite såhär stoppa huvudet i sanden.
00:08:12
Man är liksom på någon nivå medveten om problemen som finns med att det blir liksom hur många tusen paket som helst när man kör Create React App.
00:08:18
Men i verkligheten så tänker man ju liksom såhär, ah, det är ju jättemånga som gör det här.
00:08:25
Då är det typ lugnt. Och därför kan jag också göra det för att jag vinner så mycket i produktivitet på det.
00:08:31
- Ja, alla kan ju inte ha fel. - Nej, exakt. Följer man gruppen, då klarar man sig.
00:08:39
- Ja, när man börjar på riktigt tänka på det så känns det helt barockt. På något sätt.
00:08:50
Det är ju verkligen någon typ av tillitsbransch.
00:08:54
Jag är ändå förvånad av att det inte händer oftare att ägarna till NPM-paket blir hackade och får sina konton kapade för att sen de ska försöka släppa virus eller ransomware eller vad det kan vara.
00:09:10
Ja, och det är kul för vi har ju ändå haft exempel på det liksom.
00:09:15
Dels var den här gamla bloggposten av någon som ponerat att jag gör det här, det här, det här, det här, och så hittade jag en säkerhetsläcka i NPM, vilket var en teoretisk bloggpost som ändå hade funkat.
00:09:25
Det var ju inte det här en säkerhetsläcka också, att när någon hade sitt interna npm repository så kollade de ändå, så tog ändå publika paket precedence.
00:09:38
Så om du kunde veta det exakta namnet på ett internt repository på ett företag och skapade ett sådant externt namnjätt exakt likadant så skulle din kod komma in istället.
00:09:52
Det var ju också en enorm säkerhetsläcka.
00:09:54
Ja, den tycker jag också att jag känner igen.
00:09:56
Ja, vi har ju suttit i skiten bevisligen, men vi var köp på ändå.
00:10:03
Ja, men jag tror också att det är lite av ett kort hus på något sätt.
00:10:08
Till slut så kanske det kommer någonting som är tillräckligt stort för att det ska påverka eller driva en beteendeförändring.
00:10:18
Samtidigt ser man exempel på, nu är jag dåligt insatt i Java-communityt, men när Log4Shell kom i vintras, jag vet inte om det har förändrats så mycket.
00:10:31
Nej, men det är ju inte JavaScript bara som har den här typen av system, gäller inte det alla, Python har väl samma?
00:10:43
Det jag tror gör att javskript i alla fall är lättare måltavla för kritiken är väl att det finns inget riktigt standardbibliotek i javskript på samma sätt som det finns i många andra språk.
00:10:55
Därför finns det, och så finns det ju såklart hela läggasibiten med att väldigt mycket som finns i javskript idag fanns inte förut.
00:11:01
Därför skapade folk paket för de enklaste sakerna som LeftPad.
00:11:06
Det är ett väldigt gammalt exempel nu, men någon hade ett paket som var en rad kod som la på lite whitespace till vänster på en säng.
00:11:13
- Ja.
00:11:15
Det är kul, jag var på konferensen en gång när någon på NPM snackade och så tror jag verkligen att man i förbifarten bara "Don't mention LeftPad to me!"
00:11:26
Och så bara gick vidare.
00:11:28
(skratt)
00:11:30
Det låter ändå som att man har lite självdistans.
00:11:32
Ja, eller så har hon det strängt. Jag kommer inte ihåg.
00:11:36
(skratt)
00:11:38
Ja, det är det jag menar.
00:11:40
Det finns ju liksom väldigt många sådana exempel i nojalskriptvärlden i alla fall.
00:11:46
Sen kan det ju vara att jag inte är insatt i andra communities, vilket gör att jag inte uppmärksammar det lika mycket.
00:11:52
Men det känns ändå som att det händer lite ofta det här.
00:11:54
det här och att det händer ofta när det händes är det liksom så här att det är ett paket som är en rad och det används av sju miljoner projekt och man bara
00:12:03
aa okej det låter ju inte toppen direkt.
00:12:08
Nej, men det är ju också kul när man tänker på folk som skapar publika paketsoffor.
00:12:16
När man tänker på det, det är så himla mycket ansvar inbakat i det.
00:12:19
Det är kul för att jag gjorde en rich text editor baserat på DraftJS.
00:12:31
Och sen så var det, i rätt respekt kanske jag kunde byggt det själv men det hade behövt sätta in mig i det och då orkade jag inte.
00:12:38
Men liksom, rich text, the raw rich text för att få över det till markdown liksom.
00:12:44
Och då, då först använde jag något paket som någon annan använt och sen var det någon som bara "Åh, det här har inte maintainats på två år"
00:12:51
Jag bara "Åh shit" och så hittade jag någonting annat och då var det verkligen så här "Obs, obs, obs, jag har barn hemma, det är kaos, jag har liksom inte tid"
00:13:00
Ja, alltså det var en så lång disclaimer och sen var det också så här
00:13:04
kom gärna med en lösning och lägg upp en PR istället för att bara skapa en issue och liksom samarbeta
00:13:09
och det gick ju upp för en viss värld.
00:13:10
Shit, vi lägger så mycket ansvar på de här människorna vi inte vet alls vilka de är
00:13:16
och de har ju också lite samma grej att de kanske bara drar in paket för att lösa saker
00:13:21
men egentligen så borde de kanske då ha större ansvar att se till att de inte drar in onödiga paket
00:13:27
inte skapar dependencies som vi inte behöver och lägga dependencies på rätt ställen och så här.
00:13:32
Och det kan man ju tänka också, i mitt huvud tänker jag att folk som är bra och gör saker,
00:13:37
de har ju koll på allt det här.
00:13:39
Men det är ju inte så att det bara är vissa människor som har bevisat att de kan koda på ett specifikt sätt som gör det,
00:13:46
utan alla gör det ju. Inte jag, men alla andra.
00:13:49
Ja, exakt. Det är ju liksom den andra sidan, eller vad man ska säga, av hela den här open source community, eller världen.
00:14:05
Ja, vi pratar liksom om allt det här, men som du är inne på, sen finns det ju bara vanliga människor där bakom som sitter och förväntar sig att det ska underhållas,
00:14:13
och att det ska faktiskt funka i det långa loppet.
00:14:18
Och det är ju egentligen sinneshöjt för alla, eller alla ska inte säga, men 99,99% gör det ju utan att få en krona för det.
00:14:27
Så det är bara drivet av någon typ av prestige inom utvecklarkommunitet att det är en liten stjärna i kanten att man har ett öppen-svårdsprojekt som man underhåller.
00:14:42
Ja, och så samlar man ju stjärnor liksom.
00:14:45
I got five stars on github.
00:14:48
Exakt.
00:14:49
Och det är ju alltid så här, det vet man ju i rekryteringssammanhang också, att folk tittar ju på din github-profil.
00:14:58
Och då är det ju definitivt en perk, om du har det här populära projektet, du är den som har integnat det här.
00:15:05
Det är ju coolt.
00:15:07
Så jag kan ju förstå att folk gör det, för det är ju så branschen tyvärr ser ut.
00:15:11
Men på samma sätt som mängden paket så känns det ju kanske inte hållbart heller i längden.
00:15:18
Att vi ska förvänta oss att så pass mycket av det vi litar på att det ska göra vårt jobb åt oss, är det folk som bygger gratis.
00:15:28
- Nej.
00:15:29
Vad jag menar, alltså folk, alltså de kan ju byta roller eller bara bränna ut sig på det eller vad.
00:15:34
Var inte det också något debackel men det var någon som skulle skicka över sitt repo till någon annan
00:15:40
för han ville inte maintainare längre och så blev det något kaos med det där också.
00:15:44
- Tycker jag känner igen det där. Kan inte riktigt placera vilket eller när det skulle vara men det kan mycket väl stämma.
00:15:51
- Ja, jag tror det, alltså var det liksom...
00:15:54
Den som tog över den hade inte goda intentioner, typ.
00:15:58
Och så blev det kaos.
00:16:00
"Fan, men det var ju så här, ansvar, du måste ju ha ansvar för vem som du lägger över på."
00:16:05
Och det är ju så att vi sitter och säger att folk har så mycket ansvar, och det har de ju på något sätt.
00:16:10
Alltså, det är ju väldigt lätt för dem då att bara "break" internet, typ.
00:16:16
- Det är också något man kan bli känd för, tänker jag.
00:16:19
"I broke the internet."
00:16:22
Ja, det kan också bli så här känns det.
00:16:24
"I'm the person that killed the estuary bucket so all the websites in the world disappeared."
00:16:31
Ja, nej men...
00:16:33
Jag vet inte vad jag vill komma med det, men det är bara så här...
00:16:38
Nej.
00:16:39
När man börjar gräva i det, jag kände att jag fick lite panik så här.
00:16:44
Alltså jag föredrar ju att ha huvudet i sanden uppe visligen, för jag menar, det här är ju stressigt.
00:16:50
- Ja, verkligen. Men jag vet ju inte vad alternativet är.
00:16:54
Alltså vi pratade om i början att vi skulle lösa det här lite skämsamt.
00:16:58
Men jag kan inte ens se något alternativ.
00:17:02
För jag menar att i verkligheten så funkar ju väldigt många liksom...
00:17:06
Alltså oavsett vilket verktyg du använder så funkar det ju på samma sätt med ett paket.
00:17:10
Att du drar ner paket, du spekastar en version och sen så kör man på liksom.
00:17:15
Det är mer bara den här oerhörda pyramiden som det har blivit, eller trädet, med dependencies på dependencies på dependencies, som Janne och Fridt skiljer sig så mycket skulle jag säga.
00:17:25
Ja, för jag menar, alternativt jag kan se om man skulle ha hållbar kod.
00:17:29
Och det här har ju dykt upp en del nu, liksom att jag sitter i två väldigt nära lika projekt,
00:17:37
men ett är liksom som externt och ett är internt.
00:17:40
Men de delar datakälla, så att alla typer och allting, alla scheman och sånt,
00:17:46
då får vi sitta och liksom skapa upp flera gånger och komponenterna, de duplicerar vi liksom.
00:17:51
Och då tänker man så här, det här skulle vi ha i ett paket.
00:17:55
Och då blir det också lite så här, ja men då måste man versionera det och uppdatera det, och har du ett problem någonstans så blir det.
00:18:01
Men så eftersom vi inte har ett paket är ju lösningen att vi måste sitta och copypasta kod.
00:18:07
Så du menar, det kan du ju göra, du kan ju hitta lib, gå in i källkoden och ha kontroll på exakt vilken kod där du drar in i ditt projekt.
00:18:19
Så så kan man ju också göra, för det blir ju fortfarande inte fler ADKs i slutändan.
00:18:28
Och du har kontroll på det. Däremot så MPM-modules släpar man inte med sig precis överallt.
00:18:37
Utan det kan man ju få fräscht. Eller så blir vi jättelångsamma.
00:18:45
Ja, exakt. Det känns ju som att det blir en extrem avvägning.
00:18:51
För det är ju samma sak. Det finns för säkert någon mellanväg.
00:18:55
Jag tänker att om man jobbar på en bank så drar man kanske inte in vilket MPM-paket som helst.
00:19:00
Och man kanske lägger någon typ av proxy framför MPM så att man vet att man får samma paket som andra utvecklare har fått.
00:19:08
Om man installerar samma version.
00:19:11
Så det finns saker man kan göra redan idag för att bättra på säkerheten.
00:19:16
Men i slutändan tror jag inte att det gör så stor skillnad.
00:19:20
Nej.
00:19:22
Nej, men alltså jag...
00:19:27
Vad skulle vara alternativet?
00:19:29
Det är att det skulle vara flera working groups som tar fram specifika paket.
00:19:34
Sen är det bara de paketen vi kan använda.
00:19:37
Ja, nej, exakt. Det här vet jag inte heller.
00:19:40
En del tror jag att om JavaScript hade ett bättre standardbibliotek, vilket...
00:19:46
Det har ju ingen standardbibliotek idag heller, men språket i sig innehåller mycket mer vettiga saker än vad det gjorde för 15 år sedan.
00:19:55
Vilket gör att många paket som fortfarande är kvar behövs egentligen inte om de skulle ha skapats idag.
00:20:04
Men sen är det också hela den här biten med att allt vi bygger har ju väldigt ofta ett krav på sig.
00:20:11
"Det ska funka på vilken webbläsare du än kör" och ofta ganska mycket bakåtkompromiss.
00:20:17
Nu, React 18 släpptes ju häromdagen bara och då droppar ju de äntligen supporten för IE.
00:20:24
Så nu kanske det kommer till slut, det är liksom "the final purge" av IE-support för det når ju också end of life i sommar någon gång.
00:20:33
- Ja, alltså det får ju vara nog.
00:20:36
- Ja, så det kanske försvinner, men det är ju också en del av orsaken eller förklaringen bakom att
00:20:44
när vi ska göra saker, det är inte så att vi bara kan alltid använda den nyaste fräscha av JavaScript
00:20:50
och sedan köra på det, utan vi måste hela tiden tänka på att okej, men hur ska vi stödja gamla saker?
00:20:56
Och då blir det återigen att så här, ja men då vill vi använda en ny funktionalitet i språket.
00:21:02
Då drar vi in paket för att fixa att den funktionaliteten funkar på äldre webbläsare.
00:21:07
- Ja.
00:21:09
Ja, herregud. Alltså det är ju verkligen, det är ju att tänka på att försöka lösa alla de här sakerna själv.
00:21:16
- Mm. - Alltså, ja okej.
00:21:18
Ja, det är ett annat sätt då. Vi kan ha en dokumenterad instruktionsmanual för hur vi ska lösa saker själv.
00:21:25
Jag kan inte bygga en jävla polyfill, det hade inte...
00:21:34
Görs det ens i Javascript? Det kan jag inte tänka mig.
00:21:37
- Polyfills? - Ja, det gör det säkert.
00:21:40
Jo, det gör det väl typ. Det beror lite på var du polyfillar.
00:21:43
Allting går ju inte att polyfilla med Javascript.
00:21:47
Men sen, jag håller ju egentligen, för nu när jag pratar väldigt mycket,
00:21:50
så här, ja det här är ett problem som bara finns.
00:21:52
Men egentligen håller jag med om att man måste tänka efter när man installerar paket.
00:21:58
Det är inte så att man bara "det här paketet ser bra ut, vi kör".
00:22:01
Det har en stjärna på GitHub och har inte uppdaterat på tre år.
00:22:07
Då kanske man inte ska köra på det här paketet.
00:22:09
Men samtidigt så länge man gör det på ett så ansvarsfullt sätt som man själv kan styra över så tycker jag ändå att det funkar ganska bra idag.
00:22:21
- Jo, det gör det ju, men det är ju som du säger, hela communityn har ju tillit till communityt på något sätt.
00:22:30
Det måste vi ju nästan ha. Någon slags enorm godtrogenhet, typ.
00:22:35
- Ja, nämen verkligen. Man måste ju liksom tro på att folk vill väl, helt enkelt.
00:22:41
- Ja, det är ju nästan lite fint. Alltså vi kan vinkla det så att det är lite fint istället.
00:22:45
- Utveckla ett fint community där folk tror på varandra och litar på varandra.
00:22:52
- "Always assume good intent". - Exakt.
00:22:56
En sak som jag tror jag har varit in på i nåt tidigare avsnitt, även om det kanske var länge sen, är ju att...
00:23:03
Det man också kan göra är att om man ser ett paket på GitHub och bara "Jag vill ha den här lilla funktionaliteten som finns här",
00:23:09
Alltså hellre då att man läser källkoden om det är något litet.
00:23:12
Och bara "ja men jag ska snora den här lilla biten av det här open source-projektet" för att
00:23:17
är källkoden där, då är det bara att läsa den.
00:23:19
Och då kanske man bara kan ta den koden istället för att ta in paketet och sen få ett beroende.
00:23:23
Visst, då tar du istället över underhållet av den koden, vilket du kanske slipper om du använder ett paket.
00:23:31
Men ofta så känns det som att väldigt små paket, och särskilt om man "ja, jag behöver ett paket för att"
00:23:39
Left padad den här strängen litegrann. Då kanske man kan ta den implementationen istället för drömpaketet så att säga.
00:23:50
- Jo, jag kan ju också känna den här när det blir liksom, men snor jag någons kod som jag inte borde sno?
00:23:57
Men om man har liksom, istället för att lägga upp en issue om den väldigt liten grejen, väldigt tydligt källkod så skulle man ju kunna plocka in den.
00:24:06
Jag vill ju inte sno heller, men den är ju publik och så.
00:24:12
Man måste väl kolla licensen egentligen om man ska vara laglydig.
00:24:17
Just det.
00:24:19
Så att det faktiskt finns en licens.
00:24:21
Nu för tiden är ju ändå majoriteten av paketet i MIT-licensen som är
00:24:27
"Ta den här koden och gör vad du vill med den".
00:24:29
Men det finns ju även andra licenser, för det är ju också en helt annan grej när man kör alla paket.
00:24:34
Det är inte så att jag kollar supernoga, särskilt inte på paket som ligger längre ner i kedjan, vilka licenser de har.
00:24:40
För det skulle ju kunna vara att någon av dem har en licens som är typ så här "Ja du, jag kommer inte ihåg vilken den är, om det är GPL eller något sånt där som kräver att du publicerar din källkod om du använder den här källkoden."
00:24:50
Och då blir det liksom så här "Oj, jag har dragit in det här och enligt lag då..."
00:24:57
Sen är det ju också en detalj att väldigt få av de här licenserna har blivit rättligt testade, och särskilt i Sverige för den delen.
00:25:04
Vilket då gör att det inte säkert att de applicerar men att man ska ta det säkra för osäkra och då kan det vara att koden kräver att din kod blir öppen källkod också.
00:25:16
Och då kanske man inte ska dra in det i ett privat projekt för något bolag man jobbar för.
00:25:20
Nej, det är jävla sant, det har jag inte ens tänkt på.
00:25:25
Men det är också så här, jag kollar ju inte noga på paket, jag kollar inte allting som man bör kolla på paket och vissa säger ju bara så här, det här drar ju alltid hem, det här drar alla alltid hem.
00:25:37
Det har jag inte ens tänkt två saker. Det är också kul, det är ett annat case, någon kan ju publicera ett paket och ändra licensen på det.
00:25:49
Eller man kanske sätter en licens när man publicerar den.
00:25:52
- Nej, men du kan ändra licens. Det är väl inga konstigheter.
00:25:55
- Ja, då skulle du ju kunna publicera någonting som många använder, ändra licensen och sen gå efter folk rättsligt.
00:26:03
- Ja, det känns som en typ Open Source-världens motsvarighet till patent-troll.
00:26:10
- Ja. - Det är liksom en licens-troll.
00:26:15
- Det här känns som en fantasi eller en framtid, vi hoppas att det absolut inte händer.
00:26:19
- Fy fan vad hemskt det låter. - Ja, Gud.
00:26:22
- Men jag menar, det kan ju inte vara värt för någon att göra det heller,
00:26:24
- och fastna i någon jävla legal debackel.
00:26:26
- Jag fortsätter säga debackel, men jag tycker det underhåller mig.
00:26:30
Ja, men det skulle också kunna vara, vad heter de, den här danska advokatfirman,
00:26:37
som skickar massa kravbrev till folk som de påstår har laddat ner.
00:26:43
Ja, det vet jag inte.
00:26:44
Nej, men de skickar till fildelare och bara så här "Hej, betala oss 3 000 spänn, annars stämmer vi dig".
00:26:52
Det skulle man kunna göra med licenser om man upptäcker folk som använder ens paket,
00:26:57
men med fel licens, så skickar man dig kravbrev.
00:26:59
Och så säger man "Hej, betala 3000 spänn, annars stämmer vi dig."
00:27:02
Då får man säkert in en del pengar.
00:27:04
- Ja.
00:27:06
Men man måste ju också, det måste ju, är det inte något mål som måste gå liksom som kommer sen
00:27:11
visa vägen för alla andra likadana mål?
00:27:14
- Jo, man måste väl ha någon typ av, vad heter det, prejudikat.
00:27:18
- Ja. Oj, jag ska inte in och kraftsäga i leagle-världen.
00:27:22
- Nej, jag känner också det här. Nu, vi var ute och simmade på djupvatten på år två tror jag.
00:27:26
Även om jag känner att min idé är lukrativ.
00:27:30
Men jag är så här, jag vet inte, är det så här vi vill jobba? Jag vet inte.
00:27:39
Ser vi något annat sätt att jobba på? Inte just nu.
00:27:45
Stör det här mig varje dag? Nej, stoppar huvudet i sanden. Det är väl min sammanfattning ungefär tror jag.
00:27:51
Nej, men jag är ju väldigt mycket på samma sida som dig.
00:27:53
Jag tror inte att jag...
00:27:56
Jag går liksom inte att oroa mig för det här varje dag.
00:27:59
Men...
00:28:00
Samtidigt så skriver jag ju ofta, alltså så här...
00:28:05
Vad är det värsta som kan hända?
00:28:07
Det är liksom, jag skriver inte kod som jag håller koll på folks liv eller någonting sånt,
00:28:11
utan det är bara, det är lite hemsidor här och där.
00:28:13
Det gör inte så mycket om någonting går sönder ett tag.
00:28:16
- Nej, jag börjar känna mig lite nervig så.
00:28:22
För att jag kanske ska byta till någonting som hanterar pengar.
00:28:29
- Det här är en så jävla perfekt segue till eventuellt nästa avsnitt.
00:28:32
Vi får se, det kanske är fler avsnitt bort.
00:28:35
Det är en, vad kallar man, en teaser?
00:28:38
- Ja, kanske. Eller en cliffhanger.
00:28:41
Nej, då måste man ha en klippa att hänga ifrån.
00:28:44
Men då sparar vi bränn och så återkommer vi i ett annat avsnitt.
00:28:49
Det tycker jag. Jag tycker ändå att vi kommer fram till något vettigt i det här avsnittet.
00:28:52
Om man ska tjäna pengar på open source så ska man byta sin licens och sen skicka kravbredd till folk.
00:28:56
Ja, och bli jävligt bra på juridik kanske.
00:29:00
Exakt. Det kan vara lösningen.
00:29:03
Toppen. Tack för att ni lyssnade som vanligt. Jag hade jävligt kul i det här avsnittet.
00:29:08
Jag glömde bort min förkylning, det känns bra.
00:29:11
Jag glömde bort att jag bytt till sommardäck på bilen och att det snöar.
00:29:16
Men bra!
00:29:18
Alltid nått.
00:29:20
Va?
00:29:21
Alltid nått.
00:29:22
Ja.
00:29:23
Vi finns väl på, där vi finns vanligtvis, på Twitter och ni vet.
00:29:27
Och Anton vill göra en recension i iTunes och sådana grejer.
00:29:30
Ja, exakt.
00:29:31
Så fixa det. Och skicka fler frågor om ni har.
00:29:34
Ja, men det är kul.
00:29:35
Vi säger så och så hörs vi om ett par veckor igen.
00:29:39
Det gör vi.
00:29:40
Hej då!
00:29:42
[Musik spelas]
Tillbaka upp