.NET Rocks - podcast 101 tot en met 110

Ingediend door Dirk Hornstra op 27-mar-2023 20:28

Als je zelf de podcasts van .NET Rocks wilt beluisteren, die zijn hier te vinden: https://dotnetrocks.com/

Let op: dit zijn oude afleveringen over .NET 1.0, .NET 1.1 en .NET 2.0. De meeste zaken zullen dus redelijk verouderd zijn. Laten we het erop houden dat je de afleveringen kunt overslaan en als er een echt interessante uitzending is, dan noem ik dat expliciet.

N.B. Carl, Rory en Richard Campbell gebruiken shrinkster.com URL's om lange URL's in verkorte versie te kunnen delen... maar de site werkt niet meer. Via Google gezocht en ik zie dat dit sinds 2011 al zo is. Anders had ik die links hier kunnen delen, maar dat heeft weinig nut nu dat niet meer werkt. Update: sommige zijn via archive.org nog te vinden, dus als de link er nog is voeg ik die toe.

PC 101: Carl en Richard spreken in deze aflevering met Mark Miller. Onderwerp is "how to be a better programmer". Opgezet met het idee: dit wordt een boeiende uitzending als eerste na nummer honderd. Maar helaas, er wordt veel geouwehoerd, weinig tips en trucs waarmee je "een betere programmeur zou worden". Pair-programming wordt genoemd, dat is dan nog wel interessant. Want vaak is het zo dat een nieuwe developer redelijk in het diepe wordt gegooid, hier zijn de instructies en "bouwen maar". Ook bleek dat "de goeroes" of de "ervaren programmeurs/programmeurs die al jaren hun werk doen en zichzelf als 'ervaren' zien" vaak zeiden: nee, dat is niets voor mij, laat mij maar gewoon mijn werk doen. Na wat onderzoek kwam naar voren dat de pair-programmers een flink aantal minder bugs hadden dan de "goeroes". Ook hoef je niet per se een vast koppel te hebben, je kunt ook zo nu en dan wisselen met de programmeur waarmee je samen werkt. Mark komt nog met een voorbeeld waarbij degene waarmee hij samenwerkte iets constateerde en waarvan hij dacht: goed dat we het nu vinden, want als dit in productie was gekomen en problemen had gegeven, dan was dit wel minimaal 3 dagen uitzoekwerk geweest. Het zorgt er ook voor dat code beter leesbaar is. Want je legt het uit en samen kom je tot iets wat na overleg uitgewerkt is. En Mark heeft nog het voorbeeld waarbij hij een goede opzet had, maar zijn "pair-programmer" ook, dus waarbij er eigenlijk niet "een beste" oplossing was. Dan is het een kwestie van kijken wat de compiler en de profiler zegt en waarbij je in overleg bepaalt welke waarschijnlijk het best te implementeren is. Mark was al eerder te gast bij DotnetRocks in aflevering 80: link.

PC 102: Carl en Richard spreken met een aantal gasten van het NASA WorldWind Development Team (Chris Maxwell en Randy Kim). En ook geluidsman Jeff stelt een aantal relevante vragen aan het team. NASA WorldWind is een open-source project waarbij je de aarde als globe kunt zien en verschillende layers er overheen kunt leggen. Voor de developer is dit zijn eerste project. Carl en Richard zijn lovend, het is een applicatie in C# gemaakt. Als ik nu kijk (we leven nu in het online-tijdperk), de website is er (nog): link en je kunt daar ook doorklikken naar de demo: link. In de uitzending komt naar voren dat je bepaalde zaken in perspectief kunt zien, het grote brok ijs wat van de Zuidpool afgebroken is, de tsunami, je kunt er video's mee bekijken. Onder andere Terraserver van Microsoft wordt gebruikt voor de data. Carl vraagt hoe data wordt opgeslagen, over het algemeen met XML, maar met plaatsnamen hadden ze volgens mij zelf iets anders geïmplementeerd. De keuze van de developer voor C# kwam doordat hij de taal "makkelijk" vond, hij ervaring had met verschillende talen en omdat er voor veel spellen met ActiveX goede ondersteuning voor rendering e.d. behaald wordt, wat met de eerste koppeling via OpenGL niet zo was. Dat wat in het normale geheugen komt, daar hoeft niet expliciet de GarbageCollector op uitgevoerd te worden, maar die in het geheugen van de GPU staan wel (de skins e.d. die gebruikt worden). De broncode staat op Sourceforge en daar staat het nog steeds: link. De laatste update is van 10 jaar geleden, dus ik vermoed dat er nu niet zoveel meer mee gebeurt en de NASA zich richt op de website. Broncode gedownload, misschien kan ik er nog eens wat nuttigs uit halen. Terraserver is op Wikipedia terug te vinden, zo te zien is dat door een commerciële partij verder opgepakt, want ja, je hebt online gewoon maps.bing.com.

