DIY and Decor, Exercise, Home Improvement

Cheap Ikea cycling desk

I picked up a bicycle trainer off Craigslist, a Century Fluid trainer someone else was offloading, and have been enjoying using it for workouts post-baby. It does get boring though, so I built a table that fits over it to hold my laptop.

2016-02-16 14.01.23

The table had a few non-negotiable requirements:

  • It needed to be sturdy enough to hold my laptop (easy)
  • It needed to be adjustable vertically so I could either lower it for a real workout or raise it and type on my laptop for some pedaling-while-working
  • It needed to be easily removable
  • It needed to be cheap

I ended up finding the parts I needed in the Ikea IVAR system. I used two 20″ wide by 48″ high sides, one 20″x35″ shelf, and an X bracket to give the whole thing stability.

Bike in "typing" mode
Bike in “typing” mode

The total including tax was under $45.

I pull the table up over the handle bars if I want to type on my laptop, and push it back so it’s more over the front wheel if I want to get an actual workout in. My only complaint is that the seat I have isn’t very comfortable when sitting upright and typing. I may pick up a gel cover to give my butt a break.

2016-02-16 14.00.11


Exercise, Hacking

Disney Marathon Weekend Corral Analysis

This is my third set of race stats from the 2015 Walt Disney World Marathon Weekend. If you find this interesting you might want to see my scatter plots of all finishers and histograms of finishing times.

Thanks to some help from my friend Will and someone on StackOverflow I’m finally able to run stats by corral.

Let’s start with the Half Marathon and Full Marathon. Those had the same number of corrals (16) whereas the 10K only had 6.

I started by calculating the median finishing time per corral. I was surprised to see that the last corral had a slightly faster median than the one before it. I suspect that this is because people without a previous qualifying time were put in the last corral, so folks who are more serious runners who are running their first Half Marathon might have been stuck back there. There was also a huge group of A runners who came in dead last, I expect these were course sweepers or other specifically paced volunteers.

Pace is in minutes per mile.

Half Marathon Full Marathon
Corral Median Time Pace # Runners Median Time Pace # Runners
A 1:42:26 7:49 508 3:38:53 8:21 519
B 1:47:07 8:11 336 3:41:49 8:27 373
C 1:56:18 8:52 656 3:58:14 9:05 704
D 2:02:47 9:22 722 4:10:45 9:34 758
E 2:06:45 9:40 755 4:24:55 10:06 767
F 2:15:03 10:18 1148 4:39:07 10:39 1138
G 2:19:49 10:40 1217 4:46:08 10:55 1223
H 2:28:57 11:22 1244 5:04:03 11:36 1172
I 2:36:08 11:55 1583 5:17:01 12:06 1518
J 2:44:10 12:31 1770 5:33:52 12:44 1737
K 2:53:51 13:16 1743 5:50:05 13:21 1613
L 3:02:28 13:55 1952 6:09:21 14:05 1948
M 3:06:32 14:14 1679 6:22:16 14:35 1509
N 3:11:19 14:36 2064 6:40:29 15:17 1704
O 3:13:17 14:45 1942 6:31:38 14:56 1440
P 2:54:27 13:19 2781 5:46:36 13:13 1864

I thought it was interesting how close the median pace for each corral, despite the full marathon being twice as long. This poorly labeled graph shows the median pace for each heat. The heats have numbers instead of letters because I am not good at matplotlib.pyplot



Next we have a boxplot of finishing times grouped by heat.

Full Marathon finishing times by heat
Full Marathon finishing times by heat
Half marathon finishing times by heat
Half marathon finishing times by heat

From this we can see that there are quite a few runners in heats 0-9 (corrals A through I) who should have been in a slower heat. Those in the slowest 25% of each heat came in later than the median of the next slowest heat. The runners outside the caps are outliers, meaning the algorithm decided those runners statistically did not belong in that heat. Even if we ignore heat A, which has a bunch of pace teams in it, there are clearly a bunch of people who were a bit optimistic with their corral placement. Likewise we see folks in the back corrals who will hopefully get better placement next time.

I had a little trouble breaking the heats out on the 10K (not sure what’s up with 4 and 7, those shouldn’t be there) but you can get the general idea. Corrals ABCDEF are heats 0 1 2 3 5 6 8 respectively.


