FOXO4 DRI prices (July 2017)

I’ve removed a few entries from the table of prices I was tracking, because they were not DRI peptides.

If you are buying in bulk, it would be cheaper to synthesise, as discovered by some people at Longecity, who were quoted about $231.15 per 30mg dose, as long as you’re willing to fork out nearly $8000 to buy a 1000mg shipment.

The off-the-shelf prices are coming down quickly, month by month, as you can see, with NovoPro being the first lab to provide 30mg for less than $2000 (down from more than twice the price only two months ago!)

Shop May June July
Bucky Labs 2460 2265
NovoPro 4060.2 2144.6 1756.8

Hopefully next month, there will be more labs providing FOXO4 DRI off-the-shelf.

It’s still very expensive, but I’m certain that as demand ramps up, the prices will drop.

If you are aware of any lab that sells FOXO4 D-Retro-Inverso(DRI) peptide please comment below so I can add them to the list

Foods High in Calcium and Vitamin D

I saw this question asked recently and wondered how you would measure it. It’s (relatively) easy to see what foods are high in Vitamin D or in Calcium – download the USDA nutrition database and sort by either column. But to measure both?

Food has nutrition in different ratios. Some have low amounts of calcium and high vitamin D, some high and low, some low and low, some high and high. That’s obviously a simplification.

How to measure? Well, the method I chose was to make a spreadsheet with the values of calcium in mg and vitamin D in mcg, add two columns which measure how they relate to the recommended daily amounts for those nutritions, and a third column which multiplies the two RDA relations together. Then I sorted by that multiple.

The resulting table gives this list of foods high in calcium and vitamin D, ordered by their multiple of the recommended daily allowance, in descending order:

long_desc calcium (mg) *rda vitamin_d (mcg) *rda together
Cereals ready-to-eat, GENERAL MILLS, Whole Grain TOTAL 3333 83.33 8.30 0.83 69.16
Babyfood, cereal, oatmeal, dry fortified 1160 29.00 12.70 1.27 36.83
Milk, dry, nonfat, regular, with added vitamin A and vitamin D 1257 31.43 11.00 1.10 34.57
Milk, dry, nonfat, instant, with added vitamin A and vitamin D 1231 30.78 11.00 1.10 33.85
Beverages, UNILEVER, SLIMFAST Shake Mix, high protein, whey powder, 3-2-1 Plan, 1039 25.98 9.60 0.96 24.94
Milk, dry, whole, with added vitamin D 912 22.80 10.50 1.05 23.94
Beverages, nutritional shake mix, high protein, powder 714 17.85 12.50 1.25 22.31
Cereals ready-to-eat, GENERAL MILLS, TOTAL Raisin Bran 1887 47.18 4.70 0.47 22.17
Cheese product, pasteurized process, American, vitamin D fortified 1360 34.00 6.50 0.65 22.10
Protein supplement, milk based, Muscle Milk Light, powder 1200 30.00 7.00 0.70 21.00
Beverages, rich chocolate, powder 909 22.73 9.10 0.91 20.68
Beverages, OVALTINE, Classic Malt powder 909 22.73 9.10 0.91 20.68
Beverages, OVALTINE, chocolate malt powder 909 22.73 9.10 0.91 20.68
Cheese, pasteurized process, American, fortified with vitamin D 1045 26.13 7.50 0.75 19.59
Infant formula, ABBOTT NUTRITION, SIMILAC, GO AND GROW, powder, with ARA and DHA 998 24.95 7.70 0.77 19.21
Infant formula, GERBER, GOOD START 2, PROTECT PLUS, powder 956 23.90 7.70 0.77 18.40
Babyfood, cereal, rice, dry fortified 860 21.50 8.50 0.85 18.28
Infant formula, MEAD JOHNSON, ENFAMIL, ENFAGROW, GENTLEASE, Toddler, LIPIL, powder 970 24.25 7.50 0.75 18.19
Infant Formula, GERBER GOOD START 2, GENTLE PLUS, powder 935 23.38 7.40 0.74 17.30
Beverages, Dairy drink mix, chocolate, reduced calorie, with low-calorie sweeteners, powder 1412 35.30 4.70 0.47 16.59
Infant formula, MEAD JOHNSON, NEXT STEP, PROSOBEE LIPIL, powder, with ARA and DHA 920 23.00 7.10 0.71 16.33
Infant formula, MEAD JOHNSON, NEXT STEP PROSOBEE, powder, not reconstituted 920 23.00 7.10 0.71 16.33
Infant formula, MEAD JOHNSON, ENFAMIL, ENFAGROW, Soy, Toddler, LIPIL, powder 930 23.25 7.00 0.70 16.28
Infant formula, MEAD JOHNSON, ENFAMIL, ENFACARE LIPIL, with iron, powder, with ARA and DHA 590 14.75 9.80 0.98 14.46
Fish, salmon, sockeye, canned, drained solids 232 5.80 21.00 2.10 12.18
Infant formula, ABBOTT NUTRITION, SIMILAC, NEOSURE, powder, with ARA and DHA 541 13.53 9.00 0.90 12.17
Toddler formula, MEAD JOHNSON, ENFAGROW, PREMIUM (formerly ENFAMIL, LIPIL, NEXT STEP), powder 600 15.00 7.50 0.75 11.25
Cereals ready-to-eat, GENERAL MILLS, FIBER ONE 80 Calories, Chocolate Squares 1333 33.33 3.30 0.33 11.00
Infant formula, NESTLE, GOOD START 2 ESSENTIALS, with iron, powder 565 14.13 7.70 0.77 10.88
Infant formula, ABBOTT NUTRITION, SIMILAC, ISOMIL, with iron, powder, not reconstituted 540 13.50 7.70 0.77 10.39
Infant formula, ABBOTT NUTRITION, SIMILAC, ISOMIL, ADVANCE with iron, powder, not reconstituted 540 13.50 7.70 0.77 10.39
Fish, salmon, pink, canned, drained solids 283 7.08 14.50 1.45 10.26
Child formula, MEAD JOHNSON, PORTAGEN, with iron, powder, not reconstituted 440 11.00 9.30 0.93 10.23
Infant formula, MEAD JOHNSON, PREGESTIMIL, with iron, powder, not reconstituted 580 14.50 7.00 0.70 10.15
Infant formula, NESTLE, GOOD START ESSENTIALS SOY, with iron, powder 526 13.15 7.70 0.77 10.13
Infant formula, ABBOTT NUTRITION, SIMILAC, SENSITIVE, (LACTOSE FREE), powder, with ARA and DHA 436 10.90 9.20 0.92 10.03
Infant formula, MEAD JOHNSON, ENFAMIL, PROSOBEE, with iron, powder, not reconstituted 530 13.25 7.50 0.75 9.94
Infant formula, MEAD JOHNSON, ENFAMIL, PROSOBEE LIPIL, with iron, powder, not reconstituted, with ARA and DHA 530 13.25 7.50 0.75 9.94
Infant formula, NESTLE, GOOD START SOY, with ARA and DHA, powder 526 13.15 7.50 0.75 9.86
Infant formula, GERBER, GOOD START 2 SOY, with iron, powder 526 13.15 7.50 0.75 9.86
Infant Formula, MEAD JOHNSON, ENFAMIL, Premium, Newborn, powder 400 10.00 9.50 0.95 9.50
Salmon, sockeye, canned, total can contents 198 4.95 19.00 1.90 9.41
Formulated bar, SLIM-FAST OPTIMA meal bar, milk chocolate peanut 668 16.70 5.40 0.54 9.02
Beverages, UNILEVER, SLIMFAST Shake Mix, powder, 3-2-1 Plan 364 9.10 9.60 0.96 8.74
Infant formula, PBM PRODUCTS, store brand, soy, powder 453 11.33 7.60 0.76 8.61
Formulated bar, MARS SNACKFOOD US, SNICKERS MARATHON Energy Bar, all flavors 754 18.85 4.50 0.45 8.48
Infant formula, MEAD JOHNSON, ENFAMIL, LACTOFREE LIPIL, with iron, powder, with ARA and DHA 430 10.75 7.80 0.78 8.39
Infant formula, MEAD JOHNSON, ENFAMIL, LACTOFREE, with iron, powder, not reconstituted 430 10.75 7.80 0.78 8.39
Infant formula, ABBOTT NUTRITION, SIMILAC, For Spit Up, powder, with ARA and DHA 432 10.80 7.70 0.77 8.32
Cereals ready-to-eat, GENERAL MILLS, FIBER ONE 80 Calories, Honey Squares 1000 25.00 3.30 0.33 8.25
Infant Formula, MEAD JOHNSON, ENFAMIL, GENTLEASE, powder 420 10.50 7.80 0.78 8.19
Infant formula, ABBOTT NUTRITION, SIMILAC, with iron, powder, not reconstituted 410 10.25 7.90 0.79 8.10
Infant formula, ABBOTT NUTRITION, SIMILAC, low iron, powder, not reconstituted 410 10.25 7.90 0.79 8.10
Infant formula, ABBOTT NUTRITION, SIMILAC, ADVANCE, with iron, powder, not reconstituted 410 10.25 7.90 0.79 8.10
Cereals ready-to-eat, RALSTON Corn Biscuits 378 9.45 8.30 0.83 7.84
Infant formula, MEAD JOHNSON, ENFAMIL, with iron, powder 400 10.00 7.80 0.78 7.80
Infant formula, MEAD JOHNSON, ENFAMIL, LIPIL, with iron, powder, with ARA and DHA 400 10.00 7.80 0.78 7.80
Infant formula, MEAD JOHNSON, ENFAMIL, low iron, powder, not reconstituted 400 10.00 7.80 0.78 7.80
Infant formula, MEAD JOHNSON, ENFAMIL, AR LIPIL, powder, with ARA and DHA 397 9.93 7.70 0.77 7.64
Infant formula, ABBOTT NUTRITION, ALIMENTUM ADVANCE, with iron, powder, not reconstituted, with DHA and ARA 534 13.35 5.70 0.57 7.61
Egg, yolk, dried 289 7.23 10.40 1.04 7.51
Infant formula, MEAD JOHNSON, ENFAMIL, NUTRAMIGEN, with iron, powder, not reconstituted 470 11.75 6.30 0.63 7.40
Infant formula, MEAD JOHNSON, ENFAMIL, NUTRAMIGEN LIPIL, with iron, powder, not reconstituted, with ARA and DHA 470 11.75 6.30 0.63 7.40
Infant formula, MEAD JOHNSON, ENFAMIL, NUTRAMIGEN, AA LIPIL, powder, not reconstituted 470 11.75 6.30 0.63 7.40
Fish, salmon, pink, canned, total can contents 215 5.38 13.70 1.37 7.36
Infant Formula, MEAD JOHNSON, ENFAMIL, Premium LIPIL, Infant, powder 390 9.75 7.50 0.75 7.31
Infant Formula, MEAD JOHNSON, ENFAMIL, Premium, Infant, powder 390 9.75 7.50 0.75 7.31
Cheese product, pasteurized process, American, reduced fat, fortified with vitamin D 529 13.23 5.30 0.53 7.01
Formulated bar, LUNA BAR, NUTZ OVER CHOCOLATE 886 22.15 3.10 0.31 6.87
Infant formula, NESTLE, GOOD START SUPREME, with iron, powder 343 8.58 7.70 0.77 6.60
Infant formula, GERBER, GOOD START, PROTECT PLUS, powder 343 8.58 7.70 0.77 6.60
Cereals ready-to-eat, RALSTON TASTEEOS 357 8.93 7.10 0.71 6.34
Infant formula, PBM PRODUCTS, store brand, powder 331 8.28 7.60 0.76 6.29
Protein supplement, milk based, Muscle Milk, powder 500 12.50 5.00 0.50 6.25
Fish, salmon, chum, canned, drained solids with bone 249 6.23 9.60 0.96 5.98
Formulated bar, MARS SNACKFOOD US, SNICKERS MARATHON Protein Performance Bar, Caramel Nut Rush 625 15.63 3.80 0.38 5.94
Cereals ready-to-eat, GENERAL MILLS, CINNAMON TOAST CRUNCH 444 11.10 5.30 0.53 5.88
Infant formula, ABBOTT NUTRITION, SIMILAC, PM 60/40, powder not reconstituted 288 7.20 7.70 0.77 5.54
Cereals ready-to-eat, GENERAL MILLS, 25% Less Sugar CINNAMON TOAST CRUNCH 714 17.85 2.90 0.29 5.18
Cereals ready-to-eat, GENERAL MILLS, Honey KIX 455 11.38 4.50 0.45 5.12
Egg, whole, dried 244 6.10 8.30 0.83 5.06
Cereals ready-to-eat, GENERAL MILLS, HONEY NUT CHEERIOS 425 10.63 4.60 0.46 4.89
Cereals ready-to-eat, GENERAL MILLS, KIX 570 14.25 3.30 0.33 4.70
Fish, sardine, Atlantic, canned in oil, drained solids with bone 382 9.55 4.80 0.48 4.58
Cereals, KELLOGG’S SPECIAL K NOURISH, Cinnamon Raisin Pecan, dry 385 9.63 4.70 0.47 4.52
Fish, mackerel, jack, canned, drained solids 241 6.03 7.30 0.73 4.40
Cheese food, pasteurized process, American, vitamin D fortified 682 17.05 2.50 0.25 4.26
Cheese food, pasteurized process, American, without added vitamin D 682 17.05 2.50 0.25 4.26
Cereals ready-to-eat, GENERAL MILLS, LUCKY CHARMS 434 10.85 3.90 0.39 4.23
Cereals ready-to-eat, KELLOGG, KELLOGG’S ALL-BRAN Original 389 9.73 4.30 0.43 4.18
Fish, mackerel, salted 66 1.65 25.20 2.52 4.16
Cheese, fresh, queso fresco 566 14.15 2.70 0.27 3.82
Vitasoy USA Nasoya, Lite Silken Tofu 394 9.85 3.80 0.38 3.74
Cereals ready-to-eat, GENERAL MILLS, COOKIE CRISP 385 9.63 3.80 0.38 3.66
Cereals, KELLOGG’S SPECIAL K NOURISH, Cranberry Almond, dry 385 9.63 3.80 0.38 3.66
Cereals, KELLOGG’S SPECIAL K NOURISH, Maple Brown Sugar Crunch, dry 385 9.63 3.80 0.38 3.66
Cereals ready-to-eat, MALT-O-MEAL, HONEY GRAHAM SQUARES 367 9.18 3.80 0.38 3.49
Cereals ready-to-eat, GENERAL MILLS, Rice CHEX 370 9.25 3.70 0.37 3.42
Cereals ready-to-eat, GENERAL MILLS, Berry Burst CHEERIOS, Triple Berry 370 9.25 3.70 0.37 3.42
Cereals ready-to-eat, GENERAL MILLS, FROSTED CHEERIOS 370 9.25 3.70 0.37 3.42
Cereals ready-to-eat, GENERAL MILLS, COUNT CHOCULA 370 9.25 3.70 0.37 3.42
Cereals ready-to-eat, GENERAL MILLS, COCOA PUFFS 370 9.25 3.70 0.37 3.42
Cereals ready-to-eat, GENERAL MILLS, DORA THE EXPLORER 370 9.25 3.70 0.37 3.42
Cereals ready-to-eat, GENERAL MILLS, Fruity CHEERIOS 370 9.25 3.70 0.37 3.42
Cereals ready-to-eat, GENERAL MILLS, CHEERIOS, Chocolate 370 9.25 3.70 0.37 3.42
Cereals ready-to-eat, GENERAL MILLS, Dulce De Leche CHEERIOS 370 9.25 3.70 0.37 3.42
Cereals ready-to-eat, GENERAL MILLS, CHEERIOS 401 10.03 3.40 0.34 3.41
Cereals ready-to-eat, GENERAL MILLS, BERRY BERRY KIX 421 10.53 3.20 0.32 3.37
Steelhead trout, dried, flesh (Shoshone Bannock) 85 2.13 15.70 1.57 3.34
Cereals ready-to-eat, GENERAL MILLS, CHOCOLATE LUCKY CHARMS 357 8.93 3.60 0.36 3.21
Cereals ready-to-eat, GENERAL MILLS, CHEERIOS, Banana Nut 357 8.93 3.60 0.36 3.21
Cereals ready-to-eat, GENERAL MILLS, Multi Grain CHEERIOS, Peanut Butter 357 8.93 3.60 0.36 3.21
Egg Mix, USDA Commodity 171 4.28 7.40 0.74 3.16
Cereals ready-to-eat, frosted oat cereal with marshmallows 333 8.33 3.60 0.36 3.00
Cheese, dry white, queso seco 661 16.53 1.80 0.18 2.97
Cereals ready-to-eat, GENERAL MILLS, Multi-Grain CHEERIOS 345 8.63 3.40 0.34 2.93
Cereals ready-to-eat, GENERAL MILLS, REESE’S PUFFS 345 8.63 3.40 0.34 2.93
Fish, sardine, Pacific, canned in tomato sauce, drained solids with bone 240 6.00 4.80 0.48 2.88
Cereals ready-to-eat, MALT-O-MEAL, MARSHMALLOW MATEYS 333 8.33 3.30 0.33 2.75
Cereals ready-to-eat, MALT-O-MEAL, COCO-ROOS 333 8.33 3.30 0.33 2.75
Cereals ready-to-eat, GENERAL MILLS, APPLE CINNAMON CHEERIOS 333 8.33 3.30 0.33 2.75
Cereals ready-to-eat, MALT-O-MEAL, CINNAMON TOASTERS 333 8.33 3.30 0.33 2.75
Cereals ready-to-eat, GENERAL MILLS, CHEERIOS, Yogurt Burst, strawberry 333 8.33 3.30 0.33 2.75
Cereals ready-to-eat, GENERAL MILLS, Cinnamon CHEX 333 8.33 3.30 0.33 2.75
Cereals ready-to-eat, GENERAL MILLS, COCOA PUFFS, 25% Reduced Sugar 333 8.33 3.30 0.33 2.75
Cereals ready-to-eat, MALT-O-MEAL, Honey Nut SCOOTERS 333 8.33 3.30 0.33 2.75
Cereals ready-to-eat, GENERAL MILLS, FROSTED TOAST CRUNCH 333 8.33 3.30 0.33 2.75
Cereals ready-to-eat, GENERAL MILLS, Oat Cluster CHEERIOS Crunch 296 7.40 3.70 0.37 2.74
Cereals ready-to-eat, MALT-O-MEAL, Blueberry MUFFIN TOPS Cereal 338 8.45 3.20 0.32 2.70
Milk, evaporated, 2% fat, with added vitamin A and vitamin D 267 6.68 4.00 0.40 2.67
Cereals ready-to-eat, GENERAL MILLS, 25% Less Sugar TRIX 357 8.93 2.90 0.29 2.59
Cereals ready-to-eat, GENERAL MILLS, Corn CHEX 323 8.08 3.20 0.32 2.58
Cereals ready-to-eat, GENERAL MILLS, GOLDEN GRAHAMS 323 8.08 3.20 0.32 2.58
Cereals ready-to-eat, GENERAL MILLS, PEANUT BUTTER TOAST CRUNCH 323 8.08 3.20 0.32 2.58
Cereals ready-to-eat, GENERAL MILLS, HONEY NUT CHEERIOS, MEDLEY CRUNCH 323 8.08 3.20 0.32 2.58
Cereals ready-to-eat, GENERAL MILLS, Apple Cinnamon CHEX 323 8.08 3.20 0.32 2.58
Fish, carp, raw 41 1.03 24.70 2.47 2.53
Cereals ready-to-eat, GENERAL MILLS, Honey Nut CHEX 313 7.83 3.10 0.31 2.43
Cereals ready-to-eat, GENERAL MILLS, TRIX 313 7.83 3.10 0.31 2.43
Cereals ready-to-eat, MALT-O-MEAL, TOOTIE FRUITIES 313 7.83 3.10 0.31 2.43
Cereals ready-to-eat, GENERAL MILLS, Cinnamon Burst CHEERIOS 313 7.83 3.10 0.31 2.43
Seaweed, Canadian Cultivated EMI-TSUNOMATA, dry 299 7.48 3.10 0.31 2.32
Cereals ready-to-eat, GENERAL MILLS, FRANKENBERRY 303 7.58 3.00 0.30 2.27
Cereals ready-to-eat, GENERAL MILLS, BOO BERRY 303 7.58 3.00 0.30 2.27
Cereals ready-to-eat, MALT-O-MEAL, Apple ZINGS 303 7.58 3.00 0.30 2.27
Cereals ready-to-eat, MALT-O-MEAL, CHOCOLATE MARSHMALLOW MATEYS 267 6.68 3.30 0.33 2.20
Snack, BALANCE, original bar 543 13.58 1.60 0.16 2.17
Fish, Salmon, pink, canned, drained solids, without skin and bones 60 1.50 14.10 1.41 2.12
Cereals ready-to-eat, GENERAL MILLS, Chocolate CHEX 286 7.15 2.90 0.29 2.07
Cereals ready-to-eat, GENERAL MILLS, BASIC 4 455 11.38 1.80 0.18 2.05
Egg, yolk, raw, frozen, pasteurized 134 3.35 6.00 0.60 2.01
Fish, caviar, black and red, granular 275 6.88 2.90 0.29 1.99
Salmon, sockeye, canned, drained solids, without skin and bones 37 0.93 21.50 2.15 1.99
Vitasoy USA, Nasoya Lite Firm Tofu 184 4.60 3.90 0.39 1.79
Cheese, cheddar, sharp, sliced 711 17.78 1.00 0.10 1.78
Milk and cereal bar 410 10.25 1.70 0.17 1.74
Egg, yolk, raw, fresh 129 3.23 5.40 0.54 1.74
Cereals ready-to-eat, KELLOGG’S, SPECIAL K protein, cinnamon brown sugar crunch 205 5.13 3.30 0.33 1.69
Fish, cod, Atlantic, dried and salted 160 4.00 4.00 0.40 1.60
Cheese, pasteurized process, American, without added vitamin D 1045 26.13 0.60 0.06 1.57
Cheese, parmesan, shredded 1253 31.33 0.50 0.05 1.57
Cheese, goat, hard type 895 22.38 0.70 0.07 1.57
Vitasoy USA Organic Nasoya, Tofu Plus Extra Firm 246 6.15 2.50 0.25 1.54
Cereals ready-to-eat, KELLOGG, KELLOGG’S COCOA KRISPIES 127 3.18 4.80 0.48 1.52
Cheese, gruyere 1011 25.28 0.60 0.06 1.52
Vitasoy USA Organic Nasoya Sprouted, Tofu Plus Super Firm 239 5.98 2.50 0.25 1.49
Vitasoy USA Organic Nasoya, Tofu Plus Firm 237 5.93 2.50 0.25 1.48
Cheese, parmesan, hard 1184 29.60 0.50 0.05 1.48
Milk, buttermilk, dried 1184 29.60 0.50 0.05 1.48
Milk, canned, evaporated, nonfat, with added vitamin A and vitamin D 290 7.25 2.00 0.20 1.45
Mushrooms, brown, italian, or crimini, exposed to ultraviolet light, raw 18 0.45 31.90 3.19 1.44
Fish, trout, rainbow, farmed, cooked, dry heat 30 0.75 19.00 1.90 1.43
Cereals ready-to-eat, KELLOGG’S SPECIAL K Chocolate Almond 105 2.63 5.40 0.54 1.42
Cheese, romano 1064 26.60 0.50 0.05 1.33
Milk, canned, evaporated, with added vitamin D and without added vitamin A 261 6.53 2.00 0.20 1.31
Fish, salmon, coho, wild, cooked, dry heat 45 1.13 11.30 1.13 1.27
Cheese, white, queso blanco 690 17.25 0.70 0.07 1.21
Cheese, swiss, low sodium 961 24.03 0.50 0.05 1.20
Cheese, parmesan, low sodium 800 20.00 0.60 0.06 1.20
Infant formula, ABBOTT NUTRITION, SIMILAC, NATURAL CARE, ADVANCE, ready-to-feed, with ARA and DHA 163 4.08 2.90 0.29 1.18
Fish, eel, mixed species, raw 20 0.50 23.30 2.33 1.16
Cheese, Mexican, blend, reduced fat 1146 28.65 0.40 0.04 1.15
Milk, dry, whole, without added vitamin D 912 22.80 0.50 0.05 1.14
Steelhead trout, boiled, canned (Alaska Native) 30 0.75 15.10 1.51 1.13
Cheese, monterey 746 18.65 0.60 0.06 1.12
Cereals ready-to-eat, GENERAL MILLS, Wheat CHEX 213 5.33 2.10 0.21 1.12
Cheese, parmesan, dry grated, reduced fat 1109 27.73 0.40 0.04 1.11
Beverages, Malted drink mix, chocolate, with added nutrients, powder, prepared with whole milk 139 3.48 3.10 0.31 1.08
Cheese, muenster 717 17.93 0.60 0.06 1.08
Cheese, parmesan, grated 853 21.33 0.50 0.05 1.07
Cheese, cheddar 710 17.75 0.60 0.06 1.07
Cheese, low-sodium, cheddar or colby 703 17.58 0.60 0.06 1.05
Infant formula, MEAD JOHNSON, ENFAMIL, Premature, 20 calories ready-to-feed 108 2.70 3.90 0.39 1.05
Infant formula, MEAD JOHNSON, ENFAMIL, Premature, 24 calo ready-to-feed 108 2.70 3.90 0.39 1.05
Infant formula, MEAD JOHNSON, ENFAMIL, Premature, 20 calories ready-to-feed Low iron 108 2.70 3.90 0.39 1.05
Infant formula, MEAD JOHNSON, ENFAMIL, Premature, 24 calories ready-to-feed Low iron 108 2.70 3.90 0.39 1.05
Cheese, colby 685 17.13 0.60 0.06 1.03
Cheese, mexican, queso cotija 800 20.00 0.50 0.05 1.00
Cereals ready-to-eat, GENERAL MILLS, FIBER ONE, Caramel Delight 200 5.00 2.00 0.20 1.00
Beverages, chocolate malt powder, prepared with 1% milk, fortified 160 4.00 2.50 0.25 1.00
Fish, herring, Atlantic, cooked, dry heat 74 1.85 5.40 0.54 1.00

 

