The lessons of HCI and User Testing

So one of my side projects is producing a mobile app for logging workouts into Gainstrack. The prototype has been under development for the past couple of months and reached a stage where I was very comfortable dogfooding it for logging my own workouts on my phone.

Before unleashing it to a wider audience, HCI training kicked in and thought I’d run a user test where I set a user some tasks to accomplish on the mobile app, never having used the app before, while I quietly watched and took notes.

The participant in this case is my fiance… a largely non-technical user who is a regular user of Android/iPhone apps who is familiar with some strength training. Her tasks were to

  • Attempt to log a typical workout
  • Attempt to make amendments to a workout
  • Register her details with the app

I already took these tasks for granted but I got a plethora of useful feedback from this single participant.

  • The first menu item under the Home menu item was the Plate Calculator. She immediately started playing with that rather than doing a workout
    • Lesson: Make Log Workout the first menu item
  • She understood “Enter the barbell weight” as the loaded weight
    • Lesson: Make the text “Enter the empty barbell weight”
  • Back to logging, she said that Account should therefore be the top item because surely you need to register before logging.
    •  Actually, my site supports starting a log without registering but that fact she takes registration for granted, maybe that could be highlighted sooner
  • Adding an exercise was non-obvious. The layout of exercise/add/quick didn’t make sense for her. She couldn’t figure out how to add a typed exercise (press the add button!). So the layout is changing
    Before

    After
  • She can’t add her Running exercises… weights only for now. Looks like I can’t convert her yet!
  • The keyboard jumps around a lot when adding new sets. Actually, this bugs me too, it’s a real problem that needs fixing
  • Pressing Add when no exercise is typed does nothing. This is double confusing when she didn’t know what Add was supposed to do anyway
  • Cancel button cleared the screen rather than cancelling
  • The “More Options” and Delete workout were oddly placed, according to her. It’s going to move

As with many HCI user tests, the feedback was both surprising and usefully constructive. Lots of minor interface improvements are on the way! A good learning exercise all around.

Oh, and I submitted my first workout from my mobile app proper… coming very soon.

Crazystrength Log Export

I now have bookmarklet support for exporting a gainstrack log entry to Crazy Strength in just a few clicks. For this to work, you need to be a logged in and fully registered member of Gainstrack for this to work.

Then drag this bookmarklet to your bookmarks toolbar (or right click and Bookmark)

Gainstrack Import

Now you are set! To import an entry to Crazy Strength:

  • Go to Crazy Strength’s Log Workout page
  • Select the date of your workout on that page
  • Click the Gainstrack Import bookmark you saved

If it all works, your workout will be automatically filled into the page!

AngularJS html5mode with links back to server

Having enabled successfully enabled html5mode on my web application, I accidentally broke a browser link to download some JSON from the server, since Angular now interprets it as a route.

Thanks to http://blog.panjiesw.com/posts/2013/09/angularjs-normal-links-with-html5mode/ for posting an explaining a full answer.

Adding target=”_self” to the link fixes it but here are the options from the Angular docs

In cases like the following, links are not rewritten; instead, the browser will perform a full page reload to the original link.

  • Links that contain target element
    Example: <a href="/ext/link?a=b" target="_self">link</a>
  • Absolute links that go to a different domain
    Example: <a href="http://angularjs.org/">link</a>
  • Links starting with ‘/’ that lead to a different base path
    Example: <a href="/not-my-base/link">link</a>

RepMax badges in your log!

Following a suggestion from someone earlier today, the logic that already generates the rep max tables in the training logs now also marks itself within your training logs with these little badges so you know your lifts are improving!

Here was my boxing day deadlift where I achieved a 2RM that was surprisingly close to my 1RM of 130kg. Hence it’s my best estimated 1RM too.

Plate Calculator Multi-Unit and Mobile Friendly

I recently got forcibly moved to a new gym and it’s really thrown me. I live in kg and program myself in kg but in this gym they use plates in lbs. Worse still, there is a mix of kg plates and lb plates. And the barbell doesn’t weigh exactly 20kg either.

Frustrated, and having a techie itch, I built myself a Plate Calculator so I don’t have to stare at the bar and do the math in my head anymore. This sort of thing has been done before but what (I think) sets mine apart are

  •         I can customise the barbell weight
  •         I can have a mix of kg and lb plates
  •         It is mobile friendly and will work even if not connected to the internet (might need to load the page before going to the gym though. Unless I make an app out of this)
  •         Where there are multiple answers, it prefers to use larger plates where available.

http://www.gainstrack.com/plates

Please give it a try and let me know what you think. In particular, whether it gives the right answers or if there are any bugs. If it is useful to you, also let me know!

Launching Gainstrack for workout logging

