• CLI design: Do not reinvent option parsing

    In the previous post, we saw what good and bad use cases for flags in the interface of a command-line application are. We talked about the theory, so it is now the time to talk about the implementation details. [Continue reading]

  • CLI design: Putting flags to good use

    As the Wikipedia puts it in its Command-line interface page: [Continue reading]

  • CLI design: Requesting and offering help

    Any CLI application must offer help to describe its command line syntax: the flags it supports, the subcommands it implements, the meaning of the positional arguments, etc. Failure to do results in an application that is completely unusable: unlike GUI applications, the interface of CLI tools is not discoverable without instructions. [Continue reading]

  • CLI design: Error reporting

    Error reporting is a tricky business. Get it right and your users will be able to correct their actions quickly. Get it wrong and you will be the cause of your user's frustration — because, face it: A) users will make mistakes and B) your application will encounter erroneous conditions due to bugs or unpredicted scenarios. [Continue reading]

  • CLI design: The CLI is the presentation layer

    Treat the code that implements a CLI utility to the highest standards. [Continue reading]

  • CLI design: Series introduction

    Ready for a new series? [Continue reading]

  • Writing good release notes

    As the developer of a software package, you have just finished preparing a shiny new release. No matter how big the release is, you obviously want your users to upgrade so that they can experience all the new features and bug fixes — or, rather, witness the results of your hard work. But how do you convince them to do so? [Continue reading]

  • Top 5 tips to write great commit log messages

    Writing commit messages is something that every programmer has to face at some point. It may be as early as when starting to contribute to an open source project from home or it can be as late as when joining a job where the development team uses a Version Control System (VCS for short). (Off topic tip: if an open source project or a job you join do not use any VCS, consider twice thrice if you want to do so.) [Continue reading]

  • Readability: Series wrap-up

    That's it! After two months worth of posts, it is time to part with the the readability series. We have covered a lot of ground with these 14 posts: from mundane things such as blank lines and spelling to deeper topics involving dictionaries and global state. [Continue reading]