web stats analysis program

Every day, I spend about an hour taking figures from Google Webmaster Search Analytics and adding them to a spreadsheet I manage that does some calculations and then highlights anything interesting in the data.

I got tired of the drudgery of it, so spent most of the day today building something to cut that down to just a few seconds. Basically, I just open up the new stats thing, upload a CSV file into it, and it does all the hard work itself.

And then I stuck the whole thing up on GitHub: here you go

what I’m up to these days

I’m going to start blogging again soon. I’m getting more and more into Arduino stuff, and want to be able to explain stuff properly to my students at the Monaghan Coder Dojo, so will be writing articles explaining what I’m teaching.

In work (FieldMotion, where we do field service management software), we’re doing some really interesting things with Zapier, which lets us easily integrate with more than 750 applications.

We’re also doing a new thing with the reports that we generate, where we can apply “skip logic” to the actual reports, resulting in personalised reports depending on the questions answered in the job forms.

I’ve had to take a break from the 3D Printer stuff, because the printer I had (a Makibox) broke down so often that I was spending more time fixing it than using it. I’m not quitting with 3D printing – just need to wait for a bit of cash to come in so I can afford a better printer. Once I have that new printer, the first thing I’m doing is making a second printer with it!

a more precise measurement of the number of cows murdered for the new UK fivers

