Hello! I’m Xavier Jouvenot and in this small post, we are going to see how easily and quickly can you specify arguments for your program in C++.

Self promotion: You can find other articles on my website 😉

Problematic

All programs don’t have a graphical user interface, and even those whom have one can also be called using a shell/bash/batch command in the Terminal of you choice. …


Hello ! I’m Xavier Jouvenot and in this small post, we are going to see how to factorize and create reusable processes with Azure Pipelines.

Self promotion: You can find other articles on my website 😉

Problematic

When creating some processes on Azure Pipelines, you may want to simplify it like you do with code when using functions. …


I’m Xavier Jouvenot and in this small post, we are going to see how to deal with several gcc version on your machine.

Self promotion: You can find other articles on my website 😉

Problematic

When working on several projects, or even on one project, you may need to use different versions of a same program. Indeed, for some programs or libraries, you may want to support several version of a program and be able to test it on your machine.

This problem can be even more of a preoccupation if you maintain a library as you may want for your users to be able to use it with several versions of compilers like gcc. …


Hello ! I’m Xavier Jouvenot and in this small post, we are going to see how to update the same line in the Terminal.

Self promotion: You can find other articles on my website 😉

Problematic

When displaying information in the terminal with your program, you can easily end up spamming it with so much information that no human can understand what is happening. Moreover, you can also fill the history buffer, so that the useful information is lost if a user want to come back and look at what happened.

To reduce the amount of information displayed in the terminal, a solution is to update the same line over and over for similar informations. For example, to mark the progress of a download/update, you don’t have to display a new line each time a new bytes has been downloaded. You rather want to update the number of Bytes downloaded on the same line during the progression of the download, which will reduce the amount of flooding of your application. …


Hello ! I’m Xavier Jouvenot and in this small post, we are going to see how to factorize layer code in Android development.

Self promotion: You can find other articles on my website 😉

Problematic

When developing an application, you may have some Activities, looking a lot alike, and this can, and will lead to a lot of duplicated layout description, or at least with layouts that are very similar from one Activity to the other.

Wouldn’t be great if we had a way to factorize such layout to make it easily reusable, like we factorize code into functions ?

Well, this blog post would not be here if there was none, so let’s take a look at the solution…


Hello ! I’m Xavier Jouvenot and in this small post, we are going to see how to open a new Activity in a Android App.

Self promotion: You can find other articles on my website 😉

Problematic

An activity is a single, focused thing that the user can do.

This quote from the Activity class documentation summarise well what is the purpose of one activity. Since an Activity is”a single and focused thing”, and the majority of applications allows us to do several focused things, a question raised itself: how to go from one Activity to another ? …


Hello! I’m Xavier Jouvenot and in this small post, we are going to see how to easily and quickly read/play an audio file in C++.

Self promotion: You can find other articles on my website 😉

Problematic

In C++, there are sadly some operations that require a lot of boilerplate code to do some simple operations. Playing a audio file is on of those operation that can be difficult to do natively in C++, whereas in some other language such as Python or Javascript.

But the more the C++ language goes forward with its new releases and the more the C++ tools progress, the more those operations become simpler to do. And with that in mind, when I tried to play a sound file in a simple terminal application and didn’t find some valid article or online solution, I decided to write about it, and this is what this article is about, and what we are going to see right now. …


Hello ! I’m Xavier Jouvenot and in this small post, we are going to see how to configure some optional steps in Azure Pipelines.

Self promotion: You can find other articles on my website 😉

Problematic

When creating a CI/CD pipeline, you may want to trigger some scripts only if some conditions are met. Indeed, depending on the operating system, or on some inputs, you may want to have a pipeline able to adapt itself and run the right scripts to achieve your processes/tests.

I covered the operating system part of it in another blog post, but we are going to dive a little bit deeper in this article. …


Hello! I’m Xavier Jouvenot and in this blog post, we are going to see how to correctly fix an error with undefined “_futimens” symbol in LLVM on OSX.

Self-promotion: You can find other articles on my website

Problematic

When integrating the latest version of LLVM with your OSX project, you may have encountered an error like:

Undefined symbols for architecture x86_64:
"_futimens", referenced from:
llvm::sys::fs::setLastModificationAndAccessTime(int, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio > >) in libLLVMSupport.a(Path.cpp.o)

This is a problem you will surely meet when trying to use a llvm imported via brew or macport or even from the GitHub of the LLVM project in your program. …


Hi dear reader, I’m Xavier Jouvenot and this is the sixth article about Code Craft, by Pete Goodliffe.

If you want, you can look at the previous article about ‘How to write comments’, and you can find book here.

Why should I even care about errors ?

For a lot of programmers, as long as the code they write works in the few conditions they have tested on their machine, their job is done, and, any problems that shows up, come from the people that don’t know how to use their code. They take pride in their code and refuse any critic over it. …

Xavier Jouvenot

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store