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 anduse-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}
4 Hello \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 bettercat
,ripgrep
as a bettergrep
,lsd
as a betterls
,fd
as a betterfind
,sd
as a bettersed
,zoxide
orbroot
as bettercd
,dust
as a betterdu
,lfs
as a betterdf
andpueue
as an alternative tosystemd-run
.
I don't use but I'm also interested in:
nushell
to replace ZSH,zellij
andalacritty
to replace Tilix, my terminal emulator, orstarship
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:
1 fn 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.