Emacs Chat avec Richard Bonichon en français

| emacs-chat, emacs-chat-podcast, emacs, french

Prot et moi avons parlé en direct avec Richard Bonichon (emacs.d, GitHub) d'Emacs, d'OCaml, de ses flux de travail, de sa configuration et d'autres sujets en français.

J'ai raté le début de la diffusion en direct. Je suis vraiment désolée ! Heureusement, j'ai enregistré toute la conversation localement. Voici la vidéo complète :

J'ai essayé de corriger la transcription, mais je crois qu'il y a encore beaucoup d'erreurs, donc n'hésitez pas à m'envoyer un message.

Merci beaucoup à Richard, à Prot, et à tous les auditeurs ! À la semaine prochaine pour le 13 août : Emacs Chat avec Fabrice Niessen !

Si vous voulez parler d'Emacs avec Prot et moi en français, n'hésitez pas à me contacter!

La transcription un peu corrigée

Details

Prot: Comment on dit « chat » en français ? Parce que je n'ai pas chat.

Richard: Non, on dit chat.

Prot: Ah, on dit chat. D'accord. C'est facile.

Sacha: Bonjour à tous et à toutes et bienvenue dans ce tout premier épisode d'Emacs Chat en français. J'ai hâte de converser avec notre invité, Richard Bonichon, pour parler d'Emacs, d'Org Mode et d'autres sujets. Comme dans l'épisode d'Emacs Chat en anglais, j'espère que nous pourrons explorer les choses qui ne sont pas évidentes, rien que sa configuration ou son code, comment utiliser et combiner les fonctions dans vos flux de travail les raccourcis clavier le plus utiles, les astuces. J'espère aussi que nous pourrons tous rencontre les personnes passionnées qui font vivre la communauté Emacs. Bonjour Richard, merci beaucoup d'avoir accepté mon invitation.

Richard: Le plaisir, c'est pour moi, en fait, de vous rencontrer tous les deux, en réalité. J'avoue que j'ai accepté en me disant, en voyant tes efforts, Sacha, pour écrire en français et apprendre le français. Et si je pouvais t'aider un tout petit peu avec tout ce que tu donnes à la communauté Emacs, et donc à moi, en t'aidant en français, alors c'est un plaisir de le faire.

Sacha: Et merci aussi à Prot de nous rejoindre pour m'aider à garder une conversation fluide et m'épauler si jamais je me retrouve bloquée par la barrière de la langue. Je vais vous présenter mes excuses d'avance. Je ne suis qu'une débutante en français qui a envie de vidéos intermédiaires sur Emacs, que je puisse écouter mille et une fois. Donc voilà mon plan diabolique. En français, salut Prot!

Prot: Salut Sacha, salut Richard. Allons-y, on va parler.

Sacha: Vous appelez ? Oui. C'est parti. Tout le monde, Richard, peut-être vous présenter ?

Richard: Oui, alors moi, je suis Richard Bonichon, donc je suis français et je suis un utilisateur d'Emacs depuis bien longtemps. Je peux raconter un peu l'histoire, comment ça est arrivé. Ça a commencé en école d'ingénieur. Donc en France, les études... Pas souvent en dehors de l'université, donc par des écoles dédiées, des écoles d'ingénieurs. Et là, on devait choisir. Et à l'époque, on nous avait encouragé à choisir entre Vi et Emacs sous Solaris. Et plus exactement, c'était l'époque, il fallait prendre X et Emacs. Fin des années 90, début des années 2000, il y avait encore ces deux choix. Moi, j'ai fait des études d'informatique. Aujourd'hui, je suis ingénieur, programmeur, ingénieur logiciel après avoir été chercheur pendant très longtemps dans le domaine des méthodes formelles, des langages de programmation. Et mon langage de programmation préféré, c'est OCaml. Et dans la communauté OCaml, l'éditeur, jusqu'à maintenant ça change un peu, l'éditeur de prédilection pendant très longtemps, c'était Emacs. Parce que c'est lui qui avait le meilleur support pour le langage à travers le mode Tuareg et le mode Caml. Et donc, quand j'apprenais au niveau académique dans mon domaine, Tous mes encadrants utilisaient Emacs pour coder en Caml. C'est là que le choix définitif s'est fait et ça n'a fait que s'empirer entre guillemets. Après, j'ai commencé à creuser moi-même et en particulier... Grâce à toi, Sacha, grâce à la newsletter hebdomadaire que tu fournis, parce que ça permet de perdre un temps fou dans tout ce que font les gens sur Emacs et d'aller voir comment ça se fait, ce qu'il y a de nouveau, essayer un nouveau mode ou un nouveau environnement tout le temps. Et j'ai aussi passé le virus après à mes étudiants, donc les encourager à utiliser Emacs et tout ce qu'il y avait dans Emacs, en particulier Org Mode et Magit, qui sont deux points d'entrée super importants et incroyables en termes de qualité pour utiliser Emacs. Et donc, il y en a d'autres qui l'utilisent. Mais je suis un maximaliste, moi, plutôt. On pourra en reparler.

Sacha: Tu utilises Emacs pour ton travail, ton enseignement à l'université avec tes étudiants.

Richard: Oui, quand j'enseignais, j'ai montré tout le temps Emacs. Quand je montrais du code, c'était dans Emacs. Quand je composais mes slides, ma présentation, c'était avec Emacs, avec Beamer et LaTeX. Et puis Org Mode, via LaTeX et Beamer. En fait, je l'utilise. J'ai trois fenêtres en général dans mon OS. J'ai Emacs, un navigateur. Et peut-être un terminal, mais les terminaux maintenant passent essentiellement dans Emacs à travers les différents modes qu'on a, enfin les différentes capacités, que ce soit Eat, Vterm ou Eshell.

Sacha: En lisant ta configuration, j'ai noté que tu as beaucoup de fonctions personnalisées pour Eshell. Donc, tu as bien utilisé ?

Richard: Oui, alors je les ai, comme une bonne partie de ma configuration, je les ai un peu volés des gens. Et notamment, je pense que pour Eshell, ça vient de deux personnes en particulier. Howard Abrams, qui à un moment avait une série de posts incroyables sur l'utilisation d'Org pour documenter et réexécuter tout ce qu'il faisait en DevOps, et notamment parler d'Eshell. Et probablement de John Wiegley, si je ne me trompe pas. Donc, j'ai récupéré des aliases qu'ils avaient et en fait, j'ai toujours cette envie de l'utiliser et à chaque fois, je retombe sur un autre. Mais il est toujours là dans un coin et il est assez personnalisé mais son usage est minimal, j'avoue.

Sacha: Mais tu as une vie de commande très complexe.

Richard: Oui, mais ça c'est pareil. C'est comme beaucoup de trucs, tu sais. C'est l'avantage des communautés ouvertes, c'est qu'on prend quelque chose et puis on le modifie et ça devient le nôtre. Et c'est ça qui est super, en fait, dans Emacs en particulier, mais dans les communautés ouvertes et open source en général, c'est d'avoir accès à toutes ces ressources et souvent d'avoir des gens qui les partagent gratuitement. C'est incroyable quand même ça.

Prot: Et c'est l'esprit d'Emacs comme ça, de prendre quelque chose et de modifier pour faire ce que tu veux.

Richard: Exactement. Ah bah oui, ça c'est clairement... Mais ça, ça me parle beaucoup en plus en tant que programmeur. C'est vraiment adapté à... Alors j'ai essayé d'autres IDE de programmation dans les environnements de développement. Le seul qui trouve un peu grâce à mes yeux, c'est le concurrent principal d'Emacs, dans ma tête en tout cas, c'est la famille Vim, parce que je comprends aussi, mais je me sens à chaque fois extrêmement gêné, restreint et contraint dans un idéal, même dans Visual Code ou ce genre de choses, je me sens... Mal à l'aise. Comment dire ? Je ne sais pas. Il y a trop de choses et on me contraint trop à faire les choses de la manière dont on les a pensées et pas autrement. Et je ne comprends pas comment les adapter en plus. Je sais comment adapter les choses. Ce sont que des fonctions. Donc ça, ça me parle en tant que programmeur fonctionnel. Emacs Lisp, c'est très proche de ma manière de penser. J'ai une formation aussi de mathématicien, bien sûr. Ça me parle très fort. C'est un langage qui est très, très proche dans beaucoup d'aspects de OCaml. Il est à la fois fonctionnel, mais impur. On peut faire beaucoup d'effets, de bords, comme on dit, de changement de structure de données. Et il n'y a pas le typage. Mais c'est autre chose, un autre débat.

Prot: Et tu préfères les modèles OCaml comme ça ou les modèles d'Emacs?

Richard: Alors, sincèrement, le langage où je me sens le mieux quand je programme, où je me sens bien, c'est OCaml. Clairement, ça fait 20 ans, plus de 20 ans que j'utilise et ça me fait plaisir. Je pense que vous connaissez ça tous les deux, mais il y a des moments où on a du plaisir à être dans un outil ou dans un monde qu'on connait. Et OCaml, je connais sur le bout des doigts quoi je connais par cœur. Je prèfère, j'aime moi le typage. Moi, je suis un programmeur qui assume qu'il va faire des erreurs. Le type m'aide en enlever une partie à réfléchir et à structurer ma pensée. C'est un avis comme un autre, mais pour un éditeur, par contre, le modèle d'Emacs Lisp a quand même des avantages. Je ne sais pas comment ça s'est passé, mais il se trouve que c'est quand même bien, les deux se complètent bien. Le langage dans un éditeur, ce langage-là dans un éditeur, la famille Lisp, c'est pas mal.

Sacha: En lisant ta configuration, j'ai aussi noté que tu affiches les informations du mode line dans le header line. Est-ce que c'est plus pratique pour toi?

Richard: Oui, en fait, j'ai tendance à regarder en haut, dans mon buffer. Et j'avais vu, je pense que j'ai pris ce truc-là d'un autre francophone. Donc j'ai oublié le prénom, c'est Rougier. Et c'est de là que j'ai volé cette idée. Je suis un grand voleur, vous savez.

Sacha: Tout le monde.

Richard: Oui, on récupère les idées. Et c'est resté. Voilà, c'est quelque chose que j'ai mis en place et c'est resté. Ça me plaît bien.

Prot: Voler à volonté.

Richard: Ouais, ouais. Et en fait, c'est bien que vous m'ayez un peu forcé à mettre ma config pour ce qu'elle a d'intéressant en public. Comme ça, les autres vont pouvoir voler s'ils veulent. C'est très bien comme ça.

Sacha: Je vois que tu as tant de bibliothèques. Il y en a une qui prépare un rapport sur tes journées de travail. Il y a une autre qui extrait des offres d'emploi sur une page. Un troisième analyse les données Garmin en utilisant l'IA pour générer un rapport au format Org Mode. Tu peux nous en dire plus ? Quelle est ta fonctionnalité préférée ?