image taken from https://www.theguardian.com/business/2016/dec/02/5-animal-fat-bank-note-british-vegetarians-being-stupid-says-inventor

There is a Vice article that claims to have an accurate measurement of how many cows were killed to make the new UK five-pound notes.

The say it’s half a cow.

Ignoring that you can’t really kill just half of a cow, let’s look at their maths.

How much do cows weigh? Between 1,100kg for a male (bull) and 720kg for a female. So, on average, a cow weighs 910kg.

Not true. If you want the average weight of a cow, you need to remember that 50% of male cows are murdered before they become adults, so the average needs to take that into account.

It looks like Vice got their weights from Google, which says 1100kg for a male, and 720kg for a female.

Given a 2:1 female:male ratio, the average is more like (720*2+1100)/3=850kg per cow.

The body fat content of an average cow is 25 percent. Therefore, the amount of fat in an average cow’s body is 227.5kg.

Vice appears to take the word of this question‘s answerer when it states 25%.

However, if you trust the word of the Canadian government, then it’s more like 15%. The Oklahoma state government says it’s less than 18% (including bone, skin), making the 15% sound about right.

So, 15% of 720Kg. Therefore, the amount of fat in an average cow’s body is 108kg, not 227.5kg. Less than half what Vice stated.

How many kilograms of this fat is contained in offcuts you could use to make tallow? About 40kg, according to a man at the James Elliott butcher in Islington.

