Giving up on things you'll never finish
Kyle Martineau-McFarlane
15 September 2019
Introduction
Programmers are often told that, when looking for a new personal project, to scratch an itch; to find something that bothers them and implement a tool to resolve that problem. I recently had such an itch - I could never remember the correct syntax for a sudoers file, especially the NOPASSWD bit. "I know!", I thought in my confidence. "I'll build a web application to help me define a sudoers file, then it won't be an issue again! It should only take a few evenings." Famous last words.
I duly purchased a cool domain name with an interesting TLD and started doing some development. But after reading through the details of the sudoers file grammar, I realised that it was more complex than I really needed. The grammar allows for all sorts of detailed, executable-specific permissions and non-permissions, and complex permutations of what can be done. All I really needed was a single command: %adm ALL=(ALL) NOPASSWD: ALL.
So, I gave up. I switched off the auto-renew on my domain, deleted the repo and gave it no more thought.
The world has plenty of code, and writing some more code to make it easier to write some other code that, let's be honest, will never be used, is just a waste of time. Better to give up on something pointless and devote my time to something more worthwhile, rather than spending time and effort learning something nobody cares about.