See a typo? Have a suggestion? Edit this page on Github
For various reasons, maybe not great ones, I’ve been experimenting with a new diet plan. I’m not advocating this diet generally, and not even sure if I like it for myself. I’m taking notes on how this goes, and intend to share more information later.
This diet plan is radically different from what I normally eat. Getting together with family, this has led to some real confusion. So I wanted to put together a blog post covering two related topics:
- How do I make decisions about how I’m going to eat?
- What principles do I follow in my eating strategy, regardless of the specific diet plan I’m following?
This post is a bit less structured than some of the others in this series, take it as a bit of a brain dump.
The core about how I make decisions comes down to this: I don’t trust the mainstream authorities to tell me what to eat. As crazy or egotistical as that may sound in a vacuum, this is far from a radical position. I’d argue it’s the only sensible decision given the data: the correlation between health guidelines and modern diseases. Specifically, since the nutrition authorities have started inserting themselves into our food recommendations, the diseases they purport to prevent have become only worse.
This kind of decision leads to a few immediate questions:
I’m feeling better and losing weight, but how do I know if I’m doing long term harm? This is a concern raised often about non-standard diets, and perhaps rightfully so. There’s no long term data on the large scale health effects of a carnivore diet, for instance. That said, there is plenty of data on the long term effects of a standard diet, all bad. My approach: if you’re feeling better, go for it.
It’s working for me, but how do I know if it works for everyone? I’m just one person! Right, you’re just one person. And that’s the only person you need to worry about. If your diet is working for you, follow it. You don’t need something that will work for all members of a population. If you give advice to friends and family, make them responsible for reviewing their own results.
Many populations across the planet have had a wide variety of diets over the past hundreds and thousands of years. Most of those populations avoided the major degenerative diseases which plague us today (heart disease, cancer, etc). You may argue that this is because they died of other causes before they could die of those diseases. I encourage you to research the topic more fully; I don’t believe the data says that.
Anyway, these observations introduce what initially appear to be paradoxes: how can you have healthy populations that consume such varied diets as:
- Massively high animal products
- Mostly grains
- Mostly other starch sources
- Combinations of fat and starch
- Hunter gatherers consuming copious amounts of honey
There are two potential answers, both of which I think are true:
- The lifestyles of these groups may have been different
- There’s nothing inherently wrong with any of these diets, and our health issues stem from a different source
Personally, I tend towards believing that the second answer is the stronger one, and mostly true. There are certainly some lifestyle factors we have today that differ meaningfully from other groups. Two strongly touted ones are:
- Hunter-gatherers who consumed large amounts of honey did so during specific times of the year, had periods of famine as well, and were highly physically active. That’s quite a difference from a modern human guzzling Coca Cola in an air conditioned office.
- We may be metabolically damaged from our existing eating patterns, leading to what would have been a healthy diet turning into an unhealthy one
In other words, my gut feeling is that you’re probably safe following any historically accurate diet. But to account for possible lifestyle issues, you may want to hedge a bit and follow diets more well proven to work well in the modern age.
The paleo/primal approach to eating fits in well here. I’ll start by saying that, overall, I’ve had my best successes with health and weight loss on a primal approach, and I strongly encourage it. However, I don’t really buy into the idea that everything introduced since the agricultural revolution is toxic.
Why I experiment
Based on all that: I think there are lots of healthy eating patterns. My default/baseline diet is mostly a primal, low carb diet, veering towards carnivore. However, I still like to experiment with alternatives. Some reasons:
- Variety is the spice of life. Trying out different food again is fun.
- I like to tinker and see if I can optimize things, such as improving my weight lifting.
- I’m curious from a scientific standpoint as to how different theories work out in practice.
- Finding eating styles that are healthy and easier to adopt than something like keto could be a boon for people’s health in general.
That said, I do try to stick to a few constants in any diet that I experiment with. This is based on the principles above and the information I’ve read. I evolve this list over time, but this represents where I’m at right now.
- Seed oils (soybean, corn oil, etc) should be avoided at almost all costs. They are a relatively brand new addition to our diets. Their addition correlates closely to many disease epidemics, and there are plausible mechanistic explanations for how they cause these diseases (see references below).
- Avoid trans fats as well. I put this as second to seed oils only because it’s already well understood. If you see “partially hydrogenated” in an ingredient list, avoid it.
- Added sugar should either be avoided entirely, or at the very least limited. Sugar has been part of the human diet in one form or another for a long while, but the current levels regularly consumed far outpace what we’ve had historically.
- Focus on getting enough protein. It’s necessary, it’s satiating (so helps you avoid overeating), and outside of specific disease states like existing kidney disease, the claims of danger are in my reading without merit.
- Grains have been part of the human diet for a long time, so I find it hard to say that they’re evil. There are some arguments about it, like new strains of wheat having different properties or the refinement process being different these days. But overall, I can’t justify “wheat is evil.” That said, in my experience it’s much easier to overeat on empty calories with grains than without them.
- Even more strongly, I don’t see carbs as inherently evil either. However, I think focusing on fat tends to make more sense in a modern diet.
- Saturated fat isn’t evil. The demonization of coconut oil by the American Heart Association is hard to see as anything but a paid hit job by the seed oil industry.
Here are some videos talking about the seed oil and sugar concerns that I’m sticking to the most:
- There are no mutable parameters in Rust May 10, 2020
- A Lazy Rust Compiler April Fools', 2020
- Basics of Carbohydrates March 27, 2020
- Making nutrition decisions February 25, 2020
- The Warp Executable January 20, 2020
- Tokio 0.2 - Rust Crash Course lesson 9 December 5, 2019
- Down and dirty with Future - Rust Crash Course lesson 8 December 2, 2019
- Boring Haskell Manifesto November 21, 2019
- Haskell kata: withTryFileLock August 18, 2019
- How to lose weight July 15, 2019
- My new home network setup June 26, 2019
- Gym Etiquette Test April Fools', 2019
- Typing Resistance April Fools', 2019
- Shutting down haskell-lang.org February 18, 2019
- Call for new Stack issue triager February 12, 2019
- Mismatched global packages January 24, 2019
- Kids Coding, Part 4 January 18, 2019
- Kids Coding Interlude: the function game December 16, 2018
- Improving Commercial Haskell December 13, 2018
- FP Complete's opinion December 12, 2018
- New user empathy December 11, 2018
- Async, futures, and tokio - Rust Crash Course lesson 7 December 3, 2018
- Lifetimes and Slices - Rust Crash Course lesson 6 - exercise solutions November 28, 2018
- Lifetimes and Slices - Rust Crash Course lesson 6 November 26, 2018
- Rule of Three - Parameters, Iterators, and Closures - Rust Crash Course lesson 5 - exercise solutions November 21, 2018
- Why (I believe) Stackage succeeded November 20, 2018
- Rule of Three - Parameters, Iterators, and Closures - Rust Crash Course lesson 5 November 19, 2018
- Stack(age): History, philosophy, and future November 18, 2018
- Crates and more iterators - Rust Crash Course lesson 4 - exercise solutions November 14, 2018
- Crates and more iterators - Rust Crash Course lesson 4 November 12, 2018
- Proposal: Stack Code of Conduct November 7, 2018
- Iterators and Errors - Rust Crash Course lesson 3 - exercise solutions November 7, 2018
- Iterators and Errors - Rust Crash Course lesson 3 November 5, 2018
- Basics of Ownership - Rust Crash Course lesson 2 - exercise solutions October 31, 2018
- Basics of Ownership - Rust Crash Course lesson 2 October 29, 2018
- Kick the Tires - Rust Crash Course lesson 1 - exercise solutions October 24, 2018
- Kick the Tires - Rust Crash Course lesson 1 October 22, 2018
- Is it healthy? Depends on context October 19, 2018
- Introducing the Rust crash course October 18, 2018
- RAII is better than the bracket pattern October 8, 2018
- How I research health October 2, 2018
- Kids Coding, Part 3 August 28, 2018
- Kids Coding, Part 2 August 24, 2018
- Kids Coding, Part 1 August 23, 2018
- Post Fast Write-up July 15, 2018
- Thoughts on Fasting July 10, 2018
- Stop supporting older GHCs July 1, 2018
- Deprecating the Haskell markdown library June 15, 2018
- I am not snoyjerk May 28, 2018
- My open source goals May 28, 2018
- Building packages outside snapshots May 23, 2018
- Guide to matrix.org and riot.im May 14, 2018
- Stop breaking compatibility April Fools', 2018
- LambdaConf Haskell Hackathon 2018 March 28, 2018
- Quick guide to the Jewish Holidays March 25, 2018
- Haskell Ecosystem Requests February 18, 2018
- Stack Patching Policy February 14, 2018
- The Conduitpocalypse February 4, 2018
- SLURP January 24, 2018
- Breaking changes, dependency trees January 9, 2018
- Drop Conduit's Finalizers? January 3, 2018
- Review of The Bridge strength program January 1, 2018
- Dropped packages following LTS 10 December 25, 2017
- What Makes Haskell Unique December 17, 2017
- Stack and Nightly breakage December 7, 2017
- Future proofing test suites November 12, 2017
- Effective Ways to Get Help from Maintainers October 23, 2017
- Posture August 16, 2017
- Some Upcoming Crazy Thoughts July 16, 2017
- The Spiderman Principle July 5, 2017
- A Very Naive Overview of Exercise (Part 3) June 15, 2017
- A Very Naive Overview of Nutrition (Part 2) June 14, 2017
- A Very Naive Overview of Nutrition and Exercise (Part 1) June 13, 2017
- How to send me a pull request June 6, 2017
- Why I lift June 1, 2017
- Playing with lens-aeson May 29, 2017
- The Worst Function in Conduit May 7, 2017
- Stackage's no-revisions (experimental) field April 27, 2017
- Haskell Success Stories April 24, 2017
- Generalizing Type Signatures April 20, 2017
- Enough with Backwards Compatibility April Fools', 2017
- Better Exception Messages February 16, 2017
- Hackage Security and Stack February 14, 2017
- Stackage design choices: making Haskell curated package sets January 23, 2017
- Follow up on mapM_ January 19, 2017
- safe-prelude: a thought experiment January 16, 2017
- Foldable.mapM_, Maybe, and recursive functions January 10, 2017
- Conflicting Module Names January 5, 2017
- Functors, Applicatives, and Monads January 3, 2017
- Beware of readFile December 22, 2016
- Call for new Stackage Curator December 19, 2016
- An extra benefit of open sourcing December 13, 2016
- Haskell Documentation, 2016 Update November 28, 2016
- Haskell for Dummies November 23, 2016
- Spreading the Gospel of Haskell November 22, 2016
- Haskell's Missing Concurrency Basics November 16, 2016
- Designing APIs for Extensibility November 3, 2016
- New Conduit Tutorial October 13, 2016
- Proposed conduit reskin September 23, 2016
- Monads are like Lannisters September 12, 2016
- Using AppVeyor for Haskell+Windows CI August 31, 2016
- Restarting this blog August 24, 2016
- XSLT Rant Explained April 9, 2012
- Open Letter to XSLT Fans April 5, 2012
- Dysfunctional Programming: FindMimeFromData March 22, 2012
- First Post January 31, 2012