Ten K time by corral
Ten K time by corral

Looking at these graphs I can gauge whether my friends and family were in an appropriate corral or not.

Chris: in corral B/1 for the half, finished in 1:47. Seems spot on.
Kate: in corral J/9 for the half, finished in 2:33. Also looks right.
Lorena: in corral P/15 for the half as she didn’t have a prior qualifying time. Finished in 2:03. E would have been more appropriate.
Matt: in corral O for the full. Finished in 4:29. E or F would have been more appropriate.
Dustyn: in corral D for the 10k. Finished in 1:03. B  would have been more appropriate.
Me: In corral E for the 10k. Finished in 1:04. B would have been more appropriate.

So why does any of this even matter?

I believe strongly that running should be for everyone. I don’t really understand the people who run long distance race at a 16:00 pace, but it’s still an accomplishment. That said if you run for time it is extremely frustrating to get placed in a late corral and have to dodge walkers during the race. Likewise I’m sure it’s frustrating to have fast runners diving in front of you if you’re walking in the back of the pack. Appropriate corral placement is key to everyone enjoying themselves.

Based on this I suggest the following:

  • If you run for time, make sure you run a qualifying race (if needed) ahead of time so you can get into an appropriate corral. If your race lets you self-report your expected time, give yourself some credit. When I signed up for the race I was running at a 12 minute pace, but was closer to a 10 by the time I finished training.
  • If you don’t run for time, be honest. Don’t submit a time that puts you in the B corral if you have no intention of running that time.
  • If you’re a new runner and want to run a friendly race where you won’t come in dead last, run a Disney race. Even if you do come in dead last, you’ll have plenty of company.

Before I wrap this up I have one more graph to show: a comparison of the finishing times at the Disney 10K vs the Philly 10k. I ran both, and came in about 6 minutes faster in the Disney 10k. Philly is purple, Disney is blue, and the dots are me. There were a different number of runners in the two races so I scaled them to match. The x axis shows place/total*100, which may or may not be the same as a percentile I’m not sure. I don’t think it is.


Conclusion: Disney races are slower than my local race. A time that puts you in the top 1/3rd at Disney has you in the bottom 1/3rd in Philly.

I’m about stats’d out, but the data is on github if anyone wants to play with it themselves. You’ll need to edit the scripts to work on your system, I just chucked them into git so they have file paths for my filesystem in them (and now you can all see that I run Windows).

Exercise, Hacking

Scatter Plots!

So my stats / python skills haven’t greatly improved in the last 48 hours, but I did manage to find some fun new ways of displaying the data I already have from the 2015 Walt Disney World Marathon Weekend.

I’m trying to break up the racers into their heats (aka corrals) and while I’m having trouble doing that in a way that Python can “see” I found that a scatter plot makes it really obvious to the human eye what the corrals are.

On the X axis I graphed start time and on the Y I graphed net finishing time.

Here’s the Disney World 10k with its 6 corrals


The full and the half, each with 16


And by comparison, the Philly 10k which technically had corrals but didn’t make much effort to space them out


You’ll notice in the Disney races have the widest range of times in the first corral. Some of this is probably people overestimating themselves (particularly for the 10k which doesn’t verify qualifying times) but I believe a fair number of them are race volunteers / staff who are maintaining a particular pace to warn people who are about to be swept. From what I’ve read there are folks who place little warning flags on the mile markers to let people know they’re in danger of falling behind the required 16 minute pace.

Exercise, Hacking

Disney World Marathon Weekend Results Histograms

Four of my family members and three of my friends ran races during the Walt Disney World Marathon Weekend this past week(end). Three of us felt correctly placed in our starting corrals,  three of us felt the race was more of an obstacle course of slow-moving people. I started wondering about race stats and while I’m still sorting through them (and brushing off my rusty python skills) I did manage to come up with some fun histograms.


First we have the 10k, which was my race. I finished in 1:03:58, or about 64 minutes. Since I haven’t figured out how to control the labels on my graphs they’re just listed in minutes. My time, which is not a particularly exciting time to most runners, is surprisingly early in the graph. There’s also an interesting jump at 90 minutes. Keep in mind these are net times, not clock times, so even folks who started late but ran fast should be competitive here.


