The Blog

Here you’ll find articles about the world of web development.

Throttling outbound emails with Mailman & Exim

Many ISPs have limits on the amount of emails received in a period of time, not respecting this will reduce the reputation of the sender. Mailman 2 doesn’t support throttling, though there’re some patches in the wild adding this feature. Exim supports rate limiting incoming emails, but not emails going out, though it may be possible to do this with

Leer más »

The system-ui font

Imagine: font-family: system-ui, sans-serif; Enabled by default in Chrome 56, system-ui is a special font name, that tells Chrome to use the system font (be it Cantarell in Gnome, San Francisco in macOS, etc.) But system-ui is something new, as far as I know available only in the latest versions of Blink based browsers. So what to do as of today? This is from Bootstrap 4:

Leer más »

HTTP Strict Transport Security (HSTS)

Just learned about HSTS and started using it. First let me explain HSTS with my own words. Scenario without hsts: The user types the domain name in the URL bar without the protocol, such as “example.com”, and the browser automatically adds the “http://” prefix. This first request is vulnerable to Man In The Middle (MITM) attacks. The server replies with

Leer más »

Backup MX for Mailman, with Exim

This week a hard disk from one of my servers broke. It has been replaced with just 3 minutes of downtime (kudos to OVH), and right now the RAID array is being rebuilt. Since this is the first time this happens to me, and the server is running a production mailman service, I decided to take my time and set-up a backup

Leer más »

Python: Running Valgrind on a C extension

This is how I use Valgrind to check for memory bugs in pygit2. Glibc with debug symbols The first issue I run into is that Valgrind refused to work if Glibc was not compiled with debug symbols. This is how I did in my Gentoo notebook, I edited the /etc/portage/make.conf file to enable the splitdebug feature: /etc/portage/make.conf FEATURES=”${FEATURES} splitdebug compressdebug -nostrip” Then re-emerged the glibc: $ sudo emerge glibc

Leer más »

Gentoo: How to debug Exim

If you have some problem with exim, and the logs are not enough, edit the /etc/conf.d/exim file, and add the debugging option (-d): /etc/conf.d/exim # Command-line options for running exim EXIM_OPTS=”-bd -q15m -d” Then restart exim: # /etc/init.d/exim restart The exim daemon will not be detached from the console, the debug information will be printed to the standard output. Good luck!

Leer más »

Gentoo: Mailman with Nginx & Exim

This is how I installed Mailman in a Gentoo server, using Nginx as the web server and Exim as the MTA. Mailman By default Mailman runs with the Apache user and group. First step is to configure Mailman so it runs with the Nginx user and group. To do so edit /etc/make.conf and add these lines: /etc/make.conf MAILMAN_CGIUID=”nginx” MAILMAN_CGIGID=”nginx” Now you can go ahead and emerge Mailman. Next

Leer más »