In this issue from October 2017: Great code produces beautiful errors; expression bodied members get more powerful in C# 7; why some like to measure lines of code even though it’s a poor metric; password guidance for the modern era; thinking about where your time goes on social media; and Larry Wall opines on programming languages you should know.

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.

Beautiful Errors

Good code generates the right results when given valid data. Great code generates useful diagnostics when something goes awry. In this blog post, Oren Eini talks about the importance of informative error messages and how he will reject code in a code review if it doesn’t communicate well.

Read more…

Software and Updates

A new or upgraded tool can be a beautiful thing.

Expression-bodied Members in C# 7

The expression bodied member syntax introduced in C# 6 has been extended in the latest version of C#, allowing more concise goodness in your code. The syntax for expression bodied properties is particularly nice.

Read more…

Being Professional

A great developer does more than just write great code.

Alternatives to Lines of Code

It’s always a bit disappointing to hear about yet another team where developer performance is measured by lines of code. The problem is that lines of code is a (very!) poor substitute for the things we really want to measure.

In this post, Erik Dietrich writes about the reasons why non-technical managers might gravitate towards lines of code as a metric.

Read more…

See also

Staying Secure

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

Passwords Evolved: Authentication Guidance for the Modern Era

Troy Hunt (from blogs about the way authentication has changed over time - from the very simple approach that was sufficient for the earliest time-sharing computers to modern requirements.

Read more…


Sometimes the answer is random.

Are You Using Social Media or Being Used By It?

Here are a set of interesting (and confronting) questions. How much time do you spend on Social Media? How much of that time is spent doing the things you want to do, like stay in touch with friends and family? What’s the rest of the time spent on? Is this a good use of your time?

Read more…

Video of the Week

Take some time to feed your mind.

Larry Wall: 5 Programming Languages Everyone Should Know

In this short video, Perl inventor Larry Wall offers his thoughts on which languages are important to know. He suggests JavaScript, Java, Haskell, C and Perl - but you really need to hear why he suggests them.

Watch now…


blog comments powered by Disqus
Next Post
Even longer than that  05 May 2018
Prior Post
A simple fix takes longer than you think  28 Apr 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