PC 103: Carl en Richard spreken met Chris Anderson en het Longhorn Evangelism Team, Chris Anderson, Steve Cellini, Carter Maslan, Jeff Sandquist, Karsten Januszewski en Tim Sneath. Een uitzending over Avalon, Longhorn.

PC 104: Aan het begin wordt een alternatief toetsenbord genoemd, de "Data Hand". Site is niet meer beschikbaar, maar hier kun je zien hoe het eruit zag: link. Carl en Richard spreken met Paul Sheriff over architectuur. Interessante uitzending! "Get more people thinking, before coding". Paul Sheriff is een software-architect. Die programmeert ook zelf nog wel eens (je moet bij blijven met de tools/programmeertalen), maar kijkt vooral "hoog over" hoe iets gemaakt zou moeten worden. Paul heeft zelf een framework opgezet. Hij kan daarmee zijn kosten naar beneden brengen. Als iets werkt, dan hoeft er minder ondersteuning op geleverd te worden. In die van hem zit: hij kan in 30 seconden een werkende applicatie maken: data-access-wrapper (ADO.NET, etc.), exception-management (fouten opslaan in de database, versturen via mail), instellingen voor de applicatie (een configuration-management application block voor config-bestanden, xml-bestanden, windows register), event-logging, audit-tracking, een security-systee en  het overerven van de base form-class, zodat je jouw eigen functionaliteit/weergave op een snelle, consistente manier kunt doorvoeren. Paul geeft daar een mooi voorbeeld van. Ze moesten een web-applicatie maken voor verschillende afdelingen. Bij sommige afdelingen duurde het opvragen van een pagina wel 10 seconden. Toen bleek dat de data-lijn (die al niet zoveel data kon verstouwen) was verdeeld: de helft voor de mainframe en de rest voor het internet-verkeer. En als de mainframe het druk had, kon deze ook nog van de helft van het internet-verkeer bandbreedte afsnoepen. Paul kon dit redelijk snel fixen door de viewstate (die anders in de HTML als een verborgen input meegestuurd wordt) om te zetten naar server-side viewstate. Scheelt een flink deel van de data wat over de lijn gaat (40% minder) en maakte de snelheid acceptabel.  Paul geeft ook aan dat het bedrijf het IT-onderdeel moet zien als het onderdeel wat geld oplevert, niet wat geld kost. Ook code-reviews worden genoemd, Richard deed dit elke vrijdagmiddag zodat het team kon laten zien wat ze gemaakt hadden. En de software die Paul recent gedownload heeft is Acronis True Image. Geen Norton Ghost meer, deze software kan een back-up van je systeem maken terwijl Windows actief is. Richard noemt nog dat de server-editie de enige software is die Active Directory goed kan backuppen. En Paul noemt nog Beyond Compare om back-ups te maken van je data-bestanden.

PC 105: Carl en Richard spreken met Ken Getz. De uitzending gaat over .NET en voornamelijk over threads/asynchrone acties.

PC 106: Een live-uitzending vanaf Dev Connections met Rocky lhotka en Bill Vaughn. Deze uitzending kun je overslaan, mensen proberen "leuk" te zijn, domme grapjes en geen echt interessante onderwerpen. Het gaat voornamelijk over "services".

PC 107: Carl en Richard spreken met Scott Hanselman en Rory Blyth. Geluidskwaliteit van Rory is niet altijd optimaal, want hij zit op een vliegveld. Zo komt "AJAX" voorbij, wat nog redelijk nieuw is en nu standaard gebruikt wordt. Wel wordt gezegd dat het "er eigenlijk al was" met de XmlHttp (dat was Outlook Web-access 10 jaar geleden). Scott merkt zelfs op dat hij het "in Flash doet, voordat hij het in Java doet", want in deze tijd heeft iedereen nog Flash op zijn/haar pc staan. XHTML komt voorbij, de nette opmaak van HTML en niet dat de browsers zelf een invulling geven aan de weergave, waardoor soms een site in Internet Explorer wel getoond werd, maar niet in Netscape Navigator. Scott vraagt ook aan Carl of hij zijn HTML wel met de doctype-tag begint. Scott verwijst naar de site csszengarden.com. Want Carl heeft het over het indelen van je pagina met tables en pixel.gif om de boel uit te lijnen: dat is de oude manier. Peter Blum (is eerder genoemd) wordt in deze uitzending genoemd, het bank-bedrijf waar Scott werkt gebruikt zijn controls: link. Een ander punt wat genoemd werd, was een blog van Scott wat ging over een aantal vragen, "what great .NET developers ought to know". Die kun je hier nalezen: link. En ook de tips die Scott gegeven heeft om een goede presentatie te geven: link. Aan het eind van de aflevering komt altijd "wat heb je als laatste gedownload voorbij". Rory noemt Dosbox, een emulator voor DOS. Configuratie is nogal moeilijk, dus je kunt volgens Rory D-fend gebruiken: link. Andere grafische frontends kun je hier op de wiki bekijken: link. Scott heeft Dosbox nu ook snel gedownload en het spel "Alone in the Dark" gaat hij daar op spelen: link. Richard gaat kijken of hij zijn favoriete spel kan spelen: Transport Tycoon: link.

