2026-02-09 Emacs news

| emacs, emacs-news

Links from reddit.com/r/emacs, r/orgmode, r/spacemacs, Mastodon #emacs, Bluesky #emacs, Hacker News, lobste.rs, programming.dev, lemmy.world, lemmy.ml, planet.emacslife.com, YouTube, the Emacs NEWS file, Emacs Calendar, and emacs-devel. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at sacha@sachachua.com. Thank you!

View org source for this post

La semaine du 2 février au 8 février

| french

lundi 2 février

00:00 J'ai essayé de modifier mon logiciel pour traiter mon prompt via l'interface web de l'IA pour qu'il remplace le prompt précédent au lieu d'en ajouter un nouveau afin de réduire la consommation de jetons, mais l'interface ne me permet pas de l'utiliser facilement avec Javascript. J'ai décidé d'ajouter de nouveaux prompts, mais je ne répète pas les instructions si celles-ci ont déjà été transmises.

00:30 Je préfère le bilan de Gemini à celui de Mistral ou d'OpenAI. Je dois essayer Claude pour qu'il commente mon journal en français. Ma fille préfère Claude à OpenAI ou Gemini pour générer des histoires et beaucoup de gens préfèrent ça pour la programmation, donc ça en vaut peut-être la peine.

00:52 Je pense que pour m'adapter aux limites de l'API gratuite, je peux traiter la semaine toute entière dans une requête au lieu de jour par jour. Je peux aussi essayer de réécrire mes brouillons chaque jour au lieu d'une fois par semaine. C'est mieux pour apprendre de toute façon.

01:13 J'ai amené ma fille à son cours de gymnastique. J'ai fait du vélo. Mon mari nous a offert de nous accompagner, ce que j'ai apprécié. C'était la première fois que je faisais du vélo après la tempête de neige. Aucune piste cyclable n'était praticable, donc nous avons dû emprunter la rue. Il se trouve qu'il y avait un spectacle de gymnastique aérienne à 17 h, donc nous avons attendu pour le voir. Nous avons joué à Pokémon Go en attendant. Le spectacle était bien.

01:47 Pour le souper, nous avons préparé des ailes de poulet frites, des frites et du brocoli. On s'est régalés. Ma fille était fière parce que tout était moins cher et meilleur que de manger au restaurant. La cuisine est une compétence très utile dans la vie. Si elle apprend ça, cette compétence lui servira bien.

02:10 Après avoir mangé, j'ai travaillé sur l'infolettre Emacs. J'ai finalement trouvé le temps de créer une fonction pour réécrire les liens de Reddit. J'ai utilisé Spookfox pour chercher des liens sur la page.

mardi 3 février

00:00 J'ai repris ma routine matinale. D'abord, j'ai préparé des crêpes épaisses pour moi et mon mari. Après ça, j'ai appris à jouer du jazz au piano et j'ai suivi une courte vidéo d'exercice. J'ai fait une promenade en suivant un chemin qui commence près de chez nous et qui se termine au parc. J'ai fait des arrêts Pokémon. J'ai même vaincu deux arènes et laissé mes Pokémon, mais ils ont été défaits rapidement, donc je n'ai pas reçu de jetons.

00:35 Ce matin, j'ai modifié ma fonction pour envoyer mes questions à Gemini pour qu'elle puisse aussi les envoyer à Claude IA et chercher la réponse. Je ne sais pas toujours comment automatiser l'attente de la réponse, mais pour le moment, la façon manuelle fonctionne bien.

00:55 Après le retour de mon mari, je suis sortie et j'ai enlevé la neige sur le trottoir devant plusieurs maisons au bout de la rue. Il faisait moins trois degrés, donc j'ai brisé la neige compacte facilement.

01:10 J'ai eu mon dernier rendez-vous avec ma thérapeute. Elle a récapitulé les outils qu'elle m'a enseignés pendant la thérapie, et j'ai identifié quelques compétences que je veux pratiquer et quelques signes qui me montrent que je dois être attentive.

01:29 Après avoir mangé des restes, j'ai créé une fonction pour ajuster automatiquement le volume d'enregistrement après avoir enregistré. Maintenant je peux utiliser la synthèse vocale pour dire le sous-titre actuel et écouter l'enregistrement pour faciliter la comparaison. Ma prochaine étape consistera à simplifier le réenregistrement.

01:58 Je voulais publier mes tentatives de prononciation sur mon blog pour me responsabiliser et suivre mes progrès. Il y a parfois de longues phrases où ma tutrice n'a surligné qu'un ou deux mots, donc je veux inclure juste les expressions au lieu de la phrase entière. Pour éviter de désorienter les gens, je voulais spécifier un enregistrement (par exemple, un simple carillon) que j'alternerais avec les enregistrements de ma voix. D'abord, j'ai copié le segment plusieurs fois, comme ça :

Sous-titres avec des carillons
WEBVTT

NOTE
#+OUTPUT: 2026-02-02-prononciation.opus
#+INTERLEAVE: /home/sacha/proj/french/chime.opus
#+AUDIO: /home/sacha/proj/french/recordings/Points de prononciation-2026-02-03-143719.wav

00:00:02.747 --> 00:00:11.722
Ça veut dire que je peux écouter quelques podcasts de niveau A2 même sans sous-titres.

NOTE #+AUDIO: /home/sacha/proj/french/chime.opus

00:00:00.000 --> 00:00:01.000
[chime]

NOTE #+AUDIO: /home/sacha/proj/french/recordings/Points de prononciation-2026-02-03-143719.wav

00:00:17.224 --> 00:00:22.201
Après avoir mangé des nouilles udon au souper,

NOTE #+AUDIO: /home/sacha/proj/french/chime.opus

00:00:00.000 --> 00:00:01.000
[chime]

NOTE #+AUDIO: /home/sacha/proj/french/recordings/Points de prononciation-2026-02-03-144002.wav

00:00:03.064 --> 00:00:06.440
C'est amusant que nous passions ces moments-là.

NOTE #+AUDIO: /home/sacha/proj/french/chime.opus

00:00:00.000 --> 00:00:01.000
[chime]

NOTE #+AUDIO: /home/sacha/proj/french/recordings/Points de prononciation-2026-02-03-140019.wav

00:01:58.720 --> 00:02:04.043
D'autres personnes ont discuté de la navigation par onglets

02:41 Mais c'était incommode et cela a encombré mon script. Donc j'ai simplifié mon processus en une directive appelée #+INTERLEAVE:, comme ça :

Plus simple
WEBVTT

NOTE
#+OUTPUT: 2026-02-02-prononciation.opus
#+INTERLEAVE: /home/sacha/proj/french/chime.opus
#+AUDIO: /home/sacha/proj/french/recordings/Points de prononciation-2026-02-03-143719.wav

00:00:02.747 --> 00:00:11.722
Ça veut dire que je peux écouter quelques podcasts de niveau A2 même sans sous-titres.

NOTE #+AUDIO: /home/sacha/proj/french/recordings/Points de prononciation-2026-02-03-143719.wav

00:00:17.224 --> 00:00:22.201
Après avoir mangé des nouilles udon au souper,

NOTE #+AUDIO: /home/sacha/proj/french/recordings/Points de prononciation-2026-02-03-144002.wav

00:00:03.064 --> 00:00:06.440
C'est amusant que nous passions ces moments-là.

NOTE #+AUDIO: /home/sacha/proj/french/recordings/Points de prononciation-2026-02-03-140019.wav

00:01:58.720 --> 00:02:04.043
D'autres personnes ont discuté de la navigation par onglets

02:54 J'ai aussi corrigé quelques bogues dans mon exportateur de liens audio pour que je puisse afficher le sous-titre actuel après le lecteur audio. Si vous voulez, vous pouvez écouter mon enregistrement audio à l'entrée de la semaine précédente.

03:14 Ma fille a suivi le tutoriel de dessin de Pokémon d'après le livre. Elle est très fière de son œuvre. Elle a aussi dessiné plusieurs idées.

03:25 Concernant le fait que ma fille aime se blottir contre moi et m'empêcher de taper sur mon ordinateur, j'ai essayé de connecter mon téléphone à mon ordinateur via Termux, SSH et emacsclient. Il a fonctionné étonnamment bien. Écrire sur mon téléphone avec Orgzly est plus facile qu'écrire sur Emacs dans Termux et SSH parce que je peux écrire en glissant. Mais si je veux voir des bilans et des explications en écrivant, Emacs est plus personnalisable. Avec (xterm-mouse-mode 1), je peux même utiliser l'écran tactile pour faire défiler ou accéder aux menus. Peut-être que je pourrai configurer Termux pour simplifier les raccourcis clavier, puis je pourrai configurer des raccourcis clavier simples pour rechercher des mots dans le dictionnaire et compléter des mots en tapant.

mercredi 4 février

J'ai encore préparé des crêpes épaisses pour finir le levain qui était dans le réfrigérateur. Cependant, mon mari continuait à encore faire du pain, donc notre réserve de levain grandit toujours. Maintenant nous avons quelques jours de répit avant que le levain ne menace d'envahir notre cuisine une fois de plus.

Pour l'exercice, j'ai enlevé la neige compacte sur le trottoir au sud. C'était satisfaisant de voir le trottoir sans la neige. C'est plus facile de marcher dessus que sur la neige compacte. Quelques voisins m'ont remerciée. Bon, enlever de la neige à l'extérieur est mieux que suivre une vidéo d'exercice à l'intérieur.

