Oversikt konferanse
>

Dagbok fra NDC Oslo 2017

Bjørn Herve Moslet 
2. juli 2017

En konferanse som NDC kan være både morsom og lærerik, men også ganske slitsom. Det er lange dager, mange inntrykk og mye mat. Jeg har forsøkt å oppsummere konferansen for min del, samt gi et lite sammendrag av de sesjonene jeg deltok på.

Onsdag 14. juni

3.37: Bråvåkner av naboene som har nachspiel. Jeg må stå opp om en time og hadde helst sett at jeg kunne sove den timen. Hvem visste at det var så mye bass i DDE-låter?

5.10: Her sitter jeg i taxien på vei til Værnes. Jeg skulle helst vært i senga nå for litt sårt tiltrengt skjønnhetssøvn. Jeg misunner kollegene mine som sover, men om noen timer misunner de meg.

5.20: Må forsøke å finne de sesjonene jeg vil delta på. Mobil-appen til NDC lar meg ikke markere de jeg plukker ut. Den mest åpenbare og nyttigste featuren mangler altså og appen er i praksis ubrukelig. Dagens første lærdom i softwaredesign kom nå. Heldigvis kom Bouvet til unnsetning og lagde en app som løste problemet.

5.26: I motsetning til DDE, kan ikke taxien kjøre E6 pga. veiarbeid og vi må ta en avstikker via tettstedene på vei til flyplassen. De svingete veiene, i kombinasjon med å ta notater på mobil, gjør meg smått bilsyk.

6.01: Jeg sitter på flyplassen og leser videre på agendaen mens jeg venter på boarding. Årets hotteste buzzword er utvilsomt “serverless”.

6.22: Og tre av sesjonene første dag lover å være “for fun and profit”...

8.02: Ankom Oslo Spektrum.

8.10: Mission 1, hente hettegenseren slik at hackeruniformen er på plass. Nå trenger jeg bare en skjerm med grønn skrift, så kan NSA ta seg en bolle.

8.14: Mmm bolle. Mission 2, frokost! Heldigvis er det stands med mat og kaffe her.

8.35: Mission 3, finne Bouvet-standen. Den er ikke betjent for øyeblikket. Årets tema/konkurranse er “Emojitition”, men det vet jeg ikke hva er ennå.

DSC_2905

8.41: Har hilst på de fleste andre Trondhjemerne nå.

8.51: Sushi!

9.00: De spiller en variant av Dire Straits’ “Money for nothing” på full vreng der teksten selvfølgelig er endret. Åpningsstrofene er “I want my NDC” og resten brukes til å presentere de mest kjente foredragsholderne. Videoen ligger på YouTube.

9.04: Keynote med Dylan Beatti; “Are there any questions?”. Han er lett å kjenne igjen i hatt, skinnvest, Def Leppard t-skjorte, boots og hestehale. Han oppsummerer datahistorien fra Babbage og Lovelace til Internett og GPS-satellitter. “Are there any questions?” viser til viktigheten av å stille spørsmål og å lære nye ting. Nettopp derfor vi er på NDC.

10.20: Implementing authorization in web applications & APIs med Brock Allen og Dominick Baier. Temaet var et ASP‌.NET Core Authorization API de er i ferd med å utvikle. Det er helt ikke ferdig og er derfor ikke tilgjengelig online ennå. Det ser lovende ut, men jeg må se mer på det før jeg kan konkludere. Deres egen konklusjon var “lag ditt eget rammeverk”, fordi hver applikasjon er forskjellig og det er vel en erfaring de fleste deler.

11.40: What’s new in ASP‌.NET Core 2.0 med Damian Edwards og David Fowler, som én av oss døpte “Knoll og Tott”. Som vanlig viste de ting som nesten er ferdig og som nesten virker. En del ting er nytt fra versjon ASP‌.NET Core 1 og mye er nytt fra MVC 5. Den største nyheten er kanskje Razor Pages som lar deg bruke Razor-syntaks og skrive en webapplikasjon uten en controller i bunnen.

13.40: Functional techniques for C# av Kathleen Dollard. Dette var en fin innføring i begreper brukt i funksjonell programmering, i tillegg til at hun illustrerte med konkrete eksempler. For mange er nok veien til å programmere funksjonelt å bruke C# som inngangsport. For meg var dette utvilsomt dagens beste presentasjon.

15.00: From monolith to serverless av Rajpal Wilkhu. Her var det mer prat enn kode og hovedsakelig deling av erfaringer. Teamet hans har begynt å flytte en legacy-applikasjon til Amazon Lambda, som er AWS’ serverless-implementasjon. Så langt har de laget nytt (serverless) GUI til den gamle backenden. Det er altså mye som gjenstår og for tidlig å kalle forsøket en suksess. Han henviste flere ganger til den nye måten å jobbe smidig på, beskrevet av de fire prinsippene Make people awesome, Make safety a prerequisite, Experiment and learn rapidly og Deliver value continuously. Les mer på http://modernagile.org

16.20: C#7 med Jon Skeet. Jon viste de fleste nye mulighetene i C#7 og for meg var det derfor egentlig ikke noe nytt. For de som ikke har tatt i bruk C#7 ennå så var det en fin innføring. Han hadde på seg en t-skjorte med teksten “code like a girl”. Hvordan koder jentene? Stort sett som gutta, men det er så alt for få av dem. Verden blir mye bedre om ikke bare halvparten av de smarte hodene bidrar. En positiv trend er at disse konferansene får merkbart flere kvinnelige deltakere og foredragsholdere år for år.

DSC_3247

17.40: ASP‌.NET Core Futures Roadmap med David Fowler og Damian Edwards Jon Calloway. Damian Edwards var ikke i form til å delta på denne sesjonen og Jon Calloway steppet inn i stedet. Det gjorde at David Fowler fikk frie tøyler til å prate om det han ville; også mye han sikkert ikke burde nevnt. Sesjonen var ikke helt hva jeg så for meg. De pratet mye om ytelse i webserveren og ting som er under panseret (libuv, websockets osv) og lite om hva vi vanlige utviklere vil komme borti. Det var likevel et par-tre kule ting jeg merket meg:

1. Span<T> er en array-klasse som kan peke til både managed og unmanaged minne og som kan forbedre ytelsen i en del scenarier.

2. CoreRT er en runtime som støtter native kode for Windows, Linux og macOS.

3. Http2 kommer til Kestrel.

19.08: Sitter på hotellrommet i sjuende og øverste etasje. Det er takvindu, så det er litt som en penthouseleilighet. Men rommet er lite og slitent og minner litt om en fengselscelle. Men det var i det minste billig og er i kort avstand fra Oslo Spektrum.

20.15: Etter litt kjapp kommunikasjon på Slack endte tre av oss fra Trondheim opp på indisk restaurant sammen et par konsulenter fra Bouvet Haugesund. God mat og hyggelig selskap.

22.46: Tilbake på hotellet og jeg forsøker å planlegge morgendagen. Det er alt for mye interessant å velge mellom og noen vanskelig valg må tas.

Torsdag 15. juni

8.33: Traff våre venner fra Haugesund og slo følge til Spektrum.

8.57: For å spare tid droppet jeg hotellfrokosten og panikkspiste i Spektrum i stedet.

9.00: What is .NET Standard? av Adam Ralph. Presentasjonen var forvist til et avlangt og ganske uegnet rom, men det var stappfullt så temaet var tydeligvis interessant for mange. Dette var en nyttig innføring i hvor .NET Standard passer inn i alle de andre forvirrende begrepene (.NET Framework, .NET Core, ASP‌.NET Core, .NET Desktop, .NET Platform). Kort fortalt er .NET Standard et sett med APIer plattformene (Framework, Core, Mono, Xamarin osv.) kan implementere og din og andres kode (f.eks. på Nuget) kan basere seg på. De ulike plattformene bruker type forwarding for å henvise fra standarden til sin egen, faktiske implementasjon. Slidene hans ligger på nett.

