Here are the things that caught my eye this week. I’d love to hear what you found most interesting this week. Let me know in the comments or on Twitter.
Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.
Open-Source Maintainers are Jerks!
As software developers we often make use of open-source software (OSS) but do we ever think about all the man hours that go into developing and supporting the project. When OSS breaks, or we need a new features, we log an issue on gitHub and then sit back awaiting a response. After a week of waiting we start complaining about how badly the project is run. The thing about OSS that’s too often forgetten, it’s AS-IS, no exceptions. Different projects may operate differently, with more or less people, with work being prioritised differently, on differing release schedules but in all cases the software delivered is as-is, meaning that there is absolutely no SLA. In this talk we’ll look at a day in the life of an OSS maintainer: what drives them, what annoys them and what keeps them up at night. Maintainers aren’t jerks, they just care about the project more than you do.Thought this was a worthwile related talk to watch in regards to the npm package issue this week. https://www.youtube.com/watch?v=Mm_RuObpeGo
Serverless Data APIs with Azure Functions and Cosmos DB
The goal of this project is to provide a central place to share ideas for streamlining dev box setup and provide sample scripts for common dev scenarios. It’s likely you will want to take the scripts here and modify them to fit your particular needs.I was recentlys setting up a new dev machine and Rich Turner pointed me to this repo.
Guarded devirtualization is a proposed new optimization for the jit in .Net Core 3.0. This document describes the motivation, initial design sketch, and highlights various issues needing further investigatio The .Net Core jit is able to do a limited amount of devirtualization for virtual and interface calls. This ability was added in .Net Core 2.0. To devirtualize the jit must be able to demonstrate one of two things: either that it knows the type of some reference exactly (say because it has seen aLink: https://github.com/dotnet/coreclr/blob/5af32b00186ba37f5b2cdc4b0a9b5715d7807f1d/Documentation/design-docs/GuardedDevirtualization.md
newobj) or that the declared type of the reference is a
sealed). For virtual calls the jit can also devirtualize if it can prove the method is marked as