Normally I’d start this out with some of the funnier things that happened; but before I dive into what happened last week, I want to talk about this week. Warning: death and violence follow.
On December 6, 1989, in late afternoon a man had walked into the École Polytechnique, the engineering school of the University of Montreal, carrying a hunting rifle, ammunition, and a knife. He entered a mechanical engineering class of about sixty students, separated out the nine women, and told them, “I am fighting feminism.” One of the women, Nathalie Provost, responded, “Look, we are just women studying engineering, not necessarily feminists ready to march on the streets to shout we are against men, just students intent on leading a normal life.” She reports that his response was, “You’re women, you’re going to be engineers. You’re all a bunch of feminists. I hate feminists.”
He then opened fire on the women, killing six of them. Then he went from floor to floor in the building, targeting and shooting women.
Fourteen women were killed that day, twelve of them engineering students, one a nursing student, and one a university employee.
Here are their names: Anne St-Arneault, Geneviève Bergeron, Hélène Colgan, Nathalie Crotea, Barbara Daigneault, Anne-Marie Edward, Maud Haviernick, Barbara Klueznick, Maryse Laganière, Maryse Leclair, Anne-Marie Lemay, Sonia Pelletier, Michèle Richard, and Annie Turcotte. You can hear more about these women here.
An additional thirteen people were injured. Nathalie Provost was shot four times, but survived. In the weeks, months, and years that followed, among other responses, Canada implemented stricter gun-control regulations, and began to observe December 6th as a National Day of Remembrance and Action on Violence Against Women. The event remains the worst mass murder in Canadian history.
Our industry has problems with sexism, whether latent or outright. While we hope never to have another atrocity like this one; we should strive for equality and justice in our industry. As a white dude in tech, I’ll do everything I can; and I ask you to do the same. If you’ve never had to fear for your life just because you wanted to be an engineer, then you too need to stand up and help stop the sexism in our industry.
Now, on to what happened last week in the world of .NET.
😁 Christina Warren (@film_girl on twitter) submitted a feature request for Windows Terminal to include a “Stories” feature. It was closed far too quickly, in my option, and we all know how hard it is for Microsoft to design a terminal. This would be a nice way to include video tips about the terminal in the terminal itself. What could go wrong?
📝 If you’re the type of developer that has a need to monitor the Garbage Collector, you should read about the newly updated in .NET 5 GC.GetGCMemoryInfo API from Maoni Stephens. We’re all in the boat where we don’t want to deal with the Garbage Collector until we need to deal with the garbage collector, so read this post, and save it for a rainy day.
📝 Code-Maze continues their blazor series with a post on one-way and two-way binding in blazor applications. I maintain that two-way binding is evil and should be avoided at all costs. Think I’m wrong? Yell at me on Twitter @gortok.
📝 How to Unit Test in Entity Framework Core 5 by Michal Bialecki. My preferred answer is: “Don’t unit test persistence”. Thank you for coming to my TED Talk.
🎥 The Visual Studio team livecasted a Remote office Hours talking about the future architectural changes being made to Visual Studio Visual Studio is older than most college seniors these days, and it’s spectacular to see it still alive and kicking. It is probably the best in class IDE I’ve ever used, and probably the nicest product Microsoft has ever developed for a technical audience.
🆕 MVVM Toolkit PReview 3 has been released. Deeper dive into this is that Michael, the author of this blog post, deep dives into the API. I’m not quite sure what the MVVM Toolkit is for; it looks like some sort of platform-independent MVVM library. Special thanks to Dee Dee Walsh, @ddskier on twitter for the link.
👍 There’s an open feature request to get IDE support for Preprocessor symbols. YES. PLEASE. That is far better than the current state of: “What did we name that IFDEF? I don’t know. Guess I’ll just guess and have a timebomb waiting to blow up in my face.”
🔊 Paul Sheriff talks about what’s new in .NET 5 on the Azure DevOps podcast. I checked, and they did start this podcast after TFS was renamed to Azure DevOps. I hope they’re comfortable with change because the name “Azure DevOps” reminds me of 70s disco. It’s cute but it’s gonna get old fast.
📝 Khalid Abuhakmeh talks about Module Initialization in C# 9. If, like me, you have no idea what this is, you can probably skip it. But if your team bandies about “Secure coding” and “Threat Model” as terms of art, you may want to read this post. Basically it gives you a way of loading environment variables or code before your your code gets run.
🧪 Microsoft is testing Windows Feature Experiance Pack updates with Windows Insiders. The Windows Feature Experience Pack, so named because Microsoft’s Marketing department has a minimum character limit quota; includes improvements to windows. In this case, an updated Snipping tool, text input panel, and a suggestion feature for the windows shell. According to this article, Microsoft wants to make future improvements to the…. Feature experience (Sorry not sorry) available through this… pack. If you are A Windows Insider, let me know how you like these updates.
📰 Microsoft Teams adds support for answering calls via Apple Carplay, transferring calls between mobile and desktop, and adding call recordings to onedrive. Oh for fucks sake. Instead of someone saying “You know what? Enough is enough. This “Work from anywhere while you’re doing anything is nucking futz and we aren’t going to do it any more. The eight-hour workday is hereby abolished for a four-hour workday that you’ll actually be able to make it through and still get things done. I’ve never seen technology workers productive for an entire 8 hour day; and it’s about time we stop pretending that they will be.
🎥 The .NET team hosts a community standup talking about LLBLGen. I have to be completely transparent here: I forgot LLBLGen existed. After Entity Framework came out, it sort of sucked the oxygen out of the room for ORMs in .NET. Which, I guess, was the point.
🎥 Abel Wang, the Principal Cloud Advocate and DevOps lead talks about the history of DevOps at Microsoft. You can tell it’s Microsoft because of the heading: “Microsoft’s Enterprise DevOps Transformation Story”. It details how they went from a waterfall-esque organization to a waterfall organization on github. I’m kidding. They’re agile and they do devops now, and I’ve reached my monthly quota for saying the word “DevOps”.
💩 Garter named Microsoft a “Leader” in the 2020 Magic Quadrant for Cloud DBMS platforms. “Leader” here means “Behind Amazon in Vision and execution, and behind Google and Oricle in vision, but beating them on Execution”. Or, they’re #2 in the space for execution, and #5 in the space for Vision, behind… IBM.
📝 Jaana Dogan talks about things she wished more developers knew about Databases. Please tattoo these items to your architect’s forehead in reverse so he can see them every time he proposes a new architecture in the mirror.
📝 Infoq details the performance improvements made in .NET 5 You’ve probably seen other writeups, but you haven’t seen this one. Short and concise, it’s worth your time.
📝 InfoQ details ASP.NET Core Improvements in .NET 5 Did I say I love the InfoQ concise format?
🐦 Zac Bowden claims that Microsoft is hoping to sign off on an “RTM” build of Windows 10X sometime [this] week. Windows 10X is the OS for hot-shit Developers. I’ll be here all week. Try the veal.
🎥 The Xamarin team released a MAUI update. MAUI is the ‘Multi-platform User-Interface’ project meant to unify all of the different UI frameworks into a common framework. The tag line for MAUI is “the next generation of Xamarin.Forms to build Cross-platform mobile and desktop Apps”, and I couldn’t have said that better myself.
📝 Derek Comartin talks about Idempotent Consumers in distributed messaging architectures. One of the most crucial part about developing a messaging or event driven architecture is getting the consumption of messages right. Idempotent messages and enforcing idempotency in your system will make it much easier to reason about problems that will inevitably occur because you chose a distributed messaging architecture.
🎥 David Wengier is building a game in .NET and has videos to bring you along for the ride. I missed Episodes 1-57, but I’m going to add this to my binge list.
🐛 Don’t put the word ‘Android’ in your Xamarin App Namespace Apparently that can lead your application not building and you generally having a very bad day. Thanks to James Montemagno for having that bad day and then blogging about it so we wouldn’t.
💔 Kubernetes is removing Docker from version 1.20. TL;DR: Docker the program has several ‘sensible’ defaults that Kubernetes does not want or need; and while docker containers will continue to work just fine, Docker the program will not work with Kubernetes.
📝 How to use OpenAPI Auto-generated clients in ASP.NET Core Another one for the microservices crowds, but still pretty awesome. The tooling has come a long way since 2016, and at this rate by 2022 Microservices will be a viable development paradigm.
📝 There’s a recommended way to run EF Core Migrations in Azure DevOps and this blog post tells you how. Since I neither run Entity Framework Core nor Azure DevOps, I can’t be held responsible if this is considered ‘bad intel’.
And that’s what happened last week. I’m George Stocker, and I help teams double their productivity through test driven development because TDD helps you focus on what you’re doing, and not on the hellscape that is 2020. To find out more about how I can help you and your team, visit www.doubleyourproductivity.io, and I’ll see you next week.