Rule, Britannia!

För lite drygt ett halvår sen publicerade jag första delen i min trilogi O Canada om de bästa soloartisterna från Kanada. När jag som bäst hyllade de kanadensiska artisterna påminde en av mina trogna läsare att om man ska snacka om de bästa artisterna i världen får man inte glömma bort Storbritannien. Därför har jag sedan dess funderat över hur jag bäst kan sprida lite kännedom om Storbritanniens, enligt mig, bästa band och artister.

Efter noggrant övervägande kommer jag nu i tur och ordning presentera Storbritanniens bästa trio, duo och slutligen solo-artist. Så veva igång vattenkokarn och dra på manchesterbyxorna för det här är ett teparty du inte vill missa!

CHVRCHΞS

Den skotska trion Chvrches (uttalas churches) bildades 2011 men det var först 2013 som jag upptäckte dem tack vare lite tursamt surfande på Soundcloud. Jag hade tidigare trott att syntpop inte är min genre men efter att ha hört introt till The Mother We Share var jag biten.

Chvrches performing live at The Fonda Theatre in Hollywood (Los Angeles) California on Monday December 14th, 2015

Chvrches under en spelning på The Fonda Theatre i Los Angeles, 2015

Chvrches första album The Bones of What You Believe har förutom TMWS några riktigt schyssta beats i We Sink, Gun och Lies med flera. Det är ett kanonbra debutalbum som satte dem på kartan. Deras andra album Every Eye Open släpptes 2015 och bjuder på större djup och mer variation än debutplattan, samtidigt som de håller fast vid deras vinnande grundkoncept. Musikaliskt finns inget att klaga på och sångerskan Lauren Mayberrys röst är unik och trollbindande, även om de till låten Bury It lånade in Hayley Williams för lite extra oomph. Å andra sidan, vem skulle inte låna in Hayleys pipa om de fick chansen?

En av mina favoritlåtar från Every Eye Open är Down SIde of Me som har ett betydligt lugnare tempo än deras konventionella upptempo-låtar. En musikvideo till låten spelades in och regisserades av ingen mindre än Kristen Stewart. Många minns säkert att Kristen spelade rollen som Bella Swan i Twilight-filmerna och det var ju Hayley Willams tillsammans med sitt band Paramore som promota filmen med sin låt Decode.

Fun Fact #1: Min keps med Chvrches’ logga är det enda klädesplagg eller accessoar jag har som är musik-relaterat. Tyvärr blir den sällan, mig veterligen, igenkänd som en Chvrches-pryl men jag tror det bara är en tidsfråga innan den trenden ändrar sig.

Jag med min Chvrches-keps

Jag med min Chvrches-keps

Oh Wonder

Denna London-baserade duo gör verkligen skäl för namnet och trots att de bildades så sent som 2014 har de redan hunnit släppa en rad underbara låtar. Oh Wonder hade egentligen planerat att skriva låtar till andra artister, men då en deras officiella portfolio bildade en oväntat stark fanbase kom de fram till att de själva kunde stå för framförandet av sina låtar.

Oh Wonder på en spelning i El Rey Theatre, LA (2016)

Oh Wonder på en spelning i El Rey Theatre, LA (2016)

Oh Wonders självbetitlade debutalbum har så många bra låtar att det är svårt att välja någon favorit, men jag har alltid gillat Dazzle lite extra. Det är en positiv låt och arrangemanget med triangeln är on point!

Att mix-duetter är ett framgångsrecept i sig finns många exempel på (Skönheten och Odjuret, Where the Wild Roses Grow, Time After Time för att nämna några) och Oh Wonders musik är inget undantag från den regeln. Deras harmoniska och avkopplande musik passar utmärkt en regnig sommardag, eller vilken dag som helst för den delen. Deras andra album Ultralife beräknas släppas i mitten på juli.

Fun Fact #2: Jag upptäckte Oh Wonder någon gång 2015 när jag kollade på Nightblue3 vars yrke är att streama när han spelar League of Legends. Det glädjer mig att även en så meningslös sysselsättning kan ge såna positiva effekter som att upptäcka ny bra musik.

Nina Nesbitt

