Man lever så länge man lär

Arkiv för kategorin ‘programmering’

Bara en uppgift kvar i kurspaketet

Puh! Nu har jag (med en halv minut till godo) lämnat in den näst sista uppgiften på kursen Webbapplikationer för mobila enheter som jag läser nu under hösten, och som också är den sista kursen i kurspaketet. Vad jag ska läsa sedan vet jag inte, men sökte i alla fall flera olika kurser för både första och andra läsperioden under våren. Haken med de flesta av de här kurserna är att de går på halvfart, vilket nog är på gränsen till för tufft att köra parallellt med jobbet, så vi får se.

Det är i alla fall kul att lära sig saker och om jag inte ska studera nästa termin kan jag med gott samvete ägna mig åt att läsa böcker (både inom it och rent skönlitterärt) och knåpa ihop min bokhållar-app som jag velat göra så länge. Förr trodde jag att jag skulle bli tvungen att lära mig Android-utveckling men nu vet jag att det förmodligen räcker gott med en enkel ensidig webapp. Och då syftar jag på en ”single page application”, som kommer att vara mångsidig.

Nästa uppgift ska vara klar och inlämnad nästa år. Ganska snart, trots allt.

Behåller jobbet med Jfokus i sikte

I år var första gången jag ansökte hos företaget om att få gå på Jfokus, vilket alltså innebär att de betalar avgiften och accepterar att jag deltar, med full lön och utan debitering av min tid till kund. Många sköna tusenlappar blir det nog.

Förra året, minns jag, var jag så övertygad om att jag skulle få nobben, att jag inte ens gjorde mig besväret att försöka. Ni vet hur det kan vara – det finns ett elektroniskt formulär att fylla i, som dock är utformat för externa utbildningar, d.v.s. kurser. Jag upplever de allra flesta formulär som svåra och jobbiga att fylla i och det här blir som att försöka knöla in en val i ett 20-litersakvarium. Det går inte att fylla i rätt, för jag saknar uppgifter till obligatoriska fält och det saknas fält för uppgifter som jag anser viktiga. Vilket gör att jag får fabulera och fantisera ihop något och … tja, det passar inte alls min person. Det blir mentalt jobbigt.

I år såg jag det mer som att det i alla fall var värt att prova, och att om jag skulle få nobben kanske det kunde få vara ett tydligt tecken på att det är dags att byta arbetsgivare. Allt jag gör är nämligen att dra in pengar – under mina dryga 13 år som anställd har jag varken gått på kurs eller konferens av eget val, och heller aldrig suttit på bänken (varit utan uppdrag). Sedan 2009 har jag dessutom suttit permanent ute hos kund och har inte ens en postlåda hos min arbetsgivare. De tillhandahåller dator och telefonabonnemang, samt vpn och applikationer för att registrera debiterbara resp. arbetade timmar. Ungefär så krävande är jag som anställd. De enda utgifter jag orsakat företaget på eget bevåg de senaste åren är 2 tentaresor och 2 inköp av kurslitteratur. Mina 50+ nya högskolepoäng inom datavetenskapen har jag annars skaffat helt och hållet på min fritid, under 2 års tid och vid sidan av det vanliga arbetet på heltid. Shit, vad jag måste vara bra!

Ja, i och för sig var vi några som gick på Gradle Groovy-seminarium för några år sedan, under en arbetsdag på promenadavstånd från kontoret, men jag tror faktiskt att det var kostnadsfritt vilket innebär att det företaget bidrog med var en dags utebliven debitering för var och en. Som ren kuriosa kan jag för övrigt berätta att den enda av oss som deltog och fortfarande jobbar kvar är… jag.

För dem av er som hört om varslet hos min arbetsgivare: jag är inte uppsagd och har heller inte fått något erbjudande om att sluta frivilligt mot ersättning. Jag ser det som att jag inte behöver fatta några omedelbara beslut kring min framtid och därför kan köra på som vanligt tills jag själv känner att det är dags. Gott så.

Och för att göra en lång historia något kortare: jag anmälde mig till Jfokus 2017 (med en tanke om att eventuellt betala själv om företaget satte sig på tvären), diskuterade saken med min chef (som ställde sig positiv), fyllde i formuläret efter bästa förmåga och skickade in ansökan. Därefter väntade jag några veckor och så plötsligt, en dag i slutet av november, var ansökan godkänd – jag kommer att vara med på Jfokus, i Stockholm den 7-8 februari 2017. Whee! See you there?

