Madde (00:00)
Jag har byggt mjukvara som används av 90 % av alla utvecklare på Google. Jag fick ändå inte jobbet för att jag inte kunde invertera ett binärt sökträde på en whiteboard-tavla.

Sofia (00:11)
Men va? Ja, det är Och de, de, är det alltså varje en miss att de bara såhär inte visste vem han var.

Madde (00:19)
Nej nej nej, nej de hade själva sagt typ såhär, våra utvecklare använder det och allting men han fick det ändå inte.

Sofia (00:32)
lyssnar på Developers, podden där du får följa med oss, SIA och Madde på allt inom mjukföroutveckling.

Madde (00:39)
Vi träffar spännande gäster, testar nya teknologier, söker inspiration och tar upp aktuella ämnen.

Har du hört om det här VSCode-dramat som har varit nu i veckan?

Sofia (00:54)
Nej. Jag är inte så påläst även fast jag hänger på Reddit. Jag har väl hängt för mycket på mamma-Reddit den här veckan.

Madde (01:02)
Detta läste jag faktiskt på Hacker News, jag vet inte, det kanske stod igång

Sofia (01:09)
Får jag bara en tips om Hacker News? Om man känner att man inte har tid att gå in aktivt, typ som Reddit eller läsa push-notiser från det, så finns det ett annat sätt att ta del av Hacker News. Det någon som har kommit på att de släpper en AI-genererad podd där det är en AI-röst som läser de topp fem posterna från varje dag. Och du vet, AI-röster är ju väldigt bra på att summera och berätta.

Madde (01:37)
Nej

Sofia (01:38)
Jag ska inte säga att jag lyssnar varje dag, men då då så klickar in och så bara lyssnar jag på det som är nyast. Så ett annat sätt att hänga med i tech men mer utvecklar flödet. Jag länkar till den i avsnittsbeskrivningen. Följaren.

Madde (01:55)
Ja men gör det.

är intressant. Hur lång är de ungefär?

Sofia (01:59)
Ehm...

Madde (02:01)
Alltså, det så typ en skimmel eller fem minuter?

Sofia (02:03)
Nej

nej nej, fem, fem tio minuter eller något sånt.

Madde (02:06)
Det är väldigt lätt att hänga med. Annars tycker jag det är jobbigt när det är för långa. Jag orkar inte komma hit till ett långt avsnitt.

Sofia (02:11)
Nej, om kanske en kvart.

Madde (02:14)
Nej men det här gick viralt på Hacker News. Det var en länk till en GitHub issue eller PR som var stängd. Och det var då en PR i VS Codes repository som ändrade en inställning. Som då var typ git.addaicoauthor som tidigare har varit off som standard men nu är on som standard.

Vad innebär den då? Jo, den innebär att VS Code automatiskt lägger till raden Co-Authored-by-Github-Copilot i dina commits utan att du liksom exquisit godkänner att den gör det. Om du då commitar från VS Code ska sägas, inte om du är vanligt commitar från terminalen men om du använder det inbyggda git.

Sofia (03:05)
Även om man inte har copilot aktiverat, till exempel, i viss...

Madde (03:09)
Det

är det som är det sjuka. Det verkar vara någon bugg i det. Så den lägger till det även om koden faktiskt inte är co-authored by co-pilot.

Sofia (03:18)
Är det en bugg då? Det känns rätt självklart att man tittar på...

Madde (03:26)
Men

det ju det som har blivit så mycket drama för för dels så har en utvecklare då, han som godkänner den här PR-en, har varit inne i tråden på Hacker News och kommenterat och försökt verkligen bortförklara sig och bara, o men det var inte meningen att det skulle bli så här liksom och det blev fel och... Alltså, det är ju definitivt fel att en skriver co-authored by co-pilot om du själv har skrivit all kvart själv.

Sofia (03:54)
Eller om man en kladd vad som helst då. Man pastar in eller redigerar med kladd eller vad.

Madde (03:58)
Det också.

Men även om du har skrivit kvården med Copilot så är det väldigt sneaky att slänga in att den automatiskt lägger till det här utan att du riktigt har godkänt det för att det är en default setting som är på.

Sofia (04:16)
Det

är nästan bra. tycker du om jag faktiskt använt Co-Pilot? Då tycker jag att det är bra att man får reda på att det är det.

Madde (04:26)
Ja, men jag tycker fortfarande är ett beslut man ska ha själv. För så ser jag det. Så kan det också stå när man har gjort det tillsammans med Claude. Om det Claude som har kommittat och liknande. Men jag tycker fortfarande att ska vara opt in. Folk har jämfört det lite med det här, vet, när man skickar från en iPhone där det står så send from my iPhone. Skillnaden där är ju att du ser ju det i ditt mail och du kan direkt gå in och radera det. Men här syntes det inte ens i U-it, utan du ser det först i efteråt i din githistrik och bara så här, vad har precis dyket upp Co-Author by GitHub Copilot?

Sofia (04:42)
Mm.

Ja det är konstigt för det här är en ganska stor grej. Den borde åtminstone så här om man ändå lutar åt något, jo men det är rätt att visa det. Att så här, okej men köra en testperiod där man på något sätt promtar folk att så här, vill du lägga till det här eller någonting så att det är väldigt tydligt.

Madde (05:14)
Ja, för det finns ju folk som vill göra det och kanske vissa av er som har det som krav och så vidare. Men som sagt, nu blir det otydligt att det bara kom in. Man kunde lätt missa det. Och det var ju en P, alltså en Product Manager, som hade gjort själva... ...skälla pullerkvästen. Så det tydligt ändå att det var ett beslut bakom, fast ändå den här som hade accepterat det försöker bortförklara det.

