Årsarkiv: 2017

Dating 101

Med bara en vecka kvar till folkets favorithögtid Alla hjärtans dag tänkte jag att det passade bra med ett litet utdrag från min egen dejting-repertoar. För att inspirera och underhålla.

För de som har förmågan att läsa och lyssna på musik samtidigt finns ett soundtrack som är tänkt att berika upplevelsen, men det går också bra att ta musiken före eller efter läsningen. Spellistan finns tillgänglig på Spotify och YouTube. Tanken är att en låt hör till en rubrik plus brödtext, med start vid Jodel-rubriken :)

Jodel

Händelserna bakom den här historien tog plats här i Linköping för lite mer än en vecka sedan. Lördagen den 28e januari spenderade jag kvällen med att stillsamt följa lite e-sport, närmare bestämt matchen mellan Fnatic och Astralis i CS:GO. Trots hög spänning i matchen kunde jag inte låta bli att stundtals slökolla på tvättbjörn-skvallret på Jodel, studenternas anonyma favoritanslagstavla. En jodel väckte mitt intresse och nedan återger jag dess diskussionstråd.

För icke-jodlare kommer här lite kort information om notationen som används. OJ betyder ”Original Jodler” dvs den person som skrev det första inlägget i tråden och #n anger det n:te svaret i tråden. Nedan har jag märkt mina egna jodels med E, men på riktigt var jag förstås anonym. Tråden är i huvudsak en dialog mellan OJ och E, och den började såhär:

OJ: Varje gång jag ska göra yoga gör jag plats i vardagsrummet och sätter på ett instrueringsklipp på Youtube på datorn. Max fem minuter in dör wifi. Varje gång.
Är inte så jävla zen kan jag meddela.

#1: Dåligt wi-fi

OJ: Bahnhof 👌

E: Det är väl inte Bahnhof som står för ditt WiFi? Wifi != Internetanslutningen

Såhär i efterhand finner jag det ganska komiskt att det var min irritation över att någon skyllde på Bahnhof för sitt dåliga WiFi som drog in mig i konversationen. Men det är inte så konstigt egentligen, ger man sig på mina kompisar får man räkna med mothugg och jag och Bahnhof är riktigt goa vänner. Nåväl, tillbaka till konversationen:

OJ: Jag vet inte. Först kommer ”no internet access” och sen går det inte att koppla upp sig mot wifiet på en bra stund. Datorn står precis bredvid routern då.

E: Känns ändå troligare att det är fel på routern än på Bahnhof. Men du kan ju alltid prova att köra trådbundet alternativt testa en annan router, vissa routrar kan vara riktigt kassa.

E: Nu bad du iofs inte om felsökningstips, men jag har en ganska tråkig lördagskväll utan nåt bättre för mig.

OJ: Har haft jättemkt problem med internet överlag i perioder. Har haft kontakt med Bahnhof, testat att byta sladd och annan router och har inte hjälpt då, men tack jag ska testa!

OJ: Tycker mest det är skumt att det är VARJE gång jag ska yoga. Jag har aldrig datorn precis vid routern förutom då, finns det någon möjlighet att det har med saken att göra? Eller att wifiet hatar Youtube.

OJ: Eller att skrämmande regelbundna tillfälligheter bara är story of my life.

E: Borde bara vara en tillfällighet att det sker just då, men jag har begränsad yoga-erfarenhet så vågar inte utesluta det helt. Jobbigt läge dock :/

OJ: Tycker elektronik överlag bara är tillfälliga problem som  folk har lösningar på men ingen förklaring till.

OJs frustration fick mig att känna empati men jag insåg också att det skulle krävas mycket mer än lite joddlande för att lösa teknikproblemen. Jag bytte därför approach och aktiverade flört-läget som tog sig följande uttryck:

E: Haha, ja :) Drömmer ofta om ett enklare liv på engelska landsbygden, självförsörjande med lite djur och odlingar och framför allt inget teknikstrul :D

OJ: Samma här, det låter helt perfekt :) vem är du?

Lätt chockerad över flört-lägets överväldigande effekt, ty sällan har någon frågat mig vem jag är, började jag fundera över vem jag var och hur jag kunde presentera detta i korta ordalag. En liten sidnotis är att min dröm om engelska landsbygden kommer från min tonårstid då jag med stor glädje följde de första säsongerna av River Cottage. Rekommenderas starkt!

