Author Topic: Simon blogs  (Read 99495 times)

0 Members and 1 Guest are viewing this topic.

Offline Simon

  • Administrator
  • Posts: 3480
    • View Profile
    • Lix
Re: Simon blogs
« Reply #345 on: January 05, 2023, 05:07:30 PM »
Eating less is probably 70 % of the story and exercising is 20 %. The human body is a machine with input, storage, and output, and now we want to run with a net input/output deficit.

The most direct way to the net deficit is to eat less. Not necessarily less volume, but less energy.

To not be unhappy while eating less:
  • Eat only slightly less at first.
  • Fill the stomach with non-energy filler material. Drink more water or tea.
  • Choose foods with lower energy density. Have cucumber for snacking. The guinea pig diet from OP is to eat cucumber frequently. You can have it on bread as an extra topping, or even have it by itself.
  • In case of munchies: More cucumber.


Exercise is mediocre at burning calories directly. It's for building muscle. Muscle will cost the body energy to maintain, and you gain less fat meanwhile. Building muscle is like building harvesters at the beginning of a real-time strategy game, they'll keep working for you even when you're idle.

I have no experience or deeper knowledge of lopsided diets that force the body into burning fat faster. The regular burning of fat from eating less was good enough in the past for me.

-- Simon

Offline Simon

  • Administrator
  • Posts: 3480
    • View Profile
    • Lix
Re: Simon blogs
« Reply #346 on: January 13, 2023, 06:53:24 AM »
Ancient Treasure Chest

I'll be busy over the weekend. Here are some old pictures for your enjoyment.





We start with some screenshots from Cheapo, the old Lemmings clone from 20 years ago. It's guaranteed unoriginal, and that's very very good. Isn't the man as happy as we are! Well, he was, until I rotated the mouth.




Some toying with sprites from Lemmings 2. I used those lemmings as a forum avatar here around 2005.



One day, I put the lemming onto the chamaeleon, and this is the natural result.



I included this picture in a rant about time limits. Back in the day, level authors customarily reduced the time limit to the lowest possible minute that kept the level beatable. Lix still had time limits and NeoLemmix didn't allow unlimited time.



When I sprited the first few frames of the Lix platformer around 2010, I had this unused Lix sprite. Instead of not using it for anything, I made this little image.



Remix by geoo. Clones didn't like uneven terrain. It's only a mild exaggeration!

-- Simon

Offline chaos_defrost

  • Posts: 903
  • the artist formerly known as Insane Steve
    • View Profile
Re: Simon blogs
« Reply #347 on: January 14, 2023, 01:03:38 AM »
Awwwwww Cheapo Copycat Game, good memories. I still have it on my computer but for like my last 10-15 years of computers it always runs way slower that on the computers I had when it first came out for some reason.
"こんなげーむにまじになっちゃってどうするの"

~"Beat" Takeshi Kitano

Offline mobius

  • Posts: 2688
  • relax.
    • View Profile
Re: Simon blogs
« Reply #348 on: January 14, 2023, 11:44:33 PM »
amazingly Cheapo works 80-90% on my current PC running windows 10. Its a bit slow but not terribly slow. I easily get more frustrated from lack of Lix/NL ease features than old bugs. I contacted Peter Spada last year for a question about Cheapo and he responded promptly. I didn't ask at the time but I wonder if he made any other games?

Every now and then I try to play Clones again and it's just... awful. Nothing about it feels intuitive. A Game of this nature that doesn't always allow you to pause or pausing that doesn't work correctly should be illegal. Sorry to the creator, I know they at one time were present on this forum but this game sucks.

I attached a recent Windows 10 home screen pic.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


Offline Simon

  • Administrator
  • Posts: 3480
    • View Profile
    • Lix
Re: Simon blogs
« Reply #349 on: January 22, 2023, 06:49:57 AM »
That's a Tamandua, a small anteater. It's not a Tapir. Very much lovely still. :lix-grin:
See also Gronklink's post about tamanduas.

Still so much work on Lix in my free time, I'm beginning to lose sleep over it. I'm 50:50 on whether the endorphines break even with health, or whether the Lix work is getting detrimental. I should probably schedule a day where I don't look at the source at all, don't play Lix, and don't check Lemmings Forums. Some time after 0.10.5 is out, which should release in the next few days.

-- Simon

Offline Simon

  • Administrator
  • Posts: 3480
    • View Profile
    • Lix
Re: Simon blogs
« Reply #350 on: January 28, 2023, 06:56:07 AM »
Templates in C++

Nice talks on Youtube:

CppCon 2016: Template Normal Programming, part 1/2
CppCon 2016: Template Normal Programming, part 2/2

By Arthur O'Dwyer. A thorough explanation of C++17 templates and their language rules. The examples are straightforward, and it avoids metaprogramming examples wherever possible to keep it accessible, hence the title "Template Normal Programming".

CppCon 2014: Modern Template Metaprogramming: A Compendium, part 1/2
CppCon 2014: Modern Template Metaprogramming: A Compendium, part 2/2

By Walter E. Brown. Many short examples of type manipulation. You'll see the implementation and ideas behind standard library utilities such as  std::is_same<T, U> or std::remove_const<T>. Introduction to SFINAE.

Functors

I should revisit one of my toy C++ examples: How nice of a functor can you create, e.g., with C++ template magic, to minimize boilerplate in the usercode. Here, I mean functor in the sense of category theory, not necessarily in the sense of object that overloads operator().

The use case is: You have
struct ErrorOr<T> { int error; T value };
... with the unenforced rule that we should use its good value if and only if the error is 0. You have a function func: T -> U. The goal is to lift func into the world of ErrorOr: The lifted function is of type ErrorOr<T> -> ErrorOr<U> and calls func when a good T comes, and merely copies the error code when an error code comes.

The solutions will likely not be beginner-friendly, and I'm sure that other people have already found solutions that make the usercode calls look reasonably straightforward. Nonetheless, I'll keep it in mind as an exercise for myself.

-- Simon