Mes outils et logiciels informatique préférés, discussions et mes recommandations¶
Cet article (trop long) liste quelques outils que j’aime utiliser sur mes ordinateurs.
À faire
Ajouter les liens web partout, quand la liste sera terminée.
À faire
Translate to mes-outils-preferes.en.html and my-favorite-tools.en.html, when the page will be finished!
Voir aussi
Cette liste et discussion sur les outils pédagogiques. Et la liste du Socle interministériel de logiciels libres (catalogue) préconisés par l’État français depuis 2016.
Date : février 2021 ;
Envoyez moi vos suggestions ?
Logiciels principaux¶
Liste rapide :
Navigateur : Firefox ;
Mail : Thunderbird ;
Terminal : GNOME terminal + GNU/Bash + Byobu ;
Gestionnaire de version : git (et GitHub, Bitbucket et GitLab) ;
Éditeur de texte : Visual Studio Code (graphique), GNU Nano (terminal), et Jupyter notebook (navigateur) ;
Multimedia : musique avec gmusicbrowser, vidéo avec VLC ;
PDF : GNOME Evince ;
Sites favoris : Wikipédia, GitHub, DuckDuckGo, YouTube, etc.
Système d’exploitation¶
Je suis fan d’Ubuntu depuis 2012. Cette distribution GNU/Linux grand public combine la puissance et la variété de logiciels de Debian et d’un noyau GNU/Linux avec une facilité d’utilisation qui la rend très agréable au jour le jour.
J’ai utilisé XUbuntu jusqu’en 2020, et un de mes ordinateurs utilise encore l’interface graphique XFCE.
Un autre de mes ordinateurs utilise l’interface graphique GNOME. Je crois que je préfère XFCE, je n’ai pas encore fait l’effort de changer sur ce nouvel ordinateur.
Avantages : Quels sont les avantages d’Ubuntu ?
Gratuit !
Quasiment tout sous licence libre (pas aussi strict que Debian), quasiment tous les logiciels conçus pour GNU/Linux sont disponibles.
Stable et très fiable, aucun bug matériel. Aucune mise à jour chiante qui ralentit quand on allume ou éteint l’ordinateur.
Très peu de risque de virus !
Inconvénients :
Même si Steam et quelques jeux vidéo sont disponibles nativement sous GNU/Linux, la plupart ne le sont pas. J’ai réessayé Wine (mais pas PlayOnLinux) en novembre 2023, avec Lutris, et ça marche du tonnerre ! J’ai pu jouer à World of Warcraft sur Linux ! Sans utiliser ces outils là, cela limite le nombre de jeux vidéos disponibles sous Ubuntu… (The Witcher 2 en fait partie et j’espère y jouer en 2021).
A part ça… je ne vois pas d’inconvénient !
Internet¶
Navigateur web : Mozilla Firefox (voir mes extensions favorites et trucs et astuces) ;
Second navigateur web : Google Chromium. Très pratique d’en avoir un deuxième, sans aucune extension et sans aucune connexion à aucun site web, pour facilement tester une nouvelle page web que l’on vient de créer. En 2021, si une page web s’affiche bien sur Firefox et sur Chromium, elle est bien accessible à plus de 99% des visiteurs sur ordinateur.
Gestionnaire de téléchargement : rien, je ne pirate pas ! C’est terminé l’époque des eMule et autres trucs P2P…
Messagerie¶
Client email : Mozilla Thunderbird ;
Client RSS/ATOM : Mozilla Thunderbird. Voir la liste de blogs que je lis (note : j’ai 7500 articles de retard, je ne lis plus ces blogs là depuis la fin de ma thèse, je n’ai plus le temps). J’utilise encore RSS ! (comme ce gars).
Autres messageries :
Discord : site web, et appli bureau (et appli mobile). Pour les enseignements uniquement, à cause de la crise sanitaire 2020+ ;
Telegram, Signal, Matrix et autres : je n’ai rien contre, juste pas encore utilisés ;
Facebook Messenger et WhatsApp : quand nécessaire, mais je n’aime pas ça !
À faire
En 2021, enfin quitter ces deux applications/réseaux qui sont chiants ? Comme ce blogueur que j’aime beaucoup ?
Éditeur de texte¶
- Visual Studio Code pour quasiment tout ! Voir ces conseils.
Pour Python, OCaml, Bash et d’autres langages de programmation ;
Pour Markdown, reStructuredText et d’autres langages à balise ;
Pour LaTeX, avec LaTeX Workshop ça marche bien ;
Pour des Makefile, des fichiers YAML et autres fichiers de configurations ;
Mais pas pour des notebooks, je ne suis pas encore convaincu de l’interface !
Et Jupyter notebook dans un navigateur, pour rédiger des notebooks (voir ces notebooks par exemple) en Python, OCaml et d’autres langages (même en Java !).
J’édite quasiment toujours mes fichiers avec VSCode, mais souvent quand je souhaite juste lire ou modifier rapidement un fichier depuis le terminal, j’utilise GNU Nano, qui est rapide, simple et fiable. Bien plus modeste que les vénérables (mais trop compliqués) GNU Emacs et Vi(m), et plus standard que les alternatives modernes comme slap ou micro.
Voir aussi
Utiliser localement Python et un notebook Jupyter ? C’est possible sur ce site ! Sans rien avoir à installer !
Basthon est une console et un notebook Python très complets, fonctionnant en ligne sans besoin d’un serveur qui calcule votre code derrière : tout est interprété en javascript dans votre navigateur ! J’héberge une copie locale de Basthon, ici : console Python 3.8, notebook Jupyter Python 3.8. Ils sont aussi sur python.besson.link et notebook.besson.link (sans HTTPS mais c’est juste une copie transparente des dossiers de ce site).
Voir aussi
Utiliser localement un éditeur et interpréteur OCaml ?
BetterOCaml est une console et un éditeur OCaml simple, mais qui fonctionne en ligne sans besoin d’un serveur qui calcule votre code derrière : tout est interprété en javascript dans votre navigateur ! J’héberge une copie locale ici : BetterOCaml. Il est aussi sur ocaml.besson.link.
Voir aussi
Utiliser localement un éditeur et interpréteur C ?
JSCPP est un éditeur et débogueur C/C++ simple, mais qui fonctionne en ligne sans besoin d’un serveur qui calcule votre code derrière : tout est interprété en javascript dans votre navigateur ! J’héberge une copie locale ici : JSCPP. Il est aussi sur jscpp.besson.link.
Voir aussi
Utiliser localement un simulateur de machines de Turing ?
jsTuring_fr est un simulateur de machines de Turing, qui fonctionne en ligne ! J’héberge une copie locale ici : jsTuring_fr. Il est aussi sur turing.besson.link.
Terminal¶
TL;DR Terminal : Terminal GNOME + GNU Bash + Byobu = love !
J’utilise le terminal, avec GNU Bash, de façon quotidienne depuis 2012. Je suis tombé dedans en L3 de maths et info, et j’en suis jamais ressorti, pour mon plus grand plaisir.
Sous Ubuntu, j’utilise Konsole sous XFCE, ou Terminal GNOME sous GNOME.
L’essentiel est qu’il soit rapide, configurable… Et qu’il supporte les émojis 👌 ! On est en 2021 quand même !
Note
Alternative à GNU Bash ?
S’il fallait changer de shell, je choisirai sans hésiter Fish Shell qui est très puissant et bien plus propre, plus moderne. Voir cette page pour des comparaisons.
J’utilise GNU Bash (version 5). J’aimerai bien changer vers Fish, mais j’ai écrit des centaines de script et des milliers d’alias, de commandes diverses et variées, et je n’ai ni le temps ni le courage de réécrire ça en Fish… Voir ce dépôt (bin/) et cette page pour un aperçu.
Note
Ma seule raison d’être jaloux de Mac OS X
J’aimerai avoir un terminal aussi puissant que iTerm2 qui n’existe que pour Mac OS X, je suis jaloux de certaines fonctionnalités avancées. Mais pas grave !
Je crois que des émulateurs de terminal récents et modernes, comme Hyper (basé sur Electron), Kitty ou Alacritty pourraient permettre d’avoir certaines fonctionnalités avancées aussi sur Ubuntu…
À faire
A essayer ces trois alternatives ? Je n’avais pas été convaincu de Alacritty (ils friment en disant « it’s the fastest terminal », mais sans vrai preuve !). Hyper semblait trop lent en 2017, et Kitty je n’ai pas essayé !
- J’utilise depuis 2014 un gestionnaire de session et d’onglets pour le terminal, qui s’appelle Byobu (surcouche à
tmux
). Après quelques jours, c’est juste indispensable… Ma (vieille) configuration est ici ;
J’utilise aussi des tmux-plugins dont tmux plugin manager qui permet d’installer un greffon pour sauvegarder et restaurer mes onglets.
- J’utilise depuis 2014 un gestionnaire de session et d’onglets pour le terminal, qui s’appelle Byobu (surcouche à
Et j’utilise très souvent GNU Nano dans un terminal, pour des petites modifications rapides ;
Gestionnaire de version¶
- J’utilise Git avec passion depuis 2013.
Pourquoi ? Après avoir perdu des documents lors d’un vol d’un ordinateur en 2011, puis lors de la mort prématurée d’un disque dur, je fais désormais très attention de bien archiver mes documents de travail les plus importants.
Pour quoi ? Pour tout !
Où ? sur GitHub pour quasiment tout depuis 2016, sur Bitbucket avant (j’avais même traduit le site web en 2013) ;
J’utilise Git avec les outils suivants :
en ligne de commande, avec des alias expliqués dans tutogit.fr.html, quasiment tout le temps. Je sais que ce n’est pas le plus rapide ou le plus « user friendly », mais j’ai juste trop l’habitude. Et mes alias font une lettre :
a file.txt
pourgit add
,c "Done"
pourgit commit -m "Done"
,p
ouv
pourgit push
etgit pull
, etc ;graphiquement depuis VSCode très souvent aussi ;
(plus maintenant) on peut aussi noter Git Kraken qui est l’interface graphique moderne la plus puissante et jolie que je connaisse, et que je recommande si vous avez besoin de ça.
J’ai utilisé SVN avec ce projet (teachensren) pendant 5 ans à l’ENS Rennes, et j’aime pas. Vraiment, j’arrive pas à voir l’intérêt, comparé à Git. Ça tombe bien, c’est moins utilisé désormais.
J’ai utilisé Mercurial (hg) pour collaborer à quelques projets, il y a longtemps. Je n’en ai pas de bon souvenir, mais ça tombe bien, c’est moins utilisé désormais.
Multimédia¶
Lecteur de musique : gmusicbrowser (GMusicBrowser.org), vraiment parfait, je l’utilise constamment, depuis 2014. Interface très légère, charge CPU/RAM quasi inexistante, gère sans problème mes ~80 Go et ~23000 titres de musique, peut être modifié à la volée (tout le code est du Perl assez lisible, ce qui est un exploit en soit), peut être scripté et optimisé aux petits oignons ;
Lecteur vidéo : VLC (VideoLAN.org) ;
Vidéos en ligne : YouTube, regardez cette liste de ce que j’essaie de regarder et écouter sur YouTube ;
Création de vidéo depuis le bureau : OBS Studio quand besoin de son ou de longues vidéos (cf twitch.fr.html), et Peek pour des petits GIF ;
- Autres :
interface plein écran quand je ne travaille pas : ma petite application GMusicBrowser-FullScreen-WebApp qui utilise Python et Flask ;
visualisations sympas : ProjectM mais bon c’est bof ;
Lecture et édition de PDF¶
Pour lire des PDF : GNOME Evince ;
Pour présenter des PDF en plein écran : KDE Okular ;
Pour éditer des PDF avec une tablette graphique : Xournal++ ;
Édition d’images et de photos¶
GIMP : pour des petits choses sur des images, graphiquement ;
imagemagick : pareil, mais en lignes de commande !
Inkscape, un peu ;
Créer des documents pédagogiques¶
reStructuredText, pour ce site web surtout ! Édités avec VSCode ;
- Markdown, beaucoup, partout, tous les jours ! Édités avec VSCode ;
Avant j’utilisais des fois Typora pour éditer des Markdown, mais VSCode est vraiment pratique et puissant, et ça fait un logiciel de moins à maîtriser ;
On peut écrire des slides avec Markdown, de plusieurs façons : j’ai déjà utilisé remarkjs, Marp (old Electron), Marp VSCode, Marp-cli que j’aime bien, et surtout pandoc avec un bon template LaTeX Beamer, suivi d’une étape de travail dans le LaTeX ;
LaTeX, avec pdfLaTeX (ou XeLaTeX), et VSCode avec des bonnes extensions pour la compilation intégrée et l’aperçu rapide. J’utilise aussi beaucoup
latexmk
et mes propres Makefiles en ligne de commande. Édités avec VSCode et LaTeX Workshop ;LaTeX TikZ pour des figures, pour des documents LaTeX ou des sites Sphinx avec sphinx-tikz ;
LaTeX Beamer pour des planches de cours ou de présentations ;
- pandoc pour transformer plein de formats en pages web ou PDF ;
y compris des slides, cf @Naereen/slides ;
- Jupyter notebookpour rédiger des sujets de TD/TP d’informatique et de programmation, et plus.
Voir ces liens : @Naereen/notebooks.
Je l’utilise pour Python 3, évidemment, mais pas seulement…
Jupyter SQLite pour SQLite et enseigner les bases de données ;
OCaml Jupyter pour OCaml et l’enseigner !
IJava Jupyter kernel pour Java et l’enseigner !
Et j’ai aussi écrit des notebooks utilisant les kernels suivants : GNU Octave, GNU Bash, Rust (ici aussi), et même le C
OCamlDoc pour générer des documentations de programmes OCaml, voir ces exemples : modélisation d’agrég, Zenity OCaml, etc.
Sphinx doc pour générer des documentations de programmes OCaml, voir ces exemples : SMPyBandits, MEC CS101 integrals et MEC CS101 matrices, ansicolortags (et ce site web !) ;
Jupyter book : jamais encore utilisé, mais c’est LE TRUC qui m’excite pour 2021 ! Cf. Info-Prepas-MP2I/.
À faire
ajouter une section spécifique à Jupyter ? Ou des liens ?
À faire
Essayer https://sqlitebrowser.org/ quand j’enseignerai SQL ?
Autres logiciels¶
Sauvegarde de son ordinateur (Backup) : deja-dup, des clés USB, des dépôts Git, des envois réguliers sur ces dossiers en ligne ;
Sauvegarde en ligne (cloud backup) : le même logiciel ownCloud synchronise des dossiers sur plusieurs hébergeurs, notamment le CRANS ;
- Autres logiciels pour la musique :
Bruit Ambiant (Anoise) pour avoir des bruits d’oiseaux dans son salon,
et ce site Generative.fm pour des musiques discrètes d’ambiance quand je travaille ou durant les visios.
Appels visio : fervent défenseur de la solution libre et gratuite Jisti, j’ai aussi beaucoup utilisé de BigBlueButton à l’ENS Rennes. J’aime bien Discord, cf. plus haut. Je n’aime pas Zoom, Microsoft Teams ou Skype, mais je peux les utiliser si on m’y oblige…
- Suivi d’activités sur mon ordinateur (self spying ou self quantified, voir cette page) :
Générique : uLogMe que je maintiens depuis 2016. J’adore ! Elle utilise Python et Flask, et des scripts Bash ;
Pour le code dans VSCode : WakaTime ;
J’ai des extensions Firefox qui font des statistiques très avancées, et Mind the Time fonctionne très bien.
- Navigateur de fichiersGNOME Nautilus.
En 2012/13, j’avais contribué à une extension pour avoir un terminal intégré, mais flemme de la remettre à jour, ce n’était pas si utile.
Gestionnaire de presse-papiers : c’est un tout petit truc, mais indispensable ! Cela permet de garder en mémoire les derniers « copié-collés » et de les retrouver avec un petit menu. J’utilise depuis des années le merveilleux glipper, mais il existe des alternatives sur Windows et Mac OS, et d’autres logiciels sous Ubuntu et autres Linux ;
Protéger ses yeux : je travaille souvent la nuit, et j’utilise depuis des années un logiciel qui permet de réduire automatiquement la luminosité de mon écran, ainsi que réduire la lumière bleue. J’utilisais Flux mais depuis 2015 je préfère Redshift (libre sur GitHub), qui fonctionne mieux et s’installe facilement (voici ma configuration, qui désactive la géolocalisation par défaut). Sur téléphone, j’utilise « Filtre lumière bleue - S’endormir facilement ».
Recherche centralisée de logiciel ou de fichier : j’utilise Synapse sous GNOME, c’est très pratique pour lancer rapidement un programme ;
Automatisation de compilation, scripts locaux dans un dossier etc : GNU Makefile. J’en utilise partout ! J’ai abusé et écrit mymake.sh pour améliorer
make
(en cherchant un Makefile dans un dossier supérieur, et possiblement m’envoyer des SMS avec--FreeSMS
).Choix de formats et d’outils spécifiques :
Compression de fichiers : tout en archive
zip
. Je sais, c’est pas le meilleur format, mais c’est le seul qui soit vraiment multi-plateformes. Je compresse aussi mes PDF avec ce script.Gestion de photos : je prends des photos avec mes téléphones, au format JPEG. Je nettoie les données EXIF avec
exiftool
(aliasCleanPicturesR
) et je les compresse avecjpegoptim
et photosmagic.sh, et fait des galeries web avec generateglisse.sh.Gestion de captures d’écrans : je prends des captures d’écran très souvent, avec
xfce4-screenshooter
, au format PNG. Des fois, je les compresse avecadvpng
ouoptipng
.
Blogues et sites statiques :
Ce site est généré avec Sphinx (générateur de documentation de Python) depuis 2013, sans trop de raison à part ma curiosité. Ces pages web sont donc écrites en reStructuredText (cf source de ce document) J’ai utilisé Sphinx pour des projets pédagogiques, j’aime bien !
J’ai aussi deux petits blogues : Zéro Déchet (~35 articles) et cuisine (~100 articles), écrits en Markdown et générés avec Pelican, un générateur de site statique plus modeste, écrit en Python ;
Je triche en utilisant StrapDown.js avec mon autoindex StrapDown (pour Apache HTTPD) pour des jolis affichages du contenu des dossiers sur ce site, cf cet exemple de dossier.
En ligne de commande, j’utilise :
watch
etcrontab
pour lancer des commandes régulières ;wget
etcurl
pour télécharger des fichiers depuis Internet, CP pour copier mes fichiers localement et sur le réseau (surcouche à rsync ;notify-send
etzenity
pour des notifications et petites interfaces graphiques en Bash ;rip-grep comme alternative moderne à
grep
,find
etls
pour trouver et manipuler des fichiers ;quand nécessaire,
tr
,sort
,tail
/head
,shuf
,cut
pour manipuler des flux de textes ;et un peu de
sed
(j’adore) etawk
aussi (mais je connais pas bien awk) ;yt-dl et maintenant son remplaçant yt-dlp, et des scripts maisons pour télécharger des chansons, playlists et albums depuis YouTube ;
et ces sites magnifiques : ExplainShell.com pour l’aide, wttr.in pour la météo, Wolfram|Alpha en mode texte c’est drôle et pratique ;
Licence libre ?
J’utilise quasiment uniquement la Licence MIT, principalement parce que le site mit-license.org est cool et la licence est courte et permissive ;
Mes articles de recherche sur HAL et CEL sont sous licence Creative Commons ;
Des vieux projets sont encore sous licence GPLv3, mais je sais plus trop pourquoi ;
J’admire les licence WTFPL, et autres ;
Il faut choisir une licence, sinon tout est fermé et même si votre code est accessible en ligne, il reste sous votre copyright !
- Jeux vidéos sous Ubuntu :
Pictionnary : un tableaunoir partagé + mon appli minimaliste pour générer un mot aléatoire ;
Clone de Zelda 2D : Solarus Games (moteur en C++, jeux en Lua, open source !) ;
Clones de Fire Emblem 2D : Lex Talionis (moteur en Python, jeux en XML/text et Python, open source !) ;
Steam : disponible sous Linux depuis quelques années !
Lutris.net : disponible sous Linux, amène plein de jeux vidéos, par exemple les jeux vidéos de Blizzard (WOW etc).
Logiciels en lignes¶
Tableau en ligne : le magnifique et régulièrement amélioré Tableaunoir ! Il est aussi sur mon site sur tableaunoir.besson.link.
Traduction automatique : DeepL et Google Translate, quand nécessaire ! Mais le moins possible !
Cartographie : OpenStreetMap, rome2rio, et en dernier recours Google Maps ;
Voyages : CouchSurfing, BlaBlaCar ;
Billets de train : The TrainLine, anciennement TrainLine, anciennement CaptainTrain, anciennement Capitaine Train. Je les adore depuis le début, mais <je râle> leurs nouveaux site et appli sont vraiment moins bien qu’avant </je râle>.
Notes et suivi de tâches : Google Keep ;
Emploi du temps et calendrier : Google Notes ;
À faire
Passer à des solutions Open Source et hébergées localement ? FramaSoft propose des bonnes idées.
À faire
Pour Google Notes au moins, je peux essayer Orgzly côté appli android, et org-mode in VSCode côté bureau ? mais comment synchroniser facilement ? Ou alors une appli avec Markdown mais org-mode gère bien les calendriers apparemment.
À faire
Pour l’emploi du temps, je veux passer à autre chose, mais j’ai besoin de garder des notifications bureaux/android !!
Je dois encore m’améliorer¶
À faire
Je liste ici des pistes pour améliorer certains aspects de mon utilisation de mes ordinateurs.
Je pense qu’il existe des greffons pour mes logiciels favoris, pour répondre à ces besoins :
Des templates de mail facile d’accès, et pas des brouillons à copier-coller (Thunderbird) ;
Des templates de nouveaux documents facile d’utilisation, et pas de copier-coller (VSCode) ;
Moins importants :
Une bonne façon de recevoir par flux RSS ou email les modifications sur une page web quelconque : pour suivre les nouveaux documents publiés par des collègues, les résultats de concours etc…
Une meilleure solution de back-up de mes ordinateurs ?
Ne plus utiliser Google Agenda et Google Notes ;
Une meilleure solution de sauvegarde de dossiers de mon ordinateur en ligne, et entre les ordinateurs ;
D’autres listes sur ce site ?¶
Voir aussi
Pour des applications sur téléphone ? Cette page liste mes applications Android préférées.
Voir aussi
Pour des extensions (plugin) des logiciels principaux ? Ces pages parlent des logiciels que j’utilise principalement, et des extensions et configurations que j’utilise pour ces logiciels :
Pour Mozilla Firefox, meilleur navigateur web ;
Pour (Microsoft) Visual Studio Code, un très bon éditeur de texte générique ;
D’autres pointeurs : zotero.fr.html gestionnaire de bibliographie, un tutoriel sur Git le meilleur gestionnaire de version, sur Python : pour apprendre Python ou écrire du Python depuis une page web sur ce site, idem pour OCaml…
Références¶
Ici je donne quelques liens vers des articles en ligne que j’ai consultées pour écrire cette page :
Cette liste d’outils (en anglais) de Karl Voit, exhaustive et bien rédigée ;
Ma vieille liste probablement pas mise à jour depuis 2013 ;