complete-computing-environment/spaced_reptition_study.org

4.5 KiB

Spaced Repetition Study

flashcard based learning, a Knowledge Management system designed around the idea that recall is best solidified if it's done as close to forgetting as possible.

Spaced repetition is an evidence-based learning technique that is usually performed with flashcards. Newly introduced and more difficult flashcards are shown more frequently while older and less difficult flashcards are shown less frequently in order to exploit the psychological spacing effect. The use of spaced repetition has been shown to increase rate of learning.

Anki is the go-to digital solution for general study these days, I use org-drill as it works best with my Knowledge Management system, see Toki Pona: The Language of Good for example. Wani Kani is what I use for Japanese Study and it is also spaced repetition.

(provide 'cce/org-fc)
(use-package org-fc
  :ensure t
  :custom
  (org-fc-directories '("~/org/"))
  (org-fc-review-history-file (expand-file-name "~/org/org-fc-reviews.tsv"))
  <<org-fc-contexts>>
  :config
  (require 'org-fc-hydra)
  (defalias 'srs #'org-fc-dashboard)
  (evil-define-minor-mode-key '(normal insert emacs) 'org-fc-review-flip-mode
    (kbd "RET") 'org-fc-review-flip
    (kbd "n") 'org-fc-review-flip
    (kbd "s") 'org-fc-review-suspend-card
    (kbd "q") 'org-fc-review-quit)
  
  (evil-define-minor-mode-key '(normal insert emacs) 'org-fc-review-rate-mode
    (kbd "a") 'org-fc-review-rate-again
    (kbd "h") 'org-fc-review-rate-hard
    (kbd "g") 'org-fc-review-rate-good
    (kbd "e") 'org-fc-review-rate-easy
    (kbd "s") 'org-fc-review-suspend-card
    (kbd "q") 'org-fc-review-quit))
org-fc = let
  versions = pkgs.lib.pkgVersions;
in epkgs.melpaBuild {
  pname = "org-fc";
  version = "20220823.2107";
  commit = versions.org-fc.rev;

  src = pkgs.callPackage versions.org-fc.src {};

  recipe = pkgs.writeText "recipe" ''
    (org-fc
     :files (:defaults "awk")
     :repo "l3kn/org-fc"
     :fetcher github)
  '';

  packageRequires = [ pkgs.gawk epkgs.hydra pkgs.findutils ];

  meta = {
    homepage = "https://www.leonrische.me/fc/index.html";
    license = lib.licenses.gpl3Plus;
  };
};
{ pkgs, ... }:

{
  home.packages = with pkgs; [ findutils gawk ];
}

Some Custom SRS contexts

Sometimes it's nice to focus on one thing at a time. org-fc gives us custom contexts and here's how I use it:

(setq org-tags-exclude-from-inheritance '("kanji" "jokugo"))
(setq org-fc-custom-contexts
      '((japanese . (:filter (and (tag "japanese")
                                  (tag "vocabulary"))))
        (buddhism . (:filter (tag "Buddhism")))
        (trivia . (:filter (tag "trivia")))
        (kanji . (:filter (or (tag "jokugo") (tag "kanji"))))
        (poetry . (:filter (tag "poem")))
        (tokipona . (:filter (tag "tokipona")))
        (row . (:filter (not (tag "vocabulary"))))))

Cards to Add

NEXT [#A] PNW Trees

NEXT [#A] PNW birds

NEXT [#A] PNW native plants

NEXT [#B] iNaturalist observations

NEXT take better notes