Bjørn Einar Bjartnes

Utvikler og arkitekt i 4subsea


Hvem er du, og hva holder du på med?

Jeg er sivilingeniør i teknisk kybernetikk, og har bakgrunn fra automasjonssystemer i olje- og gassbransjen. Jeg rakk å bli skitten på fingrene før jeg etter noen år endret over mot ren softwareutvikling. Drivkraften var i grunn kulturen i IT-bransjen, den åpne delingskulturen som går utover de enkelte selskapenes interesser. Studiene hadde en del IT fag, men det var likevel en overgang å gå fra kybernetiker til utvikler. Selv med algoritmer og datastrukturer, kommunikasjon, tjenester og nett og databasefag i verktøykassen var det preget av at folk rynket på nesen og fnyste over at jeg ikke hadde hørt om TDD eller CI servere. Godt hjulpet av å høre på Hanselminutes og miljøet i Computas, som etterhvert ble til lambdaklubben, fant jeg meg likevel godt til rette, lærte meg å henge med de rette folka og ignorere de andre. Jeg har aldri sett meg tilbake.

Offshore-arbeid

Fra min tid offshore, et sted i Adriaterhavet. “I used to be an adventurer like you. Then I took an arrow in the knee…”

Og så er jo energibransjen i endring, nå er det ikke bare borerigger og olje- og gassproduksjon, men også havvind og installasjonsfartøy for havvind og den slags…

På fritiden har jeg havnet litt nedi et HTTP-hull. Fikk veldig sansen for å forstå protokollen da jeg jobbet i NRK, det å forstå HTTP bedre hjalp mye med å kunne robustifisere tjenestene. Det har endt opp i to workshopper jeg holder med ujevne mellomrom:

https://github.com/bjartnes/http-workshop

https://github.com/bjartnes/bounded-disturbances

Så har jeg et litt evighetsprosjekt om å lage en http-chatbot, det er egentlig bare tenkt som et slags GUI mot å kunne håndtere flere, samtidige pågående TCP koblinger og svare i ren tekst, så jeg kan snakke HTTP for hånd. Det er jo ingen andre som bruker det og jeg bruker det like mye for å lære nye måter å gjøre ting på og teknologi så det virker stort sett aldri stabilt. Jeg ville ikke anbefalt noen å prøve det.

Ellers driver jeg en F# meetup i Oslo, men det er ikke mye jobb. F# miljøet i Oslo er såpass positivt og selvgående at det er stort sett bare å sørge for at en eller annen tar stafettpinnen videre og lager en ny meetup.

Hva slags hardware og dingser bruker du?

Innkjøpsbudsjettet mitt bærer preg av at jeg har en egen filosofi når det kommer til magic-kort, sykler og PC utstyr. Jeg spør 14-år-gamle meg selv om hva jeg burde gjøre. 14 år gamle meg hadde blitt skuffet over meg selv hvis jeg endelig har råd til fet PC og kul sykkel, men så lar jeg være. Da blir det fort en del stæsj. Jeg programmerer neppe fortere eller bedre, på samme måte som jeg ikke sykler noe særlig fortere med rask sykkel, men jeg liker følelsen av ting som funker.

Med skrantende pappakropp så er jeg opptatt av ergonomi. Det påvirker nok valg av skjerm, tastatur, stol, pult etc… Jeg har kjent på vond rygg og musearm, så jeg har tatt en del aktive valg for å unngå det igjen.

Helt ordinære ståpulter fra IKEA med en enkel motor fungerer for meg. Så lenge den er stor nok går det greit. Jeg har den stort sett i halvhøy høyde som passer bra til stolen min. Jeg sitter bare på den høye utgaven av HÅG Capisco. Jeg har en hjemme og en på jobben.

Innen tastatur startet reisen med Das Keyboard for over ti år siden. Jeg har fått veldig troen på split-keyboards for å åpne brystkassen mens man jobber. Som VIM fan så har jeg også behov for noen endringer på layout, og det er enklere å ha tastatur man kan programmere om enn å gjøre dette i Windows. Jeg har blitt veldig glad i Dygma Raise. Jeg trenger ikke bygge tastutur selv, men jeg vil ha kvalitetsfølelse og velge fjærene selv.