Tallow is rendered from suet, which is made from the fat found around the loins and kidneys. So we can’t just use all the fat from the cow. According to the Oklahoma Department of Agriculture, about 4% of a cow’s weight is suet. That’s 28.8kg (720*.04), not 40kg.

How much tallow is used in one note, according to the Bank of England? “A trace”, which chemically means less than 100 parts per million, or 0.01 percent. A polymer consultant I called confirmed that the tallow present in a given polymer would be a fraction of a single percentage.

Again, where do they come up with these numbers? No references given.

First off, when some PR guy says “there’s just a trace”, they are not speaking as an analytical chemist. They are saying “stop asking. not enough per note to make a difference on a scale”.

They say that trace means less than 100ppm. But atmospheric CO2 is a trace gas, and that is 335ppm.

Here’s an actual definition of what “trace” means – 0.1%. That’s still a “fraction of a single percentage” as Vice said, but it’s ten times larger than the 0.01% they pulled out of nowhere.

New £5 notes weigh 0.7g, therefore there is roughly 0.00007 g of tallow present in one £5 note.

0.1% of 0.7g is 0.0007. Ten times larger than the figure Vice comes up with.

How many fivers are in circulation now, and therefore will be around by May of 2017, when all the old paper ones have been phased out? 329 million notes.

