Emacs Chat 29: Abdallah Maouche (en français)

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

Nous allons parler en direct avec Abdallah Maouche (heiwiper) (heiwiper/emacs.d, Gitlab, Github) d'Emacs, de ses flux de travail, de sa configuration, et d'autres sujets en français. Je suis un peu intimidée, mais si vous posez vos questions dans le chat, je pense que nous pouvons survivre à mon faible niveau de français. =)

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.

La transcription un peu corrigée

Details

0:01 Introduction

Sacha: Ok, vous êtes en direct.

Prot: On a le nouveau lien ou c'est le même ?

Sacha: C'est le même lien que Google Meet mais je vais copier le nouveau lien. C'est YouTube.com, sachactube... C'est difficile. Oui.

Prot: Oui.

Sacha: Je ne peux pas poster le chat. Donc, je vais poster sur les conférences. Comment dire? Ah! Ajoutez un commentaire. Et je vais aussi ouvrir. Oui. Donc, le chat est ici. Je pense.

Prot: Ah, take two. J'ai trouvé. Oui, oui.

Abdallah: Oui, j'ai trouvé moi aussi.

Sacha: Ça marche? Merci beaucoup pour votre patience. L'introduction ! Bonjour à toutes et à tous et bienvenue dans le troisième épisode d'Emacs Chat en français et le vingt-neuvième épisode de la série. Notre invité aujourd'hui est Abdallah Maouche, qui s'est fait aussi appeler par son pseudo heiwiper. Il vit en Algérie et le français n'est pas sa langue maternelle, mais il s'y est assez courageusement avec nous. Si on se retrouve totalement bloqué, comme moi, justement, pas de souci, nous pouvons passer au franglais ou à l'anglais. Ce n'est pas grave. Bonjour Abdallah et encore merci d'être là.

Abdallah: Merci, merci beaucoup. Merci pour l'invitation. Ça me fait un grand plaisir de parler à vous deux, car je vous suis sur votre blog et sur la chaîne YouTube. Donc, j'ai très hâte de converser avec vous.

Sacha: Et merci aussi à Prot de se rejoindre à nous pour cette expérience. Nous faisons de notre mieux ensemble. Merci beaucoup.

Prot: Je t'en prie, je t'en prie. C'est parti. Oui, c'est magnifique, c'est magnifique.

3:13 Apprentissage

Sacha: Abdallah, contrairement aux invités précédents, tu utilises Emacs depuis seulement sept ans. Je plaisante. C'est déjà pas mal, c'est génial. Peux-tu me raconter ton parcours d'apprentissage d'Emacs moderne? Comment est-ce que tu l'as découvert?

Abdallah: Donc, ça a commencé environ 2019-2020. À ce moment, j'ai découvert Linux pour la première fois et j'ai commencé à explorer les applications open source. C'était quelque chose de nouveau pour moi. Donc, à un certain niveau, j'avais besoin d'un texte éditeur parce qu'en université, on avait utilisé des environnements de développement spécialisés pour des langages spécifiques. Par exemple, il y avait Eclipse pour Java et je pense CodeBlock, c'était pour C, C++. Et puis au master, il y avait tellement de langage que c'était difficile de garder le même flux de travail. Donc, je me suis rendu au répertoire des applications de distribution Linux que j'utilisais à l'époque. Et j'ai parcouru la liste et j'ai trouvé plusieurs éditeurs et parmi ces éditeurs, bien sûr Emacs. Je l'avais installé, j'ai installé tous les éditeurs en fait. Mais le problème c'est quand je l'ai testé, ça n'a pas vraiment, ça m'a pas plu. C'était un peu, l'interface graphique était un peu, je ne sais pas comment dire, un peu moche. Oui donc, et aussi il y avait le logo Emacs avec le GNU et le E ça ressemblait à le symbole Epsilon. Donc ça me rappelait un peu des maths et je voyais les keybindings avec les moins et tout. Je me suis dit c'est un éditeur pour les mathématiciens. Donc j'ai installé Atom et j'ai utilisé Atom. Après quelques mois, je pense, j'ai vu une vidéo à propos de Spacemacs. Parce que j'apprenais Game Engine Godot. Donc j'ai vu dans une chaîne Spacemacs et c'était très intéressant. Donc j'ai installé et j'ai appris les keybindings de Vim parce que c'est plus recommandé dans Spacemacs. Et je l'ai utilisé pour une période et puis je pense que j'ai J'ai changé la configuration pour utiliser les keybindings Emacs après parce que l'intégration de Evil, l'intégration des Vim keybindings n'était pas parfaite. Il y avait des trucs qui manquent et c'était un peu frustrant. Donc, j'ai dû switcher à Emacs Keybindings. Et je pense, après un certain temps, j'ai eu mal à configurer Spacemacs. La communauté était un peu trop petite. Oui, quand je rencontre des problèmes et je vais dans le Reddit d'Emacs, je ne sais pas comment appliquer les solutions à Spacemacs. Donc, je me suis dit, je vais devoir changer et utiliser Emacs, ce qu'on appelle Vanilla Emacs. Je pense que j'ai vu les vidéos de David Wilson. Est-ce que vous le connaissez?

Sacha: Oui, bien sûr.

