Fem teknologier jeg gerne ville dykke ned i
Tænk hvis du kunne arbejde med lige hvad du ville i det næste år uden at skulle bekymre dig om at tjene penge. Hvad ville du lave?
Den første uge ville jeg nok ikke lave særlig meget ud over måske at diskutere IT-politik og digitalisering lidt mere end normalt. Men jeg ville ikke holde ud at lave ingenting i længere tid, så der skal ske noget.
Så hvad kunne jeg sætte mig for der om et år ville efterlade mig som en endnu bedre udvikler? Hvilke ting står der på min helt personlige Hype-liste?
Blockchain og Ethereum
Efter min mening er BitCoin en interessant løsning på et problem der ikke interesserer mig. At flytte et beløb i en valuta fra en konto til en anden er ikke noget der kan fastholde min opmærksomhed i meget mere end 10 minutter.
Derimod tror jeg at der er nogle spændende perspektiver i at anvende blockchain-teknologi som infrastruktur for mere generelle distribuerede systemer (læs: smarte kontrakter). Det ser ud til at Ethereum ville være et godt sted at starte.
Jeg tror stadigvæk at blockchain og smarte kontrakter er ret tidligt på hype-kurven, men jeg kunne godt tænke mig at få skrabet lidt i overfladen for selv at få lidt skidt under neglene.
Virtualisering af enkelt-programmer
Hardware-virtualisering giver et ekstra lag af isolering mellem de forskellige ting ens computer laver. Traditionelt benytter man det til at køre en helt kopi af et klassisk styresystem.
Efterhånden er det blevet en service som er en del af et moderne styresystem lige som filsystemet og netværksstakken. Dermed giver det også mening at se på om det giver mening at bruge denne isolering til bedre isolering af processerne i et almindeligt program.
Hvilke services har vi brug for i et virtualiseret program? Det minder lidt om at jeg forsøgte at lege med OSKit for mange år siden og jeg kunne godt tænke mig at se hvad der er sket siden da.
Fuzzing med American Fuzzy Lop
Jeg havde engang en kollega der fuzzede en server, jeg var udvikler på, og opdagede at den nogle gange crashede. Mit svar var at jeg ikke lige ville gennemgå tusinder af requests for at finde det der crashede serveren og derfor skete der aldrig noget. Derfor har jeg altid været lidt skeptisk over for fuzzing.
Det ser dog ud til at American Fuzzy Lop kan noget interessant. Dels er den smart så den instrumenterer at forskellige tilfælde crasher på forskellige måder og dels bruger den denne evne til at skabe et minimalt eksempel der får ens program til at crashe.
Desværre er det ikke helt trivielt at bruge AFL til at fuzze netværksservices, så der er en række interessante projekter.
Maskinlæring
Jeg har en vag ide om hvad maskinlæring dækker over, men det er langt fra klart nok til at jeg kan hive det frem som et værktøj når jeg står over for et nyt problem.
Umiddelbart er jeg noget skeptisk over lyksaglighederne ved maskinlæring. Mine fordomme går især på at vi ikke kan debugge systemer baseret på maskinlæring og at vi ikke kan sikre os mod at vi indbygger fordomme i vores systemer.
Inspireret af Jesper Stein Sandals blog vil jeg gerne et spadestik dybere ned.
Lære et nyt programmeringssprog
Det gør mig til en bedre udvikler at kende flere programmeringssprog i dybden. Ikke fordi jeg skal bruge flere sprog i min hverdag, men fordi at de programmeringssprog vi kender har stor betydning for hvordan vi løser et problem.
Jeg er ikke sikker på hvilket sprog jeg ville vælge, men umiddelbare kandidater ville være endelig at få gået i dybden med sprog som Haskell eller Erlang.
