Basic personligt

Daniel Brahneborgs blogg

Manliga och kvinnliga programmerare

På twitter igår var det en kvinna som sa att eftersom kvinnor tänker lite annorlunda än män och är bättre på att hantera stress, så är de bättre programmerare (ungefär). Att förklara varför jag inte alls håller med om detta krävde visst lite mer än 140 tecken.

Som en liten avstickare kan ju tilläggas att om det nu är så att män och kvinnor i allmänhet tänker på olika sätt (dvs skillnaden mellan grupperna är högre än skillnaden inom respektive grupp), vilket ju var basen till kvinnans hela resonemang, så antyder det självklart att det i så fall finns vissa yrken där det ena eller andra sättet att tänka är fördelaktigt, och därmed får en väldigt sned könsfördelning. Men då började hon så klart protestera. Väldigt lustigt. Inte en TOTALT sned fördelning alltså, så som Fi’s styrelse, utan mer åt 80-20, kanske. Jag fick frågan om vad som hindrade mig att söka jobb som förskollärare. Tja, att jag skulle förmodas vara pedofil t.ex, eftersom jag är man? Förutom då brist på utbildning och intresse för den sortens jobb, och ett lite väl stort lönetapp.

Anyway. Ur ett programmerarperspektiv så kan man dela upp människor i tre olika grupper. Först, de som inte kan programmera alls. Att designa datastrukturer och algoritmer kräver ett visst sorts psyke och sätt att tänka. De flesta fixar det helt enkelt inte. Det ligger ingen värdering i det, de är förmodligen bra på andra saker som vi programmerare suger på.

De andra två grupperna är dussinprogrammerarna och eliten. Båda grupperna kan skriva kod som fungerar, löser den aktuella uppgiften, och är fria från buggar. Skillnaden är som mellan betygen “a” och “A”, det som min mormor kallade för “med spets”. Elitgruppen använder lite mer avancerade språkkonstruktioner utan att det för den skull blir svårare att förstå koden, abstraherar saker till egna funktioner och klasser lite mer, och skriver helt enkelt lösningar som är snäppet snyggare och smartare.

Det enklaste och minsta exempel jag kan komma på är koden för att lägga till ett objekt sist i en länkad lista. Skolbokskoden, den som dussinprogrammerarna använder (inklusive jag själv i början), testar först om listpekaren är null, och loopar sedan igenom listan så länge som current->next är null. Det fungerar, men innehåller faktiskt två olika tester av samma sak, nämligen om en pekare är null. Den snyggare lösningen (tack Jonas) börjar med “void** pp = &list;”, och testar sedan i loopen om “*pp” är null (den tredje delen för att få det här att fungera får du komma på själv). Koden blir mer kompakt, och både lite snabbare och säkrare. Ju färre kodrader, desto färre ställen som kan innehålla fel.

Poängen är att det krävs något extra för att komma på sådana lösningar. Eliten tar konceptet konstruktion och höjer det till en konstart. De är inte slavar under programmeringsspråkets regler, utan jonglerar och trollar med det. Kolla i källkoden till linuxkerneln för ungefär hur många exempel till som helst, speciellt i de mest använda delarna. Det är sida efter sida med ren poesi.

Av de programmerare som jag har stött på under drygt 15 år i yrket, liksom under åren på universitetet, är det bara män som kvalificerar sig till den där elitgruppen. I ett enda fall har jag stött på en kvinna som eventuellt skulle platsa (“trollet”, för de som vet vem jag menar). Resten har visserligen skrivit lättläst och buggfri kod inom rimlig tid, men det där lilla sista har alltid saknats. De skriver inte egna ER-lager när det behövs, sitter inte kvällen innan en kickoffresa och svarthackar ihop en funktion som sedemera blir en av kundernas absoluta favoriter, eller smäller ihop ett webgui med ett nytt framework på några dagar, vilket leder till en helt bunt nya kunder. Alla sådana här “stunts”, som har lyft både produkten och företaget till en helt ny nivå, har i de företag jag har jobbat på, alltid, alltid gjorts av män. Lönen brukar avspegla den här skillnaden i produktivitet och värdeskapande.

Därmed är inte sagt att det inte existerar kvinnor på den nivån, för det gör det säkert. Det är bara det att jag aldrig har mött någon. Hade kvinnor i allmänhet varit bättre lämpade som programmerare, skulle antalet varit högre.

