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.

Kommentarer (3)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Theo Andersen Carton

Hvis du synes at Erlang lyder spænende kunne du prøve at kigge på Elixir i stedet. Det er et nyere sprog der stadigvæk kører på Erlang VM'en (BEAM) og som er lidt mere moderne end Erlang, og har taget ting fra bla Ruby og Clojure med. (http://elixir-lang.org)

Ellers i Haskell kategorien, er Elm et andet spændende nyt sprog. Det er inspireret af og vidst nok også skrevet i Haskell, men er et lille statisk typed funktionelt sprog, som kompilerer til javascript og som også er begyndt at blive ret populært. Bla fordi det ligesom haskell er rigtig god til at inferere typerne, og er som et lille specielbygget sprog specifikt til frontend, og er lidt det eneste sted hvor man kan skrive kode til frontend og næsten være sikret ikke at få runtime fejl. (http://elm-lang.org)

  • 1
  • 0
Peter Makholm

Er det ikke det der hedder "Containers" i dag?

Nej.

Containers er 'chroot on speed', det vil sige traditionelle OS-processer med nogle tilføjelser der øger isoleringen. Det vil sige at istedet for at alle processer ser samme fil-hierarki, process-hierarki og netværks-resurser så kan man opdele processerne så nogle processer ser et sæt resurser og andre processer ser et andet sæt resurser.

Men containers deler én kerne og man kan ikke kører forskellige styresystemer i containers på samme maskine (dvs. Solaris har/havde noget de kaldte 'branded zones' hvor den blandt andet kunne oversætte Linux systemkald til Solaris systemkald).

Det jeg taler om er hardware-virtualisering i familie med Xen, VMWare og Virtualbox hvor man som sådan kan køre et helt andet OS, men i mit tilfælde vil jeg kun køre de services mit program skal bruge – lidt ala en microkernel specialiseret til netop mit formål.

Det er ikke indlysende at dette er en god ide. Det giver bedre isolering mellem processer, men det vil gøre det mere besværligt at dele resurser mellem processer. Det giver øget kompleksitet hvilket måske vil ødelægge fordelen i den øgede isolering. Men istedet for bare at læse om det ville jeg ønske at jeg havde tiden til selv at eksperimentere med det.

Der har lige været to artikler her på sitet, dels om Norske IncludeOS og dels om Microsoft Edge.

  • 1
  • 0
Log ind eller Opret konto for at kommentere
IT Company Rank
maximize minimize