PC 108: Uitzending live vanuit het Microsoft Platform Adoption Center. Interessante uitzending!  Carl en Richard spreken met Grant BlahaErath en Glenn Podany. Het gaat over bedrijven en personen die met techniek bezig zijn, waar niet veel mensen mee werken, die werken met software van Microsoft wat nog in de kinderschoenen staat en waarbij Microsoft en de klant de problemen oplossen en zo mogelijk weer nieuwe zaken in de software kunnen toevoegen. Er gaat wel veel met een non-disclosure-contract, dus echte namen en projecten kunnen/mogen niet genoemd worden. Grant komt wel met een heel cool voorbeeld waar hij mee bezig is geweest, 20 jaar oude C++ code voor de applicatie "Print Shop" die uitgebreid moest worden. Boel in eigen appdomeinen draaien en er met C# code tegenaan kunnen bouwen. Op deze pagina van Microsoft staat meer informatie (halverwege de pagina): link.

PC 109: Gesprek met Matt Mannion. Bij het race-circuit van Indiana gebruikten ze een applicatie met Java en Flash. En dat liep voor geen meter, was slecht aan te passen. In ongeveer 5 weken tijd hebben 2 tot 3 programmeurs in VB.Net er een .NET applicatie voor gemaakt waarmee het wel lukte. Via Infragistics een goede datatable, omdat sommige teams hun eigen rijder en de nabije concurrenten wat opvallender willen maken in de grid, een losse applicatie voor de beheerders, die ook een offline XML-bestand kunnen gebruiken om data te bekijken. Uitgewerkt in VB omdat de programmeurs van dat race-circuit ervaring hadden met VB6. Op de baan zitten sensoren die draadloos data doorgeeft. In de auto's zit een transponder in de neus. Een gemiddelde race geeft 80.00 tot 100.000 datapoints terug. Rond de 30 tot 35 auto's op de baan. Een SQL Server database die het opslaat. Het opvragen van de data (vertraging) is maximaal een halve seconde. Via archive.org kun je teruglezen wat het project inhield: link. Hoe ze eigenlijk maar tijdens een inrij-evenement er echt getest kon worden (ging eerst met simulaties). Naast deze Windows Forms-applicatie moest er ook nog een Sharepoint-omgeving ingericht worden. Aan het begin van deze uitzending kwamen nog een paar mailtjes van lezers voorbij. Zoals die over UltraISO: link en daemon-tools: link.

PC 110: In deze uitzending spreekt Kimberly Tripp over SQL 2005. Die ratelt maar door. Het gaat over SQL Server 2005. Een aantal zaken beschouwen we nu misschien als "standaard". Zo heeft ze het er over dat als bepaalde data-bestanden beschadigd zijn, vroeger de hele database down ging. Nu is dat niet meer zo. Dus als je cijfers voor 2003 niet meer opgevraagd kunnen worden, dan nog wel die van 2004 en volgende. Later wordt gezegd dat dit niet voor de MDF-bestanden. Dat zijn primaire bestanden. Maar je hebt dus ook "secundaire data-bestanden". Nog nooit geweten dat die bestonden, hebben blijkbaar extensie .NDF! Op deze pagina van Microsoft kun je er meer over lezen: link. Ook noemt Kimberly de SP_RECOMPILE die je kunt gebruiken om je stored procedure opnieuw te compileren: zodat deze een andere/betere/snellere methode gebruikt om jou het resultaat terug te geven. Soms is een index goed, soms in een soort "scan" de beste oplossing. Maar... als je een Stored Procedure van 300 coderegels hebt, die moet je natuurlijk niet elke keer hercompileren. Dat stuk moet je "eruit trekken" en in een eigen stored procedure plaatsen. Toevallig is dit ook vorig jaar bij mijn bezoeken aan Techorama benoemd! Kun je nagaan, dit is dus iets uit 2005, wat in 2022/2023 nog steeds actueel is en zelf heb ik het tot nu toe niet gebruikt (in 2005 was Microsoft SQL Server nieuw voor mij). De slides van Techorama: link. Scroll daar even door naar de sessie van 16.30-17.30 uur van Erik Darling over "parameter sniffing". Ook hij laat daar de voorbeelden zien dat door verschillende parameters datasets met heel afwijkende resultaten kunnen ontstaan en daardoor wordt niet altijd "het optimale pad gekozen".

Tijdens deze uitzending spreekt ook nog iemand van DevTeach. Dat is een event waarbij developers uitleg geven. Als ik naar devteach.com surf, is dat een redirect naar hun Facebook-pagina: link.

Daar staat nog een link naar een presentatie van Scott Hanselman op Youtube (uit 2017), altijd de moeite waard: link.