Om du tillhör den här eliten får du förresten gärna söka jobb hos oss, för att anknyta till ett tidigare ämne. Oavsett formen på dina könsdelar. Desto viktigare är det att du kan skriva klart den där loopen ovan.

April 15th, 2011 Posted by Daniel Brahneborg | blogg | no comments

Säljer min Suzuki Marauder – såld

Efter snart tre år i min ägo är det nu dags att säga farväl till min första motorcykel, en Suzuki Marauder.

Jag har sedan tonåren varit väldigt skeptisk mot att köra motorcykel, men när jag till slut satte mig på en sådan här hoj så kändes det bara mysigt. Mycket trevligare än alla höga och läskiga sporthojar. Visserligen gick jag i körskola när jag skulle ta hojkort, men att kunna öva på de olika momenten hemma var guld värt. Eftersom den har så låg sadel är den bra för oss som är lite kortbenta.

Den har funkat bra både att åka till jobbet med, liksom att köra mig och flickvännen runt i Mälardalen.

Men, nu är det dags att prova något nytt, och låta den här hojen få leva vidare hos någon annan. Annonsen hos Blocket finns här, och priset är 32.000. Eftersom det är nya däck både fram och bak liksom nya stötdämpare bak, plus att den de senaste tre vintrarna har blivit professionellt servad hos Ava, är den nog i bättre skick än när jag köpte den.

Uppdatering 2011-01-16: Hojen är nu såld, och verkar få ett bra nytt hem.

April 13th, 2011 Posted by Daniel Brahneborg | blogg | no comments

Den italienska buggen

För ungefär ett år sedan gjorde jag en anpassning av vår SMS-gateway åt en kund i Kanada, för att förändra beteendet på den lite grand. De testade järnet ur den, för att sedan skicka den till sin kund i Italien. Det dök upp lite småsaker på vägen, men inget avancerat.

Men, så för några veckor sedan, började det hända konstigheter. Det speciella med den här installationen var att det inte skulle finnas några köer, utan allting skulle skickas omedelbart. Det började bra, men plötsligt så fanns det hos italienarna inte bara köer, utan det var även förseningar på uppåt en halvtimme. Att kalla det för oacceptabelt var bara förnamnet. SMS blev duplicerade, billingen blev helt uppfuckad, italienarnas kunder blev tokiga, osv. Det blev helt GALET, kort sagt.

Jag hittade problemet, vilket nästan helt och hållet var en konfigurationsmiss. Så som vårt system och de runt omkring var konfigurerade, gick det helt enkelt inte att klara sig undan vissa förseningar. Så jag beskrev situationen, och förklarade vad de behövde göra. Dagen efter är det telefonmöte, då italienarna kräver att jag åker ner, för att hantera denna allvarliga situation. Öh, va? Problemet var ju liksom fixat redan?

Nåja, jag åker ner, förklarar allting några gånger till, och sitter sedan mest på hotellrummet och jobbar med mer normala saker. Jag och min chef kommer till slut överens om att det är dags att åka hem, varvid italienska chefen får frispel och skäller på kanadensarna för att jag inte stannade längre. Helt förvirrande. Tydligen skulle någonting bli bättre i världen om jag satt och ruttnade i ett hotellrum i en vecka till. Att sitta på deras kontor gick alltså inte, eftersom det inte fanns någon fungerande internetuppkoppling.

När jag har varit hemma någon dag så händer det som verkligen inte får hända, det börjar dyka upp köer och förseningar igen. Jag skriver flera småprogram för att analysera logfilerna, men hittar ingenting. Bläddrar för hand upp och ner, men ser inga mönster. Inga teorier håller. Nytt telefonmöte, ännu surare italienare, och ännu mer frustrerade kanadensare.

Till slut går italienarna med på att köra med maximal loggning på en av maskinerna. Då ser jag i vilket område det går fel, så de får en ny version med extra mycket loggning just där. Medan jag väntar på de loggarna blir italienarna ännu tokigare, och kräver att jag åker ner igen. Det skulle vara ett telefonmöte om det igår eftermiddag. Chefen är offline, och jag har egentligen varken mandat att åka iväg eller begära pengar från någon kund för det. Nåja, det skulle få lösa sig i så fall.

Igår förmiddag fick jag de nya loggfilerna, och förstod till slut vad som var fel. I vissa situationer används två köer istället för bara en, och koden som ska plocka saker från kön kollar då från fel kö. Tänk dig två kassor på Ica, där den enda kassörskan sitter i den kassa som det står “Stängd” på. Då går det inte så fort att handla. Jag vet faktiskt inte hur jag ska beskriva hur det kändes att äntligen se sambandet efter en veckas grävande, med sura kunder som blir alltmer frustrerade och vill se det fixat omedelbums. Hade det inte varit för att jag inte dansar, så hade jag gjort det.

