Thursday, June 25, 2020

How much do I have to walk to burn off my Guinness calories?

 Welcome file
This was a real question I had. Fortunately, its pretty simple algebra and I know how to do that so lets start with gathering a couple of numbers.
  1. How many calories do I burn per minute by walking? 7.7 I walk quite vigorously
    • 230/30=7.7230/30=7.7 Calories per minute
  2. How many calories do I take in per ounce of Guinness? 10.4 It might be 10.5 but this is what I got
    • 125/12=10.4125/12=10.4 Calories per ounce
Now we know every minute I walk burns 7.7 calories and every ounce of Guinness I drink gains me 10.4 calories. So the next question is how many minutes do I have to walk to burn off 1 ounce of Guinness. More math.
  • 10.4/7.7=1.3510.4/7.7=1.35 minutes (1 minute 21 seconds) walked to burn 1 ounce of Guinness Calories
So the closest bar to me (shouts to DD Peckers) is ~20 mins in one direction. How many Guinness can I have to break even by walking there and back. (Its unfortunately not very many)
Given a Guinness is 20 oz (imperial pint) and my walk to and from the bar is ~40 mins:
  • 407.7/10.4/20=1.4840*7.7/10.4/20=1.48 Guinness
Visualized as:
%matplotlib notebook
import matplotlib.pyplot as plt
plt.plot([[7.7*40] for x in range(100)], linewidth=1, label='random')
plt.plot([[x*10.4] for x in range(100)], linewidth=1, label='random')
plt.scatter([7.7*40/10.4], [7.7*40])
plt.annotate("Break even point", (30, 310))
plt.show()


The orange line in this case is the increase of calories per ounce drank and the blue line is a constant of calories burned if I walk vigorously for 40 mins. The intersection gives us the amount of ounces it takes to equal the number of calories I burned walking 40 mins. Which shows x as 29.6 ounces divided by 20 is 1.48 Guinness.

I wish my story problems as a kid were as interesting as this, but alas they were not, so here we are making up my own.

Monday, May 11, 2020

5 Million Step Man

Another year of Chuck does Data Science. For the 2019 year, I challenged myself to walk 5 million steps for the year which broke down to ~13000 steps per day. Crushed the goal and ended up going over 6 million steps for the year (6098464 to be exact) which was ~16000. Calculating that 2000 steps is a mile for me, I walked about 3050 miles. You see a pretty major dip in the number of steps in November because I strained my calf playing basketball during the early part of the month.

For the data visualizations this year I mostly worked on using the GPS data to get some interesting stats from the year. For instance, the number of times I walked the same routes. By far my favorite route is the Chuck route which I only got to do once, but is fun to look at. Below are a breakdown of step stats from the year and a link to the visualizations.

Total steps for the year: 6,098,464
Average steps per day: 16,708
Average steps per week: 117,278
Average steps per month: 508,205
Most steps in a month: 604,290 (August)
Least steps in a month: 318,127 (November)
Most steps in a day: 37,687
Least steps in a day: 1,123
Percentage of days meeting goal of 13000 steps: 297/365 81%
Sunday Steps Total (Avg):        734,654 (14,128)
Monday Steps Total (Avg):       943,700 (18,148)
Tuesday Steps Total (Avg):       996,785 (18,807)
Wednesday Steps Total (Avg)909,695 (17,494)
Thursday Steps Total (Avg):     950,875 (18,286)
Friday Steps Total (Avg):          822,101 (15,810)
Saturday Steps Total (Avg):      740,654 (14,243)
Most walked route: Bar Walk (300 times)


Data visualization can be found here.
Disclaimer: May not work well on mobile.

Saturday, June 22, 2019

Chuck Rates Beer

The 5th year for Chuck does Data Science, I challenged myself to drink a different beer everyday and rate it. The challenge was completed with no missing days (no applause necessary). I figured there could be some interesting findings from this data including what types of beer do I rate the highest/lowest, do I tend towards one type of beer, and could I make a model to predict whether I would like a new beer not in the current data set. If you follow the link you should be able to try it for yourself by following the link below. Just type in a beer select the correct one and it will be rated by Robo Chuck. There is also a calendar displaying each beer as its picture for that day. You can hover over it to see details and click on it to take you to Untappd for more info.

Data visualization and Robo Chuck can be found  here.
Disclaimer: May not work well on mobile.

Some interesting stats:

