Pages

Showing posts with label personal. Show all posts
Showing posts with label personal. Show all posts

Thursday, February 18, 2016

The Bedlamite's Greatest Hits: The Pearls Are Swine (No, That's An Insult To Swine)

A lot of people go around, saying things like "humorless PC SJWs can't take a joke" whenever those of us who care about things like racism point out that it isn't funny.

Now, I could write an extensive post detailing exactly why racism isn't funny, going into How Humor Works and the specifics of "punching up" and "punching down" and explaining why one makes you a comedian and the other makes you a bully (at this point the Bedlamite makes a note on a five-foot-long To Do list), but as an empiricist it would be better to provide a counterexample.

And so, I present one of my own jokes from elsewhere, tested in an SJW space and demonstrably SJW-approved!

A bit of context, first.

Michael and Debi Pearl are a pair of Christian conservatives (bordering on reactionaries), associated with a number of fundamentalist and evangelical movements including Quiverfull (known to the American public through the show 19 Kids And Counting). I know them through Libby Anne's blog, where she live-read several of their books: To Train Up A Child, Created to be His Helpmeet, and Created to Need a Helpmeet. In these books, which another commenter compared (unfavorably) to excrement, Michael and Debi describe their preferred way to raise children and Tame Shrews resolve marital disputes: devise rules, the more arbitrary the better; wait for the victim person to break a rule; hit the person with a stick; repeat as necessary.

Those of you who are reading this are probably thinking to yourselves: Bedlamite, that sounds like child and spousal abuse!

Yes. Yes it is. In fact, children have died as a result of the Pearls' teachings.

Now you are probably thinking: But you PC SJWs are supposed to be easily offended! How can you go making jokes about serious topics like that?

Wait for the joke; it's behind a bit more necessary context. Then, if you still don't understand how us "PC" SJWs can make jokes about serious and traumatic subjects, wait for the post about How Humor Works and I'll tell you how to make Holocaust jokes funny.

Back to the necessary context, before I was so rudely interrupted.

The Aristocrats is a common joke that comedians tell one another. The form is simple:
  1. A guy walks into a talent agency, and he says "Have I got an act for you!"
  2. He then demonstrates or describes the act, usually calling in his family to help.
  3. The agent asks what he calls the act, and he responds, usually in a dramatic way, "The Aristocrats!"
  4. In some tellings of the joke, the agent asks a question, such as "How much for season tickets?" or "Can you really get [famous performer]?"
Part 2 is almost always the longest part of the joke. It consists of the most vile thing the comedian can imagine. Murder, necrophilia, bodily waste, bestiality, blasphemy, and mocking of famous tragedies such as the Holocaust or 9/11 are common. As you might expect, this kind of joke is one of the reasons why some comedy clubs don't admit kids.

Since you can probably see where this is going, I now present the joke:

