2018 Changes in Latitudes, Changes in Attitudes

Happy 2019 readers! This blog has been on something of a hiatus for the last two years and I would like to rectify that in the coming year.

2018 was a time of some rather big changes for me. At the end of 2017, I moved in with my boyfriend. We fell into a rather comfortable routine. My job allowed me enough down time to work on side projects, such as my game development blog and a new third-party framework.

As 2018 progressed, I left that job and began a consulting contract. I had a year to complete the contract and I was slightly burned out, so I worked that part time. This allowed me to continue to work on the third party framework, which I had hoped to complete the port of by the end of the year.

But, life gets in the way.

In March my loving boyfriend asked me to marry him. I joyfully accepted and we set a wedding date for September. I had already planned out what we were going to do. The wedding would be quite small. I figured that it wouldn’t disturb our routine that much and I could continue work on my side projects.

Let’s just say this did not go to plan…

Beyond the actual wedding, there were a lot of things that needed to be taken care of. There was paperwork and deadlines. I had to go through various processes to get my name changed. There were dress fittings and meetings with the minister. All of my mental energy that I had been using for my side projects went into the wedding/marriage.

The whole family at the wedding. Mazel tov!

I think I have written on here before about the depression I suffered after my first marriage officially fell apart. I thought when I got my ex-husband out of my house that all of my mental energy would be free to work on projects and do things I care about.

I didn’t realize that the huge change in going from being married to being single would be a tremendous shock to my system. I had never paid taxes before. I hadn’t paid the water bill before. I had no idea what any of my expenses were because I never saw them before. I now had to handle those things and budget for them and figure out how to feed myself. This threw me into a shock and it took a few years to shake off.

Even though the wedding was a nice disruption to my routine, it was still a disruption. I had a lot of trouble getting motivated or focused on my side projects because I kept worrying about something I needed to do for the wedding. I knew it would be over soon and when it was that we could get back to our routine and I could continue with my projects.

Again, that turned out not to be the case.

When I moved in with my husband, I wasn’t really comfortable with the house. It was his house and even though I gradually made it feel like our home, there were some issues with it. I didn’t have a room that worked well as a home office. I converted a bedroom to my office, but it was still a bedroom. It had closets and was in an upstairs corner of the house. We couldn’t open our window shades because the houses next door were within touching distance and we didn’t want people to look in. We had basically no yard, so that was hard on the dogs.

Instead of weekends spent lovingly working on game and graphics projects, we attended open houses and got our hopes up on homes that didn’t pan out. It was mentally and emotionally exhausting.

My new dedicated office space!!

We found a lovely new place that suited most of our needs perfectly. The ones it didn’t were improvements we could implement as opposed to ones that could not be changed, like the size of the lot and the nearness of the neighbors.

So instead of spending nights and weekends working on projects, we spent that time cleaning our house to put up for sale. After the sale, we spent that time cleaning and packing for our move.

For about two months it was close to impossible to work on anything I didn’t absolutely have to because of the sheer mental exhaustion of just planning out everything that needed to be done before we could move. I couldn’t even get involved in my usual cooking projects because I knew that I should be packing up the kitchen for the move and it made no sense to buy a bunch of food that would need to be moved from one place to another.

Around the time we started putting the house up for sale, my consulting gig got a bit more serious. I discovered there were a bunch of required features I had been unaware of and the client wanted the project completed by the end of the year. I started working on that full time and had literally no time for anything else I wanted to work on. The third party framework has languished for months and people are beginning to ask if it will ever be completed.

Three days after Christmas we moved out of our old house and into the new one. It was an exhausting day, but we made it work. We’re still surrounded by boxes and I still have trouble finding clean underwear in the mornings, but we’ve weathered the worst of it and we’re beginning to take stock of where to go from here.

I have a few goals I would like to accomplish in the first half of 2019:

  • Make GPUImage 3 have feature parity with GPUImage 1. I feel badly about not updating the framework for so long and I want people to feel comfortable knowing the framework isn’t abandoned before integrating it into their projects.
  • Blogging. I have let all of my blogs languish because I have been too overwhelmed to think about what to write. I would like to go back to blogging about graphics and getting more comfortable with Metal in general.

It’s not a first half of 2019 goal, but I have the same goal for 2019 that I have every year: Ship an app. I have shipped books and held interesting jobs, but I have not shipped an app of my own. Technically the consulting project I am doing is an app that will ship that I essentially wrote on my own, but it’s not mine. I learned a lot from the experience of building that app and now I want to make one of my own and be my own client. I have not decided if it will be an iOS native app or a project created in Unity.

I have a few possible projects on the horizon that have not been committed to yet, so I won’t mention them here.

I know that there is something of a backlash against New Year’s resolutions. Most revolve around losing weight and going to the gym, which is hard to sustain. I think it’s nice to have a delineating beginning to a span of time where you can take stock of things and say “I don’t like how things are right now and I want to change them.”

I love my husband and I love our new home. I would not change that for the world. But right now I need a mental change. I am tired of my side projects being packing my life to move from one place to another. I miss having a thing I am making for myself that I will feel proud of. I keep worrying I will never get back to that again. I want my own life. I want my own projects. I want to look at things I have produced and feel pride that I did something this year that I couldn’t do last year.

Professionally I feel like 2018 was a wash. I didn’t accomplish anything I wanted to. I don’t feel I progressed in a meaningful way. I guess I have mostly completed an app by myself that should ship, but that doesn’t feel like progress to me. I want to learn from these experiences so that I can use my time better this year on things I care about.

I don’t think we’re going to have a wedding or a move this time around.

The Fallacy of Logic

Over the last 24 hours I have had several upsetting exchanges with people. I was dumb and responded to a notorious Twitter troll because I had just woken up and was angry and behaved impulsively. Later that day, I had someone I didn’t know call me out on it and demand that I logically defend my behavior. They told me if I was going to state my opinion online I should expect some backlash and be prepared to defend my point of view.

I got very upset and told this person that if they thought I was an irrational bitch that was just fine with me. This person got incredibly offended and told me not to put words in his mouth. He continued to fight with me until I broke down upset. In order to preserve peace with the rest of the people in the chat room who had witnessed this exchange, I apologized to them for engaging in this argument. The person who started it misunderstood who the apology was for and thanked me for apologizing to him. This action has made me physically ill and prevented me from sleeping much last night.

I have been rolling around in my head why this exchange upset me so badly. I wonder if I am unreasonable. I wonder why the hell this person felt that verbally attacking me on a chat room was perfectly fine but me implying he thought I was a bitch was simply beyond the pale and a bridge too far.

