Exyr.org

2012

Who wants to maintain Flask-FlatPages?

I stopped using Flask-FlatPages on this site and I most likely won’t work on it anymore. Anyone wants to take over and maintain the project?

tinycss: a new CSS parser for Python

I made tinycss, a new free software CSS parser for Python. It is extensible, well-documented, well-tested and fast. It replaces cssutils in both WeasyPrint and CairoSVG.

2011

virtualenv HOWTO

Slides for an introduction to virtualenv and pip I gave recently.

Poor man’s NTP

How to synchronize a Linux computer’s clock when NTP doesn’t work.

Single-threaded event loop for file input and timers

To wait for various events and without polling, a blocking threads for each event is the obvious solution. However, multi-threading comes with its pitfalls and problems. Here we are going to see how to build and event loop the handle multiple event in the same thread.

Programatically open multiple GNOME Terminal tabs

To run several tasks in parallel and keep their output separated, run each one in its own shell. Doing so can be automated, and thus it should. Here is how to open a GNOME Terminal window with multiple tabs from a script.

Random pronounceable passwords

Using a sample text for statistics and Markov chains, we can generate passwords that are both random (and thus strong) and pronounceable (and thus easier to memorize.)

2010

Using Jinja2 in Django

How to replace Django’s templating system by Jinja2 and still profit from it eg. in generic views.

Flask-Static: yet another static website generator

I’ve been working on re-launching my personal website (you’re looking at the result), and wrote a static website generator in the process. It’s made of two Flask extension: Flask-FlatPages gives easy access to content with metadata stored in text files, and Flask-Static takes a snapshot of a Flask application as static files.