In todays post: Jon Skeet lies to his compiler; the Visual Studio Code team talks about strict null checking and why they turned it on; more information about nullability in C# 8; the 10 commandments of code reviewing; blocking the worst passwords with HIBP; new Surface hardware for Christmas 2020; and Mariana Atencio talks about what makes you special.
Sharpen the Saw used to be an email newsletter of information I published for the professional development of software developers. Now it’s a series of blog posts. While targeted primarily at developers working with the Microsoft technology stack, content covers a wider range of topics.
Always a way to improve the code you write every day.
Lying to the compiler
The famous Jon Skeet found an interesting edge case in the new C# 8 feature Nullable Reference Types. I don’t want to give any spoilers - go have a read.
Strict null checking Visual Studio Code
Good advice from the Visual Studio Code team, talking about why they decided to turn on strict null checking, how they found a way to get there step by step (avoiding the need for a big bang migration), and how their approach generalises to other codebases.
Two significant quotes from the article:
We realized that we needed to start understanding our bugs in a new way, not as isolated events but as symptoms/signals of larger problems.
When you encounter a bug or something else that is slowing you down, rather than rushing in a fix and moving on to the next issue, stop for a moment to really explore what caused it.
Software & Updates
A new or upgraded tool can be a beautiful thing.
NullableAttribute and C# 8
In the next version of C#, we’re going to be gaining some powerful tools to address Peter Coad’s Billion Dollar mistake - null values. Jon Skeet is starting to experiment with the new compiler and has some interesting thoughts to share about the impact on Nodatime.
A great developer does more than just write great code.
The 10 commandments of navigating code reviews
I’ve come to believe that Code reviews are essential to the process of turning out high quality software - as important as writing unit tests and having a good design aesthetic. But how do you ensure that code reviews go well? This article by Angie Jones gives some good advice.
Staying safe online and writing secure systems are both harder than we think.
Pwned passwords in practice: real world examples of blocking the worst passwords
As a part of the Have I Been Pwned website, Troy Hunt is running a service that allows other sites to proactively (security and safely) block poor passwords, pushing their users into safer security practices. In this post from May 2018, Troy gives some examples where this service has been integrated and put to good use.
Sometimes the answer is random.
Microsoft teases new Surface hardware for Christmas 2020
In a major event this week, Microsoft launched new Surface hardware and teased what’s coming for Christmas next year. The sparkle videos for the Surface Neo and Surface Duo are spectacular. I can’t wait to see what the production hardware looks - and feels - like.
Take some time to feed your mind.
What makes you special?
Quoting from the Ted Talk page:
When journalist Mariana Atencio was seven, her father sent her from her home in Venezuela to a summer camp in Brainerd, Minnesota. Unsurprisingly, she was treated like an outsider. Over the course of many more such camps and a senior year in an American high school, she discovered that the best way to belong was to embrace the qualities that made her different. In this deeply personal talk, Atencio describes how these early lessons helped her succeed as an immigrant and as a journalist.