In this issue from September 2017: Writing great constructors; new features in C# 7.0; Dealing with a manipulative co-worker; a nasty Bluetooth attack; Holographic Lemmings; and Understanding Test Driven Development.

Sharpen the Saw is a somewhat delayed repost of a semi-regular newsletter of information I publish for the professional development of software developers. While targeted primarily at developers working with the Microsoft technology stack, content will cover a wider range of topics.

To subscribe, send me an email and I’ll put you on the list. Membership is moderated.


Always a way to improve the code you write every day.

How to Constructors

A good constructor ensures that the object is in a valid state and ready to be used, but what code belongs within a constructor and what code does not? Mark Clearwater weighs in with some well-argued opinions in this post.

Read now

Software and Updates

A new or upgraded tool can be a beautiful thing.

New Features in C# 7.0

Everything you need to know about the new features in C# 7, direct from Mads Torgersen, the Microsoft Program Manager in charge of language evolution. Highlights include tuple types (allowing multiple return values from a function), and pattern matching, but there are a bunch of small improvements as well.

Read now

Being Professional

A great developer does more than just write great code.

How to Deal With a Manipulative Coworker

At some time or another, we all end up with having to deal with that colleague - the one who takes credit for other peoples work, and who goes to great lengths to blame you for their lack of delivery. In this post from LifeHacker, Kristin Wong talks about the need to trust your instincts when something feels off and how to respond.

Read now

Staying Secure

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

Billions of devices imperiled by new clickless Bluetooth attack

Researchers have identified a vulnerability in the Bluetooth protocol, dubbed Blueborne, that potentially affects literally billions of devices - including Android, Linux, iOS and Windows devices. The attack requires no interaction with a user and can be achieved from as far as 10 meters distance in as little as 10 seconds. Effectively, someone walking down through Queensgate shopping mall with an infected phone would be able to attack most anyone they passed.

Apple iOS devices are only safe if running version iOS 10 or newer; Google has released patches for Android but is dependent on individual vendors distributing them. Microsoft patched the Windows OS in July, Windows Phone was never vulnerable.

I’ve seen no information on the vulnerability of Mac OS or any of the myriad of other Bluetooth devices such as FitBits, Wireless Speakers/Headphones, Car Stereos and so on, but the possibilities are concerning

Where possible, get your devices patched as soon as possible. If you’re not actively using Bluetooth, switch it off.

Read now


Sometimes the answer is random.

With Microsoft HoloLens, vintage Lemmings now risk their lives in your living room

I remember playing one of the original Lemmings releases back in the days of the 386, enjoying the puzzles as I tried to save as many of the critters as possible.

The classic Lemmings game is back with a brand new twist - courtesy of HoloLens, the danger-filled world the Lemmings are trying to survive might be your very own living room or office! I had a chance to play this game for a few minutes recently and it was great fun.

Read now

Video of the Week

Take some time to feed your mind.

Understanding Test Driven Development

Roy Osherove literally wrote the book on unit testing, and in this presentation, he presents on the subject.

Watch now


blog comments powered by Disqus
Next Post
Implementing Value Equality  07 Apr 2018
Prior Post
Implementing Entity Equality  31 Mar 2018
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
April 2018