Refaktoriseringsjunkie

Dags att färdigställa det mer yrkesrelaterade av blogginläggen för dagen. Jag hade gärna gjort det tidigare, men hade trevliga, sociala aktiviteter inbokade. För en stund sedan kom jag hem och eftersom jag drack kaffe efter oplanerad söndagmiddag med vänner föreligger viss risk för att det blir svårt att somna.

Idag är det alltså Sveriges nationaldag och jag är först och främst ganska trött, behöver vila lite också. Om jag nu vet hur man gör. Sent igår kväll lämnade jag in den avslutande uppgiften för vårens högst prioriterade kurs (se studierapport i föregående inlägg) och håller så smått på att varva ned. Jag har kört rätt hårt på jobbet under våren vilket bl.a. bidragit till att studierna hamnat lite på undantag.

Om jobbet, ja. Jag kör som sagt hårt, inte ens alltid för att jag måste utan för att jag inte kan låta bli (hjälp, jag behöver avgiftning!), men innan någon ringer efter hjälp vill jag påpeka att parentesen var humoristisk. Läget är under kontroll och när det närmar sig för mycket ser jag till att få den återhämtning jag behöver.

Icke desto mindre är jag nog lite av en junkie när det gäller ordning och reda, data och programmering, och för det sistnämnda inte minst refaktorisering.

Det är få saker som är så tillfredsställande som att få städa upp i mossbelupen och mögelangripen gammal bortglömd och försummad kod så att den blir klar, tydlig, begriplig och lätt att uppdatera när ny eller ändrad funktionalitet ska in. Att t.ex. eliminera krångliga språkliga konstruktioner eller vända på villkor, i syfte att förenkla koden och därigenom öka förståelsen, liksom skala av lager efter lager av plack som samlats genom åren och vid mindre uppdateringar. Fantastiskt!

Jag blir ständigt överraskad och förundrad över hur effektivt det är just att vrida och vända och plocka isär och sedan återuppbygga programkod. Buggar gör sig plötsligt uppenbart påminda, död kod rullar ut över bordskanten eller bara blåser bort i en uppfriskande bris när jag jonglerar eller kastar upp alla delar i luften. Det som kommer ner igen är det som behövs, och det som får vara kvar. Typ.

Ett av mina favoritverktyg just nu är visualisering, eller mer specifikt: diagram. Normalt sett ritar jag diagram i huvudet för att hålla reda på och förstå flödet i koden och vad den gör, men vissa saker är för stora för att riktigt få plats eller så behöver jag kommunicera med andra och då kan det underlätta med diagram. I datorn, thank you very much – jag fixar inte att rita för hand på en whiteboard. Avundas lite grann dem som kan, om jag ska vara ärlig. Det är en bra förmåga som gör det enklare för olika människor att kommunicera och förstå varandra.

I min senaste refaktoriseringsuppgift ingick det att dokumentera flödet genom systemet via ett sekvensdiagram och det var ritandet av diagrammet (givetvis med tillhörande noggrann analys) som tog den allra största delen av tiden.

Jag gick grundligt till väga genom att först rita in vartenda litet metodanrop, både inom tjänsten och utåt mot andra tjänster, genom hela flödet och det var banne mig tur att jag jobbade hemifrån, för det resulterande diagrammet var gigantiskt! Min (dock är den inköpt av sambon, så rent tekniskt hans, men det är främst jag som använder den) 27-tumsskärm räckte inte långt, och på jobbet har jag bara två mindre skärmar på 21 eller 22 tum… det hade inte alls funkat särskilt bra.

Eftersom diagrammet blev så stort slog jag isär det och analyserade delarna av flödet var för sig och samtidigt lärde jag mig att man i PlantUML kan använda include-filer. Notera att jag ur ett utifrånperspektiv ritade diagram, medan jag i själva verket analyserade kodens funktion med hjälp av denna visualisering.

Analysen resulterade i en väldigt mycket bättre förståelse för vad som görs, samt ett ifrågasättande av en hel mängd olika anrop till angränsande tjänster.

Varför hämtas Objekt A i ett separat anrop när samma objekt faktiskt kommer in via hämtning av en bunt Objekt B, som alltid måste göras? Den koden försvann.

Och ja, detta är en designförändring som potentiellt kan ge ändrat beteende och därför har jag nogsamt tänkt igenom eventuella följder. Teoretiskt kan det bli fel, men jag kan inte se att det bör kunna bli det i praktiken. Famous last words…

