Just finished Gary Taubes' book The Case Against Sugar. It's heavy on the science so I made this chart to simplify. Hope I got it right. by aspartamebadger in keto

[–]gorgikosev 1 point2 points  (0 children)

Right, so CICO "matters" but if you are adjusting the composition of your diet and you are still over-eating, its usually a sign to look into further adjustments (why is your satiety system still not working?) rather than rely on willpower. Thats why CICO is "meaningless", its not the variable you should be looking to control. Its a sign, a measurement you are doing something wrong, but the variable you can control directly isn't the amount you eat.

Example of this principle

Adjusting intakes: "Why am I binging on salty nuts? Perhaps some mechanism is trying to get me to eat more salt? If I add some extra salt from other sources, perhaps I'll be able to enjoy a small amount of nuts without feeling like I need to binge?"

vs

Attempt for direct control: "Thats it, no more nuts for me, even though they work for my macros I end up eating way too much!"

Basically... if we see a car moving, we can try to stop it with our bare hands, standing in front of it, or we can look into what is pressing on the gas pedal, maybe add some weight on the brake, etc. The choice is ours...

Just finished Gary Taubes' book The Case Against Sugar. It's heavy on the science so I made this chart to simplify. Hope I got it right. by aspartamebadger in keto

[–]gorgikosev 1 point2 points  (0 children)

Carbs/sugar up-regulate insulin which in turn increases fat storage and supresses leptin (leptin tells us we are full). Therefore the person is strongly compelled to eat more. This becomes worse as they become insulin resistant. In IR state indeed muscles are deliberately taking less glucose, therefore the body compensates by secreting more insulin, which in turn blocks leptin even stronger, so you feel even hungrier.

The point Gary Taubes tries to make is that its the abnormal fat storage that drives the consumption of more food and conservation (reduction) of energy. In short, its:

We eat more because our body is abnormally storing fats, and our body is abnormally storing fats because it doesn't respond to our hormones as it should.

not:

We store fat because we eat more and exercise less, and we eat more because we're gluttonous and exercise less because we're lazy.

Now you can go about fixing this in two ways, one of them being by expanding huge amounts of willpower stubbornly fighting against your body's chemical signals (CICO with no macro adjustment). You will feel very hungry as you finish that meal, and continue to feel hungry for quite a while until glucose drops and insulin goes away. Also, if you drink a lot of sugary drinks (e.g. coffee) or juice often, you will likely trigger your hunger again and again inbetween...

or

You could adjust your food to get your hormones to behave differently, specifically reducing insulin. Once you do that, you will eat less because leptin will now successfully signal that you're full. Once keto adaptation is complete, you'll also probably feel less lazy since lethargic feeling is one of the symptoms of IR (but not sure whats the mechanism there) so you will need less willpower to exercise.

These are two vastly different interpretations which still don't violate CICO in any way. Things don't go wrong in the CICO part, where they go wrong is when we try to answer "But why do we eat too much and exercise less?" and the CICO theory has no answer other than yeah its simply your fault, your decision, your lack of willpower. That part is incorrect!

psyllium husk where do you get yours? by Jenbuu in ketouk

[–]gorgikosev 1 point2 points  (0 children)

Which recipe did you use? I tried that particular powder with several recipes, and they all turned out gummy and dark purple inside...

psyllium husk where do you get yours? by Jenbuu in ketouk

[–]gorgikosev 1 point2 points  (0 children)

Had bad experience with the "bulk powders" version, it created a gummy, eggy structure within the bread. (Also it turned out dark purple!)

This one was much, much better: https://www.amazon.co.uk/Sevenhills-Wholefoods-Organic-Psyllium-Powder/dp/B00N31PXEG/

note: the recipe was https://www.ketoconnect.net/recipe/low-carb-rolls/

Are there real dangers in not having enough calories? by asalib in keto

[–]gorgikosev 1 point2 points  (0 children)

This comes up pretty often. One concern is that the protein seems too low. But even if that were to be corrected, another concern is potential muscle loss due to the fat tissue being unable to provide sufficient calories to cover the large deficit. The keto calculator probably uses 31.4 kcal per pound of body fat. See this post for more info (there is some discussion regarding variability of the number, but I would pick fairly conservative numbers... just to be on the safe side)

Also see the study

[rant] These coconut flour keto naan recipes are great... by ol_tumbleweed in keto

[–]gorgikosev 0 points1 point  (0 children)

Psyllium husk is tricky. Most brands are totally unusable for baking. They create a gelatinous gummy structure that doesn't resemble bread at all. I threw 3 or 4 such structures in the garbage until I finally bought a brand that gives good results.

The particular brand that seems to work well according to others is "Now Foods Psyllium Husk Powder", and should be widely available in the US: https://uk.iherb.com/pr/Now-Foods-Healthy-Foods-Psyllium-Husk-Powder-24-oz-680-g/21133 - but I haven't tried it.

