Skip to main content

This is a list of guides I wrote on this blog. They are setup guides for some technologies, or ways to implement best programming practices.

  • Adventures in Windows: Music Player Daemon

    Topic: MPD Platform: Windows

    Recently, I had to reinstall Windows. One of the things I had to set up was MPD, the Music Player Daemon.

    This is a short guide on how to do this.

  • Structuring and automating a Python project with the Python Project Template

    Topic: Python Platform: any platform

    To create a project that other people can use and contribute to, you need to follow a specific directory structure. Moreover, releasing a new version should be as simple and painless as possible. For my projects, I use a template that has the structure already in place, and comes with automation for almost every part of a release.

  • Python Apps the Right Way: entry points and scripts

    Topic: Python Platform: any platform

    There are multiple ways to write an app in Python. However, not all of them provide your users with the best experience.

    One of the problems some people encounter is writing launch scripts. The best way to handle this is the Entry Points mechanism of Setuptools, and a __main__.py file. It’s quite easy to implement. If you’re interested, read on to learn more!

  • Deploying Python Web Applications with nginx and uWSGI Emperor

    Topic: Python, web apps Platform: Ubuntu, Debian, Fedora, CentOS, Arch Linux

    You’ve just written a great Python web application. Now, you want to share it with the world. In order to do that, you need a server, and some software to do that for you.

    The following is a comprehensive guide on how to accomplish that, on multiple Linux-based operating systems, using nginx and uWSGI Emperor. It doesn’t force you to use any specific web framework — Flask, Django, Pyramid, Bottle will all work. Written for Ubuntu, Debian, Fedora, CentOS and Arch Linux (should be helpful for other systems, too). Now with an Ansible Playbook.

    Revision 5 (2017-04-29): Better module specification description, environment variable configuration info