Nu till Britanniens bäst solo-artist. Här fanns det förstås hård konkurrens och valet var svårt, men ändå självklart. För det var så att när jag startade den här bloggen länkade jag till låten Make Me Fall i mitt första riktiga inlägg som skrevs den 7e september 2013. Sedan dess har mycket förändrats men Nina Nesbitt fortsätter att vara en favorit-artist.

Ungefär samtidigt som jag fixade min ansökan till ett gäng universitet i Skottland upptäckte jag Ed Sheeran och därigenom Nina Nesbitt, singer-songwriter från Edinburgh. Ni kan tänka er att min Skottlands-hype var rekordhög under den tiden, den var off the charts! På tal om Sheeran så var Nina med i hans musikvideo till låten Drunk. Den musikvideon är i min mening en av det här årtiondets bästa, främst tack vare den antropomorfa katten. 😸

Nina Nesbitt under en spelning i LA, 2014

Nina Nesbitt under en spelning i LA, 2014

Nesbitts nu fem år gamla EP The Apple Tree bjuder på ett folkligt och sympatiskt sound. Under 2016 bjöd hon på en popigare sida av sig själv med Modern Love EP. Oavsett stil är det alltid kjempegreit! För ett tag sen frågade jag en av mina experter på ämnet om ett utlåtande – ”Hon har en fantastisk röst och är otrolig vacker” är inte mina egna ord, men jag håller med till fullo! Det enda negativa är att Nesbitt än så länge inte hunnit släppa så mycket musik, men hennes andra album väntar runt hörnet och dyker nog upp lagom till semestern.

Fun Fact #3: Nina Nesbitt är inte bara skotsk, hon är halvsvensk också!

Slutord

Med all fantastisk musik som finns i Storbritannien är det omöjligt att på ett rättvist sätt välja ut endast tre band/artister som ”de bästa”. Hade jag skrivit det här inlägget en annan dag vid en annan sinnesstämning hade kanske Adele, Banks, Imogen Heap eller Kate Bush varit nummer 1. Men jag valde Chvrches, Oh Wonder och Nina Nesbitt inte bara för att jag lyssnar på dem väldigt mycket utan också för att jag tycker de är lite underskattade och kan behöva lite extra publicitet.

Om du tycker att listan behöver justeras så låt mig veta, jag är alltid i behov av nya (eller gamla) musiktips! Jag har samlat de låtar som nämnts i det här inlägget i spellistor på Youtube och Spotify. Ge dem en lyssning och berätta vad du tycker. :)

LiUtopia

Att plugga sker i alla möjliga former och en typisk uppdelning är att arbeta i grupp eller att arbeta ensam. Även om grupparbete är den form som gett mig mest glädje under min studietid, tack vare den sociala aspekten, har jag ofta behövt en stor dos ensamarbete för att förstå kursmaterialet bra nog för att klara tentorna. Att kunna fördjupa mig i det jag finner svårast genom att läsa och se på videoföreläsningar är aktiviteter som lämpar sig bäst att utföras på egen hand med så få störningsmoment som möjligt. Ensamarbete kräver andra typer av resurser jämfört med grupparbete och i det här inlägget tänkte jag framföra några av utmaningarna solopluggandet medför och även presentera vad jag tror är den ultimata lösningen på problemen.

Problemformulering

Att jobba hemifrån kan tyckas vara en bra miljö för att arbeta ostört på egen hand, åtminstone om man bor utan livliga sambos iller husdjur. Dessvärre är det en inte helt perfekt lösning för mig då bristen på disciplin och den goda tillgången på distraktioner som datorer, disk och dammsugare får mig att lätt smita undan från plugget för att göra roligare saker. Istället söker jag mig vidare utanför lägenheten och då oftast till campus som är min de facto arbetsplats. Hur bra är universitetet på att tillgodose mina behov? Helt okej, men jämfört med LiUs tillgång och kvalitet på grupprum finns det brister. Det finns förstås stora valmöjligheter för var man kan slå sig ner för att plugga på campus. Jag brukar ta plats i Café Java, Key-huset eller kanske A-huset om jag känner mig äventyrlig.

