TL;DR - yams.energy
Earlier this summer, I was at the beach with my family and given we were at the beach and the weather was hot, the drumsticks were flowing like water. This inevitably led to questions like: how far do I need to run to burn off this drumstick? I know that at my weight (~185 lbs) and at a moderate pace (5:45 to 6:00), I burn about 125 calories per mile. So at 390 calories per drumstick, I need to log about 3 miles tomorrow in order to break even. Assuming I stop at just one drumstick…
Using known reference points like this (125 calories per mile) is fine, it’s exactly what I do when I need to mentally convert from Farenheit to Celcius. Unfortunately, these infrequent conversions never lead to any deeper intuitions. I have no real feeling for celsius.
When I was in school, I switched all my devices from 12 hour time to 24 hour time. It was annoying at first because I needed to actually perform the calculation, but after a week or so, the intuition had developed. I could look at the time and understand the time without any intermediate processes. The intuition had been developed.
The relationship between food, calories, and exercise for me is fuzzy and I would guess others too. I bike or run almost every day and I definitely eat every day, but the intuition hasn’t been developed. What’s the conversion rate between miles biked and pizza slices? I know that consuming a bag of trailmix will give me an energy boost, but how much and for how long? And how can I pace this consumption to deliver a smaller boost for longer? Trying to develop this caloric intuition seemed like an interesting problem to work on.
I ended up building out yams.energy. It’s a service that taps into the Strava webhook and upon receiving any new activity will add a food item of equal (or very close) caloric energy as was burned during the activity. The hypothesis being that, much like my 24 hour time experience, repeated exposure will build the intuition.
Since I’m still very much in the honeymoon phase with Golang, I was able to reuse many of my patterns from windspeed.app. This time around though, I decided to deploy through Vercel rather than Netlify. My experience with Netlify so far has been excellent, but I don’t know what I don’t know. One thing I like about Vercel so far is that with the exception of pq (postgres driver), I can get away with using just the standard lib (Netlify requires AWS Lambda libs). I’ve reached peak dependency fatigue so this is worth a lot to me right now.
Anyway, the Strava api form has been accepted which means it’s now publicly available. Right now there are about 1k food items pulled from a number of fast food restaurants and FDA sources. I’ll be adding more grocery store type items over the next few weeks.