Richard: Ah, de celle-là ? Alors, c'est le mode Garmin. C'est le dernier que j'ai mis en place. Donc, moi, je fais pas mal de courses à pied. J'aime bien ça. Et puis, ça me permet de... Moi, c'est là où je fais de la méditation, la course à pied. Je vais courir et puis je pense... Vous savez, quand on est sous la douche ou quelque chose comme ça, on a des idées qui arrivent, la course à pied, c'est à se faire la même chose et puis ça maintient en forme. C'est pas plus mal de prendre un peu soin de sa santé quand on peut. Donc j'ai beaucoup de données Garmin et ça commençait à m'embêter de devoir aller sur le site de Garmin et puis pas adapter à ce que je veux faire. Encore une fois, c'est toujours la même idée et que mes données ne soient que là parce que c'est mes données. Le premier réflexe pour moi, c'est comment je peux les visualiser d'une manière cool sous Emacs. Pour moi, Org Mode, forcément, il faut un truc textuel, donc sous Emacs et Org Mode, parce que pour moi, c'est lié. Et oui, j'ai fait ça à l'aide avec Claude, évidemment, comme beaucoup de gens à l'heure actuelle. Et c'est ça aussi qui est cool dans Emacs, c'est qu'on a pu analyser toute la base de code d'Elisp. Il sait faire ça raisonnablement bien. Oui, il y a plusieurs petits outils. Il y a un bout de code Rust pour extraire en mode JSON les données du format fit de Garmin parce qu'il y a une bonne bibliothèque en Rust tout simplement. Puis je fais du Rust en ce moment, donc voilà. C'est pratique. C'est un langage que j'aime bien. Donc ça, ça fait du JSON. Et après, une fois qu'on a du JSON, on est bien dans Emacs. On n'a plus besoin... J'ai décidé de ne pas tout faire en Elisp. La fonction d'extraction du feed ne paraissait pas... J'ai essayé de demander beaucoup plus de codes que nécessaire pour mon usage. Après, j'ai mis en place une pagination. Je savais que je voulais utiliser le mode tabulated pour les mettre en format colonne. Dans le passé, j'avais déjà utilisé le docker mode. pour gérer plusieurs dockers. Et j'ai trouvé ça génial d'être dans Emacs et de gérer ces dockers, avoir une interface assez simple et d'avoir des raccourcis pour les lancer, les arrêter. Et je me dis, mais c'est ça qu'il me faut. Moi, par moi, une page, je peux lancer l'analyse, parce que j'utilise aussi Claude pour essayer d'analyser mes entraînements, etc. Et les analyser en Org Mode et les avoir, en fait, et avoir le journal de course à pied. Automatiquement généré, l'app en Elisp. Je pense que ça, je l'utilise tous les jours maintenant. Enfin, tous les jours, je vais courir en tout cas. Et les autres, c'est sympa aussi. Alors, les rapports, c'est parce qu'à une époque, on demandait encore hebdomadaire sur mon activité.

Sacha: J'ai oublié de presser le bouton go live.

Prot: Ah non !

Sacha: Je dois présenter toutes mes excuses... J'ai totalement oublié le bouton...

Prot: Pas grave, pas de souci, pas de problème.

Sacha: On recommence. Comment en français on dit que la première edition, c'est pour essuyer les plâtres. Quand on refait un mur, il faut que nettoye. [??]

Prot: Ouais, ouais, très bien.

Richard: On pourra recommencer.

Sacha: Donc, je ne répète pas mon introduction. Tu racontes une histoire fascinante de ses données de Garmin et...

Richard: Je peux recommencer, on recommence. Pas de souci, je peux raconter. On peut commencer directement là-dessus. J'y vais ? La dernière chose pour laquelle j'ai choisi Emacs et que j'aime bien, c'est pour créer un mode pour extraire, pour gérer les données de ma montre Garmin. J'ai un côté maximaliste, donc j'envisage Emacs comme l'endroit où je vais gérer mes données et je vais les visualiser et qui va orchestrer. C'est vraiment mon OS en réalité. Quand nos copains qui sont plutôt adeptes de Vim parlent d'Emacs comme un super OS, j'utilise vraiment comme ça. En fait, c'est l'orchestrateur et c'est là que je vois mes données. Et pour Garmin, j'ai pensé immédiatement à Emacs et derrière à Org Mode pour les voir en textuel. C'est un orchestrateur entre un petit programme Rust qui fait le traitement de la donnée brute en format fit de Garmin, qu'il extrait en JSON, et c'est ça qui est après analysé en Emacs. Retravailler pour avoir une visualisation Org Mode avec un tableau kilomètre par kilomètre, les allures, la fréquence cardiaque, etc. Même un petit... Je crois qu'il y a un petit bout qui est censé faire des graphes aussi. Je ne l'utilise pas trop avec Gnuplot. Je ne sais pas si j'ai bien demandé, si ça marche. Je n'ai pas trop testé. Mais l'idée, c'est vraiment d'avoir tout ce que je trouve intéressant de chez Garmin dans un fichier Org Mode. Donc avec la capacité de le voir localement. Via Emacs. Quand je raconte ce genre de choses à mes étudiants ou mes amis, ils me disent toujours, je ne suis pas trop étonné de tes choix. Quand on me connaît, que je fasse des choses et que ça passe par Org Mode, les gens commencent à ne plus être trop étonnés. J'adore cette idée-là. En fait, c'est tellement... Chouette. J'aime bien l'idée que tout soit en texte, qu'on ait tout autour une gamme d'outils, que ce soit pour faire comme Prot avec Denote ou ce genre de choses. On a des outils autour qui permettent d'utiliser ce format qui a déjà été super bien pensé et qui avait déjà beaucoup de capacités, l'agenda, etc. Moi, j'y pense toujours. Je l'utilise aussi, l'agenda. Je diverge un peu. Désolé, je reviens au mode Garmin. Donc, j'ai une page par mois avec toutes mes sorties, savoir si elles ont été analysées. Je peux lancer l'analyse par IA aussi de ma progression ou de ma régression. Ça arrive aussi. De ce que je devrais faire, de ce qu'ils pensent que je devrais faire. Alors, petit secret, j'arrive quand même assez systématiquement à convaincre l'IA que c'est bien ce que je fais et qu'elle a tort. Elle arrive toujours à se faire convaincre que ça a du sens ce que je fais. Donc l'orchestrateur, une page par mois dans le mode tabulated pour avoir des petites visualisations aussi, ça a été analysé. Je peux marquer, j'ai rajouté, je ne sais pas si je l'ai poussé, j'ai rajouté des marqueurs. Ça, c'est une séance de référence. Si, par exemple, il y avait un test ou une allure particulière qui est importante dans l'entraînement, je peux marquer cette chose-là. Donc, il y a une petite base de données. Il y a des métadatas en format .el, je crois, essentiellement une S-expression, pour rajouter des données perso au-dessus des données extraites de Garmin en plus. Donc qui est lu par Emacs puisque les données sont dans un répertoire et il y a ces données là aussi. Une mini base de données qui est juste en fait une... Pas une, c'est juste une donnée Lisp, quoi. Ça, c'est un exemple. Des trucs qui sont super chouettes en Lisp, c'est qu'on prend un fichier, on a juste la S-expression, il n'y a pas de différence, les données, le programme. Ça, c'est un truc pratique pour travailler sur les données ou les choses.

Sacha: C'est le pouvoir de Lisp.

Richard: Exactement, mais c'est pour ça que je dis que je pense que c'est un cas d'usage où Lisp est particulièrement bien adapté. Je vois les langages de programmation comme ayant tous des capacités quand même plus ou moins particulières. Je n'utiliserais pas, par exemple, même si on a discuté où OCaml était mon langage préféré, je ne l'utiliserais pas pour un Pour un tas de choses. Il y a des langages qui sont plus adaptés. Même si je veux faire des scripts, par exemple, un peu à jeter, j'aurais quand même tendance à faire du Python, personnellement, malgré tout. Même si c'est possible, il n'y a pas tout le reste. Il manque des choses.

Sacha: Et parce que tu utilises Emacs pour créer une interface personnalisée avec le Tabulated et d'autres modules, tu peux créer ton interface dans tout ton flux de travail et tu peux aussi annoter tes données avec Org Mode.

Richard: Exactement. Et je peux les rechercher après avec les tags, comme ça se fait, ou avec les outils standards, Unix, Grep, RG, ce que vous préférez. Tout ça, c'est très bien intégré dans Emacs, donc il n'y a pas besoin de sortir de son monde.

Prot: Est-ce que tu utilises l'agenda aussi pour chercher ces données ?

Richard: Ah, pour chercher ces données ? Non. L'agenda, je suis tombé, j'ai beaucoup limité son usage. J'ai restreint sur quelques fichiers simplement. Peut-être à tort, mais justement, je suis prêt à changer s'il y a des usages que je n'utilise pas trop. Ça fait partie des fichiers exclus parce que je commence à avoir beaucoup de fichiers de notes diverses et variées sur des sujets. Et les séries d'entraînement, elles sont classées dans un sous-répertoire de ces notes. qui sont pour l'instant indexés avec org-roam, mais j'utilise de plus en plus RG pour chercher dedans parce que des fois je cherche du contenu, pas les tags ou le titre. De toute façon, ce n'est pas indexé dans la base SQLite de org-roam.

Prot: D'accord.

Sacha: Tu utilises Org Super Agenda. Oui. En disant ta configuration d'Org Mode, je suis très curieuse parce que tu as une vue d'agenda qui a 27 sections. Oui. Vraiment, ton Super Zaen View.

Richard: C'est peut-être une forme de paresse, mais j'aime bien avoir toute l'information en une fois et donc j'ai pas mal de filtres sur... Est-ce que ça s'agit d'une entreprise ? Est-ce que c'est pour l'entreprise ? Est-ce que c'est pour la maison ? Est-ce que c'est pour le travail mais pas pour l'entreprise ? Donc, à la fin, on arrive avec beaucoup de catégories. Et vous savez, c'est des choses qui ne font que s'accumuler. Donc, c'est une fonction monotone croissante. J'en ajoute, mais j'en enlève jamais. Ça manque de garbage collection. Il faudrait peut-être que je fasse une passe. Pour enlever des choses, il y a effectivement des choses sur dans combien de jours qui filtrent sur la deadline, le schedule. Il y a des choses qui filtrent sur la priorité. Il y a des choses qui filtrent sur le tag. Là, ça me convient à peu près. Du coup, je n'ai pas trop réfléchi à faire mieux, mais c'est possible que ce soit un peu trop fort.

Sacha: Je pense que tu aimes distinguer les données par couleur. Tu as configuré Dired, Elfeed, les priorités d'Org Mode pour colorier les entrées selon le format ou par les étiquettes. Qu'est-ce que ça donne? Peux-tu nous montrer peut-être sur Elfeed?

Richard: Oui. Attends, je vais... Et puis c'est là que ça va être intéressant parce que j'utilise Wayland. Alors c'est toujours le suspense sur le partage d'écran.

Sacha: Pas de souci.

Richard: Mais pas de souci. J'ai pas de souci à partager mon écran. On va voir. User operating system settings. Ok. Il va partager l'écran. Je vais essayer de nous mettre sur un autre. On va se mettre là. Voilà le flux. En fait, les couleurs, elles sont assez... C'est faiblement visible là, comme c'est très grand. Donc c'est surtout des soulignés que j'utilise, des petites couleurs. Je ne suis pas sûr d'y prêter tant attention que ça. Au final. Mais oui, c'est resté. C'est assez pareil. C'est pris du créateur d'Elfeed. J'avais pris de là. Je trouve que c'est ça. Moi, j'aime bien ce que ça donne en termes visuels. Je ne vais pas le changer. Donc là j'utilise un des modes fait par Prot justement. Un des modes de couleurs. Merci. Je suis tombé. Celui-là il me plaît parce qu'il est hyper lisible. Vous voyez moi je suis fond blanc. Je suis dans l'équipe fond blanc.

Prot: Oui, comme moi.

