Open tommyod opened 4 years ago
Hi @tommyod Very nice project. For me personally I'm interested in planning strength training, but only if there is functionality to also keep track of progress. I've always been doing that in many excel sheets. Do you have any ambition to add workout logging functionality to the library? E.g. my progression depends on the amount of reps I finished and RPE. Depending on your ambitions I'd be open for collaboration.
Hi! Thanks @Timonsc. I'll try to answer your question.
I don't see how tracking progress closely is something streprogen can clearly beat an Excel sheet at. It's essentially just storing information one way or another: either in a Python data structure or in a spreadsheet application. To me it seems that the work of closely logging progress is: (1) deciding how much and how often to log and (2) actually inputting the data to the computer. I don't see how streprogen can make that process more efficient.
I would be interested in hearing more about your use case, but workout logging is not a priority that I have. If there's an elegant way to automate, optimize or improve workout logging using Python I would of course accept a PR.
Well I saw some opportunities to implement a feedback loop in order to adapt the training to how well a trainee is performing. Imagine that training is too easy (bigger increase would be optimal), or the trainee is failing at the predicted rate of progression (smaller or no increase would be better). That is how I train at least. And of course this can be done in excel, I'm already doing it. It's all just for fun/elegance/practice...
Personally I do the following:
I store all my programs, so I implicitly have a log how my strength levels. Over the years I've learned pretty well how much progression and what weights are reasonable, so I rarely have to go through this loop. If I do, I usually adjust the weights very slightly.
For logging, you'd need local files or a local database to store records in. And you'd have to interact with it through Python. I think Excel is easier for most people. To be clear - I'm not necessarily against your general idea, but the elegance would have to be concertized for it to be worth implementing.
First of all, congrats for such a great tool and thank you. I have looking for something similar for some time. I have a couple of ideas I want to work on:
I want to develop that User interface and user your work. I would like to ask you if this is something interesting for you and if you will be open to contribute. The idea would be to have something similar to https://github.com/wger-project/wger with less features, but more useful (thanks to streprogen).
Thank you very much.
Thanks for reaching out @RPallas92, I really appreciate it! :+1:
Having a web interface would be great. I'm obviously biased, but I really think streprogen with sensible parameters beats almost anything people come up with for medium/long term strength progress planning. Having a web interface might make it easier to use, and therefore help people.
Unfortunately I don't have time to actively help with a web app (even if I did, I have little experience and would be of little use). My primary interest is the Python API and the mathematics used (the equations for modeling and the optimization routines used internally).
If you want to build something on top of streprogen I am very positive. I can help with improving and fixing issues in streprogen itself and I can make comments, but I won't have time to help code the user interface. The bullet points you list seem sensible. A graphical user interface with step-by-step explanations sitting on top of streprogen, and perhaps automating PDF generation, would help a lot in making it more usable and visual. Simple tracking seems sensible. I would probably start out simple and get some feedback before implementing advanced ideas.
Hope this answers your questions. Keep me updated! Let me know if anything is unclear.
@RPallas92 @Timonsc @jmromanos @josete89 and other interested parties: version 3.0.0 is out.
It includes:
min_reps
and max_reps
on the Program
object (previously only on DynamicExercise
).I also changed the default parameters, so the release is not fully backwards compatible. Mostly the API is the same though :)
Thanks @tommyod, this release looks very good! Some weeks ago, I was thinking on how to use streprogen to plan different blocks (volume, strength, peaking) Do you usually use it for programming blocks?
Thank you
cc: @jmromanos @josete89
@RPallas92 streprogen basically allows you to do periodization/blocks for 3 variables: volume (total number of reps), intensity (repetition weighted average of % of 1RM) and strength level. I manipulate all 3 in my training.
It's not super easy to get started. I wanted to allow arbitrary functions for periodization schemes, as this is the most general approach. So you have to supply functions to the Program
instance. The drawback is that sending functions into objects is probably difficult to comprehend for a non-programmer. That being said, there are example notebooks :)
Quick history of streprogen for the interested
Streprogen is something that I've worked with for many years, in several languages as with several interfaces. At one point it was a website built in PHP, at one point it was a website built in Python, and so forth.
I always made it for myself, to automate my own training regimes. It's also used by my real-life circle of friends with the same interest. As I
it's converged to what it is today: a Python package with a (hopefully) simple AI, yet a powerful engine in the background.
The future plan
I have three main objectives that I want to accomplish over the next months:
Apart from those three goals, it's the common maintenance: fixing typos, making sure code is clean, adding features if needed, etc.
Anyone is welcome to contribute to any of the above. I'll of course add your name as a contributor.