6 points par GN⁺ 2025-12-15 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Hashcards est une application de répétition espacée (spaced repetition) local-first, similaire à Anki ou Mochi, mais qui utilise des fichiers Markdown au lieu d’une base de données
  • Chaque flashcard est rédigée en texte brut et prend en charge les formats question (Q), réponse (A) et cloze deletion (C), avec une planification des révisions gérée par l’algorithme FSRS
  • Les données des cartes sont identifiées par le hash du texte, tandis que l’historique de révision est stocké dans SQLite ; le versioning et le partage sont possibles via un dépôt Git
  • Le projet a été conçu pour résoudre les problèmes de l’interface complexe d’Anki et de l’algorithme inefficace de Mochi, avec pour objectif de réduire au minimum la friction de saisie et garantir une propriété totale des données
  • La combinaison d’une base Markdown, de l’intégration Git et du planificateur FSRS propose une nouvelle approche permettant aux développeurs et aux apprenants de mettre en place une gestion de l’apprentissage transparente et automatisée

Présentation de Hashcards

  • Hashcards est un système open source de répétition espacée exécuté en local, offrant une expérience d’apprentissage proche de celle d’Anki ou de Mochi
    • Le planning de révision est géré par l’algorithme FSRS (Free Spaced Repetition Scheduler)
    • L’interface web s’exécute sur localhost:8000, et l’historique des révisions est stocké dans une base de données SQLite
  • Sa différence clé est une architecture qui n’utilise pas de base de données pour les cartes, celles-ci étant gérées sous forme de fichiers Markdown
    • Exemple : Cards/Math.md, Cards/Chemistry.md, etc.
    • Chaque fichier contient plusieurs cartes Q/A ou cartes à trous (C)

Structure des cartes basée sur du texte

  • Les flashcards sont écrites dans un format texte simple
    • Q: pour la question, A: pour la réponse, C: pour la forme cloze deletion
    • Exemple :
      Q: What is the role of synaptic vesicles?
      A: They store neurotransmitters for release at the synaptic terminal.
      C: Speech is [produced] in [Broca's] area.
      
  • Comme la syntaxe Markdown peut être utilisée telle quelle, l’expérience se rapproche de la prise de notes classique
  • La commande pour lancer une révision prend la forme $ hashcards drill <path>

Philosophie de conception et avantages

  • La conception de Hashcards donne la priorité absolue à la « rédaction de cartes sans friction »
    • Si la saisie et l’édition des cartes sont rapides et intuitives, le volume d’apprentissage augmente
    • L’utilisation de crochets ([]) permet d’accélérer la saisie des cartes à trous (sans nécessiter la touche Shift)
  • L’intégration avec un dépôt Git apporte notamment les avantages suivants
    • gestion de versions, suivi des modifications, collaboration et partage public
    • recherche et modification des cartes via des outils Unix standard ou des scripts
    • génération automatique de cartes à partir de données structurées comme du CSV
  • Les cartes sont identifiées par le hash du texte, ce qui permet une référence stable fondée sur le contenu

Évaluation des systèmes existants (Anki, Mochi)

  • Anki
    • Points forts : open source, prise en charge de FSRS, statistiques riches, génération automatique de cartes (note types)
    • Points faibles : interface complexe et peu intuitive, inefficacité de la saisie WYSIWYG, dépendance aux plugins
  • Mochi
    • Points forts : interface épurée, saisie basée sur Markdown, navigation centrée sur les raccourcis clavier
    • Points faibles : syntaxe de cloze deletion verbeuse, absence de note types, algorithme simpliste
    • L’algorithme existant repose sur un système simple de multiplicateurs, inefficace pour la rétention en mémoire à long terme
    • Une prise en charge bêta de FSRS a été ajoutée récemment, mais les problèmes de planification des cartes existantes persistent

Implémentation et workflow de Hashcards

  • L’utilisateur peut écrire et modifier directement les cartes dans un éditeur de texte
    • Exemple : Q: What is the atomic number of carbon? / A: 6
    • Les cartes sur plusieurs lignes ou les formats complexes peuvent aussi être exprimés naturellement dans Markdown
  • Il est facile de modifier les cartes à mesure que les connaissances évoluent
    • En organisant les cartes dans des fichiers Markdown par chapitre, on peut les aligner sur la structure d’un manuel
    • Le fait de placer des concepts liés dans des cartes adjacentes améliore l’efficacité de navigation lors des modifications
  • La gestion basée sur Git permet d’utiliser les fonctions suivantes
    • commits, branches, merges, PR et tout l’outillage complet de gestion de versions
    • partage public de l’apprentissage et collaboration via des dépôts publics

Synergie de l’approche textuelle

  • Génération automatique et navigation dans les cartes possibles grâce aux macros d’éditeur
  • Statistiques sur les cartes et modifications par lots possibles via des commandes Unix (wc, awk, etc.)
  • Génération automatique de cartes à partir de données externes comme du CSV à l’aide de scripts et Makefile
  • La publication sur GitHub permet de partager son parcours d’apprentissage personnel, contribuant ainsi à diffuser une culture de l’apprentissage

Conclusion

  • Hashcards est une nouvelle forme de système de répétition espacée qui combine un format texte simple, un algorithme de planification avancé (FSRS) et une intégration Git
  • Il vise à réduire au minimum la friction de création des cartes, à garantir la pleine propriété des données et à offrir à la fois automatisation et extensibilité
  • L’outil est présenté comme un environnement d’apprentissage transparent et contrôlable pour les développeurs comme pour les apprenants

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.