10.20: Deep dive into Git av Edward Thomson. Presentasjonen holdes interessant nok av en Microsoft-ansatt. Microsoft har tidligere hatt et veldig anstrengt forhold til open source programvare (ord som "kreftsvulst" ble brukt), men flyttet nylig hele Windows kildekoden til Git. Som en av de siste sju TFS-brukerne i verden er det nyttig for meg å lære mer om Git, i tilfelle jeg får bruke det selv en gang. Det var et veldig interessant foredrag som ikke var noe n00b-kurs i Git, men forklarer hvordan Git funker under panseret. Det passer derfor også for de som er godt vant med bruken av Git.

11.40: Brave new .NET av Mark Rendle. Denne presentasjonen gjorde ikke så stort inntrykk, selv om Mark er en svært dreven foredragsholder. Han pratet litt om ASP‌.NET Core på Docker. Det nyttigste var kanskje at han anbefalte App Metrics for å måle ytelse og feilrate i webapplikasjoner.

13.28: Har spist lunsj nr. 2 og løpt rundt på leting etter kolleger.

13.37: Yes! Måtte bare få med akkurat det tidspunktet.

DSC_2881

13.40: Tools and Technical Analysis of the Hacking in Mr. Robot: Is the Hacking “Hollywood” or Real Life? av Tiffany Rad. Hun underviser i sikkerhet/hacking ved et universitet og jobber med samme tema for bilindustrien. Et whitepaper hun skrev om hacking av Siemens automasjonssystemer, brukt i bl.a. fengsler, ble brukt i TV-serien Mr. Robot. I presentasjonen stiller hun spørsmål ved hvor realistisk TV-serien er. Konklusjonen er “veldig.” Jeg anbefaler den til alle hackere og hackerinner. PS, ikke hack i virkeligheten!

15.00: Abusing C# more med Jon Skeet. Han viste litt misbruk av C#, men det ble egentlig ikke så crazy som jeg håpet. Det tyder kanskje på at C# er et ganske sinnsfriskt og gjennomtenkt språk i motsetning til en del andre. Høydepunktet var vel Unicode-tegnet for “mongolian vowel separator”. I mangel av noe annet så jeg sper på med noen Jon Skeet facts i stedet:
Jon Skeet can divide by zero.
Jon Skeet does not use exceptions when programming, he has not been able to identify any of his code that is not exceptional.
When Jon Skeet's code fails to compile the compiler apologises.

16.20: It’s NDC - but not as we know it med Dylan Beattie og Mark Rendle med gjester. Her var seks personer samlet for å diskutere dagsaktuelle tema innenfor teknologi og politikk. Temaene var forberedt på forhånd, men utover det lot det meste til å være på sparket. På slutten av dag to av konferansen begynner jeg å bli sliten i hodet. Da passer det fint med noe litt lettvekts. Jeg satt på første rad, midt foran scenen og fryktet at jeg skulle duppe av, noe som hadde vært litt pinlig. En time med prat om løst og fast ga meg relativt lite utbytte, men det burde jeg nok forventet.

17.23: Ølen er servert. Kun én sesjon igjen før den tradisjonelle torsdagsfesten.

17.40: .NET Rocks! panel discussing: going serverless med Carl Franklin og Richard Campbell. Med seg hadde de gjestene Lynn Langit, Mathias Brandewinder og Rob Conery. De hadde erfaring med hver sine serverless-teknologier (AWS Lambda, Azure Functions og Google Firebase). Sesjonen ble spilt inn og kommer snart som .NET Rocks! podcast.

18.29: Party!

18.59: Snublet borti en av kollegene mine for første gang i løpet av konferansen; hvor har han gjemt seg i to dager? Etter hvert dukket også to andre fra Bouvet Nord opp. Det er matkø ved alle matstasjonene.