Next is the half marathon. There’s an interesting drop at 3 hours. The pace cutoff for all the races was 16:00 (and wasn’t strongly enforced) which would be a 3:30 half marathon. I’m not sure what caused the huge drop at 3 hours.Full_histogramLast we have the full marathon – 26.2 miles. I’m actually surprised there isn’t a longer tail on this graph given how many folks were walking and otherwise going slowly. I’d love to compare the shape of the histogram to other more serious runs, but those don’t have such easy-to-scrape data so it may be a while.

I’ll post more on the stats process as I work on them, but it may be a while since I’m on vacation (woo!)

Edit: Here’s the histogram for the Philly 10k in September. It’s a very different shape (and was also a much smaller race)



Runners, Y’all Are Disgusting

Photo by Rene Schwietzke

Anyone who has run in an organized race recognizes the flotsam and jetsam of a run: water cups, gel packets, and the occasional item of clothing. While the piles of Gatorade cups can be a little jarring to see, they are more or less working as designed. Runners jog by a water table where volunteers have lined up cups, drink their water, chuck the cup, and go on their way. Longer races will give out “fuel” of some kind; the current trend is calorie dense gels that supposedly are easier to digest than actual food. At the end of the race volunteers clean up all the cups and in theory everyone lives happily ever after.

In practice, the cups and gel packets stray. Half a mile down course from the water station you’ll find some errant cups, some mashed to the asphalt and some still rolling around. Maybe the wind carried them there, maybe the shuffling of thousands of feet kicked them there, or maybe someone just held them half a mile. Either way they’ve now escaped the territory of the volunteers and unless the race organizer is particularly diligent (most aren’t) will become part of the local ecosystem.

On Sunday afternoon following the Philadelphia Marathon I went for a run along Kelly Drive, part of the Fairmount Park system which runs along the Schuylkill River. I saw some form of race detritus roughly every 5 feet for the entire length of my 3.5 mile run. The worst offender by far was the Gu gel packets, little foil and plastic pouches now flattened all over the road and sidewalk. A few cups, a few socks, but mostly Gu. Unlike the cups, which are certainly still a problem, the Gu packets will never break down. They will never biodegrade and go away. Instead they’ll eventually get washed into the river, mixed into the Delaware river, and then either hang out in the Delaware bay or get whisked out to the Atlantic ocean to join the other 6.4 tons of garbage in the world’s oceans. Also, it’s ugly.

Despite being a runner myself I can’t help but feel that these marathoners came in, blocked my streets, trashed my city, and left. Don’t get me wrong, I appreciate the economic activity the race brings to the city. But after my run on Sunday I’m frankly feeling pretty bitter about the whole thing.  In order to make marathons and other major runs a more welcome addition to cities and not just garbage generating traffic jams, three things need to happen:

1. Runners need to learn to be less disgusting

I get it, I really do. When you’re running it’s hard to focus on whether or not your cup made it into the trash can (and often there isn’t one anyway). Tossing your cup on the ground is part of the culture. That’s fine. What’s not fine is carrying whatever it is for half a mile or a mile and then ditching it there. If you’re able to run with your ipod, water bottles, and all the other crap I routinely see distance runners strap to themselves, you can find somewhere to hold that empty foil pouch until you get to another volunteer station.

Speaking of the culture, the culture is bullshit. If you’re an elite runner, I can see how you don’t have time to deal with a cup / trash can / etc. Most people running the Philadelphia marathon are not elite runners. The average finish time is over four hours. Are you really gonna claim you can’t spare the extra 10 seconds to find a trash can?

Also stop stripping during races. If you absolutely can’t handle wearing the same outfit for your whole run, at least have the decency to shed your layers at a volunteer station where it’s more likely to get cleaned up.

2. Race organizers need to step up their trash management game

I’m not going to lay the blame on the volunteers and staff who have the gargantuan task of trying to clean up a race course after the fact, especially if it’s a marathon course. I do however hold the organizers responsible for allowing the problem to get as bad as it is. I’ve been to races where there are only a few small trash cans immediately near the water station, or no trash cans at all. Water stations should have some sort of trash management solution on both sides of the race course, and there should be some place for runners to throw their trash at least a tenth of a mile out. Staff should be collecting the trash during the race so that the wind doesn’t blow it all over the city.