Ett oundvikligt problem med dessa platser är ljudvolymen. Det är surret från läskkylen, klinket på pianot och de omåttligt glada tjoandet från ekonomerna som gör att studieron blir lidande. Inte varje dag, men ofta. Någon kanske tror att jag glömt bort bibliotekets tysta läsesal. Till er vill jag säga att med tanke på att salen utrustats med decibel-mätare och inretts med bilder på sovande tigrar (som man inte vill väcka och därför bör vara tyst?) så kanske salen trots namnet inte är så tyst ändå. Det säger sig självt egentligen att ett rum för ca 30 studenter aldrig kan vara tyst. Dörrar och ryggsäckar öppnas och stängs, det knattras på tangentbord, hostas och rosslas och alltid är det någon som tycker det är okej att viska med sin kompis.

Ett helt annat problem jag erfarit är oron för stöld. När jag pluggar uppstår lätt behovet av fikapaus eller toabesök. Då uppstår dilemmat om huruvida man vågar lämna laptop och väska utom synhåll under de 5-10 minuter som man är borta. Sannolikheten att någon skulle stjäla mina saker medan jag är borta bedömer jag vara väldigt liten, men inte obefintlig. Den risken är jag oftast inte villig att ta och därför blir det kanske något färre fikapauser än det hade kunnat bli, vilket både jag och caféerna förlorar på.

Ett par andra mindre irritationsmoment jag stött på är den låga temperaturen i vissa salar, vilket jag nämnt tidigare, och att starkt solljus tvingar mig till att maxa ljusstyrkan på min laptop vilket kraftigt begränsar batteritiden.

Nu har jag gnällt utförligt och länge och kanske är det uppenbart att det jag efterfrågar är mitt eget kontor. Men är det inte orimligt att ge tusentals studenter tillgång till personliga kontor? Ja det är det nog, men det är också det som gör det här till en spännande och rolig utmaning.

En gyllene chans

LiU har den här våren påbörjat rivningen av Origo, en av byggnaderna på Campus Valla. Detta för att ge plats åt en ny byggnad, Studenthus Valla/Origo II, som planeras bli en byggnad som täcker nästan alla behov en student kan ha; bibliotek, Studenthälsan, studentfik och förstås studieplatser.

En illustration av LiUs nya byggnad Studenthus Valla

Illustration: White arkitekter

I de preliminära ritningarna har jag inte sett några förslag som löser problemen jag tidigare listade men eftersom huset inte har byggts än finns det förstås tid för ändring. Därför går vi nu raskt vidare till mitt förslag om bättre studieplatser, vilket presenteras i form av en så kallad user story.

En dag på Campus Valla

Klockan är 8:08 och denna tisdags datum är den 14e april 2020. Tina har parkerat cykeln och går med raska steg mot universitetets modernaste byggnad som skimrar i vårsolen. Efter att ha tagit sig två trappor upp kommer hon fram till studentcellerna. Tina har bokat cell 7 och tar fram sitt LiU-kort som hon blippar mot cellens låsterminal. Dörren glider upp och hon möter sin arbetsplats för dagen. Rummet är två meter brett och tre meter långt. Längs bort i rummet finns en stol och skrivbord och en enkel men bekväm soffa står mot rummets vänstra sida. Tina stiger in i rummet och hänger av sig ytterkläderna. Dörren stängs och på dess insida finns en tryckkänslig skärm som hälsar henne välkommen och presenterar ett antal val. Tina anger önskad rumstemperatur till 21° C och justerar det elektrokromatiska fönstret så att precis lagom mycket solljus kommer in. På skärmen finns det alternativ av olika ljudslingor för rummets högtalare att spela, bland annat fågelsång och åskstorm, men Tina väljer till slut havsbrus. Hon aktiverar även pomodoro-läget vilket gör att en vänlig röst påminner henne om att ta en kort paus (som hon ägnar åt armhävningar) efter varje arbetspass à 25 minuter.

