Reisebrev fra NDC London

Da var tiden kommet igjen, på tide å dra på konferanse. Det har liksom blitt til at NDC i London er den konferansen jeg drar på. Hvorfor ikke Oslo, spør du kanskje? Nei, hvorfor det? Dit drar jo “alle”.

Christian Wattengård

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

Foto: Scott Helme / @scott_helme

(Forsidefoto: Scott Helme / @scott_helme)

De første gangene var det fordi “Hey! Det er London! Mye å gjøre og mye og se på fritiden!”. Men etter den første gangen, og i alle fall etter den andre gangen, så skjønner du at når du får nye inntrykk trykt inn i hjernemassen i nesten 10 timer hver dag så er ikke trangen til å gjøre noe særlig på fritiden veldig høy. Så hva er det da med NDC akkurat i London som er så attraktivt? Jeg vet rett og slett ikke. Jeg tror jeg har blitt et vanedyr, og da blir det bare sånn.   

Jeg bruker som regel å bestille det NDC kaller et “All Access Pass”. Det vil si at det er to dager workshop, og tre dager konferanse. Dette er en ganske dyr billett, så jeg føler meg egentlig ganske heldig og privilegert som får lov til å gjøre dette hvert år. Det gjør også at jeg prøver å spare litt penger der hvor det er mulig. Derfor bestiller jeg aldri inkludert hotell da dette er generelt dyrere enn å finne hotell selv. Jeg har funnet meg et favoritthotell for konferansen som jeg har brukt de tre siste gangene jeg har vært der. Dette er “Hub by Premier Inn, Westminster Abbey”. “Hub”-serien med hoteller fra Premier Inn kan sammenlignes med “P-Hotels” som fins i Norge. Det er små rom og enkel standard, men rent og pent. Samtidig prøver jeg å finne rimelige fly. Denne gangen endte jeg opp med Widerøe som ble billigst. Da var planen Trondheim – Bergen – London, og samme vei tilbake igjen.

Turen startet med rutebuss på søndag. Planen var egentlig å ta toget, men det var selvfølgelig buss for tog på grunn av jobbing på linja. Bussen ankom flyplassen i god tid og det var på tide å benke seg for å vente på flyavgang. Jeg hadde på forhånd spurt på slack hva bergenserne tenkte om den ruta Widerøe hadde lagt opp til med 35 minutter mellomlanding i Bergen. Det virket som om svarene delte seg i “det går helt sikkert greit” og “alt er forsinket uansett så det er 50/50 hva som skjer”. Vi var alle spente.

15 sekunder etter at agenten ropte opp starten av boardingen ble den brått avbrutt av agent nummer to. Vi fikk beskjed om at boarding ble utsatt i 10 minutter fordi det hadde blitt funnet en teknisk feil på flyet. 10 minutter utsettelse ble til 45 minutter, men før det hadde gått 15 minutter ble avgangen kansellert og jeg ble booket over på et SAS-fly via Stockholm. Det føles veldig feil å fly så langt øst for å snu og dra til London. Men hey, jeg har aldri vært i Stockholm.
Første reisedag endte opp med å bli en ganske lang dag. Jeg startet hjemmefra ca klokken 12:30 og var ikke framme på hotellet før 23:30 London-tid. Ganske nøyaktig 12 timer. Det ble ingen middag den dagen...

Mandag og tirsdag var det workshops. Jeg hadde valgt “Clean Architecture with .NET 7.0”. Workshopen ble holdt av Jason Taylor (@jasontaylordev). Vi gikk igjennom hvordan man kunne bygge opp en arkitektur for å holde orden i sysakene. Vi lærte blant annet hvordan vi kunne skille ut alt som har med domenet å gjøre i et eget prosjekt, hvordan vi kunne bruke MediatR for å implementere CQRS-strategien og hvordan vi kunne lage en “Behaviour-pipeline” ved å bruke MediatR. Dette var en av de mest interessante tingene vi lærte. Når man bruker MediatR til å håndtere den logiske flyten i systemet kan man sette opp en pipeline med “Behaviours” som alle kommandoer og spørringer må igjennom. Dette gjør at man kan implementere ting som logging og validering én plass for disse.

