− Blocking unsolicited content
In response to Mozilla’s Proposed Principles for Content Blocking: I want to block all unsolicited content. Explanation in more than 140 characters.
In response to Mozilla’s Proposed Principles for Content Blocking: I want to block all unsolicited content. Explanation in more than 140 characters.
What is cairocffi, how does it relate to pycairo, and why did I build it?
I gave a talk in the Lyon city hall for the W3C Developer Meetup, presenting WeasyPrint, Kozea, and how we got there.
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?
I just joined W3C’s CSS Working Group as an Invited Expert.
I’ll be giving a talk about WeasyPrint at PyConFR on Sunday.
I just released Flask-WeasyPrint
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.
We just changed WeasyPrint’s license from AGPL to BSD.
Don’t store passwords in plain text. Don’t use a fast algorithm. And don’t forget the salt.
We just released Multicorn. It enables you to write Foreign Data Wrappers for PostgreSQL in Python. Any data source can be exposed as a table and queried with full SQL.
The project I’ve been working on in the past few months has finally reached an usable state and has gotten a public release! See weasyprint.org
Have a script (eg. your test suite) run automatically every time a file changes.
I just packaged for Arch Linux the Gedit Whitespace Terminator and Gedit Source Code Browser plugins for Gedit 3. You can find them in the AUR.
Slides for an introduction to virtualenv and pip I gave recently.
How to synchronize a Linux computer’s clock when NTP doesn’t work.
You can not make Gitorious or GitHub push to somewhere else, so mirroring them requires a few more steps.
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.
Just because the new name is so much cooler.
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.
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.)
How to replace Django’s templating system by Jinja2 and still profit from it eg. in generic views.
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.