Richard: Ça ne me pose pas de problème. J'ai l'écran, la luminosité diminue un peu avec la fin de journée, ça suffit. Ça suffit pour moi, mais ça dépend des gens. Donc voilà, ça donne ça. Il n'y a pas... Donc tu es là, tu vois, Sacha.

Sacha: Mon journal !

Prot: Et il y a les OCaml News aussi.

Richard: Oui, il y a l'OCaml News.

Prot: Sacha Chua de la communauté OCaml.

Richard: Exactement. En fait, j'ai trois weekly. Il y a trois trucs que je lis systématiquement. Sacha Weekly, Sacha Emacs News, This Week in Rust, et le Weekly News OCaml. Je trouve ces trois blogs où le ratio signal-bruit, comme on dit, est très très élevé. J'en retire beaucoup de choses intéressantes, de curiosités, de choses à aller voir. Et ça, moi, ça m'enthousiasme à chaque fois que j'ai des choses à aller voir. Ah, il y a encore un truc que je ne connais pas. Alors c'est un peu angoissant, on est toujours derrière, on a toujours des choses à faire. Mais c'est quand même plus sympa de voir ce que les gens ont trouvé de nouveau. Que ce soit dans un langage de programmation ou dans Emacs. C'est les trois newsletters que j'aime bien lire. Je sais que ça sera facile, c'est-à-dire que je ne vais pas devoir me concentrer des heures. Par exemple, il y en a où c'est des maths, il faut pouvoir se poser pour lire. Pour lire le post, il faut réfléchir. Et sur les newsletters weekly dont j'ai parlé, c'est hebdomadaire, on dit en français, pas weekly. C'est des choses que je lis avec plaisir.

Sacha: En lisant aussi ta configuration, j'ai noté que tu as des fonctions qui répliquent la fonctionnalité d'org-capture, comme quand tu crées une note sur le rendez-vous ou tu saisis une tâche. Quelle différence... Je consulte mes notes. Pourquoi tu utilises ta propre fonction pour faire ça ?

Richard: C'est une excellente question et je ne suis même pas sûr de quoi tu parles, alors je vais aller voir.

Sacha: Par exemple, tu as une fonction qui te demande sur une tâche et après ça, tu le remplace dans un titre dans ta boîte de réception. Je pense... J'oublie.

Richard: On va aller voir. Dis-moi le nom si tu as la note. Dis-moi... Dis-moi...

Sacha: Je cherche pendant que vous conversez.

Prot: D'accord. Peut-être que c'est plus facile d'avoir une fonction personnalisée.

Richard: Je ne sais pas de quoi exactement on parle.

Prot: Moi aussi, je n'en suis pas sûr.

Richard: Et c'est possible, Sacha, je t'avoue, c'est possible que ce soit quelque chose que je n'utilise plus. C'est possible. Dans ma configuration Emacs, C'est un peu le même problème que le nombre de mes sections dans Super Agenda. Il y a des choses qui arrivent et il y a rarement des choses qui partent. Ça s'ajoute, ça s'ajoute et il manque la personne qui va faire le nettoyage. Je ne sais pas où elle est cette personne.

Sacha: Je l'ai trouvé. Je l'ai trouvé. La fonction rb/org-add-task.

Richard: Ah, bah, j'utilise rb/org. Est-ce qu'elle est cette fonction ?

Sacha: org-add-task.

Richard: Ivy?

Sacha: rb/org-add-task. Pour ajouter une tâche avec un lien...

Richard: Ah oui, c'est... Oui. Je crois que je ne sais pas faire avec Capture. En fait, je pense que je n'ai pas réfléchi à faire avec Capture. Simplement, c'est quand je suis en train de faire quelque chose dans un autre buffer, ça me permet d'avoir un raccourci. Que je ne saurais peut-être pas faire avec Capture, je t'avoue. Oui, tu peux. Rajouter une tâche, mais peut-être qu'il me manque juste la curiosité ou le bon raccourci dans Capture pour faire ça. Je n'ai pas trop réfléchi et on va voir. Oui ? Non ? C'est bien. Bon, je t'avoue, il n'y a pas de raison fondamentale.

Sacha: Je suis seulement curieuse. Tes bibliothèques contiennent un mélange amusant de fonctions qui portent un docstring qui ne sont que « docstrings » entre guillemets, et d'autres fonctions qui ont des docstrings plus longues, plus détaillées. Je pense que tu utilises l'IA pour écrire ça.

Richard: Alors, il y a deux, oui. Dernièrement, c'est l'IA qui fait mes docstrings. Ça, c'est vrai. Dans le passé, ça existait déjà, cependant. Il y avait des fonctions que j'écrivais en me disant que je vais la documenter correctement. Et d'autres, où j'appliquais le fameux paradigme du programmeur, je la documenterais plus tard. Et plus tard, ce n'est pas encore aujourd'hui, visiblement. Ça, vous l'avez jamais. Oui, c'est ça.

Sacha: Moi aussi, je réponds toujours à mes documentations. Prot est bien documenté.

Prot: Non, non, moi je le documente, oui.

Richard: Mais parce que je pense que l'avantage de Prot, je pense qu'il a bien... C'est que lui, il fait vraiment des choses pour être publiées et pour être utilisées. Donc ça donne quand même un coup de pouce à produire de la documentation. Alors que moi, c'est vrai que mon optique, c'est souvent produire des choses pour moi-même, pas trop les... Donc, c'est un peu... On a tous rencontré des ingénieurs ou des programmateurs, la documentation, mais c'est le code. Elle est là, la documentation, c'est le code.

Sacha: Si je n'écris pas [ma] documentation, j'ai totalement oublié la fonction. Après ça, je ne comprends pas.

Richard: Sacha, je suis d'accord avec toi. Mais de là à ce que ça produise une action réelle, c'est là où le problème philosophique arrive. C'est qu'il faut arriver à produire l'action derrière. Mais c'est vrai, on oublie. D'ailleurs, il y a des fonctions dont tu me parles que j'ai oubliées. Celles-là déjà, je les ai quasiment oubliées, celles dont tu viens de me parler. Alors que c'est bien. C'est essentiellement quand je regarde du code pour me mettre une note en disant là il faut que je change quelque chose. Et ça va dans la to-do list. Et ça a un lien vers le code source et le contexte. Et si c'est possible de faire dans capture, je vais regarder. Je vais demander à... Ouais, je vais demander à l'IA, je pense. J'allais dire, soit je vais prendre le temps de le faire, moi, parce que c'est sympa aussi, c'est un peu de l'artisanat. Mais c'est vrai que ça va vite avec l'IA.

Sacha: J'aimerais que tout a beaucoup de priorités.

Richard: Oui, oui. Trop. Trop. Moi-même, je ne suis pas sûr de leur sémantique. Oui, c'est ça. Je crois que j'utilise essentiellement ABC. Ça, je comprends. On parlait des différentes sections. Les autres, oui. C'est essentiellement... En fait, ça va... Ceux qui sont plus tard, essentiellement un jour ça va devenir Someday. Et après ça va faire Cancelled, je pense. Soyons réalistes.

Sacha: Moi aussi, mes fichiers Org Mode sont remplis de tâches annulées.

Richard: Par exemple, je vois ici la YubiKey GPG Stuff. Ça, je sais déjà que ça n'arrivera jamais puisque je commence à passer à Age. Donc, ça ne va pas arriver. Ça n'arrivera jamais. Et ça, je n'ai plus la machine. Par exemple, on peut l'enlever. C'est bien, on va faire ça en direct.

Prot: Voilà la progression.

Sacha: Oui, progress. Tu as une fonction pour suivre ton plan d'études?

Richard: Ah oui, ça c'est pareil. J'avais créé, alors je ne sais même plus, mais c'est vrai, j'ai un répertoire. Alors, parce que comme tout le monde, des fois je cherche, soit je suis curieux de quelque chose. Et donc j'ai utilisé l'IA pour faire ça, pour me générer, c'est assez fort pour faire ça, générer des plans d'études, des sections, et on peut travailler avec elle aussi pour faire des interrogations. C'est pas mal. Et donc, ouais, c'est Study Plan, Study Next Plan. Oui, j'ai plusieurs. Plusieurs plans pour différents domaines de l'informatique.

Sacha: C'est très petit. Pouvez-vous?

Richard: On peut se tutoyer, comme on dit en français. Il y a des trucs en méthode formelle que je n'ai pas accompagné, comme l'arrivée de Lean4. J'aimerais bien prendre un peu de temps pour jouer avec. Il y a deux ou trois fonctions qui permettent de marquer, de passer à l'étape d'après avec Org Mode et un peu de glue autour pour voir quel fichier est en todo. On arrive à faire des étapes. Et c'est bien que tu me le rappelles parce que j'ai du retard là-dessus. Je ne suis pas en avance sur mon study plan, sur mon plan d'étude.

Sacha: C'est un bon plan. Tu utilises l'IA pour générer des plans. Tu as une fonction qui avance à la prochaine étape.

Richard: C'est ça. Donc il y a un format quand même. Le format n'est pas très compliqué. Week, l'index et puis des sujets qui sont marqués. Donc l'index permet de savoir ce qu'il y a à faire et d'avoir une vue d'ensemble des sujets. Donc si je travaille avec l'IA, je lui demande quand même d'aller suivre certaines choses. Par expérience, je sais que c'est un sujet sur lequel on peut passer toute une vie. On délimite quand même. J'ai utilisé l'IA aussi pour faire des interviews croisées sur des sujets. Vous savez les interviews techniques en informatique sont particulièrement pénibles. Donc pour faire une simulation d'interview technique. Avec l'IA qui fait une impersonnation de quelqu'un qui serait un expert en méthode formelle et qui travaillerait sur tel sujet et qui vous pose des questions. Comme si c'était une interview pour être... Pour être embauché pour travailler dans une entreprise.

Sacha: Tu le fais dans un fichier Org Mode ?

Richard: Je garde la trace dans un fichier Org Mode. Je garde la trace d'exécution dans un fichier Org Mode pour pouvoir repasser dessus et réétudier. C'est un peu des techniques de mémorisation classiques. C'est-à-dire, on fait une première stimulation, puis on revient un peu après pour rafraîchir des choses qu'on a travaillées. La première stimulation, c'est aussi, oups, ça, je ne connais pas du tout, je vais devoir aller chercher. Ce qu'on fait dans ce cadre-là, parce qu'en fait, je ne le connais pas. Je ne sais pas. J'ai une idée, peut-être. Ou peut-être mon idée est fausse, d'ailleurs. Il faut la corriger. Donc ça, c'est la première stimulation. C'est face à la question, se mettre face à son ignorance. Confronté à son ignorance. On peut soit demander à l'IA de nous aider un peu, soit d'aller chercher soi-même selon le temps qu'on a et selon ce qu'on juge le plus efficace. Mais après, il faut repasser dessus, sinon on oublie. C'est juste une bonne sensation. Mais après, ça ne sert pas à grand-chose en termes d'apprentissage.

Sacha: Il y a une question associée au chat sur la gestion des idées. « Ma question est la suivante. Je pense que c'est une rabbit hole au lieu de se focaliser sur les choses les plus importantes, au lieu de créer des projets et se concentrer sur les dot files, etc. » Je pense que tout le monde a du mal avec la gestion d'attention.

Richard: Oui, alors... En fait, un des problèmes, c'est tes notes hebdomadaires, Sacha.

Sacha: Pour moi aussi !

