.NET Rocks - podcast 211 tot en met 220

Ingediend door Dirk Hornstra op 07-jan-2025 16:11

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.

PC 211: Interview met Raymond Chen. Leuke uitzending, want we gaan een beetje terug in de tijd.  Raymond begon in 1992 bij Microsoft te werken en is met de Win32 API bezig geweest, zoals dat toen in Windows 95 gebruikt kan worden. De Win32 API heb je volgens mij nog steeds wel, maar gebruik je het niet meer. Ik weet wel dat ik jaren geleden bij mijn programma voor de fitness in Wergea dat in VB.NET gemaakt heb en daar ook nog functies van de Win32 API gebruikt heb. Maker van de website "the old new thing" en hij heeft ook een boek geschreven met dezelfde titel. Hij was iemand die veel deelde over Win32 en daarmee een bekend persoon werd. Het gesprek gaat onder andere over een automaat. Die heeft ook een user-interface. Hij wil iets kopen met code A10, maar krijgt wat anders, want dat zit onder A1. Het laatste cijfer valt weg... Raymond gebruikt dat als voorbeeld, Carl komt met het voorbeeld dat je op de display een soort 1-st person shooter hebt en zo het artikel kunt schieten: en dat valt dan uit de automaat. Dat klinkt best wel als een coole manier :) Hierdoor komt voorbij dat VRML niet meer ondersteund wordt, alle bedrijven die daar software voor maakten gingen failliet. Raymond houdt nog hoop dat het ooit terugkomt, want hoe cool zou het zijn als je een boek op Amazon koopt dat je door een soort grote virtuele hal loopt en zo je boek zoekt, vindt en koopt? Vervolgens komt Carl met een irritatiepunt, het file-open-dialog/file-save-dialog, je zit ergens en als je later de boel weer opent zit je weer op een verkeerde locatie, niet die laatste locatie. Raymond legt uit dat in het begin het principe simpel was. Je startte altijd waar het programma draaide. Dat werkte prima. Maar wel elk programma had zijn bestanden in een eigen map en daardoor was alles verspreid over de hele disk. Op MSDN is een flowchart bij OpenFileDialog, waarbij je de beslissingen kunt zien, want na het instellen van andere locaties moeten de programma's die zaken zelf regelden nog wel blijven werken. Als Carl vraagt wat het coolste is dat hij gemaakt heeft, dan noemt Raymond "deleted scraps". In Windows 95 kon je een stuk tekst uit Word kopiëren, plakken op de desktop en dat werd dan een soort los fragment. Je kon het daarna in een ander document slepen en daar gebruiken. Maar Raymond noemt het al: het was een hele goeie manier om virussen te activeren. Daarom is deze feature verwijderd, deleted en schijnbaar werd het ook niet gebruikt: geen enkele melding/klacht bij support. OS/2 komt nog ter sprake, Richard kwam die tegen als een soort front-end voor mainframes. Raymond heeft nog een mooi verhaal. Bij een bedrijf werden alle CAD-machines vervangen door pc's met CAD-software en er werd bij vermeld "met Outlook". De werknemers dachten dus dat "alle software op die pc" de naam Outlook had. Daar kun je hele verwarrende gesprekken over krijgen (ik zie allemaal banners in Outlook - terwijl je in Internet Explorer bedoelt). Dan krijgen we het verhaal over hoe het zit met het geheugen. Als je 4 GB geheugen hebt, dan wordt 3 GB getoond. Je kon een switch omzetten, eerst via boot.ini en later via bcdedit oid. Het 32-bit systeem heeft een 4 GB adres-space. Die 4 GB is verdeeld tussen kernel-mode en user-mode. Traditioneel is dat verdeeld als 2 voor kernel en 2 voor user. Alleen voor specifieke zaken, zoals Exchange-server of SQL-Server kun je zaken aanpassen, maar voor de rest: blijf er af. Omdat we met zijn allen inmiddels op 64-bit systemen zitten is die verhouding waarschijnlijk wat anders geworden.

