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 powerful 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:

  • magit is the ultimate GUI for Git,
  • lsp-mode is my Emacs LSP client,
  • consult, vertico, orderless, corfu & marginalia are my interfaces to the completion system(s),
  • auctex to write LaTeX,
  • tree-sitter for the on-the-fly syntax highlighting,
  • yasnippet for inserting common code snippets,
  • flycheck for syntax checking and
  • use-package to manage Emacs third-party packages.

(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:

1\documentclass{minimal}
2
3\begin{document}
4Hello \LaTeX{}!
5\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++.

Since the release of Rust 1.0 in 2015, a lot of things have been written into it. I've began to replace some basic terminal tools by more efficient Rust alternatives. In particular, I recommend:

  • bat as a better cat,
  • ripgrep as a better grep,
  • lsd as a better ls,
  • fd as a better find,
  • sd as a better sed,
  • zoxide or
  • broot as better cd,
  • dust as a better du,
  • lfs as a better df and
  • pueue as an alternative to systemd-run.

I don't use but I'm also interested in:

  • nushell to replace ZSH,
  • zellij and
  • alacritty to replace Tilix, my terminal emulator, or
  • starship to improve the default shell prompt.

While I have not yet developed anything meaningful in Rust, I regularly follow the evolution of this language 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:

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

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 exercises, and now I can type efficiently without looking at my fingers.