E: Jag är fjärdeårsstudent och bor i en rydsetta. Gillar hundar och sport. Ogillar rökning och förkylningar. Ja, det var nog allt ;) Vem är du?

OJ: Är inne på mitt andra år på uni, gillar djur, plugga och träna, är trött på kylan och mörkret

E: Vi skulle ta och plugga/träna ihop nån gång för extra motivation :) Jag pluggar U, vad pluggar du?

OJ: Absolut :) pluggar TBi

E: Vet du, fastän det skulle vara långt utanför komfortzonen tror jag det vore nice med typ en Ellen-fika så vi kan planera vidare med de där gemensamma träningspassen ;) Är du på?

OJ: Ja det vore kul! Har du kik/snap/liknande så kan vi bestämma hur var när där :)

Som ni kanske kan ana från konversationen var jag all-in på att träffa den här personen och såg ingen anledning till att dra ut på tiden. Förvånande var att OJ var med på tåget till fullo. Jag hade dock ingen tid för att fundera på huruvida personen var vid sina sinnens fulla bruk då en ny utmaning hade dykt upp; Eftersom jag otroligt nog varken hade kik eller snap spred sig paniken inom mig. Jag tog det snabba beslutet att sätta upp ett kik-konto. Jag velade i valet av profilbild men övertalade mig att min (oretuscherade) badrumsselfie med stekpannan var snäppet bättre än ingen bild alls. Efter ett otal försök att hitta ett ledigt och lämpligt användarnamn (Mitt goto-användarnamn mjauvoff och många andra djurrelaterade namn var upptagna) kunde jag avsluta vår dygnslånga konversation på Jodel med ”Sure, heter semlekatt på kik.

Badrumsselfie med stekpannan och heart eyes.

Ellen-fika

Jag och Miriam fortsatte vår konversation på kik och vi planerade in en träff klockan halv fyra på onsdagen den 1a februari. Café Ellen ligger i Key-huset och förutom att byggnaden har den trevligaste arkitekturen på campus brukar det oftast vara få teknologer som rör sig i de krokarna. Därför passade det perfekt för en diskret (och nervös) första träff med min teknikfrustrerade medstudent.

Caféet var glesbefolkat vid tiden för vårt möte. Jag hade ankommit 10 minuter tidigt för att välja ett bra bord och satt med ryggen mot ”ingången”. Miriam hade fått instruktioner om att leta efter en kille i skjorta och glasögon som låtsades vara upptagen med att läsa i sitt anteckningsblock. Rätt som det var stod hon en meter från bordet snett bakom mig och yttrade ett frågande ”Eric?”. Jag vände mig om, reste mig från stolen och något tumultartat klargjorde vi att vi var rätt personer och etablerade hälsningshandling (kram > skaka tass).

Miriam med bruna ögon och axellångt brunt hår bar en ljusrosa tröja med blå jeans till. Ni kan tänka er en Noblesse original-förpackning med jeans för att få en bättre bild av färgschemat, men det såg i vart fall bra ut.

Efter att vi köpt på oss lite fika (jag tog en te och en mockaruta AKA kärleksmums, Miriam bara te med smakprov på tidigare nämnd gobit) slog vi oss ner vid vårt bord och kunde äntligen gå loss med alla frågor vi hade om varandra. Miriam förklarade vad det egentligen är som är så roligt med att plugga och dementerade påståendet att hon skulle vara miljonär eftersom hon hade ett vardagsrum i hennes bostad, tvärtemot mina föraningar. Jag försökte sälja in programmering som den bästa kompetensen att få med sin utbildning men fick hårt motstånd från biologi-ingenjören vars utbildning gav goda möjligheter till kontakt med många sorters djur och inte bara kodapor.

Efter den drygt en timmes långa fikapausen gick vi ut för att ta adjö på cykelparkeringen. Jag lyfte min önskan om att vi skulle ses igen inom den närmaste framtiden. Efter medhåll från Miriam lovade jag att jag skulle komma med ett förslag på aktivitet inom kort. Vid lunchtid dagen därpå skickade jag ett meddelande och frågade om hon ville komma över på middag hos mig kl 18 på lördagen. Miriam svarade, lika orädd som alltid, att det ville hon gärna.

Kärleks-kattalysatorn [sic!]