Richard: Elle donne tellement d'ouverture. C'est super ce que fait personne. Je vais faire pareil. C'est intéressant. Et on se retrouve deux heures plus tard. On a juste avancé sa configuration Emacs. Mais ce n'est pas grave. J'ai pris mon parti. Ça fait partie des activités que je fais dans la semaine. Ça fait partie des choses. Je pense, en réalité, je crois que nos emplois du temps sont moins pleins que ce qu'on croit qu'ils sont. Et moi, j'admis que Emacs, ça faisait partie des outils que j'aimais utiliser et comme tous les outils qu'on aime utiliser, il faut les entretenir. Donc, passer un peu de temps sur l'entretien et regarder des choses parce que c'est agréable. Voilà, donc j'ai admis qu'il y aurait du temps passé sur la configuration, et c'est pas grave parce que c'est un outil, il y a plein de gens, Emacs c'est un outil pour une vie, pour moi. Donc si on passe une heure par semaine, c'est pas grave, dans 20 ans, si on est encore là, ça sera quelque chose qui va être, qui aura un bénéfice si ce n'est juste pour la connaissance, juste pour le plaisir. C'est pas grave. Moi, c'est un truc que j'aime bien. On perd du temps entre guillemets, mais c'est pas vrai. Quand on fait des choses qu'on aime bien, on perd pas du temps, je pense.

Prot: Oui, oui, oui.

Sacha: Bien évidemment, tu utilises Emacs pendant plus de 20 ans.

Richard: Voilà, donc du coup, à force, ce n'est pas grave. Il y a des choses qui sont là depuis 20 ans. J'ai pris du temps pour les configurer, mais la configuration n'a pratiquement pas changé ou elle a évolué un petit peu. Donc, ce n'est pas grave. J'ai perdu une heure il y a 20 ans. Ce n'est pas grave. Ce n'est pas beaucoup de temps dans une vie.

Prot: Et tu as gagné les automatismes que tu préfères.

Richard: Ben oui, et ça je m'en rends compte quand je passe sur d'autres outils surtout. Que ça marche pas, C-x, CTRL F, ça marche pas, CTRL H, F, ça marche pas. Les raccourcis sont pas corrects. Je rigole bien sûr, mais c'est un peu ça. J'ai tellement d'habitude que c'est une forme d'obstruction au changement. On est d'accord, force d'avoir. Mais bon... Quand je regarde avec un pas de côté, il y a très peu d'outils qui ont la pérennité d'Emacs ou de Vim d'ailleurs. Donc c'est des réflexes qui valent le coup d'apprendre que ce soit pour l'un ou pour l'autre. Ce sont des choses qui seront probablement encore là où il y aura des héritiers très similaires dans 15 ans, 20 ans. Moi je parie qu'il y aura toujours un Emacs ou une forme d'Emacs et il y aura toujours un héritier de Vim quel qu'il soit dans 20 ans et c'est bien possible que Visual Code ait été remplacé par un autre éditeur plus à la mode. J'en ai déjà vu passer quelques-uns qui étaient très à la mode à un moment ou à un autre. Emacs a l'avantage d'être jamais à la mode. Donc, en fait, si on admet que ce n'est pas grave de ne pas être à la mode, on a un outil qui sera présent aussi parce qu'il y a... Grâce au travail de plein de gens et aux heures de travail de plein de gens dans la communauté, parce que ce n'est pas magique, donc voilà... On aura un outil qui va rester et qui sera toujours... De toute façon, on aura toujours une fonctionnalité ou une autre qu'on pourra continuer à utiliser. Même si on utilise Emacs juste pour avoir une interface Git qui soit super chouette, Ça reste assez chouette, ça suffit. Ou juste pour Org Mode, ça suffit aussi. Effectivement, je suis maximaliste, j'essaie de l'utiliser pour presque tout. Mais je pense que ça convient à plein d'usages.

Sacha: Tes étudiants supportent l'utilisation d'Emacs ? Ils continuent ?

Richard: Pardon?

Sacha: Tes étudiants. s'est passé à...

Richarde: Mon étudiant? Ah, mon étudiant, non, il continue avec Emacs, bien sûr. Les étudiants que j'ai eus, ils ont tous utilisé Emacs et il y en a plusieurs qui ont adhéré, qui ont beaucoup aimé Org Mode en particulier parce que souvent, je leur propose ça. Notamment dans les travails de master ou de thèse, il y a quand même beaucoup de lecture. Le rôle de l'encadrant, c'est de faire des recommandations. Vous savez comment est la vie, que ce soit en tant que parent ou en tant qu'encadrant, on fait des recommandations et les enfants ou les étudiants ne les suivent pas. Ils font leur propre expérience et après, ils s'aperçoivent qu'il y avait quand même des bonnes idées. C'est à peu près ça le mécanisme, comment ça fonctionne. Mais ils essayent. Et puis moi, je peux en parler pendant des heures et puis je suis enthousiaste sur ces outils-là parce que c'est pérenne, parce que c'est ouvert, parce que c'est facile de donner le format et on peut le transformer facilement grâce à tous les outils qui existent dans le monde open source. Donc, on part d'Emacs et d'un format textuel. Pour moi, vraiment Org Mode, c'est le plus adapté quand on est dans Emacs. Parce que le mode est phénoménal, même par rapport au support Markdown qu'on a, et par ses capacités qui sont supérieures. Mais après, on peut communiquer avec les gens facilement, produire à un PDF de ses notes Org Mode pour communiquer avec quelqu'un qui n'utiliserait pas Emacs, même pas en tant que visualiseur PDF. Donc, c'est facile. C'est très malléable. En fait, c'est vraiment là qu'on en revient. C'est très malléable comme outil. C'est fait pour être retransformé, pris en main. En fait, ça convient bien aux gens qui ont cette philosophie, en particulier les programmeurs. Beaucoup de programmeurs, ça leur parle. Mais pas que. Prot, à la base, il n'est pas programmeur, par exemple.

Prot: Oui, oui, c'est vrai.

Richard: Bon, et maintenant il l'est, mais de facto. Mais bon, voilà. Il continue, oui, ça continue. Mais même des gens, en fait, beaucoup de gens l'utilisaient dans mon entourage juste pour écrire les articles. En fait, c'est pour ça, initialement, en tant qu'étudiant, c'est pour ça que j'avais utilisé Emacs plutôt que Vim, c'était que c'était plus naturel de taper dans Emacs. C'est-à-dire, quand on tape une lettre, on obtient la lettre. Il n'y a pas de contrainte à passer dans un mode ou un autre. La notion de modal dans Emacs est un peu différente, un peu sous-jacente, mais elle existe. Donc, c'est un peu pour ça que j'étais parti sur Emacs à la base. Le choix, on conviendra que cette raison n'est pas extraordinaire. C'est une raison de facilité initiale. Et puis, du coup, je suis toujours dedans. Comme quoi.

Sacha: Mais les raccourcis clavier !

Prot: Dès que c'est la facilité avec Emacs.

Richard: Non, mais c'est vrai qu'il y a toujours cette difficulté de comprendre le mode. J'étais vraiment dans le Vi, donc il fallait vraiment taper sur Escape pour pouvoir taper une lettre, et puis pour bouger, après il fallait retaper sur Escape, etc. Bon, j'ai un peu absorbé ce genre de choses maintenant, puisqu'on a quand même des interfaces, enfin l'interface de Magit en particulier, c'est plein d'autres. Même les miennes, elles sont un peu modales. On arrive dans un buffer, on a des raccourcis clavier dédiés sur une lettre ou une autre. Bon, c'est clairement la même logique. Ça a du bon. C'est vrai qu'il y a des gens qui argumentent du fait que Emacs est modal carrément. Je n'irai peut-être pas jusque là, mais la différence n'est pas si grande que ça. Il y a une différence fondamentale d'esprit et de contraintes, mais ça c'est comme dans le design de quoi que ce soit. Il y a une vision initiale, puis après on s'aperçoit qu'en pratique, les différences sont beaucoup plus fines.

Prot: Et pour toi, comment on dit que le texte est malléable, c'est la malléabilité d'Emacs qui est l'essence de ces différences ?

Richard: Pour moi, oui. Le choix initial qui est de se dire je vais avoir un interpréteur d'un langage. Et en fait, Emacs pour moi, je le vois vraiment comme on a essentiellement un langage interprété. Ça me parle beaucoup. Et au-dessus, il se trouve qu'on a rajouté toute une bibliothèque super chouette de fonctions pour afficher du texte. Il y a une bibliothèque en plus. C'est comme si on prenait un langage de programmation standard et qu'on avait prévu déjà son utilisation au sein d'un éditeur de texte. Donc on a toujours la capacité inhérente au langage de programmation et en particulier, dans le cas du Lisp, la malléabilité. et l'expressivité. En plus, on a toute la bibliothèque et là on a tous les modes en plus, donc ça c'est encore d'autres choses, mais je le vois vraiment comme ça. Ça vient d'un langage de programmation, donc d'un monde que je connais. Programmation fonctionnelle dit quasiment un interpréteur pour pouvoir jouer avec le langage. Et au-dessus de ça, on a pensé l'affichage et la fonction d'éditeur, mais au-dessus de ce langage de programmation. Moi, j'aime bien ce côté langage de programmation qui est dans Emacs, qui est dans la nature d'Emacs.

Sacha: J'adore combiner les fonctions des bibliothèques différentes pour faire une interface personnalisée.

Richard: Oui, c'est ça, c'est ça. Et puis on continue en fait. Et c'est vraiment l'esprit, enfin pour moi c'est vraiment l'esprit open source, mais même la programmation fonctionnelle. On prend, on fait des, on a des briques de base et on les assemble. On fait des briques un peu plus abstraites et puis on... Et dans Emacs, force est constante. Moi, je trouve que les briques de base sont pas mal pensées. Est-ce que c'est vraiment... Je pense que c'est un peu organique. Un choix d'une essence initiale qui a tout bien décidé du début. Mais on se trouve qu'on arrive à un équilibre qui, moi, me satisfait. Et je ne cherche pas à convaincre le reste du monde qu'ils ont tort. Moi, ça me va qu'Emacs ne soit pas l'éditeur à la mode, comme j'ai dit tout à l'heure. Je ne cherche pas à convaincre le reste du monde que c'est ça qu'il faut faire. J'incite fortement mes étudiants quand j'en ai à l'utiliser. Mais sinon, ce n'est pas grave. Ça reste un outil et c'est pareil, les outils, il faut les adapter. L'open source permet ça et je pense que c'est aussi un message important.

Sacha: As-tu des astuces moins connues sur l'utilisation d'Emacs ?

Richard: Moins connues ? Je ne sais pas. Comme je vous ai dit, j'emprunte beaucoup de choses dans ce que je vois. La dernière chose que j'ai commencé à utiliser et que j'aime bien, c'est Embark. Mais je pense que c'est suffisamment connu. Pour ne pas dire que c'est une astuce inconnue que je commence à utiliser. Parce qu'effectivement, on a ce problème de se rappeler de ce qui existe, ce qu'on a déjà fait. Et je trouve que Embark m'aide un peu à ça. On a un raccourci de base dans un contexte. Et on va afficher les choses qui existent dans ce contexte qui pourraient être intéressantes à utiliser, qu'on a oublié parce que nos fichiers de configuration sont trop longs ou il y a plein de modes ou des choses comme ça. Et ça m'aide dans ça, ou pour rajouter facilement des fonctionnalités dans des modes qui ne sont pas les miens. Là, dans Magit, par exemple, au-dessus de Forge, j'ai associé dans Embark la possibilité d'ouvrir via peer review. La pull request qui était ouverte et pouvoir faire la revue de code dans Emacs, évidemment. Aussi. En se passant de GitHub.