I have had a number of these kinds of exchanges over the last year. I noticed that people became incredibly hostile during the 2016 Presidential election. I had hoped that things would die down after that, but if nothing else, they’ve gotten worse. I had to deactivate my Facebook account because I was being attacked by people for not sharing their exact specific political beliefs. I have left multiple Slack rooms this year because one person out of 50-100 will lay into me about how my observations of sexism and discrimination do not fit in with their experiences as young white men who have computer science degrees who live in San Francisco.

None of these people are evil. I know several of them are generally nice people, but the way they engage me upsets me greatly. I feel like a rattlesnake frantically rattling my tail to warn them not to step on me. I don’t like being stepped on and biting them takes a lot out of me. They’re always surprised when they get bitten and decide that I am not behaving rationally and they get quite angry. I cut a lot of these people off because I simply can’t deal with them anymore.

I have been told that some of these people I have cut off are saying I am paranoid. They are saying I am mentally ill and I am destroying relationships with all my allies and one has gone as far as to say I am a sociopath.

I don’t want toxic people in my life. Life is short. I love cooking. I love my dogs. I love to write books even though they stress the living crap out of me sometimes. I feel like the world is this vast sea of endless possibilities and things to learn and explore. Then I get dragged down by the reality of trying to interact with other people who want to fight with me about Swift equivalents of vim versus emacs. These people drain all of my optimism and turn me into an angry bitter person that I don’t like being.

I have been trying to figure out why I am not allowed to simply withdraw from interactions I find unpleasant. I am not allowed to simply retract whatever the offending statement is. It is demanded that I defend it to the death and give up my precious spoons arguing with someone who is never going to be convinced that they are wrong.

I believe it is a fallacy of logic.

My ex-husband was an atheist. He said he would not believe in anything that couldn’t be proven with science. He said if Neil Degrasse Tyson says it’s true, then it must be so. Once he verbally assaulted me in the car to the point I was planning to jump out of the moving vehicle for saying “God bless you” to a stranger in public.

I am not an atheist. I would consider myself a Christian except I do things like read Tarot cards that I am pretty sure Christians see as witchcraft. I get very strong feelings about things that I know to be true but I have no evidence for their existence. When I was an atheist for ten years I would ignore these feelings and ignoring them always got me in trouble. I had a stranger talk his way into my dorm room and even though I had a bad feeling about him, I couldn’t think of a logical response to his argument that I should let him in. He raped me so badly I now have PTSD. My life was not on a good track and my world felt quite grey and empty. I decided ten years ago to believe in God, even though I had no evidence for his existence. I decided to trust those gut feelings i had been ignoring for ten years because they weren’t rational and to have faith that they were leading me to a better place.

I read a book many years ago called “Blink!” by Malcolm Gladwell where he talks about how our unconscious mind works much faster than our conscious mind does. It’s like having a background thread and a main thread. We can instinctively know something without being able to consciously and verbally explain it. I have faith in these feelings in spite of lack of evidence and I believe in them deeply. I have discovered most people in tech are not like this.

Emotions are not rational. We have been trained as a society to scorn anything that isn’t rational and can’t be explained very simply with logic. Any time I have a discussion with someone who doesn’t agree with me, they have a long list of talking points with very simple ideas that they use to try and convince you that you’re wrong. A lot of these people are simply unwilling to believe that you can see where they are coming from and still disagree with them.

I remember in college having boys try to logically explain to me why I should have sex with them. I was dumb and at the time I thought I could reason with them, but any arguments I made with them only gave them another argument point they could use to try and reason with me about why I should have sex. I would tell them I found them unattractive. They would say “Well I don’t find you attractive either! But sex is fun!” They were so invested in getting the result they wanted that it was completely useless to argue with them and the only course of action you had was to just walk away and hope they found someone else who is less work.

That is what the tech industry feels like to me some days.

I am not allowed to have my finely honed sense of intuition about anything because everything must be an argument. I can’t say that I don’t want to interact with someone who persists in arguing with me about nothing because that makes me a bad person. It doesn’t matter that these arguments destroy my ability to function. I am expected to have them because if I simply refuse no one knows how to respond.

Everyone is invested in believing that whatever they believe is right and correct and they have constructed intricate logical facts around supporting that believe. If someone doesn’t agree with them, they feel it is a personal attack on their core sense of self. They defend it to the death and feel that they are doing nothing wrong in behaving this way.

There was an interesting study recently that showed that most men will say that rape is wrong. They will swear up and down that they would never rape anyone. But then laster in the survey they admitted to forcing a woman to have sex that they knew did not want to have sex. There is a fundamental disconnect in their brains between the word “rapist” and what it means to rape someone.

We have a lot of labels for people that are not nice. Racist. Sexist. Rapist. Nazi. No one wants to be associated with being a racist even if they have racist beliefs. Calling someone a racist is seen as being similar to calling someone a bitch. It’s lost all meaning other than as a name you can call someone to try and make them feel bad about themselves. They don’t want to be called a racist. They think that their racist beliefs are rational and can logically be explained and that someone who is a racist hates for no reason and therefore can’t be them.

I hate to break it to you, but feelings are irrational. We feel the way we do based on things we can’t really explain. We are a result of decades of experiences and neurochemical reactions. I know people who got slighted by someone when they were seven years old and that one experience still angers them to this day. My father is still angry at being slighted by someone forty years ago who died in a terrible car accident thirty years ago.

We’re all giant bundles of irrational behaviors. I just wish that we were better at accepting that sometimes there isn’t a logical explanation for why we feel the way we do. We’re all entitled to our own perspective on something without feeling like the existence of a different perspective threatens our own.

If someone is triggering my PTSD symptoms and doing something I find threatening, I am entitled to end that conversation. I should not have to suffer flashbacks because someone finds it fun and engaging to get involved in an endless argument over nothing. You don’t get to argue with me that what you’re doing wouldn’t bother 99% of the rest of the population. It bothers me. If you persist in behavior that I perceive as threatening I have the right to cut you off to protect myself mentally. If you know that what you are doing is upsetting me and you persist in doing it, you are harassing me. My right to feel safe is greater than your right to argue with me. I don’t care if you agree with me or not. I am entitled to my own perspective just as you are entitled to yours. Agree to disagree and get a beer with me later. Or call me a bitch. I would vastly prefer that to the death of a thousand cuts of being forced to explain why I feel differently than you do while looking for a way to escape.

What Will Your Verse Be?

Yesterday was the conclusion of WWDC 2017, and what a WWDC it was. It felt like everyone got what they wanted. Most developers got better stability in tooling and not too many changes to the core frameworks. We also got some breathtaking graphics and games APIs, like ARKit, along with easier integration for machine learning models, such as MLKit.

