Archive for the ‘Rants’ Category

“00″-generasjonen

Du har sikkert hørt uttrykket før. Det stammer fra videospillerens gullalder. Disse beistene kostet en arm og et bein. De hadde en gazillion knapper, trackingkontroll og et klokkedisplay – som gjerne blinket “00:00:00″ på pur dævelskap, slik at det var komplett umulig for deg å legge skjul på at du var av den typen som ikke kommuniserte overvettes godt på engelsk med techincal writers fra Panasonic. “00″-generasjonen var foreldrene våre. De som ikke klarte å stille klokka på videospilleren. Ikke om livene deres hadde stått på spill.

Jeg har nylig handlet inn nytt kamera. Det kostet en arm og et bein – og det har en gazillion knapper…

Nå er jeg pappa selv, og var derfor ganske fornøyd med å finne “auto”-innstillingene. Disse holdt vann rimelig bra inntil jeg forsøkte å knipse bilder av koronaen på skivene til influensmaskina. Mainnskiten nektet å la meg trykke på knappen hvis den ikke klarte å autofokusere – og det er en utfordring når brukeren har slått av alle lys, og rommet er stappmørkt. Jeg opplevde et øyeblikks lykke når jeg fant en innstilling med navnet “fireworks”, men jeg måtte sannsynligvis ha hentet tennveske og fyrstikker før kameraet i det hele tatt hadde vurdert å akseptere at det kunne befinne seg et motiv i nærheten. Den helsikes gjenstridige AI-puddingen ga seg ikke, og de vakre corona-bildene lot vente på seg.

Jeg har derfor benyttet ettermiddagen til å “gå i læra”.

“Vidåpen blender ?” – check !

“Irriterende lang lukkertid ?” – check !

“Manuell fokus ?” – check !

 (“Corona ?” – oh yeah !)

Vurderer nå å handle meg en retrochic Voigtländer fra bestefars tid, freshe opp oppskriftene på emulsjon og blitzpulver, samt erstatte Lomoen jeg kom i skade for kjøre over i 80 km/t på et fjell for syv år siden (ikke spør…)

Vi pynter brura

Det har vært stille på bloggfronten de siste dagene.  Det skyldes ene og alene at jeg og madammen nå trues av en nært forestående og knallhard deadline. Vi satt en tid som paralyserte kaniner på motorveien, mens vi stirret forskremt inn i frontlyktene til visningsdeadlinen som aksellererte mot oss som en Bugatti Veyron.

Istedet for å gjøre noe (eller forsåvidt flytte oss litt ut til siden), så fant vi ut at vi skulle skrive liste over ting som måtte gjøres. Denne lista kunne vi så tilgjengeliggjøre på et sted der alle kunne finne den. Deretter kunne vi bare kunne plukke aktiviteter når vi fikk tid og så stryke dem fra backloggen etterpå. Lista har nå prydet kjøkkenbordet i flere uker.

Lavthengende frukt modnes tidlig og smaker så mye bedre enn frukt litt lenger opp. Når disse plukkes, så vokser det også merkelig nok frem mer lavthengende frukt. Til tross for dette, så kan en ved å stryke et punkt fra lista, dokumentere at en har utført et stykke arbeid. Familien kan deretter skules inn i hvitøyet med riktig så rak rygg på neste retrospektiv. Et punkt er et punkt !

Litt tidligere i uka til så sluttet det plutselig å vokse frukt i sivilsert høyde. Det var ingen vei utenom, og etter et par hysteriske anfall krydret med panikkangst, så bar det opp på barnerommene for å rydde. I rommet til eldstejenta, så klarte jeg å fylle 4 flyttekasser bare ved å skrape de flatene jeg visste befant seg inne i rommet (En kan ikke stole på sansene sine i slike scenarier, men må ty til Jedi-triks). Jeg var i enkelte øyeblikk overbevist om at jeg kom til å miste forstanden der inne, og brøt ved flere anledninger sammen og ropte ut i desperasjon at jeg ikke klarte mer. Ingen hørte redselsskrikene. Madammen var på cafe med minstejenta og eldstejenta chillet nede hos en venninne. Rasjonalet er visstnok at det er svært viktig at ressurser får jobbe i fred med kritiske oppgaver.

Jeg forsøkte alle triksene i boka for å få kontroll på arbeidet. Eksempelvis å bryte en aktivitet ned i mindre aktiviteter. Dette funket ikke. Eksempelvis, så var aktiviteten “Flytt automater ut i garasjen” like hæslig uansett hvor mange underpunkter jeg føyde til (med unntak av genistreken “Kjøp tralle”).