Efter två timmars plugg av flervariabelanalys är det hög tid för fika. Eftersom cellen endast kan låsas upp av Tina under de timmar hon bokat den lämnar hon helt sonika sina tillhörigheter i cellen för att springa ner till studentfiket några trappor ner. Fiket myllrar av kaffesugna studenter och efter en kort pratstund med Johan och Lina tassar de tillbaks till sina respektive celler. Väl tillbaka stänger hon av havsbruset och njuter kort av tystnaden innan hon sätter sig till rätta i soffhörnet med sin mekanik-bok.

Tina har pluggat effektivt hela förmiddagen och väljer att ta lunch redan 11:45 och hinner mikra sin matlåda innan den värsta lunchrushen. Hon checkar ut ur cellen vilket gör den tillgänglig för andra även fast hennes bokning gällde fram till 12:30. Efter en hel förmiddag i lugn och ro har hon gott om energi för eftermiddagens projektmöte och föreläsning. Tina finner det en smula ironiskt; Celler som historiskt sett använts för att minska en persons frihet har nu istället gett henne större frihet än hon kunnat önska.

Reflektion

Jag gillar förstås idén om det högteknologiska och mysiga enkelrummet för LiUs framtida studenter men med ett sådant här förslag känns det viktigt att tänka på dess risker och begränsningar. Den här typen av rum är självklart mer kostsamma att konstruera jämfört med att bara slänga upp ett antal bord och stolar på en öppen yta. Å andra sidan tror jag de kommer ha mycket högre användningsgrad jämfört med universitetets traditionella grupprum och om de dessutom kan höja studiekvaliteten och därmed också studieresultaten (=> färre omtentor) tror jag att ROI:n inte blir så dålig ändå.

Det kan eventuellt bli problematiskt om rummen används för annat än att studera i. Ett avskilt rum på 6m² i kombination med studenternas gränslösa fantasi vore sannerligen ett spännande socialt experiment. Men med tanke på LiUs marknadsföring ”Hooka är LiU” tror jag inte vi ska vara alltför oroliga för att universitetet får sitt eget red light district utan snarare se det som en positiv bieffekt. ;)

Kanske har du som läsare också några tankar om huruvida den här idén är bra eller dålig. Löser den mina problem på bästa sätt? Eller är mina problem ens giltiga till att börja med? Jag tar tacksamt emot alla förslag på förbättringar. Tycker du idén är fantastisk förslår jag att du vidarebefordrar den till vänner och universitetsstyrelse. Om du dessutom är LiU-student finns det ju världens möjlighet att framföra dina önskningar genom den stora studentundersökningen som pågår fram till 20e april. Undersökningen har ett väldigt blygsamt deltagarantal så det finns goda möjligheter att vara med och påverka!

Glad påsk!

Force Feedback

Första gången jag stötte på programmering var i gymnasiet då min klasskamrat visade mig hur man kunde programmera i BASIC på min TI-84 Plus. Sedan dess har över tio år passerat och genom åren har jag fortsatt fördjupat mig inom programmering. Jag har insett vad som främjar min inlärning på bästa sätt och kommer i det här inlägget beskriva den inlärningsprocessen och dra paralleller till arbets- och studielivet.

Learn, Code, Get Feedback (LCGF)

För att bli världens bästa programmerare behöver man bara följa tre enkla steg. Processen  kanske påminner om LEAN Startup-metodiken men en större skillnad är att ”Measure” är utbytt mot ”Get Feedback”.

Learn, Code, Get Feedback. Process för att lära sig programmering.

Trestegsprocess för att lära sig programmering.

Det första steget i processen är Learn. Detta innefattar alla olika sätt som finns för att införskaffa sig kunskapen som behövs för att programmera. Det kan till exempel handla om att läsa en tutorial eller lyssna på en föreläsning.

För att befästa kunskaperna man fått i Learn-steget behöver du aktivt tillämpa dem på egen hand. Detta sker i Code-steget och det är här du utför själva programmeringen.

Det avslutande steget i cykeln är ”Get Feedback”. Liksom Learn-steget kan detta ske på ett flertal sätt. Bland de enklaste sätten hör datorns eget sätt att ge feedback när du kör din kod, kanske fungerar ditt program som du tänkt eller så kraschar det och du får en felutskrift. Andra typer av feedback kan vara statisk kodanalys, exekveringstider och kanske det bästa av allt, ett omdöme från en mer erfaren programmerare om din kod.

