De 10 van Scott Hanselman - podcast 191 tot en met 200

Ingediend door Dirk Hornstra op 06-jul-2020 23:16

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

PC 191: Scott spreekt met Nathan Brixius over de Solver Foundation. Het is een bibliotheek van code die je kunt gebruiken bij het oplossen van problemen. Toen ik dit hoorde dacht ik meteen terug aan mijn studietijd, bij de opleiding Hogere Informatie had je het "rooster-probleem". Je moest een applicatie maken die voor de opleiding roosters kon maken. Je hebt daarbij te maken met leraren, lokalen en studenten/klassen. Je kunt redelijk recht-uit-recht-aan programmeren zodat er roosters gemaakt worden. Maar als dat betekent dat leraren of klassen de eerste 2 uren les hebben, vervolgens 4 uren niets en dan nog 1 uurtje, dat is een niet gewenst rooster. Scott komt met het "traveling salesman-scenario", de verkoper die onderweg is, de afstand zo kort mogelijk wil houden (kost benzine) en een stad niet 2x wil aandoen (want je kunt maar 1x verkopen). Je hebt een doel (goal) en je hebt voorwaarden (constraints). In dit geval zou het doel zijn dat je een optimaal rooster wilt maken voor alle docenten en klassen. De voorwaarden zijn dat leraren maar 1 klas gelijktijdig les kunnen geven, en klas maar 1 les kan volgen en er in een lokaal maar 1 les gegeven kan worden. Als je op de link van Nathan klikt kom je uit op zijn blog. In 2012 is Microsoft gestopt het als een los pakket uit te geven. Maar ik kom het wel tegen als nuget-package. Nog maar eens kijken of ik mijn rooster-probleem-gegevens nog kan vinden en eens kan testen of deze bibliotheek aan code mij een mooie oplossing kan bieden: https://www.nuget.org/packages/Microsoft.Solver.Foundation/

PC 192: Scott spreekt met Louis Dejardin over de Spark View Engine die hij voor MVC gemaakt heeft. Als ik erop zoek vind ik Spark in een Github-omgeving: https://github.com/loudej. De laatste aanpassingen zijn van 10 jaar geleden, dus er wordt niet zoveel meer aan gedaan. Doel van Louis was om de HTML intuïtiever te maken. Dus geen for each in een soort tag om je herhalende items in de HTML plaatsen, maar als attribuut in de tag zelf, de view-engine filtert dit eruit en bouwt zelf het resultaat op. En er wordt ook geen XML-boom qua structuur opgebouwd, maar de boel wordt op een andere manier verwerkt. Toch nog maar eens naar die code kijken.

PC 193: Scott spreekt met Niklas Gustafsson over Axum een programmeertaal voor concurrent/parallel programmeren. Er wordt niet met locks gewerkt, maar met agents. De gevreesde situaties met deadlocks treden mogelijk vaker op, maar het is wel sneller duidelijk dat je een deadlock hebt en met debuggen wordt daardoor iets makkelijker. Op wikipedia staat een goed artikel: link, het product is er niet meer, maar de goede dingen zijn meegenomen in .NET 4.5 (en volgende). De berichten op MSDN zijn hier terug te lezen: https://docs.microsoft.com/en-us/archive/blogs/maestroteam/dataflow-programming-with-maestro

PC 194: Scott spreekt met Warren en Carter Sande die het boek Hello World geschreven hebben. Carter is 10 jaar oud en is samen met zijn vader begonnen dit boek te schrijven toen hij 6 jaar was. In perl omdat dit redelijk makkelijk te doen is (en op Linux, Mac en Windows draait). Van basic beginnen, naar objecten en naar nog meer uitgebreidere dingen. Als je zoon of dochter geïnteresseerd is in programmeren is dit waarschijnlijk een mooi boek om mee te starten.

PC 195: Scott spreekt met Rob Mensching over zijn Open Source project The Wix. Het is een programma om Windows-installers te maken (.msi-pakketten) en het eerste open-source-project van Microsoft. En dus ook op Github terug te vinden: https://github.com/wixtoolset/

PC 196: Scott spreekt met Jason Olson over het .NET 4 CLR Framework. Dit is "in-process", wat aangeeft dat je .NET 4 kunt draaien en daarbinnen kun je .NET 2.0 draaien. Bij oudere versies kon dit niet, de eerste versie die opstartte was leidend (wat de nodige problemen kon opleveren als die versie iets niet ondersteunde wat een hogere versie wel uit kon voeren).

PC 197: Scott spreekt met Jimmy Schementi over de DLR (dynamic Language Runtime) van Ironruby en Ironpython die in .NET ondersteund worden. Hij heeft een eigen website, maar ik zie daar geen recente artikelen op staan, op Twitter is hij nog wel redelijk actief: @jschementi In de uitzending wordt nog gezegd dat dlr.codeplex.com de bron is (link), maar Codeplex is alleen nog maar een archief (wat nog wel te raadplegen is). Er wordt daar verwezen naar Github, de dotnet-repo: https://github.com/microsoft/dotnet en de repo van IronPython: https://github.com/IronLanguages/ironpython2 We