To work out how much tallow will be used in total in all of these fivers, we need to multiply 0.00007g by 329 million, which gives us 23,030g, or 23kg.

Again, multiply by ten. 329,000,000*0.0007g=230,300g, or 230kg.

And if you get about 40kg of tallow-worthy fat from the average cow, how many cows would you need to make every single £5 note in circulation?

Well, since it’s actually 28.8kg per cow… take the 230kg required, divide it by 28.8kg, and you get:

8 cows.

Not half a cow.

16 times larger.

You might say “yeah – but who cares? it’s a fucking cow!”.

Well yeah – people that say things like that are not going to be budged anyway.

Makibox 3D Printer

I had the option to get my birthday present about two months early. Jumped at the chance.

Makibox, a 3D printer company, is selling off its entire stock of printers (makiboxclearance.co.uk), so it was a chance to get something cheap that I can hack on.

The package only took a week or so deliver, which is much better service than I expected, based on some of the messages I’d seen online.

I bought the unheated version (here) in kit form.

It took a few hours to put the machine together. I didn’t try printing anything until the next day.

The printer works by raising and lowering a print bed (the Z axis), and moving a “hot end” around on top of that in X and Y. The hot end hangs from the centre of two crossbeams, one of which moves in X and the other in Y.

The first problem I encountered, was that when I went to print for the first time, the hot end immediately started carving a pretty pattern into the bed. The printer didn’t know where the bed was, so was lowering the hotend too far down.