PC 212: In deze uitzending wordt Allan Hirt geïnterviewd. Hij werkt bij Avanaut, schrijver van het A-Press boek "SQL Server 2005 High Availability", opvolger van een eerder boek. Is gericht op SQL Server en werkt voor Microsoft. Zo komt clustering ter sprake. Bij een klant, oudere versie, werd bij opstarten de connectie ingesteld. Maar als dan de verbinding weg valt, dan werkt de applicatie dus niet meer. Ik begrijp uit de uitzending dat met clustering een zelfde connectie op hetzelfde IP, zelfde naam weer beschikbaar komt als er een cluster uitvalt. Ook hoor ik hier dat mirroring nieuw is! Dus iets wat wij al langere tijd gebruiken, is iets wat uit 2005-2007 komt. In 2005 heb je clustering, mirroring, log-shipping en replicatie. Voorbeelden waarbij de connectie vast staat in code: niet doen dus! Je mag blij zijn dat je nog de sourcecode hebt om het aan te passen en te kunnen builden. Maar ini-files, zorg wel dat zaken secure zijn omdat er bijvoorbeeld een wachtwoord in staat. Allan noemt ook het voorbeeld van een klant die met log-shipping werkte en aan "de andere kant een machine had om het over te nemen". Het was nooit getest. Dus toen Allan er met zijn team mee aan de slag ging, moesten ze 6 uren wachten tot de restore klaar was. Zo is log-shipping niet bedoeld... In 2005 heb je nu ook een partial restore. Met partities kun je zorgen dat bijvoorbeeld orders van 2 jaar geleden later hersteld worden, je recente orders zijn bij een restore even iets belangrijker.

PC 213: Jesse Liberty en Alex Horovitz in deze uitzending. Jesse heeft een aantal boeken geschreven, Programming ASP.NET, Programming C# en met Alex Programming .NET 3. Heeft een technisch blog. Alex heeft bij Next en Apple gewerkt. In de 90-er jaren moest je wat van het platform weten, daarna werd je een "Microsoft developer" of een "niet Microsoft developer". Momenteel in de .NET wereld is het eigenlijk niet meer te doen om alles te weten. Bij de tips komen wat boeken voorbij, "Massive Change" van Bruce Maurits (?). Ander boek "Don't make me think", een boek over webdesign. Een site is visualvsource, toont een relatie tussen woorden. Het programma Trilian wordt genoemd, ook Roboform. RegexBuddy komt voorbij (is eerder genoemd). Tiddlywiki.com wordt ook genoemd, een makkelijke manier om je notities bij te houden.

PC 214: Een interview met Billy Hollis. Is meerdere keren in .NET Rocks te gast geweest. Schrijft boeken, in magazines, onder andere Code-magazine. Billy benoemt even een event met iemand de over Agile sprak. Die had het over pair-programming, dus je bent met 2 personen aan het programmeren. Die gast schrijft meerdere regels testcode voor productie-code. En heeft dan ook nog per programmeur 2 testers. Zoals Billy zegt: het resultaat wordt onbetaalbaar, je moet wel zorgen dat je 12x de normale productie gehaald wordt! Ook hier komt voorbij dat je eigenlijk niet meer alles kunt weten: maar na wat onderzoek heb je waarschijnlijk wel de ervaring om het wel te kunnen. Billy komt met het voorbeeld dat hij bij een klant was voor een "no-touch-deployment". De programmeur die daar zat was 2 weken bezig en kwam niet verder. Billy was een uurtje bezig en besloot toen "om de download-cache te legen". Dat bleek het uiteindelijk te zijn. Maar die developer wist niet dat er zoiets bestond als een "download-cache".

PC 215: In deze uitzending wordt Steve mcConnell geïnterviewd. Hij heeft meerdere boeken geschreven, waaronder Code Complete 1993 en de 2e editie in 2004. Rapid Development in 1996. Software Project Survival Guide in 1998 uitgegeven. In 2004 Professional Software Development. In 2006 het boek Software Estimation, Demistifying The Black Art. Hij is een desktop-software programmeur sinds 1984 en nog veel meer. Ook bij IEEE actief (geweest). Hij adviseert ook om eerder "de stekker uit een project te trekken" dan dat je het later doet en nog meer geld kwijt bent. Voor software engineers is vaak niet een carriere-pad uitgezet. Je ziet de projecten die iemand doet en dat is het. Richard bevestigt dit, hij geeft aan dat mensen naar een andere baan gaan als ze niet vervolgstappen kunnen maken. Steve noemt ook het voorbeeld van dat nieuwe mensen die hetzelfde werk doen een hoger salaris krijgen. Ook mensen die uit het bedrijf weggegaan zijn en later terug komen en zo een hoger salaris kunnen krijgen, hoger dan ze konden krijgen als ze waren blijven zitten. Carl noemt wat items uit de Code Complete. "Conquer complexity". Maak je code leesbaar. "Overengineering is iets wat developers standaard doen, uit trots". "Pick your process". Maak software, wat zijn de protocollen om je eigen werk te doen, voor interactie met het team. "Write programs for people first, computers second". "Program into your language, not in it". Steve bedoelt hiermee dat veel programmeurs in hun code zaken typen, schuiven, weghalen en zo "het ontwerp maken". Maar daar is een whiteboard, pen en papier voor bedoeld. "Focus your attention with the help of conventions". Als je afspraken hebt over layout, hoofdletters/kleine letters en andere afspraken, dan kun je je richten op het echte creatieve proces.