Highest rated beers (5 star rated):
Guinness - Guinness Draught
Great Divide Brewing Co. - Velvet Yeti Nitro
D9 Brewing Co. - Brown Sugar Brown Cow
Edmund's Oast - Peanut Butter & Jelly
Holy City Brewing - Pluff Mud Porter
Frothy Beard - Back From the Dead
Brauerei Lemke - Lemke Original
Anderson Valley Brewing Co. - Barney Flats Oatmeal Stout

Lowest rated beers (0.5 star rated):
Dogfish Head Craft Brewery - SeaQuench Ale
SweetWater Brewing Co. - Grass Monkey
Boston Beer Co. - Samuel Adams Pumpkin Ale

Breakdown of all ratings (0-5 in 0.5 increments):
0.0:   0
0.5:   3
1.0:   9
1.5:   30
2.0:   56
2.5:   84
3.0:   66
3.5:   58
4.0:   40
4.5:   11
5.0:   8

Breakdown of styles (number of beers I had in that style):
IPA - American 40
Pale Ale - American 20
Stout - Milk / Sweet 16
Lager - North American Adjunct 13
Lager - Pale 13
Porter - American 12
Lager - American Light 10
Hefeweizen 9
Witbier 9
Lager - Vienna 9
Brown Ale - American 8
Brown Ale - English 8
IPA - New England 8
Red Ale - American Amber / Red 8
Fruit Beer 7
Blonde Ale 7
IPA - Imperial / Double 7
Stout - American 7
Stout - Irish Dry 7
Golden Ale 6
Pilsner - Czech 5
Pale Ale - English 5
Cream Ale 5
Shandy / Radler 4
Lager - Euro 4
Lager - American Amber / Red 4
Sour - Gose 4
Pale Wheat Ale - American 4
Pilsner - German 4
Stout - American Imperial / Double 4
Porter - Coffee 4
IPA - Session / India Session Ale 4
Stout - Oatmeal 4
Scotch Ale / Wee Heavy 3
Lager - Dark 3
Extra Special / Strong Bitter 3
Sour - Ale 3
Lager - Helles 3
Stout - Foreign / Export 3
Porter - Other 3
Pilsner - Other 2
Kölsch 2
Saison / Farmhouse Ale 2
Cider - Other 2
Belgian Tripel 2
Festbier 2
Dark Ale 2
Märzen 2
Strong Ale - American 2
Lager - Munich Dunkel 2
Bock - Single / Traditional 2
Lager - Japanese Rice 2
Lager - Amber 2
Pumpkin / Yam Beer 2
Porter - English 2
Brown Ale - Other 2
Belgian Strong Dark Ale 1
Belgian Dubbel 1
Scottish Export Ale 1
Winter Warmer 1
Belgian Quad 1
Porter - Baltic 1
Rye Beer 1
Dunkelweizen 1
Pale Ale - Belgian 1
Stout - Imperial Milk / Sweet 1
Stout - English 1
Lager - IPL (India Pale Lager) 1
Mead - Braggot 1
Stout - Other 1
Cider - Sweet 1
English Bitter 1
Spiced / Herbed Beer 1
Bock - Maibock / Heller (Helles) / Lentebock 1
Brown Ale - Imperial / Double 1
Stout - Russian Imperial 1
Winter Ale 1
Other 1
IPA - Brown 1
Red Ale - Irish 1
Red Ale - Imperial / Double 1
Scottish Ale 1
Lager - Winter 1
Porter - Imperial / Double 1
Altbier 1
Malt Liquor 1
Smoked Beer 1
IPA - Triple 1
Stout - Oyster 1

Type of beer I had the most of:
IPA - American (40)

Breakdown of Major Styles (number of beers I had in that style):
Lager 67
IPA 61
Stout 46
Pale Ale 26
Porter 23
Brown Ale 19
Pilsner 11
Red Ale 10
Witbier 9
Hefeweizen 9
Sour 7
Fruit Beer 7
Blonde Ale 7
Golden Ale 6
Cream Ale 5
Shandy / Radler 4
Pale Wheat Ale 4
Scotch Ale / Wee Heavy 3
Cider 3
Extra Special / Strong Bitter 3
Bock 3
Strong Ale 2
Kölsch 2
Saison / Farmhouse Ale 2
Dark Ale 2
Festbier 2
Märzen 2
Pumpkin / Yam Beer 2
Belgian Tripel 2
Spiced / Herbed Beer 1
Rye Beer 1
Smoked Beer 1
Dunkelweizen 1
Scottish Ale 1
Belgian Quad 1
English Bitter 1
Altbier 1
Winter Warmer 1
Belgian Strong Dark Ale 1
Mead 1
Winter Ale 1
Scottish Export Ale 1
Other 1
Malt Liquor 1
Belgian Dubbel 1