Det var väldigt bra diskussioner tyckte jag ändå. Man kan gå in och läsa, jag kan länka den avsnittet skrivningen. Det är också externa sällan som Copilot är en produkt från Microsoft. Så blir lite som att smyg reklam för sin egen produkt också i VS Code.

Sofia (05:59)
Precis, för det borde ju vara så här rent i allmänhet att de försöker vattensstämpla att det är AI. Det tycker jag är jättebra att man får reda på. Det bilder som är rörda med AI eller... Att någonting har blivit photoshoppat. Det vore ju skitbra. Men vet du vad som har hänt? hörde dem typ ändra...

Madde (06:17)
Ja men de ska ha backat nu och ändrat defaultvärdet till chat and agent. Vilket jag inte riktigt vet vad det innebär. Kanske att den då automatiskt lägger till den om du typ har använt den. Alltså att du har agentkårat eller du har chatat fram det. Men fortfarande så tycker jag att det är för...

Sofia (06:38)
Ja, det är fortfarande, alltså, onn liksom. exakt. Ja, det är konstigt.

Madde (06:44)
Men visst, kan själv gå in och ställa in och sätta den till off. Så. Men då ska man komma ihåg det.

Sofia (06:50)
Men det där är så svårt med co-author, även när är människor också. vet, jag har skrivit hela kodbasen och du har lagt till en funktion eller ett test. Ska du vara co-author?

Madde (07:03)
Och

även tvärtom, när man parprogrammerar någonting, jag har aldrig någonsin explicit satt någon annan som co-author för att orka. Jag vet inte ens hur man gör. Man kan få gode i i och sig.

Sofia (07:17)
Det tycker jag också är en svår grej när man jobbar på någonting tillsammans med någon. Du som styr och kommittar allting ser ut som att hela pullercosten är din. Iallafall kommitten blir det. Det tycker jag är lite synd att man inte kan ha... Eller jo, kan ha... Nej, man ser co-authors i typ kommits, men inte den slutliga kommitten som går in i typ...

Madde (07:42)
Jo, tror jag man ser det där också.

Sofia (07:44)
Gör man? För det är i så fall bra. Men annars så här... Men du, fattar vad jag menar. När man jobbar på någonting tillsammans så är det lite så här synd att man inte kan ha två personer på det. Men med en AI så blir det så här... Har du skrivit allting med AI eller har du skrivit vissa saker själv? Alltså det är ganska stor skillnad. vet inte. Jag vet inte någonting längre, känns det som. Allt är så himla förvirrande vad man ska göra och inte ska göra.

Madde (08:11)
Ja, verkligen. Man får bilda sin egen uppfattning av vad man själv tycker. Jag har bara inte gjort det.

Sofia (08:17)
Får jag fråga dig en snabb fråga? Om du säger att du sökt jobb nu igen, alltså något jobb där du måste ändå römna in kodprov och så, och så får du en koduppgift hem och det står ingenting explicit om att du ska använda AI eller inte. Hade du använt till exempel Cloud Code och hade du varit väldigt tydlig med att du har gjort det? Eller hade du försökt liksom skriva ihop dig själv och var väldigt så här...

Jo, men jag använde när jag assistent bara lite grann. Alltså, hur hade du gjort idag?

Madde (08:49)
svårt. Jag har nog använt det så som jag använder det på jobbet. Du säger att jag inte bara har vivkårat det och inte tittat på det och tryckt. Jag har ju ändå använt det, absolut. Men jag också varit tydlig med vad jag använt det till. Redan när jag gjorde min intervju förra sommaren till det här jobbat nu, då var det ju inte lika stort med AI än nu. Det var ju fortfarande stort att använda det.

Och min instruktion då var att det är helt okej att använda AI- men vi vill att du är tydlig med när du använder det vi kan diskutera kring det. Och det fungerar jättebra på intervjun och allting och sånt. Då använder jag inte det jättemycket. Jag använder det till någon viten algoritm eller någonting för... Jag minns inte riktigt. Det intressanta nu är ju nästan att man skickar med hela sin typ prompt. Eller hela sin AI... Vad säger man? Historik.

Sofia (09:46)
Ja, men det har jag hört. var det... Jag tror det var... Det var något av AI-företagen i alla fall. Eller så var jag så han är utvecklaren för... Vad heter det här? Den här... OpenClaw. Jag tror att han snackade om det. Att det det som är intressanta. Det intressanta är inte hur du skriver kod, för att vi tittar inte längre på kod. Det bara att hur du promtar och... Liksom hur duktig är du på att använda modellerna. Det är faktiskt sant. Men...

Om jag skulle lämna in en uppgift, det frågar jag inte. Jag vill ju bli tillfrågad. Men om jag skulle koda idag, jag skulle så här... Jag tänkte säga att är cloud code. Skulle jag lämna in min som cloud speck liksom?

Madde (10:18)
Så såklart.

Sofia (10:36)
faktiskt. Den är ju som en read me. Det är det som är intressant. Det är intressant vad... Jag hade inte heller så här vibe-kodat. Jag hade definitivt använt kladd mycket mer för att jag tycker det är roligt nu om man skulle lämna in en koduppgift till en intervju. Jag kan få fram så mycket mer. Jag kan visa så mycket mer av mig.

Skriv tester med det här ramverket på det här sättet, bygg upp test med ramiden på det här sättet. Du vet, säga att jag ska göra databaser och grejer. Men jag kan visa hur jag använder en ORM, om det är JavaScript så behöver man välja en. Alltså jag kan visa så himla mycket mer av hur jag skulle bygga ett professionellt projekt.

Madde (11:22)
Det är sant. Man har ju mer tid. så... Man får mer gjort på kort tid.