Varför hämtas en bunt Objekt C för att eventuellt läggas in i bunten med Objekt B, när detta redan gjordes när Objekt B-bunten hämtades. Hela denna sista del av initialflödet visade sig alltså också vara överflödig. Även den koden försvann.

Ni ser vart vi är på väg, va? Flera delar av flödet är redan bortstädade och mitt diagram börjar bli hanterbart i storlek. Dags att titta närmare på den egentliga funktionaliteten i flödet, koden där det som ska göras också är det som görs.

Här flyttar jag omkring kodrader och ändrar villkor så att saker står för sig själva så mycket det går och bara det som verkligen hör ihop står tillsammans. Detta uppenbarar en struktur som gör flödet lättare att förstå, men det kan bli bättre.

Jag bryter ut den kod som förbereder och utför hämtningen av ett antal Objekt B till en egen, separat metod (som dessutom blir lätt att testa). Denna får heta just ”hämta Objekt B”. Det blir tydligt för läsaren att grunden är en bunt Objekt B.

På liknande sätt strukturerar jag om så att koden som gör det egentliga jobbet ligger i en klunga och kan brytas ut till en egen metod vid namn ”gör jobbet”. Detta tydliggör uppgiften (förutsatt att man bryter ut rätt saker!) och lämnar utrymme att fokusera på de förberedande åtgärder som måste vidtas innan.

Några kontroller som kan avbryta flödet flyttas upp för att undvika situationen att det vid ett avbrott utförts onödigt arbete. Det är en bra princip, det där att göra så lite så möjligt så sent som möjligt, och som en följd därav kanske inte behöva göra något alls. Prokrastinering som princip. Hm… det tål att tänkas på.

När jag tittade på sekvensdiagrammet undrade jag också varför det gjordes två anrop, direkt efter varandra, mot en viss tjänst. Kunde man inte lika gärna göra bara ett anrop och låta den anropade metoden utföra båda uppgifterna? Efter att ha undersökt hur de två metoderna i övrigt användes i systemet (svar: inte alls) slog jag ihop dem till en enda, givetvis med ett tydligt beskrivande namn.

Och där någonstans kunde jag inte hitta något mer att ta bort och ansåg mig därmed vara klar. Nu är koden luftigt lätt och ledig. Den doftar sommaräng!

Nästa fråga: var och när ska jag få min nästa fix? Jag längtar redan…

Frustrerande uppstartsperiod

Jag har säkert bara förträngt hur det brukar vara att börja nytt uppdrag, men jag känner mig frustrerad och undrar hur lång tid det ska behöva ta att finna sig till rätta i den miljö jag ska jobba i. Och då menar jag inte så mycket den fysiska miljön som den programmeringstekniska. Jag är hyfsat obekant med mycket, som t.ex. applikationen och upplägget såväl som de tekniker som används.

Visst, jag har allmän kunskap när det gäller liknande tekniker, men saknar (för min bekvämlighet) alldeles för mycket detaljerad kunskap och erfarenhet av just dessa specifika. Och i utvecklingsteamet är det lite för ofta främst konsulter och nyanställda på plats, d.v.s. vi saknar någon som kan guida oss rätt i djungeln. Det blir lätt så att en blind leder andra blinda – inget vet riktigt vad som är rätt.

Man kan lugnt säga att det krävs en rejäl dos av tålamod från min sida – jag vill ju som vanligt kunna och behärska allt på en gång. Jag trivs verkligen inte med att vara någon som är osäker och behöver fråga om (känns det som) allt, jämt. Jag får bita ihop och dra några extra djupa andetag och sen bara köra vidare.

Och samtidigt vet jag ju ändå att det bara är i början det känns så här jobbigt. Det går över. Jag kommer att med tiden lära mig allt jag behöver kunna och hitta lämpliga sätt att förhålla mig till arbetet och mina med- och motarbetare.

Så här långt har jag bl.a. bekantat mig lite mer med SLF4J, JPA och Mockito.

Lära ut med korrekt kod

Jag blir faktiskt en smula irriterad här, inte bara å nybörjarnas vägnar utan även p.g.a. något jag uppfattar som bristande respekt för programmeringen/språket. Ska du lära folk att programmera Java bör du nog inte skriva kodexempel i ett program som med automatik gör om första bokstaven på varje rad till versal. Åtminstone inte utan att gå tillbaka och korrigera i efterhand. Koden blir trasig.