PC 216: Carl en Richard spreken met Eric Sink. We beginnen met de site notalegend.com, er werd gezegd dat deze niet meer online stond, maar de URL werkt nog wel degelijk. Waarschijnlijk is de inhoud opgeruimd, zo wordt namelijk het voorbeeld door Carl genoemd dat als hij Rocky Lhotka tegenkwam hij brulde: "look, it's the legend Rocky Lhotka!". De site is in het verleden even snel opgezet en was een groot succes, een grote marketingcampagne. Vista wordt nog even genoemd. Het is niet de meest stabiele Windows, maar met de "glass-look" wil je daarna eigenlijk niet meer terug naar de "grijze container-achtige uitstraling" van de oude Windows. Eric bouwde in het verleden software voor de Mac en Solaris. Er werd een Windows-programmeur aangenomen, term was de "Windows-weenie", maar al gauw programmeert Eric ook voor Windows met de Win-32 API. Hij noemt hierbij "segmenting", Carl licht dat nog even toe. Omdat je weinig geheugen beschikbaar had, gaf je het beginadres aan en de rest was relatief ten opzichte van dat adres. Eric werkte bij het bedrijf Spyglass. Voordat ze met browsers begonnen, werkten ze aan scientific data-visualisatie tools. Dat bracht niet zoveel geld in het laatje, dus de Venture Capitalists die geld in het bedrijf gestoken hadden wilden de stekker eruit halen. Mosaic, ook browsermakers zaten in dezelfde stad. Dat gaf het idee om ook een browser te maken. Op basis van een OEM-overeenkomst werden die verkocht. Dat leverde flink wat geld op. Tot Microsoft het overnam en dat Internet Explorer werd. Een vervolg-product zou een browser voor mobiele apparaten worden, maar dat leek Eric niet interessant. Hij neemt ontslag. Vervolgens ontslaat Spyglass veel werknemers. Eric heeft het bedrijf Sourcegear opgezet en neemt die mensen in dienst, om browsers voor devices te maken. In 2000 had je de dotcom-bubbel. Ze maakten browsers voor Motorola, werd uitstekend betaald, maar toen kwam er niets meer binnen. Dus dat consultancy-deel, daar wilde Eric mee stoppen. Er was een developer-tool divisie ernaast, dat werd vervolgens de hoofdmoot. Ze maken developer-tools voor Windows-ontwikkelaars. Vault is hun hoofd-product, sourcecode-management. Ze bouwden een eigen add-in "source-outside" voor sourcesafe. Eric maakt hierbij de opmerking "toen Bill Gates iedereen bij elkaar riep en zei: 'Internet-enable your product', toen was dit team waarschijnlijk afwezig". Veel gebruikers waren niet gelukkig met sourcesafe en zijn overgestapt naar Vault. Ik vraag me af hoe het nu (in 2024) met dit product gaat, want door Gitlab, Github en Azure Devops zijn weer veel mensen daarheen overgestapt (vermoed ik). TeamPrize is een cross-platform client voor Visual Studio TeamSystem, dit wordt door een ander team gemaakt. Het verhaal komt ook op Agile. Eric geeft aan dat er goede principes in zitten, maar doordat mensen er hun eigen draai aan willen geven, zaken te rigoureus worden, het soms bijna een soort "religie" wordt hij daar en hekel aan heeft. Vervolgens komt de term "micro ISV" naar voren. Independant Software Vendor. Een Micro ISV is eigenlijk 1 persoon. Eric schreef een artikel voor MSDN. Thomas Warfield heeft Pretty Good Solitaire gemaakt en verkoopt dat als een malle. Terwijl Solitaire gewoon in Windows zit. Nick Bradburry is ook een voorbeeld. Carl noemt het van Leon Brambrick die door Scott Hanselman geinterviewd is, hij heeft Timesnapper gemaakt, ook een voorbeeld van een micro ISV. Eric heeft ook een boek geschreven, The Business of Software. Een boek wat goed te combineren is, is die van Bob Walsh met de titel Micro ISV from vison to reality. Testdriven .NET, add-in van Jamy Cansdale voor Visual Studio is de tip van Eric, daarin heb je onder andere een koppeling met nunit en ncoverage.