Sofia (11:27)
Precis, istället för att det blir helt dumt idag med alla AI-verktyg. Om man skulle få fyra timmar på sig, då hinner man kanske sitta och finslipa på sin kod. Men det är inte heller så intressant längre. Det här kunde en AI skrivit till dig på fem sekunder. är det med? Jag tror att man skulle behöva tydligt, om du får ihop ett jättestort projekt med tester och databaser och...

Från den backen, då det så här att det här kunde inte ha hunnit med på fem timmar själv. Man måste ju vara ärlig för det syns ju igenom ändå.

Madde (12:05)
Ja,

ja, såklart. Det blir jättekonstigt att inte vara ärlig kring det.

Sofia (12:08)
Ja, nej men jag hade nog varit väldigt tydlig med det och som du säger hade använt det precis så som jag använde på jobbet och kanske så här till och med ännu mer för att vet att på jobbet, alltså jag kan glömma bort att jag faktiskt kan använda ett AI-verktyg ibland. Man ska ju använda dem.

Madde (12:27)
Gärna är det intressant. Nåväl, ska vi gå vidare? Eller ska vi fastna i detta?

Sofia (12:34)
Nej, men vi kan ju gå vidare. Vi har ju en sponsor med oss idag. Som är Öredev. Så som varje år. Jag tror att de flesta kanske koll på vad Öredev är nu. I och att vi är där varje år, vi pratar om det hela året. Men ni som har missat det, och det är ju lite olika dator varje år. Men Öredev är en jättestor konferens. Det är en av de största i Norden. Och den är fjärde till sjätte november.

Ja.

Madde (13:05)
i Malmö.

Sofia (13:06)
I Malmö, Extremt nära Köpenhamn också. om man inte bor i Malmö och tycker så åh vad coolt det är att åka till Köpenhamn. Jag rekommenderar verkligen att åka till Öredev för att konferensen är precis bredvid tåget. Och tåget tar typ en kvart in till Köpenhamn City.

Madde (13:25)
Nej,

det gör det inte. Det tar en kvart ut till Kastrup flygplatsen. Men sen ska det åka typ 20 minuter till.

Sofia (13:32)
Okej, men om ni vill till Danmark över taget så kan ni ta er till Kastrup. Jättestort. Vi flyger vidare. Okej, vadå? 25? Ja, men okej, är du från Stockholm så är det ju som att ta tuben in till stan, vart du bor. Alltså, det är jätte nära och du hamnar mitt i. Så jag tycker det är sjukt roligt att det är HFN-konferens. köpenhamn. Ja, det ju... Jag var ju... Jag satt ju och kom i T-room.

Madde (13:37)
Det kan man göra.

Det tar typ en halvtimme eller nåt annat sånt här.

du ska följa.

Sofia (13:59)
på öra det förut och då var jag såhär när jag nådde ut till talare och att de är från stora städer i USA, då var jag såhär, de har ju aldrig hört talas om Malmö kanske. Men då var det ju såhär, då kunde man ju säga såhär, det är Köpenhamn, annars är det till Köpenhamn.

Madde (14:15)
Konferensen är ju onsdag till fredag. Så vill man stanna och ta en lång weekend så kan man stanna och ladda sönder och åka till Köpenhavn.

Sofia (14:26)
Ja, jätteroligt i alla fall. Malmö också, jag vet inte, lagom kul i november. Men i alla fall när vi ska prata om konferenser, de har ju tema varje år. Och i år är det 20-årsjubileum för dem.

Madde (14:41)
Det är faktiskt riktigt coolt. Jag tänker att det kommer bli lite extra stort, lite extra coolt.

Sofia (14:47)
Ja, det är så konstigt att tänka på att de har funnits sedan jag var 12 år eller något sådant.

Madde (14:54)
Ja, det var kanske inte då man tänkte på ÖreDev, men absolut. Jag är ju väldigt besviken eftersom jag inte kommer kunna gå i år. Jag har ju en stor deploy några veckor innan.

Sofia (15:03)
Vad för då?

Vilka

increment ni jobbar i. Du vet redan, vi har Deploy då.

Madde (15:16)
Eller? exakt. Nej, det är ju dags för bebis nummer två. Precis i början på oktober typ. Så att det är ju bara typ tre veckor innan eller någonting. Jag har ju haft med min stora bebis innan. Men nu är lite så här, med en typ tre veckors bebis känns det inte så nice att gå på en så stort. Men jag blir jättebesiktig. är sagt. När jag blev gravid jag var så här, jag kommer ju missa det där.

Sofia (15:43)
Nu kanske du är så rutinerad, vet det är ju nära mig tre veckor som det som enklast, sover ju bara hela tiden.

Madde (15:50)
Det gör sig så avsatt om nu. Annars har det nog varit rätt lugnt ändå. sagt, de sover ju så himla mycket. Men ja, så det är faktiskt skitsynd. Vi hade ju annars planerat att vi skulle göra lite roliga grejer där tillsammans med dem.

Sofia (15:52)
och sådant

I och

Madde (16:06)
Ja, exakt.

Men det så nästa år kanske. Men ja då kanske du är gravid igen och vi se. Vi kan slå. Men du kommer gå i alla fall.

Sofia (16:18)
Ja,

men det kommer jag. Om ni vill träffa mig så... I alla fall årets tema då, i och att det är 20 år, tror jag det därför de har det, är temat legacy. Så det handlar ju om idéer och system som består över tid. Vad ska vi säga så här? De mänskliga trådarna som löper igenom varje teknisk lösning i alla fall.

Madde (16:32)
Ja.

Sofia (16:47)
än idag ser det lite mänskliga trådar. Vad är värt att bevara? Vad behöver göras om från grunden?