[SCENE: Room interior. A PUBLISHER sits at a desk. MICHAEL and DEBI enter.]
PUBLISHER: So, I hear the two of you want to write Christian advice books?
MICHAEL: Yeah. Underserved market and all that.
DEBI: Got to strike a blow for God in this fallen world.
PUBLISHER: Anything in particular?
MICHAEL: Well, I was thinking I'd start with a child-rearing book.
DEBI: And if that's a success, I'd write a marriage advice book.
PUBLISHER: Okay, that sounds good.
MICHAEL: So many unhappy children. They need to be beaten until they're happy!
PUBLISHER: (jaw drops, stunned silence)
DEBI: And so many couples just don't get along. You know the answer? Wifely obedience!
MICHAEL: Right. She's so much happier since she stopped having any will of her own.
DEBI: And our kids are much happier since we started hitting them with plumbing line.
MICHAEL: Yeah, that's going to be a big thing in my book. Hit your kids for disobedience.
DEBI: Hit them for being unhappy.
MICHAEL: Hit them for speaking when not spoken to.
DEBI: Hit them for not crying when hit.
MICHAEL: Hit them for crying too much when hit.
DEBI: Hit them for breaking rules.
MICHAEL: Oh, but the rules don't have to make sense. Or be ones that the kids have had a chance to learn. In fact, it's better if they're complete nonsense you made up five seconds ago.
DEBI: Yeah. Kids need to respect rules, and they can't learn respect for the rules if the rules aren't completely arbitrary.
MICHAEL: And of course, no one will ever take this too far.
DEBI: Not that we'll define what "too far" is. It's enough to not use the rod in anger.
MICHAEL: Of course, all of this is because all children are born full of sin, and rebel against rightful authority.
DEBI: Which is why their wills need to broken.
MICHAEL: Like I did with yours, honey?
DEBI: Yes, and that's what my book's about.
MICHAEL: She's been so much happier after I beat the shit out of her. Wasn't over anything important either. Just whose turn it was to take out the garbage.
DEBI: My book's about how God wants women to be quiet and submit themselves completely to their husbands.
MICHAEL: Even if it's about sex, and she doesn't want it. Especially then!
DEBI: Right. It's the wife's duty to do absolutely anything the husband wants.
MICHAEL: Aside from treating him like a woman.
DEBI: Right. No gay stuff. Anyway, the wife needs to keep all of her problems bottled up. Otherwise she'll drive him away.
MICHAEL: I was thinking I might write a companion book, where the husband's told that if his wife doesn't say anything, he should assume that everything's fine. Muahaha.
DEBI: Even if the husband's doing illegal things, she should just smile and help him bury the bodies. Unless he's pimping out their minor son.
MICHAEL: Right. No gay stuff.
DEBI: Even if he beats her, and breaks her bones, it's probably because she did something to deserve it. Like asking him to do something, or not being a perfect servant all the time.
MICHAEL: Or frowning. Or not being beautiful enough.
DEBI: Right, and if she really needs something from him, like enough money to buy food fit for human consumption, what she needs to do is submit harder and let God take care of it.
MICHAEL: Or else he'll leave her for a hot young girl, and leave her alone in a duplex.
DEBI: Where she gets tempted into the worst sin possible: gay stuff!
MICHAEL: Oh, and you forgot, it needs to be more focused on the man.
DEBI: Right, right. All women are meant to mold themselves into the shape that fits their man, but there's three types of men. There's the boring kind. There's the flighty kind. And there's the kind who loves you and shows you that he does.
MICHAEL: By beating the shit out of you.
DEBI: And if you're lucky enough to have that kind --
PUBLISHER: Who the hell are you two?!
MICHAEL & DEBI: The Aristocrats!

Sunday, June 14, 2015

An Open Letter To People Who Think "Man Coulter" is a Funny Joke

Dear [insert form of address],

It has come to my attention that, when discussing a certain conservative pundit, you think it is a valid criticism, or funny, or in any way appropriate, to make "jokes" to the effect of "she has an Adam's apple" or "she's a man" or the like. I would like to disabuse you of this notion.

To begin, I believe you identify as liberal, correct? You believe in equality, and standing with he oppressed against their oppressors, and the rights of the downtrodden, correct? You believe that membership in a class, even or especially an unprivileged class, is not cause for shame?

Furthermore, you believe, as I do, that Ms. Coulter is a throughly vile human being, correct? You agree that she is a hateful, racist, sexist, homophobic, transphobic, poverty-bashing, genocide-advocating, torture-apologist, victim-blaming, idiotic, willfully ignorant, talentless, unfunny, Christian-supremacist, jingoistic, warmongering, self-loathing, self-absorbed, arrogant, narrow-minded, dichotomously thinking, hypocritical, violent mouthpiece for some of the most disgusting ideologies in mainstream political discourse?

Why then is it, that the best insult for her you can manage amounts to "ha ha ugly t****y"? There is much to criticize: her idea that Christianity should be brought to the Middle East with a sword, her defenses of people who are actively trying to bring about the End of Days, her inability to distinguish between nuance and treason, and all of the things listed in the previous paragraph; so why are you going with something fundamentally irrelevant to her opinions?