3. Sponsors need to choose environmentally conscious packaging

No matter what some garbage is going to escape. Over ten thousand people run the Philadelphia marathon, and there are probably a dozen or so water / gel stops. You have to plan for the fact that some packaging is going to get out into the world, and that stuff needs to be biodegradable. Then it’s still disgusting and ugly, but at least it’s not going to be floating in the ocean for the next 200 years. Gu packets aren’t even fucking recyclable.

You’re carrying all this shit but you can’t fit an empty foil packet in there?

So yeah, that’s how I’m feeling about the marathon, and running in general, today. On the plus side my garbage-induced rage pushed me to a new personal record: I did a 10:54 pace over 7 miles. My previous best was a 10:59 for 6.2.


First 6 Mile Run

Training for my upcoming 10k is going really well. I had two new running workouts this week: a day of 8×2 speed work and a steady 6 mile run. Both seemed very intimidating going into them but I did them both. The speed work was hard, I ran fast for two minutes then slow for 2 minutes, 8 times, with a mile warm up and cool down.

2014-06-14 18.55.34
Where I run, as seen from the highway


My 6 mile run was on a treadmill because it’s been so humid and I needed a break. It was also a good time to focus on my form since I didn’t have to worry about pace. I did it in an hour and 12 minutes, so I’m well on my way to building the endurance I need for the race. My target time is 1:05, but my training plan has me working up to hour and a half long runs in preparation.

I’m also getting my first running blister, on the very tip of one of my toes. Some cursory googling indicates this might be due to “pushing off” with my toes when I run, so that’s one more think to focus on when I think about my form.


Running a 10k for Fairmount Park

I’m really excited to have snagged a bib for the Philly 10k in September! I’ve joined the Fairmount Park Conservancy charity team, and we’re raising money towards the trail restoration project at Belmont Plateau. I’m asking friends and family to support me by donating to the Fairmount Park Conservancy.

Click Here to Donate Now

For those not familiar with the Fairmount Park system, it’s made up of many parks throughout the city both large and small. I most often run in two of the larger parks: the 1400 acre Wissahickon Valley Park, a beautiful forested area surrounding the Wissahickon Creek, and in the 4100 acre Fairmount Park along the Schuylkill River. By comparison New York’s central park is a mere 843 acres. The Fairmount Park Conservancy works with the city Department of Parks and Recreation to maintain and improve all 63 parks in the Fairmount Park System.

Aside from being a great place to run and bike, our local vegetable CSA is grown on land owned by Fairmount Park. I feel incredibly lucky to live in a city with such a wonderful park system so near by.

An overpass in Wissahickon Valley
From my run in Wissahickon Valley

This run will be my first 10k. Previously my longest run at any speed was just over 3 miles, and a 10k is 6.2 miles long. I’ll be spending my summer increasing both my distance and my speed by following a 4 day a week running plan. By the end of the plan I hope to be able to run the 10k in under 65 minutes!

Help Support Fairmount Parks!

Fairmount Park is such an integral part of my fitness and wellness and I am very proud to be part of their fundraising team for the Philly 10k. Please consider supporting both me and the parks by donating on my fundraising page. Our team goal is $5000, but every dollar is extremely appreciated.

Click Here to Donate Now

Follow My Training Progress

As of early June I’m a few weeks into my running training. I’ll be posting on Facebook and Twitter about my running, but I’ll also be updating my blog with my progress. You can see all my Philly 10k training posts at this page, or just click the “exercise” link in the navigation.

Thank You

Thank you so much to my friends and family who have supported me thus far as I slowly become “a runner.” When I started running three years ago I couldn’t make it down the block without wheezing. It took a number of false starts to complete my first 5k. Now I’m up to 5 mile runs, and looking forward to running my first 10k. It’s only through your incredible support that I’ve made it this far, thank you so much.


Bro, do you even lift?