Nøyaktig beskrivelse av aktivitetene er også viktig. En kan spare mye arbeid på et senere tidspunkt hvis en er presis tidlig. En vag aktivitetsbeskrivelse som “rundvask”, kan medføre mye merarbeid. Hvis en derimot bruker litt mer tid på beskrivelsen og formulerer noe i retning av “ring vaskedama”, så har en en vinner.

“Vask tak” er nå overmoden, men vi har tydeligvis ingen i familien som er komfortable med å ansvar for denne p.g.a. manglende erfaring. Ditto med “Vask vinduer”.

Nå venter jeg på at malinga skal tørke og at det skal slutte å regne, slik at vi får vasket vinduene på utsiden. Deretter skal jeg rive lista i sine respektive fibre, samt sverge en ed på å ikke å ta i en hammer eller malerkost de neste 5 årene.

Nå håper jeg bare at jeg ikke har ryddet mer plass i det gamle huset enn vi får i det nye…

“For official use only”

Vaskedama kom på besøk i dag og jeg måtte ut av huset blodtidlig. For å ha noe å gjøre, så tok jeg med meg rullen med “Stillhetens øy” (Christopher Rådlund) ned til Bakklandet for innramming, rasket med meg VG fra kiosken på hjørnet og ruslet deretter mot cafe Bristol for å slacke i sola med en croissant og en dobbel espresso.

Etter å ha myst litt i avisa, så registrerer jeg at terroren herjer og at aceton peroksid igjen er terroristenes våpen.

En skal kanskje ikke le av sånt, men jeg må innrømme at jeg humret litt for meg selv. Dette er da det samme sprengstoffet som vekket overingeniør Sneen (og sannsynligvis halve Othilienborg borettslag) fra den velfortjente middagsluren sin en sommerdag på midten av 80-tallet. Gjerningsmannen ble dessverre aldri identifisert.

Informasjon vil helst være fri, og den er i motsetning til hva opinionen måtte tro – ikke avhengig av internett for å kunne bli det.

Dette var i tiden før PC’ene var spesielt utbredt. Den eneste spillkonsollen på markedet var Atari VCS (bundlet med PONG…). Internett var ikke et ord i det norske vokabularet, og 75/1200 modem i beige plast var skikkelig hot, selv om en ikke hadde noen andre datamaskiner en kunne ringe til (stakkarene med 300 bauds modem fikk gjennomgå selv om de forsøke å ta igjen ved å skryte på seg full-duplex (75/1200 referer da til bits/sekund inklusive protokolloverhead)).

Men, vi kjedet oss aldri. En kunne alltids krasje modellfly, samle på frimerker, eller i fellesskap late som en kunne reglene til D&D, Var det ekstra lite å gjøre en dag så laget vi raketter og ting som sa *BOOM*.

Nå lurer du sikkert på hvor datidens ungdom fikkdenne type informasjon fra. Joda, vi fikk den tilsendt i posten (tenk “IP over brevdue” / snail mail) - fra USA. Nyhetsbrevet fra Scandinavian Music Club og Egelos tryllekatalog var vel det mest eksotiske som normalt dukket opp i postkassa på den tiden. Jeg husker ikke helt hvor jeg så annonsen, men jeg endte ihvertfall opp med å bestille katalogen fra Paladin Press. Tror ikke jeg tar i for mye hvis jeg sier at nakkehårene reiste seg når jeg første gang bladde gjennom sidene i denne. De hadde et eget kapittel med lister over bøker som kun omhandlet improviserte eksplosiver.

Survivalist-bølgen herjet i USA på denne tiden, og det var ikke måte på hvor forberedt den gjengse republikanske hytteeier burde være i fall demokrater skulle vinne neste valg, eller gud forby, en homofil kommunist skulle dukke opp ved delstatsgrensa. De hadde (og har vel forsåvidt fremdeles) forlag som levde av å trykke opp bøker som vel best kan karakteriseres som tilhørende på den “ytre høire fløy”. Dette var ren info-porn for oss som var flasket opp i sosialdemokraties overbeskyttende vugge – om som hadde gjort flere table scans i Aschehoughs konversasjonsleksikon for å finne spenstige oppskrifter på ustabile kjemikalier som ga morsomme eksoterme reaksjoner.