For that matter, why are you using "ha ha ugly t****y" as an insult? Why are you choosing to criticize a woman pundit with "ugly", implying that her looks are at all relevant to the validity of her opinions? Why are you criticizing anyone with "t****y", implying that being trans* is fundamentally a bad thing; much less criticizing a pundit with it, and implying that trans* people's opinions are fundamentally invalid?

In conclusion, you should engage with ideas you don't like, instead of dismissing them by claiming that the person who has them is a member of an unprivileged class.

Signed,
A Liberal Who's Tired Of You Undermining The Cause

(Note: This letter is also addressed to people who think "I wouldn't sleep with [name]" is a valid criticism of a conservative politician.)

Tuesday, October 15, 2013

A Game Designer's Reflections on Scarlet Blade

No doubt, if you spend time on the internet, you have seen ads for games that openly use sex to sell games. You've seen the banner ads that have scantily-clad ladies and sexually-charged captions to get you to click on the ad, which takes you to a game that only rarely has anything to do with sex.

Well, I'm going to be discussing something a bit different here. I'm going to be discussing one of the games that does that, and actually delivers, and all of the things that are wrong with it.

The following material is flagged Red Level. It deals with the blogger's original ideas, personal beliefs, and delusions; and might not be believed by any expert in any field anywhere.
Now, let me start with a bit of a disclaimer. I have nothing against sex in general, nor against sex in games specifically. It is my belief that a game containing sex, or even about sex, can be good; in the same way as non-game entertainment containing sex, or even outright porn, can be funny or dramatic or sweet or otherwise well-written (no I am not going to put any links here; what I get off to is one of those things that I do not wish to share with the Internet, and I am sure that you do not wish to know either)

What I do object to is trying to replace good writing with sex appeal.

Now, on to a discussion of the game in question.

Scarlet Blade is one of the games that uses the advertising gimmicks I mentioned in the introduction. The banner ads it puts up are a woman, or more accurately a 3D model of a porcelain doll resembling a woman (either nude or in what appears to be bondage gear) with a sexualized caption. The game itself is a fairly bog-standard MMORPG with several bugs (largely related to pathfinding) and some severe balance issues (most adversaries are trivially easy to defeat; the only way to really lose outside of a boss fight is to run a streak without resting; and doing this does not grant any benefits). It is obvious from this that SB does not intend to sell itself on unique or challenging gameplay.

No, SB runs mostly on sex appeal. The login page depicts a character similar to the ones in the ads who appears to be making use of some kind of mecha in a rather unconventional way. About 85% of the dialogue (a rough guess) is either explicitly sexual or an obvious double entendre. Your avatar's dialogue with you (see later in this post for an explanation of this part) is, for the most part, intended to get you to think of your avatar as a sexual being, and is based on the assumption that you find your avatar sexually attractive; the continuous propositions from other characters do not work against this. Your avatar is portrayed wearing very little; in the beginning the avatar is wearing little more than what appears to be a metal bikini; and even in full armor your avatar is wearing much less than even is usual for heroines in most graphic media. For those players who did not find this level of sexualization overwhelming, there is an option, advertised in loading screens, to remove even what little your avatar was wearing.

Which is a real shame, because there's a few bits of good story that could have been developed into games (with some rather unusual gameplay!) of their own. Occasionally, a bit of dialogue or flavor text will show up involving transhumanist philosophy (your avatar has been biologically modified to the point of being no longer human; and every now and then there's discussion about whether or not a creation has a duty to its creators or the reverse or at what point a modified human stops being human); the framing narrative is interestingly metafictional (essentially, you are, well, you: the person sitting in the chair playing the game. Your avatar is a separate person to whom you give orders, which seems to deliberately parallel the idea of a video game character); the narrative at least in theory focuses on a war, and occasional mentions are made of the cost of war to the people fighting it, the civilian population, the idea of morals, and the land itself; and part of the plot centers around the (at least) three different relationships between you and your avatar.

In other words, the actual story reads as though the developers were trying to create a mature game, but did not know the difference between "mature" and "adult"; and so, they ruined several mature games by making a game that was mature only in rating.

Thursday, November 29, 2012

Sharazad Launched!

So, some of you might have been wondering if I'm ever going to actually make a game. Well, I have made a few, but the question is actually "Can we see them?" (grumble, grumble, blah blah comments blah blah I don't bite blah I know you're out there blah blah blah go right ahead etcetera etcetera). Well, I now have a very lightweight Storynexus game: Sharazad!

In Sharazad, you play, more or less, as a culture. You tell stories, and those stories affect how people in the culture behave. People's behavior influences how well the culture survives: how well it avoids being exterminated by the people over the next hill, being eaten by bears, being absorbed into another culture, being torn apart by revolution, stagnating and collapsing...

Well, that's the finished version. Right now, I have the "you tell stories" part.

Sharazad can be found here.

The feedback thread can be found here.

Friday, March 9, 2012

C++: Dependent T and Regression.

A little something I wrote for my stats class.

//Runs Dependent T on a set of data.
This part is called a comment. It explains what a piece of code does to anyone reading the code. It does nothing else; the compiler/interpreter ignores it.

#include <iostream>
#include <sstream>
#include <math.h>
These are packages used by the program: pieces of code written by someone else. All three packages are included with the compiler/IDE (Integrated Development Envirionemt, a program that helps to write code by making sure that the programmer is writing correctly) that I was using (Visual C++ Express, in case you were wondering).

IOStream handles the console, which looks a lot like the MS-DOS prompt (lay off. I'm old, so I'm allowed to go spouting jargon that you young whippersnappers have never seen).

SStream handles strings, which are how programmers say text.

Math.h handles calculations more complicated than basic arithmetic.
using namespace std;
This is called a namespace. It controls what code this program has access to, and what code has access to this program. Most C++ code uses the "std", or standard, namespace.