Madde (16:55)
Jag tycker det är intressant med legacy för att det är väldigt öppet för tolkning. När man tänker legacy och kod så brukar man ofta tänka det i negativa termer. Det är legacy kod, det dåligt gammalt skit. Men legacy handlar också om arvet man lämnar efter sig som människa. Hur folk kommer ihåg en. Det kan vara både positivt och negativt. Man kan bli ihågkommet som seniorutvecklaren som alltid hjälpte till.

och var snäll eller schysst. Eller så blir man hårdkommens om den som aldrig ville svara på frågor. Arv handlar ju om jättemycket.

Sofia (17:31)
Ja. Nej men det jag tycker det är kul tema. tror att alla kan relatera till den, så som du säger. För kod kan ju verkligen bära på minnen. Vi är liksom mamor och papporna till koden och sen blir vi mormor och morfar till den. Och det så häftigt att system är vårt arv som lever kvar. Och det finns folk som har skrivit kod som...

nu är döda och deras kod kör fortfarande och är liksom helt kritisk. Och sådana här idéer som inspirerar hela rörelser. Så att ja, det är intressant.

Madde (18:03)
Eure.

Nej men så kolla in hemsidan. Öredev.com

Sofia (18:17)
Jag hoppas att vi ses där. Glöm inte att köpa biletterna så snart ni kan. De går ju upp i pris ju närmare man kommer.

Madde (18:25)
smart. tips. All right. Vi ska tacka våra skärmsupporter på Patreon också.

Sofia (18:32)
Ja, så vi säger stort tack till 42x.io, Alicia Anders Nylund, Anders Åbjörn, Björn Jonsson, Brother, Dag Renell, 4-3, Johan Larsson, Easy, Keten Kansamerichak, Lars Nyström, Martin Hagen, Molly Haglund, Oskari Snelhest, Robin Modig, Serin Björthall och Thomas Nilsson.

Madde (18:53)
Stort tack till alla er och alla andra som supportar oss på ett eller annat sätt. Så det vi ska prata om idag var ju faktiskt ett ämne som... För några avsnitt sen så pratade vi lite om hur terminalen funkar och vad händer bakom det HUD. Och redan då sa det ju typ så här, men det vore nice att prata lite om typ Homebrew och hur det funkar och sånt också för att man fattar typ aldrig riktigt om man inte tänkt på det. Och det roliga var att nu kommer en kollega till mig.

Häromdagen bara, du jag har en idé på ett poddavsnitt till er. Kan jag inte prata om typ homebrew och vad är skillnaden på cask och tap och formula och allting. För grejen är, jag har gjort brew install så många gånger och aldrig tänkt på varför står det ibland att jag installerar en cask. Varför står det ibland att jag installerar en formula. Alltså vad är vad.

Sofia (19:46)
Ja, men jag också tänkt på det många gånger och jag tänkt så jag skulle vilja bli lite bättre på Homebrew för jag vet att vissa har, när de byter dator, nu får man ju med sig typ alla inställningar om man har iCloud och så, men du måste ju sitta och installera VS Code och sånt och du vet så här varje och den enda Node-version och NVM och då är det vissa som har en så Homebrew, vad kallar man Dot-file? Ja.

Madde (20:13)
Jag vet inte om man kan ha det just i homebrew. Det kanske man kan, så jag kan inte svara på. Men man borde check in såna olika, typ som ZSHRC och allt sånt.

Sofia (20:23)
Precis. Och bli bättre på att förstå det över taget. Men jättegul att prata om det. Jag har ingen alls koll på vad är, att jag vet att det här är det lättaste sättet att installera saker på min makt.

Madde (20:35)
Ja, exakt. Så vi kan börja med lite vad är det om man inte känner till det. För det är ju så här, ja, det här är ju väldigt Mac-centrerat. Det funkar för Linux också kan jag nämna. Men Mac OS har ju ingen inbyggd pakethanterare. Linux har ju typ så här, apt till exempel och lite andra olika paket men det finns inget inbyggd till Mac. Kan nämna för Windows finns ju en motsvarighet också som heter chocolatey.

Sen är inte den exakt likadan, men den gör samma sak. Den installerar saker via terminalen, så du ska kunna klicka igenom en massa UIN.

Sofia (21:13)
Den är inte lika stor och självklar. Det är inte så självklar grej. I alla fall inte när körde Windows, att det var så man installerade.

Madde (21:20)
Nej, kanske inte riktigt lika, men jag brukar i alla fall köra det på tiden jag använder Windows. Men Homebrew är ju väldigt standard just nu känns det som. Så istället för att du behöver ladda ner en DMG-fil, du börjar klicka och så ska du här dra den till din applications-map och allting. Som för övrigt tycker jag är lite småtuntigt sätt att installera. De har ju typ gjort det som att det ska vara så visuellt på något sätt. det är skitsamma.

Sofia (21:50)
Ja, är lite förvirrande nästan när man ska dra in det, tycker jag.

Madde (21:54)
Och ska du installera ett C-Live-verktyg så är det ju ännu rörigare att behöva gå in i terminalen och göra nån request och ditt i norrattan.

Sofia (22:02)
Det svåra är också med uppdateringar tycker jag. Det är väl för mig det skönaste med Homepro. bara så här, behöver jag uppdatera någonting eller? Det är lätt att hämta en ny version om vi vet att den finns. Att försöka googla och hitta den någonstans.

Madde (22:20)
Homebrew är ett projekt skapat av en kille som heter Max Howell.

Sofia (22:26)
Ja, vad dåligt att säga inte. Jag sa inte att heter Max Homebrew. Det heter ändå Ho liksom.

Madde (22:32)
Ja.