J'ai ajouté quelques détails à mon entrée d'hier sur mon processus pour écouter la synthèse vocale et mes enregistrements. J'ai utilisé mon nouveau processus pour enregistrer mes tentatives de prononciation pendant les trois semaines précédentes. J'ai inclus les horodatages pour naviguer en utilisant ma nouvelle fonction pour insérer les données.

Nous sommes allés à pied aux Stockyards ensemble où nous avons fait du shopping. Dans la pharmacie, ma fille a choisi du shampooing, de la lotion et du dentifrice pour enfants. Chez Canadian Tire, elle a choisi des articles de fête Pokémon : des serviettes, des assiettes et des décorations. Chez Bulk Barn, elle a choisi des pièces en chocolat, des moules à muffins, des sacs en papier, et des distributeurs Pez de Minecraft. Elle a beaucoup d'enthousiasme pour sa fête. Elle n'a invité que quatre amis et nous planifions de tenir la fête à l'extérieur en hiver, donc nous sommes heureux de dépenser pour l'expérience.

La poche de pantalon de mon mari a été déchirée. Ma fille l'a rapiécée avec deux carrés de nylon rouge. Je l'ai aidée à enfiler l'aiguille et à tenir le tissu. Elle aime bien aider pour ces choses. C'est une compétence pratique.

jeudi 5 février

J'ai préparé du gruau pour le petit-déjeuner. Après un peu plus d'apprentissage du jazz au piano, je me suis frayé un chemin dans la congère au coin d'une autre rue.

J'ai finalement répondu à un commentaire à propos de mon français. J'ai aussi poussé mes mises à jour pour les bibliothèques subed-record et compile-media.

J'ai mis à jour les données de mon client et j'ai créé un rapport analytique ce mois-ci, ce que je fais chaque mois. J'ai aussi cherché à savoir quelles pages mentionnent un système obsolète pour que je puisse les modifier.

Une bénévole de Bike Brigade m'a demandé de modifier le modèle de l'infolettre pour ajouter le logo et le lien vers un commanditaire. Elle a aussi demandé de rendre l'article qu'a écrit le commanditaire plus visible. Pour ça, j'ai dit qu'elle, le commanditaire, ou la nouvelle bénévole qui est responsable de l'infolettre cette semaine peuvent le faire. Je suis heureuse de laisser les autres faire les choses comme ça. J'ai essayé de modifier mon logiciel pour convertir l'infolettre de Google Docs en MailChimp, mais les listes emboîtées étaient difficiles à traiter parce que Google Docs utilise les styles pour simuler des listes emboîtées au lieu de balisage sémantique correct. C'était plus facile de changer le format dans Google Docs pour faire une liste simple.

Après l'école, j'ai emmené ma fille à un rendez-vous avec ses amies parce qu'elle veut leur donner les invitations à sa fête directement. Après ça, elle s'est entraînée à faire la roue. Une fois que ses amies sont parties, nous sommes allées dehors pour jouer à Pokémon. Nous avons gagné trois Combats Max de niveau un à trois ensemble et nous avons attrapé beaucoup de Pokémon. J'ai obtenu assez de jetons pour agrandir mon sac, ce qui était utile pour stocker des Pokéballs, mais ma réserve de Pokémon atteignait souvent la limite.

Sur le chemin du retour, j'ai essayé la piste cyclable proche de Lansdowne parce qu'elle semblait praticable. La première partie était dégagée, mais la fin était enneigée. Même si je faisais du vélo attentivement, j'ai été étonnée quand mon vélo a tourné à gauche et a heurté une voiture. Heureusement, nous y allions toutes doucement et personne n'a eu mal. Le chauffeur était gentil et il nous a demandé comment nous allions. Après avoir repris mon souffle, j'ai continué à rentrer à la maison. Ma fille a dit que ses jambes lui faisaient un peu mal, donc elle s'est installée sur le canapé.

C'était une bonne journée pour des plats réconfortants, donc nous avons mangé des nouilles udon avec des gâteaux de poisson et du porc char siu. Si je prépare du porc char siu en sauce demain, mon mari peut préparer des petits pains au porc char siu pour le souper pendant que ma fille joue avec son amie (si son amie est disponible et le temps le permet).

vendredi 6 février

J'ai fait une diffusion en direct sur mon processus pour apprendre le français dont j'ai parlé hier. Je me demande si je pourrais extraire des captures d'écran pour les inclure dans un article.

L'après-midi, ma fille était de mauvaise humeur à cause de son camarade de classe. Elle a quitté l'école et elle s'est barricadée dans sa chambre. J'ai essayé de ne pas m'inquiéter. C'est son expérience à elle.

Moi, j'ai créé une fonction pour traduire la phrase actuelle via l'API Google Traduction. De cette façon, je peux confirmer si mon intention a été préservée après avoir appliqué les corrections d'IA. J'ai aussi essayé la synthèse vocale d'Azure. Ma prochaine étape consiste à modifier ma fonction pour utiliser la synthèse vocale pour que je puisse choisir quel moteur je veux utiliser.

Mon mari a dit que pendant qu'il était au No Frills, quelqu'un lui a demandé de m'envoyer ses remerciements parce que j'enlevais la neige sur le trottoir.

J'ai emmené ma fille à la patinoire pour jouer avec son amie. Elles voulaient jouer longtemps, donc le père de son amie est retourné chez lui pour préparer le souper et il l'a laissée avec nous. Après encore une heure à jouer, nous avons escorté son amie chez elle et nous sommes rentrées chez nous. Ma fille était très fatiguée.

Nous avons préparé des burritos pour le souper. Après ma routine du soir, je m'asseyais avec ma fille sur le canapé. Je tenais mon journal pendant qu'elle regardait les épisodes Pokémon.

J'ai dû brosser les cheveux de ma fille. Je l'ai fait hier soir pendant longtemps, mais aujourd'hui ses cheveux étaient encore emmêlés. Elle a aussi brossé ses cheveux elle-même.

Je ne sais pas exactement la raison, mais une fois que j'avais terminé la routine du soir de ma fille, elle est devenue grincheuse. Elle s'est rebarricadée dans sa chambre et elle n'a pas voulu se brosser les dents. Bon, peut-être qu'elle a ressenti soudainement de la fatigue après avoir terminé de regarder la télévision. Elle a dit qu'elle peut gérer des choses elle-même et n'a pas besoin de mon aide. Elle a dit « Arrête de faire la maman. » Donc je l'ai laissée.

samedi 7 février

Il faisait très froid aujourd'hui, donc nous sommes restés à la maison au lieu de participer au club nature.

Ma fille a passé une mauvaise nuit et a fait deux siestes sur le canapé. Elle regardait la série Pokémon. Elle nous a aussi aidés à préparer des petits pains chinois au porc char siu. Nous en avons mangé pour le souper et ils étaient délicieux même si j'ai utilisé la recette pour le pain cuit au four au lieu du pain à la vapeur. Ce n'était pas grave, je vais la réessayer demain.

Ma tutrice m'a dit qu'elle devait arrêter nos cours particuliers. Je suis désolée. C'était une bonne tutrice, donc j'étais heureuse d'avoir pu passer ce moment ensemble.

J'ai fini d'enregistrer tous les exercices de prononciation pour mon journal des douze semaines précédentes avec ma tutrice. Ça ne nous fait qu'un total d'une heure d'audio. J'ai essayé les deux moteurs de la synthèse vocale, et je préfère le moteur Google Traduction pour le moment parce qu'il semble plus clair même s'il est moins naturel que le moteur Azure.

  1. La semaine du 10 au 16 novembre
  2. La semaine du 17 novembre au 23 novembre
  3. La semaine du 24 novembre au 30 novembre
  4. La semaine du 1 décembre au 7 décembre
  5. La semaine du 7 décembre au 14 décembre
  6. La semaine du 15 décembre au 21 décembre
  7. La semaine du 22 au 28 décembre
  8. La semaine du 29 décembre
  9. La semaine du 5 janvier au 11 janvier
  10. La semaine du 12 janvier au 18 janvier
  11. La semaine du 19 janvier au 25 javier 2026
  12. La semaine du 26 janvier au 1er février 2026

dimanche 8 février

J'ai commencé à regarder les émissions sur Netflix avec l'audio et les sous-titres en français. C'est trop rapide pour les étudier, juste pour le plaisir.

Il y faisait encore très froid : moins vingt degrés. Au lieu d'aller au cours de patinage qui a probablement été annulé, nous sommes restés à la maison. Ma fille et moi avons pratiqué un peu de français et elle a travaillé sur ses devoirs.

Nous avons encore préparé des petits pains chinois au porc char siu. Mon mari et ma fille ont aussi haché du porc pour préparer des petits pains chinois au porc et au chou.