Under lördagen kom Miriam till lägenheten före avsatt tid för att hjälpa till med matlagningen. På menyn stod fiskpinnar med potatismos med rårivna morötter och ärtor. Enkelt men delikat. Till maten drack vi mitt favoritvin, Via del Campo. Jag är ingen vin-konnässör men vinet uppfyller mina grundkrav för ett bra vin, ekologiskt och antingen vitt eller rosé, och är dessutom väldigt gott.

Under middagen pågick en försiktig och blygsam dialog. Då vi klarat av de flesta standardfrågorna under vår fika hade mycket av diskussionsmaterialet lagts till handlingarna och stämningen var mer spänd nu än första gången vi träffades. Som tur var fanns i mina planer för kvällen något som förhoppningsvis skulle åtgärda det strama sociala klimatet. När vi hade rensat våra tallrikar tog jag initiativet och sa till Miriam: ”Eftersom du gillar katter, skulle jag vilja testa en sak med dig.” Miriam såg frågande ut och gav ett ”okej?” till svar. Jag fortsatte, ”Eftersom vi just har träffats men ändå verkar tycka bra om varandra har jag tänkt på ett experiment från en studie som jag tror skulle passa oss.” Miriam gav ifrån sig ett nervöst leende och ytterligare ett ”ookej?” Nu kunde jag inte hålla henne på halster längre, efter ett djupt andetag slängde jag ur mig ”Experimentet går ut på att se om man med hjälp av 36 frågor kan bli förälskade i varandra.” En naturlig skepsis kunde skönjas i Miriams ansiktsuttryck, men hon log fortfarande. Jag ledde Miriam från köksbordet fram till datorskärmen och skrev in http://36questionsinlove.com/ i min webbläsare. Jag gav en kort introduktion till hur experimentet skulle utföras och vi var snart igång med frågorna. Om ni som läsare är intresserade av frågorna och experimentet finns en artikel från New York Times att läsa och likaså originalstudien.

Utan att gå in på några detaljer kan jag erkänna att det var både en rolig och lite sorgesam process att gå igenom alla frågor, för att inte tala om emotionell. Vi hade spenderat nästan två timmar på att besvara frågorna när det var dags för Miriam att gå hem. Efter ett varmt och långvarigt avsked, kram > skaka tass osv, trippade Miriam längs korridoren ut i trapphuset och utom synhåll. :(

Men vi hördes av snart därpå :)

Strävan

Så har vi kommit till tisdagen den 7e februari och det är äntligen debut för Eric och Miriams första gemensamma träningspass. Passet börjar med en löprunda i Rydskogen och avslutas med yoga hos Miriam, förutsatt att Wi-Fi fungerar som det ska. Diskussionerna har gått varma kring vem av oss som har bäst flås och även om jag hävdat mig som den snabbaste tror jag innerst inne att ikväll är det hon som får agera hare och jag som jagar. Men jag ser hoppfullt på framtiden och att vi då kan hålla jämna steg med varandra.


FRISKRIVNING: Historien ovan är baserad på en sann historia. Vissa händelser kan delvis ha modifierats eller till fullo konstruerats för att ge läsaren en bättre upplevelse. Miriam heter i själva verket något annat.
Vid intresse är författaren beredd att medge sanningen, hela sanningen, och inget utom sanningen givet en tillräckligt god middag.

Boktipset: The Psychology of Computer Programming

I höstas läste jag kursen TDDD30 Avancerad programutvecklingsmetodik. I kursen ingick att läsa The Guide to Software Engineering Body of Knowledge (SWEBOK Guide) vilken är en sorts guide till nästan varje ämne inom Software Engineering. Eftersom kursens deltagare hade olika bakgrund var det upp till varje student att själv välja vilka delar som denne skulle läsa. Jag läste förmodligen mindre än jag borde gjort, men i kapitel 11 som behandlar gruppdynamik, psykologi och kommunikation fanns en referens som väckte mitt intresse. Det var Gerald M. Weinbergs The Psychology of Computer Programming som också är ämnet för det här inlägget.

Framsida av boken The Psychology of Computer Programming

Struktur och indelning

The Psychology of Computer Programming utgavs ursprungligen år 1971 men som ni kan se på bilden läste jag silverbröllopsutgåvan, utgiven 1998, där varje kapitel utökats med författarens kommentarer som han skrivit 25 år senare. Boken är på många sätt ett historiskt dokument över hur programmering och mjukvara framställdes på 70-talet och eftersom industrin genomgått stora förändringar sedan dess uppskattas de mer aktuella tankarna från 90-talet. Allra bäst vore om det funnits en gold anniversary edition men den har tyvärr inte givits ut.