Feedbacken som ges kan förhoppningsvis användas för att lära dig mer om programmering och ett nytt varv i cykeln påbörjas. Efter ett antal varv i loopen har du blivit världens bästa programmerare, nice!

LCGF tillämpad i arbetslivet

När jag arbetade på Westermo använde jag, inofficiellt och outtryckligen, LCGF i stor utsträckning. Eftersom jag var blott en nätverkstekniker bland kodproffs och gavs arbetsuppgifter som innefattade programmering var jag tvungen att lära mig programmering illa kvickt.

Jag minns särskilt två milstolpar som var viktiga i min utveckling som programmerare. Den första var när jag skulle skriva ett autotest med hjälp av Westermos testramverk som var objekt-orienterat och skrivet i Python. Jag hade begränsad erfarenhet av Python och objekt-orientering hade jag läst om men aldrig förstått vad det var bra till. Som tur var fanns min kollega Tobbe tillgänglig för att hjälpa mig komma igång och när han frågade nåt i stil med ”Har du jobbat med objekt-orienterad programmering?” kunde jag ärligt svara ”Nej” och fick sedan en kort introduktion av de viktigaste koncepten. Direkt därefter fick jag själv prova mina vingar och skriva lite kod på egen hand. Då jag stötte på problem kunde jag oftast ropa på hjälp och få feedback på min kod och tips på hur jag skulle komma vidare.

Den andra milstolpen var då jag arbetade med testsystemets hantering av ”test suiter”, där en test suite är en samling av tester som ska köras. En test suite definierades i form av en textfil som kunde innehålla antingen andra test suiter eller enskilda test. ”Test suiter som består av test suiter? Oh baby that’s recursion!” kanske några tänker men det gjorde inte jag eftersom jag aldrig hört talas om rekursion. Den gången fick jag ta hjälp av min kollega Fredrik som introducerade konceptet och gav lite exempel med Quicksort bland annat. Därefter kunde jag knacka ihop en rekursiv metod som gick igenom suite-filer och hämtade ut de enskilda testerna som fanns listade. Jag fick även feedback på min lösning efter att jag tillsammans med Fredrik gått igenom koden jag skrivit. Det var en givande arbetsdag!

Min poäng är att på Westermo arbetade jag oftast i korta cykler av LCGF där jag fick en uppgift, var tvungen att lära mig nya saker från kollegor eller genom Internet, tillämpade kunskaperna genom programmering av den specifika uppgiften och kunde därefter få feedback på mitt arbete genom att be någon kika på min commit. Det är utan tvekan det mest effektiva sättet för mig att lära mig programmering på som jag någonsin upplevt. Så vad fick mig att sluta? Ett flertal faktorer bidrog till att jag inte lärde mig nya saker i samma takt och möjligheten till feedback minskade, dvs ”Learn” och ”Get Feedback”-stegen blev lidande. Detta fick mig att leta efter alternativa sysselsättningar och där hade en utbildning på LiU länge funnits med i planerna. Inom kort var jag student på civilingenjörsprogrammet i mjukvaruteknik vid Linköpings Universitet. Låt oss kika på hur LCGF tillämpas där.

LCGF tillämpad i studielivet

Många kan nog föreställa sig hur LCGF kan kopplas till studierna. Under en kurs lär man sig typiskt nya koncept och tekniker som presenteras under föreläsningar eller genom kurslitteratur. Studenten får tillämpa dessa kunskaper genom laborationer där hen oftast skriver egen kod för att lösa någon uppgift. Koden redovisas och lämnas in för granskning vilket sedan resulterar i någon form av feedback, till exempel får vi studenter betyg (Godkänd eller 3, 4, 5).

Förutom betyget finns även möjligheten för labbassistenten att ge sitt omdöme på koden. Det kan till exempel se ut som på bilden nedan, som visar feedbacken jag fick på min inlämning av ett Tetris-spel jag gjorde i Java-kursen för ganska exakt tre år sedan.

Detaljerad feedback på mitt tetris-spel.

Ett exempel på bra och väldetaljerad feedback.