En de Wii komt nog even ter sprake. De uitzending is van 2007 en Eric heef via-via deze kunnen aanschaffen, maar zegt dat er nog steeds mensen deze in bestelling hebben en het wachten is op levering.

PC 217: Als je veel met SQL Server bezig bent, dan is dit een interessante uitzending! Het is SQL Server 2005 (en dat is flink wat jaren geleden), maar zaken zijn vast nog relevant. Carl en Richard spreken namelijk met Paul Randal, die in deze uitzending "back-up en recovery" bespreekt. Waarbij het meest relevante is: de voorkeur is voor het terug zetten van een back-up, dan weet je wat je mist. Als je recovery uitvoert, geef je het proces een blanco cheque om data te verwijderen en je eigenlijk niet weet wat mist en wat er nog wel is/hersteld is. En zoals Paul ook zegt: dan moet je wel een back-up hebben! In noodgevallen blijkt soms dat die er niet zijn of dat ze niet goed gemaakt zijn, waardoor er elke keer een 0kB bestand gegenereerd is. In 1999 is hij bij Microsoft gekomen, gewerkt aan DBCC. Indexatie, defragmentatie en "wat al niet meer". Cool spul dus! In deze uitzending komt van alles voorbij. Een in-house event van Microsoft waarbij HP Paul het aanbod doet dat ze een checkdb-actie op hun 3 TG database uitvoeren. Klaar in 8 uur. De vraag "hoe lang duurt checkdb" kent maar 1 antwoord: "dat hangt er vanaf". Natuurlijk hoe groot je database is. Maar ook of er andere (zware) IO-processen op de server staan te draaien. Veel zaken worden in het geheugen gedaan, maar soms is dat teveel data en wordt tempdb gebruikt: dus ook afhankelijk van hoeveel data er op die partitie beschikbaar is/hoe stabiel de schijf is waar die disk draait. Problemen komen voorbij, waarbij een scan normaal 7 uur duurde, maar ineens 37 uur. Daarbij kreeg SQL Server de schuld, maar was het een hardware-probleem. Omdat niet expliciet kon worden aangetoond dat het niet aan SQL Server lag is in de nieuwe versie een checksum toegevoegd aan een page, zodat daarop gevalideerd kan worden dat het echt niet aan SQL Server ligt. Waarbij nog wel vermeld wordt dat bij het overzetten van een oude database en je die optie aan zet, bij de bestaande gegevens er niet een checksum toegevoegd wordt, alleen bij nieuwe pagina of updates wordt die toegevoegd. Wel is er nog een soort background-proces wat wel langzaam maar zeker pagina's zonder checksum aanvult. Paul bespreekt ook hoe er "slim" gescand wordt, zodat je niet de hele disk zit te scannen op data, maar dat wordt slimmer gedaan. En ook hoe "diep zoeken/checken" eerst niet gedaan wordt, maar pas als er een probleem is dezelfde rijen normaals gescand worden, maar dan wel uitgebreider.

Ook zitten er in DBCC nog meer (ongedocumenteerde) mogelijkheden. Sommige zijn alleen voor test van MS en enkele zijn ronduit gevaarlijk (het log leeg maken).

Als de boel in de brand vliegt, raken mensen vaak in paniek. En doen ze dingen waardoor het juist erger wordt. Microsoft heeft in documentatie uitgewerkt hoe je in emergency mode zoveel mogelijk data terug kunt krijgen. Force recovery via transactielog, skip corrupte delen. Rebuild log en run full repair data loss en alles moet weer goed zijn.

Het recovery-plan moet geschreven zijn door je meest ervaren DBA medewerker en uitgevoerd worden door de meest junior medewerker. Want je zult net zien dat die op het moment van falen op de plek zit om de boel te herstellen. Richard bevestigt dit scenario, hij heeft ooit via de telefoon een 19-jarige medewerker er doorheen moeten loodsen.