I watched the keynote in awe, my brain exploding with everything that was now possible in iOS. I had augmented reality on my wish list, so that thrilled me. But seeing how much love Apple gave Metal really touched me deeply. I have spent the last eight months working on a Metal book and I had feared that it would land with an unceremonious thump and no one would care about a three year old technology framework. The keynote gave me hope that Metal would be a continuing important part of Apple’s future for the time being and that my efforts were not wasted.

I downloaded the Xcode 9 beta with the intention of diving into ARKit. The beta still has not been extracted from its .zip file. I got home and immediately became overwhelmed by everything. There are so many new things. I tried to look at the docs but my head swam and I couldn’t deal with it.

The next day I started to see people posting their own AR efforts and a few days after that I started seeing ML efforts. I got very depressed. I left the keynote feeling like I was ahead of the curve and now I was already behind it again.

I feel we in the Apple Developer Community have been trained to jump on every new shiny thing Apple announces immediately. We all remember missing out on the Gold Rush when you could put out an app that you made over a weekend with some new piece of technology that Apple created and earn $10,000 in a week. The new Photos stuff allows us to do a vast but limited number of things and if you want your Photos app to be the top dog you have to get it out before anyone else does because you all have access to the same tools and the barrier to entry is low.

I want to be emphatic about this point: That is not the same situation with ARKit or Core ML.

My background is in the creative field. I wanted to be a film director and do sound design. My dream since I was a child was to have the Back to the Future experience of getting a box of books on my doorstep that had my name on them and to know I wrote a book. I have had that experience several times now and I feel quite blessed that I got to have that experience.

Anyone can write a book. We all have access to the same tools. There are fancy authoring tools like Ulysses and Scribner that cost $50, which is basically nothing compared to the cost of being an iOS developer. There are self publishing sites everywhere that will allow you to publish your book if no one else is interested, or if you don’t want to give up 50% of your royalties.

Just because anyone can write a book doesn’t mean everyone will write a book. Also, it doesn’t mean that someone else is going to write your book.

We still read stories that were written hundreds of years ago because they speak to something foundational about how we see ourselves as human beings. I read Tarot cards and the cards haven’t changed for a hundred years in spite of all of our changing circumstances because even though we all have iPhones and can connect at any given moment, what makes us human has not changed. We all worry about money. We all strive to advance in our careers. We all crave love. We all desire to have some kind of family, even if that family consists of friends and a grumble of pugs. Those aspects of ourselves don’t change.

A story by Jane Austin still resonates with us because we know how difficult it is to find another person you are willing to spend the rest of your life with. Romeo and Juliet still appeals to hormonal teenagers to whom every little bump in the road is the end of the world and for whom every relationship is forever. Unfortunately, the same applies to Twilight.

One reason so many people are appalled at the behavior of the Republicans right now in trying to strip tens of millions of Americans of their health insurance is because it goes against our script of what we think people should be like. Atrocities like the Holocaust speak to us on a deep level because it goes against our human nature of the way that we think people should behave. And it keeps happening. This is one reason The Lord of the Rings and Harry Potter have such staying power. They speak of ordinary people being placed in extraordinary circumstances, facing incredible odds, to attempt to defeat evil. The evil of Lord of the Rings was a different evil than we have now, but evil is never truly defeated. If you wanted The Legend of Korra, you know that light and dark are in an eternal battle where one can never truly vanquish the other.

Yin and Yang. Darkness and Light. Good and Evil.

Augmented Reality has me excited because it opens up another medium to tell stories. You could create an AR app that takes you around the Tower of London while you investigate the disappearances of the Princes in the Tower. You can stand on the site that Anne Boleyn lost her head and see the crowds of people observing the event. It makes these old sites and dusty facts come alive in a way that they can’t if you’re just reading about them in a book.

Technology in and of itself doesn’t make something compelling. Every Jurassic Park movie has dinosaurs, but only the first one truly feels special. When I think about Jurassic Park, I don’t think about the dinosaurs. I think about the characters and their story arcs. The overarching story arc is a tale of human hubris where a con man with a bunch of money is able to cobble together extinct animals by buying enough technology other people developed in order to create an amusement park to make money. He doesn’t think through the consequences of what he’s doing and is brought low by his own hubris.

The secondary arc of the film has to do with Alan Grant. The first thing you learn about him is that he hates computers and technology. Nothing in this movie is going to change that opinion. The second thing you learn about Alan Grant is that he doesn’t like children. So of course he is the one that is stuck watching the children after the park goes to hell. He goes through a fundamental change by having to interact with actual children and at the end of the film they snuggle with him as Dr. Sadler starts ovulating. It keeps Dr. Grant from just being the crabby guy who loses all of the good one-liners to Jeff Goldblum.

We’ve seen many other films in the last 25 years that have dinosaurs, including the most recent Jurassic Park last year. But none of these films have the satisfying feeling that the first one does. It has an encapsulated story and a grand theme of human scientific hubris. Everything goes to hell the way it’s foreshadowed. The park is destroyed by the unnatural force that was brought into it, and all of the people we actually care about survive. It’s a satisfying story that is enhanced by the use of special effects that are actually used quite sparingly.

One reason Pokemon GO was so successful was because it was building off of an experience that people have been emulating for 25 years, which was to pretend to live in a world where little pocket monsters live in the tall grass and can be captured and made into your friend. There is a sense of wonder about Pokemon GO in that you can take it into the normal world that you inhabit and you can lift the veil on the normal world and expose a fantastical world you never knew was there. Most people agree that Pokemon GO was rather repetitive and the game play wasn’t great, but it created an experience that was wanted by a large number of people. The same thing happens when people visit the Wizarding World of Harry Potter theme park.

One thing these have in common is that they are pre-existing properties that have large and established fan bases. Most developers aren’t going to be able to go out and create their own Doctor Who augmented reality application because of licensing issues. So that means that there really isn’t a hurry to go out and do whatever the first few AR apps are going to be. If a company like Warner Bros wants to release their own Harry Potter AR app, you can’t stop them. But you can think about what story you want to tell.

AR is a tool that is made or broken by the story that the creator wants to tell. You can create an interactive murder mystery or a tour of a museum. There are so many unexplored avenues of AR that the limit is what you can imagine and how much work you’re willing to put into creating that experience.

We have such tools to create and express ideas, yet few people seem to. I am guilty of that as well. I do hope that the barrier to entry gets low enough that I can spare some time to create some experiences for the joy of creation. But please do think about creating something for the joy of creating it and not because you assume that there are a wealth of new AR related jobs or a limited number of AR apps to be created and you must pursue the money train on this. That train goes over a cliff. We have so many media for self expression and no time to do it and no stories to tell. Life is filled with possibilities if you lift the veil on the real world and reveal the hidden one.