13408728544_d44d13d94c_oI’ve become a little obsessed with weight lifting. Unlike a lot of other exercise, it has very linear and easy to track data. Whereas running involves complicated variables like pacing and terrain, weight lifting is pretty consistent from week to week so it seems easier to hit a new record in at least one metric.

I go to a PlanetFitness,  a cheap gym that caters to noobs and people who want to do endless cardio. They don’t have much in terms of barbell weights, but they have a full rack of dumbbells and a couple cable towers so I can get most of what I want to done with no problems. The only thing I really dislike is having to do deadlifts and squats on a Smith Machine. The Smith Machine seems universally reviled by people who lift because it limits the motion you do, making for an inefficient workout that doesn’t translate well to free weights. If at the end of the year I’ve totally crushed all my lifting goals, I might consider upgrading to a gym with a real weight area.

The more I learn about exercise and getting into shape, the more frustrated I get with stupid “fitspo” images on Pinterest. In a fit of rage I created to snark on all the stupid diets and workout routines that promise to help you ditch 5 lbs and “tone up your arms by Tuesday.” A thigh gap is not on my list of goals, thank you.

I’m making good progress with getting into shape for my aerial silks performance. I can now get through the act straight through, and have the choreography pretty much set. Now I have to focus on not looking like I am dying up there. My cousin said to me, “don’t take this the wrong way, but you make that look HARD.”


I’ll take it as a compliment, because it IS hard.

I’m down 12 pounds from my starting weight at the end of January. I originally set my weight loss goal at 125 lbs, but I’m down to 130 and am pretty happy with how I look so now I’m just focusing on getting stronger. I took another silhouette photo two weeks ago, and there’s definitely a noticeable change in my shape.


Obviously the photos don’t line up perfectly, my head hasn’t magically gotten narrower (although I did get a haircut). I did my best to shrink/squash the two photos so they’re as similar as possible, lining up my hands and shoulders (which aren’t going to move around or change much). A lot of the neck thinning is due to the angle I was looking in the first photo, but the weight loss in my midsection is real.

I’ve settled into a regular routine for working out and stick to it most days.

Mondays: Silks performance prep
Tuesdays: 2 miles of running + weight lifting
Wednesdays: 2 miles of running + weight lifting
Thursdays: Stationary cycling with my mom, silks practice
Friday: Handbalancing
Saturday: 5k run + weight lifting

Sunday is a day of rest, like God intended!

Every other week or so I’ve been meeting with a trainer to make sure I’m not overworking any one area. The trainer works with a lot of clients who do circus aerials, so he’s able to tailor my workouts to fit my aerials schedule. I thought I was doing a pretty good job of staying well rounded until he showed me some leg and tricep exercises. I couldn’t walk normally or lift my arms for a solid day and a half.

I’m up to three consecutive pull-ups and making steady progress with the rest of my lifting.

This January the whole family is going to Disney World for the Run Disney runs (5k through marathon). I plan on doing the 10k and most everyone else is doing the half marathon. Once the aerials showcase is over I’ll start doing a lot more running.

My running playlist is pretty played out. Any suggestions for favorite running music would be greatly appreciated!


App / Gadget Round Up

After writing my post on how I use Evernote I realized I actually use a ton of tech to stay motivated and track my exercise progress. What I use slowly changes over time, but here’s what I’m using now:


Fitbit Aria – Body fat scale


The Aria is a wifi-enabled scale which automatically logs your weight and body fat. Body fat is calculated via bioelectrical impedence, and while it’s not considered particularly accurate it is useful for tracking general changes over time. Mostly it has made me aware of when I’m just losing water weight rather than fat. It’s also shown me that when I under-eat I tend to lose lean muscle rather than fat, which is a helpful lesson as I try to steer clear from disordered eating.

FitBit One – General activity tracking

My Fitbit account syncs with MyFitnessPal, so if I’m active during the day MFP will adjust my calorie target accordingly. I haven’t been quite so competitive about my step count lately, as I’m pretty focused on strength training at the moment. But it’s still very satisfying to rack up 14,000 steps on a trip to the zoo.

Samsung Galaxy S4 – smartphone

While not specifically a workout gadget, I rely on my smartphone heavily for tracking most of my workouts.

Pebble – Smartwatch