int main ()
{
This is called a function. It is a piece of code that can be run. The part inside the parentheses is where arguments (information that some methods need in order to run) would go, but this method does not require any information that it does not collect itself.

Incidentally, the main() method is the "starting point", or the part of the code that runs first.
    bool collecting=true;
    double sum1, sum2, count, sumdiff, sumdiffsquare, sumproducts, sum1square, sum2square;
    double correllation;
These are called variable declarations. They tell the compiler to set aside part of the computer's memory to store information, and describe the type of information that it will need to store.

Bool is short for boolean. It describes a piece of information that is either true or false.

Double is a type of information that stores numbers and fractions.

As you can see, it is possible to create more than one variable at a time.

Also, these statements all end in semicolons. This tells the computer that the statement is over and that it should prepare to read the next one.
    sum1=0;
    sum2=0;
    count=0;
    sumdiff=0;
    sumdiffsquare=0;
    sumproducts=0;
    sum1square=0;
    sum2square=0;
    string string1, string2 ="";
These are called variable assignments. They tell the computer to change the information stored in its memory to the values provided.

All of the assignments change the information in memory to what is called literals, or values clearly defined in the code. This is somewhat bad practice; if I needed to change the code, there's a chance I'd forget why I chose some numbers instead of others. To get around this, most of the time a programmer will use something like this:

const int initialValue=0;
int myvar=initialValue;

    string input;
    while(collecting)
    {
Here, we will use what is called a while loop. A loop is a piece of code that is run repeatedly, without any major changes. A loop might be used to keep a game running, or to add one to every item in a list; in this case, we're using it to gather information from the user.
        try
        {
This is what is called a try-catch block. What it does is it runs this piece of code:
            double in1;
            cout << "Enter the first datum for this point. Press Enter to calculate.\n"; 
(this, by the way, is how C++ writes something to the console; the "\n" at the end is called an escape character, and it applies some special effect to the text, in the case of \n it ends the line and starts another)
            getline(cin,input);
(this takes console input that ends with an Enter, and puts it into the variable "input")
            stringstream(input) >> in1;
(this takes the variable of type string [used to store text] called "input" and puts  it into the variable of type double called "in1")
            if(input=="")
            {
(this is called an if block. It runs a piece of code if and only if a particular condition is met, in this case if "input" is what is called a blank string)
                collecting=false;
                break;
(a break statement will cause the computer to instantly end one loop it is running)
            }
(and this ending curve bracket tells the computer that it has reached the end of a loop, block, or method)
            double in2;
            cout << "Enter the second datum for this point. Press Enter to calculate.\n";
            getline(cin,input);
            stringstream(input) >> in2;
            if(input=="")
            {
                collecting=false;
                break;
            }
(this is where a bit of calculation takes place)
            sum1+= in1;
(this increases the value stored in sum1 by in1)
            sum2+=in2;
            count++;
(this increases the value stored in count by 1)
            sumdiff+=in1-in2;
            sumdiffsquare += (in1-in2) * (in1-in2);
            sumproducts += in1*in2;
            sum1square+=(in1*in1);
            sum2square += in2*in2;
        }
And then, if the computer makes a mistake (called an exception)  at any point in that, for instance if it cannot convert whatever the user typed into a double, it instead runs this catch block and instantly ends the try block:
        catch (exception e)
        {
            collecting=false;
        }
    }
And here we end the for loop.
    cout << "Dependent T:" << endl;
Here is the part where the computer handles output. endl, by the way, is another way of ending a line.
    cout << "Mean X:" << sum1/count << endl;
As you can see, it is possible for the computer to include things other than strings in text. This is because the computer runs an implicit cast on the variable, a piece of code included in the compiler that changes one type of variable into another.
    cout << "Mean Y:" << sum2/count << endl;
    cout << "Sum of differences:" << sumdiff << endl;
    cout << "Sum of square differences:" << sumdiffsquare << endl;
    cout << "Count:" << count << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
And here, we have the part of the code that tells it to wait until the user has pressed Enter.
    cout << "Difference of means:" << (sum1-sum2)/count << endl;
    cout << "Average square difference" << sumdiffsquare/count << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "Count * count-1:" << count*(count-1) << endl;
    cout << "Square sum of differences - average square difference:" << sumdiff*sumdiff-(sumdiffsquare/count) << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "Square root of square sum of differences - average square difference:" << sqrt(sumdiff*sumdiff-(sumdiffsquare/count)) << endl;
And here we see an actual function in use! sqrt(number) returns (that is, when included in code, its value is equal to) the (positive) square root of its argument. In this case, we can include an expression (essentially, a calculation) as its argument, because that expression returns a number. 
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "T value:" << ((sum1-sum2)/count)/sqrt(sumdiff*sumdiff-(sumdiffsquare/count)) << endl;
    cout << "Degrees of freedom:" << count-1 << endl;
    cout << "--------------------------------------------" << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
 Dependent T, by the way, is a way of figuring out whether a difference in two numbers associated with the same experimental uint and measured on the same scale (for instance, the number of cigarettes a person smokes per hour while wearing a sticker and while wearing a nicotine-laced sticker). The way it works is that the T-value (an adjustment of the difference between averages of two groups) is calculated, along with a number called the degrees of freedom. These are then looked up on a table, and if the t-value exceeds the range listed for a given probability at the degrees of freedom, the odds that the difference in averages was purely because of chance are less than the probability for which it was looked up.
    cout << "Regression:" << endl;
    cout << "Count:" << count << endl;
    cout << "Sum of products:" << sumproducts << endl;
    cout << "Sum X:" << sum1 << endl;
    cout << "Sum Y:" << sum2 << endl;
    cout << "Sum X square" << sum1square << endl;
    cout << "Sum Y square" << sum2square << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "Count * sum of products:" << count * sumproducts << endl;
    cout << "Product of sums:" << sum1*sum2 << endl;
    cout << "Count * sum of square X:" << count * sum1square << endl;
    cout << "Square sum of X:" << sum1*sum1 << endl;
    cout << "Count * sum of square Y:" << count * sum2square << endl;
    cout << "Square sum of Y:" << sum2*sum2 << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "Count * sum of products - product of sums:" << count * sumproducts - sum1 * sum2 << endl;
    cout << "Count * sum of square X - square sum of X:" << count * sum1square - sum1*sum1 << endl;
    cout << "Count * sum of square Y - square sum of Y:" << count * sum2square - sum2*sum2 << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "X-part * Y-part:" <<(count * sum1square - sum1*sum1)*(count * sum2square - sum2*sum2) << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "Square root X-part * Y-part:" << sqrt((count * sum1square - sum1*sum1)*(count * sum2square - sum2*sum2)) << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    correllation= (count * sumproducts - sum1 * sum2)/sqrt((count * sum1square - sum1*sum1)*(count * sum2square - sum2*sum2));
    cout << "Correllation coefficient:" << correllation << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "Begin T value derivation:" << endl;
    cout << "Count:" << count << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "Square of correllation coefficient:" << correllation*correllation << endl;
    cout << "Count - 2:" << count-2 << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "1-square of correllation coefficient:" << 1-correllation*correllation << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "Deviance:" << (1-correllation*correllation)/(count-2) << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "Standard deviation:" << sqrt((1-correllation*correllation)/(count-2)) << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
    cout << "T value:" << correllation/sqrt((1-correllation*correllation)/(count-2)) << endl;
    cout << "Degrees of freedom:" << count-2 << endl;
    cout << "--------------------------------------------" << endl;
    cout << "--------------------------------------------" << endl;
    getline(cin,input);
Nothing new here. Regression is a way of determining whether there is a correlation between two things, that is, whether they tend to appear together, or whether they tend to appear apart, or whether they appear independently. It also produces a T-value, which is used the same way as the one above.

    //reach this line last
    return 0;
And here is what the function returns. If a function does not need to return anything, in C++ there is a convention of having it return 0.
}

Saturday, December 17, 2011

Social Media: 12/9/11-12/17/11

Sorry for the delay. Things have gotten busier since my last final.
Facebook:

Google+:

James Yakura  -  Dec 15, 2011  -   -  Limited
Last final coming up.
 -  Comment  -  Hangout  -  Share

James Yakura

James Yakura's profile photo
James Yakura  -  Dec 14, 2011  - 
+1'd on sidhe3141.blogspot.com
 -  Public
Legal disclamer: I did not actually contact Jack Chick to borrow his "character". Bob is so lacking in personality anyway that he's hardly Chick's invention.
scribblings on the bedlamite's wall. tom's in his cloister, all's right with the world. A blog about science, philosophy, and other things that some random person finds interesting. Click ...
 -  Comment  -  Hangout  -  Share

James Yakura

James Yakura's profile photo
James Yakura  -  Dec 12, 2011  - 
+1'd on sidhe3141.blogspot.com
 -  Public
And now dwarves get a turn.
scribblings on the bedlamite's wall. tom's in his cloister, all's right with the world. A blog about science, philosophy, and other things that some random person finds interesting. Click ...
 -  Comment  -  Hangout  -  Share

James Yakura

James Yakura's profile photo
James Yakura  -  Dec 11, 2011  - 
+1'd on notalwaysright.com
 -  Public
The Devil's Logic. Retail | Pune, India | At The Checkout. (I am a customer checking out at a famous Indian supermarket. To make things faster, I am putting the stuff from my cart onto the conveyo...
 -  Comment  -  Hangout  -  Share
Twitter:
It is not enough to have a good mind. The main thing is to use it well. ~ Descartes
So this is why I am going to Hell, but someone could have Siri-levels of fun with this:
From each according to his abilities, to each according to his needs. ~ Karl Marx
I am not an Athenian, nor a Greek, but a citizen of the world. ~ Socrates
scribblings on the bedlamite's wall: Evolution: Part VII: Common Criticisms
scribblings on the bedlamite's wall: Game Theory X: Metagames: Extortion
I just found out the girl I've been seeing for a month likes Twilight.
In a republic this rule ought to be observed: that the majority should not have the predominant power. ~ Cicero
Cease to think that the decrees of the gods can be changed by prayers. ~ Virgil
BBC News - Age of criminal responsibility 'too low', experts say
When I take my hair out of a ponytail, it leaves a weird crease.