Maintaining a training log  has been the biggest thing for me to hold myself accountable in making progress towards my strength goals. I’ve used a combination of Fitocracy and the now defunct Stronglift inner circle in the past.

However, there’s no site out there where I could continue my training log the way I want it. So I started building one, just in time for Christmas. I plan this to be my training log home and invite the public to join me.

My training log is now going to be maintained at http://www.gainstrack.com/user/KevinTam .

For everyone else, you can have a play with the demo at http://www.gainstrack.com/. You can follow the instructions to log some stuff or import your SLIC log. If afterwards, you think it’s worthwhile, you can register on the site.

Of my dream features, the site already supports

  • Ability to export your logs at will – including to crazystrength.com when they build their log tracker. If you see I’m no longer logging on my site, you know to save your logs – or you can do it any time. Don’t be burned again by your provider shutting down
  • Graphs!
  • Rep max tables and rep max histories, if you are into that sort of thing
  • Workout calendar – visualise your consistency
  • Mobile friendly – lots of improvements to make but I’m already at least reading my work history in the gym so I know what I’m doing in my workout
  • Undo capability – Don’t be afraid to submit and screw stuff up. In the worst case, I have an undo tool in the backend in case changes need undoing. Just let me know

The stuff that should definitely come soon, because I want it for myself

  • Super efficient logging. I’m “dogfooding” this
  • Proper user registration (it’s a bit hacked together for now)
  • User comments etc.
  • Log vs log comparison
  • And my killer feature I really want to do… an online virtual companion that follows your logs and comments on how it thinks your workout just went.
  • Some open API to integrate this directly into sites CrazyStrength if desired

Stuff that I won’t do

Anyways, this is all fun for me but I take lifting seriously, as evidenced by the 418 log entries (and growing) I’ve got on my site. Maintaining the log has been the most valuable thing I’ve done for my gains and I’ll be happy if I help others too.

Have a poke at http://www.gainstrack.com – There are plenty of bugs. Please find them all and let me know. I need feedback to know what to do with this site

Goal Setting And Motivation With Your Login Password

I’m currently participating in an online course around Usable Security where we cover things like the pains to create and remember passwords… that later need changing very 30 days because company policies say so. Then someone posted this gem of an article

https://medium.com/@manicho/how-a-password-changed-my-life-7af5d5f28038

So how about making your password something like lift3xthisweek and type that into your PC every day?

Secure, memorable and motivating

How To Reset Pelvic Torsion – If Only I Knew This 10 Years Ago

I wish I saw this video 10 years ago. I was running for a bus and something “moved” around my hips. The next day, my whole lower back and hips fell into spasm. One leg felt longer than the other and I was stuck like this for weeks before the spasms reduced but by then the resulting hip torsion stuck around for months before I found a physio able to reset. But then, the imbalance was engrained and I kept this imbalance for years. This led to running problems because one leg was functionally longer than the other due to the hip twist.  ITB pain followed and finally this caused me to quit running because my ITB would always flare up. As a last resort, I decided to do Stronglifts 5×5 to increase hip/glute strength… I didn’t return to running but I did get hooked on lifting. So maybe it all led to good things after all.
This video identifies exactly the symptoms I had 10 years ago and how I could have fixed it if I only knew…

If you like this, I first discovered this technique in KST’s book A Supple Leopard. These days, the 10 year muscular imbalance is starting to clear out as I do strength exercises that force you to stay well aligned!

How I fixed lower back pain from over-arching the back during squats

Here’s a summary how I went from incessant back pain -  only doing front squats because back squats were killing me – to pain free stable back squats
It’s a long boring and tortuous story – most of it in my training log here. First step was to join an online lifting community to pick up new cues and tips and then try applying various. I’ve made many a mistake along the way.
The content here is primarily to help those who are over-extending their back at some point during the squat motion

Firstly hip-mobility. The most magical mobility video you’ll find this: Instant relief and effect, and gets better the more you do it. It counts as a magic bullet.

The real tough technique is the stuff about bracing your spine and core. There’s a lot of stuff you can read and watch but it takes a while before it clicks in practicality.
First you need to know where neutral actually is. So, also by Kelly Starrett, you’ll here tips around “external rotation” and screwing your feet into the ground. This was the best explanation for me for the first half (tight glutes)

That move gets your spine into the right position. Now “all” you have to do is maintain that by flexing your abs and holding it all tight. Best general explanation is from this article:
http://www.t-nation.com/training/lift-big-by-bracing-not-arching
I learned to brace myself into neutral but it took me ages to figure out how to stay neutral as I went down in the squat (since you have to release your glutes from part 1, but keep your abs flex and your ribs in the right place). This hip hinge exercise helped me with the proprioception.

After 2 months of absorbing all the above, I’m now in a world where I know what my back angle is doing and I can keep it relatively stable. All my back soreness is gone…