NDC har tiårsjubileum (første gang var i 2008) og det feires med stor marsipankake. Hettegenseren vi fikk på onsdag har “10 years” skrevet i binær på brystet. Å dekode binærtall er bare ett eksempel på morsomme ting vi kan gjøre mens vi venter på maten.

19.16: Sååå lang matkø. Nå har også enda flere fra Trondheim dukket opp. Vi får oss til slutt noe mat.

19.37: Spectacular failures. Noen av NDC-foredragsholderne entrer podiet for å fortelle om de største tabbene de har gjort. De fleste tabbene gikk ut på å slette store mengder data. Rommet er helt fullt og jeg fikk ståplass bak et par basketspillere.

20.57: Endelig kake!

21.00: Pub quiz med Mark Rendle og Dylan Beattie! Laget vårt bestod av de fleste utsendingene fra Trondheim, med det lite kreative navnet Bouvet Nord. Etter en god start så gikk det nedover og jeg tror det ble sjetteplass til slutt. I mellomtiden spille husbandene til Bekk og Bouvet, men ikke på hovedscenen, så de hørte vi ikke dessverre ikke.

DSC_3076

22.13: To av oss konkluderte med at morgendagen blir lang nok og at det ikke skader å finne senga i rett tid. Vi traff Ylva, som har tatt disse bildene, da vi var på vei ut døra og vi slo følge med henne til trikkeholdeplassen på vei mot hotellet.

22.15: 80-talls coverbandet Love Shack spilte i år, som i fjor. Dette er egentlig bare en antagelse fordi jeg gikk et par minutter før de skulle gå på scenen.

22.33: Etter å ha lett Oslo rundt etter snacks, uten hell, var vi tilbake på hotellet samtidig som våre haugesundske venner.

Fredag 16. juni

7.13: Regnet har kommet til Tigerstaden. Nå begynner det å bli hjemmekoselig.

8.37: Ankom Spektrum.

8.41: Frokost. En blir litt matlei etter noen dager med konstant servering.

9.00: Hack your career av Troy Hunt. Han snakker vanligvis om sikkerhetsrelaterte tema, men denne gangen forsøkte han med soft skills. Troy pratet om ting du kan gjøre for å bygge karriere, som blogging, prate på konferanse/brukergrupper, bidra på Stack Overflow. Alt var basert på hans egne erfaringer fra tiden han jobbet i Pfizer til han i dag er selvstendig som kursholder m.m.

10.20: Beyond step by step debugging in Visual Studio av Tess Ferrandez. Veldig praktisk tilnærming til debuggingsteknikker mange av oss ikke kjenner til. I stedet for å bruke Visual Studio til å steppe gjennom koden viste hun hvordan man kan se på crash/memory dumps for å debugge problemer. Mye av presentasjonen handlet om Windbg, et kraftig verktøy som har bratt læringskurve. Minnedump kan du lage ved å høyreklikke på en prosess i task manager, evt. kan de genereres med verktøyet ProcDump. Tess viste også Debug Diagnostic Tool (DebugDiag) og hvordan du kan åpne en memory dump i Visual studio (File/Open). Hun nevnte også Netling for lasttesting. Dette var utvilsomt det umiddelbart nyttigste foredraget på NDC for min del. Slidene hennes finnes på Slideshare.

12.40: Scaling serverless F# with Azure Functions med Mathias Brandewinder. Dette var fra min side en måte å slå to buzzwordfluer i én smekk. Endelig en presentasjon av serverless som viste kode! Eksempelet var veldig enkelt (hente valutakurser fra Yahoo og poste dem på Slack hvert femte sekund), så det ga ikke veldig mye innsikt i hvordan man skulle lage en “ordentlig” applikasjon i Azure Functions. Mathias viste hvordan han kodet på lokal PC (VS Code) før deploy (copy+paste) til skyen. Den viktigste lærdommen er at serverless er veldig umodent med tanke på utvikling i team, bygging, deploy, kildekontroll, tester osv. Ting vi tar for gitt i andre teknologier.