Boken är uppdelad i fyra delar som i sin tur är uppdelade i kapitel. I slutet av varje kapitel ges en bibliografi för vidare läsning och det ställs frågor till läsaren. Frågorna är riktade till antingen programmerare eller chefer som bossar över programmerare och bidrar till att läsaren kan applicera materialet till eventuella egna situationer.

Nedan följer mina personliga utsvävningar från några av bokens kapitel. Om ni tycker saker verkar tagna ur sitt sammanhang är min rekommendation att ni läser boken, den är bra!

Chapter 1: Reading programs

Redan i bokens första kapitel blir det uppenbart att boken är skriven för mer än ett halvsekel sedan. Det kodexempel som ges är skrivet i programmeringsspråket PL/I, vilket jag sedan tidigare inte ens visste var ett programmeringsspråk. Språken som används i boken är oftast FORTRAN och PL/I och det känns ibland ganska avlägset. Som tur är handlar det mesta i boken snarare om psykologi samt människor och eftersom människan inte förändrats lika mycket som programmering under de senaste 50 åren har boken åldrats med värdighet och fungerar än idag.

Chapter 2: What makes a good program?

Kapitlet tar upp och jämför faktorer som uppfyllelse av krav, leverans enligt tidplan, anpassningsförmåga och effektivitet. Weinberg levererar en rolig anekdot som cementerar det faktum att om programvaran inte fungerar är prestandan (och andra krav) irrelevanta.

Chapter 3: How can we study programming?

Ett intressant fenomen som försvårar observationsstudier är Hawthorneeffekten som innebär att subjektet för studien omedvetet förändrar sitt beteendet på grund av att hen vet om att hen blir observerad. Slutsats: Det är svårt att utföra psykologiska experiment!

Chapter 4: The programming group

Weinberg myntar i detta kapitel programmeringsmetoden egoless programming och argumenterar för hur mycket bättre allt blir om man tar bort sitt ego ur mjukvaruproduktionen. Dessutom nämner han hur John von Neumann ”was constantly asserting what a lousy programmer he was” vilket var helt annorlunda mot vem jag föreställt mig att von Neumann var. Jeff Atwood har ett läsvärt inlägg om egoless programming på sin blog coding horror.

Chapter 5: The programming team

Två intressanta uttryck i detta kapitel:

  • Parkinsonianism
    Parkinsons lag kan formuleras: ”Ett arbete kommer uppta den tid som är avsatt för ändamålet.” Det blir alltså väldigt svårt att konstruera en tidsplanering (med nödvändig ”slack” ifall något går galet, vilket det alltid gör) om arbetet kommer expandera utifrån planeringen.
  • ”Call to the cloth”
    Jag vet inte riktigt vad det betyder, men det verkar ha nåt med tro och religion att göra. Hör av dig om du kan förklara dess betydelse för mig. :)
    Uppdatering 2017-02-06: En av mina kunniga läsare hörde av sig och gav följande förklaring till uttrycket: ”Det betyder kallelse till präst. The cloth syftar på själva prästkåpan.” Förklaringen passar väl in i bokens kontext där Weinberg ger exempel på orsaker till förlust av gruppmedlemmar befordran, uppsägning, sjukdom etc.

Chapter 6: The programming project

Ganska ofta i boken berör Weinberg ämnet (bristen på) kvinnor i mjukvaruindustrin. Under 70-talet var könsfördelningen inom branschen ungefär som jag känner igen den idag; ca 90% män. I boken nämns som hastigast hur detta ändrats under sent 80-, tidigt 90-tal och blivit mer jämlikt. Weinberg beskriver hur det var enklare att bilda stereotyper av kvinnliga programmerare då de var få men att dessa stereotyper upplöses då de blir mindre sällsynta.

I samband med att jag läste detta såg jag även dokumentären Genusbuggen (eng. titel Code: Debugging the gender gap) som trots att den var väldigt amerikansk var klart sevärd. Detta fick mig att fundera hur könsfördelningstrenden i Sverige ser ut idag och därför gjorde jag en liten undersökning. Utifrån sökstatistik från UHR plottade jag andelen kvinnor som sökt till civilingenjörsprogram i datateknik under perioden 2008 till 2016. Resultatet finns att ta del av i ett Google Spreadsheets-dokument eller, om ni inte är intresserade av data-underlaget och interaktion med diagrammet, i bilden nedan.