Maintenant je dois réfléchir à la manière dont je veux procéder dans mon apprentissage du français :

  • J'ai commencé avec l'intention d'aider ma fille dans son apprentissage du français, et j'y réussissais. De temps en temps, elle pratique le français avec moi. Elle a dit qu'elle me préférait presque à sa professeure parce que la classe est trop lente et ses camarades de classe font souvent les clowns. Je peux offrir quelques trucs mnémotechniques avant ses interrogations. Je peux lui démontrer l'utilisation du système de répétition espacée et la valeur de l'apprentissage qu'on choisit pour soi-même.
  • Mon objectif à long terme est la stimulation mentale. Je choisis d'apprendre le français juste pour le plaisir, pas pour le travail ou un voyage.
  • J'aime bien tenir un journal en français. C'est une bonne façon de chercher et d'utiliser beaucoup de mots liés à mes centres d'intérêt. Les entrées esquissent nos vies, ce que j'apprécierai plus tard. C'est aussi un bon prétexte pour bricoler avec Emacs et partager mes retouches. Même si je n'ai pas de rendez-vous avec un tuteur chaque semaine, je veux garder cette habitude. L'IA semble être un bon moyen d'éviter les grosses fautes de grammaire, puisque ma tutrice n'est en désaccord avec ses suggestions qu'à quelques exceptions près. Peut-être que mes gentils lecteurs me donneront leurs remarques si l'IA m'induit en erreur. Même si mon attention sera peut-être détournée par un autre loisir, les entrées restent. (Et elles survivront peut-être aux erreurs de codage mieux que mes entrées en japonais qui ont été gâchées pendant une migration entre les systèmes de blog…)
  • Je vais continuer à utiliser les cartes Anki pour revoir mon vocabulaire et pratiquer l'expression orale.
  • Pour la compréhension, je veux pouvoir lire la liste de diffusion emacsfr, le forum Emacs Fr et le projet documentation_emacs. Je peux aussi trouver beaucoup de ressources sur Pokémon et Donjons et Dragons en français. Je peux lire des livres sur Libby et sur Epic Books. Je veux trouver plus de blogs sur Emacs et d'autres technologies. Je veux aussi améliorer mon environnement pour faciliter la lecture.
  • Pour la grammaire, je pense que la croissance organique de mon journal aboutira à des connaissances limitées. J'ai emprunté beaucoup de livres sur le français, mais je ne les ai pas souvent lus parce qu'ils n'étaient pas pratiques pendant mes moments perdus. Je pense que je vais essayer de courts articles et interrogations sur Kwiziq pour identifier des choses que j'ignore sans le savoir.
  • Maintenant je peux écouter des podcasts et des vidéos simples de niveau A2, et je peux en suivre de plus complexes si je lis les sous-titres en même temps. Donc je peux regarder les épisodes sur Netflix qui sont doublés en français pour pratiquer la compréhension orale. Un jour je voudrais comprendre des cours comme sur fun-mooc.fr. Je peux pratiquer avec l'application gratuite Mauril qui est disponible au Canada.
  • L'IA ne peut pas offrir beaucoup d'aide à la prononciation. Je pense que la plupart des applications utilisent la reconnaissance vocale et traitent les textes résultants parce que cette façon minimise les frais et aussi il n'y a pas beaucoup de données ou de modèles de haute qualité pour corriger de mauvaises prononciations des débutants. Donc si je veux améliorer ma prononciation, j'ai besoin d'un tuteur qui puisse me donner ses remarques en temps réel.

    Je ne suis pas prête à converser sauf pour de simples échanges. Pour le moment, je n'ai pas beaucoup d'intérêt pour les présentations et le bavardage, du moins pas suffisamment pour y consacrer du temps. Cependant, le processus d'internalisation des règles de la prononciation (et beaucoup d'exceptions) prend du temps. Pratiquer régulièrement donne confiance en soi. C'est aussi une expérience que de payer une personne pour m'enseigner, ce que je veux démontrer à ma fille. Je pense que je vais essayer différents tuteurs pour trouver celui qui me convient le mieux. Je peux combiner cela avec la lecture de mon journal à voix haute en suivant la synthèse vocale, pour qu'une personne puisse me signaler les erreurs que je ne peux pas toujours entendre.

  • Je peux tester l'IA payante pour voir si elle peut m'aider davantage dans tous les aspects de l'apprentissage du français. On est inondé de différentes applications qui util
View org source for this post

2026-02-02 Emacs news

| emacs, emacs-news

Links from reddit.com/r/emacs, r/orgmode, r/spacemacs, Mastodon #emacs, Bluesky #emacs, Hacker News, lobste.rs, programming.dev, lemmy.world, lemmy.ml, planet.emacslife.com, YouTube, the Emacs NEWS file, Emacs Calendar, and emacs-devel. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at sacha@sachachua.com. Thank you!

View org source for this post

La semaine du 26 janvier au 1er février 2026

| french

lundi 26 janvier

L'école était fermée à cause de la neige. Nous sommes encore malades, donc nous étions heureux grâce au répit. Il faisait froid aujourd'hui, mais les prochains jours seront encore plus froids, donc quand nous avons pu sortir, on est sorties.

Je pense que lire mon journal en français à voix haute pendant une heure est un peu difficile parce que ma voix s'est fatiguée.

Ma fille et moi nous sommes dépêchées au PokéStop à proximité pour un raid, mais nous ne sommes pas arrivées à temps. Ce n'était pas grave. Il y aura une autre chance.

J'ai modifié mon correcteur de grammaire pour utiliser le modèle Gemini Flash 2.5 IA, et je l'ai utilisé pour corriger mon journal. Il tourne souvent en rond parce que je n'affiche pas l'historique.

J'ai préparé mon infolettre d'Emacs en streaming. Quelques spectateurs ont fait des commentaires.

Je suis très fatiguée, donc je vais laisser de côté les autres tâches.

mardi 27 janvier

Ma fille était malade aujourd'hui, donc j'ai prévenu l'école de son absence. Elle avait aussi passé une mauvaise nuit. Elle s'était réveillée en pleine nuit à cause de palpitations et elle a eu du mal à retrouver le sommeil. Elle s'est levée tard.

J'avais réussi à obtenir un rendez-vous urgent, donc l'après-midi, j'ai amené ma fille chez le médecin pour ses palpitations et d'autres symptômes. Le médecin a examiné ma fille et lui a posé beaucoup de questions. Elle a dit que c'était normal que ça se produise parfois quand on est malade. Elle m'a donné une ordonnance pour quelques analyses si les symptômes continuaient après la fin du rhume.

J'ai essayé la reconnaissance vocale en continu via RealtimeSTT, mais elle en rate quelques phrases de temps en temps, donc je préfère la reconnaissance vocale par traitement par lots pour penser à voix haute.

Ma fille adore se blottir contre moi pendant que nous nous détendons sur le canapé, donc écrire sur mon smartphone est plus facile que d'écrire sur mon ordinateur.

Pendant que je faisais la vaisselle, j'écoutais des épisodes de podcast français qui analysent quelques images humoristiques (memes). Un épisode portait sur la situation où l'ordinateur demandait à la femme si elle voulait faire une mise à jour maintenant ou plus tard. Elle dit que bien sûr, elle fera la mise à jour demain, en faisant un clin d'œil appuyé.

À ma grande surprise, je les ai compris. Ça veut dire que je peux écouter quelques podcasts de niveau A2 même sans sous-titres.

Après avoir mangé des nouilles udon au souper, nous nous sommes installées sur le canapé et nous avons joué à Pokémon sous différentes formes : Pokémon Go, Pokémon Blanc 2 et Pokémon Jaune. Sur Pokémon Go, ma fille et moi nous sommes affrontées de nombreuses fois. Parfois j'ai gagné, parfois elle a gagné. C'est amusant que nous passions ces moments-là.

À l'heure du coucher (toujours à l'heure du coucher), ma fille a dit qu'elle ne voulait pas encore dormir. Elle voulait combler son retard au cas où il faudrait faire une présentation demain et elle a été malade toute la journée. Bon, comment refuser ça ? Elle a fait plus de devoirs ce soir que le week-end dernier. En fait, même si je dis : « Non, tu dois te reposer, » elle ne s'endormira pas de toute manière.

mercredi 28 janvier

Ma fille se sentait mieux, mais mon mari et moi étions toujours malades.

J'ai mis à jour mon livre de comptabilité pour mon entreprise et pour moi-même. Puis j'ai rempli ma déclaration de revenus pour mes placements (formulaire T5) et je l'ai soumise.

J'ai corrigé un bogue dans mon logiciel pour copier l'édition précédente de l'infolettre de Bike Brigade vers un brouillon pour la semaine prochaine. Maintenant le logiciel peut remplacer correctement le lien du brouillon actuel.

Le kit D&D est arrivé. J'ai enlevé les livrets que ma sœur m'avait dit de cacher à ma fille pour éviter les spoilers.

J'ai participé à la réunion virtuelle Emacs Berlin où kickingvegas a montré ses propres raccourcis clavier pour gérer les tables de l'Org Mode. D'autres personnes ont discuté de la navigation par onglets, de la configuration de fenêtres, de l'expand-region et du treesitter.

Après l'école, j'ai invité ma fille à faire une promenade, mais elle a voulu rester chez nous. Je suis allée toute seule au parc voisin et j'ai essayé un raid Pokémon Go. Victoire ! C'était seulement un raid de niveau 1, donc j'ai pu le vaincre moi-même.

Ma fille et moi avons ouvert la boîte de D&D et nous avons commencé à préparer nos personnages pour notre rendez-vous avec ses cousines et ses tantes samedi. Elle a choisi de jouer une clerc naine qui s'appelle Lily. J'ai fait un roublard halfelin au passé trouble qui s'appelle Yoink. Peut-être que Lily accompagne Yoink pour essayer de l'empêcher de s'attirer des ennuis.

J'ai publié mon article sur le Carnaval d'Emacs sur mon blog. Certaines personnes ont fait des commentaires positifs en français sur Mastodon, et j'ai aussi répondu en français.

