Author: Chastity White Rose

  • Chapter 15: Love the Sinner Hate the Sin

    So many times in my life, I have heard the phrase “Love the sinner, hate the sin”. On the surface, it sounds good because you are saying that you love someone but disagree with what they do, but this calls into question both the intent behind the person speaking it and who they are saying it to.

    Interestingly, the only time I can remember hearing “Love the sinner, hate the sin” is when Christians are judging people for being gay or transgender. It doesn’t really work very well in this context because the person doesn’t know what the “sin” is that they are talking about. Imagine if you said, “Love the black person but hate the sin”. This statement implies that you think someone born with black skin has somehow sinned or erred in some way, as if they could have done something different and been born with a different skin color.

    I know what you’ll say next: “But being gay is a choice!”

    First, it isn’t a choice in any meaningful sense. Second, if it were a choice, it would actually be a fine choice. Third, you know what is a choice? Shutting up when you don’t know what you’re talking about.

    I will use 2 examples to illustrate the point I am making.

    Judging the Gay Person

    A person finds out that someone they know is gay. Then they start talking about hating their sin or their sinful lifestyle. But the truth is, a straight person does not know what sin they are speaking about. Are they speaking about the sin of being attracted to the same sex, which is not an action? Are they talking about a specific sexual action the person is doing? Are they in their house watching them as they do this action by themself or with their partner and judging them for doing it wrong? What specifically are they even talking about?

    Judging the Transgender Person

    Suppose someone discovers that someone is transgender, or simply assumes it because they don’t look like what they think a man or woman should look like. Some thoughts they might have include

    • That person is too tall to be a woman! They must really be a man pretending to be a woman! Someone call the police!
    • That woman has a deep voice, I bet she is really a man!
    • That woman has small boobs, I bet it’s a man!
    • That woman has facial hair, it’s a man! Protect the children!
    • That man has boobs; it must have been a woman, but it has a beard. What the hell is it?
    • That man sounds like a woman. I bet she tried to act like a man because she was such an ugly woman!

    These are just a few examples of the things I have heard or read. Most of the time, these things are said on Facebook or YouTube comments on a news story about someone who was just trying to use the restroom or play a sport.

    But what I have noticed is that while gay people are judged for actions (whether real or imaginary), transgender people are judged for how their body looks. Whether they are being judged by how tall or short they are, the sound of their voice, or the size of their breasts (why are people staring at other people’s chests so much?), the point of all these sayings is to insult people for how they look. What is the sin they are hating as they claim to love the sinner? Wait, is a woman sinning if she grows facial hair due to Polycystic Ovary Syndrome? What about these thoughts or words about the size of their breasts? Is having a certain size of boobs a sin? What is the correct breast size, and how does someone make their boobs bigger or smaller?

    More context is needed even to know what the sin is that they are referring to. Most of the time, this person is very vague on what the sin is. That is because they don’t really know any information about the person they are judging. This phrase is used mostly to strangers whom they don’t know.

    When someone speaks of “sin”, the context usually implies that they think the person has made an error or is doing something morally wrong. These two definitions get mixed up. I will call these definitions A and B.

    Sin Version A: Making a wrong move, such as moving a chess piece that causes the loss of the game, or forgetting a semicolon in a C program that you are compiling. Or perhaps “missing the mark” when you throw a ball or shoot an arrow at a target.

    Sin Version B: Doing something that hurts someone, such as murder, lying, stealing, or committing adultery (having sex with someone other than your spouse).

    Sin versions A and B are not the same thing, and they are not compatible. Sin A refers to a mistake made when playing a game or doing some action that has no harmful consequences. Sin B means you did something that hurt a person, either permanently by killing them, or at least temporarily, such as stealing their money that you can theoretically pay back.

    Interestingly, when people say “Love the sinner, hate the sin”, they are not usually talking about a type B of sin. They don’t usually say it about murderers, rapists, thieves, or liars. No, instead they call the police, bring a lawsuit against them, or cut off contact with them. Do they talk about loving these people? No, they are too busy trying to protect themselves from this person who has hurt them or their friends/family.

    But more importantly, can you still love someone while you are posting on Facebook about how much you hate someone’s sin? It is kind of a hard thing to balance. Love and hate don’t usually go in the same sentence. How about just loving the sinner and leaving it at that?

    But once again, you are calling someone a sinner, as if somehow they are more in the wrong than you are. It is still hypocritical to speak of your neighbor as someone you love in spite of their being a sinner. When a person says this, they are implying that they are perfect and somehow not being a sinner, and this gives them the right to call someone else a sinner.

    Matthew 7:1 "Do not judge so that you will not be judged. 2 For by the standard you judge you will be judged, and the measure you use will be the measure you receive. 3 Why do you see the speck in your brother’s eye, but fail to see the beam of wood in your own? 4 Or how can you say to your brother, ‘Let me remove the speck from your eye,’ while there is a beam in your own? 5 You hypocrite! First, remove the beam from your own eye, and then you can see clearly to remove the speck from your brother’s eye.

    It’s also worth mentioning that the statement “Love the sinner, hate the sin” only applies in the context of Christianity. Rarely do non-Christians ever use the word “sin”. However, the culture, most of which has been raised in one of the denominations of Christianity, understands that you are judging them, even if they are not sure what they are being judged for.

    The only advice I can give here is to stop using this phrase unless you are prepared to be very specific in what way you love someone, and also what sin it is that you hate. And PLEASE CHOOSE A DIFFERENT SIN ONCE IN A WHILE. The LGBTQIA+ people are tired of being picked on as if we are the only sinners. You would be wise to look at what sins you and many other self-identified “Christians” are doing while distracting themselves with the sins of others, so that they don’t have to change their own behavior. Remove all the sin from your own life, then we will talk.

  • Installing SDL3 on Debian Linux

    I downloaded the source code from the release. Version “3.2.20” to be exact.

    https://github.com/libsdl-org/SDL/releases/tag/release-3.2.20

    First, I installed the dependences as outlined in “README-linux.md”

    sudo apt-get install build-essential git make pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev libaudio-dev libjack-dev libsndio-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev

    sudo apt install libpipewire-0.3-dev libwayland-dev libdecor-0-dev liburing-dev

    The actual commands I used to build and install after reading the documentation in “README-cmake.md”. I changed “/usr/local” to simple “/usr” so that SDL3 would where Debian system expects them to be there.

    cmake -S . -B build
    cmake --build build
    sudo cmake --install build --prefix /usr
    

    Things were installed correctly and I was able to get a test program working.

    I later reread the docs and figured out how to install the documentation and test programs also.

    cmake -S . -B build -DSDL_INSTALL_DOCS=TRUE -DSDL_TESTS=ON
    cmake --build build
    sudo cmake --install build --prefix /usr
    

    This process of installing from source was necessary because there was not yet a Debian package for SDL3. Now I have matched my Linux SDL3 version with my Linux and Windows computers. Being able to test my programs on both is essential for the programming book I am writing.

  • Chapter 8: The First Children’s Soccer Sunday

    Chad and Stacy had agreed to help supervise the kids after church on Sunday afternoons and entertain them with Soccer, food, and bible stories. Pastor Mark was there too to make sure everything went okay. Chad and Luke planned to split the children into two groups and coach them in how to play Soccer efficiently.

    “We need to decide how to divide the teams so they can play against each other,” said Chad.

    “You’re right, Chad. How about boys vs. girls?” said Luke.

    “We have 13 boys and 11 girls. I am not sure how that evens out. Besides, it seems kind of arbitrary to pick gender as the deciding factor, but I suppose we can ask the kids,” said Chad.

    “Hey, kids, we need to divide the teams. How do you feel about boys vs. girls?” said Luke.

    The children agreed, but then Luke continued.

    “Because we have 13 boys and 11 girls, one of the boys will join the girls’ team. Are there any volunteers?” said Luke.

    “I will join the girls,” said an 8-year-old boy named Simon.

    “Very well, but which of us coaches which team?” said Chad.

    “I will take the boys and you take the girls,” said Luke.

    “Okay, Luke, let’s go over the rules and then have them play for an hour before a lunch break,” said Chad.

    The two teams of kids had a lot of fun as they kicked the soccer ball. Only 6 goals were scored during the hour, while several were blocked by the goalies.

    When it was time to eat, everyone wondered what food would be offered. The kids were surprised to see something that they had never eaten before. What exactly was it?

    “What are these sandwiches made of?” said Simon.

    “Tofu and bread! It was Chad’s idea,” said Stacy, who had grilled 30 of them during the hour-long soccer game.

    “You have gotta be kidding me, Chad. Are you trying to starve these kids?” said Luke.

    “Not at all. Kids, you will find that the tofu fills you up. We have both ketchup and mustard to put on your sandwiches. Give it a try,” said Chad.

    Chad took some slices of tofu and put them on bread. Then he mixed ketchup and mustard before taking a big bite. The children seemed reluctant, but they were willing to give it a try because, after all, this was Chad. He was strong and athletic, so if this is how he ate, it was worth a try.

    “This is delicious!” said Simon.

    “Glad you like it,” said Chad.

    “Chad, I can’t believe you would force your weird eating habits on these children! You should bring real food next time!” said Luke.

    "Luke, you’re welcome to bring whatever food for the children you want each week. As for me, I can’t imagine giving them anything less than the best I have found that works for my soccer career.

    “Listen, everybody, while we eat, I have a Bible story for you that you probably haven’t heard before.”

    The children looked up, quite curious. Then Stacy began to read from the King James Bible that her father had insisted she use for reading to these kids.


    Daniel 1:1 In the third year of the reign of Jehoiakim king of Judah came Nebuchadnezzar king of Babylon unto Jerusalem, and besieged it.

    2 And the Lord gave Jehoiakim king of Judah into his hand, with part of the vessels of the house of God: which he carried into the land of Shinar to the house of his god; and he brought the vessels into the treasure house of his god.

    3 And the king spake unto Ashpenaz the master of his eunuchs, that he should bring certain of the children of Israel, and of the king’s seed, and of the princes;


    By the time Stacy had gotten this far, the children looked confused.

    “I don’t understand this at all. Can you explain it in a way kids can understand?” said Simon.

    "Don’t worry, I got this. I don’t read the King James Version myself. I think I can explain this story in a more relatable way. Chad began to paraphrase it the best he could in modern English.


    "There was a dude who called himself the King of Babylon. He went to war against Jerusalem and took its treasures. He also made some of the people from there become his servants in his palace.

    These guys were named Daniel, Hananiah, Mishael, and Azariah. The King appointed a guy named Ashpenaz master of the eunuchs. He was ordered to give them meat and wine, similar to what the King ate while training them to be servants for the king.

    But one of the 4 captives, Daniel, ate differently than most people. He asked Ashpenaz only to give him vegetables and water. Ashpenaz refused to do this because he was afraid the king would kill him if any of the servants looked malnourished."


    “So what did Daniel do when Ashpenaz didn’t agree?” said Simon.


    "He went to the assistant manager that Ashpenaz had left in charge. Daniel asked that he and his 3 friends be given only water and vegetables for ten days to prove how healthy they could be without the king’s food. Melzar thought this was an acceptable test.

    At the end of the ten days, Melzar saw that they looked healthier than the other servants who regularly ate the king’s meat and wine. So he made their diet permanent because it seemed to be working for them, even though he probably didn’t understand it."


    “Chad, is this Bible story the reason you never eat meat?” asked Luke.

    “It’s not the only reason, but if it works, why change it?” said Chad.

    The children were amazed at this story and wondered if it was true that they could eat vegetables and drink water. Would they be strong and healthy like Chad if they did?

    “Thanks for helping out, Chad. I couldn’t read the King James Bible for long because it’s just not the way we talk anymore. Clearly, you have read this story many times,” said Stacy.

    “Thank you for grilling the tofu, Stacy. It tastes amazing when it is slightly burnt on the grill,” said Chad.

    Everyone had a good day, except for Luke. He watched as the kids asked for more tofu while Chad and Stacy discussed future Bible stories that might interest the kids. He had only made Chad more popular with his scheme of a soccer ministry for kids.

  • Anastasia and Chastity Podcast 2

    This video was a casual conversation I had with my friend Anastasia who I have known since she joined the Rainbow Pro-Life Alliance. She is no longer with the RPLA but instead is more actively involved with Survivors of the Abortion Holocaust. I asked her some about that.

    This podcast was a great chance to talk with Ana about how things are going in her life now. We also had some amazing things to talk about in regards to religion, reading books, and even game references like Chess and Pokemon.

  • The Bitwise Operations

    There are 5 bitwise operations which operate on the bits of data in a computer. For the purpose of demonstration, it doesn’t matter which number the bits represent at the moment. This is because the bits don’t have to represent numbers at all but can represent anything described in two states. Bits are commonly used to represent statements that are true or false. For the purposes of this section, the words AND, OR, XOR are in capital letters because their meaning is only loosely related to the Englist words they get their name from.

    Bitwise AND Operation

    0 AND 0 == 0
    0 AND 1 == 0	
    1 AND 0 == 0
    1 AND 1 == 1
    

    Think of the bitwise AND operation as multiplication of single bits. 1 times 1 is always 1 but 0 times anything is always 0. That’s how I personally think of it. I guess you could say that something is true only if two conditions are true. For example, if I go to Walmart AND do my job then it is true that I get paid.

    Bitwise OR Operation

    0 OR 0 == 0
    0 OR 1 == 1	
    1 OR 0 == 1
    1 OR 1 == 1
    

    The bitwise OR operation can be thought of as something that is true if one or two conditions are true. For example, it is true that playing in the street will result in you dying because you got run over by a car. It is also true that if you live long enough, something else will kill you. Therefore, the bit of your impending death is always 1.

    Bitwise XOR Operation

    0 XOR 0 == 0
    0 XOR 1 == 1	
    1 XOR 0 == 1
    1 XOR 1 == 0
    

    The bitwise XOR operation is different because it isn’t really used much for evaluating true or false. Instead, it is commonly used to invert a bit. For example, if you go back to the source of my graphics programs in Chapter 2, you will see that most of those programs contain the statement:

    index^=1;

    If you look at my XOR chart above, you will see that using XOR of any bit with a 1 causes the result to be the opposite of the original bit. In the context of those programs, the index variable is meant to be 0 to represent black and 1 to represent white. The XOR operation is the quickest way to achieve this bit inversion. In fact, in all my years of programming, that’s pretty much the only thing I have used it for!

    Bitwise Left and Right Shift Operations

    Consider the case of the following 8 bit value:

    00001000

    This would of course represent the number 8 because a 1 is in the 8’s place value. We can left shift or right shift.

    00001000 ==  8 : is the original byte
    
    00010000 == 16 : after left shift
    00000100 ==  4 : after right shift
    

    Left and right shift operations allow us to multiply or divide a number by 2 by taking advantage of the base 2 system. These shifts are essential in graphics programming because sometimes to need to extract the red, green, or blue values separately out of their 24 bit representation. For example, consider this code:

       pixel=p[x+y*width];
       r=(pixel&0xFF0000)>>16;
       g=(pixel&0x00FF00)>>8;
       b=(pixel&0x0000FF);
    

    The first statement gets the pixel out of an array of data which is indexed by x and y geometric coordinates. This will be a 24 bit value, or in some cases 32 bit with the highest 8 bits representing the alpha or transparency level.

    variables r,g,b represent red, green, and blue. With clever use of bitwise AND operations and right shifting by the correct number of bits, it is possible to extract just that color component to be modified. Without the ability to do this, my graphics animations and my Tetris game would never have been possible. The colors had to be exactly sent to the drawing functions. This is true not just for SDL but using any graphical system involving colors.

    Learning More

    I know I covered a lot in this chapter but I encourage you to learn about the binary numeral system and its close cousin the hexadecimal system. If you do an online search, you will find courses, tutorials, and videos by millions of people who can probably explain these same concepts in a way that you understand better if you are still confused after reading this chapter!