Public static void double(double x) { Double result = x*x; return result; }

Ovanstående kod kompilerar inte. Det heter public, med inledande gemen.

Nu är i och för sig Double result korrekt, rent formellt, men troligen inte riktigt det man egentligen vill visa. Att i sin kod inte göra skillnad på double och Double är fel, då de faktiskt är olika saker. Det ena är ett s.k. primitivt värde, medan det andra är ett objekt (som iofs innehåller ett primitivt värde, av typen double, men det är ändå ett objekt). Eftersom metoden är specificerad så att den returnerar en double kommer programmet att returnera just en double, d.v.s. den primitiva typen, vilket innebär att resultatet som är en Double kommer att omvandlas per automatik, i onödan. Det man menade här var säkert att skriva double result.

Nybörjaren, som ännu inte fått lära sig vad klasser är, borde inte luras att tro att Double och double är samma sak genom att man på det här sättet slarvar med representationen. Dessutom är det ju heller inte riktigt så enkelt att man alltid kan byta ut den inledande bokstaven för att växla typ från den primitiva typen till motsvarande klass – ett typiskt exempel där är int som mappar mot Integer.

Det är inte okej, i min bok, att visa slarvigt skriven kod för dem som ska lära sig.

Sedan är det visserligen strikt formellt korrekt, så tillvida att det kompilerar, att ange metod- och variabelnamn som börjar med en versal, men det bryter mot sedvanlig praxis och följer heller inte allmänt vedertagen kodstil för Java. Namn på variabler och metoder bör inledas med en gemen (bör, därför att det alltid finns undantag). Allt annat ser ut som Visual Basic i mina ögon. Fult, fult, fult!

Jag är bestämt övertygad om att man som lärare ska föregå med gott exempel.

Jag hoppas att jag hittar något vänligt sätt att påtala sådana här saker, sedan i slutet, eller efter att kursen är slut. Kanske vänta tills efter att jag fått mitt betyg? Betyg: ”G Godkänd”, ”UX Otillräckligt, komplettering krävs” eller ”U Underkänd”.

Antagningsbesked och tillhörande val

Jag blev antagen till alla kurser jag sökte, kan man säga. Uppifrån och ned på den av mig prioriteringsordnade ansökningslistan stod det ”Antagen” överallt, ända tills antalet poäng nått det maximala man får tacka ja till. Summa summarum blev det sex kurser med ”Antagen” och sex kurser med ”Struken”.

En av de strukna kurserna ansågs jag obehörig till eftersom den krävde 7,5 hp grundläggande programmering eller motsvarande kunskaper. Visserligen har jag motsvarande kunskaper, men det verkade inte värt besväret att leta reda på någon som kan skriva ut ett intyg för att formellt få lära mig Perl (som jag jobbat med ett antal år) och Python (som jag nosat på i tjänsten och på egen hand).

Av de sex kurser jag blev antagen till har jag nu tackat ja till tre. På kvartsfart.

En av kurserna är ett paket som omfattar fyra kurser och sträcker sig över en längre period (detta bör enligt mina beräkningar handla om två år). De övriga två kurserna är tänkta att klaras av i sin helhet under vårterminen 2015.

Det här är kurserna jag tänkte ge mig på:

Webbutveckling och programmering, 30 hp fördelat på:

Inledande programmering i Java, 7,5 hp
Grundläggande datasäkerhet, 5 hp

Vi kan väl säga som så att jag inte räknar med att behöva jobba ihjäl mig med den grundläggande Java-kursen, och inte heller anstränga mig över hövan med Python-programmeringen. Så då borde det väl främst vara datasäkerheten jag skulle kunna behöva oroa mig lite för – med tillhörande tentamen i Linköping.

Jag tar dock inget för givet, utan ställer in mig på att allt kan hända i vår.

I väntan på att det ska bli dags att börja de ”riktiga” studierna roar jag mig med att studera på MIT (fast det lär inte institutet i fråga veta särskilt mycket om). MIT har nämligen något som kallas Open CourseWare, där de tillgängliggjort en mängd utbildningar som vem som helst kan ta del av via nätet. Från webbsiten når man enkelt inspelade videoföreläsningar och diverse annat kursmaterial.

