Posts

  • Summary: Building Evolutionary Architectures

    I recently finished the book on Building Evolutionary Architectures and wanted to summarize it for future reference.

  • How to change PostgreSQL's data directory on Linux

    There comes a time when you have to restore a relatively large database locally. Most likely, you’ve partitioned your disk, and your root partition got the thick end of it, 50 GB if you were generous. Let’s assume that that’s not nearly enough for the database you’re about to restore. At the same time, your /home partition got the rest of the disk space you had available.

  • Automate it before you document it

    I help clients fix their legacy software for a living, and one of the most common complaints (or regrets) I hear is “If only we had documented pain-in-the-ass-service, we wouldn’t have had these problems”. Despite the best intentions, this is a common misconception and a dangerous generalization that produces more harm than good in the long run.

  • It's just business

    As I was making breakfast this morning, a social media post about why developers keep autoplaying videos on their sites was brought to my attention. There were some fair counterarguments in the comments section about the clients’ wishes, and some less constructive arguments that can be categorized under the “Just say no!” category.

  • Controlling access to files uploaded by users

    Imagine a situation where you have to check whether or not a user that sent the request can access or download files that were uploaded by another user. Perhaps user A uploaded a file that needs to be shared only with user B or only with authenticated users. If your application is deployed behind a reverse-proxy such as nginx, you can use the best of both worlds: your application for checking the user’s permissions and the Web server for serving the files the application tells it to serve.

  • Python package distribution can be easy

    There have been so many blog posts and presentations about Python packaging that I’m reluctant to write what could be interpreted as yet another one, but I’ll give it a go. Why? Because up until recently, I was working on several interconnected libraries, each of which had a more ridiculous build process than the next.

  • Optimizing websites and APIs with cache and ETags

    When creating a public website or a web app with a public API, you generally want things to run as smooth as possible for the end-user. You also might want to minimize the server’s response time and resource consumption and you want to do it as fast as possible.

subscribe via RSS