Paul komt nog met iets over een Schotse comedian Billy Connolly, een fragment waarbij een vader naar de radio "no!" schreeuwt als er een politiek commentator voor is. Carl kent dat fragment schijnbaar ook. Ik ken zowel de comedian als het fragment niet, op Youtube kun je nog wel meer fragmenten terugvinden van Billy.

De link op .NET rocks naar de MSDN bijdrages van Paul verwijst naar het algemene SQL Database Engine Blog: link.


PC 218: Bij de ingekomen e-mail wordt genoemd dat er een online poll is, met een klassement van de 10 "belangrijkste" .NET mensen en dat Carl en Richard op plaats 5 staan. Terug te vinden via shrinkster.com/ml5, alleen kom je dan op de homepage van geeks with blogs.
Carl en Richard spreken met Dare Obasanjo. Hij is de zoon van de Nigeriaanse president. Dare heeft zich bezig gehouden met de technische delen bij Microsoft, de System.XML- en System.Data-namespaces. LINQ wordt hierbij ook nog genoemd, dat heeft dus eerder andere namen gehad en/of is ontstaan uit andere ideeën met namen zoals XSharp en C-Omega Richard heeft er een shrinkster-link van gemaakt: shrinkster.com/m0f. Ook wordt het open-source project van Dare genoemd, RSS Bandit. Dit wilde hij eerst als een soort code-voorbeeld ontwikkelen, maar het is een echte applicatie geworden. Iemand anders nam contact met hem op die vond dat de werking prima was, maar het "er niet uit zag" en dat wilde hij wel doen. Code stond op Sourceforge. Zo komen ook nog even de licenties voorbij. Want ook bedrijven gebruiken zijn software, maar die zitten met strenge regels, dus de licentie moet er wel bij geleverd worden. De GPL was te straks, dus het is de BSD-licentie geworden. En hij heeft gekeken naar het Ganges-project van Chris Sells. Bij de vraag "welke coole site, coole tool of gadget" hij wil delen komt hij met 20q.net. Op basis van 20 vragen kan hij bepalen waar je aan denkt...


PC 219: Gesprek met Shaun Walker, de maker van .NET Nuke. Dat was eerst een project wat onder de vleugels van zijn eigen bedrijf, maar is nu onderdeel van een los bedrijf, .NET Nuke Corporation. Carl en Richard hebben 2 jaar geleden ook met Shaun gesproken. Update naar 4.4 is nu vooral gericht op verbeteren performance.

PC 220: Gesprek met Jack Greenfield die ook weer een boek geschreven heeft, over Software Factories. Zat naast Martin Fowler die zijn begrip "afkraakte", is een kleine fittie over geweest. Maar ze hebben het bijgelegd. Want hoe Martin het interpreteerde, zo was het niet bedoeld. De "Software Factory" is niet een soort fabriek met lopende band, ponskaarten en stoomachines, maar hoe bedrijven software kunnen maken wat als basis voor andere software gebruikt kan worden. Hoewel we als developers denken dat we buitengewone dingen doen, is dat helemaal niet zo. Vaak wil je als developer alles zelf bouwen, maar vaak ben je dan iets aan het bouwen wat iemand anders al (beter) gedaan heeft. Zo komt ook ter sprake dat Jack vroeger zelf met assembly zat te programmeren. Het JUMP-commando, stack of heap. Toen kwam er een C-compiler die dat voor je zou kunnen doen. Dus bij de vraag of je zelf nog zou gaan systeemprogrammeren of het in C, C#, Java zou doen wordt er wat gniffelend gereageerd: natuurlijk ga je niet meer zelf systeemprogrammeren. Maar hij licht toe dat dit toen nog niet een vaststaand feit was. De eerste versies waren "buggy", dus je kon het toen nog wel zelf beter. En hij voelde zich ook wel een beetje bedreigd, want je bent de "goeroe" van het programmeren op systeemniveau en nu is er een tool die dat straks "beter" kan. De rest van het verhaal gaat vooral over templates, bibliotheken, code die via open-source voor iedereen beschikbaar is. En DSL, Domain Specific Language voor het schrijven van je code wat betrekking heeft op het probleem/de problemen die je oplost in dat specifieke gebied. Deze uitzending kun je overslaan, nog wel een MSDN pagina met DSL tools, shrinkster.com/m0s