Wiki

Memory Recipe

Principle

Generate an RSS feed linking periodically to tagged pages of a wiki in order have optimal proper memorization.

Motivation

Minimize memory biases, Recall bias, improve Long-term memory and gracefully handle Memory and aging.

Usage

Installation

  1. Download, rename to memorization.php and load the recipe with include_once('cookbook/memorization.php');
  2. Add the date you want to start working on a page (after finishing writing down the notes of a book for example) by adding (:startrecall: 25/12/2010 :)(d/m/Y format) anywhere in the page.
    1. Add this to every page you want to start memorizing
  3. Open the page Path:?action=memorization in your feed reader.
  4. Read the new items as they appear

Tweaking notes

  1. if it's the first time you use the recipe and want to add notes finished today "cheat" by using the date of the day before in the startrecall variable
    1. If you do not, you'll have to wait the next day to see the result as it's useless to have a recall the same day (but you can if you want to by changing the recall intervals, see below).
  2. personalize the message to something more appropriate for you
    1. edit the recipe file to change the content of <description>
  3. change the recall intervals based on your needs and personality
    1. edit the recipe file to change the content of $datestorecall

Organization and principle

  1. the organization of your notes and recalls is up to you
    1. e.g. if you want to recall an entire set of books
      1. instead of using the date on each page of the set, create a new page with links to the books, eventually instructions for yourself, and the recall date
    2. consider instead of just links in order to make proper revision pages (cf PmWiki:IncludeOtherPages)
    3. in general consider PmWiki:PageLists and PmWiki:PageDirectives to build powerful recalling pages embedding other pages with your notes
  2. the recipe doesn't check when you edit or note, it only checks the date
    1. if it's today, update the feed, else do nothing
    2. this implies that you should use the feed reader (as it's supposed to be used) to bump/start/mark read notification
  3. the content you want to memorize does not have to be limited to your own wiki
    1. create a page (eventually in a specific Memorization/ group), link to the content you want to memorize, add your own justification and motivation about why it is important to you then finally add the startrecall keyword with the date you want to start memorizing.

To do

  1. push on RCS
  2. add the GPL license
    1. Felipe said AGPL was more adapted
  3. render part of the page
    1. replace <description> by a per page PmWiki:FmtPageName
    2. eventually the entire page
  4. support intervals per page
  5. support more complex patterns (with + * ...) per page
  6. display a default item with instruction rather than the error msg
    1. <item><description>tsss. set it up man, add startrecall in pages!</description></item>
  7. page a specific feed per page
    1. render s trough..? ?action=memorization&feedname=myfeed
  8. add the generator
    1. <generator> Generated by http://fabien.benetou.fr/Wiki/MemoryRecipe for PmWiki </generator>
  9. filter (via parameter by URL) by
    1. group
      1. ReadingNotes
    2. specific page
      1. http://fabien.benetou.fr/Content/Vocabulary
      2. http://wiki.seedea.org/Content/Newconcepts
  10. caching
    1. use the mechanism used in the processing recipe
  11. handle permission
    1. anybody can mess with your memory feed if they can edit the wiki
  12. the recipe is oblivious to startrecall changes
    1. this is not a bad things, it can be used to "push" up the recall date after important changes
  13. use last time read from PersonalInformationStream#Finished to generate reminders from books studied before this recipe
  14. add in the <description> or <comment> a notification if no edit was done on that page during the last X days (suggesting to update the content)
    1. consider other productive patterns, including Cognition#DailyExercisesFeed
    2. eventually generate test on the fly
      1. not giving the book title but instead asking from which book this came from and providing a (locally redirected in order to hide the solution) link to the solution
      2. asking to sum the book up then storing the result and only after, providing a look to the book
    3. since tests can not be known (or at least predicted too accurately) by the note author consider
      1. Amazon Turk
      2. friends
      3. existing communities (book readers, Wikiversity, ...)
  15. integrate a visited link system
    1. grep beta.bloglines.com /var/log/lighttpd/access.log | grep ReadingNotes, works well but limited to the current log (see man:logrotate)
      1. grep bloglines /var/log/lighttpd/access.log | grep -v action=
      2. a non-used parameters with the date should thus be added to know from which recall days the reading was actually requested
    2. this is usually handled by the RSS client but that doesn't provide a nice integration with the wiki
    3. each link to the page is modified to be handled by modifying a variable like {$:LastTimeMemoryRead} when clicked
      1. probably using a regex+pageUpdate
  16. check Reward to be more motivating

Done

  • extended to ~273 years (100 000 days)

To do for my own usage

Tests

Check Path:?action=memorization and change the date of startrecall

Demonstration feed

which should display items from

Inspired by

Other possible scripts derived from this one

Reading rhythm

  1. me forcer a avoir un rythme de lecture plus consistent
    1. si non fini et date de derniere lecture de chaque livre > X jours
      1. suggerer de continuer la lecture

Event preparation

  • revert recipe
    • future date
    • inverted pattern
    • if ( future date - current pattern item ( inverted pattern ) == today )
      • push

Consider blending the 2 and thus recalling content in as part of the preparation of an event.

Tests

Check Path:?action=preparation and change the date of startprepare

Demonstration feed

Date of this even should be the 30th but changed just for testing purposes.

which should display items from

Alternatives

  • SuperMemo Introduction to fast learning
  • Mnemosyne Project flash-card tool which optimizes your learning process.
  • Anki friendly, intelligent flashcards

See also

Green Marinee theme adapted by David Gilbert, powered by PmWiki