De beste foredragene fra NDC

Her er innsiktene jeg tok med meg fra NDC-konferansen i Oslo – med interessante foredrag og læring innen sikkerhet, frontend, testing, optimalisering og kvantefysikk.

Oddvar Nordbø Øksendal

Trykk på taggene for å lese mer om hvor og hvordan vi benytter samme fag og teknologi

NDC (Norwegian Developers Conference) Oslo var i Oslo Spektrum hele fra 19-23 Mai.

Jeg var så heldig å få være med to dager 21-22 Mai, og i løpet av de dagene vært med på flere gode presentasjoner og spist for mye mat og søtsaker!

Alle foredragene hadde blitt satt opp for en time, og de fleste brukte denne tiden godt. Mellom hvert bolk med foredrag var det en pause på 20 minutter der en kunne finne seg mat og drikke og snakke med de som sto på stand for alle bedriftene som var der. Bouvet hadde også en egen stand siden de er partnere med NDC Oslo.

Starten på konferansen ble startet med et foredrag skrevet om på kode24: https://www.kode24.no/artikkel/advarer-mot-ai-avhengighet-svekker-laeringen/83119244. Ellers var jeg på flere foredrag som var veldig interresante.

Presentasjonene jeg var med på kan deles opp i fem kategorier:

  • Sikkerhet 
  • frontend 
  • testing
  • optimalisering
  • Kvantefysikk

Alle foredragene legges ut på NDC sin youtubekanal: https://www.youtube.com/@NDC

Sikkerhet:

An Intro to Kubernetes Hardening

Om foredraget

Veldig mye nytt for meg som ikke har noe erfaring med Kubernetes fra før. Jeg fokk et intrykk av at som med andre tjenester så er det ikke nødvendigvis de beste sikkerhetsfeaturene som er på i et oppsett som følger defaults i kubernetes, men det finnes flere gode som kan slås på. Ellers snakket hun også om å sjekke oppsettet sitt opp imot benchmarks fra CIS (Center for internet security), og at det finnes SAST verktøy som er spesifikt rettet mot containers.

From Ballots to Code: Exploring Election Security

Om foredraget 

Hallvard Nygård snakket om sikkerheten rundt opptelling av stemmer ved stortings og kommune/fylkesvalg her i Norge. Han gikk gjennom kort om hvordan valget fungerer før han gikk ned i hvordan sikkerheten i prosedyrene og systemene rundt opptellingen er.
Verdt å ta en titt om du er nysgjerrig på hvordan ting har blitt løst og om flere kommuner burde endre på deler av håndteringen av stemmeopptellingen.

Frontend:

Building Better Components — A Journey to a More Resilient Frontend

Om foredraget

Her fikk en gode tips til hvordan en kan gjøre komponenter som en vedlikeholder selv enklere å bruke, og bedre for en selv i viderutvikling. Tips jeg noterte meg spesielt var:

 

  • Gruppere props som brukes i komponenten, da spesielt booleans, men gjerne også andre ved å bruke union types og default verdier.
  • Alle komponenter burde føles like i bruk.
    • Ikke ha flere tilfeller av isLoading, loading, fetching. Bruk samme navngiving for alle komponenter for samme prop.
  • Ikke skriv om standard html props og attributes. Finnes det i standard html, heller utvid props til komponenten din fra standarden istedenfor å lage en egen prop for det.


A Deep Dive into Advanced TypeScript: A Live Coding Expedition

Om foredraget

En gjennomgang av mer avansert bruk av typescript, som kan være veldig nyttig for å få enda bedre type sikkerhet i frontend. En må også være obs på at en ikke gjør typene for avanserte slik at de blir uleselige. Listen under er de teknikkerne han gikk igjennom i presentasjonen.

 

  • Mapped types
  • Template literals
  • Exhaustive og never type
  • Infer
    • I hovedsak nyttig dersom en lager et eget bibliotek
  • Rekursjon
  • Viste bruk av rekursjon for å finne den indre typen av et nøstet objekt eller array.
  • Branded types
    • Typeguard, der en legger til en ekstra prop på typen for å gjøre den mer spesifikk. F.eks. å lage seg en int i typescript, eller en egen for norske telefonnummer, el.l..

For å tydeligjøre typene ble det brukt en Vscode-twoslash-queried (VSCODE Extension).

Testing:

82 Bugs I Collected in a Year You Won’t Believe Made It to Production

Om foredraget