Sedan förra lördagen har jag tagit mig exakt halvvägs igenom kursen som heter Introduction to Computer Science and Programming, vilket innebär att jag tittat på 13 föreläsningar på ca 50 minuter vardera. Somligt är nog så grundläggande, men det är ändå (tror jag) nyttigt för mig. Jag får en stabil grund och lär mig begrepp jag tidigare saknat, även om jag har viss kännedom sedan tidigare.

Programmeringsspråket som används är Python, vilket är kul för att jag fuskat lite i det förut och för att det verkar vara ett ganska roligt språk att använda sig av. Det här ger möjligen ett litet försprång vad gäller den kurs jag ska läsa i vår.

Jag väntar otåligt på mina nybeställda, rabatterade och fraktfria glada strumpor.

Utöver MIT-föreläsningar ägnar jag min fritid åt att läsa och lämna feedback på sambons exjobbstext, samt hänga med i den stora bunten tv-serier vi försöker följa. Vilket av detta det blir beror mycket på hur sent jag kommer hem och hur trött i huvudet och ögonen jag är. Orkar jag tänka mycket kan det bli exjobbet, bara lite: föreläsningar. Annars tv. Om ögonen fått nog för dagen lyssnar jag på James Marsters som läser Vampire Empire. Eller någon kodnära podcast.

Att det är nästan jul rör mig inte i ryggen, även om jag är förvånad över att det är så få dagar kvar nu. Antar att min brist på julinsikt har mycket att göra med att vädret inte alls är eller varit vintrigt här i stan. Det är milt och förbaskat mörkt. Jag ser fram emot att få vara ledig ett par veckor och ha makten över min tid.

Ungefär samtidigt som jobbet drar igång efter helgerna gör även kurserna det. Därefter blir det en semestervecka igen i februari, då vi är ett gäng som åker till Lissabon med väninnan som fyller jämnt och firar eller flyr detta genom att resa. Sedan… vet jag inte mycket om vad som händer. Den som lever får se. Då.

Allmänt ospecificerat

[Söndag, mitt på dagen]

Ännu en lång helg är snart till ända och jag njuter av ensamheten, medan sambon är ute och roar sig på sitt eget sätt och håll. Just nu pustar jag ut, framför datorn, efter att ha ägnat några timmar åt städande. Det sistnämnda kom sig av att jag ville känna att jag uträttat något och då fanns det ju (som alltid) lämpliga saker att göra.

Efter att jag avslutat en viktig uppgift från listan i UfYH-appen insåg jag att köket inte fanns med i familje-Trello:n, mer än som kommande renoveringsobjekt, så jag lade in det stora röjningsprojektet, med diverse punkter i att göra-listan. Den första av dem prickade jag omgående av, så klart – det är ju därför checklistor finns.

Jag tror det är så det får bli – Trello får hantera hela projektet och så kan jag lägga in enstaka unfucking-aktiviteter i UfYH-appen för utförande med hjälp av 20/10.

Solen skiner där ute. Om inte sol var så varmt hade jag förmodligen gjort en längre promenad för att lyssna vidare på Skin Game (bok 15 i Dresden Files-serien, av Jim Butcher). Av någon anledning somnar jag nämligen, och tvingas gång på gång spola tillbaka, om jag lyssnar stillasittande eller -liggande. Vilket är synd, för det är ju alldeles ljuvligt att ligga och blunda och njuta av James Marsters uppläsning. Vore det så att alla ljudböcker lästes av honom hade jag varit 100% boklyssnare.

Vilket påminner mig om att jag ser fram emot november, då Dragon Warriors (Kickstarter-backad film i vilken James Marsters har en framträdande roll) är tänkt att presenteras för allmänheten. Ja, jag är självfallet en av dess stolta sponsorer.

[Söndag, sent på kvällen]

Och där någonstans slog hungern till och jag gjorde ett långt avbrott i skrivandet. Jag tror att jag rentav helt glömde bort att jag hade påbörjat ett blogginlägg. I stället tittade jag på ett avsnitt vardera av Episodes och Supernatural, plus det första av Teen Wolf. Därefter ännu ett Teen Wolf – jag ville se hur det skulle utvecklas.

När sambon till slut återvände hem lagade vi mat och såg färdigt första säsongen av Arrow. Tänk att det tog så lång tid att verkligen ta sig an den serien! Jag gillar den, även om det känns smått absurt att se t.ex. ”Harry Dresden” och ”Captain Jack” och ”River Song” i helt andra sorters roller än dessa. Men det är kul också. Dessa skådisar är ju, lustigt nog, alla britter. Kanske just därför jag gillar dem?