Ja, ho, ho. Men han ville ju lösa det här problemet. Han byggde 2009, så det är ju... Det var ju ett par år på nacken nu, kan man säga. Det är byggt i Ruby. Det finns på GitHub, man kan sälja källkåren open source. Ett av de mest forkade projekten faktiskt. En liten angdot också. Jag tyckte det här var kul att Max Howell han har sökt jobb på Google 2015 efter att...

och Homebrew blev stort och blev nekad. Han skrev en tweet om det. så här. Jag har byggt mjukvara som används av 90 % av alla utvecklare på Google. Fick ändå inte jobbet för att jag inte kunde invertera ett binärt sökträd på en whiteboard-tavla.

Sofia (23:24)
Men va? Ja, det är Och de, de, det alltså varje en miss att de bara såhär inte visste vem han var.

Madde (23:32)
Nej nej nej nej, nej de har själva sagt typ såhär. Våra utvecklare använder det och allting, men han fick det ändå inte.

Sofia (23:38)
⁓ okej, ja, nej, det här tyckte jag var jätteintressant. För inverterar benättssökträd känns ju också som en så här, nej, folk kan inte det bara så där, men om man går just på intervju på typ ett sådant företag så vet man att, ja, då görs man tränar på litgård och stöter på det här. För det ett standard whiteboard-uppgift. Så lite konstigt, det måste vara så här, om han failar något så standard.

Madde (23:54)
Det kommer komma ut.

Sofia (24:07)
måste ju chefen hade känt såhär, men det blir så konstigt att anställa honom. Då kommer ju alla veta att vi anställer någon buffetpersonen. Jag vet inte, personen klarar inte av intervjun, men jag anställer personen för att den är typ känd.

Madde (24:23)
Ja,

visst. är en poäng också, såklart. Sen kan man från början tycka hur relevant det att kunna invertera ett binärt-sökträd på en whiteboard. Men är ju så deras intervjuprocessor ser det klart. Det ska väl lika falla.

Sofia (24:36)
Ja, men det ändå rätt så här, kanske standard, om du ändå läste alberit med Anthea. Men nej, nej. Vad konstigt. Jag undrar vad han fick för feedback där.

Madde (24:50)
Ja, nej jag vet inte. Men ja, det är ju väldigt välomvänt. Jag skulle säga att de flesta utvecklar som sitter på en Mac använder nog Homebrew idag. Men ja, du nämnde ju att det var synd att han inte hette Homebrew efter namn. Men det bygger ju på hela liksom bryggeri-metaforerna. Så att det finns ju viss terminologi. Man har ju till exempel formula. Och det är ju då ett recept. Om man nu ska, om folk inte kan ordomenska.

Vi cask, som är ett fat, alltså typ som ett ölfat eller whiskeyfat. Det det du lagrar när du brygger. Du har bottle, ja det betyder flaska. Lite candy, lite glosor. Tapp, det är kranen som du tappar ur. Ölen är ur, du har kegg, som är själva tunnan. Och sen har du celler, som är källare där du förvarar dina ölfat.

Sofia (25:47)
Kan det vara så att Google kände att det fanns en risk för problem med alkohol?

Madde (25:54)
Det har de kanske inte gillar, brygger i metaforen.

Sofia (25:57)
Nej, det kanske var någon som hade en känslig uppväxt där. Bland de som anställde kände. Ja, det här blir nog för stort problem med den här personen. För nära till alkoholprojen.

Madde (26:12)
Jag undrar faktiskt, jag har tänkt på detta för det som sagt det var länge sen jag satt på Windows nu men när man använder Chocolatey, jag undrar vad deras olika motsvarigheter var till de här sakerna. Om det fanns någon liksom mer chokladmetafor kring det. Om det någon som sitter på Windows och använder Chocolatey så får ni gärna komplettera med det. Skriva på Discord eller någonting. Men ja, jag tänker vi går igenom alltså sak för sak vad egentligen det är och vad är skillnaden. För som sagt, man har så många gånger bara kört Brew Install någonting.

Och sen står det en massa grejer och är helt... För mig har det känts random, så här. Installing cask eller installing keg, typ. Men det finns ju en tanke bakom, så...

Sofia (26:53)
Det är väl ändå knutet till, det är inte bara att han använder källare som ett random. Man kan ändå tänka sig det är någonting som ska förvaras.

Madde (27:05)
Ja men precis. Som vi börjar med då formula så är det alla CLI-verktyg som man installerar. Som du till exempel gör brew-install-git, då installerar du en formula, ett recept. Rent konkret så är det liksom ett ruby-skript som beskriver hur du bygger det här programmet från källkoden.

Och kravet för att du ska få ha en formula är att det måste vara open source. Det måste du göra för att du ska få lov att ligga i Homebrew Core. Så det är väldigt strikt granskat och sånt. inte vad som helst som får lov att bli en formula utan det är välkända saker som Git, Node, alla möjliga olika bibliotek. Eller C-Live-verktyg i det här fallet.

Sofia (27:57)
Mm, och då kör man typ brew install node.

Madde (28:01)
Exakt. då blir det den senaste versionen by default och lite sånt. Eller LTS-versionen. Man kan ju ha olika parametrar också om man vill installera en specifikation och sånt. Homebrew har ju också en hemsida där du kan söka på alla olika saker du vill installera och sånt.

Sofia (28:17)
Jag har en fråga, om inte du kan svara på den så ställer jag den frågan till någon som kan det här mycket mer. När man ska installera till exempel Cloud, CLI verktyget, då står det att typ föredragna sättet är att jag får mig att ladda ner deras fil eller något sånt. Och sen typ, det mindre bra sättet är att köra homebrew.

Men du brukar alltid vara tvärtom. Alla ramverk är ju såhär, köra homebrewingstal och allt annat är det som är mer krångligt. Och jag bara undrar varför.