Kontoroppsettet

Fantastisk tastatur. Caps-lock er programmert om til “modifier” knapp, caps+hjkl er piler, escape på tommelen etc. Alt ligger i tastaturet, så jeg trenger ikke gjøre noe med PCn for å få det til.

Skjerm er viktig, den trenger ikke være så bred som min, men den må ha 2000 pixler i høyden for å fungere for meg. Jeg er strålende fornøyd med min Dell u4021qw som har 5k i bredden og 2k i høyden.

Jeg er ikke veldig nøye på hva slags mus jeg har, men standardmusene man får utdelt går rett i retur. Jeg får musesyke av å se på dem. Jeg har MX Master 3 serien hjemme og på jobben, de fungerer bra nok for meg.

Lyden er oppgradert ganske nylig etter de forrige hodetelefonene røyk, da ble det LCD-X med en forsterker som matcher ganske brukbart fra Burson. Det er helt rått å høre på musikk med skikkelig lyd. De er åpne ut, noe som gir dem en veldig åpen følelse, men de spiller jo like høyt for alle rundt. Det er heldigvis ikke noe problem på hjemmekontoret.

PCn min hjemme bærer preg av komponentmangel da jeg kjøpte den, så jeg valgte litt det jeg fant, for eksempel var 3080 skjermkort umulig å få tak i og selv 14-åringen i meg var enig i at 3090 var for dyrt. Av specs er det AMD Ryzen 9 3900X 12-Core Processor, 32 MB RAM og et 3700 RTX skjermkort.

Jobb PCn min er en Thinkpad P1 workstation, med en 12th gen Intel prosessor med 14 kjerner, 32 GB RAM og et RTX A2000 skjermkort (det har utrolig mye å si, jeg sitter ofte på Teams og parprogrammerer, jeg vil la GPUen kjøre video og la CPUen være i fred). Den driver ikke og skrur ned ytelsen for å spare kraft, så den er for alle praktiske formål like rask som hjemme PCn min, eller kanskje raskere. Jeg har ikke målt. Ulempen er at man må ha egen dock, den kan ikke docke skikkelig over USB-C, for den klarer seg ikke med 90 W.

Hjemme har jeg en docking stasjon ekstra, så jeg kan ganske sømløst bytte mellom de to PCene. Det eneste jeg må bytte nå er hodetelefonforsterkeren, jeg har ikke tenkt ut hvordan USB-C kan virke på dette oppsettet uten å kable om…

Kontoroppsettet

Skjermen ser bare rund ut på bilder, den oppleves helt flat når jeg sitter foran den. Psyduck minner meg om at det er helt greit å bli frustrert av programvare.

Reiseoppsett

Det går ikke alltid an å drasse på alt mulig, men tastatur og mus reiser jeg ikke uten. Noen dager skal jeg klare meg med Sony ørepropper. Tastaturet kommer med en solid reiseveske. Kontorstolen har foreløpig fått bli i bagasjerommet, siden jeg er med en kompis på hyttekontoret hans ville jeg ikke fremstå særere enn nødvendig.

Og hva slags software?

På min egen blogg har jeg en slags oppskrift til nyttig oppsett og fonter jeg liker. Jeg er .NET utvikler og bruker Windows og Visual Studio primært. Jeg er glad i Linux kommandolinjeverktøy og er en stor fan av WSL2 som lar meg kjøre Linux ganske sømløst i Windows 11. Jeg kjører helt vanlig Ubuntu, med fish som shell. Så bruker jeg starship og Windows Terminal for å få ting til å se skikkelig og ganske likt ut.

Jeg er ikke spesielt jålete på at ting skal være så veldig hardcore, så jeg bruker gjerne GitHub Desktop når jeg ikke husker hva jeg skal skrive i kommandolinja.