De fick snabbt en ny version, men skulle inte köra den i produktion förrän i morgon. Sedan är det bara att hålla tummarna.

Som extra humor… det jag hade jobbat med om jag inte hade behövt åka fram och tillbaka till Milano förut, eller sitta i telefonmöten och förklara samma sak som man precis har beskrivit i mail till samma personer, är att implementera nya funktioner beställda av samma kanadensare, som förmodligen ska användas av precis samma italienare. Ibland blir det bara knäppt.

April 12th, 2011 Posted by Daniel Brahneborg | blogg | no comments

Schuberthhjälm och Honda CBF1000FA

Det blev en hel liten hojdag idag. När jag skulle ta hojkort så köpte jag en hjälm som hette Caberg Justissimo. Den är öppningsbar, men det är ungefär det enda snälla man kan säga om den. Kör man snabbare än 50 så brusar det så man tror att man har tinnituss, och vid minsta regn så immar rutan omedelbart igen. Det enda sättet att undvika imman är att ha en liten glipa, så att det regnar in på ansiktet. Jättemysigt. När man råkar ut för det där den allra första gången man kör i trafik, vilket dessutom är efter mörkrets inbrott, är det lätt att hålla sig för skratt.

Så, idag åkte jag ner till Ava, och köpte en Schuberth C3. Det är tydligen de som även tillverkar BMW’s hjälmar. Jag har inte hunnit köra mer än kanske 10 mil med den, men skillnaden är enorm. Den är ju tyst! Dessutom är den märkbart lättare, vilket nacken tackar och bugar för.

Tyvärr hade inte Ava börjat med provkörningar än, men eftersom två av mina toppkandidater är Hondahojar, och Honda uppe i Upplands Väsby har det, så åkte jag upp dit. Med min nya hjälm på, så klart. Allting upp till 90-väg gick fint, men 110 kändes inte kul alls. Det blåste sidvindar som satan, och eftersom hojen varken har kåpa eller ruta så blev det lite väl blåsigt. Customhojar utan ruta har helt enkelt ingenting över 100 att göra.

Efter lite prat så fick jag provköra en vända med Honda CBF1000FA. Den röda färgen är ännu läckrare än på bild, men eftersom jag redan har en massa klarrött på min jacka så går det bort. Två röda saker av olika nyans? Där säger till och med mitt färgsinne stopp, trots att det är närapå obefintligt. Nåväl, away I go. Lite småvägar, vilket gick jättebra, och sedan ut på E4. Väldigt lättstyrt och smidigt. Rutan hade jag satt högst upp. Öh, hoppsan, plötsligt låg jag visst i 130. Duckade jag ner några centimeter så åkte all luft fint runt mig, så det blev helt vindstilla och knäpptyst. Wow. Med många tusen varv kvar innan varvtalsstoppet så stod det visst 150 en liten stund innan jag kom tillbaka. Brum, brum. Kanske inte ska vara där uppe alldeles för ofta. Har hört att det har en menlig inverkan på innehavandet av körkortet.

Jag hade även funderat på Hondas Pan European, men den kändes nu bara stor och tung. Den är säkert skön att åka längre sträckor på, men det får bli ett annat år. Senaste modellerna av CBF1000 har en kåpa som går lite längre ner, vilket faktiskt täcker riktigt bra. Så, det får bli en sådan.

Väl hemma ringde jag några försäkringsbolag. Både Trygghansa och If krävde ett registreringsnummer för att kunna ge ett pris. Folksam slutade på 10-12 tusen per år. Hondas egen krävde bara att man skrev in sitt personnummer och modellnumret, och hamnade på ungefär 8. Killen hos If gissade på mellan 11 och 19 tusen per år. Lite bisarrt då att det är just If som har hand om Hondas märkesförsäkring. Skum bransch.

Eftersom jag köper den från en handlare och inte en privatperson kan jag dessutom ta det lån som behövs som ett mclån istället för ett blancolån, vilket besparar mig ungefär 3 procentenheter ränta. Väldigt trevligt. Det vore också trevligt om stelheten i nacken och ungefär resten av hela kroppen efter en sådan här dag, skulle kunna minska lite.

April 9th, 2011 Posted by Daniel Brahneborg | blogg | no comments

|