Hvilke bugs er det som dukker opp oftest i et knippe applikasjoner som han testet, og hvordan kan en ungå de? En liste med morsomme og ødeleggende bugs som han har sett og blitt stoppet av. For det meste burde flere av disse bugsene ha blitt fanget opp av tester.

 

  • Hvor kritisk er bugs? 
  • Egen bok om å fikse flaky tester som han hadde skrevet fordi han ble plaget av at testene de hadde i appen var upålitelige.
  • Gjør det enkelt å rapportere bugs i applikasjonen din: Gjerne med et ferdig utfylt skjema som gir deg som utvikler all den informasjonen en trenger i en ferdig definert epost.
  • Om en holder på med internasjonalisering og i18 har den en egen metode for å logge om en tekstnøkkel ikke har blitt oversatt.
Bilde av slide fra foredraget

Are you writing valuable tests (2025 edition)?)

Om foredraget 

Hvordan kan en vite om testene en skriver har en verdi? Kokt ned til fire faktorer:

 

  • Protection against regressions
  • Resistance to refactoring
  • Fast feedback
  • Maintenance*
    • Av testkode

Foruten Maintenace er det bare mulig å oppnå to av de tre andre verdiene i høy grad, alt ettersom hvilken type tester en implementerer  (E2E, integrasjon, Unit).Han beskrev også noen oppskrifter for hvordan en skriver gode tester:

  • Følg en navnekonvensjon
  • arrange section
    • Factory metoder for mocks.
    • Unngå generiske setup metoder.
  • Kort Act section
  • Assert section:
    • Single unit behavior, custom assertions, snapshot testing
  • Snapshot
    • Best å ha som et tillegg
    • Gjemmer informasjon om hva som testes
    • Ikke så resistent mot refakturering
  • E2E og integrasjonstester
    • De har begge pros og cons som må tas høyde for.
  • Hvis koden er for vanskelig å teste, må kanskje koden også endres og bedres.

Optimalisering:

JavaScript Blazingly FAST! Lessons from a Game Engine

Om foredraget 

Erik har jobbet med å utvikle excalibur.js som er en spillmotor bygd i Javascript. Når han har holdt på med det har han måttet se etter hvordan en kan optimalisere og få koden til å kjøre raskere. Han startet med noen generelle tips, og gikk over til strategier for hvordan en kan bedre ytelsen.

De generelle tipsene var:

  • Burde jeg gjøre dette?
  • Sett ett mål for hvor raskt det skal bli.
  • Mål hvor raskt det er nå --> optimaliser den største fisken --> mål på nytt --> Gjenta.
  • Strategier:
  • Juks!
    • La det se ut som om ting er raskt, bruk cache, web workers.
  • Datastrukturer
    • Hvilken datastruktur passer best til det du skal løse.
  • Loop strategies
    • Hoist invariant, c-style loops, cache coherency
  • Data oriented designs
  • Coroutines, wasm, bruke gpu,
  • Memory garbage collector
    • Kan bruke snapshost i memory fanen i debugtools for å se om en lekker minne.
  • Husk å bruke return i useEffects for å rydde.
  • Ikke legg til props på et objekt i runtime.

Speedrun Into Massive Data: Using SIMD in C#

Om foredraget 

Foredragsholderen snakket om ulike typer spørringer en kan gjøre og med fokus på SIMD (Single Instruction Multiple Data).
For at det skal være nyttig å bruke SIMD må det være et stort problem og det må være paralelliserbart. Da vil SIMD kunne gi raskere spørringer.Flere tips på nettsiden hans: https://steven-giesel.com/

Sustainable Azure - Tools & Patterns for Carbon Aware Cloud Applications

Om foredraget 

Foredragsholderen var opptatt av at IT industrien står for store utslipp av CO2 på verdensbasis (4%) som er mer enn shipping og flyindustrien. Han var svært opptatt av og hadde flere gode tips til hvordan en kunne redusere karbonavtrykket vi som industri lager. De mest besparende tipsene vil også være med på å redusere kosten for å ha ting kjørende i Azure.

Jeg noterte meg for følgende liste:

  • Hardware
    • La de ha lengre levetid
  • Øke andelen av serveren som er brukt (Containers, app-service, az functions, etc...)
  • Skru av ubrukte tjenester
  • Skaler ned ikke bare skaler opp.
    • Skaler ned til null (Azure functions og container apps)
  • Veksle mellom function og app-service basert på lasten ved å bruke lastbalansering i Frontdoor.
  • Se på at tunge komputasjoner i scheduled jobs kjører når det er mye tilgjengelig strøm og nettleien på strøm er lav. [app.electricitymaps.com

Dersom en er mer interresert hadde han en egen nettside med flere tips: www.carbon-aware-computing.com

Kvantefysikk:

Quantum Physics for Software Developers

Om foredraget

Dette fordraget var på tross av nytteverdien et av mine høydepunkt!
Enkelt forklart om hvordan kvantefysikk funger på et lavt nivå vist med Q# som er et programmeringsspråk for kvanteprosessering. Det er en helt annerledes måte å tenke på vitenskap når det kommer til kvantefysikken.


Anbefales å ta en titt på!