Other articles

  1. Undoing Things With Git

    Sometimes bad things happen in a software project and you have to revert a change that has already been committed. There are several ways to do this with Git, including Git's slightly scary ability of changing history. I'll show you the techniques I found most useful.

    The classic way of …

    read more
  2. Professional Deployment and Operation of Web Applications

    There are millions of web applications on the Internet that are under constant development. Paying software developers to work on bug fixes and new features is quite expensive already, but what's often neglected is the cost for deployment and operation. Well-run organizations invest in their deployment and runtime infrastructure and …

    read more
  3. A Metadata Format For CSV Files

    Using CSV files in batch processing applications has many advantages, most prominently interoperability between programming languages and tools. One of its weaker points is data integrity though. The format has no way to declare data types or additional metadata other than assigning names to data fields using a header.

    The …

    read more
  4. SSH Public Key Authentication

    A lot of people use SSH to log into remote hosts. SSH is secure and works well, but if you have to access many hosts with long, well-chosen passwords there is a lot of typing to do just for authentication.

    In this article I'll walk you through a basic public …

    read more
  5. Line Editing for the Python Interpreter

    The interactive python interpreter is a highly useful tool. When writing python code, I always run it in a terminal to test things and to access the documentation. Unfortunately, the built-in line editing capabilities are limited: There's no history, tab-completion, or other advanced editing features that shells like bash provide …

    read more