Some software tools, projects or languages I like (or I would like) to use in my day-to-day work.

Git

I use Git for all my projects. I learnt it first through the command-line interface, then with the Magit Emacs package, which offers a nice and easy to learn user interface.

I carried out several teaching lessons of Git, first to some PhD. students of the CRI, then to some senior researchers of the CMM.

I have setup gitolite on my server to manage remotes and multi-user projects, but I plan to install a full Gitlab instance when I migrate to a more powerfull machine.

Arch Linux

Arch Linux is a GNU/Linux rolling-release distribution, focusing on simplicity and flexibility. It can be hard to install onto one's computer (the first time), but I have learn a lot of things doing so.

Meson

The build system Meson helps generating multi-platform compilation recipes for software applications or libraries written in C and C++ (and other programming languages).

Its simple syntax makes it far easier to use than older alternatives, such as the infamous Autotools and CMake. Besides, a lot of open-source software projects have ditched the Autotools for Meson.

I have myself ported several (simple) applications to Meson.

Emacs

THE text editor (and so much more), Emacs is my main tool to write or develop something.

Here is a list of some Emacs packages I use:

  • auctex
    to deal with LaTeX files/projects
  • magit
    to use Git inside Emacs
  • rtags
    for C/C++ code completion/warnings/goto-definitions
  • multiple-cursors
    because I have not yet learnt to use kbd macros
  • lsp-ui
    to support the Language Server Protocol. I use it mainly for Rust, but it supports Python, Java, and other languages too
  • ivy
    better completion for Emacs

(Well, I also know some basics of Vim)

\LaTeX{}

LaTeX is a text processing system, somewhat similar to Microsoft Word or LibreOffice Writer, but somewhat totally different, as it is based on a markup (and programming) language.

I have learnt LaTeX since the beginning of my PhD. Thesis, and I have written a lot of documents using it, such as my thesis dissertation (and my PhD. defense presentation).

Here lies a minimal "Hello World" LaTeX example:

\documentclass{minimal}

\begin{document}
Hello \LaTeX{}!
\end{document}

One of my main achievements in LaTeX, aside from my thesis dissertation, is its cover, which I reproduced in LaTeX from the Microsoft Word original version (more info in the Projects page!).

I also have taught a small number of PhD. students to begin to write their stuff using it.

Rust

One of the shiny new programming languages of this decade, Rust aims to be the next contender in the systems programming category. Backed by type theory and programming languages research, it is a safer alternative to C and C++.

While I have not yet developped anything meaningful in Rust, I regularly follow the evolution of this langage and its ecosystem. Having spent a lot of time developing (and debugging) C applications, I am very interested in it.

As above, a minimal "Hello World" example:

fn main() {
  println!("Hello Rust!);
}

Bépo

I had always wanted to type properly on a keyboard, but I had never found the will to commit myself to learn the infamous French keyboard layout, Azerty (a local transposition of Qwerty).

Back in 2013, I was introduced to Bépo, a Dvorak-inspired, French-adapted ergonomic layout, available in every Linux distribution. I did a lot of typing exercices, and now I can type efficiently without looking at my fingers.