Abdallah: Oui, System Crafters. C'est sa chaîne YouTube. Et j'ai suivi son tutoriel et depuis ce moment, je configure mon Emacs from scratch depuis le début. Et maintenant, j'ai une configuration, celle que je vous ai envoyée. Je l'ai publiée sur mon GitHub. Et je l'utilise quotidiennement pour les trucs personnels et au travail aussi.

Sacha: Les kits de débutants Spacemacs réduisent les peurs pour toi. Et après que tu [t'es] habitué à Emacs, tu repasses vers Emacs.

Abdallah: Oui, exactement. Je pense que le point important à l'époque, c'était l'interface graphique. Spacemacs avait une interface déjà configurée et c'était un peu attractif quand on voit la config Spacemacs. C'est pour ça que j'ai utilisé Atom, parce que c'était un peu aussi... Il avait une interface qui m'a plu.

Prot: Je crois que c'est aussi plus facile de découvrir les fonctionnalités avec quelque chose comme Spacemacs. Oui, je pense... Oui, c'est difficile.

Abdallah: Oui, parce qu'il y a des... La configuration de Spacemacs, c'est comme si... La configuration de Emacs avec beaucoup d'abstractions. C'est comme si on ajoute des couches de programmation, couche de langage, je ne sais pas, Java ou bien quelque chose comme ça. Donc, on va ignorer le fait qu'il y a des serveurs LSP et tout. En fait, il faut juste spécifier quel serveur tu veux utiliser et Spacemacs va configurer tout. Donc, c'est une abstraction de la configuration Emacs. Mais ça reste en Emacs Lisp.

Sacha: Est-ce que c'est difficile de traduire ta configuration de Spacemacs à ta propre configuration?

Abdallah: En fait, je ne connaissais pas assez Emacs Lisp, donc je n'ai pas essayé, mais ce n'était pas évident parce que Spacemacs, je pense que c'est C'est très différent de la configuration Emacs. Je pense qu'il y a beaucoup d'abstractions. Ce n'est pas évident de transférer la configuration et la traduire.

Prot: Parce que si Spacemacs utilise [les macros Emacs Lisp], tu dois connaître les macros. Autrement, tu ne peux pas transférer le même code.

Abdallah: Oui, évidemment, vous avez raison. Oui, les macros, c'est un peu sensible.

Sacha: J'aime bien ta configuration. Ta façon d'utiliser des variables pour simplifier ta configuration d'org-capture est une bonne idée. Peux-tu rendre cette section de ta configuration pour nous la montrer?

Abdallah: Oui, bien sûr. Je vais juste partager mon écran.

Sacha: J'avais piqué l'idée. C'est plus simple que mienne.

Prot: Voler à volonté.

Abdallah: Oui, bien sûr. C'est disponible dans GitHub, donc je pense que c'est... Ok, donc là, j'ai essayé de créer une configuration spécifique pour cette démo, juste pour montrer les différents trucs d'Org Mode et tout. Donc, on va aller vers la configuration des Org Capture, c'est ça ?

Sacha: Oui, org-capture-templates. Oui, oui. Oui, oui, oui, j'adore. J'adore l'utilisation de variables pour simplifier la configuration.

Abdallah: Oui, ce qui me plaît dans cette configuration, c'est que la partie où je définis le template, On dirait que c'est la note parce qu'il y a le titre et puis il y a des sauts de ligne et la concaténation ici, elle fait comme si c'est une note réelle. Et puis, la partie ici, ce n'est pas assez chargée parce que là, je définis juste la variable. Donc, je peux voir toutes mes captures dans une seule page. Je n'ai pas besoin de... Faire un scroll tout au long du fichier pour voir toutes les captures que j'ai définies.

Sacha: Ta variable heiwiper/org-jira-task est définie dans un autre fichier, je pense?

Abdallah: Non, j'ai transféré toutes les parties intéressantes dans un seul fichier juste pour la démonstration. Donc, vous pouvez l'avoir ici. Donc, cette template, elle me permet de créer une tâche et aussi associer le lien Jira pour cette tâche parce qu'on utilise Jira au travail. Donc, je vais vous montrer un exemple. Par exemple, ici, je vais... Bon, j'ai exécuté l'org-capture. Vous voyez ici, il y a plusieurs captures, ce qu'on a défini ici. Et là, il y a Jira Task. Donc, je vais cliquer le J. Et bon, vous pouvez ignorer ceci. On va voir le prompt. Donc ici, ce que je fais, c'est que je prends la tâche Jira que j'ai sur email ou bien sur le navigateur. Je copie le lien. Par exemple, on va faire un exemple. https://jira.com/... Et là, d'habitude, les tâches Jira, c'est quelque chose comme ça. On va dire BG comme si c'était un bug ou... et une référence. On va dire 1, 2, 3, 4. Et puis, je vais cliquer entrer. On suppose que celui-ci est le lien de la tâche. Et là, je vais copier le titre de la tâche. Là, je vais juste écrire quelque chose. Et puis là, j'ai quelques tags. Ça va me servir plus tard pour organiser les tâches. Donc j'ai Bugfix, Feature, Refactor, Enhancement. Je vais sélectionner Bugfix. Et là, vous pouvez voir la tâche finale. Il y a le lien de la tâche. On peut cliquer sur C-c C-o pour accéder directement à la tâche. Il y a aussi la description. Et ce que j'aime dans ce workflow, c'est que je peux écrire Des choses ici à propos de cette tâche. Par exemple, des fois, j'écris des commandes de shell pour exécuter un appel d'API ou quelque chose comme ça. Je vais écrire tout ici. Par exemple, curl. Je ne sais pas. Donc, c'est ça. Et puis, on clique sur C-c C-c pour sauvegarder. Et à ce point, j'ai sauvegardé la tâche. Je vais vous montrer l'agenda que j'ai spécifique pour les tâches. Vous pouvez voir ici Tasks by Type et Tasks by Service. On va dire Tasks by Type. Voici la tâche que j'ai définie. C'est bien catégorisé sous la section Bug fix. Et vous pouvez aussi l'avoir ici parce que là j'aime déplacer les tâches vers des fichiers spécifiques donc parfois je déplace les tâches ici pour avoir des fichiers un peu organisés.

Sacha: Tu as un fichier très organisé, je pense, parce que tu as aussi des comptes de tâches dans ta mode-line.

Abdallah: Ah oui. Oui, en fait, à propos de ce compteur, c'est quelque chose que je suis en train d'expérimenter avec. Donc, j'utilise une méthode para, je ne sais pas si vous avez entendu parler, pour organiser un peu mes notes et mes tâches. Et j'aime savoir combien de notes j'ai sur le fichier inbox. Parce que la plupart du temps, les tâches, je les déplace vers des autres fichiers parce que j'utilise l'application Orgzly. Donc, les tâches ne restent pas généralement dans ce fichier inbox. C'est plutôt les notes. Bon, je peux vous montrer le fichier ici, c'est juste un exemple. Mais c'est plutôt comme ça. Il y a des notes et des tâches. Voilà. Plus la tâche qu'on a créée maintenant. Et pour être honnête avec vous, j'ai jamais atteint le nombre zéro. D'habitude c'est 10, 20, mais ça n'augmente pas trop, parce que, généralement, c'est juste des notes. Ils sont disponibles au cas où je veux chercher les notes. Je me sens pas la pression de les déplacer. C'est just quand j'ai assez du temps J'ai le compteur devant moi et c'est bon, je vais devoir déplacer quelques notes puisque j'ai un peu de temps.

Sacha: De mon côté, je pense que ma boîte de réception a grandi constamment, sans cesse. Est-ce que tu as déjà ton bullet journal?

Abdallah: Oui, je l'ai utilisé il y a deux ans. J'ai aussi écrit un blog post à ce propos. Pour être honnête, c'était une expérience, mais je pense que ce n'est pas pour moi parce que j'ai arrêté après un an car je pense que j'ai besoin des notifications. Ce que je faisais, en fait, c'est que je pouvais garder la routine de voir mon journal chaque jour. Mais le problème, c'est que parfois, j'ai besoin de me rappeler que je dois faire quelque chose, par exemple, 12h30. Et je ne peux pas garder les tâches sur ma tête. Donc ce que je faisais, c'est chaque matin, je vois les tâches sur le bullet journal et je le déplace. Je les écris dans mon téléphone, in to do list. Mais c'est un peu pourquoi ne pas utiliser le téléphone.

Prot: C'est double de travail.

Abdallah: Oui, double de travail. J'ai essayé de l'intégrer avec Emacs en utilisant Org Journal, mais Le problème, c'est que j'utilise pas beaucoup l'ordinateur, donc c'est plutôt le téléphone. Donc la méthode Bullet Journal, c'était pas pour moi. Donc j'utilise maintenant Org Mode avec Orgzly et ça marche très bien.

Sacha: Est-ce que tu as aussi de l'agenda d'Orgzly Revived ou juste pour saisir les tâches?

Abdallah: J'ai pas bien compris.

Sacha: Orgzly a aussi des agendas. Maintenant, ton agenda sur ton ordinateur est bien organisé. Il a beaucoup de sections. Mais sur ton téléphone, tu utilises aussi Orgzly pour voir ton agenda?

Abdallah: En fait, mon agenda personnel est celui par défaut du Org Mode parce que ma vie personnelle est assez simple. Donc j'utilise l'agenda par défaut. L'agenda que je vous ai montré, c'est pour le travail seulement. Et pour le travail, je ne garde pas les notes dans Oxley, c'est juste dans l'ordinateur de travail. Donc dans mon cas, je pense que Orgzly, il fait le travail. Donc j'utilise le même agenda, c'est pour ça.

Prot: Et c'est plus facile comme ça, d'avoir l'agenda seulement à l'ordinateur. L'agenda plus organisé.

Abdallah: Oui, l'agenda de travail, c'est plus efficace.

Sacha: L'écran est plus grand.

Abdallah: Oui, et aussi pour les tâches en relation avec le travail, je n'ai pas besoin de mon téléphone pour les accéder. Quand je suis au travail, je vais voir sur mon PC, sinon ce n'est pas la peine.

Sacha: Utiliser Emacs pour d'autres intérêts comme l'apprentissage d'une langue étrangère ou...

Abdallah: En fait, j'ai passé par la phase de ce qu'on appelle Rabbit Hole, Emacs. Donc, je peux vous dire que j'utilisais Emacs pour plein de choses. J'ai même utilisé EXWM, le Window Manager. Oui. J'ai aussi utilisé l'autre, je ne me rappelle pas comment il s'appelait. C'était un Window Manager en Common Lisp, pas en Emacs Lisp. Je ne me rappelle pas de son nom, mais il est assez connu dans la communauté Lisp. Donc oui, j'utilisais plein d'autres trucs, mais pas pour l'apprentissage de langue. Mais avec le temps, j'essaie d'être plus pragmatique. Donc j'utilise les outils adaptés quand je trouve qu'il y a des difficultés ou bien il y a des problèmes. Par exemple, je vais vous donner un exemple réel. Je voulais utiliser Emacs pour envoyer des requêtes quand je fais du programmation pour tester des API et tout. Parce que c'est très efficace pour mon workflow. Je vais vous dire un exemple plus tard. Mais parfois, je rencontre des problèmes où il y a certains types de requêtes où ils ne sont pas supportés par le package qu'offre Emacs. Donc je me trouve avoir switché à un logiciel qui est adapté pour ce truc. Et donc dans ce cas, j'utilise plutôt les logiciels adaptés. Et pour l'exemple que je voulais mentionner, c'est que j'utilisais des macros pour envoyer des requêtes à travers Org Mode. Et puis je récupère des données de cette requête et pour exécuter une autre requête, juste pour simuler un workflow d'un utilisateur réel. C'était très utile parce que ça m'évite de cliquer plusieurs boutons dans plusieurs logiciels et j'exécute juste le macro Emacs et il fait tout et je vais juste voir le résultat.

Prot: C'est mieux comme ça.

Abdallah: Oui, c'est bien mieux. Plus efficace. Oui, bien sûr.

Sacha: Et moins d'erreurs. Je déteste le clic qui est nécessaire pour le flux de travail dans d'autres applications.

01: Oui.

Sacha: Ton flux de travail. J'aime les petites conditions que tu utilises dans ta configuration, comme helm-chart-template-p dans magic-mode-alist ou org-refile-target-verify-functions pour filtrer les tâches et ton-before-save Hook qui reformat le tampon selon le mode majeur. Dans ta configuration, quelles sont tes modifications préférées?

Abdallah: En fait, j'ai du mal à répondre à cette question parce que c'est tout le fichier qui est configuré et ça fonctionne un peu interconnecté. Donc, je ne peux pas vraiment choisir une partie préférée. Mais je vais dire les modifications qui ont relation avec Org Mode, c'est ce que j'aime trop parce que ça me facilite un peu le flux de travail avec Org Mode.

25:10 Compter les items dans l'inbox

Abdallah: Par exemple, celui-ci où je compte les items que j'ai dans l'inbox.

Sacha: Parce que nos auditeurs peuvent rater les petites icônes, les petites affiches dans ta mode-line avec les boîtes.

Abdallah: Ah oui, je ne sais pas s'il y a une méthode pour l'afficher un peu plus grand, mais c'est juste là, à côté du Org Agenda. Je vais changer ici pour montrer que ça compte ces lignes.

Sacha: C'est une bonne idée. Si tu accumules beaucoup de tâches, les chiffres dans ta mode line te harcèlent.

Abdallah: Oui, bien sûr. C'est toujours là pour me rappeler en cas où j'oublie de... En fait, mon Emacs actuel, il contient, je pense, environ 160. Mais attention, c'est juste parce que je viens de migrer mes notes depuis un autre logiciel. Après avoir migré vers Org Mode, j'ai utilisé AnyType pour les notes. Donc je viens juste de l'émigrer la semaine passée et j'ai pas eu assez de temps pour les déplacer. Donc là je sais que je dois les déplacer parce que sans eux c'est trop.

Sacha: Le problème de tout le monde.

Abdallah: Oui bien sûr.

Sacha: J'aime aussi ta fonction pour récupérer des données, app-core-get-device-ids-by-username. Il y a aussi une autre fonction app-core-delete-items-by-store-id qui semble utile pour ton travail. Tu utilises Emacs pour automatiser des fonctions et tu utilises le shell script.

27:36 Emacs Lisp et d'autres langages

Sacha: Dans quelle situation est-ce que tu préfères écrire ce genre de fonction dans Emacs Lisp plutôt que Shell ou un autre langage?

Abdallah: En fait, j'aime bien le langage Lisp en général. J'aime bien écrire en Lisp malgré que je n'ai pas assez de code base écrit en Lisp. J'ai un peu contribué à, enfin, 1 ou 2 Repos. Mais pour ces fonctions-là, je les générais avec l'intelligence artificielle parce que ça me facilite des tâches un peu répétitives, trop répétitives. Et pour optimiser un peu le temps et aussi pour pouvoir les appeler à travers Emacs. C'est très utile parce que juste en cliquant un bouton, je peux savoir l'information que je vais utiliser. Et je pense que c'est mieux comparé à un shell script où je dois savoir où est le shell script et aller l'exécuter et un peu ouvrir un terminal. Donc là, j'utilise Emacs pour programmer. Je peux appeler cette commande pour extraire une information. Il y a aussi le fait qu'il y a des prompts. Dans Emacs, donc je sais exactement ce que je dois fournir. Et ça me facilite trop le travail, surtout les tâches répétitives, parce que si ça ne répète pas, je ne vais pas écrire une fonction. Et puisque je suis intéressé juste aux résultats, donc je les génère en utilisant l'intelligence artificielle, puisque ça me donne un bon résultat. Je ne m'intéresse pas à ce que ça soit optimisé ou non.

29:32 L'intelligence artificiale

Sacha: Je me demande que tu utilises quelques interfaces pour l'IA dans Emacs comme aidemacs. Ah oui, oui. Qu'est-ce que tu penses?

Abdallah: En fait, je ne sais pas si tu as remarqué dans ma config, il y a pas mal de packages d'IA. J'ai dû utiliser la plupart pour les comparer. Parce qu'en fait, la partie plus difficile pour moi, c'est d'observer les changements qui sont faits par l'IA. Donc, j'ai utilisé tous les packages d'Emacs pour les comparer. Je pense que le meilleur package que j'ai utilisé était eca. Je ne sais pas si vous êtes au courant. Mais actuellement, j'utilise OpenCode dans Emacs. Donc, j'ouvre un terminal dans Emacs et j'utilise OpenCode. Ça me permet de mieux observer les changements et tout. Et parfois j'utilise gptel pour des petites questions sur Emacs sans avoir à ouvrir le terminal. Donc les packages que vous voyez dans ma config, c'est juste pour tester les différentes intégrations.

30:56 Les terminals

Prot: Et quel est le terminal de ton choix ?

Abdallah: Actuellement, j'ai migré vers Ghostel. Ça fait un mois, je pense. Mon problème, c'était Vterm, c'était très bien. Il a résolu tous mes problèmes. Mais il restait un seul problème, c'est les applications TUI. Ça ne marche pas bien sur Vterm. Donc, j'ai dû migrer vers Ghostel. Et là, ça marche très bien. Je peux vous montrer, par exemple, je vais ouvrir un exemple. Vim, par exemple. Bon, je ne sais pas si j'ai... Oui, mais je sais bien comment quitter, mais je ne vais pas ouvrir Vim. Bon, je ne sais pas si ça marche dans cette configuration, puisque c'est une nouvelle configuration. Peut-être je vais partager ma configuration originale pour juste vous montrer la différence.

Sacha: Je pense que tu as partagé seulement la fenêtre d'Emacs.

Abdallah: Oui, je vais changer vers l'autre fenêtre et je vais mettre sur que je ne partage pas quelque chose de sensible. Merci. D'accord, donc là... Est-ce que vous voyez la nouvelle fenêtre avec un... Oui. Parfait. D'accord, donc v-term... Ça doit compiler, d'accord. Je pense que j'ai lancé une mise à jour. Donc si je vais ouvrir Open Code ici. Je ne sais pas si ça va marcher bien. Ah oui, vous pouvez voir il y a un peu de décalage. Il y a ici le prompt. Là, c'est un peu bizarre. Oui, je vais ouvrir une autre fenêtre Ghostel juste pour vous donner une idée. Donc cette fenêtre est Ghostel, je vais ouvrir la même application. Donc là, vous remarquez déjà les couleurs, ils sont mieux que la session Vterm. Et oui, je pense que c'est clair que l'intégration est un peu mieux dans Ghostel. C'est très intéressant. Oui, parce que j'utilise pas mal de terminal TUI dans le travail, donc j'ai toujours une terminal ouvert, mais depuis que j'ai installé Ghostel, ce n'est plus le cas parce que je n'ai plus besoin d'une terminal pour ouvrir ces applications.

Sacha: Emacs assimile une autre fonction.

Abdallah: Oui.

34:14 Les jeux et les amusements

Sacha: Ça m'amuse quand je vois les jeux dans ta configuration et aussi la présence de Nyan Cat dans ta mode line. Quel est ton jeu préféré dans Emacs?

Abdallah: En fait, mon jeu préféré c'est Tetris. Le jeu du Emacs, oui. Celui qui est built-in. Mais j'ai découvert un truc, je ne sais pas si vous êtes au courant, mais le package Emacs de Fedora, il ne contient pas le jeu Tetris.

Prot: Oh non ! Seulement Tetris ? Les autres jeux ?

Abdallah: Oui, seulement Tetris. Parce qu'apparemment, il y a des trucs de copyright, je pense. Parce que j'ai cherché et j'ai trouvé que Ils l'ont enlevé parce qu'il y avait des trucs de droits. Mais les autres jeux que j'ai dans ma configuration, c'était juste pour les tester. Parfois, je lance Tetris, mais c'est rare.

Sacha: Le bricolage d'Emacs est un jeu aussi.

Abdallah: Oui, bien sûr. Et pour le Nyan Cat, je pense que ça fait un changement. Par exemple, quand tu es en train de travailler sur quelque chose, tu prends assez d'efforts et tout, et tu vois le Nyan Cat courir dans le mode line, ça te fait un peu du plaisir. Et je me rappelle que je dois relaxer. Oui.

36:07 La communauté

Sacha: Tu as des collègues qui utilisent Emacs aussi ? Ou tous les collègues pensent que tu es fou ?

Abdallah: Oui, je pense que c'est le deuxième cas. La communauté Emacs dans l'Algérie, ce n'est pas grande. J'ai seulement rencontré une seule personne dans ma vie qui utilise Emacs. Je n'ai même pas son contact, donc je l'ai juste rencontré dans une formation, je pense. Parce que je l'ai vu utiliser Magit. Je pense qu'il y a deux collègues qui utilisent Neovim. Je ne sais pas s'ils sont en train de nous regarder parce que j'ai partagé le lien avec eux. Donc s'ils sont en train de nous regarder, je leur passe le bonjour. Et je pense que les autres utilisent VS Code. Donc seulement ces deux utilisent Neovim et les autres VS Code. C'est tout.

Prot: Je crois que c'est le même partout.

Abdallah: Ah bon? Je pensais que c'est un peu différent en Europe ou bien en Amérique. Parce qu'il y a, quand je lis le feed de Sacha, je vois toujours des meets. Des événements organisés, oui. Et à chaque fois que je vois ces événements, je me dis peut-être il y aura un événement en Afrique ou bien en Afrique du Nord, mais il n'y a jamais un événement dans ces endroits. Je pense que c'est juste en Europe ou bien en Asie ou en Amérique.

Sacha: Les événements sont ouverts à tous, donc... Je pense que je vais à l'Emacs Berlin en ligne de temps en temps. Tu veux aussi le rejoindre?

Abdallah: Bon, rejoindre un événement dans l'Europe, c'est un peu compliqué. Donc, je peux seulement rejoindre virtuellement?

Sacha: Oui, bien sûr.

Abdallah: Mais je parlais des événements présentiels. Il n'y a pas d'événement présentiel dans ces régions. C'est juste en Europe.

Sacha: Je ne peux pas aller à l'événement présentiel.

Abdallah: Ah d'accord.

Sacha: Donc je me focalise aussi sur les événements virtuels.

Abdallah: Ah d'accord. Donc c'est le cas pour tous. Je pense que Prot aussi.

Prot: Je ne [connais] personne ici. Même que Vim.

Abdallah: Bon, mais je pense que... Est-ce que tu as des contacts avec des gens qui ont un peu le... Un peu de connaissances techniques dans la région où tu vis, parce que j'ai vu que c'est un peu éloigné de la ville et tout.

Prot: Oui, non, non. Ici, les gens ne sont pas techniques. Avec les ordinateurs. Ils sont plus techniques avec les autres choses. Par exemple, l'agriculture.

Abdallah: Ah oui, oui, bien sûr. Oui, donc... Ton cas est pire que moi, parce que moi je rencontre des gens, mais ils n'utilisent pas Emacs.

Sacha: Heureusement, la communauté Emacs est très bien en ligne, donc je ne me sens pas isolée.

Abdallah: Oui, oui, évidemment. Je pense que si la communauté en Reddit, je trouve que c'est rare qu'il y a une communauté qui est assez, comment dire? Donc tous les gens sont bien, ils parlent d'une bonne façon, ils te donnent des conseils. Il y a rarement ces commentaires toxiques qu'on trouve généralement sur Reddit. Donc c'est ce que j'aime dans la communauté Emacs. Et tout le monde, ils sont bien.

Prot: Est-ce que tous les gens veulent t'aider? Parce que tous les gens comprennent que Emacs est très difficile.

Abdallah: Oui, c'est le cas, oui. Je peux imaginer. Parce que j'ai partagé un post il y a quelques jours sur Magit et il y a plein de gens qui me donnaient des astuces parce que j'ai demandé s'il y avait des astuces supplémentaires. Ils m'ont donné des astuces. Il y avait même des paragraphes très longs. C'était très sympa, oui.

41:44 Accent

Sacha: En lisant ta configuration, j'ai aussi des questions sur le paquet accent pour saisir. Utilises-tu, au lieu de méthode de saisie ou input method sur Emacs ou sur ton système, qu'est-ce qui te plaît dedans?

Abdallah: En fait, je n'utilise pas le français souvent. Donc, et mon clavier est anglais. Donc, quand je veux écrire quelque chose en français, je vais juste écrire en anglais et puis ajouter des accents. Par exemple, je vais dire, je ne sais pas, j'étais dans un live stream et je vais aller ici, je vais faire Accent Menu. Je vais juste changer, sans devoir changer le clavier parce que je ne me rappelle pas l'emplacement des lettres accentuées dans le clavier. Donc je veux juste le faire dans Emacs et je le copie dans un autre navigateur ou bien quelque chose comme ça. J'ai seulement le clavier anglais et le clavier arabe parce que c'est totalement une différente méthode d'écrit. Est-ce que vous utilisez ce package puisque vous apprenez le français?

Prot: Moi non, moi j'utilise l'input method.

Abdallah: Ah d'accord. C'est quelque chose intégré dans Emacs j'imagine, parce que je pense que j'ai entendu parler. Oui, c'est exactement comme ça.

Sacha: Il y a peut-être une vidéo récente sur les méthodes d'input, non?

Abdallah: Je pense que c'est une fonctionnalité intégrée dans Emacs. C'est vrai? Parce que je me rappelle que j'ai une fois, je l'ai activé par accident.

Sacha: C-\.

Abdallah: Oui et je pouvais écrire en arabe dans Emacs. Et je me demandais pourquoi parce que le clavier était en anglais. C'était un peu... Mais c'est une fonctionnalité très intéressante. Je vais voir plus tard.

Sacha: Je pense que tu as répondu à toutes mes questions que j'ai préparées sur ta configuration, donc la conversation est libre. J'ai une question.

44:45 Tes prochaines étapes

Sacha: Quelles sont tes prochaines étapes pour apprendre Emacs? Qu'est-ce qui t'intrigue?

Abdallah: Actuellement, je veux apprendre, un peu me familiariser avec les macros parce que je les ai utilisés précédemment, comme je vous ai dit dans l'exemple. Mais je ne suis pas assez familier et je veux l'intégrer plus dans mon flux de travail pour un peu automatiser des trucs. Et je veux aussi... Je veux aussi apprendre Emacs Lisp. En fait, je connais le langage Lisp, donc c'est un peu facile, mais je trouve qu'il y a des fonctions très spécifiques d'Emacs qu'il faut apprendre pour maîtriser Emacs Lisp. Oui, c'est très intéressant, surtout pour pouvoir contribuer dans la communauté Emacs. J'ai voulu contribuer il y a quelques mois sur un package Emacs, mais j'ai trouvé qu'il fallait faire un peu [de] paperasse, paperwork parce que c'est en relation avec GNU. Et oui, donc c'était un peu difficile. Il fallait demander à mon employeur de signer quelques trucs et tout. Et il pense que je vais travailler ou quelque chose comme ça. Oui, donc c'était un peu difficile, mais je veux bien apprendre Emacs Lisp pour pouvoir contribuer et aussi pour faciliter des flux de travail personnels.

Sacha: Si tu veux aller contribuer à NonGNU ELPA, je pense que la paperasse n'est pas nécessaire.

Abdallah: Je pense que le package que j'allais contribuer à était sous la licence Emacs. Il s'appelle dape. C'est un debugger pour eglot. Il s'intègre avec eglot. Je pense que c'est une exigence dans le package lui-même.

Prot: C'est pour tous les paquets dans le répertoire GNU ELPA.

Abdallah: C'est le cas. Mais je pensais que c'était juste pour les packages qui sont intégrés dans Emacs. Parce que ce package, il était disponible sur GitHub, mais le maintainer, il exige que le code soit sous licence de GNU.

47:39 Org Mode et des tableaux

Abdallah: Aussi, j'aimerais bien manipuler Org Mode De plusieurs façons. Par exemple, récemment, j'ai un peu testé les tableaux. J'ai utilisé les tableaux pour essayer de gérer mes dépenses personnelles. Oui, c'était très intéressant. Parce que des fois, il y a des fonctionnalités dans Org Mode, même dans Emacs, où on ne sait pas vraiment ce qu'on va avoir comme fonctionnalités. Si on ne va pas vers le manuel, donc si tu ne lis pas le manuel, tu ne sais pas que cette fonctionnalité existe. Par exemple, les tableaux, si on ne va pas dans le manuel et on voit que les tableaux, il permet de faire des calculs et automatiser des formules, ça ne serait pas évident de savoir cette information parce que le format Markdown, il n'offre pas cette fonctionnalité. Je peux, je pense, vous montrer un exemple. Je pense que je l'ai quelque part sur cette démonstration. Là, je vais démontrer comment je cherche une note. Donc, je vais chercher « budget ». J'espère que je vais le trouver. D'accord, donc « monthly budget ». Là, j'ai changé les valeurs pour la vidéo. Mais vous pouvez voir par exemple là, j'ai des catégories de dépenses. J'ai par exemple le salaire ici et le salaire du mois. Par exemple, en cas où dans un certain mois, j'ai plus ou moins de ce chiffre. Et là, j'ai le nombre que je peux associer à ces catégories. Et ça diminue à chaque fois que je... J'associe un numéro ici. Par exemple, là, si je vais changer celle-ci en 4 et je vais faire un calcul, ça change toutes les valeurs ici pour savoir combien il nous reste pour la catégorie Savings. Si je vais augmenter, ça va aussi changer, je pense. Oui, vous remarquez que ça va changer ici. Donc, je peux associer parce qu'en fait, j'utilise la méthode Budget... Non.

Sacha: You Need A Budget.

Abdallah: Enveloppe. Enveloppe, budget. Oui, oui, oui.

Sacha: Moi aussi, moi aussi.

Abdallah: Ah, d'accord.

Sacha: Je connais le livre.

Abdallah: J'utilise cette méthode et chaque mois, je vois ce tableau et je commence à diminuer pour chaque catégorie et je mets l'argent dans chaque enveloppe pour m'organiser un peu. Et cela me permet de...

50:40 Ledger, Hledger, Gnucash

Sacha: Dans Emacs, j'utilise Ledger pour faire ça. J'utilise aussi le système d'enveloppe virtuelle pour gérer mes dépenses, mes économies. J'adore le système d'enveloppe virtuelle. Tu connais Ledger?

Abdallah: Ledger, oui. Ledger, le mode sur Emacs.

Sacha: Et aussi un outil, un outil de lien de commande.

Abdallah: Oui, oui, bien sûr. Je pense que c'était écrit par John Wiegley.

01: Oui, oui.

Abdallah: Je l'ai utilisé à un certain moment, j'ai oublié de mentionner. Donc, oui, je l'ai utilisé pendant, je pense, quelques années. C'était très intéressant. Mais mon problème, c'était la visualisation. Il y avait une intégration avec gnuplot, si je me rappelle bien. Mais c'était un peu compliqué à configurer et j'avais besoin de quelque chose de simple. Donc j'ai arrêté d'utiliser Ledger et j'utilise maintenant Gnucash.

Sacha: Je [connais] aussi hledger qui a beaucoup de visualisations sur l'interface web. Donc si tu veux des visualisations...

Abdallah: Il s'appelle comment?

Sacha: Hledger.

Abdallah: hledger, ok. Je vais noter.

Prot: Avec le h.

Sacha: Le format des données est assez pareil, mais il y a une interface web pour explorer des données.

Abdallah: Ah d'accord, je vois. C'est intéressant, je vais voir plus tard. Est-ce que vous avez utilisé Gnucash ?

Sacha: [J'ai utilisé Gnucash] il y a beaucoup d'années pour gérer les finances de mon entreprise, mais je préfère ledger parce que c'est dans Emacs.

02: Oui, oui.

Sacha: Donc, j'ai fait justement un fichier Org avec tous mes reports. Et une fois que j'ai fait les reports, je les laisse. Je les laisse pour juste reexecuter.

Abdallah: Est-ce que vous avez documenté votre méthode de gérer cela ?

Sacha: Oui, j'ai une blog post de mon système d'enveloppe virtuelle avec Ledger. Je vais t'envoyer le lien.

Abdallah: Oui, ce serait intéressant de voir.

Sacha: Tu peux utiliser ta transaction virtuelle et tu peux définir les règles pour ajouter ou [soustraire] des comptes [correspondants] pour chaque transaction.

Abdallah: En fait, je faisais exactement ça. C'est de créer des comptes virtuels et puis l'utiliser pour faire des budgets comme enveloppe budgeting. Oui, j'ai fait exactement ça. Je pense que je l'ai trouvé quelque part dans Reddit.

Sacha: Donc si j'importe les données de ma banque, presque toutes les transactions sont catégorisées automatiquement.

Abdallah: Ah d'accord, c'est très bien. J'ai toujours voulu avoir cette intégration mais les banques ici n'offrent pas des fonctionnalités similaires.

Sacha: J'ai téléchargé chaque [CSV] manuellement.

Abdallah: Ah, le fichier CSV?

Sacha: Oui, le fichier CSV.

Abdallah: Ah d'accord, donc vous allez manipuler le fichier CSV pour le convertir. D'accord, je vois, je vois.

Prot: Et c'est difficile de le convertir?

Sacha: Non, non, j'ai créé une fonction pour utiliser la bibliothèque pcsv pour [extraire] les données [du] fichier CSV et après ça traduire vers le format Ledger.

Abdallah: C'est très intéressant. En fait, ça aurait été très utile dans mon cas parce que je le fais manuellement actuellement. Bon, je n'ai pas tellement de transactions sur mon compte puisque je gère mon compte personnel. Mais quand même, ça prend, je dirais, deux heures par mois. Juste pour synchroniser un peu. Les deux comptes. Le compte de Gnucash et celui de banque.

Sacha: Apparemment, une bonne excuse pour automatiser avec Emacs.

Abdallah: Oui, peut-être. Mais je ne sais pas comment... Est-ce qu'il y a une façon d'importer les données dans Gnucash? Je pense qu'il y a une manière, mais je ne l'ai pas encore explorée. Et aussi, je me demande si... Comment vous... Vous déplacez les dépenses dans les catégories. Comment vous le programmez?

Sacha: Par le nom du payee.

Abdallah: Ah d'accord.

Sacha: Donc si j'achète les aliments au supermarché, le nom du payee est No Frills. J'assigne les catégories par le nom.

Abdallah: Oui, parce que c'est la partie un peu que je trouve un peu difficile à automatiser dans mon cas parce que je dois le faire manuellement et il n'y a pas de nom de payee. Oui, parce que le CSV que je peux exporter dans la banque, il ne contient qu'un numéro que je ne sais pas le numéro de compte, je pense. Oui, les banques ici ne sont pas assez développées. C'est pour ça. Tant que tu peux extraire ton argent et que tu peux faire des transactions en ligne, tu es super.

Sacha: Je pense que je dois réveiller ma fille pour notre grande aventure au parc d'attractions. Donc, un grand merci à tous les deux pour notre conversation et [ta] patience avec nos erreurs techniques. À la prochaine.

Abdallah: Ça m'a fait un grand plaisir de converser avec vous. J'espère que c'est demain pour vous et on se voit dans la prochaine.

Prot: À la prochaine à vous aussi et à bientôt. Merci. À bientôt. Au revoir.

View Org source for this post