In today’s post: C# 7.3 introduces new generic constraints; Visual Studio 2019 v16.1 has been released; The true cost of multitasking isn’t what you think; An oral history of the hamburger icon; and, sometimes Select() really is broken.

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.

Dissecting new generics constraints in C# 7.3

The latest minor language update of C# includes new kinds of generic constraint: unmanaged, Enum and Delegate. None of these are going to revolutionise the way we write code, but they’re certainly useful.

Read more

Software & Updates

A new or upgraded tool can be a beautiful thing.

Visual Studio 2019 version 16.1

For a minor point release, the new version of Visual Studio 2019 has a surprising number of new features. My favourites include Intellicode (a turbo charged version of Intellisense that’s driven by machine learning) and some significant performance improvements.

Read More

Being Professional

A great developer does more than just write great code.

The true cost of multitasking isn’t productivity — it’s mental health

Conventional wisdom says that attempting to multitask has a major detrimental effect on productivity. It turns out that the issue is more complicated - in some cases, multitasking can be a productive approach. But, there’s a surprising cost.

Read more


Sometimes the answer is random.

An oral history of the hamburger icon (from the people who were there)

Have you ever wondered where the hamburger icon originated? Ubiquitous on modern smartphones, it turns out this particular icon has a much longer history than you might expect.

Read more


Take some time to feed your mind.

When Select() is broken

Common wisdom in IT is that “Select() isn’t broken” - if you aren’t getting the results you expect, you can be virtually certain that the problem is in your code, not in the rest of the system.

Sometimes, however, the system really is broken … In this presentation, Oren Eini talks about some examples found during the development of RavenDB.

Length: 1h 10m
Audience: Experienced Developers

Watch Now


blog comments powered by Disqus
Next Post
Restructuring Reducers  13 Jul 2019
Prior Post
Vocabulary Browser  29 Jun 2019
Related Posts
Browsers and WSL  31 Mar 2024
Factory methods and functions  05 Mar 2023
Using Constructors  27 Feb 2023
An Inconvenient API  18 Feb 2023
Method Archetypes  11 Sep 2022
A bash puzzle, solved  02 Jul 2022
A bash puzzle  25 Jun 2022
Improve your troubleshooting by aggregating errors  11 Jun 2022
Improve your troubleshooting by wrapping errors  28 May 2022
Keep your promises  14 May 2022
July 2019