De 10 van Scott Hanselman - podcast 531 tot en met 540

Ingediend door Dirk Hornstra op 12-jul-2021 21:35

Als je zelf de podcasts van Scott wilt beluisteren, die zijn hier te vinden: https://hanselminutes.com/archives

PC 531: Scott spreekt met Gina Marie Maini over functioneel programmeren met OCaml. Een ander bekende taal is Haskell, maar deze vindt Gina veel fijner om mee te werken. Scott en zij bespreken de werking van functionele programmeertalen en hoewel daar vaak objecten "immutable" zijn, kan dat bij OCaml wel. Of het een verstandige keuze is om te gebruiken, dat is aan de developer. Integreren met C schijnt ook gemakkelijk te zijn. Gina noemt nog "ctypes for ocaml", dat kun je hier op Github vinden: link. Gina zit op Github en heeft daar OCaml-voorbeeldprojecten: link. Tools die genoemd worden zijn js_of_ocaml (link) waarmee je OCaml-code kunt omzetten naar javascript, Facebook heeft een uitbreiding op OCaml gemaakt met de naam Reason: link. En Gina raadt Merlin aan, een soort autocomplete voor OCaml: link. Mocht je hiermee wat willen doen, dan heb je in ieder geval een paar nuttige links/sites in de pocket!

PC 532: Scott spreekt met Oz du Soleil over data literacy and the de kracht van Excel. Oz doet heel veel met Excel. Want als een klant wat duidelijk wil maken, wat stuurt hij/zij dan? Een excel-bestand. Veel developers schonen de boel op met Python-scripts e.d., maar dat hoeft niet want Excel heeft zelf al veel mogelijkheden. Ook voor het maken van een app is een Excel-bestand een prima applicatie om een "proof of concept" te maken. Zelfs zo goed, dat de Excel gebruikt werd en de app niet meer gemaakt hoefde te worden. De uitzending kun je op zich overslaan, maar het is wel iets om eens goed over na te denken. Doe ik dingen niet te ingewikkeld en kan het met een Excel opgelost worden? Zo heb ik flink wat jaren geleden iets in Excel gemaakt voor bonnen die gebruikt moesten worden, dat wordt (als het goed is) nog steeds gebruikt. Oz is een "Excel MVP", dus check zijn website, zijn Youtube-kanaal en zijn professionele site: link. Want hoewel veel mensen zeggen dat ze goed met Excel kunnen werken (en het mogelijk ook op hun CV zetten), een VLOOKUP, pivot-tabellen, een "cascading drop-down list", kun je dat even snel uitleggen en maken? Ik niet, daar zal ik eerst voor moeten Googelen :)

PC 533: Scott spreekt met Karolina Szczur over "building remote first teams". En remote first is ook echt "remote first" en niet "remote friendly". Ze werkte eerst vanuit Europa en deed daar werk voor een Amerikaans bedrijf (dus je hebt tijdsverschil). Tijdens de uitzending zit ze in Australië. Daar knapten eerst bedrijven al op af, want "je kunt 2 dagen thuis werken" is dan niet te doen als je op een ander continent zit. Karolina haar eigen site is hier te bekijken: link en ze heeft ook haar repo's op Github staan: link. Scott kwam Karolina tegen door een artikel wat ze op Medium geplaatst had. Haar bijdragen zijn via deze link te vinden en het artikel waar het om ging is volgens mij deze: link. Door "corona" zijn we allemaal "remote workers" geworden, of voor een gedeelte. Mogelijk heb je wat aan de tips in dat artikel.

PC 534: Scott spreekt met Jessica Lord over het maken van cross-platform apps op basis van Electron. Jessica werkt bij Github. Daar is de tekst-editor Atom gebouwd, Electron was ondersteunende software die daarvoor gebouwd is (en heette Atom Shell). Jessica heeft een electron-app gemaakt, Git-it, waarin het gebruik van GIT uitgelegd wordt (link). Dat was al een website, ze hoefde alleen de HTML te kopiëren en de javascripts en nog een paar zaken en toen werkte het al. In de .NET Conf 2020 is Electron ook nog genoemd (link). Jessica haar eigen site is hier te bekijken: link. Als je naar de site van Electron gaat zie je wat je kunt doen, op deze pagina van Jessica heb je ook nog eens goede uitleg hoe het allemaal werkt: link.