Sacha: Ma fille ne s'est pas encore réveillée. Donc si vous êtes disponible, nous pouvons continuer. Si vous avez d'autres obligations, pas de souci. On continue?

Prot: Moi, je peux continuer.

Richard: Moi aussi. En plus, on a un quart d'heure à rattraper au moins. À cause de notre erreur initiale assumant collectivement.

Sacha: Oui, non, non, non. J'ai enregistré toutes les sessions, donc je peux publier l'enregistrement.

Richard: D'accord. Très bien. Non, pas de souci, avec plaisir. Moi, j'aime bien. Moi, juste d'être là avec vous deux, ça me va, et de parler d'Emacs. Comme je vous ai dit, je peux en parler pendant des heures. Je pense que certains de mes étudiants en avaient peut-être marre, mais osaient pas me le dire. Mais oui, on peut continuer.

Sacha: Je n'ose pas toujours aller aux réunions virtuelles d'Emacs Paris. Comment ça va? Il y a beaucoup de présentations en français ?

Richard: Alors moi, je n'y suis jamais allé. En plus, tu m'as parlé de virtuel, donc ça n'a pas d'impact, mais je n'habite pas à Paris. Mais effectivement, c'est une bonne remarque. Peut-être que je devrais le faire. Il faut voir les horaires parce que je suis un peu comme toi. J'ai des contraintes familiales. J'ai aussi une fille. Donc, il y a des horaires qui sont impossibles à l'heure actuelle. Et c'est bien, en fait. C'est comme ça. C'est la vie.

Sacha: C'est la vie.

Richard: Non, mais c'est bien. En fait, c'est bien. C'est bien. Malgré ma passion d'Emacs, on peut faire un petit pas de côté, avoir un enfant, moi, ça m'a amené à reconsidérer beaucoup de choses. C'est normal, oui. Et d'ailleurs, juste en passant, moi, ça m'intéresse ce que tu racontes sur la parentalité, Sacha, dans tes billets de blog. C'est un truc que je suis. Ça n'a rien à voir avec Emacs, mais un peu, parce qu'à travers toi, c'est un des sujets que j'aime bien suivre et qui m'interpelle depuis qu'il y a un enfant, essentiellement. C'est comme ça qu'on s'y intéresse, je crois.

Sacha: Ma fille a 10 ans, donc je me sens toujours une débutante avec tous les sujets de parentalité... c'est difficile.

Richard: Mais je pense que c'est la même attitude face à Emacs. Il faut avoir... On est des débutants, on continue à apprendre. C'est un environnement où il y a tellement de choses à apprendre. On continue. Ce qui est bien, c'est que ça peut satisfaire les gens qui sont curieux et qui sont quand même aussi à l'aise avec le fait qu'ils ne connaîtront jamais tout. Ce n'est pas grave. Moi, ça me nourrit comme ça. La parentalité, c'est un peu la même chose. On ne connaîtra jamais tout. Sauf que ce qu'on fait a quand même plus d'impact que dans Emacs. On est d'accord. C'est quand même un peu différent.

Sacha: Quelles sont tes prochaines étapes sur ton bricolage d'Emacs ?

Richard: Alors probablement, visiblement, ce qu'on a discuté là, je suis conscient qu'il y a un peu de nettoyage à faire. Peut-être d'aller voir un peu plus dans le détail ce qui existe dans Org-capture pour simplifier certaines choses. On a tous un peu, enfin les programmeurs, on a tendance aussi à, comme on dit en français, à réinventer la roue. On aime bien faire les choses de notre manière parce qu'elle est mieux. Parce que c'est la nôtre, en fait. On la comprend plus facilement, tout simplement. Donc, probablement, allez voir s'il n'y a pas d'autres choses. Je vais continuer à travailler sur mon interface Garmin pour que ça soit... Plus intégrer pour ma visualisation, donc vérifier les courbes, je pense que je vais regarder. C'est peut-être intégrer d'autres données physiologiques. Ce qui est pas mal, c'est que si on a, enfin moi c'est pas mon cas, mais si on a plusieurs, il n'y a pas de mot français, trackers, de données, on peut les intégrer au même endroit dans Emacs, évidemment. En ayant la bonne interface, la bonne glue, la bonne colle pour intégrer les données. Et puis je vais continuer, dès que j'ai une cascade, une séquence de choses répétées, à essayer de les intégrer sous forme de fonction dans Emacs. qui fait toujours dans cette vision d'orchestration. Je pense que je vais continuer parce que je l'ai fait. Par exemple, j'ai des fonctions pour générer des invoices parce que ça m'est venu assez naturellement d'avoir ça dans Emacs. parce que j'ai un esprit comme ça, mais avec du LaTeX, bien sûr, parce que ça, c'est mon background académique c'est parce que je connais les packages. C'est pareil quand on connaît un environnement, hein, quand on a un marteau, on a l'impression que tout est un clou, comme on dit, hein. C'est un peu ça. Je vais continuer ça. Dès qu'il y a quelque chose qui est un peu répétitif et qui est un peu ennuyeux à faire, je pense que je vais l'intégrer dans Emacs. Parce que l'outil me le permet très facilement. C'est facile de lire les sorties d'outils Unix, c'est facile de les combiner avec la programmation fonctionnelle, tout se passe bien. On les remet en forme, on échange les données. Et ça, Lisp est chouette pour ça. Pour manipuler les données, c'est vachement bien. Pour moi, c'est encore plus simple que d'autres visions de la programmation. Je pense que ces deux aspects-là, simplifier les tâches répétitives, donc ça, je continue en particulier, même à les faire avec des timers, parce qu'il y a des choses que je n'ai pas envie de réfléchir. Il y a des choses auxquelles je réfléchis, comme d'aller récupérer... Donc, par exemple, toutes les pull requests qui ont reçu des commentaires. Voilà, mettre dans Emacs et me faire une petite note Org Mode avec les liens qui vont bien pour pouvoir... Ça fait une forme de... C'est des mini to-do list pour la journée, quoi. Qu'est-ce que je dois faire dans ma journée de programmeur d'un peu urgent ? Au lieu d'aller manuellement dans les dépôts Git et aller voir s'il y a eu... Moi ça me va quand je ne vais pas sur les interfaces des navigateurs, j'aime bien. Je préfère rester dans la manipulation de texte et dans l'abstraction. J'aime bien les outils locaux et Emacs me permet de faire comme si c'était local.

Sacha: J'ai lu ta fonction pour générer ton rapport pour les stand-up qui ressemblait à tous les pull requests et d'autres données.

Richard: C'est ça, oui. On me demandait de faire ces rapports-là. Ce n'est pas un truc d'humain, ça. C'est un truc de machine. Ce n'est pas important. Donc, c'était des demandes. Quand on a des demandes administratives qu'on trouve à la limite de l'absurde ou qu'on ne considère pas comme importantes, c'est bien que la machine vous aide. Emacs me permet ça, mais tous les outils de script le permettent. J'aime bien l'avoir dans Emacs.

Sacha: Tu as d'autres collègues qui utilisent Emacs ? Peut-être qui utilisent tes scripts ?

Richard: Mes scripts, c'est arrivé par le passé. Des choses que j'avais faites, j'avais distribué à des étudiants justement en Caml. J'avais fait des petites choses pour simplifier, pour pouvoir résumer vite. En Caml, on a deux types de fichiers. On doit décrire dans un fichier l'implémentation et dans un autre fichier ce qui est accessible comme API. Il y a une forme de duplication qui n'est pas très satisfaisante en tant qu'être humain. Donc, j'ai fait un script pour extraire l'information nécessaire du fichier où on avait l'implémentation vers le fichier d'interface. Je l'ai diffusé aux étudiants pour qu'ils puissent le réutiliser, pour que ça leur simplifie le développement. J'ai peut-être deux ou trois autres choses qui ne viennent pas à l'esprit, mais c'est assez limité. Et j'ai un collègue qui utilise Emacs. Alors on n'est pas beaucoup, je suis dans une toute petite entreprise, on est six, donc on est un tiers d'utilisateurs Emacs. Un tiers, c'est énorme sur une entreprise. Le reste, ils font tous du visual code, plus exactement du... Comment s'appelle ça ? Cursor.

Prot: Ah, Cursor, oui.

Richard: Personne n'est parfait.

Prot: C'est la mode, oui.

Richard: Mais là encore, en fait, Emacs est parfait pour l'IA. Mais c'est normal. Lisp, c'est un langage d'IA à la base.

Prot: C'est normal.

Richard: Donc, Emacs était en avance. On ne le savait pas. L'IA manipule presque tout de format textuel. Donc, c'est parfait pour Unix en général et Emacs en particulier. Moi, j'utilise Claude Code et j'ai fait une petite interface aussi pour savoir toutes les instances de Claude qui tournent dans quel répertoire avec quel pour pouvoir les ouvrir et aller les voir ou les tuer etc. Donc encore une fois, j'ai réutilisè Tabulated pour faire ça, parce que effectivement j'étais un peu contraint par Claude Code. Moi, j'utilise qui marche très bien, mais ça permet qu'une seule instance à un seul buffer, donc j'ai un peu généralisé pour avoir un Claude Multicode ou quelque chose comme ça. Ça permet d'utiliser plein d'instances qui les renomment automatiquement, on peut les renommer. J'ai un peu mon cockpit dans Emacs, mon dashboard textuel. C'est l'idée générale actuellement.

Sacha: J'ai un peu peur de permettre à l'IA d'utiliser mon Emacs directement. C'est un peu dangereux, je pense.

Richard: Non, oui. Il y a d'autres soucis, mais on est incité. Bon, ça simplifie certaines choses, mais ça en complique d'autres. On pourrait en parler, mais ce n'est pas le sujet d'aujourd'hui. Ce n'est pas le sujet d'aujourd'hui, mais ça aide. En fait, moi, ça m'a enlevé un frein pour ma création d'outils personnalisés dans Emacs quand même. Est-ce que j'avais toujours une espèce de frein qui me disait, oh là là, mais il va y avoir tout ça à faire. Ça va prendre beaucoup de temps. Plein de choses, j'arrive à conceptualiser, mais les détails, je ne les connais pas. Donc l'IA me permet de remplir facilement les détails en donnant le concept de ce que je veux et d'aller un peu regarder parfois, mais... Mais c'est pas tout le temps. Parfois, mais pas tout le temps. Là, il y a plusieurs choses. J'ai fait beaucoup de travail avec. Mais je reste souvent sur ma faim, comme on dit. Sceptique quant aux résultats obtenus. C'est assez facile de... Je trouve que je me suis déjà convaincu de certaines choses en travaillant avec IA, en revenant le jour d'après en disant mais c'est pas bon du tout ça. A mon avis, c'est même totalement faux. Et de retravailler un client en disant ah oui, effectivement, c'est totalement faux ce que j'avais dit. C'est vraiment le problème de travailler avec ça. Tout le monde qui a un peu de recul le sait. Ces outils ont ce problème-là. Il y a ça aussi. Tu ne l'as peut-être pas vu. Je ne sais pas si je l'ai poussé.

Sacha: Il y a un commentaire dans le chat. Aya a dit, dans mon école d'ingé, tout le monde utilise Vim ou Neovim. Emacs est considéré comme sauvage un peu.

Richard: Et c'est déjà... Moi, je trouve ça impressionnant que tout le monde utilise Vim ou Neovim. En réalité, en 2026, qu'il y ait tant d'utilisateurs que ça, de ces éditeurs qui sont...