En bør ha i bakhodet at dette var en epoke der Reagan herjet som verst, og de hadde et forsvarsprosjekt med mangemilliardbudsjett og klengenavn “Star Wars” (SDI) – uten at noen stilte spørsmål. Hadde du noe legitimt å forsvare deg mot, så var alt lov. De som allerede hadde en atombunker i bakhagen, stappfull med hermetikk, hadde fremdeles en enorm kunnskapshunger m.h.t. hvordan de kunne slå tilbake mot alt som truet i buskene.

Ting var enklere før. Kommunister, abortforkjempere, homofile og terrorister var lette å spotte. Kommunistene organiserte seg i lokale lag (samt at de var lette å kjenne igjen på basis av et karakteristisk viltvoksende skjegg, hornbriller, samt at de alltid hadde skinnlapper på albuene på dressjakka i cordfløyel), abortforkjempere er jeg litt mer usikker på men jeg mistenker at banner med slagord som “selvbestemmelse” og “frihet” skurret noe voldsomt i konservative sinn. Homsene holdt seg til egne klubber og terroristene nøyde seg med å kapre fly som de så tvang til å lande på helt andre flyplasser (sannsynligvis for å ødelegge verdensøkonomien gjennom enorme forsinkelser i den kommersielle flytrafikken). Enkelte satte til og med fyr på seg selv for å vekke allment ubehag.

Det amerikanske forsvaret laget i 1963 flotte og fryktelig lettleste manualer for improvisert geriljakrigføring. Mye tyder på at verden hadde sett en del anderledes ut hvis de istedet hadde tilbudt soldatene bedre engelskopplæring, samt noen videregående fag.

Vi sakser litt fra kravspesifikasjonen til “The Improvised Munitions Handbook” fra Frankford Arsenal, mangfoldiggjort av Desert Publications, og vennligst distribuert fra Paladin Press til norsk kvisete ungdom via det Norske Postverket.

Fra krav til “Performance Characteristics”:

9b) “Format and Language”

(1) “The basic handbook will be written in simple and concise language readily understandable by Special Forces personel.” (samt for kvisete tenåringer og wannabe terrorister, red. anm.)

(3) “Instructions will be presented in step by step sequence”

Dette var gull for tenåringer som ville lage neste-generasjons kinaputter, og tydeligvis også for dagens terrorister, selv om det forundrer meg litt at de har brukt 30 år på å grave fram dette materialet. Det som er litt skremmende er at det amerikanske forsvaret har lagt ned såpass mye tid og arbeid i å gjøre materialet tilgjengelig og lettforståelig. De har forsåvidt lyktes. Oppskriftene er så enkle at de har senket terskelen noe inn i hampen mht hvem som kan koke sammen disse stoffene.

En trenger ikke spesielle kognitive evner eller høyere utdanning. Det hjelper om en kan snakke. Slik at en kan handle de respektive produktene. I tillegg så er det en fordel, men sannsynligvis ikke en nødvendighet, med velutviklede frontallober, slik at en er i stand til å holde igjen spontane politiske slagord og ytringer mens en står i skranken på apoteket.

USA drev jo i sin tid heftig opplæring av Afghanere mens Afghanistan var okkupert av Sovietunionen. Jeg vil anta at “improviserte våpen” også var i læreplanen. Når bomber av denne typen begynner å dukke opp, så har jeg en følelse av at det er noen som i det minste burde si “hei”, når de møter seg selv i døra. En ting er at en ikke kan hemmligholde denne typen informasjon. Noe helt annet er å produsere og tillate distribusjon av forenklede lærebøker i hvordan en produserer slikt.

Jeg registrerer at det nevnte forlaget har fjernet disse bøkene fra listene sine, men skaden har vel allerede skjedd.

(Fra AP-oppskriften i kapittel 1 i “Improvised Munitions Black Book, vol 3″, fra Desert Publications)

PS. Note til PST. Redaksjonen flytter snart inn i ny bopel, så dere må oppdatere registrene deres.

The Arts

I motsetning til gjengs oppfatning, så er “kunst” et ord som ikke referer til noe annet enn beherskelse av en ferdighet. Ordet beskriver mestring av en displin. Om denne disiplinen er visuelle skildringer, arkitektur, kampsport, programmering, utøvelse av musikk, er likegyldig for forståelsen av ordet.

Den totale beherskelse av et fag virker på ikke-fagkyndige så imponerende at resultatet av utøvelsen tilsynelatende bare kan forklares av en unik medfødt begavelse eller en ukjent X-faktor. Sjelden har Arthur C. Clarkes tredje lov vært så treffende som i dette tilfellet, d.v.s “Any sufficiently advanced technology is indistinguishable from magic.”.