jeudi 29 janvier

J'ai créé un logiciel qui détecte ma voix et indique à Emacs de lancer la reconnaissance vocale pour simuler un mode continu. C'était utile. J'ai aussi pensé à l'interface vocale pour Emacs. Il existe de nombreux projets de contrôle vocal, donc je dois bricoler quelque chose pour moi-même. Si j'utilise une reconnaissance vocale rapide (soit les mots d'activation, soit le streaming avec un petit modèle) à côté d'un modèle plus grand pour plus de précision, je peux améliorer l'interface.

J'ai aussi créé quelques fonctions pour utiliser l'IA pour faire des commentaires sur mes brouillons en français, cette fois en gardant l'historique pour éviter de tourner en rond. Le problème avec l'IA, c'est qu'elle veut toujours plaire, donc elle change souvent d'avis une fois que la plupart des erreurs ont été corrigées. Si j'ajoute les modifications du brouillon précédent et les commentaires précédents, je peux réduire l'indécision. En cours de route, j'ai créé une fonction pour comparer deux textes mot à mot et afficher les différences dans le contexte des phrases. Je pense qu'elle sera aussi utile pour comparer des sous-titres.

J'ai eu un rendez-vous avec les autres bénévoles qui ont travaillé sur l'infolettre. J'ai répondu à leurs questions et nous avons discuté de la façon dont nous voulons procéder. L'infolettre de cette semaine est trop volumineuse pour l'API, donc j'ai modifié mon logiciel pour gérer le téléchargement, fichier par fichier.

Après l'école, ma fille n'a pas voulu sortir. Il faisait très froid.

Pour le souper, j'ai préparé un steak Salisbury et de la purée de pommes de terre. Ma fille a voulu essayer de couper des pommes de terre avec un éplucheur pour faire des tranches fines pour faire des frites. Elle a aussi essayé de les couper en fines tranches avec un couteau. Les tranches qui ont été coupées avec un éplucheur sont plus fines, donc elles sont plus croquantes après les avoir fait frire. C'est une bonne expérience.

Elle s'est assise sur mes genoux pendant que nous lisions un livre ensemble. Elle aime bien ça quand elle a froid. Je dis toujours qu'elle peut encore porter des vêtements tels qu'un poncho ou un peignoir, mais elle préfère un câlin.

vendredi 30 janvier

Cette journée était un peu insatisfaisante. Il faisait très froid (moins vingt-deux degrés), donc même mon mari a annulé son rendez-vous chez le médecin.

Il y avait une remplaçante à l'école aujourd'hui, donc ma fille n'a pas voulu participer à la classe parce que le rythme était encore plus lent qu'en classe normale. Bon, c'était son expérience. Heureusement, je n'avais pas de tâches urgentes qui demandaient de la concentration à l'exception d'une diffusion en direct à 10h30, et je m'en suis souvenue à temps. Elle a dit qu'elle voulait transformer ses devoirs en jeu. Si elle le fait vraiment, je suis heureuse de l'aider, mais elle ne m'a pas demandé d'aide. Pendant qu'elle s'amusait, j'ai écrit un article pour annoncer le Carnaval d'Emacs en février. Je pense que pour le Carnaval, la complétion est un bon sujet pour apprendre ensemble. Certains débutants ne savent peut-être pas ce qui est possible ou comment commencer. J'avais accumulé plusieurs liens au cours de la préparation d'Emacs News que je peux organiser.

J'ai travaillé sur la reconnaissance vocale. J'ai finalement forké le dépôt de natrys/whisper.el parce que je veux implémenter une fonctionnalité qui est trop difficile avec la bibliothèque actuelle, comme le faire scroller. Pour que cela soit possible, il a fallu ajouter une liste de fonctions de traitement de texte qui sont implémentées en dehors du code qui préserve la position. Je dois le tester pendant quelques jours avant de l'envoyer au créateur de whisper.el pour la relecture.

Ma fille et moi avons écrit nos profils de personnage pour notre partie de D&D demain. Nous avons fait les préparatifs : les feuilles de personnage, les jetons, les dés… Je ne sais pas comment jouer avec sa cousine et ses tantes en ligne, mais nous essaierons demain. Les tables virtuelles existent, donc peut-être que nous pourrons en utiliser une la prochaine fois, mais d'abord, ma sœur (la meneuse de jeu) veut essayer à l'ancienne (bien qu'en ligne).

Le bulletin scolaire arrive le dix février. Bon, on va voir. Je pense que ma fille recevra de mauvaises notes, mais ce n'est pas la fin du monde. Si elle choisit de travailler plus dur, elle peut rattraper le temps perdu. Si elle ne fait pas d'efforts, ce sera la même chose pour elle que pour les autres étudiants qui s'ennuient beaucoup à l'école. Je dois me rappeler mes objectifs principaux. Si elle est en sécurité, heureuse et curieuse, elle peut trouver sa propre voie.

samedi 31 janvier

Ma fille et moi avons joué à Donjons et Dragons.

  • Ma fille était une clerc,
  • ma sœur était une ensorceleuse,
  • ma nièce était une guerrière
  • j'étais un roublard (un homme, parce que le restant de l'équipe est féminine; cela rendra peut-être l'accord de nom plus complexe quand je raconte, mais c'est une bonne occasion pour pratiquer ça),
  • et mon autre sœur était la meneuse de jeu.

Nous sommes envoyés par un ensorceleur au donjon avec un message pour le scribe qui habite là-bas. Nous avons vaincu une vase grise dans un wagon et quelques bandits dans la forêt. Je pense que la guerrière aime bien combattre parce qu'elle se demande toujours si elle peut frapper le personnage que la meneuse présente.