PC 198: Scott spreekt met Erik Meijer over Reactive Extensions voor .NET (naam RX). Een Nederlander! De uitleg is duidelijk. Je hebt met LINQ en Enumerable het "pull-model". Je krijgt een lijst, en je doet een "while movenext", en zolang je daar "true" op terug krijgt ga je een actie doen met de "current" waarde. Maar je zit dus te wachten. Als er "onder water" data uit bestanden gelezen moeten worden, kan dat een intensief proces worden. Met RX is gekeken naar een "push-alternatief". Net zoals je op een knop klikt, wordt op het "onclick"-event een actie uitgevoerd. Met RX wordt meer met events gewerkt. Zo heb je de IObservable. Ik ben dat (volgens mij) wel eens tegen gekomen, maar heb daar nooit wat mee gedaan. Moet daar toch eens naar gaan kijken. Bij het zoeken op RX vind ik een Github-repo: https://github.com/dotnet/reactive

PC 199: Scott praat met Jeremy Zawodny over Craigslist. Ik kende de hele site niet, maar het is een grote advertentiesite. Op wikipedia is het uitgebreid beschreven: link. Daar wordt genoemd dat er 20 biljoen page-views per maand zijn. Het ziet eruit als een site die in de 1990-s gebouwd is en daarna qua uiterlijk niet meer aangepast. Want hij kan wel functioneel zijn, ik word niet zo blij van zo'n basic website. Jeremy geeft aan dat veel via MemCache gaat. Er zit een front-end-proxy tussen en er zijn verschillende Apache-webservers.

PC 200: De twee-honderste aflevering! Scott praat met Jon Skeet de man die genoemd wordt als "de Chuck Norris of Programming"! Ik kende 'm niet. Hij heeft bij Microsoft gewerkt, het boek C# in depth uitgebracht en werkt alweer een tijd bij Google (en dus met Java). Hij is heel actief op StackOverflow, zijn profiel staat hier: link. Iemand heeft een keer een vraag aangemaakt "feiten over Jon Skeet". En daar komen allemaal "Chuck-Norris-achtige" reacties op. Er zijn mensen die het topic sluiten (het gaat hier om programmeervragen), maar later is het weer geopend (alle vragen zijn hier te stellen). Als ik zoek, kom ik een link tegen, alleen toont die nu een not found pagina: https://stackoverflow.com/questions/305223. Maar gelukkig hebben we altijd de "way-back-machine". En zo kom je dus op https://web.archive.org/web/20090525092614/http://stackoverflow.com/questions/305223 die nog wel inhoud toont (van 2009 dus).

  • Jon Skeet is immutable. If something's going to change, it's going to have to be the rest of the universe.
  • Jon Skeet's addition operator doesn't commute - it teleports to where he needs it to be.
  • Anonymous methods and anonymous types are really all called Jon Skeet. They just don't like to boast.
  • Jon Skeet's code doesn't follow a coding convention. It is the coding convention.
  • Jon Skeet doesn't have performance bottlenecks. He just makes the universe wait its turn.
  • Users don't mark Jon Skeet's answers as accepted. The universe accepts them out of a sense of truth and justice.
  • Jon Skeet can divide by zero.
  • Jon Skeet is the only top 100 SO user who is human. The others are bots that he coded to pass the time between questions.
  • Jon Skeet coded his last project entirely in Microsoft Paint, just for the challenge.


Deze post van 2018 is voor Jon omdat zijn "reputation" op StackOverflow de miljoen bereikt heeft (link). Dan moet je wel heel veel vragen beantwoorden. Hij geeft aan dat het hem daar niet om gaat, voor hem is het een manier om zijn tijd te besteden tussen andere dingen door (even kijken of er een vraag ligt waar ik het antwoord op weet) en waardoor hij soms zelfs nieuwe programmeertalen gaat leren (vraag over Ruby, had hij nog nooit wat mee gedaan). Jon heeft een eigen blog, hier wordt het Yoda timetable project benoemd waarmee hij bezig was om dat te porten naar .NET: https://codeblog.jonskeet.uk/2009/11/05/what-s-in-a-name-again/comment-page-1/ Ook wel interessant, want als een regering besluit om per een bepaald jaar geen zomertijd of wintertijd meer door te voeren, dan heeft dat impact op software waar dat ingesteld staat.

In ieder geval, ik wil ook meer bijdragen aan StackOverflow (het is een geweldige bron van informatie als je ergens naar op zoek bent), dan is het wel zo netjes om ook zelf wat bij te dragen. Ik heb een account, dus ik moet hier maar vaste dagen voor gaan plannen.