# Postmortem

Recently big outages have occurred impacting two of the main cloud vendors

highlighting the importance of a process dedicated to analyse the incidents or outage in the aim of knowing what happened and why, but above all to learn and take appropriate actions in order to avoid the same problems to occur again. This process is called postmortem — or post mortem in two words.

# Global gitignore

Here is a short but very useful tip to avoid committing unwanted files by configuring a gitignore at global level. The main advantage is that it’s configured once for all and you don’t have to do it on each project.

# Docker images size

How does one get the size of a Docker image before they pull it to their machine?

# Linux startup scripts

When it comes to perform customization to startup scripts in order to initialize or tune something, it’s not obvious to pick the right startup file. The way the system is reading startup files depends on the context and mainly if the shell is

• Interactive / non-interactive shell

# APT usage in Docker images

When packages are installed in a Dockerfile through APT (Debian, Ubuntu) you should comply with some best practices. One of the main reason is to try to keep the image as as small as possible, but it’s not the only one. Let’s examine a typical snippet of package’s installation.

# Skeletal profiles

Sample startup files are traditionally kept in /etc/skel. If you customize your systems' startup file examples, /usr/local/etc/skel is a reasonable place to put the modified copies.1

# Pytest smoke testing

It’s a good practice to test that some prerequisites are met before going further. This practice is sometimes called Smoke testing. When you have to setup an infrastructure either on a host or in docker images. In this case Pytest + testinfra is a terrific combo to perform this kind of testing.

# Some pytest best practices

Recently I had to use the R test framework called ‌testthat. I noticed that this framework is very human oriented. Its name comes from the way to write tests that aims to make a readable sentence.

# Data Deprecation in R-package

After my recent article on marking deprecated code in R, I had the same problem on R data package. Unfortunately I was not able to find a convenient out-of-the-box solution, see this question on SO.

So after a first draft, I’ve applied a process that seems to be a reasonable–good enough–solution.

# Too many categories

By using the same fun analysis as in my previous article, I would like too highlight a problem that often occurs, dealing with too much categories (or factors as they are called in R) avoid to see clearly the big pictures.

# May the force be with the units

When working with data it’s very important to be aware of the unit of each variable. To make it explicit it’s convenient to use the package called units.

# Display Weekends in R Using Tsibble

In the frame of the Hackaviz2020 organized by the ToulouseDataViz, I had to work on displaying weekends on a plot. And, this is not so easy for a novice …

# Squashing Docker Images

I was wondering the effect of merging layers (squashing) on the size of an image. Now Docker provides an experimental --squash option for the build.

# Rootless Podman

You might be saying to yourself, “but I have rootless containers right now with Docker - I run my docker commands as a regular user and it works all the time.” Even though you are executing the docker command line tool without root, the docker daemon is executing those requests as root on your behalf […]

# Zombie Processes Back in K8S

After my previous article on zombie processes I was curious to see if and how they can affect containers running in a Kubernetes (K8S) cluster.

# Zombie Processes

## Zombie processes, a short definition

The first step is an orphaned process, a process that has lost his parent.

Suppose the parent process terminates, either intentionally (because the program logic has determined that it should exit), or caused by a user action (e.g. the user killed the process). What happens then to its children? They no longer have a parent process, so they become “orphaned” (this is the actual technical term).

# Pinball Productivity

The pinball metaphor Another interesting thing in the book Elastic Leadership 1 by Roy Osherove. It’s more an anecdote, however the analogy is funny. He talks about another—quite old—book on management called Becoming a Technical Leader 2. In this book, the author, Gerald Weinberg tells a story about improving the high score at the pinball game. Here is the progress of the score along the time. Pinball score It’s easy to figure out that the progress does not follow a steady line, we can see several linear—and slow—progress, then big steps.

# Multiple Image Tags with Docker Compose

Recently I answered a question on Stack Overflow

How to use multiple image tags with docker-compose?

The validated answer was based on extends, but it cannot by used anymore in Compose file format 3.x. As suggested by a user, the Extension fields capability added in the version 3.4 of Docker Compose can replace it to achieve the same goal: reuse a single definition to set several tags.

# The Three Team Phases

Three phases In his book Elastic Leadership 1, Roy Osherove talks about an interesting principle he call the Three team phases. If you are a team leader or just a team member your team should be in one of these three phases. Survival phase (no time to learn): The team is spending its time fighting fires or trying to reach deadlines. The team is struggling and has to use the most efficient solution—certainly not the most efficient, but the most pragmatic—to achieve the work as soon as possible.

# Deprecation in R

After my recent article on marking deprecated code in Python, I had to do the same thing in R. It’s included in the language (in The R Base Package).