We don’t read and write poetry because it’s cute. We read and write poetry, because we are members of the human race. And the human race is filled with passion. And medicine, law, business, engineering — these are noble pursuits and necessary to sustain life. But poetry, beauty, romance, love — these are what we stay alive for.

To quote from Whitman: ‘O me, O life of the questions of these recurring. Of the endless trains of the faithless. Of cities filled with the foolish. What good amid these, O me, O life? Answer: That you are here. That life exists and identity. That the powerful play goes on, and you may contribute a verse. That the powerful play goes on, and you may contribute a verse.’

What will your verse be?

Legitimate Complexity and The Art of Teaching

I have been working on a book on Metal for the last several months, since October. I am entering one final push and trying to complete the rough draft of this book by the end of June. That gives me about a week to write each chapter, which is really stressing me out and upsetting me tremendously.

The thing that is stressing me out is that I feel like learning Metal is like zooming into a fractal. Every time I think that I have a good grasp on the material, I realize there is a much more complicated layer of complexity underneath what I just learned. The complexity grows exponentially.

Metal is multi-disciplinary. It’s not just the framework. It’s all the things around the framework that you need to understand in order to actually create something useful. There are a lot of math concepts and a lot of 3D graphics concepts that most books on OpenGL don’t focus on because no one wants to write a 2000 page book that contains everything you need to know that absolutely no one will read.

I am frantically trying to edit myself enough to present a coherent chunk of information in each chapter without getting overwhelmed with all the things I don’t have time to explain or learn.

I’ve been an iOS developer for the last five years. I learned a lot of programming from Ray Wenderlich tutorials. Those tutorials are fantastic, but I feel like they give a false impression that anything anyone wants to do can be broken down into a 3,000 word step-by-step tutorial.

Right now I am trying to work through their 2D Games by Tutorials book. This book is a monster. It’s nearly 700 pages long. I have only ever gotten through the first 150 before I got overwhelmed and given up. I managed to get further than I had before, but it’s still incredibly dense. If you asked me what they could have gotten rid of to make it less overwhelming, I would be hard pressed to tell you.

A lot of things we do, especially when we’re starting out, are small and easily encapsulated. This lulls us into a false sense that everything we do will be simple and easily encapsulated. We develop sound byte memories where if something can’t be spoon fed to us in ten pages or less, then we get muddled and confused. This severely limits our ability to work on anything more complicated.

I am absolutely not picking on Ray’s site. It’s an amazing resource and the reason the tutorials are set up the way they are is because of this issue of us only being able to handle a certain amount of complexity. His site is working with how we process information rather than being a source of bad habits. I have nothing but admiration and respect for the writers on that team and I do not want this to come off as me bashing them or saying people who learn from that site are not real developers. I am simply talking about how for the last few years I have lulled myself into believing that everything can be broken down into easily digestible chunks when not everything can.

At this point I am trying to figure out how to expand my brain’s bandwidth so that I can tackle more complexity than I am used to. It’s incredibly difficult to do so. Not only am I trying to figure out something incredibly complex, I am also trying to process and package it into a digestible chunk by another person.

I have been reading a lot of graphics books and gotten frustrated at how abstract they are. I get frustrated that certain things are assumed and that nothing seems to be explained. I am now beginning to understand that once you reach a certain level of complexity there is a limit to how well you can convey that information.

This is an issue we are currently dealing with in our political sphere. Take the tax system for example. The tax system is an incredibly complex system that most people don’t really understand. When we go to vote for our representatives, it sounds good to say “Reform the tax system to make sure everyone pays their fair share,” but how to actually implement that is complicated. Something that is simple and sounds fair usually winds up being worse that the current system that is too complicated to explain in a 30-second sound byte on the evening news.

In programming we talk about precision and elegance. Those are concepts that do well in incredibly controlled and contrived situations. When you have to deal with things in the real world, stuff gets messy. There are edge cases. Things don’t behave predictably.

For a “simple” example, look at dates and times. There are 365 days in a year, 24 hours in a day, sixty minutes in an hour, and sixty seconds in a minute. Except when there aren’t. Every four years our year has 366 days. Then you get into leap seconds. Then you have Einstein’s Theory of Relativity where clocks that are shot into space are slightly off from their counterparts back on Earth. Things get wibbly wobbly awful damn fast and this should be a straightforward example.

I get that the world is so hopelessly complex that if we tried to understand the full scope of just how little is standing between us and total anarchy our heads would explode. We simplify complex systems as a means of being able to just cope with every day.

Right now I am frustrated because I am just beginning to grasp something that is hopelessly complex, but I don’t know how to package it in a way that is accessible to a group of people. I want to write a Rosetta Stone where someone can read through my book and totally understand a complex system, but that really isn’t possible. It would take a hundred pages to walk a reader through creating every piece they need to get a minimum useful thing up and running.

I am doing the best I can to present the information to someone in a way that will help them figure things out. I am trying not to be hard on myself for not being able to do an impossible thing. I know with several years of practice and working with this, that I can master it. I have to accept that there is no magic book that will intuitively teach you everything you need to know in order to do something legitimately complicated. I can just try to do my best to present what information I think your brain can handle and hope that you can find the next step to figure out the rest for yourself.

Thoughts on Being Single for the Second Time

About two years ago I went through a divorce. I had known my marriage was over years before I was able to finally pull the trigger on it. I had actually tried leaving once a year earlier, but I was forced to go back to my husband because I wasn’t able to sustain myself quite yet and he promised to change. He didn’t and we followed through on the second attempt.

My ex-husband had an OKCupid account set up months before we filed for divorce the second time. He had his first date less than a week after he moved out of our house. A year after he moved out he had already replaced me with another woman with long red hair, two small dogs, and mental health issues.

During the year or two after our divorce I was a complete wreck. I was in much worse shape than I thought I would be. I had wanted the divorce. Our marriage was over. I thought I would feel free to finally do all the things I wanted to do. Instead, I felt like a death had happened. I had never been responsible for balancing my own budget and I had no idea how much money I earned or how much my bills were.

I had multiple rooms in my house that I simply never went into. My house felt incomprehensibly large even though it’s actually quite small. I used to have dreams that I was walking through my house and it was a giant labyrinth of gardens and piano rooms that I never knew were there because I only stayed in one small corner of my house.

The idea of trying to date anyone during this time seemed absolutely incomprehensible. I consistently see men who have recently gotten out of relationships try to get back on the horse and date again immediately. I don’t understand how they can do that.

I haven’t been on a date since I was 16 years old. I was diagnosed with bipolar disorder and was put on medication that made me gain sixty pounds in less than two years. My medication triggered panic attacks and caused a lot of mental health issues alongside the ones they were supposed to actually treat. I was a chubby, socially awkward woman with no social skills trying to navigate a social environment run on alcohol, which I couldn’t drink because of my medications.