This kept happening even after I used the “bed leveling wizard” in Cura, the first step of which is /supposed/ to define where the bed is. But, no matter how accurately I did the first step, it totally ignored that and reset automatically to a level where it thought the bed was a few millimetres lower than it actually was, making the hot end drive straight into the bed.

It took me a while to figure out the problem – that the bed depth was “hard-coded” into the printer’s hardware – before every print, it would raise the bed right up until the platform-raising piece on the X axis screw touched against the “end-stop” switch at the top.

The solution to that was to glue something to the top of the platform-raising piece so it would hit the switch sooner. In the end, I glued a scrabble piece and a sim card (I had them at hand) on. This artificially lowered the expected bed depth by about 2cm, which is much more than is needed for the hot-end that comes with the printer, but is perfect for the replacement hot-end I ordered next.

The original hot-end sucks. They even say it themselves – in their words, “the standard hotend in the makibox kit is not the greatest piece of engineering ever made by man, it does have a tendency to burn out”.

The first problem I encountered with that hot-end was that it has no way of cooling off. There is an aluminium wall on one side of the base-plate, which could hold a heat-sink, but the heat-sink would be a case of “too little, too late”, as the hot-end should really be cooled right above the heating element, not 3cm above it. The problem is that when the hot-end’s heat spreads upwards, the plastic being pushed into it melts too soon, and it ends up like trying to push goo through a small hole at the bottom of a can, using a piece of spaghetti.

I /was/ going to try solve this by wrapping some tubing around the hollow bolt above the heating element, and run water through it, but the hot-end just stopped working on me completely, so I decided to pay for a better solution.

