Techorama takeaways - Walkthrough door de leukste talks - Dag 1

De TechDays zijn dood, leve Techorama! De eerste editie van dit opgefriste evenement vond plaats in Pathé Ede en natuurlijk was Infi erbij. Twee dagen lang praatjes over Azure, .NET en DevOps. Weten wat Martijn en Roeland is opgevallen?

The Intelligent Cloud

Scott Guthrie
We beginnen de dag met een keynote van Scott ‘Red Shirt’ Guthrie, die zoals te verwachten het Azure-evangelie predikt. Erg tof is de Azure Data Explorer. Daarmee zijn grote datasets (in de orde van terabytes) razendsnel te query’en.

Tussendoor komt Donovan Brown vertellen over Azure Pipelines. Dat wordt lekker Amerikaans – met veel hyperbolen - gepresenteerd. Als een soort IT-Oprah Winfrey doet hij ons maar liefst tien Azure Pipelines cadeau, for free! Donovan zelf lijkt nog het meest onder de indruk van deze uitdeelactie, want het applaus zwelt pas aan op zijn commando: “…You can clap now”. De zaal heeft duidelijk meer behoefte aan koffie op dit tijdstip.

Wat niet mag ontbreken op een Microsoft-praatje is een demo van de Face API. Gezichtsherkenning hebben de jongens uit Redmond aardig onder de knie. Wel heeft de software vaak de neiging leeftijden te hoog in te schatten. Voorlopig maar niet inzetten bij alcoholcontroles dus.

En tot slot maakte Guthrie nog melding van het nieuwe Microsoft Learn platform, waar leertrajecten over vele Microsoft onderwerpen te vinden, inclusief mogelijkheden tot hands-on experimenteren met behulp van de Azure Cloud Shell.

What's new in C# 7.0 and beyond?

Bart de Smet
Vervolgens gaf Bart de Smet een interessant praatje over nieuwe language features in C# 7.0 t/m 7.3. Enkele dingen die bijgebleven zijn:

  • Het is mogelijk elk type zichzelf te laten "deconstructen" naar een tuple m.b.v. een public void Deconstruct(...) method. Voorbeeld:
  • Het verschil tussen het definiëren van een lokale functie m.b.v. Func<> versus de nieuwe local function syntax. Bij Variant1 wordt er onder water een nieuw object aangemaakt dat gealloceerd wordt op de heap en dus door de garbage collector ook weer opgeruimd moet worden. Bij Variant2 gebeurt dat niet.
  • Het was al mogelijk om te zorgen dat een type of member alleen benaderd kon worden vanuit dezelfde assembly (internal) of vanuit afgeleide classes, ook in andere assemblies, (protected). Het is nu ook mogelijk om te zorgen dat een type of member alleen vanuit dezelfde assembly benaderd kan worden door code in dezelfde class of een afgeleide van die class, met de keywords private protected.
  • Veel mogelijkheden tot performance optimalisatie rondom structs en het doorgeven / teruggeven van waarden by reference m.b.v. keywords ref en readonly.

Angular Application Testing Outside the Church of TDD

Chris Klug
Ik heb een zwak voor dwarsdenkers zoals Chris Klug. Een praatje over ‘testing outside of the TDD Church’? Daar moet ik heen!

Chris begint met de verdediging dat hij TDD echt wel snapt, maar dat het voor hem niet werkt. Liever bedenkt hij eerst het grote plaatje dan dat hij zich richt op de details. Voor hem betekent dat: Ik begin met implementeren, falende tests schrijf ik later wel. Ook het verschil tussen een unit test en een integration test wordt aangehaald. Het laat zich raden welke van de twee Chris liever schrijft (hint: Het zit hoog in de testing pyramid).

Belangrijkste les uit het praatje is dat Wallaby.js – een continuous testing tool voor JavaScript – fraai werkt. Zeker de moeite waard om eens uit te proberen.

Microservices Development Sanity with Azure Dev Spaces

Lars Klint
Microservices Sanity trekt volle zalen, het is dringen voor een goed plekje. Wat precies het probleem is dat Dev Spaces probeert op te lossen is onduidelijk, maar het feit dat er geen Ops-kennis voor nodig is, spreekt aan. Lars Klint toont ons dat met slechts 3 Azure commands zijn setup voltooid is.

Dev Spaces doet onder de motorkap veel routing magic, wat helaas niet te demo’en is. Ook het feit dat de tooling nog in preview is, levert soms wat ongemakkelijke wachtmomenten op tijdens de presentatie. Wel knap dat ondanks dit alles er toch een live demo gegeven wordt.

Meest prikkelende opmerking van de spreker: Beschouw de Azure Portal als read-only, gebruik liever de CLI.

WebAssembly & Progressive Web Apps: Rethinking modern application development