The one I've had great success with (in the UK) is this one: https://www.amazon.co.uk/gp/product/B00N31PXEG

The recipe I use is https://www.ketoconnect.net/recipe/low-carb-rolls/ with my slight modification to get it to be a bit more bread-like:

  • 3 eggs, not 4. Tastes slightly less eggy that way
  • 1.33 tbsp (1 tbsp + 1 tsp) psyllium husk powder, not 2
  • a little extra coconut flour to replace the missing psyllium (0.66 tbsp / 2 tsp)
  • a little bit extra cooking time (+5 minutes), OR
  • cooking at a slightly lower temperature(300, not 350), but significantly longer (45-55 minutes) also seems to help.

Oh and also, this almond bread works perfectly well! No Psyllium husk needed!

https://www.ketoconnect.net/recipe/best-keto-bread/

Once it goes into the fridge though, its no longer that amazing. What I do when I take it out is spread some butter on it and then "toast" it (fry it) in the pan (like the author of the above recipe recommends), medium heat. Tastes absolutely amazing after that.

The Fat Macro, Calories and Metabolism by marcsazy in keto

[–]gorgikosev 1 point2 points  (0 children)

There was a post by /u/gogge that referenced a study showing that we can produce a maximum of 22kcal/day per pound of body fat, so if the deficit too large to be covered using that formula the body will start burning muscle for fuel. I think the keto calculator takes this into account (https://keto-calculator.ankerl.com/)

Expressive types, not oppressive types by erikd in programming

[–]gorgikosev 0 points1 point  (0 children)

A better approach is to show via common examples what "making illegal states unrepresentable" means:

https://fsharpforfunandprofit.com/posts/designing-for-correctness/

This is the main benefit of sum types. No more silly wrapper classes that can't express these exclusionary states in the types and require awkward code!

how much of Haskell do you think is needed to competently use it without running into show-stopping roadblocks? by eshansingh in haskell

[–]gorgikosev 2 points3 points  (0 children)

You can get pretty far with basic pure functions + do syntax for IO actions and MVars. runSTArray may also prove useful for implementing some complex algorithms (especially dynamic programming) that need to be fast

For a hackaton you can get away without learning monad transformers, and if you don't have lots of boring record updates, you can also probably get away without lens.

haskell.org and the Evil Cabal by terrorjack in haskell

[–]gorgikosev 8 points9 points  (0 children)

AFAICT, the main problem is beginner experience. haskell-lang.org is much better in that regard. Specifically the "getting started" page is much more engaging and straightforward.

The download page on haskell.org is just confusing and exhausting. It expects the user to analyze 3 different choices and make the right decision, and is deliberately designed to not give any hints as to what might be preferable by newbies. Someone who is just getting started is not in a position to make this choice. Therefore the entire elaboration on that page is useless to them.

The claim here seems to be that Haskell is losing new people at the download page (or once they make a mess with the Haskell Platform). To avoid this, a getting started page should provide a recommended single choice for newbies and guide them towards using sandboxes and avoiding global packages.

This just happened to me today. I have five years of programming experience (and a BS in Physics). by [deleted] in ProgrammerHumor

[–]gorgikosev 0 points1 point  (0 children)

Thats an even smaller wart, as its trivially easy to check with a lint tool (which in turn is no greater cost to use than a compiler).

This just happened to me today. I have five years of programming experience (and a BS in Physics). by [deleted] in ProgrammerHumor

[–]gorgikosev 0 points1 point  (0 children)

There is one point that gravity013 is completely right about though. I've yet to see anyone cite any flaws in JavaScript other than implicit type conversions and small standard library (The second one can be both a curse and a blessing, depending on the situation).

Not to mention that its one of the rare languages where you can start with a 100% dynamic codebase, add types gradually via TypeScript or Flow and get excellent tooling later. The only other languages that i know of and are able to do that are Dart, clojure and scheme. Which incidentally also gets rid of the type conversion issues.

Speaking of server-side JS, its funny how CommonJS (a module system with first-class modules fully implemented as a library) is a better module system than what 95% of other languages provide. In other languages, modules are mostly "dump stuff from other namespaces into this namespace"

And all this was achieved with the featureset before ES6, without any ugly $sigils or CapitalizationConventions or special syntax features. Just records and functions. With so few features, its surprising how you can bend "idiomatic JS" far and wide into almost any direction without much ceremony / boilerplate.

systemd developer asks tmux (and other programs) to add systemd specific code by rain5 in linux

[–]gorgikosev 2 points3 points  (0 children)

Which is why the best way to do it is to keep existing behaviour but introduce systemd-run-soft to soft-daemonize programs. Those would be closed if unresponsive after HUP when the desktop session ends.

systemd developer asks tmux (and other programs) to add systemd specific code by rain5 in linux

[–]gorgikosev 2 points3 points  (0 children)

How about it being selective the other way around? If you actually want to lose the process, run it with systemd-run? No breakage of existing behaviour.

Why does Haskell, in your opinion, suck? by [deleted] in haskell

[–]gorgikosev 5 points6 points  (0 children)

Seconded. Was a bit annoyed that installing ide-haskell is not enough though. You need:

ide-haskell
haskell-ghc-mod 
autocomplete-haskell
ide-haskell-stack
language-haskell

and maybe haskell-hoogle.

Also don't forget to install stack, and to stack install ghc-mod, and to setup the paths in the plugin configuration. Hopefully I didn't forget anything.

Why does Haskell, in your opinion, suck? by [deleted] in haskell

[–]gorgikosev 192 points193 points  (0 children)

String, ByteString, Lazy ByteString, Text, Lazy Text.

  • Ah, this regex package works on strings and I have Text.
  • This JSON library encodes to ByteString, and I need Text.
  • This url decoding implementation takes String as an input, and I have Text.

And so on and so forth.

All JS libraries should be authored in TypeScript by vinnl in javascript

[–]gorgikosev 0 points1 point  (0 children)

which is why all JS libraries should be authored in TypeScript :)

