Category: Life

Every other post.

  • Capital Pride & Prejudice

    Capital Pride & Prejudice

    Capital Pride

    I think Ottawa’s Capital Pride serves as a good case study on the mechanics of prejudice.

    Capital Pride purports to represent the interests of the queer community in Ottawa and Gatineau. In practice they only serve white, upper or middle class, able-bodied, working-age, anglophone, cisgender gay individuals. For the purposes of this article, I’ll shorten this latter group to cisgays, but know that when I use that term I mean all of these qualifiers.

    In this article I’ll focus on Capital Pride’s prejudice against trans people, people of colour, and francophones. I would assert that participation by these communities is despite of, rather than due to, the board of directors for Capital Pride. Though their exclusion is well-known to members of these communities, I will nonetheless substantiate these claims.

    The Theme

    The theme for Capital Pride this year is “Free to Love.” It is focused on sexual orientation to the exclusion of gender-related issues. It speaks to the attention by cisgay activists to issues abroad this year, in particular Uganda and Russia. It also speaks to a general lack of awareness for queers at home. There is a perception among cisgays that Ottawa-Gatineau is a done deal.

    This is substantiated by comments made by Jodie McNamara, the chair of Capital Pride:

    After last year’s record-breaking attendance of 75,000 spectators, the Parade will once again march down Bank Street through Ottawa’s LGBT Village on Sunday, August 24 under this year’s theme, ‘Free to Love’. ‘Free to Love’ is about celebrating the rights and freedoms that many of us in Ottawa enjoy, while standing with those for whom the struggle continues.

    This talk of “standing with those for whom the struggle continues” is not referring to others in the area. It’s talking about people abroad. The fight in Ottawa is thought to be over.

    This is in a city where half of the homeless youth are queer. Where in Gatineau, transgender people are forced to undergo sterilization. Where politicians equate trans people with sexual predators on television.

    Just this week both of Canada’s national newspapers published pieces portraying trans people as delusional and a threat to children. Barbara Kay of the National Post wrote the article Transgendered advocacy has gone too far, railing against acceptance. Margaret Wente of the Globe & Mail wrote an article entitled The march of transgender rights. It’s concluding paragraph sums up the sentiments within quite well:

    But today, people demand affirmation for their “personal truth,” no matter how distorted that truth might be. Transgenderism is not so much the “next civil rights frontier,” as Time magazine declared it, as a way for intimidated liberals to declare their bona fides. Enough is enough. And for God’s sake, leave the kids alone.

    Both newspapers are seen as authoritative and the pieces they published will perpetuate the misconceptions that feed the violence faced by trans people. Yet to the likes of Capital Pride’s Chair, there is no problem here.

    That ignorance extends beyond the personal beliefs of the organizers. It constricts all the rights-oriented discussions that would occur during Pride. The mandates that Capital Pride put together do not allow the space to have these local marginalized voices heard. The events are to explicitly focus abroad.

    The description for the human rights vigil:

    This year’s vigil will look at what it means to be “Free to Love” around the world, and will be hosted by special guest Stephanie Battaglino.

    The description for the awareness-raising conference:

    This is a free event that plays off the festival’s 2014 theme, “Free to Love”, and will feature Stephanie Battaglino as the keynote speaker.

    The speaker at both of these, Stephanie Battaglino, is a corporate vice president at a large American insurance company. She will have no knowledge of the context in this area.

    If the ignorance is this lack of awareness for the plight of queers in Ottawa, the prejudice is silencing these voices by assembling mandates that make them unwelcome.

    Capital Pride Marginalizes Francophones

    Capital Pride’s mission statement states that it represents the Ottawa-Gatineau region. There are approximately 314,000 individuals whose mother tongue is French across both municipalities. This does not include the higher number of whom speak French but don’t have it as their mother tongue. Many are not fluent in English.

    All 45 of the 45 events at Capital Pride will either be unilingual English, or in English with a French component. 0 of the 45 events will be unilingual French. Anything of substance will only be offered in English. The speech by Stephanie Battaglino at the human rights vigil will only be in English. Her keynote at the conference will only be delivered in English. There will be no translator. Three of the three panels at the conference will be conducted in English. Six of the six films presented are either with an English audio track, or if they’re in a foreign language, given English subtitles. There will not be French subtitles available for films whose audio is not in English. The one discussion group will only be conducted in English.

    So what’s in French? The latter half of the guide, which describes these English-only events. The French portion is a translation job, given that there was no original content in that language. The translation is sometimes done with comically poor results. For instance:

    Portez vos vêtements en cuir et votre engin de fétiche avec Fierté!

    This, along with a token few words in French at a flag raising and introducing the next musical performer at one event, constitutes what Pride organizers believe to be accessibility. This view was affirmed in an article by the Ottawa Citizen a few years ago entitled “Pride party adds francophone flair”:

    ”For a long time, a lot of francophones and people of Gatineau have not had a lot of queer-oriented events,” Capital Pride spokeswoman Lauryn Kronick said. ”It’s pretty sad that there’s a lack. We want to make it more accessible so that francophones will come out and not feel as though they’re being neglected.”

    This year’s official Pride Guide is available in English and French, there will be more francophone performers and MCs will speak in both official languages, Kronick said.

    This year, every single performer will do their act in English. But the MCs will introduce them in both official languages.

    10505327_886859384662075_8647176069541934316_n

    It is ignorance to entertain the idea that describing unilingual English events in French in the guide constitutes accessibility. Or that having stating the name of the next all-English performance in French makes it accessible in that language. It is also ignorance to think that making an event that excludes a third of the local population by virtue of an accessibility barrier is anything short of prejudicial.

    Racism, Transphobia, Fat Shaming in the Guide

    There are other cues that speak to who an event is for. Some of them are not in words, but images. I’ve compiled a list of all the faces more than a few pixels wide found in the guide Capital Pride distributed for 2014. I omitted the faces of five young children which were accompanying their (white cisgay) parents. That leaves 52 faces.

    white-pride-apparently

    The organizers of Capital Pride’s mission statement is:

    The mission of the Capital Pride Festival is to perpetuate the spirit of pride in the gay, lesbian, bisexual, trans, two-spirited and questioning (GLBTTQ) community in Canada’s National Capital Region of Ottawa–Gatineau.

    Some observations:

    • 0 of the 52 people are actually trans.
    • 2 of the 52 people are fat. It would need to be 27 people to accurately reflect Ontario.
    • 2 of the 52 people are queer youth.
    • 4 of the 52 people have grey hair.
    • 4 of the 52 people are of colour. It would need to be 12 faces to accurately reflect the diversity in Ottawa.
    • 52 of the 52 people are presented to be able-bodied.

    Also:

    • There are 7 drag queens but 0 drag kings.
    • There are more straight cisgender male actors depicting trans people (1) than actual trans people (0).

    Note: The exact figures are not known. I based the above on making assumptions about each face. Please see update #3.

    In short, the organizers have put together a guide that replicates the racism, ageism, ableism, toxic beauty standards and cis-sexism that exists in society.

    I think it bears mentioning again: in an event that purports to represent trans people as one of the six identities explicitly mentioned in its mission statement, Capital Pride’s booklet with fifty-two faces did not include a single trans person.

    The bias favours one specific group: white, thin, middle to upper class, able-bodied, working age, cisgender gays. If the guide accurately reflected the diversity in Ottawa, there would be three times as many people of colour. Instead, those faces are replaced by white people. If it accurately reflected the queer community, there would be a number of trans and genderqueer folk. Instead, it’s even more gay men and women.

    Representation is important. It’s messaging about who is actually welcomed, the results of good words put to practice. The faces in the guide are about who organizers envision as being part of Pride. Right now, that vision is one without people of colour, fat people, trans people, or people with disabilities.

    One could pass off the prejudice as mirroring the bias’ of its corporate corporate sponsors, as most faces come from their advertising. However, Capital Pride’s own record fared no better. Representation in the portions where Capital Pride had full creative control was worse than the corporate advertisements.

    Incentivized Against Accepting Marginalized Queers

    If prejudice against marginalized queers is embedded throughout Capital Pride, it does little to help that it is incentivized against their acceptance.

    This is a consequence of Capital Pride’s dependence on corporate sponsors and positioning itself as a city festival, both of which rely on public approval.

    It wasn’t always the case.

    When Capital Pride had its inaugural event in 1986, it was a celebration for this society’s most reviled. Public approval was not a requirement.

    This was at a time where gay bashings were a fact of life. Where police conducted mass arrests of gay people. Newspapers ran fearmongering pieces. It was twenty years before same-sex marriage. There was little public support and no major company wanted to be associated with that kind of movement.

    Pride was a beacon in all of this. Pushing acceptance.

    The dynamics are different now. Corporate funds do not come without strings. It means Capital Pride does not want to risk pitting corporate brands against public opinion by proxy through their association with people that society does not like. It means less leverage to oppose prejudiced representation in advertising. It should be noted that corporations never lead public opinion on matters of acceptance. This is as a principle of financial self-interest. Capital Pride’s dependence on them thus curtails the organization’s capacity to lead the way on matters of acceptance. That also ties in with Capital Pride’s relationship with City Hall, which again is sensitive to public opinion as a matter of political survival. There is a reason why Capital Pride would never allow the voices of the marginalized, like sex workers, to front public facing events like flag raisings.

    Given it’s history, it’s a most unfortunate evolution.

    Nothing About Us Without Us

    Capital Pride only organizes to serve cisgays. They speak of inclusion, but their actions demonstrate otherwise. Talia Johnson has a quote I very much find relevant:

    Many people in these communities see themselves as being accepting and inclusive, but when one looks at the situation in more detail how they see themselves isn’t necessarily the reality experienced by the people who are supposedly accepted and included. When this disparity of thought and experience is pointed out the first response on the part of the community is often defensive, “of course we’re inclusive and accepting, see, we say so in our welcoming statement!”

    Marginalized queers have been speaking out against Capital Pride’s exclusion for years and offering paths to move forward. Take for instance the article Ottawa Pride Invisibilizes Trans People, published in 2008. The board of directors have ignored these voices while maintaining they’re inclusive.

    This brings me to the last thing I’ll examine for this article. This is the board of directors for Capital Pride:

    aboutusbanner

    Six out of seven board of directors are white. Seven out of seven board of directors are middle class. Seven out of seven are able-bodied. Six out of seven are cisgender.

    They are not recipient to the kind of prejudice they facilitate. None of them stand to benefit from making their event more accepting. It is more likely that they would see it as a net loss. There are no voices of marginalized people on the board to raise those interests. The representation problem then is not limited to faces in the guide, but extends to the make-up of the organization itself. It becomes easier to understand why Capital Pride is prejudiced and only serves cisgays. It is a sad reality that this same prejudice places obstacles for marginalized queers to take on leadership roles, further inhibiting the removal of those barriers.

    Conclusion

    This is not an article on how Capital Pride can move forward to be more accepting.

    It will come to be more inclusive in time, but not be because it led people there. Rather, it’s tied its own hands so that it can only trail the march of progress.

    It’s unfortunate that there is such a fantastic opportunity for awareness raising that is being squandered away.

    Pride is dead but it’s reputation lives on. I see it every time a baby queer wants to go to their first parade. It’s still important.

    Will I participate in the festivities?

    Probably.

    There’s not a lot of alternatives out there.

    Update #1: This article has generated a bit of activity in other places. In particular, it’s being misconstrued by some cis gays as an attack on their identities. This is a discussion on the desire to see inclusion at Capital Pride match its own mission statement. Identifying the ways in which it fails to do so is not an attack, nor is having a more diverse Capital Pride that treats others as well as it does them.

    Update #2: I said that seven out of seven board of directors are white. The correct figure is six out of seven.

    Update #3: A criticism has been brought forth that I passed off the figures on the identities represented in the guide as fact, when instead it was based off of assumptions I was making on each face. I find that criticism entirely valid. There is a representation problem that is immediately visible in the guide and I was trying to put numbers to it. The approach I took relied on assumptions that were rooted in my own bias. I could have erased someone’s identity. I apologize if I did so. Were I to re-write this article I would handle that section differently.

  • How To Tell When Someone Came Out When All You Know Is Their Name

    How To Tell When Someone Came Out When All You Know Is Their Name

    An interesting article came out on FiveThirtyEight called How to Tell Someone’s Age When All You Know Is Her Name. Based off of only a name, you could make a pretty good guess as to when they were born. It was particularly cool read given that I had actually been going through the same dataset myself.

    silver-feature-most-common-men-names5

    My research had to do with the name of transgender men. I kept seeing the same names popping up, and I wanted to know whether:

    • The names reflected their popularity at their time of birth.
    • The names reflected their popularity at the time of their selection.
    • The names reflected their popularity among their peers.

    This wasn’t for academia or anything; I just wanted to know for myself. I decided that I would answer this by seeing what the most popular names were for trans men, and compare that with the popularity of those names with the general population over time.

    The first step was to figure out what the most popular names were. There’s a blog with posts from the trans male diaspora where first names are often mentioned. So I wrote some software to take a peek at the names being used. I utilized a database of names from the Social Security Administration to pick out first names from the noise. The results were interesting.

    The software was written in two parts using Python 3.4.

    Part One: Blog Scraper

    import http.client
    import html.parser
    import pickle
    
    class TumblrPageParser(html.parser.HTMLParser):
    
        def __init__(self):
            super().__init__(convert_charrefs=True)
            self.is_caption = False
            self.results = []
            self.entry = ""
    
        def parse(self, page_contents):
            self.is_caption = False
            self.results.clear()
            self.feed(page_contents.decode("utf-8"))
            return list(filter(len, self.results))
    
        def handle_starttag(self, tag, attributes):
            if tag == "div":
                if "caption" in [content for attribute, content in attributes]:
                    self.is_caption = True
                    self.entry = ""
    
        def handle_data(self, data):
            if self.is_caption:
                self.entry += data
    
        def handle_endtag(self, tag):
            if tag == "div" and self.is_caption:
                self.results += [self.entry]
                self.is_caption = False
    
    def parse_blog(blog_url):
    
        conn = http.client.HTTPConnection(blog_url)
        conn.request("GET", "/")
        response = conn.getresponse()
        page = 1
    
        while response.status is 200 and page < 2000:
            captions = TumblrPageParser().parse(response.read())
            yield page, captions
            page += 1
            conn.request("GET", "/page/" + str(page))
            response = conn.getresponse()
    
    def download_blog(blog_url, filename):
    
        with open(filename, "ab") as output:
            for page, captions in parse_blog(blog_url):
                print("Processing page " + str(page))
                output.write(pickle.dumps(captions))
    
    download_blog("a-blog-name.tumblr.com", "scraped_posts.pickle")

    Part Two: Name Analysis

    import pickle
    
    def load_names(year):
        with open("names/yob" + str(year) + ".txt", "r") as name_file:
            for line in name_file:
                first_name = line.split(",")[0]
                yield first_name
    
    def load_scraped_data(filename):
    
        with open(filename, "rb") as input_file:
            while 1:
                try:
                    for tumblr_post in pickle.load(input_file):
                        yield tumblr_post
                except (EOFError, pickle.UnpicklingError):
                    break
    
    def extract_words(line):
        return line.replace(",", " ").replace(".", " ").replace("(", " ").replace(")", " ").split(" ")
    
    def extract_names(scraped_data_file, name_year):
    
        first_names = list(load_names(name_year))
        tumblr_posts = list(load_scraped_data(scraped_data_file))
        names = dict()
    
        for counter, post in enumerate(tumblr_posts):
            print("Processing Post " + str(counter) + "/" + str(len(tumblr_posts)))
            for word in extract_words(post):
                potential_name = word.capitalize()
                if potential_name in first_names:
                    names[potential_name] = names.get(potential_name, 0) + 1
    
        return names
    
    def trans_name_popularity():
        trans_names = extract_names("scraped_posts.pickle", 2013)
        names_sorted_by_popularity = sorted(trans_names, key=lambda name: trans_names[name], reverse=True)
    
        for name in names_sorted_by_popularity:
            print(name + " (" + str(trans_names[name]) + " hits)")
    
    trans_name_popularity()

    The Results: Most Popular Names for Trans Men

    1. Alex
    2. James
    3. Oliver
    4. Ryan
    5. Jake
    6. Cameron
    7. Dylan
    8. Aiden
    9. Tyler
    10. Andrew
    11. Lucas
    12. Max
    13. Andy
    14. Adam
    15. Daniel
    16. Noah
    17. Eli
    18. Liam
    19. Sam
    20. Charlie

    Take the results with a healthy dose of skepticism; there’s loads flawed about this approach.

    The most popular baby names for 2014 were well represented in the top names for trans men. Names like Eli, Liam, Noah, Jayden, Aiden, etc. Presumably when many of them had come out. Thus you could actually make a guess as to when someone came out based off of their names.

    silver-feature-youngest-men-names3

    The other top names would have been the most popular around the time of birth of the individuals. So it seems to be a little bit of column A, a little bit of column B. I didn’t answer whether social networks had an influence on it. Would be an interesting question but not one I’ll explore.

    It was a cool little experiment.  I answered my question and deleted any data that was on my computer pertaining to this. I became uncomfortable with the idea of a blog scraper and I don’t think I’ll ever design one again.

  • Casual Violence

    Casual Violence

    An acquaintance wrote a good piece the other day that discussed how violence was just another part of her everyday like brushing her teeth. She begins:

    So I’m playing a nice relaxing puzzle game online, trying to be a little less depressed so I can study for finals, and I happened to glance over at the chat board attached to the side of the game, and people are making jokes about “mutilating trannies.”

    “That’s me,” I think. “They’re talking about torturing and killing me.” Then, I keep playing my game.

    This is a normal thing to happen to me. Being confronted sporadically with the idea of my death and dismemberment as a joke is my status quo. I’ve internalized it as part of my routine. If I made an (honest) list of my daily activities, alongside brushing my teeth and feeding my cat would be worrying about being killed, and then worrying that were I to be killed, whether the newspapers would call me a man. When I get out of bed and groggily pull on a cami, I’m equally likely to think about getting a breakfast sandwich with extra bacon, and whether or not today is the day someone pulls a knife. I love pockets in dresses because they keep my hands warm and I can put pepper spray in them. I like bars, but I barely drink in public anymore because getting carded might mean getting raped. I budget for these things.

    I wanted to talk about that fear. I’m so habituated as to barely mention it or have to think about it too hard.

    It’s there though. I base hundreds of calculations around it each day. What I wear. How much I cover up. What section of the store I’ll visit. How I’ll peruse those areas. How I talk. How I walk. Which coffee shops I go to because of their bathroom arrangement. How I package explanations.

    There’s this perception that what I fear are isolated acts of aggression. The strangers who shout slurs at me from the streets for wearing a pretty dress. My acquaintances who were refused service. The people who beat up my friend.

    Such acts bear their mark. Were it a freak occurrence, it could be healed and relegated to time. But for every one of these gestures there’s ten weekly acts of micro-aggression to sustain it. Reminders of how I shouldn’t exist. They never cease.

    Those greater acts of aggression are not then the isolated misdeeds of a lone perpetrator. They are instead a minor and entirely predictable leap from a society deeply hostile to trans women. A hostility so normalized that it goes unnoticed. It is this invisibility that grants people the latitude to believe that the perpetrators act without support.

    In the end it’s not that single, small, leap to violence that causes me to live in fear.

    It’s the entire package.

    And it’s why I have a separate “for work” and “for living” clothes. Why I avoid medical care. Why I dread shopping in stores come summer when I won’t have my coat to protect me. Why I don’t go into some stores at all. Why I don’t ask for help when I do. Or try clothes on in change rooms. Why I selectively correct family and friends on pronoun usage. Why I avoid family events. Why I’m afraid to say anything back when someone shouts “fag” or “freak.” Why I don’t go out to the Byward market late when the drunks are out. Why I hold my pee in. Why I keep my hands as fists in my pockets. Why I avoid sitting at benches if there’s a playground nearby. It’s even why I chose this name as it lacked the gendered association that could out me.

    Success in Perspective

    We are in a period of success stories.

    There’s a handful of trans people in pop culture now. They’re known for things other than being trans. Actress Laverne Cox plays a prominent character in television’s Orange is the New Black. Lana Wachowski most famously directed the The Matrix. Laura Jane Grace is singer guitarist for punk band Against Me! The teen television drama Degrassi had a central character who was trans. The weekly Canadian news magazine Maclean’s had a sympathetic front page piece about trans and gender variant children.

    Meanwhile there’s legislation passing in provincial and federal jurisdictions. It was only fifteen years ago that major gay rights organizations like the Human Rights Campaign refused to advocate for trans people citing political viability.

    We are in a defining decade and it’s the best it’s ever been. But best as compared to what. In some sense these are very pitiful things to call victories. A handful of people in the media. An interview where the subject isn’t dehumanized.

    Even then, these moments remain underwhelming exceptions in a deeply hostile environment. It does little to change why I live in fear.

    The Whole Package

    So let’s go back to this idea of the whole package. I’m seen as unfit for this world.

    I know the province I live in thinks of me as unfit. They require trans people to undergo sterilization in order to change their gender marker on their identification; to the detriment of those who will have to use them.

    I know the medical establishment thinks of me as unfit. I’m infantilized. I need medication. I spent four months with someone deconstructing my motives just to get a referral to a doctor that might help me. The doctor then set out to do the same. It’s been over a year and I still lack a prescription. For surgical care, you have to wait two years, write out an essay for your motives, and go before a panel of doctors to defend yourself.

    I know my religion of birth thinks of me as unfit. The Catholic church has been a vocal opponent of every non-discrimination and anti-bullying legislation inclusive of trans people. They forbid discussions of gender identity in their official support groups in schools. Teachers have reported experiencing fear in supporting their students. The church has been at the forefront of efforts to oppose adoption and same-sex marriage rights abroad and still speaking against it at home. It has ramifications for trans people.

    I know my political representatives think of me as unfit. They say that I shouldn’t be allowed to use the washroom to pee. They say that I’m just a sexual predator that will go after little girls if I do. They nickname legislation “the bathroom bill.”

    I know my newspapers thinks of me as unfit. The National Post and Ottawa Sun run stories that dehumanize me. They too think I shouldn’t be accepted. They too echo these thoughts that I’m a sexual predator. This is why I’m afraid to go pee.

    I know film and television thinks of me as unfit. Those positive interviews I mentioned always elicit a flurry of excitement because they’re still so rare as to be cause for celebration. Rather, in most sitcoms and interviews, I’m told I’m not legitimate dating material. That anyone going out with me should be ridiculed. I’m just a he-she. A tranny. An Adam’s apple. Interviews rarely fare better, with hosts reducing guests to their genitals.

    I know pedestrians think of me as unfit. They shout things to let me know. Comments they would never say to anyone else.

    I know my work thinks of me as unfit. A coworker came up to me to talk about how their ex-boyfriend came out as trans. It wasn’t done in a context of support but rather how it was a freak thing. My words to help him be there for him were brushed off.

    I know that the people on the dating site think of me as unfit. One told me I should just go sleep on the train tracks. The moderators make dehumanizing remarks about trans members in private. Mostly I’m just ignored.

    I know my family thinks of me as unfit. I’m delusional. I know that I’ll be tolerated and loved but never accepted.

    So I enter any public space knowing that the people I will deal with will be shaped by this toxic environment. They’re told I’m a sexual predator. That I should never be considered date material, only something to fuck or jack off to on porn sites. That I’m an aberration not to be accepted as I am. This is why I’m afraid.

    Casual Violence

    The perception is that assaults and murders alone define the violence we face. That the tacit support these aggressors receive up until their final act is simply valid expression. Passed off as fair debate. Religious freedom. Or comedy. That this support is normal and that challenging it is what would be intolerable.

    The violence of this support system is not a hypothetical. It bleeds through every interaction and people die from it. Forty percent of trans people attempt suicide. We have the studies. We know that the reason so many die is because of the hostile environment.

    When it’s one hand that kills us, they call it murder. When it’s a dozen, they call it suicide.

    This is the violence.

    To make people live in fear is a form of violence.

    To make them die is a form of violence.

    To inhibit them from challenging it is a form of violence.

    Yet this violence is so well accepted that it’s just part of my everyday routine.

    Casual violence.

  • Vegan Soft Vanilla Butter Cookies

    Vegan Soft Vanilla Butter Cookies

    Vegan Soft Vanilla Butter Cookies (Original)

    • 1/2 Cup Vegan Butter (eg. Earth Balance)
    • 1/3 Cup Icing Sugar
    • 1 Tsp Vanilla
    • 1 1/3 Cup Flour
    • 1 Tsp Baking Powder
    • 2 Tbsp Almond/Soy/Rice Milk
    1. Preheat the oven to 325F.
    2. Beat butter and sugar until fluffy. Mix in vanilla.
    3. Add the rest of the ingredients and combine. Add milk if too dry.
    4. Make small balls of dough and gently pressing them down on the cookie sheet.
    5. Bake 18-20 minutes.

    Vegan Cream Cheese Frosting

    • 4 Tbsp Vegan Cream Cheese (eg. Tofutti)
    • 3 Tbsp Vegan Butter (eg. Earth Balance)
    • 2 Tsp Vanilla
    • 1/2 Cup Icing Sugar
    1. Mix the ingredients. If it’s too runny, add icing sugar. If it’s too rigid, add cream cheese/butter. I always play this one out by eye.
    2. I dipped the cookie into the mixture then topped off with sprinkles.

    vanilla cookies

    Thoughts

    I sought to replicate these incredibly soft cookies a coworker obtained. This ended up being quite close to the mark.

    I screwed it up and mixed all of the ingredients in one go. Working with it was like working with pastry dough and I added milk to help me through. Still, the end product was very soft and delicious. I wonder if not beating the sugar and butters first was actually a boon. The cookies themselves are without flavour – it’s the frosting that makes them what they are. As an aside – I made sure that the frosting wouldn’t harden by making sure there wasn’t too much icing sugar.

    This accidental find is now one of my favourite cookie recipes.

  • Programming Philosophy

    Programming Philosophy

    I’ve been programming professionally for five years now. Since I’m likely to be in the field for many years to come, what I intend on writing here is a reference to see where I was at in terms of my approach.

    Reduce Opportunities For Errors

    Everything I do is focused around reducing the opportunity for error.

    The first step is I pick a programming language that will require the least amount of code to achieve the task while satisfying other requirements around performance, longevity, and deployment. Sometimes that’s Python. Sometimes that’s C. The less code there is, the less opportunity there is the opportunity to introduce error.

    I remove any repetition as to make the contents of my functions only be what makes them unique. Every repeating instance is an opportunity to forget applying a change I did to some other part. I also code in such a way to make some bugs appear at compile time rather than run-time. For instance, I’ll store strings as defines in C/C++ as to remove one type of repetition and make typos pop up as compile errors.

    Employing practices like unit testing is another big way to reduce errors. It’ll catch some bugs that might otherwise fail to show up until a specific set of conditions occur in a running program, which can make it a pain to locate.

    Write The Idealized Code

    I structure code from the most abstract down. I specify what would be the function/method calls to make with the perfect library, one after the other, to solve a given problem. I then populate those functions after the fact, applying the same approach. Each invoked function/method is just a single-line return statement until properly populated. I refactor continuously.

    I find that the top-down versus bottom-up approach leads to code that’s better structured and more legible.

    Keep Code Legible

    If there’s a Venn Diagram for ideas, this is one that is impacted by a slew of other practices.

    I follow the conventions of the language. For C++, my functions follow the lowerCamelCase pattern. In Python and C it’s the underscore_name_pattern. If common practice dictates to use four space indentation, then that’s what I do. That consistency improves legibility for developers which reduces opportunity for error.

    Likewise I always avoid those clever one liners. If it’s meaning is not immediately clear, I get rid of it. I want to remove as many barriers to understanding my code as possible. Leave cycle-level optimizations to the compiler. The losses that matter are usually several levels of abstraction up.

    My lines of code never exceeds 80-120 characters, my functions rarely are more than a handful of lines, my files rarely exceed 200 lines. The more you have the more someone reading the code will have to track in their head, which makes the code less approachable. You want approachable. It also forces some level of modularization. The easier it is for someone else to pick up the code, the less likely they are to miss out the ways their changes could have unintended consequences.

    I never comment out parts of code permanently as a way to disable it for potential future use. That’s what code revision is for. It just clutters up the code.

    Only Code What’s Unique

    It’s really fun and cool to solve problems on my own. Figuring out how to write an email client from the TCP level. Learning how encryption works. I’m all for that.

    However, I avoid the Not Invented Here syndrome for production code. If there’s a library to do a given task, it’s probably better than what I could have put together on my own. I focus instead on writing the glue to interface with that library. I focus on the parts that make my software unique.

    Sometimes it’s necessary to re-invent the wheel, but I only do so when there’s a demonstrable need.

    Document The Code

    I also document the code following whatever standard is set by the automatic document generator for that language. For Python that’s docstrings. For C/C++ I use JavaDoc for compatibility with Doxygen.

    Comments are invaluable for maintainability. I hold the view that leaving it to the code is insufficient. Comments bridge the gap between how a computer thinks and how people think. The code explains how, the comments explain what.

    I also automate as much of the documentation process as possible. I consider commit messages a type of documentation and use generators like Doxygen. For outward-facing code, if it’s not documented – it doesn’t exist.

    Learn To Get Uncomfortable

    Software development is unlike many fields in that there isn’t a relatively stable body of knowledge to work towards. Rather, that body of knowledge changes drastically every few years less you work as a programmer for NASA.

    General skills around the process of software development are more static, but only just. Core knowledge around data structures has looked the same over the last thirty or forty years, but processes such as Agile and test-driven development are quite new.

    So it becomes necessary to keep learning new things and to avoid staying comfortable with a body of knowledge.

    I do this for two reasons. The first is that it really improves my workflow. All of these are born out of the lessons learned by other developers. Integrating those lessons saves me much time and effort, whether it be debuggers, revision control, unit testing, agile, etc. They were always prefaced with a learning curve that made me question their worth but it always proved invaluable.

    The second reason has to do with my reality in which I’m seen as disposable. Every one of my friends in the private sector, with few exceptions, have recently been laid off. Some multiple times. My own company has reinforced the notion that I’ll be dropped the second it’s convenient to do so. In this environment then I have to be my own agent so that if I’m laid off tomorrow, I’ll be employable. I seek to hold myself up to the standards of the top developers I know.

    Take Care Of Yourself First

    The most important lesson of all though has less to do with code.

    There’s only one person out there that can put your well-being first: you.

    Don’t miss out on spending time with those that matter in your life (including yourself) because you were working nights and weekends. Take those impromptu days off for self-care. Spend time with your chosen family. Don’t look at your work emails after 5pm.

    There are many companies and people within them that would rather you didn’t do this. Those people have different priorities. That’s okay. This is why you’re there.

    There’ll always be people who make more than you. Maybe most people. But if you make a livable wage, have full-time work on regular hours, have your health, and a network of people that love you – then you’re pretty much golden. Those other people will have nicer things. Let it go.

    At the end of the day, it’s the people that matter most.

    And your time with them is the one thing you can’t get back from working evenings and weekends with a company.