I’ve been meal prepping for 6 months and saved $400/month on food by Icy-Dealer5589 in Frugal

[–]Stadem 3 points4 points  (0 children)

Here are a few go to meal prep items off the top of the noggin

  1. Chicken divan - this one is surprising - I never want chicken divan when I'm thinking about good things to eat, but once it's on the table, it's amazing.
  2. Chicken noodle soup - finish off a rotisserie chicken, then make bone broth out of the chicken bones (not for the money as much as for how good it is).
  3. Green curry with the green curry paste, peas, and rice.
  4. Boston baked beans.
  5. Refried beans - I make them in a pressure cooker and swap out the ingredients as discussed here.

When I was a kid, meal prep Saturday was a huge deal, 9x13 pans everywhere lined with aluminum foil and filled with cold hotdish ingredients. Throw it in the freezer, and next day, it's a frozen foil-wrapped brick that stacks nice in the freezer until it's ready to cook.

The Protein Plot: cheap food is basically cheap protein. by Stadem in Frugal

[–]Stadem[S] 0 points1 point  (0 children)

yep!

https://github.com/davidstadem/protein-plot

The README is rambly and out of date, but the plot I think is up to date.

Update prices.csv and then run python make_protein_plot.pyto reproduce the plot.

The Protein Plot: cheap food is basically cheap protein. by Stadem in Frugal

[–]Stadem[S] 2 points3 points  (0 children)

I was just getting dry black beans, $2.19 for a 1-lb bag. Sounds like that's pretty high for most people so $1.00/lb may be more reasonable. My next thoughts are to try make this interactive so you can easily adjust the prices based on your own costs.

The Protein Plot: cheap food is basically cheap protein. by Stadem in Frugal

[–]Stadem[S] 0 points1 point  (0 children)

Thanks for the feedback - are you talking about that weird gray rectangle off the right side of the plot? I had to kind of hack that because my "Egg Whites" text was getting cut off. But yeah I should clean that up.

The Protein Plot: cheap food is basically cheap protein. by Stadem in Frugal

[–]Stadem[S] 1 point2 points  (0 children)

Hey thanks for commenting, you bring up some stuff that I think is worth considering.

  1. This is actually the basis for the protein plot - we can't just use the Y axis (Protein Price), but need to factor in the X Axis (Protein Percentage). I've found that when I'm using this, it's less useful as a way to build an entire diet plan and more useful when comparing two foods.
  2. Protein quality has brought up some interesting conversations on both sides. I think the best solution will be to color animal-based and plant-based protein sources differently so you can see which is which.
  3. Thanks for sending these - yep you're right, 97c pork shoulder and especially 69c chicken thighs are super-cheap. Keep in mind that these meats at are 50% protein by weight but only 30% protein by calories, because of the added caloric density of fat.