Den, for enkelte nok litt skuffende konklusjonen, er at mestring i de aller fleste tilfeller er et resultat av fokusert og hardt arbeid over ubehagelig lang tid. D.v.s. en må påregne å anstrenge seg noe for å ende opp som mester – uansett disiplin.

Det jeg lurer fryktelig mye på er hvorfor det er så enormt stor forskjell på hvordan en forholder seg til mestere innen de forskjellige disiplinene. Innen eksempelvis musikk, litteratur og billed-(nekter å sette inn ordet her, men du vet hva jeg mener), så er mestrene frie sjeler.

Innen de litt hardere disiplinene, der samfunnet har gjort seg avhengige av hva som produseres, så er mestrene satt under administrasjon.

Mitt første spørsmålet er: “Hvorfor ?”. Hva oppnår en ved å umynddiggjøre de som best er i stand til å utøve sitt fag ? (Jeg mistenker at det riktige svaret er “Sole seg i glansen, kompensere for egen utilstrekkelighet, samt skimme en ikke ubetydelig del av kaka”)

I IT-verdenen, så er vi belemret med evigvarende “hva er den beste prosessen”-diskusjoner. Nye prosessmodeller oppstår, og gamle dør. Likevel viser all statistikk at de er irrelevante. Resultatet blir like begrædelig hver jækla gang. Det som er litt interessant, er at et fellestrekk for alle prosessmodeller jeg kjenner til (også de smidige) er at alle faglige ressurser skal administreres – enten av en bønneteller, eller av prosessen selv. “Kontroll” er et nøkkelord for alle, og kontrollen ligger ikke hos den som har de beste forutsetningene for å ha den.

Mitt andre spørsmål er: “Kan en administrere seg fram til et mesterverk ?”. Øker den faglige utførelsen i kvalitet ved at det sitter noen på toppen som er flinke til å telle ?

La oss ta eksempelet med taket i det sixtinske kapell. Hvordan hadde dette sett ut hvis pave Julius den andre hadde kjent til en eller annen prosessmodell ? (tenk litt på den).

Mitt tredje spørsmål er: “Kan en i det hele tatt forvente resultater i form av mesterverk uten at mesteren selv har den totale kontroll over utøvelsen ?”. Får lærlingene eksempelvis klædde på bildene til Nerdrum etter eget forgodtbefinnende ? Er det noe som heter “min og din” ? (Hei til XP’erne forresten !)

Mitt fjerde spørsmål er: “Hvorfor gir vi ikke kontrollen tilbake til mestrene ?” Hvilket nek var det som kom på den glitrende ideen at de skulle gi fra seg kontrollen i utgangspunktet ?

(Nå er det sikkert noen som er fristet til å si “Software craftsmanship”. Til dere vil jeg si “bollocks !”.  Ideen er ikke ny, og de nødvendige rammenebetingelsene finnes ikke. Søt tanke, men de eneste som vinner på at du velger å dele kunnskap er de som administrerer deg (tenk litt på den også…).

Mitt femte og siste spørsmål er: “Hvorfor er organisasjonene forundret når mestrene velger å finne på noe annet ?”.

PS. Hvis du vil opp og frem, så kan du ihvertfall i IT-bransjen være litt bevisst på Larry Nivens inverse variant av Arthur C Clarkes tredje lov. Denne går som følger: “Any sufficiently advanced magic is indistinguishable from technology.”. Følger du den, så vil du nå langt – kanskje helt inn på styrerommene.

Sensurert av gateavisa.

Hvis jeg sier “Anarkoreven” eller “Syphilia Morgenstierne”, ringer det noen bjeller ? No ?

Men hva hvis jeg sier at Christian Vennerød var redaktør, da ?

Niks, jeg snakker ikke om “Dine Penger”, men om Gateavisa !

Den dukker fremdeles opp med ujevne mellomrom i avishyllene, men har i likhet med Dagbladet – tapt seg noe. For 20-30 år siden derimot, da var det sprut over dem. Den var (er kanskje fremdeles ?) gratis for innsatte, og de gikk eksempelvis ikke av banen for research av typen der en stjeler søpla til statsministeren for bruke som grunnlag for en frisk “her er ditt liv”-artikkel med spenstige og intime avsløringer. Det var en salig miks av anarkistiske ideer, “gartner-tips”, Gilbert Shelton-striper, piratradio og alle former for motkultur. Den var en fryd å lese i en epoke som var sterkt preget av konformitet og sensur. Hvordan de slapp unna med det sliter jeg fremdeles med å forstå, men all ære til de som gjorde avisa mulig !

(Du aner kanskje at dette er en ny “loftspost”, men det blir en av de siste – lover)

Jeg kom over et lass av GA sammen med seriene, og måtte selvfølgeligvis bla litt.

Jeg tror jeg skal begrense meg til å si at jeg humret litt for meg selv når jeg fant igjen artikkelen skrevet under det noe Gibson-inspirerte pseudonymet “Neuromancer”. Tittelen var “Om den avantgardist-nihilistiske teknofetisjismens grunnlag”, og innholdet var en helside med motkulturelle teknotips. Spekteret var vel innenfor intervallet naivt / “totally harebrained” til høyst reell WMD-tech du kunne tilberede på hybelen hvis du befant deg i kategorien “sint ung mann” og var sulten på et avsnitt i historiebøkene.

Har du dette nummeret, så kan du forsåvidt lese det selv. Jeg velger å ikke gjengi noen deler av innholdet her, da jeg har sett de styggere google-algoritmene inn i hvitøyet ved tidligere anledninger. TE er familievennlig site.

Det som er litt sjarmerende er at denne artikkelen faktisk var såpass kraftig kost at anarkistavisa GA valgte å sensurere deler av innholdet !!. (pingleanarkister… ;) )