Malgré la distance et la petite taille de notre table (c'est difficile de trouver une place pour tous les éléments), nous nous sommes amusées en vrai.

L'après-midi, j'ai traduit mes fonctions pour formater l'infolettre de Bike Brigade d'Emacs Lisp en NodeJS avec l'aide de l'IA pour que ce soit plus facile à exécuter ailleurs un jour. J'ai essayé l'interface gptel sous Emacs. C'était plus pratique que l'interface web parce que j'ai pu envoyer la région actuelle vers l'IA aisément.

Il faisait encore très froid, donc ma fille n'a pas voulu participer au club nature au parc. Elle n'avait pas participé à un club nature cette saison, mais ce n'était pas grave. Je peux penser au droit d'enregistrement comme une donation au parc. Si elle veut y aller, elle peut y aller. Si non, ce n'est pas grave. Particulièrement cet hiver, il fait souvent trop froid, donc les enfants passent souvent leur temps à l'intérieur de toute façon, ce que nous préférons éviter ou minimiser à cause du COVID et d'autres maladies.

J'ai reçu un message sur mon français de la part d'un lecteur de mon blog. (Merci !) Je partagerai ses commentaires avec ma tutrice lundi. C'est possible que même si ma tutrice est vivement recommandée par un autre parent dans un groupe sur Facebook, parce qu'elle n'est pas immergée maintenant dans un environnement francophone à Toronto (ou peut-être est-ce parce que nous sommes au Canada), il y a quelques points qu'elle trouve difficiles à résoudre. Peut-être que je peux inclure mes questions dans ces entrées et vous pouvez faire des commentaires si vous voulez. Je pourrai envoyer vos commentaires à ma tutrice et nous pourrons nous améliorer ensemble.

Les points pour possiblement mentionner lundi :

  • outil : la prononciation dans le dictionnaire dit que [uti] (le «l» est silencieux), mais dans la phrase « J'ai aussi travaillé sur l'outil (loo teel) de visualisation et la gestion du routage audio. », ma tutrice a écrit que l'outil se prononce «loo teel» (avec le son final «l»). Il n'y a pas de voyelle après le mot, donc il ne peut pas y avoir de liaison. Si je me souviens bien, elle a expliqué que je dois le prononcer avec un très léger «l» à la fin, donc peut-être cette transcription sert à former le son de la voyelle.

    Un jour je serai assez courageuse pour publier des enregistrements en français de ces entrées. Si cela ne vous dérange pas trop, j'aimerais recevoir vos commentaires. Je pense qu'il faudra me contenter d'un accent anglophone (même Justin Trudeau en a un), mais si je peux apprendre à séparer les voyelles et omettre les lettres silencieuses pour que je sois compréhensible, je prends un bon départ.

    • Ma tutrice a dit qu'un très léger «l», ce n'est pas un son «l» complet, on finit juste avec sa langue touchant le palais au lieu d'une voyelle «i» pure. Mais l'IA insiste sur le fait que la prononciation n'ait pas un son final «l», même s'il est très léger ou ne consiste qu'à toucher le palais avec la langue. L'IA dit que la langue reste plate. C'est le problème d'une débutante : je n'en sais pas assez pour corriger ma tutrice au cas où elle se trompe…
    • Peut-être que je peux ne pas dire le «l» final et garder la langue plate parce que tout le monde (à l'exception de ma tutrice?) dit de faire comme ça, et je vais chercher d'autres mots que je peux utiliser à la place.
  • les dates sur mes entrées de journal :

Maintenant que j'en ai appris un peu plus sur Flycheck, j'ai modifié mon correcteur de grammaire avec l'IA pour qu'il s'exécute plus aisément. Mais je ne veux pas l'exécuter trop souvent parce que soit j'atteins les limites sur le plan gratuit soit j'accumule trop de frais si j'utilise l'autre clé d'API. Mon approche précédente était d'envoyer ce buffer manuellement à l'IA, ce qui est peut-être plus contrôlable que l'approche automatique.

dimanche 1e février

J'ai amené ma fille à la patinoire pour son cours de patinage. Elle s'est entraînée à patiner en arrière. J'ai aussi pratiqué le patinage en arrière et tourner en patinant. Son amie n'y était pas, donc elle n'a pas pu lui donner une invitation pour sa fête d'anniversaire ce mois-ci. Bon, la prochaine fois. Nous avons joué un peu Pokémon Go sur le chemin du retour, et nous avons laissé nos Pokémon à quelques arènes.

Nous avons emprunté beaucoup de livres de la bibliothèque. Puis, nous avons fait les courses ensemble. Pour le souper, j'ai préparé des tacos. Elle les a bien mangés.

J'ai posé à ma fille des questions sur ses devoirs. Elle m'a demandé de transformer ses devoirs en un jeu, mais quand j'ai essayé d'établir lesquels et quand, elle évitait le travail. Je pense que je dois attendre jusqu'à ce qu'elle veuille vraiment faire ces tâches. C'est important qu'elle découvre ce qu'elle veut. Plus je pousse, plus elle résiste. Le bulletin de notes arrivera dans deux semaines, puis nos conversations seront plus concrètes avec les données. Au lieu de ses devoirs, elle jouait à Minecraft. Si de mauvaises notes montrent qu'il faut plus d'efforts, nous pouvons renégocier Minecraft et d'autres choses, parce que Minecraft ne doit pas remplacer ses devoirs.

Il vaut mieux que je reste occupée pour que je ne m'inquiète pas. J'ai modifié mon correcteur de grammaire avec l'IA pour accumuler tout l'historique. J'ai essayé le modèle Mistral-large-2411 pour corriger mon français. Parfois ce modèle génère du JSON invalide. Même avec mes connaissances limitées, je peux attraper certains mauvais conseils. Mais il offre des limites généreuses pour usage gratuit et Mistral IA est une entreprise française, donc pour l'objectif de corriger mes brouillons, il valait peut-être la peine. Mon mari étudie aussi l'IA pour automatisation, donc j'ai hâte de partager des notes ensemble.

Ha… Elle est venue et m'a demandé de l'aide avec ses devoirs de mathématiques. Mais après que j'ai posé des questions sur ses réponses confuses, elle est devenue très grincheuse. Je dois apprendre que je ne dois pas la corriger. Je peux laisser ça à l'enseignant.

Points de prononciation

  • Pour pratiquer attentivement : peux, veux, veuille, feuilles, nouilles. Selon l'IA:
    • Le son /​ø​/ (peux, veux) demande une bouche très fermée, tandis que le début de 'veuille' /​vœj​/ est plus ouvert (comme 'beurre')
    • C'est un excellent exercice pour la distinction entre le son /​œj​/ (feuilles) et le son /​uj/ (nouilles).
  • 00:00 Ça veut dire que je peux (peuh /​pø/​) écouter quelques podcasts de niveau (nee voh /​ni.vo/​) A2 même sans sous-titres.
  • 00:09 Après avoir mangé des nouilles (nwee /​nuj/​) udon au souper,
  • 00:15 C'est amusant que nous passions ces moments-là. (moh mehn lah /​mo.mɑ̃.la/​)
  • 00:20 D'autres personnes ont discuté de la navigation par onglets (hard g /​ɔ̃.ɡlɛ/​)
  • 00:26 J'ai eu (oo /​y/​) un rendez-vous avec les autres bénévoles qui ont travaillé sur l'infolettre.
  • 00:34 … elle peut encore porter des vêtements tels qu'un poncho ou un peignoir (peing nwahr /​pɛ.ɲwaʁ/​)
  • 00:42 Il y avait une remplaçante (rem plah sent /​ʁɑ̃.pla.sɑ̃t/​) à l'école aujourd'hui,
  • 00:48 J'avais accumulé plusieurs liens (le ens /​ljɛ̃/​) au cours de la préparation d'Emacs News que je peux organiser.
  • 00:56 … je veux implémenter (eim play mehn tay /​ɛ̃.ple.mɑ̃.te/​) une fonctionnalité qui est trop difficile avec la bibliothèque actuelle,
  • 01:06 … texte qui sont implémentées en dehors (deuh hors /​də.ɔʁ/​) du code qui préserve la position.
  • 01:13 Nous avons fait les préparatifs : les feuilles (feuyll /​fœj/​) de personnage, les jetons, les dés…
  • 01:21 Je ne sais pas comment jouer avec sa cousine (koo zeen /​ku.zin/​) et ses tantes en ligne, mais nous essaierons (s ay yeuhron /​ɛ.sɛ.ʁɔ̃/​) demain.
  • 01:31 Si elle ne fait pas d'efforts, ce sera la même chose pour elle que pour les autres (silent s /​otʁ/​) étudiants qui s'ennuient beaucoup à l'école.
  • 01:42 Malgré la distance et la petite taille (tie /​taj/​) de notre table…
  • 01:48 … ce soit plus facile à exécuter ailleurs (aie euhrs /​a.jœʁ/​) un jour.
  • 01:54 J'ai posé à ma fille des questions (kes teons /​kɛs.tjɔ̃/​) sur ses devoirs.
  • 02:00 Je pense que je dois attendre jusqu'à ce qu'elle veuille (veuyy /​vœj/​) vraiment faire ces tâches.
  • 02:09 Même avec mes connaissances limitées, je peux (peuh /​pø/​) attraper certains mauvais conseils.
View org source for this post

Emacs and French: Focus flycheck-grammalecte on the narrowed part of the buffer

Posted: - Modified: | emacs, french

: Fix flycheck-checkers.

After learning about French spellcheck and grammar checking from Emacs expliqué à mes enfants, I added flycheck-grammalecte to my config. Nudged by @lann@mastodon.zaclys.com, I finally got around to figuring out why my setup sometimes worked and sometimes didn't. When I checked flycheck-verify-setup, I noticed that grammalecte kept getting disabled. A little digging around showed me that it was getting disabled because of too many errors. That was because it was trying to work on my whole file instead of just the portion that I narrowed to with org-narrow-to-subtree (ooh, just noticed an org-toggle-narrow-to-subtree command). I like having all of my French journal entries in one file because I can use consult-line (which I've bound to M-g l) to quickly look up examples of where else I've used a word. So I needed to define a checker that runs only on the narrowed part of the buffer.

(defun my-flycheck-grammalecte-buffer (checker callback)
  (let* ((temp-file-name (make-temp-file "grammalecte"))
         (output-buffer (get-buffer-create temp-file-name))
         (buffer (current-buffer))
         (cmdline (delq nil `("python3"
                              ,(expand-file-name "flycheck_grammalecte.py"
                                                 grammalecte--site-directory)
                              ,(unless flycheck-grammalecte-report-spellcheck "-S")
                              ,(unless flycheck-grammalecte-report-grammar "-G")
                              ,(unless flycheck-grammalecte-report-apos "-A")
                              ,(unless flycheck-grammalecte-report-nbsp "-N")
                              ,(unless flycheck-grammalecte-report-esp "-W")
                              ,(unless flycheck-grammalecte-report-typo "-T")
                              (option-list "-f" flycheck-grammalecte-filters)
                              (eval (flycheck-grammalecte--prepare-arg-list
                                     "-f" flycheck-grammalecte-filters-by-mode))
                              (eval (flycheck-grammalecte--prepare-arg-list
                                     "-b" flycheck-grammalecte-borders-by-mode))
                              ,temp-file-name)))
         (args (mapcan (lambda (arg) (flycheck-substitute-argument arg checker)) cmdline))
         (command (flycheck--wrap-command (car args) (cdr args))))
    (write-region (buffer-string) nil temp-file-name)
    (make-process :name "grammalecte"
                  :buffer output-buffer
                  :command command
                  :sentinel
                  (lambda (process status)
                    (let ((errors (with-current-buffer (process-buffer process)
                                    (message "%s" (buffer-string))
                                    (flycheck-parse-with-patterns
                                     (buffer-string)
                                     checker
                                     (current-buffer)))))
                      (delete-file temp-file-name)
                      (kill-buffer output-buffer)
                      ;; offset
                      (funcall
                       callback
                       'finished
                       (let ((offset (save-excursion (goto-char (point-min))
                                                     (line-number-at-pos nil t))))
                         (mapcar
                          (lambda (err)
                            (let ((new-err (copy-flycheck-error err)))
                              (setf (cl-struct-slot-value 'flycheck-error 'buffer new-err)
                                    buffer)
                              (setf (cl-struct-slot-value 'flycheck-error 'line new-err)
                                    (+ (flycheck-error-line new-err)
                                       offset -1))
                              (setf (cl-struct-slot-value 'flycheck-error '-end-line new-err)
                                    (+ (flycheck-error-end-line new-err)
                                       offset -1))
                              new-err))
                          errors))))))))

(defun my-flycheck-grammalecte-setup ()
  "Build the flycheck checker, matching your taste."
  (interactive)
  (unless (grammalecte--version)
    (advice-add 'grammalecte-download-grammalecte :after-while
                #'flycheck-grammalecte--retry-setup))
  (grammalecte--augment-pythonpath-if-needed)
  (flycheck-define-generic-checker 'my-grammalecte-narrowed
    "Report Grammalecte errors, but only for the narrowed section."
    :start #'my-flycheck-grammalecte-buffer
    :modes flycheck-grammalecte-enabled-modes
    :predicate (lambda ()
                 (if (functionp flycheck-grammalecte-predicate)
                     (funcall flycheck-grammalecte-predicate)
                   t))
    :enabled #'grammalecte--version
    :verify #'flycheck-grammalecte--verify-setup)
  (setf (flycheck-checker-get 'my-grammalecte-narrowed 'error-patterns)
        (seq-map (lambda (p)
                   (cons (flycheck-rx-to-string `(and ,@(cdr p))
                                                'no-group)
                         (car p)))
                 flycheck-grammalecte--error-patterns))
  (add-to-list 'flycheck-checkers 'my-grammalecte-narrowed)
  (flycheck-grammalecte--patch-flycheck-mode-map))

After I use my-flycheck-grammalecte-setup, I can use flycheck-select-checker to select my-grammalecte-narrowed and then use flycheck-buffer to run it. Then it will underline all the number/gender agreement issues I usually have. It's nice that I can practise editing my text with this script before I run the text through an LLM (also via flycheck) for feedback on wording.

2026-01-30_22-20-20.png
Figure 1: Screenshot of grammalecte providing grammar feedback
This is part of my Emacs configuration.
View org source for this post

Emacs Carnival February 2026: Completion

| stream, emacs

For the Emacs Carnival theme for February, let's learn more about completion together. There are all sorts of cheesy puns one can make about completion and Emacs and Valentine's Day, like "You complete me," but beyond the jokes, it's actually a really good topic to help us work with Emacs more efficiently.

First, what's the Emacs Carnival?

From Christian Tietze:

A blog carnival is a fun way to tie together a community with shared writing prompts, and marvel at all the creative interpretations of the topic of the month.

You can get a sense of previous Emacs Carnivals by checking out the previous ones:

Month Host Topic
June 2025 ctietze "Take Two"
July gnewman "Writing Experience"
August takeonrules "Your Elevator Pitch for Emacs"
September rodiongoritskov "Obscure packages"
October AndyDrop "Maintenance, server or home or garden"
November donaldh "An ode to org-babel"
December GeorgeJones "The People of Emacs"
January 2026 ctietze "This year, I'll…"

You don't have to be an expert in order to post. In fact, this is a great way for all of us (beginners and otherwise) to focus on a topic together. Let's treat it like a kind of book club where we can share our notes as we learn.

What do we mean by completion in Emacs?

Completion can make it faster to enter text and to reduce errors. You can use it to find Emacs commands even if you don't know their full names or keyboard shortcuts. You can use it to expand abbreviations or even fix the typos you usually make. You can use it when you code and when you write. I've heard some people define common abbreviations across different programming languages so they don't have to remember the differences between syntaxes, and minibuffer-completion-based interfaces like consult-ripgrep let you flip through search results astoundingly quickly.

Let's start by talking about two types of completion:

  • minibuffer completion, which happens in the small window at the bottom of the screen whenever you use M-x, find a file, etc. This is where you can type a little and then find matching options so that you don't have to remember the full names of commands or files. For lots of tips, check out Understanding Minibuffer Completion - Mastering Emacs.

    For example, here's my minibuffer for M-x using vertico for the display and marginalia for annotations on the side:

    2026-01-30_12-44-23.png
    Figure 1: Screenshot of minibuffer completion
  • in-buffer completion, like when you expand an abbreviation, insert a snippet, or fill in the rest of a variable name.

    2026-01-30_14-17-45.png
    Figure 2: Screenshot of in-buffer completion

Here are some ideas for things to explore. Pick an idea or come up with your own and write a post sharing what you're figuring out!

  • Minibuffer completion
    • Do you know about S-M-x (execute-extended-command-for-buffer - available with Emacs 28.1 or higher), which suggests commands relevant to the current mode?
    • Have you gotten the hang of using M-p to go back through your history? (Did you know you can interactively search through that history with C-s and C-r?)
    • Do you know about using M-n to go into the future history?
    • Have you tried saving your minibuffer history with savehist?
    • Do you want to experiment with recursive minibuffers so that you can do something else in the middle of a completion?
    • Do you have nicer completion set up, like icomplete-vertical-mode, fido-mode or fido-vertical-mode, ido-mode or ido-vertical-mode, ivy, or vertico? This makes things like M-x (execute-extended-command) and M-y (yank-pop) soo much nicer!
    • Have you experimented with other completion styles like orderless so that you can type parts of the completion name in any order?
    • Have you checked out the convenient search and navigation commands in more complex completion frameworks like consult, counsel, or helm?
    • Have you experimented with other sort orders like the built-in historical option or more complex sorts with prescient.el?
    • Do you want to see additional information when you're choosing completions? Try out marginalia.
    • Have you checked out embark for doing other things with your completion like inserting a file name instead of opening it, or changing the command that you wanted to do, or acting on multiple items?
    • If you use Org Mode, do you want to make your own custom Org link type with completion? (I really like being able to quickly link to blog posts, parts of my config, or project files with completion)
    • Do you want to define your own completion commands, maybe even with previews, dynamic collections or asynchronous data?
  • In-buffer completion
  • Meta: What else can you bring into Emacs so that you can take advantage of all the completions that you've set up, like note-taking or e-mail? (Ex: mastodon.el + org-contacts + a little code to insert a Mastodon handle with completion = I can think of people by name instead of by handle!)

Things I want to learn about

For example, this month, I want to…

  • Minibuffer:
    • Figure out some kind of approximate speech-based minibuffer completion for commands
    • Create a custom Org Mode link type for emacswiki and other things I refer to frequently
    • Write about the completion functions I'm using to help me learn French
  • In-buffer completion:
    • Notice where I keep typing the same kinds of things and define more snippets for them
    • Borrow ideas from other people's snippets: yasnippet-snippets (css, elisp, js, python); friendly-snippets (VS Code)
    • Share my snippets in a repository
    • Figure out some kind of speech interface for expanding snippets
    • Sort out completion in programming buffers so that I can finally take advantage of LSP
    • Complete French words in-buffer ignoring accented characters
  • Organize tons of completion-related links from Emacs News onto EmacsWiki: Category Completion and other pages
  • Revisit the completion-related code in my config to dust off things that I can update, remember to use, or document with gif-screencast

I'll publish my notes on my blog and I'll add them to this post as well. I'd love to check out your notes too!

How to submit your entry/entries

Please e-mail me at sacha@sachachua.com or DM me via Mastodon with a link to your post(s) by February 28 so that I can add them to this post. I'm happy to link to multiple posts. For example, here are some things you might like to write about:

  • what you're thinking of figuring out (in case other people have suggestions)
  • your notes along the way
  • your current setup
  • things you're particularly proud of

Looking forward to hearing from you!

View org source for this post

La semaine du 19 janvier au 25 javier 2026

| french

Lundi, le dix-neuf janvier

Ma fille s'est levée juste à temps pour l'école. Elle a dit qu'elle était fatiguée et n'a pas voulu y aller. Je l'ai câlinée et j'ai fait la lessive. Cette fois, j'ai mis un minuteur pour penser à suivre notre routine pendant la pause déjeuner. J'ai revu mon journal avec l'aide de quelques nouvelles fonctions qui utilisent Spookfox pour communiquer avec Mozilla Firefox, envoyer mes brouillons à Google Gemini et afficher les résultats au format Org Mode dans Emacs. J'ai aussi étudié les points de prononciation du rendez-vous précédent avec l'aide de la synthèse vocale et de la reconnaissance vocale en continu. Petit à petit, je m'améliore.

Ma fille a manqué les cours de l'après-midi. D'une part, je me suis inquiétée parce qu'elle pourrait développer de mauvaises habitudes. D'autre part, au moins, elle est dans un endroit sûr au lieu de faire l'école buissonnière, de réprimer ses pensées pendant qu'elle est assise en classe, ou de faire des bêtises. Certaines familles préfèrent l'école à temps partiel pour adapter le système à leurs besoins plutôt que l'inverse, ou même ne rien faire de formel du tout. Je comprends qu'elle ait voulu quelque chose de différent. C'est difficile de rester assise et d'écouter un cours qui se déroule si lentement. Je ne sais pas si j'en serais capable, alors je ne peux pas la contraindre. Je lui ai déjà demandé des choses difficiles, par exemple de porter un masque dans les espaces publics fermés.

Je pense que mon premier objectif est de l'élever pour qu'elle puisse explorer le monde par elle-même, y compris choisir ses propres objectifs, planifier et concrétiser ses idées, et évaluer les résultats. En revanche, je veux la soutenir jusqu'à ce qu'elle y parvienne. Si ce n'est pas une question de santé ou de sécurité, je veux la laisser décider autant que possible, particulièrement quand elle le veut vraiment. C'est normal qu'elle ait envie de plus d'indépendance à l'adolescence. La quête d'indépendance pourrait impliquer de rejeter les décisions ou les conseils des parents. Nous n'en sommes pas encore là, donc je dois m'y préparer en resserrant les liens entre nous. Quand elle se retrouve dans une situation qui serait peut-être trop difficile à gérer toute seule, elle saura au plus profond d'elle-même que nous sommes toujours là pour elle. Elle est généralement raisonnable. Mon but n'est pas de lui faire la leçon. Ce n'est même pas de lui poser des questions pour qu'elle réfléchisse, ce qui pourrait être perçu comme un interrogatoire. Mes sous-objectifs consistent peut-être à lui assurer une base solide (la nourriture, les câlins et ainsi de suite). Je peux aussi partager ce que j'apprends dans ma propre vie en discutant avec elle si elle est curieuse. Si elle n'est ni curieuse ni prête, je peux lui laisser des notes.

Bon, je l'ai emmenée à son cours de gymnastique, et nous avons joué à Pokémon Go dans un nouveau quartier. Il faisait très froid. Mon vélo cargo n'a pas bien fonctionné sur le chemin du retour. Au début, mon écran refusait de se connecter. Puis il s'est connecté, mais je n'ai pas pu changer de vitesse. Heureusement, j'étais bloquée sur une vitesse moyenne et les pistes étaient gérables. Débrancher et rebrancher l'écran a finalement résolu le problème.

Mon mari a trouvé une boîte de rouleaux de printemps faits maison au congélateur. Il les a préparés avec notre fille.

Je commence un brouillon en français :

Mardi, le vingt janvier

J'ai évalué quelques modèles et serveurs pour la reconnaissance vocale. J'ai trouvé que le serveur Speaches avec le modèle faster-whisper-base est plus rapide que ma configuration précédente. J'ai aussi essayé le mode continu de Speaches, mais les résultats sont mauvais. Peut-être que mon ordinateur n'a pas assez de puissance pour ça, ou peut-être que j'ai juste besoin de le configurer correctement.

Pendant la pause déjeuner, ma fille a joué à Minecraft Education. Elle a appris un peu de Python. Pendant qu'elle jouait, j'ai continué mon jeu de Pokémon. J'ai terminé la Forêt de Jade et j'ai vaincu le champion d'arène d'Argenta, qui était facile à battre avec mon Carapuce.

J'ai discuté des distorsions cognitives et des perspectives différentes avec ma thérapeute. J'ai aussi discuté des limites, que je trouve un peu difficiles à gérer avec ma fille. Mes limites avec d'autres personnes sont peut-être trop rigides, et il faut que j'apprenne à demander de l'aide. Mes limites avec ma fille sont peut-être trop perméables, et il faut que j'apprenne à négocier ou parfois faire de moi une priorité.

Pour le souper, ma fille a préparé du Kraft Dinner aux saucisses. Elle a trouvé qu'elle préférait la marque Annie plutôt que la marque KD.

La météo a annoncé de la neige demain. Nous avons décidé qu'il valait mieux faire les courses aujourd'hui avant les intempéries de demain parce que la neige rendra la marche difficile.

J'ai réessayé les exercices d'écoute et de parole sur Google Translate. Étonnamment, j'ai réussi. Peut-être que je peux m'entraîner avec ça chaque jour. C'est gratuit.

À l'heure du coucher, ma fille et moi avons lu à tour de rôle. J'ai été impressionnée par sa lecture. Elle peut lire de manière expressive et sans problème.

Mercredi, le vingt-et-un janvier

L'école virtuelle avait une remplaçante aujourd'hui, donc ma fille n'a pas voulu participer à cause des problèmes techniques et à cause des bêtises de ses camarades. Cette fois, elle nous a vraiment demandé si elle pouvait sécher, ce qui est… un progrès, je suppose? Je me souviens quand il y a un remplaçant, le rythme est souvent trop lent et ma fille pense que c'est une perte de temps. Bon, j'ai essayé de considérer l'école comme un des outils pour l'apprentissage et en ce moment comme une expérience de l'autodétermination. Elle s'est assise sur mes genoux pendant qu'elle travaillait sur ses devoirs, ce qui est probablement plus qu'elle aurait accompli si elle était assise en classe de mauvaise humeur.

J'ai mis à jour mon logiciel pour renouveler les livres que nous avons empruntés à la bibliothèque. Je n'ai pas pu réécrire certaines fonctions parce que je n'ai pas de livres qui attendaient à la bibliothèque. Cette fonction est en attente. Pour le moment, mon logiciel peut encore afficher un rapport des livres qui doivent être rendus.

Malgré la neige, j'ai emmené ma fille à la patinoire pour patiner avec ses amies. Sa nouvelle nourrice est venue au Canada depuis peu et n'a pas ses propres patins, donc j'aidais les enfants avec leurs patins et leurs casques, même si personne ne savait comment attacher la grille du casque. Cette amie a 5 ans et c'était sa première fois à la patinoire, donc je voulais être très très prudente. J'ai même demandé à l'homme qui jouait au hockey de l'autre côté, mais il ne savait pas non plus. Après une brève consultation avec la mère de son amie, j'ai attaché son casque mais j'ai laissé la grille pendre. Je l'ai aidée à tenir un support et je la guidais pendant que ma fille et son autre amie jouaient ensemble. Heureusement, j'ai apporté du chocolat chaud et beaucoup de chauffe-mains, parce que ses amies et leur nourrice avaient froid. Nous les avons accompagnées près de chez elles parce que ma poussette était très utile pour apporter leurs patins, casques, et sacs. Ma fille et son amie discutaient en route, mais après s'être quittées, elle a dit qu'elle était surstimulée. C'est possible que les intérêts de ma fille et de cette amie aient divergé. Ma fille espère trouver une amie qui aime parler de Pokemon, Star Wars, Minecraft, ou KPop Demon Hunters au lieu de se vanter de ses affaires ou de leurs autres amies, et qui préfère aussi une conversation calme au lieu de bavarder sans cesse. C'est la vie, on passe à autre chose.

Après avoir poussé la poussette dans tant de neige, j'étais très fatiguée. Ma fille a dit qu'elle voulait une journée tranquille demain, et j'ai totalement approuvé.

Avant de faire son pain, mon mari a préchauffé le four en faisant des biscuits au chocolat. C'était une très bonne idée.

Jeudi, le vingt-deux janvier

J'étais encore fatiguée quand je me suis levée à cause de l'effort hier. À cause de mon manque d'énergie, il faut choisir soigneusement mes tâches.

  • Je dois rendre les livres cet après-midi parce que la météo annonce qu'il fera très froid demain.
  • Ma fille est allée à l'école en ligne sans petit-déjeuner, donc je dois préparer sa collation pour qu'elle puisse manger sur le pouce pendant la récré.
  • J'entraîne une bénévole pour l'infolettre de Bike Brigade, donc je dois organiser ses éléments dans le brouillon pour qu'elle puisse voir le processus.

J'ai rendu les livres en retard et j'ai emprunté beaucoup de livres pour ma fille pour les prochains jours à la maison. J'ai aussi joué un peu à Pokémon Go en chemin. Mon mari a joué à Pokémon Émeraude sur sa Game Boy Advance à l'extérieur grâce à ses boutons physiques, qui pouvaient être utilisés malgré les gants. Il était emmitouflé dans des couvertures et profitait du soleil.

J'ai mis à jour des données pour mon client. Je ne veux pas travailler aujourd'hui, donc j'ai laissé de côté les autres tâches.

Au lieu de travailler, j'ai revu mon journal en français et créé une fonction pour sauter à la prochaine correction de l'IA. Pour le moment, j'affiche le commentaire en bas de la fenêtre. Je voudrais l'afficher près du curseur (peut-être via un popup) et souligner toutes les corrections pour revoir plus facilement.

Nous avons joué à Pokémon Go en faisant les courses. Nous avons suivi une route qui commence près de la maison, et nous avons attrapé beaucoup de nouveaux Pokémon. Nous sommes allés dans un parc plus loin. Nous avons vaincu trois arènes ! Ça signifie que nous avons pu laisser nos Pokémon là-bas jusqu'à ce que nos Pokémon soient vaincus ou qu'ils ne manquent de motivation. Ça nous fera gagner des PokéCoins, ce qui nous permettra d'augmenter nos inventaires plus tard. Ma fille avait suffisamment d'énergie pour marcher plus, donc après le retour de mon mari, ma fille et moi sommes allées au parc à proximité pour activer davantage de PokéStops et collecter plus d'objets. Comme il va faire très froid ces prochains jours, si elle veut jouer à l'extérieur aujourd'hui, je suis contente de l'accompagner.

Pour le souper, j'ai préparé une tourte au poulet avec de la pâte brisée que j'avais préparée hier soir. Ma fille m'a aidée à couper les ingrédients. Elle a aussi préparé sa collation pour l'école demain. Mon mari a préparé une salade romaine. On s'est régalés. Malheureusement, ma fille a laissé tomber son petit bol fait à la main et il s'est cassé. C'est la vie. Heureusement, elle avait fait beaucoup de petits bols grâce à son intérêt pour la poterie.

Vendredi, le vingt-trois janvier

J'ai réussi à donner envie à ma fille de se lever avec un pain au chocolat pour le petit-déjeuner, donc elle a eu du temps avant l'école.

J'ai copié la mauvaise clé de la diffusion en direct, donc j'ai été un peu en retard pour mon événement. Ce n'était pas grave. En tout cas, c'était gratuit. J'ai modifié ma fonction pour la reconnaissance vocale pour qu'elle insère le résultat au point que j'avais sélectionné. C'est même possible d'insérer à plusieurs points si je veux. J'ai aussi créé une fonction pour mettre les enregistrements en file d'attente pour la reconnaissance vocale et insérer au fur et à mesure les résultats.

Le coordinateur du cours de patinage m'a appelé pour dire que le cours de dimanche est annulé à cause du temps très froid.

Ma fille était enrhumée et malade. J'ai une petite inquiétude parce que son amie qui était venue chez nous commençait à éternuer à l'intérieur, mais c'était trop tard pour changer le plan. J'avais pensé que nos masques avaient peut-être suffi. J'étais un peu enrhumée, donc je vais faire un test rapide de COVID demain parce qu'elle déteste ça. C'est le bon moment pour hiberner. On doit persévérer.

Samedi, le vingt-quatre janvier

Ma fille a continué à se sentir malade, avec un mal de gorge et des éternuements. J'ai préparé de la bouillie de riz et elle l'a mangée. Elle a regardé Le Retour de Mary Poppins. J'ai effectué un test COVID, qui s'est avéré négatif. Il faut beaucoup de repos et de câlins. J'ai fait chauffer de l'eau au citron et au miel. Il faisait moins quinze degrés, très froid.

J'ai modifié mon logiciel pour transformer l'infolettre de Bike Brigade pour qu'il puisse traiter les émojis dans les textes. J'ai aussi mis à jour mon logiciel de recherche de livres sur le site de la bibliothèque.

Pour le souper, j'ai encore préparé de la bouillie de riz parce que j'aime ça quand je suis malade.

Une réflexion sur les limites :

Mes limites avec ma fille sont peut-être trop perméables. Voici quelques points de friction occasionnels.

  • Surstimulation à cause du chant ou du bavardage
  • Temps ou énergie, par exemple si elle veut passer du temps avec moi et que je suis préoccupée ou fatiguée
  • Mentalement, à cause des interruptions ou des demandes, ou aussi si je fais de ses problèmes les miens
  • Émotionnellement, par exemple si elle est en colère et veut me faire mal
  • Physiquement, par exemple si elle se blottit contre moi, ce qui m'empêche de taper sur l'ordinateur ou de bien dormir; ou si elle est en colère et me pousse

Quelles seraient les meilleures limites ?

  • Avant de me sentir surstimulée, je peux lui demander d'être un peu plus tranquille.
  • Pour le temps, je peux mettre un minuteur.
  • Mentalement, la plupart de mes tâches peuvent être mises de côté. Elle veut passer du temps avec moi, c'est génial et je sais que ce temps passe rapidement. Quant à ses problèmes… Il est difficile pour la plupart des parents de voir que leurs enfants sont en difficulté. Mais si j'essaie de résoudre ses problèmes à sa place (par exemple, son ennui à l'école), en fait ça revient à dire qu'elle ne peut pas les résoudre toute seule. Le moment idéal pour apprendre à résoudre des problèmes est celui où les problèmes sont petits.
  • Émotionnellement ou physiquement : si elle est en colère, il n'y a pas grand-chose que je puisse faire. Elle peut se calmer dans sa chambre ou bien je peux me calmer dans ma chambre. Il est important que ma fille apprenne qu'elle doit gérer ses propres émotions.

Le fait de fixer de meilleures limites nous aidera parce que j'aurai plus d'énergie et je serai plus heureuse, et elle sera plus compétente dans la vie et dans les interactions.

Mais c'est un peu difficile pour moi parce que je pense souvent pouvoir m'adapter, et le temps file. Elle grandira bientôt. Je doute aussi parfois de connaître la bonne voie.

J'ai mis en pratique le maintien de mes limites. Elle a fini par se fatiguer en regardant la télévision, donc elle a voulu jouer à un jeu de société avec moi. Mais je n'ai pas voulu jouer aux jeux qu'elle proposait parce qu'ils demandaient trop de concentration. De son côté, elle n'a pas voulu jouer aux jeux que je proposais parce qu'ils étaient trop simples. J'ai aussi voulu finir de modifier mon logiciel pour l'infolettre. J'ai mis un minuteur pour une demi-heure et je suis allée au sous-sol pour y travailler. Elle m'a demandé un câlin. J'ai dit que je n'étais pas libre mais que je pourrais lui faire un câlin après avoir fini mon travail. Elle est remontée à l'étage et s'est amusée. Comme promis, après avoir fini, je lui ai fait un câlin pendant qu'elle regardait la télévision. J'ai proposé de jouer avec elle, mais à ce moment-là, elle n'a pas voulu jouer. C'est la vie. Nous avons regardé la télévision ensemble.

Concernant mes limites avec les autres, je pense qu'en ce moment, je voudrais devenir plus prudente au lieu de faire confiance aux autres. C'est vrai que c'est facile de ressentir ça quand on est malade. Si j'avais eu une machine à remonter le temps, je n'aurais pas invité son amie. Les moments plus optimistes me manquent, mais on en est là. Peut-être qu'un jour, se voir en vrai sera plus facile, mais pour l'instant, il faudra se contenter d'être en ligne ou à l'extérieur.

Dimanche, le vingt-cinq janvier

Nous continuons d'être malades, mais je pense que ma fille va mieux. Mon mari et moi portons des masques dans les pièces communes chez nous pour réduire les risques. Nous y sommes habitués. La fois où mon mari a eu le COVID, ma fille et moi avons réussi à l'éviter.

J'ai créé des fonctions pour corriger la grammaire en français sous Emacs avec flyspell combiné à gptel (pour le modèle d'IA openai/gpt-oss-120b sur groq.com) ou à Spookfox (pour l'interface web gratuite de Google Gemini). Je pense que les résultats de Gemini sont meilleurs que ceux d'OpenAI/gpt-oss-120b, mais l'utilisation d'OpenAI/gpt-oss-120b présente aussi un avantage, car je n'ai pas besoin d'appuyer sur une touche une fois le résultat prêt. Comme j'apprends le français, je ne veux pas qu'Emacs réécrive mon texte automatiquement. Je veux souligner les erreurs, afficher les explications et les corriger moi-même.

À cause du froid extrême et de l'énorme quantité de neige, le cours de patinage de ma fille a été annulé, donc elle est restée une vraie pantouflarde toute la journée. Malgré la neige, je suis sortie pour déneiger. Il valait mieux le faire quand la neige était légère. J'ai déneigé nos allées, la terrasse, le porche, les marches et les trottoirs même jusqu'à la rue d'à côté parce que des voisins ne déneigent pas souvent bien les leurs. Chaque fois que je finissais le travail, il tombait davantage de neige, donc je recommençais. Deux heures ! La neige continuait à tomber. Je tournais toujours en rond. On dirait que rien n'a été déneigé du tout. Nous manquons d'espace pour entasser la neige dans la cour avant. Heureusement, la cour arrière a plus d'espace, donc je peux transporter la neige avec une luge jusqu'au jardin arrière si c'est nécessaire. En tout cas, c'est un bon exercice. Une fois que je suis rentrée, mon mari est sorti et a aussi déneigé.

Ma sœur qui habite aux Pays-Bas m'a appelée parce que Donjons et Dragons intéressait l'une de ses filles et elle se demande si ma fille veut y jouer avec elles et avec notre autre sœur qui était souvent la meneuse de jeu quand nous étions plus jeunes. Je pense que c'est une bonne occasion de créer des liens entre les cousines. Nous allons organiser une partie. Ma sœur a aussi apprécié le discours du Premier ministre du Canada, Mark Carney, à Davos. Elle pense que c'est un bon modèle pour sa fille qui subit du harcèlement à l'école.

Prononciation

  • 00:00 Petit à petit, je m'améliore. (mah mee lee orh /​a.me.ljɔʁ/)
  • 00:05 elle est dans un endroit (ehn draw /​ɑ̃.dʁwa/​) sûr au lieu de faire l'école buissonnière
  • 00:13 je veux la laisser décider autant que possible, particulièrement quand elle le veut (veu) vraiment.
  • 00:21 C'est normal qu'elle ait envie de plus d'indépendance (dein day pehn dense) à l'adolescence.
  • 00:29 partager mes idées et mon travail peut (peuh /​pø/​) aider d'autres personnes et lancer des conversations.
  • 00:37 écrire davantage en français et améliorer mon environnement (ahn vee rohn mahn /​ɑ̃.vi.ʁɔn.mɑ̃/​) à cet effet
  • 00:44 J'apprécie la stimulation mentale (mehn tahl /​mɑ̃.tal/​) d'écrire dans une autre langue. 00:50 Beaucoup de gens apprennent (ah prenne) d'autres langues, donc nous pouvons nous aider.
  • 00:57 j'ai vaincu (vahn ku /​vɛ̃.ky/​) le champion d'arène d'Argenta
  • 01:01 donc ma fille (fee /​fij/​) n'a pas voulu participer
  • 01:05 Pour le moment, mon logiciel peut encore afficher un rapport des livres qui (kee /​ki/​) doivent être rendus.
  • 01:15 Ma fille a dit qu'elle voulait une journée tranquille (tran keel /​tʁɑ̃.kil/​) demain, et j'ai totalement approuvé.
  • 01:23 J'entraîne (jen traine /​ɑ̃.tʁɛn/​) une bénévole pour l'infolettre de Bike Brigade,
  • 01:28 j'ai emprunté beaucoup de livres pour ma fille (fee /​fij/​) pour les prochains jours à la maison.
  • 01:35 J'ai mis à jour (meez a jour /​mi.za.ʒuʁ/​) des données pour mon client.
  • 01:39 Ma fille a continué à se sentir malade, avec un mal de gorge (hard g /​ɡɔʁʒ/​) et des éternuements.
  • 01:47 Avant de me sentir surstimulée, je peux (peuh /​pø/​) lui demander d'être un peu (peuh /​pø/​) plus tranquille.
View org source for this post