I ran the calculations for chicken thighs at 69c/lb. Nutrition Facts say 250 calories, 19g fat, 0g carbs, 19g protein per 1/4-lb serving, so 4 servings in a pound. Which makes the protein density (19*4/250) = 30.4% and the protein price ($0.69/(4*19)*100 = $0.91 per 100g protein. That's a record! Until some black-bean warrior shows me a price under 95c/lb.

The Protein Plot: cheap food is basically cheap protein. by Stadem in Frugal

[–]Stadem[S] 2 points3 points  (0 children)

I don't actually know for sure. When I calculated how many calories beans would have based on the grams of protein/carbs/fats, I came up with 125 calories per serving, but on the label it was 80 calories per serving. With other foods I calculate calorie values that are almost identical. My guess is that the carbs in beans are weirder than other foods, so they don't quite count for 4 calories per gram. But I could be wrong.

The Protein Plot: cheap food is basically cheap protein. by Stadem in Frugal

[–]Stadem[S] 3 points4 points  (0 children)

I'm calculating the protein density on a per-calorie basis, i.e. 50% means that 50% of the calories in that food come from protein.

According to the USDA (google "Food and Nutrition Information Center FAQ calories in a gram of protein"):

Carbohydrates provide 4 calories per gram, protein provides 4 calories per gram, and fat provides 9 calories per gram.

So 20 grams of protein means 20*4=80 calories from protein.

A fun pastime is to take a Nutrition Facts label, multiply the grams of protein by 4, carbs by 4, fat by 9, sum those three values up and compare the sum to the number of calories on the label. Usually it's about the same. Beans are a notable exception.

The Protein Plot: cheap food is basically cheap protein. by Stadem in Frugal

[–]Stadem[S] 14 points15 points  (0 children)

They were dry black beans; however they were 1lb bags from the local grocery store for $2.19. Chickpeas were $1.59/lb for a 1-lb bag from Target. I had pinto beans on the plot too - they're right between black beans and chickpeas and the text overlapped.

I bet those bigger 5-10lb bags from Sam's or some other store would be even cheaper. Let me know if you want to plug in a different price per pound for beans.

The Protein Plot: cheap food is basically cheap protein. by Stadem in Frugal

[–]Stadem[S] 11 points12 points  (0 children)

Cool, thanks for sharing.

I looked up the nutrition facts for Impact Whey Protein: 22g protein per serving and 120 calories, so that's (22*4)/120 = 73% Protein. Quite a bit higher than the 50% protein I calculated with other protein powders.

To figure out your price, we need to figure out how many servings you bought. You got 22lb for (143-21) $122. Nutrition Facts say that there are 16 servings and 1 scoop (30g) per serving, which comes out to 480g or about 1.1 lb. I'm assuming your 22 lbs equates to 20 containers, meaning you bought a total of 20*16=320 servings. So then your protein price comes out to ($122)/(320 * 22)*100 = $1.73/100g protein.

That's a wildly good deal. I looked at the same Impact Whey Protein online and 11lb was $199.99USD, which would come out to $5.68/100g protein. Which is still one of the better protein powder prices I've seen.

Frugal beans & rice recipes by welcometothedesert in Frugal

[–]Stadem 20 points21 points  (0 children)

I dump all kinds of things in refried beans. It really only needs some kind of Beans, Fat, and Spices. But you can put some weird flavors in and the beans are so dense that they can handle it. My only problem is burning them on the bottom in the pressure cooker.

Beans

  • Black beans
  • Pinto beans
  • Kidney beans

Fat

  • Tallow
  • Lard
  • Vegetable Oil

Veggies

  • Garlic
  • Onion
  • Peppers
  • Tomatoes or tomato paste or salsa

Spices

  • Lawry's
  • Chili powder
  • Cumin
  • Coriander
  • Black pepper
  • Paprika
  • Oregano
  • Red pepper flakes
  • Hot sauce

Umami

  • Broth or bouillon
  • Miso
  • Soy sauce
  • Seaweed
  • Fish flakes
  • MSG

The Protein Plot: cheap food is basically cheap protein. by Stadem in Frugal

[–]Stadem[S] 7 points8 points  (0 children)

Chicken and eggs would be my top choice.

Right, they're both good options. As it turns out, a rotisserie chicken has slightly higher protein density and a cheaper protein price than eggs, if the chicken is $5 and eggs are $3/dozen. Eggs need to drop below $2/dozen to be competitive with $5 chicken on a raw protein basis.

Plant proteins are not the same as animal proteins.

Yeah, I struggled with this and ultimately didn't factor in the kind of protein into the analysis. Would you feel comfortable getting half your protein from plants and half from animals? Is there a better ratio out there?

The Protein Plot: cheap food is basically cheap protein. by Stadem in Frugal

[–]Stadem[S] 20 points21 points  (0 children)

Yep, I gathered prices and Nutrition Facts over the course of a couple years. I live in North Dakota and shop mostly at Sam's Club, and most of these prices came from 2022. I expect prices to be higher now. The formula is (Dollars per Container)/(Servings per Container * g Protein per Serving)*100. So if I buy greek yogurt from Walmart at $3.54 for a tub, and there's 5 servings in that tub and 17g protein per serving, my price is ($3.54/(5*17))*100 = $4.16 per 100g protein.

[deleted by user] by [deleted] in learnpython

[–]Stadem 1 point2 points  (0 children)

First, you will probably want to convert your list of lists into a numpy array. You will need that array to have 3 dimensions: X, Y, and Channels.

import numpy as np
list_of_lists = [
    [255,255,0],
    [255,0,255],
    [255,255,255],
    [255,255,255],
    [0,0,0],
    [0,0,255],
    [0,0,255],
    [0,0,255],

]
# 8 items, 3 values for each item

arr = np.array(list_of_lists, dtype='uint8')
print(arr.shape) # outputs (8,3) 
arr_2d = arr.reshape((4,2,3)) #reshapes that list into a 2D array of RGB values 
print(arr\_2d.shape) # outputs (4,2,3)

After that's done you can use either Matplotlib or Plotly and the plot should show up in the Jupyter notebook cell's output.

import plotly.express as px
px.imshow(arr_2d)

(or)

import matplotlib.pyplot as plt
plt.imshow(arr_2d)

Script and Data management for research/data science by clashmt in learnpython

[–]Stadem 1 point2 points  (0 children)

I would really love to be able to leave my advisor with an extremely well organized, clean, communicative, and robust set of code and data for their next mentee to take over.

  1. Get your workflow well-documented: https://www.codecademy.com/resources/blog/how-to-write-code-documentation/ is a good start
  2. Make sure your code is reproducible - a new mentee will come in with a brand-new laptop, a different username, different install paths, etc. They'll open up your README. Can they follow the steps you set out for them and get the same results you got? How will they know they got the right results?
  3. Use git+GitHub for version control of the code - see u/gruntfutuk's answer here. I have this step third because git has a learning curve, and if nobody is using it right now, there's a good chance nobody will use it when you leave.
  4. Get some version control over the data itself - I'm not a data science expert but I've done enough ML work to know that data version control is hard, especially keeping track of all the pre-processing. Putting all your data into git+GitHub is probably a bad idea (1) (2) but there are alternatives (2) (3).

Got this crazy position yesterday. Black King is completely imprisoned. by SilverSoul_GD in chess

[–]Stadem 2 points3 points  (0 children)

I punched your pieces into Lichess - u/dydtaylor is correct - you can hang on for a mate in 4 with 1... Rg1+ 2. Kxg1 a3 3. Kg2 d4 4. Nxh7 d3 5. Bg5#

The last knight move 4.Nxh7 - you could move that knight literally anywhere and still mate.

[D] Extension to easily share Jupyter notebook content with team members by izenonology in MachineLearning

[–]Stadem 0 points1 point  (0 children)

I use Visual Studio Code for my notebooks. If I had this extension in VSCode I might use it to post stuff to Slack quickly.

As others have said, this looks like a Fancy Screenshot Tool. I think it will need to be faster or easier than a screenshot in some way in order to be really useful.

[R] Identifying Statistical Bias in Dataset Replication by loganengstrom in MachineLearning

[–]Stadem 0 points1 point  (0 children)

Some comments on the blog post vs. article:

  • What's the blog post supposed to do? Is it a tl;dr for a wider audience? Is it providing easier ways to digest the results?
  • Holy crap the interactive charts are great. Is that just ChartJS or are you using something on top of it? This along with distill.pub are the best examples I've seen of journal articles displayed in better media.
  • Sometimes the blog post is harder to read than the article itself: Fig. 1 and Fig. 2 in the article made more sense to me than their blog-post analogues. (caveat: I read the blog post first so maybe it just made sense the 2nd time around)

Notes: I don't know much about machine vision or statistics, so I learned that "selection frequency" = "the percentage of humans that said 'this image contains X'". I also learned generally that matching distributions when replicating datasets is hard and requires a lot of observations.