13.04: Mesteparten av maten er borte, slik det pleier å være siste dagen av konferansen.

13.25: Besøkte Bouvet-standen. Vinner av konkurransen var nettopp kåret. Konkurransen, Emojitition, var å etterligne emojis best mulig.

13.40: Building a Serverless API With Google, Firebase and PostgreSQL av Rob Conery. Han viste hvordan han har implementert en enkel nettbutikk vha. disse teknologiene, samt Node. I motsetning til de andre presentasjonene av serverless jeg så på NDC så var dette en ferdig implementasjon, selv om det er en veldig liten nettbutikk. Rob nevnte en IoT-gründerbedrift som fikk de månedlige kostnadene sine økt fra $25 til $2000 da Google endret måten å beregne forbruk på. Det er derfor viktig å lage løsningen slik at man har en exit-strategi om noe slikt skulle skje. Alle serverless-teknologiene har sterk grad av låsing til en gitt leverandør.

15.00: #ToyFail: Is your child safe from the Internet of Things? av Kristian Wille og Martin Gravråk (fra Bouvet!). Dette var et oppdrag Bouvet fikk fra Forbrukerrådet der de undersøkte sikkerheten i lekene i-Que og My friend Cayla. Kort fortalt er sikkerheten helt fraværende og utenforstående kan bruke lekene både til å avlytting og å prate til barnene. De er også proppfulle av Disney-reklamer som hjernevasker ungene til å bli ønske seg Disney-filmer osv. Creepy, men det inspirerte også til å forsøke å hacke alt av IoT-dingser man kommer over.

DSC_3285

16.20: Sex robots av Kate Devlin. Jeg vet ikke om jeg skal le eller gråte av dette, men det er nok noen år til robotapokalypsen inntreffer, slik enkelte har spådd. Men det er kanskje best å holde seg unna "My girlfriend Cayla".

Det mer interessante er hvordan roboter kan tas i bruk innen helse- og velferdsteknologi, et område hvor det allerede pågår produktutvikling med alt fra telenærværsroboter til terapeutiske seler.

17.46: Sitter på flytoget og er passe trøtt. Det er mange inntrykk som skal fordøyes. Det var mye snakk om containere (Docker (Swarm) og Kubernetes). Det ser ut til å være de populære alternativene, men det som er nytt i det siste er støtte for Docker på Windows. Det som for noen år siden var hot på JavaZone har nå tatt veien til NDC.

19.38: Endelig ombord i flyet. Flere flyavganger var forsinket og det var lenge spenning om hvorvidt vi kom oss avgårde til planlagt tid. Vi fra Trondheim var fordelt på to forskjellige avganger. De som reiste med Norwegian ble rammet av forsinkelsene, mens resten berget. Det endte med at vi landet omtrent samtidig.

20.11: Jeg tenker videre på trendene på konferansen. Serverless er utvilsomt det største nye, med tilbud fra alle de store skyleverandørene. AWS har Lambda, Azure har Functions og Google har Firebase. Hvilke språk og øvrige teknologier de støtter, samt hvordan de ellers passer inn sammen andre tjenester varierer litt, men prinsippene ser ut til å være like. Trass navnet er det selvfølgelig en server der, noe som ble behørig påpekt gjennom hele konferansen. Som utvikler skriver du en liten klump med kode som hives ut i skyen og trigges av en eller annen hendelse (http-kall, klokkeslett o.l.). I dag fremstår det hele som umodent på mange måter. Ja, teknologien virker og folk bruker den, men verktøy, testing, jobbing i team, kildekontroll, bygging og utrulling er kanskje ikke helt der vi er vant med. Mye av det som ble vist var på nivået at vi sitter i nettleservinduet og hacker rett i produksjon. Teknologien har utvilsomt sine fordeler, men er neppe egnet for alle bruksområder.