Sacha: Très limités. C'est de papi, c'est des grands-pères de l'informatique.

Prot: Oui, oui.

Richarde: Mais en fait, quand êtes pensée... Dont la vision est a quelque chose de singulier et c'est pour ça qu'ils perdurent. C'est pas juste parce qu'il y a un peu d'habitude probablement, mais c'est pas que ça. C'est qu'ils parlent, je pense, à un certain type d'audience. Il y a vraiment des idées, je pense, qui conviennent à un paquet de gens, des ingénieurs en particulier. Je vous avoue que si moi, on m'imposait un autre outil, je serais très triste. Ça serait difficile. En fait, c'est un peu ce que je considère comme une nécessité au métier d'ingénieur ou de programmeur, c'est d'avoir de l'autonomie dans ses choix, techniques en particulier. Et un des choix techniques, c'est son interface de programmation. C'est pour ça que je ne vais pas essayer de convaincre à tout prix que quelqu'un qui utilise Visual Code a tort. Il n'a pas tort, il utilise l'outil qui est adapté pour lui. Je peux lui montrer Emacs, on peut rigoler en lui disant qu'il a tort, mais je n'irai pas jusqu'à le considérer vraiment. Mais j'étais étonné qu'on soit deux à utiliser Emacs. En Rust, je pense que c'est un environnement qui est moins courant. Les communautés de programmation ont aussi des habitudes par rapport aux éditeurs. Et en Caml, Emacs... avait au passé une majorité. Je crois qu'il y a beaucoup d'utilisateurs de Neovim ou de Vim maintenant. Notamment depuis qu'on s'est abstrait que le support du langage est passé du côté LSP. Finalement, l'éditeur n'est devenu pas très important pour avoir la qualité de support. Du coup, c'est un bon argument pour que je garde Emacs. Comme ça, j'ai mes raccourcis clavier, j'ai un environnement hyper dépouillé parce que moi j'aime bien avoir quelque chose de très lisible et très flat. Pas de truc qui clignote ou de machin. Bon, vous pouvez voir que j'utilise un window manager aussi très tiling, donc j'ai vraiment un truc un peu spartiate. Et j'ai utilisé plusieurs fois Mac OS. A chaque fois, ça s'est terminé pareil. Cet environnement ne me laisse pas faire les choses comme je veux. J'en ai marre, je repars sur Linux.

Sacha: Tu es très particulière sur tes outils.

Richard: Oui, c'est-à-dire que j'aime bien ne pas me sentir restreint. Mais dans la vie, c'est pareil. J'aime bien la forme de liberté que procure L'open source, encore une fois. Sous Linux, si je veux avoir un environnement à la macOS, je peux aussi. Si c'est ça qui me convient comme utilisateur. Et c'est ça qui est important, moi. Qu'on me laisse le choix. Et moi, ce dont j'ai besoin, c'est vraiment un truc simple. Ou l'écran, ou mon interface avec le monde, c'est Emacs. C'est particulier, mais ici, dans ce petit monde où on est là, tous les trois et les auditeurs, je pense qu'on est plusieurs à avoir un peu ce parti pris. Même quand j'étais sur Mac OS, c'était... Mon principal problème c'était que je trouvais désagréable, c'était compliqué pour moi de switcher entre Emacs et le navigateur. Je trouvais ça désagréable, la façon de le faire sur macOS. Là, essentiellement, j'ai deux écrans virtuels différents et il y en a un qu'avec un navigateur. Donc, je change de l'un à l'autre et un par raccourci clavier. C'est sans doute possible sous macOS. Je le crois volontiers, mais je ne suis pas arrivé à quelque chose où je me sens libre de le faire.

Sacha: En lisant ta configuration, j'ai noté que tu utilises EWW. Oui, un peu, oui.

Richard: Dès que c'est possible. C'est-à-dire pas tout le temps. En 2026. Oui, ça m'arrive assez souvent, via Elfeed en particulier. Parce qu'il y a un nombre de blogs qui redirigent uniquement où on est obligé d'aller sur la page. Donc beaucoup d'entrees... En fait, ça suffit pour lire et c'est ça me va. Et donc j'utilise en premier lieu EWW dans ce cas-là. Sinon, c'est... Malheureusement, je n'arrive pas à en faire un outil majeur au quotidien. Les interfaces web que j'utilise ont souvent besoin de JavaScript en 2026. Malheureusement, je ne vais pas pousser la liaison Firefox. J'utilise Firefox essentiellement, mais la liaison Firefox et Emacs, je ne vais pas pousser cet aspect-là.

Sacha: Je donne l'exception SpookFox pour créer un lien entre le navigateur Firefox et Emacs.

Richard: Comment tu dis?

Sacha: SpookFox. SpookFox me donne le pouvoir d'exécuter le JavaScript à partir d'Emacs Lisp. pour retrouver des...

Richard: Je vais regarder...

Prot: Oui.

Richard: Tu vas me faire perdre du temps encore.

Sacha: Pardon, pardon. pour passer à une autre page ou à retrouver des données ou à toutes les choses.

Richard: Je pense que c'est exactement ce qu'il me faut. Je ne sais pas qui a fait ça, mais merci à cette personne.

Sacha: Quand je prépare le bulletin d'information Emacs News, je l'utilise pour [extraire] les liens sur Reddit. Oui, oui, oui. Au lieu de copier manuellement les liens moi-même, je juste le sélectionne dans une liste de vertico.

Richard: Ça c'est bien, ça. C'est un usage que j'ai régulièrement de récupérer le lien qui est dans mon navigateur pour l'intégrer dans une note ou quelconque. Effectivement, ça va être bien ça, je pense. On apprend tous les jours, c'est là qu'on mesure le degré de notre ignorance.

Sacha: C'est la raison que j'ai envie de plus de vidéos et de ressources intermédiaires sur Emacs parce que tout le monde a des choses qu'on peut apprendre. Dans Emacs... Toutes les vidéos en ce moment sont pour les débutants, mais si tu prends juste un peu plus d'étapes, tu peux découvrir beaucoup de sujets d'apprendre.

Richard: Oui, c'est vrai. On apprend tout le temps. Mais même quand on est expert, je pense que... Même les experts apprennent parce qu'ils sont experts dans un sous-domaine. Ils ne connaissent pas tout. Dans la communauté Emacs, il y a plein de gens qui connaissent des choses, qui ont fait des choses très particulières. Même eux, je pense, peuvent apprendre d'autres qui ont fait d'autres parties plus particulières.

Prot: Mais ça doit être un peu plus difficile de faire les vidéos sur ce sujet-là. Parce que... Qu'est-ce que tu vas dire ? Les préférences sont particulières. Peut-être c'est plus difficile de dire, oh voilà, voici quelque chose pour tout le monde. Tu vas dire, voici quelque chose pour moi.

Richard: Ça marche. Ça peut servir de point... En fait, ça a une autre utilité. Déjà, se rendre compte que c'est possible. Parce que parfois, on se dit juste, on n'a pas eu l'idée. Ah, mais on peut faire ça. Et comment on le fait? Il a utilisé ça, ça et ça dans les mains. Ah, mais je ne savais pas que c'était comme ça qu'on pouvait faire. Et donc, à partir de ça, on désassemble un peu les briques et on les réassemble pour nous différemment. C'est d'autres utilités, je pense.

Prot: Mais peut-être il y a les séances en direct qui ont comme ça. Je ne sais pas, oui. Je n'ai pas cherché.

Richard: Moi non plus.

Sacha: Je suis étonnée que cette conversation marche, même si je suis débutante, même si Prot est un peu rouillé.

Richard: Bon non, tu es pas... Alors, pour avoir une conversation d'une heure comme ça, tu n'es plus débutante. Non, il n'y a aucun souci à te comprendre en français. J'ai l'impression que tu n'as pas eu beaucoup de soucis de compréhension. C'est très facile de te suivre. Moi, j'ai appris une autre langue un peu comme toi. Dans mon passé, je suis allé au Brésil. J'ai habité deux ans là-bas et je ne parlais pas portugais. Et j'étais prof de l'université. Donc, j'ai appris comme ça, en donnant des cours. Alors, un peu en apprenant des cours, bien sûr, de base. Mais après, toute l'oralité, la façon de parler, la facilité de parler et le vocabulaire, c'est en travaillant sur les cours. En parlant, comme tu es en train de le faire, là. Et maintenant, les gens ne savent pas si... Beaucoup de gens ont des doutes jusqu'à un certain point. Ils arrivent à voir que je ne suis pas brésilien. Mais ça marche. Non, mais ton français est très bon. Il n'y a aucun souci.

Sacha: Tu disais que tu avais peut-être un peu peur sur ce... Peut-être qu'un jour, nous pourrons avoir des Emacs en portugais. Je ne sais pas. Je ne parle pas portugais.

Prot: L'année prochaine.

Richard: En grec, d'abord.

Prot: Le final boss.

Sacha: Mais je pense qu'avec l'aide de l'IA, c'est plus facile d'apprendre la langue à ce moment.

Richard: C'est vrai que c'est un usage tout à fait pertinent aussi, de ces outils. Je t'avoue, par exemple, l'usage de l'interview dont je t'avais parlé, je n'y avais pas pensé. Mais en fait, c'est très pertinent de l'utiliser comme adversaire d'une certaine façon. Dans un jeu, il y a beaucoup d'ingénieurs aussi qui créent leur logiciel maintenant, un peu aussi pour maîtriser ce qu'ils font de façon conversationnelle avec l'IA. Donc en remettant, en disant, en lui faisant poser des questions, en créant bric à bric, au lieu de lui dire fais ça, d'aller prendre un café, c'est bien aussi, parfois, mais ils le font pas à pas, comme un outil pour délimiter, parce que c'est vrai que Parfois, les solutions sont intéressantes, dirons-nous. Ça peut être assez intéressant. J'ai déjà eu le cas, mais beaucoup d'autres, c'est quand on lui dit « fais passer tel test », tu enlèves tout le code du test et puis on met juste « assert true ». Voilà, très bien. Ça passe.

Sacha: J'ai envie d'interface vocale et conversationnelle avec Emacs. Je pense que c'est très puissant.

Richard: Alors, j'y ai pensé, mais je ne suis pas là. Mais effectivement, j'ai des collègues qui utilisent l'IA et qui lui parlent directement pour être encore plus efficace. Mais est-ce que c'est... Je me pose à chaque fois la question si c'est... Est-ce que c'est vraiment le but de ce qu'on veut faire personnellement, comme être humain, quoi ? Est-ce que c'est vraiment ça, être le plus efficace possible ? Là, par exemple, on n'est pas efficace, mais c'est très bien. Mais ça a quand même quelque chose de pertinent.

Sacha: Et il y a des commentaires au chat. J'ai totalement oublié de lire à voix haute. Une conversation sur la gestion des fenêtres, sur l'apprentissage de langue avec les algorithmes de répétition espacée. Et aussi les amis qui utilisent Helix [plutôt] que Emacs ou aussi Zed parce qu'il est plus [à la] mode.

Richard: Surtout si on aime Rust. J'ai essayé, mais c'est un peu comme tous les outils. J'ai peut-être pas assez de patience. J'ai passé déjà mon temps d'apprentissage dans Emacs et j'avoue être un peu réticent, comme on dit.

Sacha: Oui, tu as beaucoup d'habitude d'Emacs et c'est difficile de passer à d'autres éditeurs.