Madde (28:59)
Jag tror vi kommer in lite på det sen när vi pratar om TAP. Men jag vet inte om du vill att jag ska börja prata om det nu eller ska vi gå in det vi pratar

Sofia (29:10)
Vi kör senare så att man får ihop hela bilden. det är i alla en fråga jag har varför de inte är bra.

Madde (29:15)
Ja. jag har glömt det.

Nästa grej vi har är då Casc. Där är det färdiga appar med ett gränssnitt. Om du installerar VS Code eller om du installerar Spotify eller någonting. Då kallas det för en casc. Då kör du det med brew install dash dash casc och så typ Visual Studio Code.

Sofia (29:40)
Nej vänta du sa att det är töntigt att ladda ner appar. Så om du ska ha ner Spotify ladda nu ner det med bro.

Madde (29:48)
Spotify har faktiskt inte lagt ner med homebrew. Men VS Code brukar ladda ner med homebrew dock. har blivit såhär, utvecklingsrelaterade saker har laddat ner med homebrew. sen typ såhär, Spotify hade jag nog inte tänkt på att jag skulle installera med homebrew.

Sofia (30:06)
Jag hade att installera One Password

Madde (30:11)
Nej, det har jag inte gjort heller, men man kan ju om det finns en cask före. Så då får du hem en färdig, alltså en binär eller DMG som det heter på Mac. Ingenting byggs lokalt då, utan det är klart. Och alltså om man nu vill ha en enkel tumregel hamnade i din applications-mapp då är det en cask. Medan om det hamnar i terminalen då är det en formula.

Sen finns det såklart Gråzon också om man tänker på typ VS Code. För den installerar ju både din GUI-app när du går in och kodar. Men den installerar ju också CodeCommand. Så du kan köra kod från terminalen. Om du kör Code. för att du öppnar ju hela din mapp som du står i VS Code. Men det är ändå en cask för att installationsmekanismen är... Den är binärbaserad. Du får en DMG. Så då räknas det som en cask.

Kör inte att kompulera på din dator.

Sofia (31:11)
Mm, okej. Jag undrar hur säkerheten ser ut kring casks. För som du sa, Formulas, de är ju granskade av Homebrew-mainteners. Men hur är det med cask? För som jag förstått det så kommer vi ju till Taps att det är liksom, det kanske är det med kladda. För det är typ så vilda västern.

Madde (31:35)
Det är ju precis det. Om man kollar på vad en tap är så är det en källa till olika antingen formulas eller casks. Så tänkte jag du har två olika kranar. Från ena kranen kan du tappa upp olika formula och från ena kranen kan du tappa upp olika casks som då är officiella. Så det finns två stycken officiella taps från Homebrew. Det är Homebrew Core.

Där kan du ladda ner alla standardformulas, som Git, Python, Node och så vidare. Sen har de Homebrew slash CASC, är alla standard CASC, som är VS Code, Slack, Dittynorratten. Så där är liksom allting granskat. liksom väldigt... Ja, det finns krav. Det måste vara upp med källkod. De måste vara aktivt underhållna. De måste vara granskare av Homebrew-teamet.

Men sen finns det ju saker på Homebrew som inte uppfyller de här kraven. Och det kan vara för att de kanske har sin egen releasecykel. Att den inte lever upp. Det kanske inte är uppen källkod. Men man vill ändå kunna installera det via Homebrew. Och då finns det ju de här tredjepartstapsen. Då, till exempel Claude Celay. För det är ju inte uppen källkod. Så då har ju de en egen tap som du fortfarande kan liksom...

Hämta från, men den är inte granskad av Home Road-teamet. Så då måste du lita på den som äger själva Tappen istället. Är du med?

Sofia (33:15)
Men jag fattar liksom inte varför... För nu kollar du upp det. En tropics officiella dokumentation säger att man ska installera via NPM. Det är den officiellt supporterade metoden. Så de vill alltså inte ha en officiell... Klad eller en tropic-tap för homebrew då.

Madde (33:38)
Ja, antagligen inte. Men det finns ju. Det kanske inte är Entropix som har satt upp den för det skulle egentligen kunna vara... ...alldeles det som har gjort det.

Sofia (33:41)
Det för övrigt.

Det är en annan.

Det är just det.

Madde (33:51)
Jag har installerat Cloud C Live via Homebrew till exempel. Men däremot så sker inte uppdatering automatiskt utan jag får en sån här liten typ. du har väl sett uppdatering? Finns det en ny uppdatering? Kör Brew, install, Cloud typ? I de officiella så brukar det ju ske mer automatiserat. I alla fall om du kör något annat Brook command så brukar det ju passa på att se om man behöver installera någonting annat under tiden.

Sofia (34:01)
Chill.

Madde (34:19)
Så är så TAPS funkar. Sen hade vi ju Bottle. En Bottle är ett förkopplerat paket. Så du bara får hem en binär som du laddar ner och sen packar upp. Hade man inte haft Bottle så hade Homebrew laddat ner källkoden och sen kompilerat den lokalt på din dator. Och det kan ju ta ganska lång tid beroende på hur komplex det är. Och du kan behöva ha...

olika saker installerade för att kunna kompilera. Du behöver ju ha en kompilator som stödjer det. Nu behöver du inte ha det för då kan du få någonting färdigt. Så det är ganska nice. Det sker ju bara på tiden det tar att ladda ner botten. Och Homebrew bygger ju robottels för varje version av varje formula. Det sker på GitHub Actions. Och här ser vi till exempel att då gör de ju två versioner. De måste göra en version som stödjer Apple Silicon.

och en som stödjer Intel. För de gamla då, som inte är M-processorna. För det är ju två helt olika arkitekturer som behöver ha helt olika binärer. Så då slipper man göra det lokalt också. Sen kan det ju vara att ibland måste man ju bygga det själv på sin dator om du har någon jätteovanlig arkitektur på din uppsättning. Om du installerar någon specifik version som är äldre eller vad det kan vara.

