Doing A/B testing with Apache httpd (2014)

When I started writing the landing page for The Hacker's Guide to Python, I wanted to try new things at the same time. I read about A/B testing a while ago, and I figured it was a good opportunity to test it out. A/B testing If you do | Continue reading


@julien.danjou.info | 1 year ago

Python Tools to Try in 2021

Continue reading


@julien.danjou.info | 2 years ago

An Introduction to Functional Programming with Python

Many Python developers are unaware of the extent to which you can use functional programming in Python, which is a shame: with few exceptions, functional programming allows you to write more concise and efficient code. Moreover, Python’s support for functional programming is exte … | Continue reading


@julien.danjou.info | 3 years ago

One Year of Mergify

It has been close to a year now that I've incorporated my new company, Mergify. I've been busy, and I barely wrote anything about it so far. Now is an excellent time to take a break and reflect a bit on what happened during those last 12 months. What problem | Continue reading


@julien.danjou.info | 4 years ago

Atomic lock-free counters in Python

At Datadog, we're really into metrics. We love them, we store them, but we also generate them. To do that, you need to juggle with integers that are incremented, also known as counters. While having an integer that changes its value sounds dull, it might not be without some surpr … | Continue reading


@julien.danjou.info | 4 years ago

Properly managing your .gitignore file

There's not a single month where I don't have to explain this. I thought it'd be a good opportunity to write about this .gitignore file so everyone is up to date on this magic file. The purpose of .gitignoreThe .gitignore file is meant to be a list of files that | Continue reading


@julien.danjou.info | 4 years ago

Automatic Handling of Dependencies in Python

Dependencies are a nightmare for many people. Some even argue they aretechnicaldebt[https://thenewstack.io/to-reduce-tech-debt-eliminate-dependencies-and-refactoring/]. Managing the list of the libraries of your software is a horrible experience.Updating them — automatically? — s … | Continue reading


@julien.danjou.info | 4 years ago

How to Log Properly in Python

Logging is one of the most underrated features. Often ignored by softwareengineers, it can save your time when your application's running in production.Most teams don't think about it until it's too late in their developmentprocess. It's when things start to get wrong in deployme … | Continue reading


@julien.danjou.info | 5 years ago

High performance in Python with zero copy and the buffer protocol

Whatever your programs are doing, they often have to deal with vast amounts ofdata. This data is usually represented and manipulated in the form of strings.However, handling such a large quantity of input in strings can be veryineffective once you start manipulating them by copyi … | Continue reading


@julien.danjou.info | 5 years ago

A multi-value syntax tree filtering in Python

A while ago, we've seen how to write a simple filtering syntax tree with Python. The idea was to provide a small abstract syntax tree with an easy to write data structure that would be able to filter a value. Filtering meaning that once evaluated, our AST would return either | Continue reading


@julien.danjou.info | 5 years ago

Stop merging your pull requests manually

If there's something that I hate, it's doing things manually when I know I could automate them. Am I alone in this situation? I doubt so. Nevertheless, every day, they are thousands of developers using GitHub that are doing the same thing over and over again: they click on this | Continue reading


@julien.danjou.info | 5 years ago

A simple filtering syntax tree in Python

Working on various pieces of software those last years, I noticed that there's always a feature that requires implementing some DSL. The problem with DSL is that it is never the road that you want to go. I remember how creating my first DSL was fascinating: after using programmin … | Continue reading


@julien.danjou.info | 5 years ago