Richard: Oui, et puis surtout, comme on disait tout à l'heure, maintenant, il y a des couches d'abstraction. Il y a LSP, TreeSitter, qui en fait rendent le choix de l'éditeur un peu... Plus proche d'un choix tout à fait personnel. Et pas de capacité en fait. Les capacités sont les mêmes, elles sont produites par l'adaptateur LSP ou l'adaptateur tree-sitter. Du coup, il n'y a plus de frein à utiliser celui qui nous plaît le plus. Parce qu'on a des habitudes pour tout un tas de mauvaises raisons. Effectivement, comme j'utilise plein d'autres choses dans Emacs, pas juste la capacité d'éditeur de programmation parce que c'est ça qu'on a moins en fait dans Visual Code ou même peut-être dans Z, que je ne connais pas très bien. C'est le fait que ça soit plus qu'un éditeur en réalité. C'est ce qu'il y a de plus que ça. Ça fait l'éditeur de code. Oui, mais tellement plus. C'est vraiment proche d'un OS d'une certaine façon. Beaucoup de choses. C'est une couche d'abstraction lispienne au-dessus d'un OS avec un... Un tiling window manager pas terrible. Et voilà. Et l'édition quoi. Mais l'édition, en fait c'est l'édition de texte. Donc ça marche. Pour écrire des papiers, c'est super, c'est très bien aussi. C'est comme ça que j'ai beaucoup utilisé pendant très longtemps pour écrire mes papiers scientifiques. Comme en informatique, on utilise LaTeX. Pareil, c'est souvent Emacs ou un autre éditeur, peu importe finalement. Parce que derrière, on a une espèce de makefile ou un truc. Je suis assez vieux pour utiliser des makefiles, moi. Tout s'emboîte assez bien dans Emacs. Il est né en même temps que beaucoup d'outils donc finalement il arrive à interagir très bien avec ces outils. C'est surtout ça que je pense qu'il importe, qu'il est bien. Mais probablement les autres éditeurs y arrivent très bien aussi. Mais on n'a tous que 24 heures dans la journée. On choisit de perdre son temps sur la note hebdomadaire de Sacha et du coup on ne peut pas aller faire du visual code. Voilà.

Sacha: Donc c'est ma faute.

Richard: C'est ça. Non mais ça serait autre chose, tu sais, la procrastination avec... Elle est illimitée. Quand il y a des choses qu'on n'a pas envie de faire, on trouve toujours quelque chose de plus important à faire.

Sacha: Je ne sais pas comment je peux créer une traduction de notre conversation. Je pense que j'ai du mal à la corriger parce que c'est difficile en français. Mais j'essaie. Oui, oui, oui, oui. J'adore utiliser WhisperX pour transcrire mes autres conversations en français parce que même si elle demande beaucoup de corrections, c'est plus utile parce que je ne sais pas les mots, je ne sais pas... Ah! Il y a un... Un petit remarque. « Est-ce que vous êtes averti qu'on peut utiliser Emacs, Vim, etc. avec Termux dans votre poche avec le smartphone et synchroniser votre travail avec SyncThing? » J'utilise Orgzly Revived avec SyncThing. Tu utilises Emacs sur ton téléphone?

Richard: Je déteste utiliser mon téléphone. On ne voit rien. C'est désagréable. On n'a pas de clavier. C'est horrible. Je n'aime pas utiliser mon téléphone. Je ne suis pas une personne. Je suis trop vieux, peut-être. Mais non, c'est trop petit. On ne voit pas assez de contexte. Je ne sais pas. Ça ne me convient pas, personnellement. J'essaie. Je fais Orgzly et Syncthing. Mais en réalité... Ce qui me convient mieux, c'est de prendre des notes à la main quelque part et d'aller les rentrer après. Et en plus, je crois que ça me détend un peu plus de prendre la note à la main. Je la retiens mieux. Des fois, je n'ai même pas besoin de passer par l'étape intermédiaire de la rentrée. Je trouve que je les oublie beaucoup plus facilement si je les note sur le téléphone ou sur un device de façon électronique. Si je les note à la main, du coup, Il y a quelqu'un qui est un peu connu, qui est dans la réflexion de comment on travaille, qui s'appelle Cal Newport. Lui, il fait beaucoup de notes à la main quand même dans son travail, mais il est chercheur, c'est pareil. C'est un peu une apologie aussi de la lenteur d'une certaine façon pour réfléchir à ce qu'on fait. J'ai mis en place Syncthing et mon Android n'arrête pas de le tuer parce qu'il ne fait rien. On va lui dire que ça fait je ne sais pas combien de temps que vous ne l'avez pas utilisé donc je vais arrêter cette permission et cette autre permission. Je suis au courant de tout ça. Je vais plutôt passer du temps à faire ma config Emacs. On va faire des interfaces pour gérer les finances dans Emacs. Et puis d'autres outils qui existent. Et puis on agrège tout ça avec un makefile ou un just file. Et on obtient des interfaces assez sympas. Et ça suffit pour une personne en fait. On n'a pas tant d'opérations. Quand on réfléchit, on n'a pas tant d'opérations que ça, le texte. Je pense que c'est un peu le constat de Prot sur Denote par rapport à l'utilisation d'une base de données, c'est que... On produit pas tant d'informations que ça en fait. Pour qu'on ait besoin d'avoir des bases de données en plus au-dessus du file system et que les outils qui se cherchent directement dans le texte nous amènent en fait très très loin par rapport à la qualité et le contenu d'informations qu'on produit. Donc le téléphone, si je pouvais m'en passer. Si je pouvais me passer du smartphone, je le ferais. Mais il y a beaucoup de banques qui ne veulent pas qu'on se passe d'un smartphone et beaucoup d'autres intermédiaires qui veulent vraiment qu'on ait leur application sur notre téléphone. Mais si je pouvais avoir que le téléphone, franchement, je pense que je le ferais maintenant. Chapeau ! Je suis à ce point-là. Je suis comme tout le monde, je perds du temps sur mon téléphone. Je me rends compte qu'il va toujours vouloir écouter des trucs. A raté d'autres choses du coup. A raté ce que je suis en train de faire. A raté ce que me dit ma famille. Peut-être qu'il y a une petite remise en question personnelle sur moi, sur le multitasking, sur la multitâche. Je pense que je vois un peu tout ça. Moi, je trouve ça chouette quand même au niveau technique de se dire on peut le faire et c'est possible. Mais je pense que j'ai un peu passé cette étape-là où je me dis je vais franchir pour dire je vais le mettre en place sur mon téléphone et je vais prendre le temps de le faire. Je pense que je ne ferai plus ça.

Sacha: Tu peux consacrer ton temps sur ton ordinateur pour le travail et après ça, c'est fini.

Richard: Oui, mais pas que. Enfin, même pour d'autres choses. Il n'y a pas que du travail. Mais effectivement, je préfère utiliser l'ordinateur comme interface numérique. C'est trop limité le téléphone pour moi. Et encore une fois, c'est un environnement qui est de plus en plus contraint. Si on veut pas... C'est pas si simple d'utiliser Lineage OS parce qu'il y a des applications qui vont peut-être plus fonctionner. Notamment les banques, par exemple, il y en a peut-être qui vont plus fonctionner parce qu'on n'a pas le bon OS. C'est un peu le même truc dont on parlait. Je me sens contraint sur le téléphone et c'est le but. Un certain nombre d'entités de récupérer, à travers cette contrainte, des données. Il est là, mon téléphone, il n'est pas loin. Tu sais la justification facile pour cette chose-là, c'est « mais si jamais on m'appelle pour ma fille ?

Prot: » Oui, oui, oui.

Richard: Moi, je suis né à une époque, on est assez vieux pour se souvenir qu'à une époque, on n'avait pas de téléphone portable. Et on arrivait quand même à appeler les gens. J'en déduis rien de particulier, mais je pense qu'on est capable de s'organiser raisonnablement ou de limiter nos usages, parce que ce n'est pas inutile, je ne dirais pas jusque-là. Je pense qu'on l'utilise trop. Moi, je l'utilise trop. Résumons ça. Moi, je l'utilise trop et ça me fatigue.

Sacha: Quelle est-ce ta fille ?

Richard: Elle a 6 ans.

Sacha: Ah ! Très petite. Elle est jeune.

Richard: Elle est jeune, mais c'est quand même déjà très différent. Et on a passé les étapes les plus J'ai envie de me dire qu'on a passé les étapes les plus compliquées de la gestion par rapport à l'organisation de la journée. Et la façon d'interagir, parce que là, maintenant, elle est à un stade où la discussion est totalement possible. Avant, c'était moins facile quand ils sont tout petits. En fait, j'ai deux filles. J'en ai une qui habite avec moi maintenant et l'autre qui est très grande, qui a habité avec sa maman, qui a 18 ans. Elle fait sa vie, elle est indépendante à 18 ans. Il n'y a plus besoin au quotidien de choses.

Sacha: Donc, quand ta fille demande ton attention, tu dois payer toute l'attention.

Richard: Oui, et parfois elle nous fait remarquer qu'on est sur le téléphone. Et en général, ça nous suffit, dis-nous parce que c'est valable pour moi et mon épouse, mais ça nous suffit pour le poser. En fait, on a un endroit où on le laisse charger qui est un peu éloigné de quelque part dans notre salon. On a un endroit pour les charger et ce n'est pas dans la chambre, c'est un peu loin. Du coup, ils sont souvent là, quand même. Souvent là, et puis retournés, comme ça, ils sonnent pas. Moi, mon téléphone, il sonne jamais, de toute façon. Il est en vibreur, déjà, c'est pour te dire à quel point j'aime cet outil. Il est en vibreur, donc il sonne pas. J'aime pas les gadgets qui réclament mon attention. Les pop-ups, les machins, ça me stresse. Même quand je suis dans une gare à Paris, par exemple, je le sais, il y a des vidéos qui tournent, ça m'agresse. Tout ça, toutes les notifications, les choses, tout ça. C'est pour ça que j'aime bien Emacs, parce qu'on peut en avoir si on veut, mais par défaut, on n'a rien. En fait, ce qui est bien avec Emacs, c'est que par défaut, il n'y a rien.

Sacha: À l'exception de Visible Bell, qui peut configurer à Visible Bell ou à d'autres options.

Richard: Et pour avoir quelque chose, il faut travailler et faire ses choix. Lire, suivre des gens, c'est [??]. Ça c'est chouette. Moi, ça me va bien et j'aime bien le fait qu'il y a ait rien que on pousse pas à la perception ou à la prise d'attention. C'est hyper néfaste en fait. On le sait sur l'attention, sur la production intellectuelle. Mais Emacs a cette qualité-là où... C'est un outil de travail, vraiment pour du travail. C'est-à-dire un travail profond où on réfléchit à ce qu'on fait, c'est difficile, ça prend du temps. Et c'est même pas tant la rapidité de taper au clavier qui est importante parce que ce qui prend du temps, c'est avoir la bonne idée. Donc après, on peut taper vite ou lentement. Finalement, c'est presque insignifiant par rapport à la durée de réflexion et de la production de la chose. Donc, je pense que c'est le genre d'environnement un peu zen que j'aime bien, moi.

Sacha: Emacs, l'éditeur zen !

Richard: Non, mais c'est vrai. Puis l'image du gnu avec la flûte, franchement. Même Vi est comme ça. C'est des outils, c'est des choses, des outils. Il n'y a pas de superflu. On rajoute ce qu'on veut par-dessus et ça peut devenir un monstre. ou un truc très très limité. Moi j'aime bien ces outils qu'on peut configurer en fonction du temps et du travail qu'on y accorde. Et puis j'aime bien Lisp honnêtement. C'est pas OCaml mais c'est pas loin quoi. C'est dans mon top 4 avec Haskell. Ah ça serait Rust maintenant.