Eller så skickar du in flaggan bild från source om du nu vill göra det. Men Homebrew avråder för att man ska göra det. att då sker liksom inte de här automatiska uppdateringarna med bottel och liknande.

Sofia (35:56)
Nu när du säger automatiska uppdateringar, jag måste rätta det så om Cloud, för jag läste inte på deras hemsida. NPM är inte det officiella sättet. Jag minns inte att det stod det. Det var det förut, och nu är det att man ska... Vad är det? Det är deprecated att man ska göra så. Man ska använda den native installern.

Alltså ingen Node.js krävs. Och native installeren auto-uppdaterar i bakgrunden. Och är liksom signerad Amontropic. Och det finns ett officiellt alternativ nu att du kan installera med Homebrew. Så det är inte farligt. Det är ett giltigt installationsalternativ. Men det som står på hemsidan är bara att du auto-uppdaterar inte. Men använder man Cloud?

Madde (36:50)
Nej, okej.

Sofia (36:53)
Så ser man ju hela tiden när det finns en uppdatering. Ja exakt. väldigt tydligt. Ja, där sa jag fel. Ni som skrek.

Madde (36:57)
och missade.

Nej, det var fel. Ja, typ. Du hann ändra dig, så nu slipper någon kommentera det. Okej. Men om vi bara går igenom det snabbt då, vad händer när man kör Brew Install? Så säger jag att du ska installera Git då. Så vi kör Brew Install Git. Så det första den gör är att Brew kollar på tabs och letar upp då formulan för Git. Som då som sagt är ett rubikskript. Sen nästa steg kollar den om det finns en bottle. Alltså en för...

Komplierad version baserat på din macOS-version och vilken arkitektur du kör. Trevlig steget, ladda ner den botten från GitHub Packages. Eller källkåren ifall det fanns en botten. Men för Git så gör det ju garanterat det. Sen så installera den i Celler. källaren. I alla fall om du kör Silicon så ligger den i slash opt slash homebrew slash seller slash git.

och så då ett versionsnummer. Och sen så skapar den en symlink från då din seller, alltså den här specifika versionen till då bara slash opt slash homebrew slash bin slash git. Och sen är det klart, sen kan du köra git i terminalen.

Sofia (38:19)
Det var simlink.

Madde (38:23)
Absolut. Simlink känns som ett ord man hör så mycket om man bara... Man vet typ vad det är, men vad är det egentligen? Simlink står för symbolic link.

Sofia (38:35)
Ja, det får du ett rum åt det helt.

Madde (38:38)
Det är egentligen bara typ en fil som pekar på en annan fil. Alltså som ett alias eller som en genväg eller någonting. Men till exempel om vi då tar det här exemplet med git. Då är den installerad på ett specifikt versionsnummer. Alltså där är ju en mapp som heter 12.3.9. Men det blir ju väldigt drygt om du varje gång ska referera till slash git slash 12.7.9. Utan då skapas bara ett typ då alias eller då en symlink. Så att du kan bara gå mot...

och sen sköter den under the hood vilken faktisk version det är. Så det är ganska nice. För om du då ska uppdatera Git från en version till en annan så behöver Homebrew bara installera den nya versionen i en ny mapp i din seller och sedan bara flytta den då vad den här pekar, alltså vad symlinken pekar på. Så ditt interface blir alltid Git-mappen. Du behöver inte peka på en specifik version.

Sofia (39:15)
Mm.

Okej, snyggt. Jag måste använda det här ordet symlink någonstans på jobbet i någon kontekt så att jag... låter väldigt klok.

Madde (39:47)
Vi hade faktiskt en kollega för några veckor sen som byggde ett eget skript för att kunna sim-linka. För vi har ju så här massa olika paket som är beroende av varandra. Så när man ska köra lokalt så kan det vara så men då behöver jag en specifik version av det här paketet som jag också kör lokalt. Så då han satt upp sim-links för det. Så var rätt nice. Så kände jag att jag kunde det här.

Sofia (40:09)
Jag var glad du var så liten när du läste det här. Såklart är det en symlink.

Madde (40:14)
Släpp vuxen.

Sofia (40:17)
Ja, ja men nice. Då fattar jag varför det funkar så himla enkelt och bra. Det ett av de så här silla i verktyget som känns som att man fattar direkt. Alltså när jag började jobba så här, oj ja men det ser lit och det känns inte svårt.

Madde (40:33)
Eller hur? Det är nice när det blir så enkelt att man bara kan göra det.

Sofia (40:41)
Men vi ska prata lite säkerhet för det tyckte jag faktiskt var det intressanta nu med Homebrew. Vi pratade ju för några veckor sedan om att det kan vara lätt att ändå hackas in och få in fel versioner av saker i open source-verktyg. Homebrew är skrivet av en dude som inte ens fick jobb på Google. men, mycket kan man lita på Homebrew?

Madde (41:08)
Ja. Alltså det är ju ett jättestort kommun kring det. Och som jag nämnde så finns det ju då de här två tappsen. Homebrew Core och Homebrew Cask. Och där är det människor som granskar alla peers. Där är sådana här 256-verifieringar av alla nedladdningar. Och sedan från och med september 2026. Så det är krav på Apple sådana här codesigning. Jag vet inte exakt vad det faktiskt innebär.

Men det är väl någonting som Apple har infört. Men ja, för alla casks då. det är liksom ändå... Så länge det från en officiell tap så är det liksom safe. Är det däremot från en sån här tredjeparts-tap då försvinner ju allt det här. Det finns ingen granskning från Homebrew-teamet. Man får ju lita blint på den som har lagt upp repot.