I felt like having a boyfriend would give me some kind of validation that I was actually a person worthy of being liked. I used to develop crushes on other socially awkward guys who were less attractive than I was because I thought that they were low enough that I could get them. Most of them were either too socially awkward to return my advances or were appalled that a chubby socially awkward girl thought she was good enough for them while they drooled over anorexic teenagers with daddy issues.

Boys in college had been sold on the idea of the hook up. They had been told all through high school that when they got to college it would be a never ending stream of pussy. None of them wanted a relationship. They wanted to have sex with you and never speak to you again. I literally had guys come up to me and say to my face, “I hate you. I know you hate me. We should have sex. It will be fun.“

I was too priggish to give into any of these situations, but other girls I know did. They slept with guys to give themselves a sense of personal validation and were always disappointed when things never went any further.

I left college without having a boyfriend. I also left college without having any kind of stable career path. I was faced with a future alone with no meaning. Then I met my husband. We’d known one another since we were children. We were both tired of trying to find someone. I needed health insurance and to move out of my parent’s house. I thought I knew everything about him. I was terribly wrong and if you ever meet me IRL ask me about it and I’ll give more details than I am willing to give here!

After my misadventures in college, this seemed like as good as it was going to get. Sure, we weren’t really attracted to one another, but he would look me in the eye and talk to me. That was an improvement.

Things were fine for the first two years. Then he got weird. He started spending money we didn’t have on shit we didn’t need. I decided to go back to school for computer programming. I wanted an actual career and not just the menial white collar jobs I had held since we got married. I wanted a sense of self worth and to do interesting work I was proud of. I told him that if he would support me for two years that I could start bringing in four time more money than I had before. We could start a business. We could be partners. We could have our freedom and independence from The Man.

He wanted his freedom, but he didn’t want to work for it. It was the biggest disappointment in his life that he wasn’t born wealthy. This ate at his soul. He was bitter and resentful of having to go to work to earn a wage. He was always scheming about how to get rich quick without any effort. He would bully me about how I wasn’t developing the next Candy Crush. He would come to me in tears and tell me that he just needed me to earn a million dollars a year. He could find a way to be happy on just a million dollars a year.

He got incredibly paranoid. He was convinced I was cheating on him. He would follow me to networking events he previously had no interest in. He would skulk around behind me nursing a glass of scotch, watching me as I tried to network. He would go over and yell at me in front of people I was trying to connect with professionally. Once I came home from a business meeting to find him in the garage activating the GPS on my phone so he could track me down and physically bring me home. He would lay on the ground behind my car to prevent me from leaving the house.

He was jeopardizing everything I had worked so hard to accomplish and I simply could not tolerate his behavior anymore.

I feel I have been left in the lurch. I talk to other people who have built their careers on writing books and doing conference talks. I ask them for advice about how I can build this as a sustainable career while still paying my bills and I always get sheepish looks and the response, “Well, my wife has a really good job with benefits.“ I hear that and my heart sinks. I keep seeing and hearing that the career path I want to take can only be sustained by having a supportive partner who is willing to shore up the other person’s financial deficits.

I feel a great deal of anger at my ex-husband for destroying our marriage because he was unwilling to give up his $10,000 a year vacation habit. I have been borderline unemployed since September and I am just now reaching the end of my savings. We were $30,000 in debt with two incomes and bringing in over six figures while we were married because my ex couldn’t do without picking up an expensive hobby every couple of months. I had a plan that would have been mutually beneficial for both of us and now I am spinning plates frantically hoping that I can achieve what seems like the impossible all by myself.

I have no illusions about my book. I am writing about an incredibly niche topic that has almost no job prospects. I keep hoping if I develop skills around graphics programming that I can break into that area of expertise and have a long, stable career build on something most people don’t know that doesn’t fundamentally change, but I don’t know if I have enough time or runway to slog it out. I’m afraid of taking a dead end job and waking up seven years from now to find I didn’t keep up with the new changes in tech and that I am unemployable. Having the buffer of another person in case I made a terrible mistake and failed eased my mind. Having no safety net and throwing myself into a chasm right now is deeply worrying to me and I don’t have anyone I can even talk to about my anxiety because I am completely alone right now. Except for my parents. They have been fantastic, but I hate having to go to them with my hand out.

Being single at this point in my life is markedly different than it was when I was younger and I had no career. I am doing my best to not see getting remarried as an escape route for the path I have chosen to take. I would love to have a supportive partner around to help me out so I don’t have to do this alone, but having survived an unsupportive one, I know it’s better to be alone than live through that again.

I keep feeling like I am supposed to move on. Join OKCupid or Match.com. Go to speed dating. Relocate to San Francisco or Seattle to get access to a larger pool of eligible men. But I keep getting this nagging feeling that things have not fundamentally changed much since I was in college. Reading horror stories about how Tinder has basically supercharged the college hook up dynamic worries me. Seeing how many men are basically jumping into relationships to avoid being alone worries me too.

I like working. I see so many people doing frivolous crap all the time that I worry if I did move to a city and started trying to be social like everyone else that I would stop dedicating myself to my work. I would stop pushing and get left behind. It’s so hard to find another person who also likes working who is willing to just be in the same space I am while we’re both working.

I want to be with someone who wants to be with me. I would love to have someone to cook for besides just myself. I would like to have someone to build robots with me in my basement and then cuddle on the couch watching Star Trek. I don’t want that badly enough to grasp onto anything with a dick that comes along because I don’t want to be alone. I feel I have progressed from my college aged self who felt like having a boyfriend would be a validation to someone who is comfortable with themselves but would like to find another person to share things with.

I’m not willing to be with someone who did a visual assessment of me that I am just hot enough that they’re willing to have sex with me but they think I am unattractive enough to be approachable. I don’t want to be with someone who thinks that relationships are parking spaces and that you are supposed to always be parked somewhere or on the lookout for one.

As it looks increasingly like this will never happen, I am trying to accept being alone. I won’t settle for anything less than someone who likes me as a person and who I actively want to be with. There might be no one out there like that and I need to be okay with that.

Being alone sucks. But being with a destructive and unsupportive partner who doesn’t love you sucks more. It’s important to have a creative and fulfilling life rather than waiting for it to just happen to you. For better or worse, I am living a life I want to lead. I have no idea how sustainable it is in the long run, but for now I’m being true to myself. I am trying to have faith that if I do that then things will work out. Doesn’t mean I don’t indulge in feeling sorry for myself every once and a while.

Enough whinging. Back to work.

Quality over Quantity

Back in December I was approached about contributing to the Pragmatic Magazine. I was told the theme of the issue was Swift and I was asked if I had any good Swift posts that I would be willing to share.