Resultat över andel sökande kvinnor till civilingenjörsutbildningar i datateknik i Sverige år 2008 till 2016.

Med försiktig optimism vill jag ändå påstå att det är en positiv trend vi ser, heja heja!

Chapter 8: Personality Factors

Weinberg tar upp ett flertal typer av personlighetstester, men det är inte förrän i 25-årskommentarerna som Myers-Briggs Type Indicator (MBTI) kommer på tal, helt enkelt för att MBTI presenterade först 1980. Av en tillfällighet hade jag, i TDDD30, läst en studie om parprogrammering som kritiserat MBTI och istället rekommenderade IPIP-NEO. Personligen föredrar jag nog ändå MBTI, om inte annat så för att man på https://www.16personalities.com enkelt kan testa sig och även se vilka kändisar som delar ens personlighetstyp. Enligt mitt testresultat har jag samma typ som Neo i Matrix så helt kasst verkar inte MBTI vara. ;)

Chapter 10: Motivation, Training, and Experience

Jag gillar de frågor författaren riktar till cheferna i det här kapitlet. ”Skyddar du dina programmerare från att arbeta för mycket? Avundas du deras entusiasm till deras arbete? Uppmuntrar du dem till att arbeta på det sätt som passar dem bäst? Får de jobba hemifrån och ha flexibla arbetstider? Uppmuntrar du till fortbildning?” Vissa frågeställningar kan tyckas banala men kapitlet och stora delar av boken tydliggör skillnaderna mellan chef och programmerare och de utmaningar som kommer med dessa.

Part 4: Programming Tools (Chapter 11-13)

I bokens sista del gör sig 70-talet påmint igen: ”... although the assembly programmer may scoff at the machine-language programmer, he may be in turn the object of amusement for the user of a language with macro facilities.” Hela part 4 är väldigt old-school och låg-nivå och jag har ofta svårt att sätta mig in i situationer som handlar om hålkort, COBOL och obskyra operativsystem. Ett avsnitt ”Time sharing vs batch” minns (och förstod) jag ingenting av.

Slutord

The Psychology of Computer Programming var fram till de sista tre kapitlen, då bokens ålder blir alltför påtaglig för mig, en mycket underhållande skrift. Weinberg bjuder på en uppsjö av roliga anekdoter som får en att känna igen sig och reflektera över sitt eget och sina kollegors beteende. Den är relevant både för programmerare och chefer till programmerare och även om vissa lärdomar kan tyckas triviala (t.ex. en programmerare med tandvärk presterar inte så bra han/hon kan) finns det många viktiga aspekter att diskutera och reflektera över, för programmering handlar förstås om mycket mer än vilket språk vi skriver i.

Betyget blir tre av fem riviga rävar.

math-quiz

Den här julen har jag för första gången under min studietid på LiU haft jullov på riktigt. Med det menas att jag inte behövt plugga inför några januaritentor alls, vilken lyx!

Denna möjlighet att spendera julen med att göra precis vad jag velat har resulterat i en app jag kallar math-quiz. Framtagandet av math-quiz har inkluderat både programmering och matematik, så lustigt nog blev det inte alltför stor skillnad mot tentaplugget. Många kanske undrar varför jag valde att skapa math-quiz och hur det gick till på vägen. Därför tänkte jag försöka besvara dessa frågor med just det här inlägget.

Syfte

Något som ofta nämns i samband med civilingenjörsutbildningar är hur matematikintensiva de är. I examenskraven för civ.ing. i mjukvaruteknik står att minst 45hp kurser inom matematik eller tillämpning inom matematik ska ingå i utbildningen. I min utbildning sprids dessa 45hp ut i början på utbildningen och därmed är det examenskravet uppfyllt redan efter de första tre åren.