Wednesday, September 5, 2018

Over the Wire

I meant to post this awhile ago like right after I gave the talk, but that didn't happen so I'm doing it now. Not too long ago I gave a talk at DakotaCon 2018 on executing Python in memory and some tips and tricks for doing so.

Here is the video.

Here are the slides.

Sunday, May 13, 2018

Chuck and People

As I've done the past four years I put forth a challenge to myself. This year it was to take a picture with a different person or group of people everyday and document it on Instagram. Mission accomplished! With the goal completed I needed to find someway to use the data and pictures I collected into something interesting and thought mosaics would be the perfect way to do that. So for each picture I created two mosaics, a progressive mosaic which uses a pool of photos of every photo up to that day and a total mosaic which is every photo I took for the project included in the photo. There are also tables showing percentages of total photos used for that mosaic and a bar showing the dominant colors of the original photo. I also took a high def photo which in the data visualization is titled main. The difference between this is that it is 150x150 pics and all the other photos are 100x100. Also because it is such a high def picture the photos in the mosaic show up much clearer because there are more pixels it is able to replace (it also takes longer to load). If you click on a photo it should pop open a tab with the full size photo allowing you to zoom in and see the photos making up the mosaic. Just to give you an idea of how big the mosaic is for the main photo, it would measure out to be approximately 7 ft. x 7 ft. if printed which unfortunately I don't have room for. It *only* took 36 hours straight compute time to make all the mosaics and get the dominant colors and every photo was used throughout the process. Some interesting stats:

Mosaic with lowest percentage of photos used: Day 143 used 137/365 (37.53%) of the photos
Mosaic with highest percentage of photos used: Day 147 used 336/365 (92.05%) of the photos

Pictures I was on the Left: 151
Pictures I was in the Middle: 24
Pictures I was on the Right: 190


Data visualization can be found  here.
Disclaimer: May not work well on mobile. Best bet is landscape mode.

Monday, May 15, 2017

Chuck Chugs Guinness for a Year

I made myself a challenge for 2016 to drink a Guinness everyday. The main goal was to collect data on how fast I could drink a Guinness everyday. The times are based on video time so actual times are probably slightly faster than this. Also its only granular to seconds so if it was 6.5 seconds it got rounded up to 7 seconds. To prove I did it, I took a video of everyday and posted it on YouTube. You can see some of the data visualizations and videos here. By clicking on a data point in the timeseries it will automatically center the Google map on the corresponding placemark and load the video from that day. Some stats from year:

Average Time: 6.9 seconds
Slowest Time: 13 seconds
Fastest Time: 5 seconds
Total Time: 42 minutes 6 seconds

Data visualizations and videos here.
Disclaimer: May not work well on mobile.

Thursday, May 26, 2016

Mapping Poop

For the year of 2015*, I mapped everywhere I pooped. I used the Android app Poop Map for mapping purposes. This was apparently a terrible idea as the app didn't have an easy way to get the data out of it easily. In the Android app, you could see the general location and date, but didn't have access to the lat long. In the desktop app, you could see the lat long, but not the date. So I went through and matched them up by looking up the lat long on Google maps and then comparing that to the data points on my phone which I turned into a csv file. From there I wrote a python script to give me all kinds of metrics on the data which you can see below. I used the same script to generate the necessary data to make my data viz. The data viz uses c3.js and Google Maps API. The Google map shows all my poop locations while the c3.js timeseries shows the distance each poop was from my house. By clicking on a data point in the timeseries it will automatically center the Google map on the corresponding placemark. Check out some interesting stats and the data viz below!

*It was actually Jan. 9th 2015-Jan. 9th 2016 due to a change in phones.

Most consecutive days: 13 days
Most poops in one day: 4 in one day
Farthest poop from my house: 2426 miles away
Average distance poop was from my house: 160 miles
Day of the week I pooped the most: Tuesday
Total number of poops: 454

Data Viz
Disclaimer: Doesn't work well on mobile.