Torkilds kode har hjulpet NASA på ISS

Koden til Torkild Ulvøy Resheim i Itema starta på TV-en i stua. Og endte opp i verdensrommet.

Ukas Koder Torkild Ulvøy Resheim i Itema sitter blant annet i styret til Eclipse Foundation. 📸: Privat
Ukas Koder Torkild Ulvøy Resheim i Itema sitter blant annet i styret til Eclipse Foundation. 📸: PrivatVis mer

Hvordan begynte du med koding? 👶

Jeg har alltid vært interessert i teknologi, og tidlig på 80-tallet var det mikrodatamaskinen som var den store greia, i alle fall for noen få av oss på den tiden. Så (heldigvis) kjøpte jeg en Commodore VIC-20 for alle konfirmasjonspengene i 1984. Fattern var ikke imponert. Det fulgte med en instruksjonsbok i BASIC som jeg brukte til å lære meg språket. Det var utrolig fascinerende – at jeg kunne skrive en tekst på maskina, og så skjedde det ting, jeg kunne lage lyd og animerte bilder!

Dette var før internett, så den store inspirasjonskilden var diverse engelskspråklige magasiner og bøker med programlistinger. Jeg brukte det meste av lommepengene mine på disse. Etterhvert som jeg gravde meg dypere ned i dette kjøpte jeg mer utstyr, blant annet en C1530 (en kassettspiller til lagring av filer) slik at jeg skulle slippe å begynne på nytt når modern koblet fra VIC’en for å støvsuge rundt fjernsynsapparatet. Jeg hadde ikke egen skjerm på den tiden og måtte bruke familiens TV.

Etterhvert fikk jeg råd til en Commodore 128 (med skjerm). Det var på denne jeg skrev mine første linjer med 6502 maskinkode. Det var også på denne at jeg begynte å lage mine egne ting. Jeg hadde flere prosjekter på gang, blant annet et spill hvor man skulle reise rundt i verdensrommet og tjene penger på handel. Det var nok inspirert av David Brabens "Elite". Det var her 6502 assembly kom til nytte, da det meste skrevet i BASIC gikk veldig tregt. Ambisjonene om å lage et kult spill var mye større en evnen, så det ble ikke så mye ut av det.

«Jeg var også innom en Amiga 1200 før jeg ble kjent med UNIX-systemene.»

Jeg var også innom en Amiga 1200 før jeg ble kjent med UNIX-systemene hos Trondheim Ingeniørhøyskoles EDB-linje. Der startet jeg studier i 1994, etter å ha oppdaget at oljebransjen helt hadde sluttet å ansette automatiseringsteknikere.

Jeg likte C, men C++ syntes jeg var rotete. Så da jeg tidlig i 1995 kom over noe som het Java Alpha Beans ble det starten på et langvarig forhold. Jeg har programmert i mye forskjellig, men det er fremdeles Java som er viktigst.

Dette er heldigvis ikke pulten min, men det er her jeg jobber akkurat nå. Oppsettet til vanlig er stort sett det samme. Jeg liker best å jobbe med kun én skjerm, og bruker iPad-en til å tegne og ta notater. Dokumentene er synkronisert til Mac-en, slik at jeg kan lime inn skjermbilder og skrive tekst, forteller Torkild Ulvøy Resheim. 📸: Privat
Dette er heldigvis ikke pulten min, men det er her jeg jobber akkurat nå. Oppsettet til vanlig er stort sett det samme. Jeg liker best å jobbe med kun én skjerm, og bruker iPad-en til å tegne og ta notater. Dokumentene er synkronisert til Mac-en, slik at jeg kan lime inn skjermbilder og skrive tekst, forteller Torkild Ulvøy Resheim. 📸: Privat Vis mer

Hva jobber du med akkurat nå? 🛠️

Akkurat nå jobber jeg med forberedelser til styremøte i Eclipse Foundation, hvor jeg er valgt inn til å representere litt over 200 medlemsbedrifter. Disse leverer produkter og tjenester basert på Eclipse-teknologi. Mange kjenner sikkert Eclipse Java IDE, men organisasjonen tar også hånd om rundt 300 andre prosjekter inkludert Jakarta EE (fhv. Java EE).

Første dagen av møtet starter om noen få timer, så jeg ser raskt over alle dokumentene om det er noe jeg har gått glipp av tidligere. Det handler mye om lisenser, intellektuelle rettigheter, økonomi og ikke minst å gjøre hverdagen enklere for de litt over 1.300 teknologene som jobber på disse prosjektene.

Når jeg er ferdig med denne uka skal jeg tilbake til oppdraget mitt hos Equinor hvor jeg blant annet hjelper til med å utvikle et system for kontinuerlig simulering av marine operasjoner på regneklynger. Sentralt her er HPC, Java, Python, "edge-computing", tidsseriedatabaser, og modelldrevet utvikling.

Hvordan ser en typisk arbeidsdag ut for deg? ☕

Jeg tar gjerne en kopp kaffe mens jeg går i gjennom e-poster og notater for å se om der er noe som må følges opp – prøver å planlegge dagen og de nærmeste dagene.

Dernest er det enten produksjon av kode eller forskning. Det kommer an på hvor jeg er hen i oppdraget. Det blir naturlig nok mye lesing, spesifikasjon og prototyping til å begynne med og mer produksjon av kode etter hvert.