PC 535: Scott spreekt met Andy Kitchen over "machine learning for all with Tensorflow". Machine Learning is een onderdeel van Kunstmatige Intelligentie. Op basis van patronen kan een conclusie gedaan worden. Je hebt een aantal varianten. Supervised learning, je weet het juiste antwoord en als de computer met een ander antwoord komt, weet je dat je dingen aan moet passen. Je toont de input en output en op basis daarvan moet het programma met inputs die het programma nog niet eerder gezien heeft kunnen bepalen wat de output is. Unsupervised learning staat voor "ik weet niet wat de vraag is, maar er zijn bepaalde patronen die we kunnen bepalen op basis van machine learning". Je voert allemaal klant-data in en er rolt uit dat een bepaalde groep klanten veel interesse voor een bepaald product heeft, iets wat je niet wist. Re-inforcement learning, dat is een dynamische omgeving en de agent (de computer) voert acties uit. Daar krijgt hij een beloning voor (of niet). Op wikipedia kun je een uitgebreide uitleg vinden: link. Andy noemt nog Transfer-learning. Google heeft met hele grote datasets al bepaalde functionaliteit kunnen bepalen (wat is de voorgrond in een afbeelding, wat is een achtergrond). Die kennis kun je als bibliotheek toevoegen aan jouw project en dat hoef je dus allemaal niet zelf meer te doen. Scott noemt image-net.org, waar de overeenkomsten tussen afbeeldingen bepaald kunnen worden. Toen deze podcast opgenomen werd kon je Tensorflow installeren op Mac en Linux. Niet op Windows, behalve als je daar "bash" op had. Nu we WSL (Windows Subsystem for Linux) hebben moet dat geen probleem meer zijn. Ook het Open AI project wordt besproken: link. Andy zijn eigen site is hier te bekijken: link.

PC 536: Scott spreekt met Richard Astbury over het Orleans Distributed Virtual Actor Model. Dit is een research-project van Microsoft wat uitgegroeid is tot een volledig product. Hiermee kun je C# code bouwen en vervolgens op een cluster van pc's laten uitvoeren. Richard zijn eigen site staat hier: link. Richard werkt niet bij Microsoft, maar is wel een "evangelist" voor dit product. Communicatie gaat via de Github-issues en Gitter (link). Twee "concurrenten"/gelijksoortige producten zijn Service Fabric en Akka.NET. Richard geeft aan dat elk product zijn eigen voors en tegens heeft. Zo zijn er wel developers die plugins gemaakt hebben om Orleans te laten werken met Akka (Orleankka) en Service Fabric (Reuben Bond). Bij de bijdrage van Reuben staat dat dit inmiddels al in de Core van Orleans zit. Akka heeft Scott al in podcast 472 besproken: link. De repo van Orleans zit in Github en op de startpagina kun je meteen meer uitleg vinden over de werking: link.

PC 537: Scott spreekt met Rachel Simone Weil die is gaan hacken en programmeren voor de Nintendo NES, een apparaat uit 1985, wat ze toen zelf niet kon kopen, later via "garage-sales" wel heeft kunnen aanschaffen en daar zelf software voor is gaan maken. Heeft zichzelf assembly geleerd. Rachel haar eigen site is hier te bekijken: link. En haar Github-repo's: link, waar je dus de computers-are-easy code kunt vinden en ook de Twitter-client die ze voor de NES heeft gemaakt. #ubervet Zie je het voor je? Die harde cassettes waar je zelf je code voor kunt maken. En de emulators op de pc waar je dat mee kunt testen. Allemaal gemaakt door mensen die dit als hobby doen. Deze uitzending moet je zeker beluisteren! Je handen beginnen te jeuken om roms te testen. Daarvoor heb je een emulator nodig, Rachel gebruikt FCEUX (link), die toen alleen op Windows werkte, maar zo te zien nu op meer systemen werkt (QT/SDL)? En als je de source wilt compilen, moet je dat met NESASM3 doen (link).