I had a number of Swift posts that I was very proud of and I sent the links to the editor. Then I had a sinking realization that these posts were all from 2015.

Last year was a difficult year. I made a lot of mistakes and had a number of mental health issues. On paper my year seemed like it was incredibly successful, but I felt at the end of 2016 that I had not grown as I would have liked and I was not in a place I wanted to be.

One of my resolutions toward the end of last year was to have more technical content on my blog. I am in the process of writing a book. I intended to have companion blog posts where I share a number of things that I learned while I was writing the book. I have one post that has been partially written since November. It’s nowhere close to being done.

I keep wondering what’s the matter with me. I would like to produce more technical content. I keep meaning to, but things keep coming up. I know if I don’t make time to produce technical materials for blog posts or conference talks or to post on GitHub that I will be left behind. People always want examples of your work and you can’t keep pointing to work you did three years ago.

This morning I found a link to this article. The author talks about a lot of strategies about how to have a long and successful career in tech. This article helped to crystalize in my mind about why I am not producing more technical content.

Those blog posts that I submitted to the magazine were based on problems that took me months to solve. Each one of those posts and every project that I have written about that I am proud of all started the same way. I took something that was hopelessly unfamiliar and tried to force myself to learn it. These were all projects I did for Brad Larson when we were rewriting our code base in Swift.

One of these projects was wrapping libxml2 in Swift. The sample code was all written in Pascal. There was only one post written by anyone for this topic for the iPhone. That person was Jeff LaMarche. I was going to link to his blog post about it in this blog post, but it’s been taken down. So I had an incredibly undocumented technology that no one was using that it was my job to figure out.

I had about a week of complete and total panic and despair. I felt that I had been hired by mistake and that Brad would find out I was an inexperienced idiot and I would be fired in disgrace and I would never work again. I wondered about how hard it would be to find a nice easy call center job where I could cross stitch while talking on the phone all day answering the same questions over and over again. I thought this was hopeless, but it was my job to figure it out, so I had to try.

I spent a lot of time walking. I couldn’t look at my computer without getting a complete headache. I spent some time building robots. I would look at the docs periodically, but not for too long because doing so would cause a migraine.

After several weeks of doing this, suddenly things started to become clear. Instead of looking at a bunch of gibberish and having no idea about how to approach it, I finally had questions. I wondered what this one thing did. I wondered what the difference was between one object and another. I started to understand how to approach the problem.

I completed my task by learning all of this stuff over the course of about two months and I wrote my post. I was incredibly proud of the work that I did on that project and for finally figuring out how to solve it.

I never would have done that project if I wasn’t working for Brad.

First off, I never would have known what libxml2 even was. I would have just used the built in Cocoa framework and fought with it, but found plenty of sample code that I could copy and paste and go about my merry way. More importantly, if I had been doing this for myself, I would have taken one look at the lack of support, said fuck this, and done something else.

Forcing myself to confront something that seemed impossible and pushed me close to my breaking point mentally and emotionally. I have a faulty, tin-plated emotional system. If I get pushed too far I can’t function or learn. My brain shuts down. I had to confront my panic and my fear and force myself to approach this logically. At the beginning of Dune the main character has to take a Human Test. He is forced to put his hand in a box of pain and not remove it. Having mental health issues is like taking a Human Test. You have to think your way through your emotional issues and find some way of logically dealing with them so you don’t remove your hand and get scratched by the Gom Jabbar.

By being placed in a position where I could not simply give up, I was able to push through the initial phase of not knowing what the fuck I was doing to be able to see that there was an end to the Desert of Despair. I understand now that a lot of things I want to learn that seem difficult or impossible are not. I have been trying to teach myself Metal and 3D graphics math for the last two years. I know that even though the symbols seem incomprehensible and there are not a lot of approachable resources out there, I can bash my head against it enough to figure out a starting point. I can look at those symbols long enough over a long enough period of time that I can grasp some kernel of what I don’t understand that I can figure out.

I feel like our community doesn’t reward people for solving hard problems.

It pisses me off every year when Tim Cook announces some amazing new thing at WWDC and some jack ass in the audience gets some version of “Hello World!” working on it because everyone wants to be first. Everyone tries to cherry pick some easy problem that they can solve and post about so that they can show they’re keeping up with the Lattners. I have seen so much pressure in this community to pretend like you know everything. Companies place a lot of emphasis on what do you “know” not “how do you learn.” I admit that it’s a lot easier to test knowledge as opposed to problem solving and learning. I know that we’ve generally used knowledge of data structures and sorting algorithms as a proxy for how we learn. But memorizing some tips and rules doesn’t prepare you for the complete and total helplessness you feel when you confront something you must figure out that you don’t know how to do. You either rise to the occasion or you flee and become a Scrum Master.

I am realizing that most of the things I find interesting are difficult. I am in the process of learning some things that are complicated and poorly explained. I am hoping that after I push through everything I will have a wealth of material to write about on this blog. But I have to accept that what I want to do is hard. There is going to be a lot of invisible work that I do that isn’t being seen. There will be a lot of time spent thinking and processing and waiting for things to click.

Dan Barber is a prominent farm-to-table chef focused on sustainable food production. He wrote an article a while ago that really stuck with me. The gist of his article is that farmers are stripping their soil by only growing the most high profit crops. The soil gets progressively poorer and the food grown on it grows more and more tasteless because it’s nutritionally vacant. He found a farmer who grew an heirloom variety of wheat for bread flour. He thought the reason the flour was so delicious was because it was some heirloom variety, but it was because the farmer rotated his crops. He grew some less lucrative crops on his land that enriched the soil and only grew this wheat on the soil every three years.

I think one reason we have such a high burnout rate in tech is that we’re approaching development like we do farming. We will keep stripping our mental soil because it’s more lucrative to do so than it is to have furlough periods where we push ourselves to achieve truly difficult things. Start ups want to churn and burn developers because they don’t care about a person’s long term viability as an asset. It’s our responsibility as developers to take control of our careers.

Right now I am taking some time off to write a book. Even if the book is wildly successful I won’t make nearly as much money off of it as I would if I had worked somewhere during that amount of time. But taking this time to learn these things that I have wanted to learn for so long has been an extraordinary experience. The process of taking something that seems impossible and being able to make some traction with it makes me feel like I can conquer the world and anything is possible. Compared to a year ago, where I felt like I had to pretend I knew everything and I worked myself into a nervous breakdown.

Last year was a furlough year. I needed it to recover from some bad professional decisions. This year is a soil enriching year. I have so many projects I want to do and write about, but they’re going to take some time to figure out.

I would like to write more about tech on this blog, but I have to accept that I want to learn some difficult things that take a lot of time to figure out. I am not going to have a new post here every week that I am proud of. But if I can get four difficult technical posts on here this year, that’s not so bad.

