reddit / emacs

How to manage my fitness data in Org Mode?

waterstrider123 · 2022-11-03 01:36
I wish to record my exercise performance, but I cannot bring my laptop with me to the gym and record my performance nor do I wish to write it down and then insert it into my fitness.org file since that sounds cumbersome. My current process is to use Orgzly and sync my fitness.org file with my phone and I simply record everything at the gym from my phone as the following example with separate headings for each exercise: * Pull Ups 2022-10-21,5,10,10,15,20 2022-10-31,10,10,15,15,20 * Bench Press 2022-10-24,90,95,100,110,100 2022-10-28,95,100,100,110,100 I did attempt to use tables, but they don't look easy to use in Orgzly so I am currently doing the above since it is easy to input into Orgzly on my phone. However, now that I have collected several months of data for all my exercises, I wish to produce a graph of my progress for each of the headings and I am unsure how to do this in the same fitness.org file since I recorded my data as csv instead of in an org table. In addition, I was also wondering how to plot the same data from multiple headings into a single graph using my above format? I am curious to see what others are doing and if there is a better way to track performance that can sync with my files on my computer while being in a format that is easy to work with.
akater · 2022-11-03 03:09
Let me share my setup. In the gym, I start at an ellipsoid. While at it, I go to Termux Emacs on my phone, find Org file `gym-journal.org`. It's a datetree. I add today to the datetree. I check the previous day to figure out what shourd I do today — it goes in a cycle: chest & shoulders, back, hands, abs, legs. So with `C-r` I find, say, my latest “arms day”. I copy it to today. It looks somewhat like this: ```org *** 2022-10-26 :PROPERTIES: :side-plank: 50s+50s+50s :seated-dumbbells-curl-one-sided: 8x12+8x12+8x12 :dumbbell-press: 12x28+12x28+12x32+12x32 :deadlift: 12x20+12x20+12x24+12x24 :decline-crunch: 15+15+12 :bicep-curl: 12x20+12x20+10x20 :END: arms day rowing 100kcal @ 8:17min 724.3 kcal/h ``` With `org-set-property`, I then alter the exercise list. Helm prioritizes candidates just the way I want. And that's it. I then move the point through summands as I go through today's gym routine.
polaris64 · 2022-11-03 07:32
I wrote [a blog post](https://blog.polaris64.net/post/emacs-using-org-mode-to-track-exercises/) about doing this, perhaps that will help!
dm_g · 2022-11-04 00:04
Do you always do the same number of reps? I have been using a simple table. Then I use R scripts to do the analysis, including plotting.
waterstrider123 · 2022-11-04 00:39
For certain exercises I always do the same number of reps. But I am unsure how to track the weights and reps simultaneous for a particular set which I hope to figure out later on. I just figured out I can convert the csv to a table using the `org-table-convert-region` and then use org-babel with a python script to successfully plot the table.
Extension_Try_6870 · 2022-11-04 00:53
I just have a simple table for each day with the exercice name as row name and set number as column name. In each cells I have something like (10) 12. The number inside parenthesis is the weight and the other one is the repetition number. I don't really need to plot anything.
dm_g · 2022-11-04 03:11
Don't fuzz too much about how to "record" but worry more about how to process. Tables are amazingly easy to record. If you make it too difficult, you won't record. For example, if you have a complex rep, record it inside a table cell with some sort of format that you can easily decode in Python: for example: ​ | 2022-03-04 | typea;10;5;8 | typeb;30;0.5;10;10;10| etc. Then you only have to write the code to decode your format once. The key to building the habit of recording data every time is to make it easy.