När jag nu gick första terminen på det fjärde året märkte jag en ganska stor förändring i det att jag inte längre läste någon mattekurs med föreläsningar, lektioner, frustration och allt det roliga som det innebär. Det var inte helt utan obehag som jag insåg att kurserna jag valt (designmönster, mjukvarutekniskt entreprenörskap, interaktionsprogrammering, etc) inte krävde några matematikkunskaper över huvud taget. Jag blev fundersam över om jag läst all matematik helt i onödan. Än värre, jag slogs av tanken att mina hårt förvärvade matematikkunskaper sakta skulle förvittra utan underhåll. ”Not on my watch” tänkte jag och började klura på hur jag kunde hålla igång mattekunskaperna på bästa sätt. Jag gillar quizar och tipspromenader så om jag kunde kombinera detta med en webb-applikation skulle det bli perfekt uppvärmning inför kurserna i webbprogrammering som jag ska läsa nu till vårterminen.

Metod

Jag började med att googla på ”JavaScript quiz library” och fick en träff på en React-baserad lösning kallad JavaScript Quiz som utgjorde en perfekt grund att bygga vidare på. React är ju dessutom väldigt poppis och jag såg fram emot att lära mig mer om det. Jag var till och med så optimistisk att jag trodde det skulle gå snabbt och enkelt att skapa min matte-quiz. I själva verket skulle det gå långsamt och svårt, men det är ju förväntat när man ger sig ut på okänd mark.

Grafer <3

Tidigt i processen fick jag en idé om att jag ville presentera resultatet från quizen som en spindelgraf. Alltså, användaren besvarar frågor inom olika matematiska områden och får därefter en tydlig bild över dennes kunskap inom de olika områdena.

I min grupps kandidatprojekt Knekt använde vi oss av Highcharts med stor framgång. Jag körde vidare på det vinnande konceptet och efter några npm-installationer (react-highcharts för grundfunktionalitet och highcharts-more för spindeln) och en del bök lyckades jag smälla upp en fet graf som ni ser på bilden nedan.

Spindelgraf över resultatet från en omgång av math-quiz.

Jag gillar verkligen grafer.

Inställningar

Jag ville utöka funktionaliteten från den mycket enkla JavaScript Quiz och gjorde en Settings-sida där användaren bland annat kan välja vilka matematiska områden och hur många frågor quizen ska innehålla. Detta var ganska straight-forward med undantag för att jag valde att använda mig av react-numeric-input för lite enklare hantering av antal-frågor-väljaren. Jag skriver ”ganska straight-forward”, men med mina obefintliga kunskaper inom React ger bilden nedan en rättvisare beskrivning. Det är dock förvånansvärt hur långt man kan komma med Google och Stack Overflow. ;)

I have no idea what I'm doing dog

All I want for Quiz-mas is a nice little matrix

Efter allt strul med Settings-funktionaliteten var det dags att få till lite schyssta matte-frågor. För detta krävdes ett snyggt sätt att representera matematiska formler, integraltecken och matriser. Självklart ville jag använda mig av Latex, men det skulle visa sig vara en mycket hård nöt att knäcka. Jag började med att prova react-latex och react-matrix, men det var inte alls vad jag behövde. När jag snubblade över react-katex trodde jag att jag hittat den heliga graalen. K:et i katex står för Khan som i Khan Academy som jag tidigare haft stor användning av. Deras latex-lösning skulle definitivt duga för mig, dessutom ritas formlerna snabbt utan lång väntetid. Tyvärr lyckades jag aldrig få katex att fungera på rätt sätt utan mina formler ritades ut både TeX-ifierade och som vanlig text, mycket likt detta issue på GitHub. Jag slet i en dag med det men lämnade till slut Katex för en motsvarande lösning, MathJax.

MathJax fungerade! Tyvärr sker en liten fördröjning vid utritningen och av en outgrundlig anledning minskas dess font-storlek efter första frågan så texten blir lite för liten. Men ingen mjukvara utan buggar tänkte jag och valde att släppa math-quiz lös på internet.

Framtida arbete

För dig som tycker att math-quiz verkar intressant och vill bygga vidare på det finns projektet på GitHub. Förutom att fixa visuella buggar och snygga till GUI:t vore det även nice med fler frågor och utökad funktionalitet. Har du feedback eller vill bidra till math-quiz är jag idel öra!

Slutsats

Jag är tacksam över att kunna stå på de giganters axlar som skapat React, npm och alla små fina paket för formler, grafer, etc. WebStorm är en bra IDE, webbprogrammering är svårt och solo-programmering kan vara ganska jobbigt om än lärorikt.

För övrigt tänkte jag nu försöka ha jullov på riktigt. God fortsättning!