Also not specifically a workout gadget, but a number of the fitness apps I use have Pebble watchfaces for quick access to info while I work out.


Runkeeper – Run / cycling tracking, Free

Runkeeper uses my phone’s GPS to track how fast and how far I’ve run. You can also use it to plan running routes if you’re targeting a specific distance. It has a Pebble watch face so I can see my time and distance at a glance without having to wait for the audio cue. I switched to Runkeeper from Nike+ because the Nike app kept crashing on my phone. Runkeeper also has an API you can use to access the data.

MyFitnessPal – Food tracking, Free

I log everything I eat in MyFitnessPal (MFP) though sometimes I’ll skip it when I’m out with friends. I mostly cook my own food so I use the recipe builder to get a rough idea of the nutritional info. It was through MFP that I realized I was eating way too much added sugar in my diet (which remains a struggle for me).

GymPact – Gym attendance rewards, “Free,” sort of, but requires credit card

This is an app where you can earn rewards for going to the gym, and likewise pay a fee for skipping it. I set my target at 4 workouts per week, and lose $5 for every day missed if I don’t manage to hit my goal. There are three ways to get a workout to count: check in on my phone, do a GPS-enabled run with RunKeeper, or hit 10,000 Fitbit steps for the day. So far I’ve earned about $25 total (and lost $10 due to slacking). If you see me at the gym on a Sunday, it’s almost definitely because I’m behind on GymPact and don’t want to sacrifice the $5 to sleep in.

FitNotes – Weight training log, Free

This is a simple Android app I use to keep track of how much weight I’m lifting. It’s pretty basic but does let me export my data so I can make a pretty graph later.

Impetus – Interval timer, Free

I like this interval timer because it has good Pebble integration and allows for some pretty complicated interval sets.

The Drawer of Dead Gear

Here’s what I haven’t been using so much lately:

Adidas MiCoach – the hardware became unreliable and it was out of warranty, so that was the end of this guy. A big disappointment considering how expensive it was.
Nike+ iPod – Superceded by a smartphone + Runkeeper
Zombies, Run! – Android app. No real reason I stopped listening to this one, just got bored of it. I might start again now that the weather is nice and I’m running more.
Just Six Weeks – Android app. This is an app for tracking the various 100 Pushups / 20 Pull Ups / etc challenges. My goals have shifted and I don’t use this app anymore, but I still recommend it to folks.
Couch to 5k – Android app. Happy to say I can now run a 5k at a 12 minute pace, and no longer need this one!
Nike Training Club – Android app. This app provides a number of bodyweight and dumbbell workouts and is a great place to start when you’re finding a regular routine. Another one I no longer need but still recommend.
All the Wii / Kinect exergame titles – Turns out I really like to get out of the house to work out.

What apps and gadgets are you using?


One Month Down

After a month of exercising and eating less junk, I’ve lost 6.2 pounds and 2.3 percentage points of body fat.

Weight (in kg) on the left, calories leftover on the right

It’s hard to quantify strength, but I am definitely getting stronger. I can now do a few trapeze tricks I had trouble with (in particular, pulling back up to sitting after a crucifix) and I’m slowly inching up in weight used for my various strength training exercise. I still have a long way to go, in particular with core strength, but I can feel improvement. I’m running considerably faster than I used to, and managed to go 2.4 miles in 30 minutes without feeling too terrible. My best ever 5k time was 35:58 and I felt like I was going to die afterwards.

I look pretty much the same. I took some photos and compared them to the ones I took at the beginning of the month, and there’s really no discernible difference. I guess I’ll have to work a little harder for the six pack abs of my dreams.

It’s interesting because I felt like I made no progress the first two weeks, and that it all happened the last two. But looking at the chart there’s a fairly steady downward progression with a few bumps. I do think that logging what I eat has made a huge difference in my snacking. Planning my dinners ahead of time makes it much easier for me to eat the foods I like without totally blowing my calories or sugar for the day.

With all the snow (and more on the way) it’s been tough to hit my goal of 6 workouts per week but I usually get in 4 or 5. Over the next month I want to focus on both core strength and longer runs. I’ll keep working on lowering my body fat % (now at 31.7) but now that the worst of the emotional eating weight is gone I’m not worrying about the scale so much.