Showing posts with label fitness. Show all posts
Showing posts with label fitness. Show all posts

Tuesday, September 15, 2015

Paddle Mate Beta Access

I made good progress on the Paddle Mate "Just Ship It" Release this past weekend. I had to step back, look at my activity state restoration code and fix a couple key problems. With that under control the app is handling backgrounding much better now.

This Beta version also includes:

  • App setting persistence so that the app remembers your last used workout settings (track location, Microsoft Band pairing options)
  • The DOCK view (main landing view of app) now includes a preview of the map from your last workout and some stats from the workout.
  • State Restoration.

With these changes in place, the app is ready for wider Beta Testing. If you are interested in trying out Paddle Mate before I ship it then you can sign up at: Announcing Beta Access to Paddle Mate

Sunday, September 13, 2015

Paddle Mate V 1.0: Just Ship It Release

Past Workout (WAKE) view on the main DOCK view.
I have a couple irons in the fire at the moment which have me spread thin.
  • I'm working on a new site which I will write more about shortly (it is still baking and is not ready for prime time yet).
  • Various home projects.
  • I signed up for a Half Marathon at the end of October and have been ramping up training.
  • Fixed a bug in Selfie Band and shipped the update.
  • I have been finishing up Paddle Mate's first release.
Paddle Mate, the Just Ship It Release, has gotten some well deserved attention the past few days.

I had a couple half baked features and did some triage on those. I decided to move them out into future releases and in the process created a RoadMap. With the RoadMap I have a defined ongoing plan with a focus for each upcoming release.

I just finished off validating that the app works with/without a Microsoft Band attached. Without the Band the experience is not as rich but I am planning to support a richer experience for non-band users over time.

Paddle Mate is now down to 2 gating bugs that I am working on today. In developer lingo, gating means that the product can not pass the release gate to customers until those bugs are fixed.

I have one tester who is out today in this rain that has been testing. Once I get a handle on one of the bugs I will be going out for another test kayak.

The other bug is in the past workout view, I have a handle on the problem and will tackle that later today.

This boat still can't launch when that is all done. My list of tasks after I fix these bugs include:
  • Verify I have no more gating bugs.
  • Write launch page.
  • Write marketing page.
  • Write Privacy Policy for app.
  • Record App Preview
So, with about 1 hour to go in today's dev window I need to get back to getting this app shipped.

Saturday, August 8, 2015

Hackathon: Writing a Microsoft Band App In One Weekend - Update 2

Update 2: Stroke Counter First Pass

I imported a sample set I collected of a simulated kayak sitting on the deck. Then I wrote a PaddleCounter class that I can feed accelerometer into. The class calculates the stroke count as it processes the incoming accelerometer data.

This data then needs to be displayed in the awesome UI I cooked up on a budget. Ok, it never cost me anything and it shows, but you get the picture.
As we can see a couple new features are slipping in. I figure I should track Heart Rate and average Heart Rate for the session. I am also going to collect calories burned and compare that later to calorie burn estimates to see if it is reliable. But I will hook those up later this weekend.


Collecting Samples During a Session


I decided to go with NSNotifications to send out stroke updates from the PaddleCounter class. So, when the PaddleCounter detects a stroke it will send a notification that the main ViewController can then use to display the stroke change.


Testing the Stroke Counter


I want to make testing the stroke counter as easy as possible. I plan to collect different samples and track the number of strokes. Then algorithm development will go like this:
  1. Feed my samples into the stroke counter algorithm.
  2. Compare what it dumps out with the expected number of strokes.
  3. Tweak algorithm, rinse, repeat.
My first stroke counter at about 1 AM sucked and came out with terrible results. What to do?


Charting the Samples


Ok, I was trying to eyeball the samples and hence it was hard to track the trends. So, I need to chart these samples to better understand the data I am getting.

Before I try to rewrite the stroke counter I am puttingthe samples on a chart. For this I am going to use ios-charts by Daniel Cohen Gindi to draw my sample set so I can look for trends.

Here's the new UI with the raw data in the chart and then a zoom in on section:
Samples with Default Zoom

Samples Zoomed In

Ok, now it's time to go hit the water and collect some real samples.

Hackathon: Writing a Microsoft Band App In One Weekend - Update 1

2 Hours in and I have:
  • Basic UI for Data Collection
  • Accelerometer Data Collection to CSV file using NSOutputStream.
  • Export of CSV file using the UIActivityViewController.
Next up:
  • Write a stroke counter first pass using some simulated kayaking samples.
Here is the UI for the first set of data collection.


I know, its amazing. Where did I get this UI skills? What can I say, I an old school green on black terminal kinda guy.

Tuesday, January 28, 2014

Fitness Tracking: Bring DIY biomedical technology to your home or school | MAKE


This project shows the power of the Maker Movement. These guys are opening up a field of research to DIY which unleashes numerous problems that can now be worked on by others with a lower cost of entry.

Do I have a use for the DIY E‎MG (Electromyograph) module? Not really but what can I think of that would be cool with this?

How about when cycling if it graphed your muscle output along with speed, watts, and altitude change. Would this give us more insight after collecting multiple sessions as to whether we should back off
 this training session or go harder?

Can the EMG readings of our muscles show us if we are over/under trained?

Can we make cheaper, consumer products with modules like this to allow anyone to easily unlock their potential? 

I have found that as I have trained, there are many questions I ask myself. Should I push harder today? Should I do that extra workout? Should I back off?

A work out plans is just a guide to how to reach a goal.  The guide is usually one that someone else has used which will help you prepare.  Guides are available for many distances and as long as you put in the time and keep to the guide, you should be able to complete the distance trained for.

The amount of training for a marathon for example ranges from 3-6 runs a week.  Then there are cross training days or sessions.  How can some go so far on so little training and others on so much?  Are some of us overtraining and some under training?

We are all different training plan/guides are just that, a guide used by someone else that worked for them.  Can we get more quantitative with our training and be able to customize it on the fly to avoid injury, burn out, and ultimately to increase our potential?

I know you can wear a heart rate monitor (HRM) all the time and look at your resting heart rate (HR) in the morning to get idea of your level of training. Too high above resting HR (and historical morning HR) and you are getting sick or have over trained.  So, you'll need to dial back today.

Can we make this even better with EMG‎ monitors?  Can we get a reading of how hard we can push our muscles for their peak workout?

I feel that the current wearable fitness tracking devices and apps are just the infant stages of where we can go with technology to help us achieve more in our physical pursuits.


What would you do with a wearable EMG?