~swflint/random-ask

Randomly ask the user specific questions for productivity data collection
Prepare initial release
Add initial implementation

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~swflint/random-ask
read/write
git@git.sr.ht:~swflint/random-ask

You can also use your local clone with git send-email.

#random-ask.el

This library provides a way to randomly ask yourself a question to collect productivity data. The primary entry point is the macro define-asker. It may be called as follows:

(define-asker current-focus ("~/focus-data.csv" "On a scale of 1 (not focused) to 5 (deeply focused), what is your current level of focus?")
              :response-type (likert :range 5)
              :min-frequency 3600       ;no more often than hourly
              :max-frequency 7200       ;No less frequently than every two
              :pre-prompt (beep))

This defines an asker current-focus, and the restart and pause commands, restart-current-focus and pause-current-focus, respectively. When current-focus is run (automatically), the user's response (and a timestamp) will be written to the CSV file ~/focus-data.csv.

Timing generally is controlled by the arguments min-frequency and max-frequency. These are the minimum and maximum number of seconds between asking. The initial time to ask is controlled by initial-offset and min-initial which performs (+ initial-offset (random min-initial)).

Prompting types include (see also random-ask-generate-requester):

  • likert
  • number
  • character
  • color
  • answer
  • custom