In today’s post: Building a better UI by decomposing CRUD screens; check your certificate expiries in your CI builds; Windows 11 is coming; Visual Studio 2020 is 64 bit; INVEST in your backlog; 7 virtues of software design; PHPs Git server was hacked; Malware targeting Windows containers; FreeBSD’s close call; Space X torment; and What’s new in C# 9.

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.

Decomposing CRUD to a task-based UI

Derek Comartin makes the case in this post that a simple CRUD screen is often the wrong solution for user interaction - and that such screens should be decomposed into independent task-specific screens oriented towards specific user goals. I think he’s right - and that such decomposition is applicable in other areas as well, such as the division of functionality into microservices.

Read more:

Certificate Expiration Check

Here’s a very simple unit test you may want to include in your continuous integration test suite. It fails the build if you get within 30 days of certificate expiry without rolling them, giving you time to take care of the issue before things actually break.

Read more:

Software & Updates

A new or upgraded tool can be a beautiful thing.

Announcing the first Insider Preview for Windows 11

Perhaps the biggest software update news of the month, Microsoft has announced that all the rumours were true - Windows 11 is coming. Better yet, if you’re enrolled in the Windows Insider program (and you have the resilience for dealing with the frustrations of a pre-beta operating system), you can try it for yourself right now.

The story around hardware requirements is interesting - the announced requirements are for relatively new hardware, yet Microsoft is allowing it to be installed on quite old hardware for testing purposes. For example, I’m running it successfully on an original Surface Pro tablet, circa 2012, and it seems to work just fine. I wouldn’t be surprised to see the requirements adjusted before GA.

Don’t put this on your primary productivity device unless you’re willing to completely reformat the drive and start from scratch if something goes wrong. If you do put this on your primary machine, make sure your backups and replications are running properly so that anything (everything!) you value exists elsewhere too.

Read more:

Visual Studio 2022

The next version of Visual Studio is here - and it’s a 64-bit application. This is a change many years in the making, and it promises improved performance and increased reliability for this stalwart development tool. In my own testing, I’ve already found it to be faster, even on some moderately sized solutions just with a handful of projects.

VS2022 installs side by side with any existing installation, so you can audition it without affecting your day to day work. Download it here

Announcement blog posts:

Being Professional

A great developer does more than just write great code.


The INVEST mnemonic is one way to capture the characteristics of a useful entry on your product team’s backlog:

  • Independent
  • Negotiable
  • Valuable
  • Estimable
  • Small
  • Testable

If each feature request or improvement has these characteristics, your velocity as a team will be more predictable.

Read more:

The 7 Virtues of Good Software Design

An interesting DZone article where Santiago Garcia suggests that good software has seven important characteristics:

  1. Effectiveness
  2. Robustness/safety/reliability
  3. Maintainability
  4. Flexibility
  5. Reusability/portability
  6. Scalability
  7. Efficiency

Moreover, they provide a good argument for why these virtues should be considered in this particular order.

Read more:


Staying safe online and writing secure systems are both harder than we think.

PHP’s Git server hacked to add backdoors to PHP source code

The PHP project’s primary git server was hacked in an attempt to inject a Remote Code Execution (RCE) vulnerability. With around 80% of the internet running on PHP, successfully injecting an RCE into the platform would have been catastrophic.

Read more:

First Known Malware Surfaces Targeting Windows Containers

Running a Kubernetes cluster doesn’t absolve you of worry about security concerns. Consider Siloscape, some malware discovered by researchers from Palo Alto Networks specifically designed to escape from a Windows-based container and infect the host Kubernetes node.

Read more:


Sometimes the answer is random.

Buffer overruns, license violations, and bad code: FreeBSD 13’s close call

This is a fascinating exploration of the FreeBSD process and how things went very wrong for a few contributors. Fortunately, the problems were caught well before they because of an issue for the wider ecosystem of folks dependent on FreeBSD for day to day work.

Read more:

The 2008 moment when triumph turned to torment for SpaceX

An excerpt from the book LIFTOFF, this Ars Technica post paints a vivid picture of the early days of SpaceX, back in 2008

Read more:


Take some time to feed your mind.

What’s New in C#?

This video from .NET Conf 2020, recorded in November 2020, has Mads Torgersen and Dustin Campbell, demonstrates many of the new features of C# 9. These two are tremendously smart and they’re fun to listen to as well.

Watch now:


blog comments powered by Disqus
Next Post
Magpie Driven Development (MDD)  10 Jul 2021
Prior Post
Rockstar Driven Development (RDD)  26 Jun 2021
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 2021