Onsdag var det klart for konferanse, jeg har lagt en liste over alle foredragene jeg så på slutten av denne posten. Jeg vil likevel trekke fram noen av de foredragene jeg likte best.

jimmy.jpg
Foto: Brandon Minnick / @TheCodeTraveler - Avbildet: Jimmy Engström / @engstromjimmy

Fra onsdag:

  • Keynote onsdag, “Tech For Good - Using AI to Make Tech More Accessible” med Alex Dunn
    Alex Dunn prater om hvordan han har brukt ting som ansiktsgjenkjenning, tale og bevegelsestolking for at alle skal ha muligheten til å spille spill. Han går igjennom hvordan han laget prototyper, som å få hjelp av Alexa til å spille Dark Souls med stemmen, og hvordan han har utviklet dette til en full kommersiell app med gjenkjenningsmodeller på klientsiden så man ikke trenger å sende all data til skyen hele tiden.
  • “.NET MAUI Blazor - Build Hybrid Mobile, Desktop, and Web apps” med Gerald Versluis
    En gjennomgang av .NET MAUI med fokus på hvordan Blazor passer inn i denne sammenhengen. Hvis man hovedsakelig har erfaring med å bygge web-applikasjoner kan man med denne integrasjonen bygge applikasjoner som fungerer på Android, IOS, macOS og Windows hvor gui er HTML/CSS og logikk er C#, helt uten javascript.
  • “Building modern applications with GraphQL 2023 and beyond in ASP.NET Core 7” med Michael Staib
    Dette var en av de mest interessante foredragene og GraphQL er en teknologi jeg kunne tenkt meg å prøve ut i noen prosjekter. Det er en helt annen måte å tenke datahenting til klienten på hvor man definerer relasjoner på serversiden og så henter ut disse via spørringer som – hvis du myser litt – ligner på JSON på klientsiden.
  • “Minimal APIs in ASP.NET 7.0” med Rob Richardson
    Et morsomt foredrag med en plot twist. Etter å ha vist hvordan man bygger opp et API med den nye minimal API-strukturen, fortsetter han å utvide det til man plutselig har endt opp med å re-implementere Web Api med minimal API. Moralen i foredraget er at minimal api er ikke laget for å erstatte noen av de eksisterende paradigmene i ASP.NET (MVC, Web Api, Razor Pages) men er der for å supplementere. Og det egner seg best hvis du har et bittelite api som har kun noen få endepunkter og ikke trenger alle trylleformlene rundt de tre andre paradigmene.

Fra torsdag:

  • “Apache Kafka in 1 hour for C# Developers” med Guilherme Ferreira
    Jeg visste ikke veldig mye om Kafka fra før, men Fireship på YouTube hadde nettopp sluppet en av sine “100 seconds with”-videoer om Kafka og det jeg lærte i den videoen var såppas interessant at jeg valgte å gå på dette foredraget. Jeg kan lett se plasser i prosjektene jeg jobber med hvor vi kunne brukt Kafka. Så dette blir nok en teknologi å følge og diskutere med teamet om vi kan ha nytte av i vårt prosjekt.
  • “Running Blazor in production, lessons learned” med Jimmy Engström
    I prosjektet mitt planlegger vi å bruke Blazor Wasm som frontend så dette var et interessant foredrag for meg. Han snakket om fordelen med å bruke samme språk i både frontend og backend, og hvordan dette hadde hjulpet hans team til å unngå kontekstsvitsjing og blitt raskere ferdig med konvertering av en gammel applikasjon.