Vi sakser GA’s redaksjonelle kommentar til artikkelen.

(“nettet” var på denne tiden forbeholdt kun de med universitetstilknytning, og det var ikke så veldig mange år siden William Gibson først coinet begrepet “Matrix” for å beskrive virtuelle informasjonslandskap. Du kan jo regne ut året selv hvis du er fryktelig nysgjerrig, eller jobber i PST)

Håper forfatteren har blitt litt klokere (og bedre til å skrive…) på disse årene. Hvem vet, kanskje kommer han ut av skapet om noen år og vedkjenner seg eierskap til pseudonymet ?

 

(Bildet er rappet fra http://www.freaknet.org.uk, som garantert har rappet det selv…)

Kohesjon, kobling og fred i verden og sånt…

Jeg har i de siste dagene (i tillegg til å handle hus), vært så heldig at jeg har fått gjøre det som er få utviklere forunt. Vi hadde ei lita glippe mellom releaser, og jeg har tillatt meg / fått tillatelse til å rydde i kode – som burde vært røsket opp i for lenge siden. Ettertiden får bedømme om jeg har gjort et bra stykke arbeid eller forårsaket et bra stykke merarbeid for mine kolleger, men jeg har ihvertfall hatt det moro. Det føles omtrent like godt som når du begynner å skimte konturene av gulvet når du rydder opp etter ungene (og deg selv…).

Normalt så drives prosjekter fremover av funksjonaltitet. Krav spesifiseres av forretningsressurser. Teknikerene skriver tester og implementerer. Testlinjene verifiserer så at ting henger sånn tålelig sammen før det settes i produksjon. Dette funker forsåvidt ok – helt til prosjektene blir lange og kodebasen blir stor.  Da skriker koden sårt etter vedlikehold, og det er av en eller annen grunn få organisasjoner som evner å se konsekvensen av å ignorere skrikene.

Mengden av penger som ramler inn i et prosjekt er en funksjon av – wait for it – “funksjonalitet” som kan leveres til en gitt deadline. Kunden driter i om det er vanskelig eller lett å lage funksjonaliteten. Det er den de betaler for og det er den som gir dem forretningsverdi.

Kode som ikke aktivt forvaltes parallelt med endring/innføring av funksjonalitet, blir med tiden “innfeit” og kreftsyk. Den krystallklare luften du engang kunne beskue tindene av elegante strukturer gjennom er blitt tett og ugjennomtrengelig av forurensning.  Tankene som en gang måtte ha vært lagt til grunn er umulig å rekonstruere. De har for lengst forduftet bak horisonten – sammen med de opprinnelige utviklerne

Symptomet på “innfeithet” er gjerne at det kreves enorme mengder innsats, penger og dødsforakt, som kun et fåtall utviklere er begunstiget med, for å gjøre selv den minste endring i koden, uten at en må leve i frykt for å bli skutt i bakhodet en lørdags kveld – av en sideeffekt som valgte å propagere opp av myra et par uker etter release. Ting blir dyrere enn de burde ha vært, men samtidig må de i en prosjektorganisasjon løses innenfor de funksjonelle rammene. Å spørre etter mer penger for å “reparere” kode en har laget selv og allerede levert er vanskelig.

Rockstar-groupiene nikker sikkert gjenkjennende nå. Hørte jeg noen som sa “kohesjon” og ”kobling” ?. Svært få utviklere tør å protestere hvis en fanboy skriker “Dårlig kohesjon! Ikke rart det går til hælvete!?! Har du ikke hørt om S’en i SOLID ?!?. Vi er jo fagmenn ! Vi skal kunne sånt”.

Yeah, right … Det er nesten litt søtt.

I en forsamling vil som regel alle utviklere med respekt for seg selv nikke anerkjennende og tilsynelatende gjenkjennende til sånt – samtidig som de innerst inne ber en stille bønn om ikke å bli hørt i prinsippene, eller gud forby få et spørsmål fra podiet om hva kohesjon egentlig er for noe.

Jeg skal hive ut av meg en påstand.

Det er kun et fåtall av de som til daglig arbeider med utvikling av programvare som har noe som helst forhold til metrikker og designprinsipper. Jeg sier ikke dette for å fornærme kolleger, men svært mange programmerere (inklusive meg selv, hvis jeg er uopplagt eller skulle mangle inspirasjon en dag) ser på dette som en jobb, ikke en religion. De sikter seg derfor inn på den ene metrikken de og lederne deres er opptatt av, dvs “kortsiktig virk”. Det er dette de blir målt på. Det er dette som betaler fredagspilsen og prosjektlederbonusene. Det er dette som gir stjerner i boka på styringsgruppemøtene – dessverre.

Jeg kjenner en del som er dyrisk opptatt av metrikker, designprinsipper og om pilene i siste UML-profil skal være stiplede i en eller annen kontekst. Dette er vel og bra for blind intellektuell vold mot tilfeldige forpipasserende ved kaffemaskina, men for å løse utfordringen med “vedlikeholdbar programvare i praksis”, så er metrikker og designprinsipper i stor grad er irrelevante.

Jepp, du leste riktig, og rasjonalet mitt er som følger:

  1. Funksjonalitet er i praksis lokal – dvs det finnes ingen mekanismer for å unngå redundans, utilsiktet kobling pga misforstått gjenbruk, samt tap av kohesjon i kode så lenge du ikke krever at samtlige utviklere har eierskap til (og full forståelse av) all kode, samtidig som de kontinuerlig refaktorerer ting som er utenfor scopet deres – på idealistisk grunnlag. (yeah, yeah, jeg vet hva fanboys’ene sier, men i praksis så _er_ det “min” og “din” kode når du kommer over en viss størrelse. Grow up !)
  2. Selv om du staffer opp prosjekter utelukkende med rockstars, så vil koden råtne over tid pga pkt 1. I verste fall har du ved et uhell istedet staffet opp med cargo cult-medlemmer, da de til forveksling ligner – samtidig som de benytter mye det samme vokabularet (og da kan du like gjerne tenne på sjappa og starte på nytt).
  3. Arkitektur defineres dessverre som regel som en initiell powerpoint som presenteres på kick-off (dvs irrelevant), eller de “litt mer tekniske” grepene som alltid må gjøres i bakkant av prosjektet for unngå å bli saksøkt av kunden når systemet står i sju stein. Er du involvert i det siste, så gjør du sjelden større omskrivninger for å gjøre koden vakker og mer vedlikeholdbar. Du fokuserer på “virk”, ikke endringsvillig og vedlikeholdbar kode.

Prosjektdrevet utvikling av funksjonalitet i en eksisterende kodebase medfører en verden av smerte (Hvis en er litt ondsinnet, så kunne en kalt dette iterativ utvikling, men jeg har ikke lyst til å bli oppfattet som reaksjonær…)

En del har begynt å dra frem ord som “craftsmanship” i et forsøk på å gjenvinne selvrespekten, samt skape en viss distanse til kolleger som ikke fikk med seg akkurat _den_ boka, men det hjelper så sørgelig lite å være i stand til å konstruere vakre katedraler av logikk, så lenge ingen er villige til å ansette vaktmestere for å vedlikeholde dem.

Dagens arkitekturmonolog

Jeg har et noe anstrengt forhold til termer postfikset med ordet “arkitektur”. Ditto med akronymer designet for fremmedgjøring av kjøpere, skreddersydd for intellektuell vold mot tilfeldige faglige forbipasserende, eller nye begreper som mer eller mindre, gjerne tilfeldig, helt eller delvis dekker konsepter som allerede har levd en stund.

Den totale ironi oppstår gjerne når du i tillegg spotter “KISS” og “YAGNI” i den samme utfloden av konstruerte begreper.

Føler du at du drikker av den evinnelige brannslangen ? Er du på hæla og føler for litt etterutdanning ?

Frykt ikke ! Ingen grunn ikke la deg skremme av all hypen. Som du snart skal få se, så skal det ikke mye til før du kan erklære compliance med det meste, og dermed rettferdiggjøre et saftig påslag i timeprisen din. Vi bringer et lite eksempel fra kjelleren:

Det hele startet med at Are etter ferdigstilling av Spar7-kortet, i en chat nevnte at det hadde vært kjekt med et generelt erstatningskort for de gamle kassene. Jeg var enig, og etter i overkant mye bitfikling og assemblerprogrammering, så slo det meg at et eget språk måtte være kjekt, slik at det skulle bli lettere å uttrykke seg.

>”ekstern DSL” – check !

Jeg ser det står noen connectorer på kortet. Jeg kan sende signaler inn og få signaler ut. Signalene går mye i 0′er og 1′er men det er definitivt semantikk knyttet til dem. Det er legitimt å kalle et sett av disse for “kommandoer”, eller kanskje “meldinger” ?

Iom at klientene ikke trenger å  vente på prosessering av meldingene, men forsåvidt får eventer tilbake, så kan jeg kanskje også bruke ordet “asynkront”. Det går noen kobberbaner mellom connectorene og en stor svart brikke på kortet. Da dette nok er mediet for transport av meldinger, så kan jeg kanskje også benytte ordet “meldingsbuss” med god samvittighet.

> “asynkron meldingsbuss” – check !
> “eventdrevet arkitektur” – check !

Signalene er organisert i funksjonelle grupper. Det er klare grenser mellom gruppene. Alle meldinger deler det samme skjemaet. Alle er operasjoner er autonome.

>”Tjenesteorientert arkitektur” – check !

Da jeg har strenge realtimekrav, så må jeg route eventene inn i en intern meldingskø så fort som overhodet mulig, slik at task-schedulern min kan snappe meldinger ut fra køa i ledige stunder og dispatche disse til riktig eventhandler. Vi er bare et lagrekall unna…

>”Event sourcing” – check !

Hmm, når jeg tenker meg om, så er alle meldingsreturer av typen void.

>”Idempotent” – check !

Displayenes state lagres i egne buffer og pulses av egne kretser slik at prosessoren skal slippe å tenke på dette. Dvs at vi har egne datastore for skriving, og synking av lesedatastore fra denne.

>”CQRS” – check !

Jeg har ikke fulgt noen prosess i dette arbeidet. Men det har blitt flere runder med bestilling av prototypbatcher som jeg så har testet. dette har gjerne ført til at jeg har funnet feil slik at jeg har måttet korrigere designet. Jeg har også kommet på nye lure ting jeg har kunnet inkorporere på kortet

>”Iterativ prosess” – check !

Den eneste måten jeg kunne justere programvaren på med noen grad av sikkerhet, var ved å lage en slags testharness med knapper og display på en diger breadboard. Når jeg trykker på en knapp, så forventer jeg at noe skal skje enten på en output-port, på et display, eller ingenting (kanskje bare medføre en state-change). Deretter har jeg prototypet programvaren i C og flashet over på kortet for å se om oppførselen nå er ihht boka.

>”TDD” – check !

Jeg har begrenset budsjett og kan ikke kaste ressurser ut av vinduet. Hverken tid eller penger. Alt jeg gjør må tilføre verdi.

>”Lean” – check !

Jeg gjør forsåvidt aldri noe før jeg

>”Kanban” – check !

Jeg ser nå på fungerende hardware som kjører (foreløpig delvis) generert kode på et sanntids multitaskende OS. Er så langt ganske fornøyd med resultatet, og ting begynner å snøre seg sammen i et, om jeg skal få si det selv, ganske så tight lite regime.

Men…,

det jeg lurer litt på er hvordan det hadde gått med dette prosjektet hvis jeg hadde startet ut med en intensjon om å designe denne plattformen i en tjenesteorientert arkitektur med en asynkron eventdrevet buss med idempotent prosessering av meldinger, CQRS, eventsourcing og TDD’ing av DSL en som skal kompileres til en realisering av de to forrige akronymene ?

Sannsynligvis hadde en endt opp med noe i grenseland mellom en Borg-kube og en kreftsvulst.

Hvor fanden ble det av jentene ?

Jentene var tidlig på banen med høye kneløft (dog med anstendig lengde på skjørtene) i databehandlingens barndom. De første skikkelige programmererne på skikkelig metall var jenter. Den første kompilatoren ble utviklet av en kvinne. Jeg vurderer også å argumentere for at den første programmerbare (dog konseptuelle) datamaskin ble unnfanget av en kvinne (Begynner på “T”…) – tror kanskje jeg stopper der.

Jeg jobber i et konsulentselskap, og det iverksettes jevnlig rekrutteringsstunt for å hanke inn nye rekrutter fra bl.a. Gløshaugen. Vi har forsøkt å øke jenteandelen i selskapet, men det er fremdeles bokstavelig talt en massiv overvekt av mer eller mindre grumpy menn med kulemage. Jeg har en vag formening om at vi kanskje er representative. Seibel intervjuet 15 menn i “Coders at Work” – 0 kvinner. Ikke engang Barbara Liskov. Hvis en myser på lista over foredragsholdere for QCon 2010, så er det fem kvinner der – av 103 foredragsholdere.  Jeg har forsøkt å telle på fingrene hvor mange kvinnelige programmerere jeg vet av etter å ha vært med en del år. Etter en halvtime, så er jeg fremdeles på en hånd.

Jentelaget hadde good steam. Hva skjedde ? Hvorfor ville de ikke være med lenger ? Har de gjennomskuet “The Big Acronym Scam” ? Skremmes de av PHB’er som har sin faglige og filosofiske ballast fra Hegnars bokklubb ? Hva er det de har skjønt som vi ikke har skjønt ?

Mistenker at vi kanskje har mistet noe på ferden ?

Jeg har i det siste viet en del tid til dyrking av en gryende “retro computing”-fetisjisme og er nå i gang med å pløye gjennom “Electronic Brains / Stories From The Dawn of The Computer Age”. Jeg har tidligere idolisert pocket-protectors og sokkeholdere, og betraktet dette som essensielle elementer i en alfa-geeks garderobe, men dette viser seg å være et fatalt sidespor. Veien til übergeekdom er raske biler, altered states og (som en konsekvens) rabiate, men geniale og banebrytende innfall.

Vi bringer et lite sitat fra boka:

“John Atanasoff wasn’t everyone’s idea of an academic in the 1930s. Born in 1903 and by then a professor of mathematics and physics, he loved fast cars and whisky and didn’t mind mixing the two. His high-speed drive ended at a roadside tavern, where he downed a couple of shots before the basic components of a computer came to him in a rush and he hurriedly noted them down on the back of a table napkin”

Jeg kjenner meg ikke igjen i jobbhverdagen som beskrives, men jeg skulle ønkse jeg gjorde det.

Helsikes miljøpuddinger !

Jeg blir direkte trist av dårlig belysning og det burde være en menneskerett å få kjøpt lyspærer med riktig lysstyrke og fargetemperatur til Poulsen-lampene sine ! Jeg forsøkte i dag å skru inn den sterkeste sparepæra som er å oppdrive i PH5′en min som henger i stua og resultatet var så begrædelig at jeg nesten begynte å grine.

Kan noen i EU forklare meg hva som er så miljøfiendtlig med å bruke 200W-pærer her i det kalde nord ? Hvis jeg bruker 1% av effekten til lys og 99% til oppvarming, så betyr jo bare det at termostatene på varmovnene slår seg av litt tidligere enn de ellers ville gjort. Eller er det en annen type og mer miljøfiendtlig strøm som blir omdannet til varme i en lyspære enn i en panelovn ?

Ikke er de miljøvennlige heller, disse nye pærene. De er jo proppfulle av kvikksølv og fosfor, plast og bromerte flammehemmere. Ballastene er fulle av kobber, og dette er faktisk en ressurs som vi holder på å gå tom for. I tillegg så går det garanter haugevis med mer energi inn i produksjonen og resirkulering av disse enn av de tradisjonelle glødelampene.

Har noen regnet på effekten av at hele EU sin befolkning kollektivt blir _litt_ mer deprimert av å bli tvunget til å bruke lyspærer med et direkte naturstridig fargespekter i sine egne hjem ? Me think not.

Ikke fanden om jeg bøyer av for dette – om jeg så skal handle NOS-lamper på ebay, må smugle dem inn fra bananrepublikker eller ender opp med egen undergrunnsproduksjon av lyspærer.

Return top