Nu ser jag fram emot att snart börja kolla på Arrows andra säsong och så kommer en tredje säsong redan till hösten. Sedan finns det också gott om avsnitt av både House of Cards och Orange is the New Black att se – vi har ännu bara sett något enstaka avsnitt av deras respektive andrasäsonger. Även om det nu är slut på tablå-säsongen så att det inte längre ramlar in drösvis med nya avsnitt varje vecka har vi massor att titta på. Hela Star Trek (minus den allra första TOS-säsongen) och alla gamla säsonger (första till åttonde doktorn) av Doctor Who, till exempel.

Låt se, om jag går igenom listan uppifrån och ned (markerar dem som är mer än precis påbörjade): Angel, Arrow, Black Sails, Brooklyn Nine-Nine, Camelot, Defiance, Episodes, Fargo, Fringe, Grimm, The Guild, Helix, Heroes, House of Cards, Intelligence, Jonathan Creek, Justified, The Killing, Lost Girl, Numb3rs, Orange is the New Black, Orphan Black, Star Trek, Stargate, The Tomorrow People, The Tudors, The White Queen… och fler därtill. För egen del ser jag (om än med rätt låg frekvens) bl.a. Being Human (UK), Sons of Anarchy, Supernatural och Teen Wolf. Funderar även på kolla in From Dusk till Dawn, vid lämplig tillfälle.

[Måndag, efter jobbet]

Mäh! Tänk att det ska vara så svårt att få ut ett jädrans blogginlägg. Det är ju bara att skriva färdigt och trycka på knappen. Liksom. Fast som sagt, skriva färdigt. Jag är inte världsbäst på att släppa taget och lämna ifrån mig skriven text. Därtill är jag alltför noggrann, för att inte säga petig, och har rätt specifika krav på mina texter.

Första delen av det här inlägget skrev jag i söndags, mitt på dagen någon gång. Andra delen kom till närmare läggdags igår kväll, alltså fortfarande i söndags. Dessvärre fastnade jag därefter i en bit programkod som jag blivit ombedd att städa upp för att visa att jag vet något litet mer än ingenting om Java-programmering.

Det blev förstås alldeles för sent innan det var färdigt, så då hade jag verkligen inte tid och lust att färdigställa inlägget. Nu är det måndag kväll och den här gången ska jag banne mig publicera inlägget också! Fast jag skulle behöva leta reda på någon lämplig Java-kod där ute på nätet… Kod som jag kan säga något om – också det är för att visa att jag vet vad jag pysslar med. Det kan ju gå precis hur som helst, det.

Dock, jag tänker bevisa att jag faktiskt kan hålla igen och faktiskt behålla fokus i stället för att ständigt hoppa vidare till nästa blanka föremål som dyker upp i min hjärna. För det vet jag att jag kan. Bland annat gjorde jag just det på jobbet idag. Nästan så att jag blev lite stolt, faktiskt. Nu var det förstås inte mer än i en två timmar lång lucka mellan andra åtaganden, men ändå… det hade varit så lätt, så lätt, att fladdra iväg till annat. Jag undrar ibland vad det är som gör att det är så svårt att ta sig över tröskeln in i en sådan fokuserad värld, medan det när man väl är där är hur enkelt som helst att stanna kvar. Det är som flytet som kan uppstå vid programmering – ibland tar det lång tid att komma igång, men sedan rullar det på.

Den främsta anledningen till att jag kom hem så tidigt som sjutton (pun intended) idag var att ta hand om en leverans. Budfirman var på plats en halvtimme innan avtalad tid och jag gav min tillåtelse att lämna paketen utanför lägenhetsdörren för att snubben skulle slippa vänta tills någon i familjen kom hem, varför det kändes angeläget att skynda. Man vill ju inte låta dem stå där alltför länge för vem vet vilka av mina grannar som kan bli frestade av två stora, bruna, intetsägande kartonger.

Nåväl, kartongerna stod där och väntade när jag kom hem, precis på slaget, och jag lyfte in dem i lägenheten, bytte till hemmakläder, spillde upp ett stort glas kallt vatten – och satte mig vid datorn. Finn ett fel. Men ändå inte, egentligen, för jag ska ju skriva färdigt det här inlägget. Och först därefter får jag öppna mina bruna paket.

Vad det är i paketen? Nördigheter som Star Trek- och Soft Kitty-prylar. Whee!

Får jag gå nu?

Etikettmoln