bookmark_borderSpeeding a CI/CD pipeline over CircleCI

This post is annectodic, but I figured it could still be helpful in some way, so here I go.

Classic story. At work, the CircleCI CI/CD pipeline of the project I work on, as time went by, became slower and slower. Recently, it reached a bit over forty minutes. I worked on it and brought it back under ten minutes. Here is what I did.

Continue reading “Speeding a CI/CD pipeline over CircleCI”

bookmark_borderPython code formatters comparison: Black, autopep8 and YAPF

Following some discussions at work and the will of the team to adopt a python code formatter, I set out to explore some of them. No need to say, the contenders had to aim towards pep8 compliance. Here are my findings on three of them.
Continue reading “Python code formatters comparison: Black, autopep8 and YAPF”

bookmark_borderAWS marketplace and no longer supported instance types

I’ve been trying and trying to launch a Neo4j instance on the marketplace without success. It always gave me the nice “success” message, but when I went to the EC2 console: nothing!

A nice green “success” message even though it doesn’t work.

I finally decided to do it the hard way: manually. First step: select an instance type. I immediately try to select the same low cost instance I had picked in the marketplace (m3.medium) and to my surprise that type wasn’t there.

Instance type selection as per the Neo4j marketplace page.

Adding 1 + 1, I went back to the market place and tried with an instance type that still exists: m4.large… success!

So I don’t know who is to blame here, but here are my 2 questions to the internet:

  1. Why do we get the success message even though it doesn’t work?
  2. Why are unsupported instance types offered in the market place?

bookmark_borderPython logging to stackdriver

I recently deployed a python application in google app engine / container engine. When I went to check the logs, everything was logged at the “ERROR” level even though my application uses python logging properly. As far as I know there are 2 ways to fix that:

  1. Use the stackdriver client, which requires an additional dependency and somewhat binds your program to google app engine.
  2. Format the logs in a way that stackdriver can parse them, which is easily configurable.

Continue reading “Python logging to stackdriver”

bookmark_borderRecipe: Testing multiple python versions with pyenv and tox

If you develop a ton of python applications and you need to test under a lot of different versions, and by a lot I mean overlapping major/minor versions (like 3.5.3 and 3.5.4), then a good option is to use pyenv. Along with tox, you can easily test your application against various major/minor versions.

Here is how to do it.
Continue reading “Recipe: Testing multiple python versions with pyenv and tox”

bookmark_borderRecipe: Google App Engine, Cloud SQL and sqlalchemy

Here is a recipe on how I made those thing work together both on a linux development environment and in production. The important thing to remember is: just like recipes for brownies, there are other recipes to achieve the same thing.

The following steps assume you have a Google cloud account with the proper permissions.

Continue reading “Recipe: Google App Engine, Cloud SQL and sqlalchemy”

bookmark_borderLa chasse aux dépendances avec docker

On veut compiler une nouvelle librairie dans notre beau code. Le “README” indique seulement 2 dépendances… Par expérience, c’est rare que la liste soit exhaustive.

Voici un truc rapide de la part d’un collègue pour aller à la «chasse aux dépendances» sans cochonner sa machine. Ça implique Docker et linux.

Continue reading “La chasse aux dépendances avec docker”

bookmark_borderLecture: The Art of Debugging

Déverminer (déboguer) est, je crois, un sujet sur lequel je n’avais jamais lu jusqu’à maintenant. Travaillant maintenant presque à temps plein sur le projet MLDB, en C++, gdb est un de mes outils de travail au quotidien. Comme la productivité d’un programmeur dépend largement de la maîtrise de ses outils, j’ai décidé d’y consacrer du temps.

Continue reading “Lecture: The Art of Debugging”

The Art of Debugging with GDB, DDD, and Eclipse Book Cover The Art of Debugging with GDB, DDD, and Eclipse
Norman S. Matloff, Peter Jay Salzman,
No Starch Press