Prot: Ah, très bien.

Richard: J'aime bien. Rust, c'est comme langage de programmation, j'aime bien. J'en fais. J'avoue que c'est... Ils ont trouvé un bon équilibre dans les idées. Ils ont pris des bonnes idées là où elles existent depuis longtemps. Mais au moins, ils ont réussi à les faire passer dans le mainstream et ça, c'est important. Ça prend du temps. Que les idées percolent, comme on dit, de là où elles sont produites, qui est souvent dans le milieu académique, jusqu'à un usage, disons, industriel ou généralisé. C'est vrai pour tout un tas d'idées intellectuelles. Ce n'est pas vrai que pour l'informatique, en particulier. Je ne sais plus ce qu'on m'avait dit quand j'étais jeune étudiant en thèse. C'est quelque chose comme 40 ans, 50 ans. Par exemple, le typage, les algorithmes de typage où on n'a pas besoin d'annoter un programme, c'est les années 70. L'algorithme, ça fait 55 ans qu'on sait faire ça. De là à le voir arriver dans un langage où les gens se disent « Ah, c'est super, je n'ai pas besoin de le faire ». Quand les langages que les gens utilisent au quotidien, ça met du temps. C'est même pas totalement présent partout facilement. J'ai toujours connu ça en OCaml. Quand on écrit une fonction, le style traditionnel d'écrire une fonction d'implémentation, on n'annote pas les types. Parce qu'on sait qu'ils vont être inférés, ils vont être calculés. Par contre, on les met dans ce qui est l'interface avec l'utilisateur parce que ça fait partie de la documentation et du contrat avec l'utilisateur. Tu dois envoyer tel type de données pour que ça soit correct. Donc, les idées mettent du temps à transiter. Enfin, c'est comme ça. Être accepté, en fait, il y a toujours une forme de résistance dans les idées pour qu'elles arrivent. Je ne sais pas pourquoi on est là, d'ailleurs, dans cette conversation, mais c'est intéressant. Nous sommes loin d'Emacs, mais c'est quand même... Enfin, la vision qui a amené à la création de Lisp. Lisp, c'est vraiment un langage zen au niveau de la syntaxe, même si les gens rigolent du nombre de parenthèses. Mais au niveau de la syntaxe, c'est d'une élégance minimaliste incroyable. Il y a un côté esthétique plaisant dans cette façon de voir les choses moi je trouve. C'est pour ça que j'aime bien aussi produire un peu des Maxlis parce que je ne sais pas, il y a un truc, un côté satisfaisant intellectuellement et même il y a une forme d'art. Il y a la simplification. L'élégance. Oui, l'élégance, la simplification du tout jusqu'au côté minimaliste. Alors moi, en fait, j'aime bien ça parce que quand j'ai étudié aussi des choses comme le lambda calcul ou des choses un peu à la limite de la logique et de la philosophie. La frontière est très ténue en fait, en pratique. Et une des questions que les gens se posent, c'est de combien d'opérateurs on a besoin pour calculer tout ce qui est calculable ? Bah, en fait... Donc après, c'est pas très pratique de programmer avec un opérateur. Ah donc être humain quoi. Nos interfaces, on a besoin que ça soit un peu plus riche. Mais c'est voilà, tout le reste est comme on dit en anglais du sucre syntaxique.

Prot: Hein.

Sacha: Oui, je pense que je préfère la simplicité d'utilisation du juste parenthèse au lieu de beaucoup d'autres syntaxes.

Richard: Je suis d'accord. J'aime bien ça. Après, c'est un choix de conception et de design. On a toujours un équilibre entre la facilité d'exprimer l'idée dans le langage programmation ou pas. En fait... Donc, l'interface humaine, et puis la derrière, la beauté ou la simplicité d'implémentation pour la machine. C'est pour ça peut-être que les gens aiment bien l'IA, parce que c'est facile, le langage, c'est le langage naturel. En informatique, on sait depuis un certain temps, en philosophie aussi. Il est ambigu et du coup, ce n'est peut-être pas terrible si on veut spécifier des choses pour une machine. C'est pour ça que les langages de programmation existent. C'est pour qu'ils aient une sémantique bien définie. C'est une partie des choses que j'ai étudiées. La sémantique, c'est important. Et la sémantique du langage naturel.

Prot: Non, non, c'est beaucoup plus difficile.

Richard: Elle est ambiguë et c'est bien parce que c'est pour ça qu'il existe la littérature et la poésie et un tas de choses. C'est comme ça que ça existe. Sinon, si c'était non ambigu, ce ne serait peut-être pas génial ce genre. Il n'y aurait pas de blague non plus. On ne ferait pas de blague. De jeu de mots. Moi, je ne crois pas trop. J'ai un petit avis sur l'IA. Ce que j'ai étudié, c'était en particulier la spécification des langages de programmation parce que dans les méthodes formelles, un des domaines d'application, c'est qu'on a un programme et on veut vérifier qu'il fait bien ce qu'on est censé faire. Déjà, on l'a écrit en code, en langage en C, peu importe, mais on a un autre langage mathématique qui décrit ce qu'il est censé faire, donc spécifier. Et j'ai l'impression qu'on va en arriver là, on va en arriver là en IA, mais c'est une thèse qui est défendue aussi par d'autres gens. C'est pas la mienne en fait. La vraie bridge, c'est le vrai pont à bâtir, c'est comment je spécifie ce que je veux de façon non ambiguë pour vérifier que l'IA fait ce que je voulais qu'elle fasse. Mais on va arriver à un langage de programmation en fait. Je ne sais pas lequel, mais en tout état de cause, c'est ça la solution, c'est les spécifications. Peut-être un langage, ce sera les maths. Ce n'est pas toutes les personnes qui aiment l'utiliser ce langage-là.

Sacha: Je préfère [l'algorithme déterministe], parce que les résultats imprévisibles de l'IA sont un peu difficiles de gérer.

Richard:

Oui, oui, je suis 100% d'accord sur ça.

C'est là où les différentes visions qui disent, mais maintenant, avant on avait l'assembleur, on avait les langages haut niveau, maintenant on a l'IA qui est au-dessus. Non, non, c'est pas du tout la même chose. Il n'y a pas une suite de séquences bien définie qu'on peut même démontrer, parce qu'on a des compilateurs prouvés. Toutes les étapes sont démontrées correctes par rapport à ce qu'on pensait qu'elles devaient faire. On sait faire ça, mais avec l'IA, on ne sait pas faire ça. On ne saura jamais avec cette technique actuelle. C'est impossible, ce n'est pas prévu. On se probabilise, donc c'est intrinsèquement impossible. Mais c'est un outil intéressant malgré tout, pour tout un tas de choses.

Sacha: Nous conversons à 12 heures.

Prot: Il n'y a pas que lui.

Sacha: J'ai promis à ma fille que je prends une sieste avant qu'elle se réveille pour éviter tomber à la fatigue. Oui, oui, oui. La fatigue. Donc, je pense que je dois conclure la discussion.

Richard: Pas de souci, Sacha.

Sacha: Mais je veux le continuer toujours.

Prot: Je crois que ce point est bon.

Richard: Non, c'est y a pas de souci. C'est un plaisir et il y a des cont moi. Ma fille se lève jamais tard donc tu vois... Moi, à 7h30 en général, elle est réveillée. J'ai pas de matinée. Elle est pas assez vieille pour faire des grasses matinées comme on dit.

Sacha: Donc, merci beaucoup. Un grand merci.

Richard: De rien.

Sacha: Merci à vous deux, Richard et Prot. Et merci aussi, chers auditeurs, pour contribuer à vos questions, vos commentaires. Je pense que je peux publier l'enregistrement de toute la session, toute la discussion, si ça marche, si ça fonctionne.

Richard: On y croit, on y croit. On croise les doigts. On croise les doigts. Oui, oui, oui.

Sacha: À plus tard. Merci beaucoup.

Richard: Merci à tous les deux, Sacha et Prot.

Prot: Merci, merci, Sacha. À bientôt, à bientôt. Au revoir.

Richard: Au revoir.

Chat

  • sachactube:​​ J'ai totalement oublié de commencer la diffusion en direct ! Je vais publier l'enregstrement.
  • alainlamourec6332:​ ​ca rigole
  • syshYarak:​ ​bonjour j'ai une petite question pour vous j'ai deja travaillé pour emacs , avec la version préconfigurés spacemacs , orgmod etc ….. je préfère édité avec vim juste pour ne pas utiliser la souris,
  • syshYarak:​ ​ma question c'est la suivante, je pense que c'est une rabbit hole au lieu de focaliser sur les choses les plus importantes, au lieu de créer des projets etc on se concentre sur les dotfiles etc …..
  • phyzixlab:​ ​Sacre bleu
  • protesilaos:​ ​Salut les gens!
  • alainlamourec6332:​ ​Salut Prot
  • JonKishore11:​​ Vous ne connaissez pas l'anglais ?
  • sachactube​​C'est: en français aujourd'hui, pour le pratiquer ! =) 8:28 AM@syshYarak​

​mr si tu veux sauver un ancien utilisateur d'emacs on me proposant un M2 ou une thèse , car je suis ingénieur au Maroc , prot je ne t'ai pas reconnu t'avais de Long cheveux,

  • protesilaos:​ ​Oui, maintenant mes cheveux sont courts. C'est une catastrophe, haha!
  • syshYarak:​ ​j'avais l'habitude de suivre tes cours de politique européenne prot. from emacs to politics
  • syshYarak:​ ​lisp programmation fonctionnel ?
  • ahyass​​oui: c'est du fonctionnel 8:42 AM@ahyass​

​dans mon école d'ingé tout le monde utilise vim/neovim, emacs est considérer comme sauvage un peu

  • ahyass:​ ​j'ai plus d'amis qui utilisent helix que emacs, même zed est plus populaire j'ai l'impression
  • syshYarak:​ Gestionnaire de fenêtres genre i3wn ou …?
  • ahyass:​ ​niri est d'après mon expérience le meilleur window manager
  • protesilaos:​ ​moi j'utilise herbstluftwm
  • syshYarak:​ ​i3wm on Windows et zellij come Terminal session manager au lieu de tmux , et glazewm dans ma windows machine
  • syshYarak:​ ​j'essaie de laisser les choses simples, car l'optimisation prématuré et la source des pbs.
  • syshYarak:​ ​next step learning french with emacs , en intégrant des algorithmes de répétition espacé
  • protesilaos:​ ​en ce sujet là, il y a un paquet nouveau qui s'appelle "srs.el"
  • protesilaos:​ ​je croix que "package" est "paquet", mais je ne suis pas sur
  • syshYarak:​ ​oui c'est ça prot , de toute façon je t'ai compris t'inquiète
  • syshYarak:​ ​j'ai une petite remarque est ce que vous êtes averti qu'on peut utiliser emacs vim etc avec termux dans votre poche avec le SMARTPHONE et synchroniser votre travail avec synchthing???
  • syshYarak:​ ​non , la confite en elle même tu peux la synchroniser et compilé sur termux ,
  • syshYarak:​ ​non mais plus tôt une intégration d'ai au niveau du kernel pour ce qui est tout tâche, en ce qui concerne ce que vous voulez spécifiquement pour vous , un entraînement SUBJECTIVE de chaque individu
  • syshYarak:​ ​sera envisageable pour réduire les erreurs pour chaque personne pour reprendre au prof
View Org source for this post