Fra fredag:

  • Keynote fredag, “Why web tech is like this” med Steve Sanderson
    Steve Sanderson er en veldig flink foredragsholder og stilte denne gangen med et foredrag som tok for seg web tech fra Tim Berners-Lee's WorldWideWeb.app til dagens nettlesere. Hvorfor har javascript blitt standardspråket, og hva var utgangspunktet for browserkrigene rundt årtusenskiftet. En grei måte å starte fredagen på.
  • “The computer science behind colour” med Hayley Stewart
    Hayley tok oss med på en reise i fargenes verden. Vi lærte hvordan subtraktiv og additiv fargeblanding fungerer, og hvorfor CMYK er standardpalettet for skrivere, mens RGB er standardpalettet for skjermer. I et foredrag som inkluderte alt fra maling og lommelykter, til snittbilder av et øye...
hayley.jpg
Foto: Jessica Engström / @engstromjess - Avbildet: Hayley Stewart / @hayley_codes

Jeg møtte Bartosz fra Nord første dag, jeg visste han skulle nedover men vi hadde ikke samme reiserute. Jeg møtte også Jelena fra Øst, hun kjente igjen meg fra Slack, og det er jeg veldig usikker på om er en bra ting eller ikke 😆, men det var veldig hyggelig 😊.

På lørdag var det klart for hjemreise. Jeg begynte i løpet av uka å lure på om jeg begynner å bli for gammel for 5 dager med 8-10 timer læring i strekk, men det kommer jeg sannsynlig vis til å glemme igjen ganske fort. Hjemreisen var heldigvis ikke like hendelsesfull som utreisen, så etter å bannes litt internt av norsk toll-lovgivning som gjør at jeg er nødt til å hente ut bagasjen i Bergen, gå 150 meter, for så å legge den tilbake på båndet og gå igjennom en ny sikkerhetskontroll... Som forresten gjorde at jeg mistet den ene brusflaska jeg kjøpte på Heathrow fordi DEN får jeg jo ikke med meg igjennom sikkerhetskontrollen igjen... * kremt * ...så var jeg hjemme i Trondheim igjen til forventet tid. Hvor jeg slapp kollektivtrafikk fordi jeg er så bortskjemt at kona kom og hentet meg i drittvær og på dårlig føre.

Alt i alt så er fortsatt NDC’s konferansekonsept et jeg liker veldig godt. De har mye de samme foredragsholderene fra år til år, men dette er generelt flinke folk som kan å formidle det de snakker om. Det er derimot ingen vits å dra på flere NDC-konferanser innenfor et årsintervall, for det er mye de samme foredragene som går igjen.

Det var ikke noe klart tema på årets konferanse. Hvis jeg skulle trukket fram noe så var det tydelig at MAUI er noe som satses på fra Microsoft sin side, og så virker det kanskje som om mikrotjenester ikke er den sølvkulen som den kanskje har blitt framstilt som i tidligere år?

Til slutt, takk for at jeg fikk dra på konferanse. For en som liker å lære nye ting er dette en flott opplevelse, og en av tingene som gjør at jeg trives litt ekstra med jobben min. Selv om jeg begynner å bli for gammel for dette... Snart...

Foredragsliste:

  • Onsdag
    • Tech for good – Using AI to make tech more accessible, Alex Dunn
    • The next decate of software development, Richard Campbell
    • .NET MAUI Blazor – Build hybrid mobile, desktop and web apps, Gerald Versluis
    • Building modern applications with GraphQL 2023 and beyond in ASP.NET Core 7, Michael Staib
    • CSS techniques for Blazor developers, Ed Charbeneau
    • Minimal APIs in ASP.NET 7.0, Rob Richardson
  • Torsdag
    • Apache Kafka in 1 hour for C# developers, Guilherme Ferreira
    • Building games in .NET MAUI, Shaun Lawrence
    • Building cloud-ready applications in .NET, Layla Porter
    • Discussing backend for frontend, Nicolas Fränkel
    • Running Blazor in production, lessons learned, Jimmy Engström
    • Hostile JavaScript: Attacking and defending the browser, Todd Gardner
  • Fredag
    • Why web tech is like this, Steve Sanderson
    • Let’s code an incremental source generator with Roslyn, Stefan Pölz
    • Throw away your Xbox – The future of games is written in JavaScript, Opher Vishnia
    • The computer science behind colour, Hayley Stewart
    • What’s new in C# 11
    • Exciting new features in SQL Server for developers