This solution was the E3D V6 (Lite), which has a proper heatsink, and a fan.

The E3D V6 took a few days to arrive, and when it did, there was a few hours assembly needed. The hardest part was figuring out how to connect the Bowden tube to the Makibox’s extruder. I managed this in the end by taking an M6 (I think. maybe it was M5?) nut and screwing it directly onto the end of the Bowden tube, then the new tube would dock into the extruder just like the original.

The next problem is one I’m still working on solving. The hot-end is positioned by moving two beams. The hot-end hangs from where the beams cross each other. The problem is that the beams are moved by long screws on /one end/ of the beam. The part that connects to the screw tries to keep the beams perpendicular to the screw, but it’s like trying to lift a plank of wood by lifting just one end – difficult.

The solution for this, I think, is to run some strings around a series of wheels that guide the strings such that when one end of the Y axis moves (for example), the other end is pulled by the string to keep the beams perpendicular to each other.

So, the first prints I’m doing are holders for the wheels. The prints are really terrible, as the printer is obviously not yet in perfect working order, but after I finish fixing this problem, I can print them again in better quality 🙂

unwatermarking images

I’ve started a website where I intend to sell thousands of products from a number of distributors through drop-shipping (the products go directly to the customer).

For reasons that I don’t understand, the distributors have watermarked their images, and don’t provide unwatermarked versions unless you’re an already well-established customer of theirs.

For the purpose of this demo, a watermark is a constant-colour “stamp” which is given opacity and pasted into the original image.

As I intend to be a good customer, I figured it would be okay for me to simply “unwatermark” the images.

There are a number of instructions online which show how to /fake/ an unwatermaking – by basically smudging the area where the watermark is.

However, as most watermarking appears to follow a single method, it is actually possible to simply reverse the process and remove the watermark, after a little trial and error.

Let’s consider an example. Here is an image, a stamp, and the merge of the two:

(original is here)

  • demo1
  • demo2
  • demo3

To reverse this, you need to know what algorithm was used to create the watermark, and what the original watermark was.

Most people use a fairly simple method to watermark their images:

The stamp is one single colour, usually gray (#808080 in RGB) which will be visible on images which are both light and dark.

The stamp is then given an opacity (30% in my case above), and pasted directly over the original image.

The formula for any particular colour channel (R, G and B) on any pixel is: C3=(1-p)C1+pC2, where p is opacity (0 to 1), C1 is the colour value for the original image, C2 is the stamp’s colour value, and C3 is the resulting image’s colour value.

To reverse the watermarking, you need to convert the formula to see what it is in respect to C1: C1=(C3-pC2)/(1-p).

As most stamps will be using a middle gray (#808080), you just have to guess at the opacity. .3 is a good start.

For some reason I’m not yet sure of, the code I came up with did unwatermark the image, but too much… the points where the watermark were, ended up being too bright. So I needed to add a darkening aspect, reducing the brightness of the result of the above calculation.

I’m not going to hold your hand if you can’t make this work, but here’s the code I ended up with (assumes the images are exactly 400×400 in size). The original should be ‘original.jpg’, and the stamp should be ‘stamp.png’ (with white where transparent pixels should be).

[php]
$p=.3; // opacity

$f1=imagecreatefrompng(‘stamp.png’);
imagepalettetotruecolor($f1);
$f2=imagecreatetruecolor(400, 400);
$f3=imagecreatefromjpeg(‘original.jpg’);
imagepalettetotruecolor($f3);

for ($x=0;$x<400; ++$x) {
for ($y=0; $y<400; ++$y) {
$rgb1=imagecolorat($f1, $x, $y);
$rgb3=imagecolorat($f3, $x, $y);
$r3 = ($rgb3 >> 16) & 0xFF;
$g3 = ($rgb3 >> 8) & 0xFF;
$b3 = $rgb3 & 0xFF;
if ($rgb1==16777215) { // white. just copy
$c=imagecolorallocate($f2, $r3, $g3, $b3);
imagesetpixel($f2, $x, $y, $c);
continue;
}
$r1 = ($rgb1 >> 16) & 0xFF;
$g1 = ($rgb1 >> 8) & 0xFF;
$b1 = $rgb1 & 0xFF;
$r2=c($r1, $r3, $p);
$g2=c($g1, $g3, $p);
$b2=c($b1, $b3, $p);
$c=imagecolorallocate($f2, $r2, $g2, $b2);
imagesetpixel($f2, $x, $y, $c);
}
}
imagejpeg($f2, ‘unwatermarked.jpg’);

function c($c1, $c2, $p) {
$c=c1($c1, $c2, $p);
$c3=$c-(255-$c)*.2;
return $c3<0?0:(int)$c3;
}
function c1($c2, $c3, $p) {
$c=($c3-$c2*$p)/(1-$p);
return $c>255?255:(int)$c;
}
[/php]