In deze talk gaf Christian Weyer een overview van de huidige state of the art op het gebied van WebAssembly. WebAssembly is een nieuwe standaard voor browsers die naast JavaScript staat, waarbij applicaties van tevoren omgezet worden naar een binair formaat, dat vervolgens door de browser uitgevoerd kan worden, met als belangrijkste doel betere performance. (Bijvoorbeeld het spelen van een 3D spel binnen de browser.) Zie ook de blogpost van collega Adolfo over WebAssembly. Christian legde uit dat WebAssembly voorlopig nog niet zonder JavaScript kan: een applicatie gecompileerd naar WebAssembly kan voorlopig nog niet rechtstreeks met de DOM praten, maar heeft een stuk JavaScript als proxy nodig. Ook wees Christian erop dat WebAssembly potentieel een hele nieuwe wereld aan security vulnerabilities met zich meebrengt. Een tip om met WebAssembly te spelen zonder zelf dingen te moeten installeren: https://webassembly.studio/

A practical guide to deep learning

Tess Ferrandez-Norlander
Deze talk verdient een blog op zich. Wat een ongelooflijk interessant onderwerp is Deep Learning toch ook! Tess Ferrandez-Norlander vertelt ons wat het verschil is tussen Deep Learning en Machine Learning (ML draait om prediction, DL om linear regression), en laat ons zien hoe AI het verschil ziet tussen cupcakes en chihuahua’s (dat is moeilijker dan je denkt).

Mooi voorbeeld is de afbeelding van een cupcake met groene topping, die onterecht wordt herkend als chihuahua. De reden? Vrijwel alle chihuahua-foto’s uit de dataset zijn genomen in het gras. In zulke gevallen loont het om te zien wat het algoritme écht aan het leren is. Grad-CAM heatmapping kan daarbij helpen. De heatmaps tonen op welke plekken het algoritme zich focust bij het verwerken van afbeeldingen. Je wilt natuurlijk dat het algoritme zich concentreert op de aanwezigheid van een snuit, een paar ogen en puntoren, in plaats van het herkennen van graslandschappen.

Door al het moois dat deze technologie te bieden heeft, zou je haast vergeten dat er ook risico’s aan kleven. Zo kunnen adversarial examples – afbeeldingen met de intentie het algoritme te misleiden – het ML knap lastig maken. Denk aan een zelfrijdende auto die een bestickerd stopbord niet herkent. Juist dit soort uitdagingen maken ML razend interessant.

Best Practices for Building Async APIs with ASP.NET Core

Kevin Dockx
Oké, even op adem komen na al dat ML-geweld. Verrassend hoe vol de zaal is bij deze talk. Vermoedelijk is bij velen de gedachte: “Kan ik nog iets nieuws leren op dit gebied?” Helaas voor hen gaat de talk niet echt de diepte in. Het voorbeeld van een async repository call is redelijk oppervlakkig en roept zelfs nog een discussie op, die helaas pas na de talk in klein comité vervolgd wordt. Jammer.

SPA Revolution with WebAssembly and ASP.NET Blazor

Rainer Stropek
Het grappige aan Blazor-talks is dat sprekers zich vooraf altijd indekken met de opmerking: “Deze technologie is experimenteel.” Het heeft potentie, maar production ready is het nog lang niet. Hoe dan ook is het een veelbesproken onderwerp in het Microsoft-wereldje. Het komende uur is de grote zaal daarom voor Rainer Stropek.

Voor wie de technologie nog niet kent, Blazor is een experimenteel (!) op WebAssembly gebaseerd .NET framework dat draait in de browser. Hoewel de analogie snel gemaakt is, bezweert Rainer ons dat Blazor géén Silverlight 2.0 is.

Er volgen een paar leuke demo’s over two way data binding en server-side Blazor, gebaseerd op SignalR. Je merkt duidelijk dat Rainer Stropek fan is. Dat is waarschijnlijk ook de reden dat hij de site learn-blazor.com begonnen is. Zijn enthousiasme werkt aanstekelijk.

Toch durft hij ook kritisch te zijn. Hij erkent dat de grootte van compiled bestanden die de browser binnen krijgt afschrikt. 3Mb voor een ‘Hello World’-appje is veel. Ook het feit dat de DOM niet direct aan te spreken is, is jammer. Voor UI-updates is nog steeds JavaScript-code nodig.

Of Blazor een blijvertje is durft Rainer niet te voorspellen. Als hij er volgend jaar weer bij is met een jubelend Blazor-praatje, dan gaat het in ieder geval de goede kant op.

Tot zover de eerste congresdag van Techorama. Erg vermakelijk, goede sprekers en een prima locatie. Tl;Dr: Alles draait om Azure, Deep Learning is tof, en Blazor is de toekomst.

Stay tuned voor dagverslag 2

[Martijn is developer bij Infi]

Wil je op de hoogte blijven van updates over hippe tech, een kijkje achter de schermen, of upcoming events? Schrijf je in voor onze nieuwsbrief!

Wil je iets waarmaken met Infi?

Wil jij een eigen webapplicatie of mobiele app waarmee jij het bij anderen maakt?

Waargemaakt door de nerds van Infi.
Nerds met liefde voor softwareontwikkeling en die kunnen communiceren. En heel belangrijk: wat we doen, doen we met veel lol!

Wij willen het fixen. Laat jij van je horen?

Voor wie heb je een vraag?