Elo Todo list
A small commandline tool to manage a TODO list. Directly inpired and in fact compatible with Elo Anything!, but using a TUI instead of a browser-based implementation.
The key idea and problem addressed here is:
- Todo lists aways grow and never shrink
- If you add stuff at the top, old stuff moves out of view and gets forgotten
- If you add stuff at the bottom, they never get done
- If you spend all your time reordering the list, you spend precious little time actually doing anything.
Instead, this list automatically sorts itself for you, by continuously scoring tasks with an Elo rating system. This is made as frictionless as possible, simply always offering you a scoring choice at the top of the screen. If you do so conscientiously, your TODO list will always be in importance order.
eloTodo requires an installation of Common Lisp (currently, only sbcl has been tested) and quicklisp. With these installed, you can run it directly from the sources as
sbcl --eval "(asdf:load-asd \"$(pwd)/elotodo.asd\")" --eval "(ql:quickload :eloTodo)" --eval "(eloTodo:main)"
Alternatively, you can compile a binary executable by running
sbcl --load make.lisp
which should produce an eloTodo or eloTodo.exe file for your platform.
Up/Down: Move up and down the ranking listEntertoggle the currently selected item to be "done" or "undone"d/uexplicitly set the currently selected item "done" or "undone"Left/l/Right/rchoose the left or right item of the current competition, respectivelySpaceskip the current competition, randomly select two new itemsqquitShift-Lreload Todo-list and rankings from the input file. (This also clears all checked items from the list)a/nAdd a new item to the list.
The json file is automatically updated and saved on every change.
eloTodo is implemented in Common Lisp, using CL-TUI for its user interface and jzon for reading and writing JSON.
