In this issue from September 2017: Writing useful git commit messages; a NuGet feature for Visual Studio 2017; things to do before you commit; how to spot a phishing attack; weird commits in the Linux kernel; and a video on government mandated cryptographic insecurity.
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 Write a Git Commit Message
Commit messages are far more important in git than they were in earlier version control tools like svn. Here are seven guidelines for writing commit messages that work with the various git tools to help developers (re)establish context when reviewing the history of the code.
- Separate subject from body with a blank line
- Limit the subject line to 50 characters
- Capitalize the subject line
- Do not end the subject line with a period
- Use the imperative mood in the subject line
- Wrap the body at 72 characters
- Use the body to explain what and why vs. how
Bonus tip: Learn to love the command line. Leave the IDE behind.
Software and Updates
A new or upgraded tool can be a beautiful thing.
Visual Studio 2017 can automatically recommend NuGet packages for unknown types
The latest update of Visual Studio 2017 includes a nifty new feature - if you write code that references unknown types, it can automagically suggest the right NuGet package for you. The feature is turned off by default - this post from Scott Hanselman details how to turn it on and how it works.
A great developer does more than just write great code.
Things Everyone Forgets Before Committing Code
With the common git mantra of making frequent small commits, it can be easy to lose track of all the other things that need to be done before we can declare code as done.
In this post, originally from the NDepend blog, Erik Dietrich suggests a number of things that you should be doing, ideally before every commit, but at the very least before you merge your branch or create a PR.
Staying safe online and writing secure systems are both harder than we think.
Something’s phishy: How to detect phishing attempts
Telling the difference between a genuine message and a phishing attempt is becoming harder and harder. Unfortunately, gone are the days when you could rely on missing images, spelling mistakes, and poor grammar when trying to tell the difference.
From the MalwareBytes blog, this post looks at the different kinds of phishing attacks and how to be safe.
Sometimes the answer is random.
The Biggest and Weirdest Commits in Linux Kernel Git History
The distributed nature of git is one its most defining features, with its content-addressable object store being a key implementation detail. As one of the largest and oldest git repos, the Linux Kernel project (with over 650k commits) has a few oddities. Discover more - and learn a little about how git works under the hood - in this interesting post from Destroy All Software
Video of the Week
Take some time to feed your mind.
Ross Anderson - Keys Under Doormats
This is a fascinating talk about the history of cryptography and of cryptographic policy since World War II, presented by Ross Anderson from the Mathematics Faculty of Cambridge University. He particularly highlights the tensions between academia and government.