Super Mario Brothers

I have written on here before that I did not get to play video games as a kid. The closest I got to a Nintendo was watching my daycare owner’s kids playing Super Mario Brothers on the NES from the couch because I never got to join them.

When I watched them play, they knew where all the hidden shortcuts were. They knew to jump in certain places to hit invisible boxes and to travel over the side of a wall to get to a pipe that allows them to skip a bunch of levels.

I wondered as a kid how they found all these short cuts. I realized at a certain point that someone else showed them. Someone created a guide that talked about where all the easter eggs were and people either found them through reading that guide or watching someone else play.

There are speed records where someone can get all the way through the game from beginning to end in just over five minutes. It became a thing to try to get through the game as fast as possible.

As a kid I didn’t really understand that. I thought the point of the game was to play the game. I was told by people rolling their eyes that the point of the game was to beat the game.

I wrote a post yesterday talking about my being upset about the algorithm questions that are asked at programming interviews.

I have gotten a lot of push back on this.

I have been accused of being incompetent and not being a real programmer. I am confronted by people who are angry with me for not just accepting that if I read an algorithms and data structures book that I will be a better programmer.

I feel I am being misunderstood.

I feel like a a lot of people telling me this are like the people who I watched playing Super Mario Brothers as a kid. I think that they have been told there is some bible of short cuts that get you through the game faster. They don’t look around on their own or explore the game. They’ve been given a set of instructions that gets them through the game faster and they can’t comprehend why someone would not take a short cut that they know is there.

The impression I am getting from people is that they are blindly accepting that these are strict rules that we are supposed to follow and if we don’t follow them then we’re ignorant and wrong.

I think about all of the levels that the game designers created that no one ever looks at because everyone is in such a hurry to get to the end and beat the game.

I don’t care about beating the game.

I care about playing the game.

I don’t want to accept that there is only one way to be a programmer. I like to find things out for myself. I want to explore more than one way to do things. I don’t want someone telling me my code is wrong because it’s not the way they would do it because they only know one “right” way. I think there are a lot of right ways.

I did not mean to imply there was no point in learning algorithms. I am sure they have their place. I’m sure the right algorithm in the right place would completely change the way I think about my code. It’s just that over the last two years I have seen so many people implement lots of terrible code that they think is “best” because they read in a book somewhere that things have to be a certain way.

I had someone try to create a protocol around a class that would never be subclassed because it’s what he thought Apple wanted him to do because he didn’t think critically about how to use polymorphism properly. I have had people suggest I simplify my code by doubling the code base and add three or four data structures to get around using an if statement.

Singletons are evil. React is evil. JavaScript is evil. Use MVVMMVVMMVMVC. Emacs over Vim!

There was a lot of push back against Swift when it first came out because it was different. People lashed out at it because it was not what they were expecting or familiar with.

I feel like sometimes we over-engineer things instead of looking for simple solutions. We think we have to place a thing in another thing and guard against the possibility that someone in the future will do. We have to force a tool to act like another tool in order to conform to some protocol rather than using it how it’s supposed to be used. We want everything to be one size fits all because it makes life easier to think that way.

Right now I am trying to see if a simple solution will work for me before I implement a more complex one. I don’t want to just blindly apply something because a stranger on the Internet tells me to.

Just reading an algorithms book doesn’t make you a good programmer. Understanding a problem and when to implement the right algorithm makes you a programmer.

I want to figure that out for myself rather than having a bunch of people talk down to me about how I can beat the game in five minutes. I am actively refactoring my code to implement better solutions, but I don’t want that to be my first step. I want to screw up and do stupid shit so I can learn from it and figure out how to do it better. Sometimes when you think you know all the answers you don’t look for new ones and if you’re not learning anything new then what’s the point?

I’m sorry for people misunderstanding my desire to figure things out for myself as being willfully ignorant or contemptuous for good software development. You learn more from your own mistakes than you do from other people’s. The last time I checked, thinking for yourself was still allowed. I don’t care if you hate me, or think I am wrong or ignorant or stupid. I am entitled to my own reality and you are too.

Chocolate Covered Cherries

The following is a really bad metaphor, for which I apologize and will try to explain in better context later in this post:

Pretend you are walking down the street and you see a candy store on the corner. You weren’t really planning to get anything, but after you see the candy store you have an overwhelming desire to eat a chocolate covered cherry.

You impulsively decide to visit the candy store hoping they have chocolate covered cherries.

The man behind the counter greets you warmly and asks you what you want. You tell him you want a chocolate covered cherry. He says sorry, but they don’t have those today.

You’re kind of disappointed, so you thank him politely and turn to leave.

“We have vanilla cremes. Those are like chocolate covered cherries.”

You don’t want a vanilla creme. You wanted a chocolate covered cherry. You say sorry, but that you don’t want a vanilla creme.

“What about raspberry creme? That’s even closer to chocolate covered cherries.”

You politely but firmly tell the guy you don’t want a raspberry creme, you just want to leave.

“What about this hard sour cherry candy? Or this soft cherry candy?”

You start to get upset because you didn’t even really want any candy an hour ago and they don’t have the thing you want and now they won’t let you leave. You start to get angry and frustrated and upset because nothing you say will get this person to leave you alone.

The guy behind the counter gets angry with you and becomes vaguely threatening. “Look, I don’t understand why you’re being so upset. I am just trying to help you here. You have a problem and I am trying to fix it, so why can’t you be grateful to me for trying to solve your problem for you.”

You wind up buying a bunch of candy you don’t want just to get this person to leave you alone. You feel sick and shaken. You throw the candy in the trash after you finally get to leave the candy store and the man behind the counter smiles because he feels he did a good deed today by helping you solve your problem.

Not Listening

I have had so many issues over the last few years of people not listening to me. I get that in programming people want to solve problems, but sometimes a problem is not solvable. No one wants to say they just don’t have the answer to something, so they try to get super helpful and solve your problem for you even if all you want them to do is say “Sorry, I don’t have an answer.”

I understand that everyone wants to feel helpful. I understand that a lot of the esoteric problems I muse about do not have easy answers. By aggressively throwing a billion suggestions at me that I have to cobble together you are not helping me. You are upsetting and frustrating me because you’re not hearing that I don’t want a cobbled together answer. I want a chocolate covered cherry, not three different candies that are almost like a chocolate covered cherry. If there are no chocolate covered cherries, then I would rather be able to hear “What you want does not exist” rather than “Take these five solutions and mash them together.”

I also want to be able to tell someone they are not answering my question without them getting in my face and telling me I am being rude to them when they are verbally assaulting me with advice I don’t want. I’m sorry that you’re being presented with a problem you can’t solve, but bullying me into telling you that you’re being helpful when you’re not isn’t fixing the issue and you shouldn’t get to feel good about yourself at my expense.