PC 538: Scott spreekt met Frank Krueger (hij heeft eerder met hem gesproken over Calca, in podcast 835: link), Frank heeft nu in een half jaar tijd een .NET IDE voor de iPad gemaakt (volledig in F# gemaakt) en kan C# en F# builden. De app heet Continuous. We horen hoe hij dit gebouwd heeft en welke obstakels hij heeft moeten overwinnen. Zo kun/mag je geen uitvoerbare code uit het geheugen starten op een iPad. Hij heeft daar een eigen interpreter tussen gezet. Maar als die alles moet interpreteren wordt het super-traag, dus hij kan daar ook weer bepaalde code via een "bridge" uit executables opstarten. Op de project-site die hij hiervoor heeft gemaakt kun je zien hoe het werkt: https://continuous.codes/. Tijdens het bouwen zie je dus ook wat de output is. Frank geeft aan dat voor het "gewone werk" hij liever achter zijn 30-inch beeldscherm zit, maar als hij TV zit te kijken en een idee heeft, dan kan hij dat snel even op zijn iPad doen - couch-programming. Ook op het werk gebruikt hij het soms, maar dat komt ook omdat hij rechtstreeks iets via Xamarin kan doorzetten. Het is wel duidelijk, deze gast is geniaal en heeft een goed doorzettingsvermogen: blokkeert Apple dit, dan doen we het wel op deze manier. Een extra reden om de projecten van Frank op Github eens goed door te kijken: link.

PC 539: Scott spreekt met Andrea Goulet van Corgibytes over Legacy Code en hoe haar bedrijf zich bezig houdt met die "verouderde code". Ook met oude code kun je "goede dingen" doen, bijvoorbeeld door een test-framework toe te voegen, zodat je kunt controleren of bij het aanpassen/verwijderen van functionaliteit de resultaten nog steeds de correcte resultaten zijn. En "legacy code" kan ook nog niet heel oude code zijn. Andrea geeft het voorbeeld van WebForms, wat bij een bedrijf helemaal niet de juiste implementatie was en wat dus anders opgezet moest worden. Andrea haar eigen site is hier te bekijken: link. Werken met legacy code is een uitdaging voor de developers die ermee aan de slag gaan. De developers die dat doen hebben al flink wat jaren ervaring (hiervoor moet je wel senior zijn). De ontwikkelaars worden niet developers genoemd maar "code whisperers". Ze doen niet alleen het programmeren, maar ook het testen, business-analyse, zijn projectmanager. Scott vraagt zich af hoe het gaat met "ontwikkeling". Andrea geeft aan dat er 10% tijd, 4 uur per week "professioneel development-tijd" is. Tijd om andere programmeertalen te leren, te verdiepen in andere zaken. Want als die WebForms niet goed is en je wilt overstappen naar een MVC Framework, dan moet je wel weten hoe dat werkt. Scott laat lachend weten dat dit misschien dé baan is die hij na zijn pensionering moet oppakken. Daar zit ook een kern van waarheid in, bij veel bedrijven en instanties draait code die over een aantal jaar verouderd is. En als het niet (goed) onderhouden wordt, is dat de legacy code van de toekomst. Boeiende uitzending!

PC 540: Scott spreekt met Stephanie Hurlburt van Binomial, ze hebben een nieuwe GPU texture compressor gebouwd. De projecten van Binomial zijn op Github te vinden: link. Stephanie haar eigen site is hier te bekijken: link. Een interessant verhaal over hoe GPU's werken. Over hoe een JPG-bestand in de GPU 4x zo groot wordt, dus een 8MB afbeelding wordt "ineens" 32 MB. Twee formaten die Stephanie noemt zijn DXT en PVRTC. Op StackOverflow wordt goed uitgelegd wat het is: link. Met hun software doe je niet een decompress-compress, maar een transcode. Dus bij de andere manier kan er kwaliteitsverlies optreden (en duurt het langer), deze methode is alsof een .ZIP-bestand snel omgezet wordt naar een .RAR-bestand, zonder al te veel vertraging. Niet een heel interessante uitzending, maar de code van de projecten wil ik nog wel even bekijken, zoals Scott eerder al aangaf dat CSS transformaties door de GPU afgehandeld worden (sneller!) vraag ik me af of je met deze code in je eigen projecten ook zaken kunt versnellen.