#memory #learning #doomsday

bin+lib practicestuff

Simple CLI trainer for improving calculation and memorisation skills

6 releases (3 breaking)

new 0.4.1 Dec 7, 2024
0.4.0 Dec 7, 2024
0.3.2 Dec 7, 2024
0.2.0 Dec 7, 2024
0.1.0 Dec 6, 2024

#244 in Math

Download history 396/week @ 2024-12-05

396 downloads per month

MIT license

340KB
4K SLoC

practicestuff

preview

practicestuff is a CLI app designed to help you practise skills by asking questions and checking your answers. At the end, you'll see a number of correct answers, as well as some statistics. You can stop early by pressing Ctrl+C.

The application should work on all platforms.

Current list of skills:

  • powers of a number
  • multiplication table (times table)
  • doomsday algorithm

Installation

To install the application, you need cargo. Then, run:

cargo install practicestuff

Usage

If you're fine with the defaults, choose a skill to practise (e.g., powers) and simply run:

practicestuff powers

You'll be presented with 20 questions and at the end you'll see how it went. If you don't like the defaults, you can adjust some settings. To display configuration options use help:

# General configuration options and available commands/skills
practicestuff --help

# Powers specific options
practicestuff powers --help

Configuration options

The application is somewhat configurable. Following options are available:

  • Custom number of questions (with a possibility of endless mode)
  • Disable statistics in-between questions
  • Change what happens on incorrect answer (go to the next question, show correct answer and go to the next question or repeat until correct)

Skills

Powers

Allows to practise powers. Configurable parameters include:

  • base (default: 2)
  • exponent range (default: 1-16)

Times table

Allows to practise multiplications. Factors' range is configurable (default: 1-10 (regular times table)).

Doomsday algorithm

Allows to practise calculating the day of the week for a given date. Year range is configurable. By default, the application presents questions with dates ranging from ~1900 to ~2100, with a slight chance to go beyond. When either lower or upper limit is set, the date is picked randomly with equal probability for each year.

Rationale

I created this simple app because I wanted to learn and practice the Doomsday algorithm. Later I thought that it might be cool not to limit the app to just one skill, but allow extensible architecture. I also didn't want to use any external libraries for argument parsing, so I implemented that myself as well.

What's next & bug reports

The application in its current state suits my needs, but I'm open for proposals, either for new skills to practise or more configurability. If you feel that the app lacks something, feel free to open an issue or a PR! I'd be more than happy.

As for the bugs, there are some for sure. If you see one, report it!

Dependencies

~5–13MB
~181K SLoC