Etter at den vanlige arbeidsdagen er over blir det å se på åpen kildekode. I år som i fjor leder jeg programkomiteen for EclipseCon Europe, som er en konferanse over fire dager med litt over 600 besøkende til Ludwigsburg, Tyskland. Spesielt utvelgingen av programmet tar en del tid, ettersom vi får inn mange flere forslag enn hva vi kan bruke.

Jeg er også mentor for et par prosjekter, og "committer" på et par andre. Dette er spennende og lærerikt så det er vel verdt de litt over 100 timer jeg bruker i året på disse tingene.

- Hver andre tirsdag i måneden møtes konsulentene i Itema til faglig forum. Her gjør vi alt fra å fortelle om oppdraget man er på, hva slags teknologi og hvordan man jobber, til å programmerere roboter i MicroPython, forteller Torkild Ulvøy Resheim. 📸: Privat
- Hver andre tirsdag i måneden møtes konsulentene i Itema til faglig forum. Her gjør vi alt fra å fortelle om oppdraget man er på, hva slags teknologi og hvordan man jobber, til å programmerere roboter i MicroPython, forteller Torkild Ulvøy Resheim. 📸: Privat Vis mer

Hva synes du er de mest spennende språkene, rammeverkene eller teknologiene akkurat nå? ✨

Det skjer mye relatert til Cloud Native Java for tiden. En relativt nykommer er Quarkus.io som lar deg skrive Java-applikasjoner med veldig kort oppstartstid, rask respons og svært lavt minnebruk.

En annen interessant sak er GraalVM som er uavhengig av, men også inngår i Quarkus. Dette er en virtuell maskin som lar deg kjøre JVM-språk som Java, Ruby, Scala og Kotlin på samme VM som LLVM-baserte språk som C og C++.

Eclipse Sprotty er et kjekt rammeverk for å lage diagrammer i nettleseren som man bør ta en titt på om man lager slikt.

Hva er du mest stolt av å ha laget? 🏆

Jeg er kanskje mest stolt av ha jobbet på Mylyn Docs, et Eclipse-prosjekt som blant annet brukes til å generere HTML ut i fra flere vanlige wiki-formater som MarkDown.

«Det viste seg at de hos NASA brukte dette verktøyet til å produsere dokumentasjon som skulle være med astronautene opp til ISS.»

For noen år siden kom det et praktisk spørsmål på mailing-lista tilknyttet denne genereringen. Etter at forklaring ble avlevert, kom det en oppfølgingsmail fra vedkommende. Det viste seg at de hos NASA brukte dette verktøyet til å produsere dokumentasjon som skulle være med astronautene opp til ISS. Det var veldig kjekt og en påminnelse om hvor viktig åpen kildekode kan være.

Men det prosjektet som har hatt mest personlig betydning, var nok "VDF Tools". Rett etter ingeniørhøyskolen kom jeg til å jobbe med et 4GL-språk som hadde temmelig håpløse verktøy etter min mening. Jeg var overbevist om at jeg kunne gjøre det bedre. Så jeg utviklet en IDE basert på Eclipse Platform for å støtte dette språket. Det var veldig mye vanskeligere enn jeg hadde sett for meg. Men det manglet ikke på pågangsmot, alternativt evne til å innse egne begrensninger. Jeg lærte mye nytt, ettersom alt i fra parser til UI måtte implementeres. Det ble mye ANTLR til parseren og studering av kildekoden til Eclipse Java IDE for å lære hvordan ting ble gjort.

Jeg brukte IDE'n selv på dagtid og kveldene på å fikse bugs og legge til nye funksjoner. Etterhvert ble den såpass brukbar at jeg begynte å selge lisenser og tjene litt penger på det. Jeg innså etterhvert at markedet var for lite – det er fremdeles ikke mange som programmerer i Visual DataFlex. Så jeg bestemte meg for å legge ut hele greia som åpen kildekode, og la ut en melding om dette på en mailingliste. Det kom prompte svar fra et amerikansk firma som hadde investert mye i DataFlex om at de ønsket å kjøpe kildekoden. Vi ble enige om en pris og de fulgte opp med å leie meg inn som konsulent til videreutvikling.

Fra det punktet har det gått slag i slag; jeg byttet jobb, brukte omtrent fire år på å bygge en nok en Eclipse-basert IDE (for Atmel Corporation) og har de siste ni årene jobbet som konsulent hos Itema.

Hva er det vanskeligste ved å være utvikler? 🤷

Å komme i flytsonen. Man kan få gjort mer på et par timer under optimale forhold enn på en hel vanlig dag.

Hva synes du norske utviklere bør bli flinkere på? 🙋

Jeg synes norske utviklere generelt er veldig flinke, men bør kanskje jobbe mer med formidling. Man lærer seg å se det man jobber med fra en annen synsvinkel, og så er det interessant å høre hva andre gjør og hvordan. Det er ikke alle som liker å stå foran et publikum, men det er en nyttig øvelse og man kan begynne i det små – kanskje bare presentere for gruppa si.

Og så kan de godt ble flinkere på å bruke eksisterende (åpen) teknologi. Det er for eksempel merkelig å se hvor mange som har implementert egne modulsystemer i Java når OSGi har vært tilgjengelig i 19 år.

Hva liker du å gjøre når du ikke jobber? 🕹️

Når jeg ikke gjør noe sammen med familien lar jeg jobben smitte litt over på fritiden – så jeg har noen få hobbyprosjekter jeg jobber med. Ellers tar jeg meg av og til tid til en runde med Europa Universalis IV eller Civilization VI, eller hvis været er bra, en løpetur.