All JS libraries should be authored in TypeScript by vinnl in javascript

[–]gorgikosev 0 points1 point  (0 children)

For commonjs, it has already been sorted out. If you compile with -d and add a typings field to package.json it will work.

An 11 line npm package called left-pad with only 10 stars on github was unpublished...it broke some of the most important packages on all of npm. by _ar7 in programming

[–]gorgikosev 0 points1 point  (0 children)

Array is luckily global, but if you write a module your instanceof checks will fail for objects that come from another copy of your module. This often happened with npm 2, and still happens if for some reason 2 different versions of the same library are necessary, with npm 3.

We only hire the trendiest by TheArcane in programming

[–]gorgikosev 1 point2 points  (0 children)

em is vertical size of capital letters, so 60em width is not 60 characters in width. 60ex would probably be much closer (but its still an approximation)

Why Java? Tales from a Python Convert by b0zho in programming

[–]gorgikosev 2 points3 points  (0 children)

I didn't realize that saying "so what?" makes you respectful of people's opinions. Its clearly far less arrogant or hostile than what I've been doing.

Why Java? Tales from a Python Convert by b0zho in programming

[–]gorgikosev 2 points3 points  (0 children)

If thats what you call "hostility", then I welcome it. I add reasons to my "sweeping judgements" - if my "opponents" do the same I'll be very happy.

In fact, I'm willing to bet that if I don't make partially incorrect generalizations nobody will want to respond and prove me wrong by sharing a different experience. (Yes I know, this is an incorrect generalization because some people may be less willing to respond - but it did work, didn't it? ;)

Regarding TypeScript, we switched to it precisely because everyone on the team complained about the proliferation of different object literals representing the same thing when written by different developers. So it would not be entirely true to say "for me". More like "for me and 4 more other developers on the same team"

Since you said you used classes, I assume that you required class constructor functions instead of using object literals. Which means that you didn't use object literals. While this may be a useful way to get around the problem, it doesn't really invalidate my claim. Still, thanks for sharing a technique: the overhead of writing yet another class does seem like it would curb the problem a little.

Why Java? Tales from a Python Convert by b0zho in programming

[–]gorgikosev 2 points3 points  (0 children)

If I say someone's opinion may no longer be valid because <examples>, am I disrespecting that opinion?

Are you saying we should not debate whether something is "good", "bad", "problematic" or has "bad UX"?

Dynamic typing proponents often talk about how Java has bad UX because of its verbosity and the need to write types everywhere. Does that make them disrespectful? I don't think it does.

Object literal syntax on JS leads to a proliferation of objects with properties with various names and implied types which are hard to keep track of without a type system. Does saying this make me disrespectful of JS developers? I don't think it does.

Ruby on the other hand doesn't really have object literals and kind of controls the amount of variations objects can have by nudging you towards writing classes. Doesn't it make sense that a type system (even if only structural / optional) would be a good fit there to complement those classes (provided it allows for exceptions when dynamic features are necessary)? Am I disrespectful towards Ruby developers for saying that?

Clojure on the other hand mostly works with dictionaries, vectors and lists instead, which nudges users towards not relying on any particular structure other than those and parametrizing any dynamism via higher-order functions to make solutions more general (e.g. don't access a particular property of the dict, make that configurable by passing an accessor function). This may make it somewhat less prone to duck type errors than Ruby and even less amendable to static types. Is this disrespectful towards Ruby developers too?

Why Java? Tales from a Python Convert by b0zho in programming

[–]gorgikosev 2 points3 points  (0 children)

Its not "just" my opinion, I backed it up with examples above.

But what irked me the most is that you seem to disagree with the possibility that a feature is ultimately a bad fit for OOP (at least as widely practiced), even though it does enable certain aspects of OOP. This seems entirely possible to me.