Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First exercise of superset is output as "superset: false" in Playground #1

Closed
daveliepmann opened this issue Jan 28, 2021 · 4 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@daveliepmann
Copy link

The first exercise of a superset is not classified as a superset in the Playground. Is this intended behavior?

Input, using the 20.4 Crossfit example:

@ 1/1/2021

Deadlift: 255 21r 255 15r 255 9r
+ Handstand Push-Up: 21r 15r 9r

Deadlift: 315 21r 315 15r 315 9r
+ Handstand Walk: 50 50 50

JSON output:

{
  "date": "1/1/2021",
  "metadata": {},
  "movements": [
    {
      "metadata": {},
      "name": "Deadlift",
      "notes": [],
      "performances": [
        {
          "fails": 0,
          "load": 255,
          "metadata": {},
          "reps": 21,
          "notes": [],
          "sets": 1,
          "sequence": 0
        },
        {
          "fails": 0,
          "load": 255,
          "metadata": {},
          "reps": 15,
          "notes": [],
          "sets": 1,
          "sequence": 1
        },
        {
          "fails": 0,
          "load": 255,
          "metadata": {},
          "reps": 9,
          "notes": [],
          "sets": 1,
          "sequence": 2
        }
      ],
      "sequence": 0,
      "superset": false
    },
    {
      "metadata": {},
      "name": "Handstand Push-Up",
      "notes": [],
      "performances": [
        {
          "fails": 0,
          "load": 0,
          "metadata": {},
          "reps": 9,
          "notes": [],
          "sets": 1,
          "sequence": 0
        }
      ],
      "sequence": 1,
      "superset": true
    },
    {
      "metadata": {},
      "name": "Deadlift",
      "notes": [],
      "performances": [
        {
          "fails": 0,
          "load": 315,
          "metadata": {},
          "reps": 21,
          "notes": [],
          "sets": 1,
          "sequence": 0
        },
        {
          "fails": 0,
          "load": 315,
          "metadata": {},
          "reps": 15,
          "notes": [],
          "sets": 1,
          "sequence": 1
        },
        {
          "fails": 0,
          "load": 315,
          "metadata": {},
          "reps": 9,
          "notes": [],
          "sets": 1,
          "sequence": 2
        }
      ],
      "sequence": 2,
      "superset": false
    },
    {
      "metadata": {},
      "name": "Handstand Walk",
      "notes": [],
      "performances": [
        {
          "fails": 0,
          "load": 50,
          "metadata": {},
          "reps": 1,
          "notes": [],
          "sets": 1,
          "sequence": 0
        },
        {
          "fails": 0,
          "load": 50,
          "metadata": {},
          "reps": 1,
          "notes": [],
          "sets": 1,
          "sequence": 1
        },
        {
          "fails": 0,
          "load": 50,
          "metadata": {},
          "reps": 1,
          "notes": [],
          "sets": 1,
          "sequence": 2
        }
      ],
      "sequence": 3,
      "superset": true
    }
  ],
  "notes": []
}

I've replicated this with supersets of greater than 2 movements, and with other examples (like the Bi's-and-Tri's), and it appears consistent.

@scottt2
Copy link
Member

scottt2 commented Jan 28, 2021

@daveliepmann Thanks so much for filing!

That is intended behavior but that being said, I am not at all wed to that being it.

For the first two years of iterating on this, it has been entirely myself and in the last 6 or so month my wife using Traindown. I have a decent sense of what I want for ergonomics and UX for this but not a whole lot on how folks view what the output should be.

So I guess this is a question for you--does it feel more intuitive to have all movements marked as a superset: true? As I type that, I can see your viewpoint and also agree that it makes more sense to mark the whole loop of exercises as superset: true.

For reference, the original thinking was there was a "primary" movement but I don't find that to be useful in practice.

@scottt2 scottt2 self-assigned this Jan 28, 2021
@daveliepmann
Copy link
Author

I think that supersets are a subset of circuits, that is to say an ordered, looping collection of exercises. There might be primary movements, timed rest periods, low-intensity active-rest exercises and so on, but the role of the circuit/superset is simply to group arbitrary exercises in a loop. To further weaken the idea of the primary exercise not being part of the superset, consider training techniques where the primary movement comes last, such as when using box jumps to potentiate muscles before a squat set, or isolation exercises to pre-exhaust specific muscles before a compound movement. The potentiation or pre-exhaustion movements are incidental to the main goal.

So my overall view is that circuits/supersets should be an ordered sequence of tuples, with no hierarchy among them. Any prioritization or "primary" movements should be sufficiently recognizable by the movement choice or the load. If priority is necessary then it should get its own syntax, but I don't yet see the need.

With that said, it is weird that the first exercise is denoted differently (no +). In my pen-and-paper training log, I denote circuits with a continuous vertical bar. This is the closest text analogy, using a common example circuit from my past training:

| Pull-ups: 15, 12, 12, 10, 10
| Box jumps: 5, 5, 5, 5, 5
| Dips: 20, 18, 15, 15, 15
| Rest: 1 min / round

In that sense, I would be open to the first exercise of a superset/circuit getting a leading +, to bring its meaning in line with its appearance.

@scottt2 scottt2 transferred this issue from traindown/traindown Jan 31, 2021
@scottt2
Copy link
Member

scottt2 commented Jan 31, 2021

I think that supersets are a subset of circuits

Totally agree with that and I like that phrasing.

So my overall view is that circuits/supersets should be an ordered sequence of tuples, with no hierarchy among them

Agreed.

In that sense, I would be open to the first exercise of a superset/circuit getting a leading +, to bring its meaning in line with its appearance.

I am, too. I hesitate on the + for two reasons

  1. Backwards compatibility (luckily not that big of issue for anyone but me right now, I'd think!)
  2. The implication that + denotes "and" thus the first movement of a circuit being incorrectly assumed to chain on the preceding movement.

Before I being with what I think could be a solution, I want to say I prefer your | so that's definitely something we'll want in Traindown.

My gut is to provide this as the solution:

  1. Alter the definition of superset under the current syntax to mark all movements as superset: true if that movement is a "leading movement" (the one that precedes a "plussed movement") or that movement has a plus prepend to the name.
  2. Leave the current + syntax in place as a valid means of expressing 1)
  3. Add the | operator and have the use follow your example from your training log.

Additionally, I'd love your thoughts on perhaps changing in the libraries the label superset to something like grouped or circuit. This is a concern outside the spec itself but it is standardization that I'd like to propagate out to the prebuilt libraries we provide.

Ultimately the idea is that's a configuration detail on whatever software. Perhaps that's the answer--make the "circuit" label configurable in the client libraries.

Now I'm rambling. I love the | as it visually better connotes the underlying reality. I'll get this rolled in over the next day or so then update the libraries soon after.

@scottt2 scottt2 added the enhancement New feature or request label Jan 31, 2021
@scottt2 scottt2 added this to the Piped circuits milestone Jan 31, 2021
@scottt2
Copy link
Member

scottt2 commented Mar 14, 2021

Merged with #3

@scottt2 scottt2 closed this as completed Mar 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants