Writing Non-Sexist Fiction

BlackWidowHawkeye
“The Hawkeye Initiative” replaces female characters in comic book art with male superhero “Hawkeye” in order to expose the unequal portrayal of the sexes in comics.

A friend of mine recently reviewed one of my stories from a feminist and minority perspective. I won’t go into the details as they’re frankly rather embarrassing save to say that my story did not hold up.  It was difficult to hear some of the feedback, but I was pleased overall because much of it aligned with some of my own concerns. My third person limited perspective from two white male main characters as well as my own identity and personal experience being male make it a little more difficult for me to be appropriately feminist, but that’s no excuse. My reader and I discussed at length what a white heterosexual male fiction writer can do to make his work fairer to other life experiences, particularly those of women.

One suggestion my reader brought up was a gender swapping thought experiment. The theory is that characters not built around gender roles can have their sex reversed with relatively little change to the story. (Gender swapping in fiction is not a new concept: see “The Hawkeye Initiative” above). For instance, if my story starts out with a woman in high heels falling and being abducted by an enormous beast, I should consider making the woman a man and the effect that would have on the story (The first effect would likely involve the removing of the high heels). My reader had a particularly radical view on this that I could invert the sex of any character, including both my male main characters, with little change to the story at all. He said this would always be the case unless something in the story specifically hinged on the physical nature of their biological sex.

At this point we decided that perhaps my friend’s identity as a homosexual man whose life experience includes relatively little of the adult american gender dynamic is what leads him to underestimate the real significance of gender in who a person is in a story or in real life. Women have proven time and time again they can do almost anything a man can do and more and men likewise, with the differences between the groups outweighed dramatically by the variety present within each, but the difference between men and women still exists, especially where societal roles are concerned. However, the perspective of someone with much less of this experience permits me to check my assumptions as to the significance of the differences genetics and society impose on men and women and become aware of whether my work challenges or is complicit in the exaggeration of such differences that have the potential to alienate people with different life experiences.

Plus, I happen to have learned through this experiment that a number of my characters may actually be much better as the other sex. A gossipy southern mother who knows the proper way to entertain could now become a indiscreet southern father who is particularly concerned with appearances. In a later story I’m thinking a garrulous ten-year-old and natural leader might be better cast as a loquacious tomboy with a knack for collecting small gangs of elementary school boys to do her bidding.

Advertisements

My Cousins Once Removed

Ok, I’ve separated the ChefScript out into its own blog. Now I can take some of the pressure off of this blog to be consistently interesting to strangers. I’m going back to writing about whatever I happen to think of, and some things may interest the wider world while others won’t.

As many of you probably know, Christmas happened not five days ago. I probably don’t need to inform you that the day before Christmas is Christmas Eve. The day before that my mother asked me to take some time to look after three of my first cousins once removed. One is technically closer to a step first cousin once removed, but on my father’s side family is more defined by who shows up at the gatherings than any kind of blood relation. I feel no less close to her than to any of my other cousins. Just as a reminder for those of you less familiar with advanced familial relationships, a “first cousin once removed” is the child of a first cousin or the first cousin of a parent. So, if I have a first cousin Frances, her son Martin is my first cousin. If I have a father Elizabeth with a first cousin Xander, Xander is my first cousin once removed. These first cousins once removed are all the children of my cousins, and they are three beautiful girls, ranging in age from eight to fourteen.

I was mostly thinking of my work when my mother asked me to take care of these three and I only knew one of them very well, so I was at first reticent to dedicate my time to them. Eventually out of a sense of obligation I conceded, and once they arrived it took very little time for me to realize what a terrific decision I’d made. Here are some of the highlights.

When we were in the car, one girl wanted to listen to the radio. My sister turned on the radio and asked what station. She couldn’t think of it, so the eight-year-old on my lap said she knew a station she wanted to listen to. My sister asked what the number was, and she said “Q-U-E-I-T dot seven.” Most of the occupants of the car agreed that, although she misspelled it, it was a clever way to say she wanted not to have the radio on.

When I told everyone that everyone would be going to the Christmas Eve service, and the question was whether they wanted to go to the music beforehand, the eight-year-old raised her hand to her face and looked at it quizzically. I didn’t understand what she was doing until she said “before… hand?” Then she told me “You talk all ‘Sciencey.’ Nobody talks like that but tall, beanish people.” I still haven’t figured out what she meant by “beanish.”

My family is taking care of some large, white rats that we like to let climb around on us. The youngest child let us put a rat on her, but neither of the elder two would. The middle child was willing to touch it just to say she did, but the eldest refused outright even the slightest contact.

After some time in my company, it got to the point that I could say almost anything and all three children would erupt in laughter. My sister was also not immune to this treatment. She had a little giggle that everyone wanted to repeat to much merriment. Once I stood and hit my head on a low-hanging lamp. That nearly did them in. I look forward to seeing more of these cousins of mine in the future.

Treadmill Desk

As I write this post to you, dear readers, I am standing and walking forward at 0.6 miles per hour. Well, I would be if I were writing from Raleigh rather than Chapel Hill visiting my family where I have no such treadmill desk. For the moment, let’s imagine that I am doing now what I have been doing for the past week and there are no unusual circumstances screwing things up.

I have wanted a treadmill desk ever since I learned of their existence years and years ago. The problem? They’re expensive. They generally run around $1000 on average. At a minimum (from a cursory glance at Amazon) they’re about $800. Even for a purchase for my health that felt steep.  Then my roommate Joe announced that he had acquired a treadmill desk for $200.  How did he do it? He took advantage of the fact that, in the end, a treadmill desk is just a treadmill under a standing desk. The cheapest treadmill on Amazon goes for $200 and with a little work can have its arms removed so that it slides neatly under most tables. Then stack up some (relatively stable) boxes and crates to make a standing desk and voila! For more details you can consult this guide.

Let me tell you about owning and regularly using a treadmill desk: It’s tiring. The first few days I would walk for a few hours working and feel like my feet were going to fall apart. I got used to it eventually, but I still take my computer down to the side of my table for a simple sitting desk now and then.

One issue with this treadmill desk that has actually turned out to be an advantage of sorts is that the treadmill itself is so cheap that it only has one timer setting – thirty minutes – that cannot be turned off. I will be working for a while getting into what I’m doing when suddenly GLOMP I stumble forward on my abruptly motionless treadmill. Sounds pretty annoying, right?

Well, it turns out that I tend to get absorbed in activities, so having a literal jerk back into reality every thirty minutes can be terrifically helpful. In particular playing Civilization 5 recently I would say I’d play for an hour (two GLOMPs) so I would play until the second GLOMP at which point I would be reluctant to pull away just yet from my attempts to convince Luxembourg to join my empire, so I would start the treadmill again and say I’d stop playing when I’d annexed Luxembourg. Of course by the time I’ve achieved that goal, a few more are just within my reach, so it is very difficult for me to stop playing until GLOMP I stumble forward again and say “all right, that’s enough.”

Stay tuned for another entry today on my recent foray into ChefScript.

ChefScript: Miso Kale Salad

Now that we’ve covered the basic concept of programming, particularly that programs are built from the bottom up by combining simple concepts into more complex ones, let me introduce my second lesson. In this lesson I will begin to demonstrate programming concepts through cooking by showing how recipes, sets of instructions for people, can be written more like computer programs, which are sets of instructions for computers. To this end I present “ChefScript,” a loosely formalized language used to represent the logic of a recipe. ChefScript is a pseudocode language, that is, a hybrid of human and computer language used to model a program’s structure prior to implementation. ChefScript will read roughly like a cross between a typical recipe and a programming language.

As my first example of ChefScript, let me write out the recipe for Miso Kale Salad.


Miso Kale Salad

Ingredients:
Kale
Carrots
Miso = Red Miso
Vinegar = Apple Cider Vinegar
Oil  = Extra Virgin Olive Oil
Onion = One half of a small onion
Tofu = Dry-packaged or pressed tofu
Parsley = Dried Parsley

Tools:
Large Salad Bowl
Food Processor

Main:
Remove Ribs (Kale)
Slice (Carrots)
Large Salad Bowl.Add(Kale,Carrots)
Dressing = Make Dressing()
Large Salad Bowl.Add(Dressing)
Large Salad Bowl.Contents.Massage()
Serve(Large Salad Bowl.Contents)
end

Make Dressing:
Slice(Tofu)
Slice(Onion)
Food Processor.Add(Tofu,Onion,Parsley,Oil,Vinegar)
Food Processor.Run()
return Food Processor.Contents
end

Now let me explain what that all means in English. Hopefully most of it should be pretty clear. Let’s start with Ingredients and Tools.

Ingredients:
Kale
Carrots
Miso = Red Miso
Vinegar = Apple Cider Vinegar
Oil  = Extra Virgin Olive Oil
Onion = One half of a small onion
Tofu = Dry-packaged or pressed tofu
Parsley = Dried Parsley

Tools:
Large Salad Bowl
Food Processor

This says we need Kale, Carrots, Red Miso, Extra Virgin Olive Oil, One half of a small onion, Dry-packaged or pressed tofu, and dried parsley as well as a large salad bowl and a food processor. For clarity, we separate ingredients and tools into two different sections. In a normal recipe, the shorthand for each ingredient would be assumed, but a computer program can’t handle that kind of ambiguity, so complicated ingredients are assigned to variables that represent them later on so that we don’t have to describe them over and over again. For this purpose we use the universal programming symbol =, which means “defined as”. For example, “Onion = one half of a small onion” means, “We will refer to one half of a small onion as ‘Onion’ for the rest of this recipe.”

Next is the main procedure, marked Main. We’ll skip that for now, though. First let’s look at the procedure we’ve defined beneath main. Remember last week when I explained how programs are built upon successive combinations of increasingly complex actions? This is an example. We have defined here a procedure called Make Dressing, which we will refer to in  the main procedure. We call this separate definition of an action a function.

Make Dressing:
Slice(Tofu)
Slice(Onion)
Food Processor.Add(Tofu,Onion,Parsley,Oil,Vinegar)
Food Processor.Run()
return Food Processor.Contents
end

In English, this  function tells us to slice the tofu, slice the onion, and add all the ingredients other than the kale and the carrots to the food processor. Inside the parentheses of a function are parameters that change what the function does. Slice, for example can take either Tofu or Onion as an argument. It could also take Chicken or Cake. Arguments dramatically increase the versatility of a function. The function “slice” and some others I do not define because I assume you know it or will be able to find out what it means on your own. In a programming language, these would be built-in functions for basic behavior.

IMG_0926

Then we run the food processor.
IMG_0928The last line, “return Food Processor.Contents” means that this function will output the contents of the food processor, that is, the dressing, as a result. You’ll see in the main function that the output of this function will be referred to as “dressing”. This is important because in some cases we may want to give the output a different name in the main function, particularly if we happen to make two dressings for two different salads, we could run Make Dressing twice and refer to each output with a different name.

Now for the main procedure.

Main:
Remove Ribs (Kale)
Slice (Carrots)
Large Salad Bowl.Add(Kale,Carrots)
Dressing = Make Dressing()
Large Salad Bowl.Add(Dressing)
Large Salad Bowl.Contents.Massage()
Serve(Large Salad Bowl.Contents)
end

We begin by removing the kale ribs. Next we slice the carrots and add both kale and carrots to a large salad bowl.
IMG_0931
We make the dressing, and add it to the salad bowl with the kale and carrots.
IMG_0932
Then we massage the contents of the salad bowl.
IMG_0938
Serve immediately.
IMG_0933
Enjoy! In this lesson you’ve learned how to make miso kale salad and also some of the basics of variables and functions in computer programming.

Encapsulation as Applied to Taco Salad

Not content to make just a cooking post or just a computer science post, here is my  post of computer science as applied to cooking. Hopefully this will provide an approachable introduction to the computer science concept of encapsulation while providing some modest amount of entertainment for those of you already in the know.

Ok, let’s begin. Today we make taco salad.

Image

Here are some of the basic ingredients of a taco salad: Kale, tofu, tomatoes, and an avocado. These don’t represent the proportions of each item, just the items used. You also may be thinking at this point that this isn’t much like what you think of as a taco salad. You’re welcome to debate what is and is not a taco salad in the comments. I have computer science to teach.

Image

This is the star ingredient. What looks a bit like I dipped an enormous tupperware in a rocky swamp outside my house is in fact a thickened bean soup! This bean soup I made earlier using parmesan cheese rinds, kale ribs (the part that’s left when you de-leaf the kale. They soften nicely in the soup), dried tomatoes, oil, salt, vegetable broth, and black beans stewed for five or so hours in a slow-cooker. The beautiful part is, though, all that matters is that it is a thickened bean soup. I believe that most thick bean soups will work well in this recipe, and so I don’t provide instructions to make bean soup, but encourage people to make whatever kind of thick bean soup they want and then try using it in this recipe.

The thickened bean soup (TBS for short) is encapsulated in that the recipe does not know or care about the details of how it is made. As long as it has the properties that it is bean-based and is a thickened soup, no other details matter very much. For more terminology we can say this recipe is independent of the recipe for creating the original TBS. If you’ve seen a recipe say to saute or broil something, this is similar. Even the steps involved in a saute involve abstraction of various complexities like what oil should I use, or how hot should I turn the stove? These themselves are based on prior knowledge such as how to make a stove hot or what is oil, and where do I get it? Because we humans have a shared cultural knowledge base, the entirety of our communication is based on these abstractions and assumptions.

In computer science it is much the same, except the first step of building a program is generally to manually construct these assumptions and give them to the computer. To build complex software we start by building simple programs, or functions, and combining those functions to make more complex functions, much like one combines knowledge of pans, oil, and stoves in a particular way to define saute. We can continue combining and becoming more and more abstract until the previously daunting software only takes a few lines of the functions we’ve been constructing. Obviously, it is possible to make a thick soup of beans that is absolutely revolting while still meeting the criteria set in this recipe, so encapsulation isn’t quite as clean in cooking as in programming, but the general notion is very similar. In any case, let’s continue.Image

Finely chop the onions. Cook them in oil until they are lightly browned. I like olive oil for this.

Image

While the onions cook, chop tomatoes. They do not need to be finely chopped, as they will soften as they cook and can be mashed. It may be easier to mash them if you chop them more finely ahead of time, but that is up to you.

Image

Tomatoes have a lot of liquid. The more of this you can steam away without burning anything too much, the denser and more flavorful your taco filling will be. Watery taco filling is not as bad in a taco salad as in a regular taco, but if the salad ends up unflavorful because you didn’t boil away enough water, you’ll have only yourself to blame.

Image

Add some TBS! You’ll notice I threw in some cilantro, too, for color! If your filling is still looking watery, keep boiling it!

Image

Next is the kale! I recommend washing and spinning it after removing the ribs (save them for soup!) You can do this while you’re boiling away the enormous amount of excess liquid in your taco filling from the fresh tomatoes. If you dump out the liquid, you’re dumping out the flavor as well, so it must be boiled!

Image

Finally, place a little kale in the bottom of a bowl. You may want a large bowl for this. Throw on some cubed tofu, then add your taco filling. Add some cheese if you like. I like Cabot Creamery’s “Seriously” sharp cheddar. Avocados are a must for me, but I understand there exist people who do not like them, so add them or not according to taste. A dab of salsa on top makes for a nice flourish and if sufficiently spicy start your meal off with a kick. Serve promptly.

Everybody who makes this recipe, let me know in the comments what TBS you used and how it worked for you!

Don’t Click That!

At Thanksgiving I met some friends of my grandfather’s. Over the course of conversation these friendly folks related to me their tales of woe mistakenly installing malicious software on their computers. As a computer scientist and one who has grown up with computers, I take for granted that I know how to avoid such pitfalls, but when I started to give my new friends advice I could not think off the top of my head of a clear set of rules to help anyone to avoid becoming a victim of malicious software, also known as malware for short. In this blog post I will attempt to provide the set of rules that I could not bring to mind then. There are many, many different things that one can do to protect oneself from malware, but I will focus here on how to avoid being fooled online into downloading it. A good proportion of malware is distributed through ads (short for advertisements) that appear on web-pages, so I’ll discuss how to recognize these ads and how to deal with them.

  1. If a window is telling you that its update is urgent, do not install it. Real updates are polite and calm. They will also always use proper punctuation, capitalization, and spelling. This may seem obvious, but it’s easy to get freaked out and click an ad before you have the chance to look at it closely. If it doesn’t sound like a corporate professional recommending that you install an update, that update is malware.
  2. If something offers you money or solutions to any problems that you didn’t specifically ask for solutions to, ignore it. Keep an eye out for “one weird trick,” or “a mom discovered…” or ” X hates this man” where X is any privileged group, particularly doctors or bankers. For instance, “Nutritionists hate this Raleigh mom who discovered how to convert your excess fat into clean, renewable energy using this one weird trick !” is an ad. Do not click it.
  3. If a window is blinking, ignore it. If it includes animations that repeat over and over again, ignore it. If it’s annoying, close it using the “X” in the corner. Make sure that the “X” is the outermost X, or it may be a fake X to trick you into clicking the ad.
  4. If you are offered the chance to “win,” it’s an ad. If a game appears for you to play without you asking for a game, it is an ad. If you win the game your prize is malware.
  5. If you forget every one of these other rules, this one alone should prevent nearly all of your ad-based troubles. By far the most effective step to protecting yourself from malware is to prevent the ads that try to fool you into downloading them from showing up at all. Adblock is a free service that will hide ads without disrupting your usual browsing. To download it, click the logo of the Internet browser you’re currently using here. If you don’t know which is yours, look at the icon you click to connect to the internet, and it should match one of these.

    There are a few steps to installation, but once you’ve clicked on the right browser icon, the instructions should be able to lead you the rest of the way towards installation.

I hope that this short list of rules has been helpful to all of you who struggle with misleading ads and malware. Please also remember that while these instructions are useful, they may not protect you from everything. Malware attachments in email, for example, typically will not include animations, games, or flashing lights, but they do fall under rule #1 about professionalism. Generally if you don’t recognize the person who sent you the email you shouldn’t open the attachment. Please feel free to comment on my blog if you have any additional questions or if you need any more explanation about what I have described here.

Happy browsing!

Whatever I Say

I often get mixed feedback when I attempt to discuss my work on this blog. Sometimes someone will praise my knowledge and communication skills, but other times people will say something along the lines of “this post was incomprehensible jargon, but nevertheless surprisingly pleasant to read.” Notice how nice my commenters have been thus far. That’s because they’ve pretty much all been relatives and close friends. WordPress on the other hand automatically recommends my blog to strangers based on automatic guesses of similar interests. I’ve already gotten a follower whom I’ve never met. Hi, “Opinionated Man!”

This changes the game. I figure with just one post a week I should be able to make them consistently interesting and comprehensible, at least to the people who self-select to be in my audience. As the most interesting thing I do these days is my research (It really is very interesting if I can get anyone to understand it), I may begin to discuss more technical topics. I could also discuss more food topics, since that’s another sometimes relatively interesting thing I do and could write about. While food is more inherently relatable, the communication of science to non-scientists is something I find particularly inspiring.

Not making any promises. This blog, as I like to say, is about whatever I say it’s about, so maybe next week it’ll be a description of my proliferation of ways to eat a single batch of bean soup, maybe it’ll be an approachable explanation of neural networks, or maybe I’ll just say something about my grandmother’s eightieth birthday and relate an anecdote from my Thanksgiving trip to Maine. It’ll have to be an interesting anecdote, though.

It's about whatever I say it's about