På hardware siden så nevnte jeg at jeg er opptatt av ergonomi. For å unngå mest mulig mus har jeg lært meg en del VIM—et godt tips der er Vim Adventures. Jeg har VIM plugins i nettleseren, VS Code og Visual Studio. Det gjør det håpløst å bruke utstyret mitt for andre, men det ser jeg mest som en fordel uansett. Jeg har også en del snarveier programmert i tastaturet som minner om vim, for eksempel så jeg har pilknapper på hjkl ved å holde CAPS LOCK ned. Småting som gjør at jeg slipper å bruke mus eller flytte fingrene fra det som i touch-metoden kalles “hjemmeknappene”.

I Visual Studio har jeg blitt utrolig glad i NCrunch som kjører tester kontinuerlig og kobler det hvilke linjer som kjøres. Jeg ble introdusert til det som standard verktøy i 4Subsea og det kommer jeg til å alltid ha en lisens på.

Jeg er også veldig glad i LINQPad, både til C# og F# kode. Skal man teste ut litt, leke seg litt eller demonstrere et konsept er det helt fantastisk . Det er også utrolig nyttig til å lære seg nye språkfeatures som kommer, siden det finnes masse snippets med eksempler man kan kjøre og leke seg med. C# utvikler seg så fort at jeg ikke henger helt med, men det gir meg i hvert fall muligheten til å prøve.

Så har jeg hele JetBrains pakka, med ReSharper sine profileringsverktøy. De er enkle nok til at jeg kan bruke dem når det trengs.

Til frontend arbeid så er NVM på Windows utrolig nyttig, selv om jeg ofte gjør en del node.js basert arbeid i WSL2 også. For eksempel måtte jeg bytte node.js-versjon for å redigere denne bloggposten, da kom det til nytte.

Hva er drømmeoppsettet ditt?

Det er vel ikke alt 14-åringen i meg peker på og får innvilget, så noe står igjen på ønskelisten.

Hadde jeg hatt et helt lydtett kontor ville jeg kanskje ønsket meg et skikkelig stereoanlegg som kunne få litt mer trøkk i lyden enn hodetelefonene klarer. Det kommer vel neppe til å skje i en tomannsbolig fra 1954.

Jeg har ikke skrevet om reMarkable, jeg ødlela den på NDC i år… Den er veldig fin til konsentrert tenkearbeid, eller å lese RFC-er og forskningsartikler på. Siden den er ødelagt er den ikke en del av flyten min nå. Jeg har bestilt en erstatning for den som gikk istykker, så jeg gleder meg til den kommer. Jeg har også brukt den til å tegne og snakke mens jeg forklarer ting. Et eksempel på hvordan jeg bruker den til å forklare kode finner du her.

Jeg kommer vel etterhvert til å gå for trådløse ortonormale tastatur, ala Dygma Defy. Og kanskje to, så jeg kan ha ett på kontoret og ett hjemme. Samtidig innser jeg at tastaturer er forbruk, jeg søler ostepop og cola i dem, så jeg venter til det ryker med å oppgradere.

Vannkjøling hadde muligens gjort det stillere på kontoret, og siden hodetelefonene er åpne og slipper inn noe lyd så kunne muligens det vært noe. Siden jeg for det meste jobber med laptopen fra jobben så har ikke det stått så høyt på lista.

Ellers har jeg lurt på å pusse opp hjemmekontoret, det har en slags gul strietapet fra forrige eier. Jeg er redd for at om det blir smakfullt vil samboeren min ønske å bruke det, så jeg velger foreløpig å ha det som det er så jeg får ha det i fred. Det hadde jo vært litt tøft å ta RGB belysningen videre og lage en skikkelig hule, men det er stort sett et programmeringsprosjekt som får prioritet over å gjøre noe med den fysiske verdenen.

På jobben har vi laget et mobprogrammeringsrom—der kunne jeg nok skrevet mye om drømmeoppsett, men det måtte blitt en annen bloggpost.

Båt-arbeid

Morgenkaffen på en Q-Max. Det er veldig annerledes å programmere styringssystemer. Det hender at jeg drømmer meg tilbake, men jeg er strålende fornøyd med å være ren softwareutvikler på hjemmekontoret likevel.