Sofia (42:04)
Men

där blir det väldigt tydligt ändå. Om jag säger att jag är igen tillbaka till Cloud Code, nu kanske innan det fanns som ett officiellt sätt att installera, då kanske... Jag kommer inte ihåg vad du sa för fint svensk namn. Sven... Sven-Holo tror jag. Sven-Gösta. Då hade det ju ändå stått så här, Brewinstall, typ Sven-Gösta slash Cloud Code. Det hade inte bara stått Cloud Code väl. Alltså...

Madde (42:29)
Ja, det hade du.

Sofia (42:34)
Det står LALUJA!

Madde (42:34)
Det är på personen

döper det till. Ja exakt. Ja, skulle det bara vara ett helt random repo så hade det ju stått då. Använda namnet. Men jag vet faktiskt inte exakt hur det funkar. Alltså att kan du liksom klaima ett tap-namn fastän du inte äger det? att man ska sno typ så här Terraform. Så då skapar du en organisation eller en tap då som heter Heshy Corp.

fast den inte är det. Sen så slänger du in någonting som heter terraform, fast det är ett skaligt repo. Det väl där man måste själv sitta och titta om det är en tredjepartytap och se, okej, är detta verkligen vad det utger sig för att vara?

Men samtidigt så... För det vet jag att jag har sett nån gång på nån så här... Nu berättar jag ganska länge sen, men om det var till exempel... Kan det ha varit NVM eller nånting? Och då är det typ så här... Då har någon claim att NVM... Så då måste du installera NVM... Official. För att liksom få rätt version. Jag kommer inte ihåg om det var just NVM eller nånting, men det skulle ju kunna ske.

Sofia (43:46)
Ja, antagligen så, behöver nog gå in i verktygets officiella dokumentation och dubbelkolla att det är, alltså att tappen pekar rätt på något

Madde (43:59)
Ja,

kollar man på Homebrews hemsida så står det ju också typ om du söker på Terraform till exempel så står det ju vem som ligger bakom och sånt också tror jag så att man kan se det där med. Men visst det är väl allra tryggast att kolla från källan också om de har någon officiell. För även om det är, alltså säg då Terraform igen som exempel. Om de säger ja men vi har vårt app här så här installerade vi via Homebrew. Då känns det ju fortfarande tryggt. De skulle ju inte liksom ha in malicious code.

Sofia (44:29)
Ja, det jag inte. Det är ju alltid kul att hända. Men kolla här då. Det finns ändå så att man kan typ... Varifiera att en tap pekar rätt innan man kör något. Man typ skriver så här brew tap info och tap ens namn. Eller så kan man typ... Man kan läsa formulas eller casks innan man installerar dem.

Madde (44:54)
Ja.

Sofia (44:56)
Nej

men det är väl bra och man kan ändå anta att allt så git och no det är kollat men är det någonting mer speciellt så kan man ju bara dubbekolla. För som du säger någon har okej klimat det namnet som känns självklart. Och så råkar man instadera något annat.

Madde (45:10)
Jajamän, precis.

Samtidigt jämför detta med en PM. Jag kan publicera på en PM utan någon form av granskning. Är man trygg med att installera saker där så borde man vara trygg med att installera via Homebrew också. Framförallt om det är via Core är det PR, review och allting. Man kan vara trygg med det.

Så det är väl det om homebrew.

Sofia (45:42)
Ja, tack för den genomgången.

Madde (45:47)
Jag

ska skicka detta också till min kollega och säga, nu kan du veta skillnaden här på allting.

Sofia (45:52)
Ja. Ja men tack till alla er som orkar lyssna ända hit. Det tar ju lite tid innan vi kommer in på huvudämnet som vi ska prata om allting. Men jag vet att vissa uppskattar det och vissa gör det inte.

Madde (46:04)
Ja,

vi har ju våra kapitel så man kan kolla vilken tidstämpel man vill skippa bort. Snyckisnack.

Sofia (46:10)
Ja, fast de som har lyssnat ända hit, de bryr sig inte om kapitlen eller annat. Men det de som tycker att är starka för mycket i början.

Madde (46:17)
Det sant. Men vi ses som varit i nästa vecka. Och se gärna till om ni har något som ni tycker att vore kul att vi pratade om. Man kan skicka in, vi har varit vanliga frågeformular, man kan skicka in. Men där kan man också skriva typ så här, kan inte ni prata om...

Sofia (46:23)
Det här var det.

Ja, men det kan man göra. kan maila eller skriva på Discord eller skicka via formuläret. Men skriv också gärna era frågor. Vi tycker alltid det är kul med drama eller bara frågor. Vad ska jag göra med det här?

Madde (46:53)
Vi ses, ha det

Sofia (46:55)
Hej då!

Skapare och gäster

Madeleine Schönemann
Värd
Madeleine Schönemann
Madde är en riktig allrounder! Hon har haft många roliga och lärorika roller inom branschen, som utvecklare, scrum master, product manager, konferensarrangör och föreläsare på flera olika evenemang. Programmering ligger henne varmt om hjärtat och hennes stora glädje är att tillsammans med sitt team leverera produkter som gör verklig skillnad för användarna.
Sofia Larsson
Värd
Sofia Larsson
Sofia är en erfaren utvecklare som tycker om att vara en del av produktupptäcktsfasen och skapa effektiva lösningar med användaren i fokus. Hon har ett starkt engagemang för digital hållbarhet och i sin roll som Digital Sustanability Competence Lead jobbar hon för att öka det digitala mijömedvetandet. LinkedIn
image of podcast supporter image of podcast supporter image of podcast supporter image of podcast supporter image of podcast supporter
Bli en av 37 supportrar