Förutom bristen på styckeindelning är jag supernöjd med den feedback jag fick och jag lärde mig nästan lika mycket från den som jag gjorde av att utföra själva uppgiften i sig. Under mina år på LiU har jag dessvärre insett att feedbacken ovan är ett undantag från hur det brukar se ut. Låt oss ta en titt på hur feedbacken såg ut från en kurs jag läste i höstas. Kursen var i princip en enda lång labbserie och jag arbetade ensam vilket bidrog till att det var extra svårt att veta om jag gjorde på rätt sätt eller inte.

Ett exempel på mindre bra och odetaljerad feedback.

Ett exempel på mindre bra och odetaljerad feedback.

Även om jag är glad över att koden bedömdes som snygg är jag ändå missnöjd över att inte få veta vad som var särskilt bra och vad som kunde gjorts bättre. Inget ont om labbassistenten i fråga, han är inte ensam om att ge sparsam feedback och är i övrigt väldigt kunnig och engagerande, men jag känner att bristen på feedback har fått min utveckling som programmerare att stagnera. Jag programmerar i princip på samma sätt som jag gjorde för tre år sen i Java-kursen och blir godkänd varje gång men jag får aldrig veta vad jag kunde gjort bättre.

Någon kanske hävdar att om den enda kommentaren var ”Snyggt!” så fanns det inget att anmärka på och jag borde vara glad istället för att gnälla. Men är det något jag lärt mig under dessa år med programmering så är det att kod aldrig är perfekt skriven. Om någon vill bevisa motsatsen är jag idel öra.

En önskan om bättring

Varför är det viktigt att jag som student får feedback på min kod? Tja, förutom den uppenbara anledningen att jag lär mig bättre så är det också ganska vanligt att mjukvaruföretag i dagsläget använder kodgranskning som en del i utvecklingsprocessen där kollegor granskar varandras kod. Att som student förberedas på att ens kod ska läsas av andra och även få kritik på den kod man producerat är inget som bör underskattas eftersom det kan vara lite känsligt till en början. När jag pushar kod på min arbetsplats kommer inte kvaliteten enbart bero på om koden ger rätt resultat utan också om vägen dit sker på rätt sätt.

Det är möjligt att det skulle kräva ökade kostnader eller åtminstone ökade resurser för att ge studenterna bättre feedback men eftersom trenden verkar vara att föreläsningar ersätts med digitala motsvarigheter (videoinspelade föreläsningar osv) är mitt förslag att de pengar som sparas där istället läggs på rättning och granskning av kodinlämningar.

Jag tycker också att det borde vara i universitetets intresse att lägga lite krut på den här delen av utbildningskvalitet, om inte annat så för att höja konkurrenskraften. Jag har till exempel sett hur en av Udacitys kurser i machine learning lockar med ”1:1 feedback” i form av kodgranskning. Ett annat alternativ om man inte vill betala är förstås Stack Exchange’s Code Review som kanske inte håller den högsta kvaliteten men ändå bidrar med något mer än ett ”Snyggt”.

Om min poäng inte varit tydlig nog hittills så kan jag försöka förtydliga min åsikt: Universitet måste ge studenterna bättre feedback på deras inlämningar. Det gäller särskilt inlämnad kod men kan även sträcka sig rapportskrivning. Examinatorerna bör uppmuntra detaljerad feedback, följa upp vilken typ av feedback som labbassistenterna ger studenterna och sätta tydliga riktlinjer för vilken feedback som förväntas ges. Jag tycker det är motsägelsefullt att jag längtar från universitetet ut i arbetslivet för att jag ska lära mig programmering bättre. Jag pluggar mjukvaruteknik på LiU för att komma närmare målet som världens bästa programmerare, men ibland känns det som jag endast kommer komma härifrån med en civilingenjörsexamen. Vore inte det tråkigt?

Jag har inte hört så många andra dela min uppfattning i den här frågan, men jag har å andra sidan inte öppnat upp för diskussion förrän nu. Om du som student/labbassistent/examinator inte håller med mig vill jag jättegärna diskutera vidare, så det är bara till att gå loss i kommentarsfältet eller kontakta mig på annat valfritt sätt! :)

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ång 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!