mbdata 2016.07.17 released

I have released a new version of mbdata. It's a small Python package for working with the MusicBrainz database using SQLAlchemy.

This version updates the SQLAlchemy models to the latest MusicBrainz database schema. It also adds support for Python 3 in addition to Python 2.


pip install mbdata==2016.7.17

Chromaprint 1.3.2 released

A new version of Chromaprint has been released. This is a very small bug fix release fixing fpcalc crash on a corrupt file.

Changes since version 1.3.1:

  • Fixed crash on an invalid audio file that FFmpeg could not decode.
  • Fixed build on Ubuntu 14.04 with libav.


Chromaprint 1.3.1 released

A new version of Chromaprint has been released.

Changes since version 1.3:

  • Fixed fpcalc -length to actually restrict fingerprints the requested length.
  • Fixed SONAME version for the shared library.


Chromaprint 1.3 released

A new version of Chromaprint has been released. This is another small release, there are no changes to the core functionality.

Changes since version 1.2:

  • The binary packages have been built with FFmpeg 2.8.6, adding support for DSF files
  • You can use use fpcalc -length 0 to get the full fingerprint
  • New function chromaprint_get_fingerprint_hash for calculating SimHash from the fingerprint data
  • Added info section to the fpcalc executable on Mac OS X
  • Generate .pc (pkg-config) file on Mac OS X when not building a framework
  • Removed use of some long deprecated FFmpeg APIs
  • Some smaller bug fixes


Let's Encrypt and Nginx

I'm late to the game, but I finally gave Let's Encrypt a try and I love it. The biggest advantage is the fact that SSL certificates can be completely automated. No more remembering how to renew certificates once a year.

These are mostly just notes for my future use, but maybe it will be useful for somebody. This is how I use Let's Encrypt with Nginx.

Install the letsencrypt client:

cd /opt
git clone https://github.com/letsencrypt/letsencrypt
VENV_PATH=/opt/letsencrypt/env/ /opt/letsencrypt/letsencrypt-auto plugins

Create a directory for the client to use for authorization:

mkdir -p /srv/www/letsencrypt

Then I put this into my nginx site config:

vim /etc/nginx/sites-enabled/example.com
location /.well-known/acme-challenge {
    root /srv/www/letsencrypt;
service nginx reload

That allows the letsencrypt client to manage authorization files for my domain. And now I can generate the first certificate:

/opt/letsencrypt/env/bin/letsencrypt certonly --webroot -w /srv/www/letsencrypt/ -d example.com,www.example.com

Hopefully, that should generate a certificate and I can put them into the HTTPS section of my nginx config:

vim /etc/nginx/sites-enabled/example.com
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
service nginx reload

And for the main benefit, I can now set up a cron job like this, that will make sure my certificates stay up to date:

10 20 * * * /opt/letsencrypt/env/bin/letsencrypt-renewer >/dev/null && service nginx reload >/dev/null

← Older posts