I have the right to my own thoughts and feelings. I am not obligated to fight with you to be understood when it’s exhausting to me. I have the right to walk away, especially if I get to a point where I am emotionally disturbed without being further harassed because you feel I am being an ungrateful bitch for not accepting your well meaning advice. If I get to that point, the only way you can solve my problem leave me the fuck alone.

Why I Won’t Work Weekends

I have found in my time in the programming community that people are somewhat mixed on the idea of working weekends. I have worked at jobs where it was explicitly stated that it was expected for you to work on weekends. I talk to a lot of people who won’t do any programming whatsoever on weekends.

I am working on a contract right now where I get work emails from co-workers that are sent out on Sundays. I feel guilty because I know that they’re doing a lot more work than I am. I feel like I should be working constantly or at least appear to work constantly so that no one thinks I am lazy. That’s bullshit.

Right now I am working on a dream project. I get to do something I never thought I would get to do. I am incredibly grateful to get to do the work I am doing, but I know this isn’t what I want to do with the rest of my career.

All of the skills I currently have are for things I don’t want to do anymore. I don’t know if it’s burnout or if I just get bored and want to keep chasing the new and shiny.

I have a lot of interests. I am interested in electronics. I am interested in 3D graphics programming. I am interested in cryptography. I am interested in robotics. I am interested in audio programming and engineering. I am interested in artificial intelligence and machine learning. I am interested in game mechanics.

I never have enough time to work on any of these things. I am afraid if I ever did get a job doing any of these things that I would figure out I don’t like them either. It’s not like anyone is actually going to pay me to learn any of these things. It’s difficult to find anyone hiring who isn’t just looking for someone who can pull data off of a server and cram it into a table view.

I keep hearing from everyone that there is no point in learning Sprite Kit/Metal/Anything outside of UIKit because no one is going to pay for an interesting user interface or functionality that isn’t available on Android.

A long ass time ago before the iPhone came out there were a number of companies that had stable businesses making Mac-only software. I refuse to believe that there is no future in indie development using the large number of frameworks most people never touch. There is a conventional wisdom that a stable business can’t be built even though I don’t think I know of anyone who has tried.

I know a lot of people who have tried to build RSS readers and weather apps and Twitter clients, but I don’t know a lot of people who have written comprehensive HealthKit apps. I don’t know a lot of people who have tried doing hardware/software integrated products. Everyone feels it’s too great of a risk and they don’t even try. There is “easy” money to be made doing boring stuff, so we all just accept the status quo.

I am one to talk. I have not released an app on the App Store, so it’s all well and good for me to knock people for not doing something I am not willing to do either.

That’s why I won’t work on weekends.

I want to spend my weekends working on something that makes me happy.

Right now I have this laundry list of things I find interesting but I don’t have any kind of context for even explaining what they do. If I tell someone I am interested in artificial intelligence and they try to talk to me about it I feel like this.

I don’t know if I am just not capable of being happy. I don’t know if there is some magical piece of technology out there that will make my soul sing in the way I think it will. I could just be a walking sack of discontent. I could spend my life chasing after something that doesn’t exist. I should be content with just finding something I don’t suck at. But I’m not.

I need to keep looking for that thing that captures my imagination. I don’t get to do that if I work on weekends. So I am sorry, but I need my weekends to try and find something that makes me happy. I don’t care if it’s the next disruptive technology or just some stupid home automation garbage I do to amuse myself. I want to feel alive and there are long periods of time right now where I do not.

Keeping Score

“Why did you let him treat you that way?”

I get this question a lot when people ask me about various relationships I have had. People don’t understand why I would not put up more of a fight on things like where we go on vacations or what color the wedding invitations were or whether we spent the tax return on a new couch or put it in savings.

I was thinking about that this weekend. I am in the process of painting and organizing my house. There are areas of the house, especially in the kitchen, that I have no idea about. My ex-husband organized the kitchen and basically never let me in there, so there are cupboards I have never opened full of things I have never seen.

One thing I decided to do was get rid of his plates and mugs. He had a set of plates and mugs that preceded the marriage. He left them here when he moved out. While he was packing he told me that he decided to leave those here and take a set that we bought our first year of marriage and the set that we got for the wedding.

I refused to let him take the wedding set.

The wedding set is a set of Asian-style square plates. It was one of the only things I absolutely insisted must be on the wedding registry. He told me he hated them because they were purple and he didn’t want a bunch of girly things clogging up his kitchen.

A dear friend of my family bought us the only set we got. The entire time we were married those plates were shoved onto a high shelf and were only used when we had company.

I asked him if he wanted his plates. He asked which ones, because he would take the purple ones but not the ones he made us use for nearly six years. That was when I realized why I let him treat me that way.

Until recently, I have been at a loss as to explain it. Usually those decisions were meaningless to me and I would let the person who cared more make the decision.

I also made an erroneous assumption that if I gave in on something I didn’t really care about that the other person cared very deeply about that it would go both ways. I figured that things would be equitable and that if I gave in on something that he would give in on something too.

I found out too late that it doesn’t work that way.

Every time I gave in on something, it was either immediately forgotten or it sent the wrong idea that I would give in on everything if enough pressure and bullying was applied. When I would stand up for myself, I would be viciously argued with. Either it would be too difficult for me to continue arguing and I would give in, or it would be so draining that it would take me a long to time recover in order to have another argument like that again.

This lead people to think I could be controlled. Yell at me and make my life miserable enough and I would give up and forget about whatever it was I was asking for or arguing about. These people felt they could bully me and always win because I would stop fighting.

What they didn’t know was that I was keeping score.

I was keeping track of every single time they lied to me or forced me to do something I didn’t want to do and didn’t treat me like a human being.

My ex-husband ignored my requests for a divorce for over a year. I physically moved out of the house and filed for divorce and only came back when he promised to go to therapy with me. But like so many other things in our marriage, he thought that if he ignored this it would go away.

I remembered every early thing I gave into in our marriage. I kept track of every lie he told me and every favor that he forgot the moment it was over.

I kept track of every time he blamed me for the quality of his life. Every time he purposely yelled at me to force me to cry to make himself feel better. Every time he put someone else ahead of me and assumed I wouldn’t make a fuss about it because I would just take it because that is what I do.

I will never be this person again. I am working very hard to be more assertive and to take more of a stand on things because I don’t want to train another person into thinking that I am a doormat.

If you’re involved in some kind of relationship with someone that you constantly steamroll because they always eventually give in, keep in mind that this person is also keeping score. This person remembers every single act of aggression you have placed upon them. And they are waiting.