Monthly Archives: May 2015

We Didn’t Start the Fire(Wire)

I have written about this before, but at my current job my boss and I are rewriting our robotics control software in Swift. This is an excellent blog post here that explains why we are doing this.

This is the camera setup we have on our robotics systems. Cameras help with dispenser positioning and we support both video and image capture for our users.

This is the camera setup we have on our robotics systems. Cameras help with dispenser positioning and we support both video and image capture for our users.

There have been a few projects we have open sourced after implementing them in this project. This blog post details the most recent project we have completed and open sourced, which was to write a wrapper class allowing us to connect to an external camera that conforms to the IIDC standard. This project can be found here.

Cameras are an important feature in our robotics systems. Users use the camera to help position their dispensers and to capture media. Videos and images of the dispensing process have been used in papers and documentation of scientific research, so continuing to support this functionality is vitally important.

What is the Goal?

Back when the code was initially written in 2007, AV Foundation and GPUImage did not exist. There was not really an easy way to hook up an external camera to an application. Additionally, the standard for rapid data transfer at the time was Firewire.

The fact that there were no easy solutions meant that our code was overly complex. There were much easier ways to connect to a camera and run the video through a filter that we simply couldn’t implement because our code touched too many other things. We set out to simply the code in our rewrite.

One major goal of this project was to make it easier to add additional cameras while still supporting the legacy cameras out in the field.

Since this company has been around for over a decade, we do have legacy hardware out in the field that we still need to support. Currently we have three different kinds of cameras out in the field associated with our robotics systems: Unibrain, Point Grey Flea2, and Point Grey BlackFly. At some point in the next year or so we will need to support a fourth camera because our current camera, the BlackyFly, has been discontinued.

What is IIDC 1394?

IEEE 1394 is a serial bus standard for high speed, real time data transfer. USB is another serial bus standard that is more widely adopted because IEEE 1394, aka FireWire, was proprietary to Apple.

Our first camera type, the Unibrain camera

Our first camera type, the Unibrain camera

Even though FireWire ports are no longer available on Macs being sold today, there are still many cameras that conform to the IEEE 1394 standard. Our current Point Grey BlackFly cameras have a USB 3 plug but they conform to the IEEE 1394 standard.

IIDC is the FireWire data format for live video. In order to be able to interface with an IIDC compliant camera, we have to conform to their standard.

There is a library to interface with IEEE cameras, libdc 1394. We have integrated that library into our project and adapted it in order to be able to communicate with our cameras. This library’s functionality is what we are wrapping in our GPUImageIIDCCamera class.

We did not integrate the GPUImageIIDCCamera class into the primary GPUImage framework. The libdc 1394 library has less permissive public licensing than GPUImage has, so for legal reasons, the class could not be merged into GPUImage proper and must remain a separate entity.

Objective-C? Why Not Swift

Taking a legacy piece of software that integrates with hardware is something of a challenge. Since Objective-C is a superset of C, there was a lot of low level C programming that could easily be integrated into the previous iteration of the control software that now presents some challenges when we attempt to implement them in Swift.

One such challenge was figuring out how to interact with our hardware. Prior to attempting to connect and control our camera, we had to determine how to talk to our micro controller. We were able to do this within the current constraints of Swift, but there is one feature of the C language that Swift does not yet support, which is mutable function pointers.

Since this was an integral part of our process, it was necessary to write this class in Objective-C. This, for the record, is the first time in our six-month process where we encountered a problem that we could not code in Swift. This didn’t prevent us from being able to implement this feature, it simply meant that we had to finagle a few things to fully integrate the Objective-C class into our control software code.

What do we Need the Code to do?

These are several things we needed this class to accomplish:

  • Connect to the camera
  • Capture frames
  • Set up the proper video format for the camera type
  • Remap the YUV colorspace to RGB colorspace
  • Get and set camera settings for things like brightness and saturation
  • Handle camera disconnection

Challenges

One of my personal challenges was simply understanding the code. Since much of our functionality would be done differently in the new code, I couldn’t just port it over from the old version of the software. It was important to get a sense of how to wrap the IIDC functionality in such a way that it would be easy to implement new cameras into our process. It was also important to figure out what lifting would be done by GPUImage and what would be done by the IIDC camera class.

Our current camera, the Point Grey BlackFly

Our current camera, the Point Grey BlackFly

Additionally, Brad did some extra work on our version of libdc1394 and his changes had not been documented. I couldn’t use the general documentation, what little of it there was, for the code.

Initially we thought that we would not need to use any OpenGL to process the video frames. It was later determined that a shader would be necessary for finding the frame size. This was beyond my present OpenGL experience, so Brad needed to write the necessary shader to accomplish this.

We also had to deal with different video modes. There are about thirty types of video modes we have access to, but all of these boil down to one of two types: Format 7 or anything else.

Format 7 allows you to set the frame size and the colorspace. All of the other video modes specify those things in their mode name.

Point Grey Flea2 camera mounted on our Desktop system

Point Grey Flea2 camera mounted on our Desktop system

Not all cameras support Format 7. Our first camera, the Unibrain, does not support Format 7. So we needed to make sure we were able to connect and use both Format 7 and non-Format 7 cameras.

We also had to deal with the fact that we were talking to a piece of hardware. Those settings, along with brightness, saturation, and others are all set on the physical piece of hardware. We can communicate with the hardware using C functions, but the point of wrapping this class is to avoid having to touch the messy underlying C library.

Each property associated with the camera that we can set has overridden getters and setters. We override them in order to make sure the camera and the application are on the same page about what each expects the settings to be. When you drop this class into another application, it appears to work the same way for the programmer with all the nasty bits tucked away in accessor methods.

Final Thoughts

When I worked on figuring out libxml2 at the beginning of the year I thought that was the hardest thing I would work on. That was just a warm-up for this project.

This was a huge challenge for me personally. I think trying to figure this out has been the hardest thing I have done in my career so far. In addition to how difficult this has been, not working with Cocoa since 2014 has made trying to get back in the swing of Cocoa development has been a bit of a challenge.

I hope that as I progress in my career it gets easier for me to pivot from low to high level development more easily. I wish I could have done this entire thing by myself, but I understand that we have deadlines that need to be met. I am proud of the amount I was able to do here and the growth I have experienced as a programmer by pushing myself to work on something this difficult.

Why I Hate “Up”

Look! If you look quick you'll see my life fly by!

Look! If you look quick you’ll see my life fly by!

This morning I was reading this piece by John Scalzi. There are a lot of people angry about the last episode of Game of Thrones that seems to have a rape scene in it that serves no narrative purpose. As opposed to all the other rape scenes that somehow serve narrative purpose. Bygones…

For years I have been telling people, mostly men, that I hate “Up”. I am angry that the only female character in the whole movie dies within the first ten minutes. I am met with looks of disgust from these guys who all tell me that I obviously missed the point of the movie.

My annoyance has been rattling around my head for many years, but I was never really able to articulate the exact words as to why it pissed me off so badly. This quote from Scalzi’s piece really helped to crystalize in my brain why I hate Up:

I can’t specifically remember what the story idea was, but I vaguely recall it being some sort Silence of the Lambs-esque thriller, in which an investigator and a serial killer matched wits, you know, as they do. And at some point, I dragged the investigator’s wife into the story, because, as I was, like, 24 years old and didn’t know a whole hell of a lot, I thought it would be an interesting character note for the investigator, and a good plot development for the book, for the serial killer to basically rape and torture the wife.

I thought it would be an interesting character note for the investigator.

Women in Refrigerators

The idea of the wife/girlfriend/mother being attacked by the villain is not a new observation. There is an entire trope around it.

When you have something as blatant as Gwyneth Paltrow’s character being beheaded in “Seven”, it’s obvious that the character serves absolutely no purpose other than to be red shirted. No one makes the argument that her character was somehow a vital and important catalytic character in the movie when I am pretty sure she gets more screen time than Ellie does in “Up”.

I would like to argue that Ellie is not simply a woman in a refrigerator. She is part of a more pervasive trend that I have noticed in story telling where you still have flat female characters, but that somehow they have some holy purpose in that their existence saves the hero in some form or fashion, even if they can’t save themselves.

Coughing, Radiant, and Disposable

The next iteration of the Manic Pixie Dream Girl is the idea of the consumptive heroine. You have literal consumptive heroines like Nicole Kidman’s character in “Moulin Rouge” and Jessica Brown Findlay’s character in “Winter’s Tale”. This trope also bleeds over into any other instance where you have a female character dying of some kind of incurable disease whose death is used to enlighten the main character.

EllieDyingAgain, many of these films are very poorly done, so you don’t get a lot of people defending Jessica Brown Findlay’s death in either “Winter’s Tale” or “Downton Abbey.” Her deaths are more symbolic of something other than who she was as a person. In Downton it was to remind people that childbirth is treacherous and that her dad is a backwards asshole who won’t listen to the wise advice of a man of modern medicine. Her death services Lord Grantham’s character development rather than her own and acts as an After School Special about the dangers of preeclampsia.

Ellie doesn’t just die. She dies in the first ten minutes of the movie. When I looked up the film they didn’t even list the voice actress who played her at the beginning. She literally has no voice. The vast majority of her time on the screen is part of a musical montage where you see her lose her baby, get sick, and die.

Ellie for all intents and purposes dies in the cold open. If Up was an episode of CSI she would be the body they find at the beginning before the obligatory opening credits sequence blasting a song by The Who. No one would argue that the body at the beginning of the episode is the most important character in the show, yet so many people I talk to argue about how important Ellie is and how it could be argued that the movie is actually about her.

Again, this is getting closer to the heart of the issue, but it still doesn’t quite explain why “Up” bothers me so much.

Thanks for the Adventure, Now Go Have One of Your Own

This clip is what bothers me.

Here is my book of all the things I won't get to do! Huzzah!

Here is my book of all the things I won’t get to do! Huzzah!

I have already mentioned that Ellie loses her baby and eventually dies. She wanted to travel the world. She never gets to go on any adventures. This isn’t uncommon. When I was a kid I wanted to be the first female president. I know at least two people who went to college and studied rocket science because they wanted to be astronauts but never made it into space. Most people don’t wind up living the life they plan to lead. Sometimes the things we do today didn’t exist when we were children. There were no cell phones when I was a kid. The possibility of doing this didn’t even exist when I was trying to figure to what I wanted to be when I grew up. We all grow up and most of us wind up doing something different than what we thought.

It bothers me that somehow, we are supposed to have our heartstrings tugged by the fact that Ellie is satisfied with her “adventure” of being married to Carl for the last fifty years. There is nothing wrong with that. What bugs me to no end is that somehow, we’re not supposed to think that he should feel the same way.

“Thanks for the adventure. Now go have one of your own.”

So marriage was enough of an adventure for Ellie, but it isn’t good enough for Carl?

So much of pop culture revolves around the male midlife crisis. For an example, let’s look at the movie “American Beauty.”

Are you the plot device that is supposed to give my empty life meaning?

Are you the plot device that is supposed to give my empty life meaning?

The main character, played by Kevin Spacey, lives a meaningless existence. He is trapped in a sexless marriage with an anal retentive shrew who makes it clear to him that he has disappointed her. He works a dreary job that he hates where he gets no respect. Then he meets an underaged girl who gives his life meaning. He realizes he shouldn’t have settled for this dreary, miserable life. He buys a sports car, gets fired from his job, then goes to work at a fast food place so he can be stoned all day.

There are no stories about middle aged women who wake up one day and realize that they’re trapped in a marriage with a family they don’t want. That privilege is reserved only for men. Women are supposed to smile and nurture and never convey that they miss their lost youth when anything was possible. A guy can say he wishes he’d never had children but a woman who says so is a sociopath.

It bothers me that the writers of “Up” basically just made Ellie a plot device. She’s a consumptive heroine. She leads a perfect, blameless life where she is simply happy to have lived then died to teach Carl how to live.

How much more compelling would Up have been if Carl had been the one to die? Watching Ellie learning how to live after losing Carl would have been just as, if not more, compelling as watching Carl go on his adventure. Would the writer have been brave enough to have Carl leave the message to Ellie thanking her for the adventure? Do we assume that women have lower hopes and expectations for their lives than men do?

We're holding hands because this is a Disney movie and we can't show any more than this.

We’re holding hands because this is a Disney movie and we can’t show any more than this.

Pixar generally makes great movies, but I feel like they really drop the ball on thinking about female characters. We finally got a movie around a female character and we wound up with Brave, which figures that if you give a girl a bow and arrow you don’t have to give her any personality. There is no reason that every main character in most of their movies has to be male. It’s just the default.

I am very excited for “Inside Out”, the next movie that Pixar is coming out with. It is the movie I have been waiting for Pixar to do. The movie takes place inside the mind of a tweenaged girl who is going through life changes. The main emotional character is played by Amy Pohler. This movie could have had either a male or a female main character and they picked a girl. I am hopeful that this film will start to make up for all the lazy female characterizations over the last twenty years.

Death Handled Well

There is a right way to handle death as a piece of character development. The best example of this that I can point to is from the pilot of “Star Trek: Deep Space Nine.”

In DS9, Benjamin Sisco’s wife Jennifer isn’t killed as a catalyst to either hurt or save Benjamin. Her death is tragic. She is killed by an anonymous enemy that destroys thousands of people. She is also killed in the first few minutes of the episode, but her death differs in some key ways.

She isn’t some inspiration to Benjamin about how important life is and to catalyze a moment of self actualization. Benjamin is a husk of a man after he loses her. He raises their son alone while he tries to cope with the trauma of losing her. Her death doesn’t inspire him. Her death arrests him. The entire episode is about showing how he can’t move on from the moment he loses her.

I can’t find a clip of this scene, but it’s brilliant and I strongly recommend watching the whole episode just for this scene. Here’s a transcript of what is said:

SISKO: What is the point of bringing me back again to this?
JAKE: We do not bring you here.
JENNIFER: You bring us here.
TACTICAL: You exist here.
SISKO: Then give me the power to lead you somewhere else. Anywhere else.
OPAKA: We cannot give you what you deny yourself. Look for solutions from within, Commander.
SISKO: I was ready to die with her.
TACTICAL: Die? What is this?
JENNIFER: The termination of their linear existence.
(and she puts her hand on his cheek)
TACTICAL: We’ve got to go now, sir.
SISKO 2: Damn it, we just can’t leave her here. Oh, no!
SISKO: I never left this ship.
JENNIFER: You exist here.
SISKO: I exist here. I don’t know if you can understand. I see her like this every time I close my eyes. In the darkness, in the blink of an eye, I see her like this.
JENNIFER: None of your past experiences helped prepare you for this consequence.
SISKO: And I have never figured out how to live without her.
JENNIFER: So you choose to exist here. It is not linear.
SISKO: No. It’s not linear.
(and he finally starts to grieve properly)

We’re not meant to think of Jennifer as a fully fleshed out character. She is a plot device whose specter looms over the whole episode. Benjamin is stuck and can’t move on from her death. The inability to move on from a tragedy is a powerful story that all too many of us can identify with that is rarely explored in media.

Now just make sure you don't go talk to your other selves or else we will have a time paradox.

Now just make sure you don’t go talk to your other selves or else we will have a time paradox.

The difference between Jennifer and Ellie is that we are supposed to somehow feel that Ellie is a main character who had a fully fleshed out life and existence. Even though she dies in the first ten minutes, we’re meant to think that somehow because she considered her life an adventure it makes up for the fact that she conveniently disappears ten minutes in so we don’t have to worry about her pesky emotional wants and needs.

I guess I also think it’s different because I feel like Ellie was tortured before she died. She didn’t get to live out her dreams. She lost her baby. She got sick and died. She had this miserable series of misfortunes and at the end we’re supposed to feel like it’s okay because she says she had a great adventure.

I am okay with Jennifer not being a fully formed character in DS9. No one is making the argument that she is. Sisco is the only captain on Star Trek who married and had a family. Showing the story of an African-American single dad is a story we basically never see. I am not going to quibble about Jennifer getting the short straw on this because it opens up another, richer story vein. Avery Brooks shows more naked grief in this clip than Carl does in the whole movie. Any time we can show any man, let alone an African-American one, cry from grief without being shamed for not manning up is okay by me. We need more of this.

Bringing it Back Around

So what was it about John Scalzi’s piece that really crystalized these thoughts for me?

I thought it would be an interesting character note for the investigator.

Someone who came up with the story for Up decided that killing Ellie would be an interesting character note. Her character was made to be this perfect woman that any man would love to be with. Her purpose was to make Carl happy and to have no agency of her own. Someone thought that having her die would be an interesting story note for Carl. There were no other female characters in the whole movie except for Kevin, who is assumed to be male for most of the movie.

All the men who come up to me and tell me that I obviously didn’t understand what the movie was about are coming from this perspective. They put themselves in Carl’s shoes and think about how happy they would have been to have had a perfect girl save them and be with them for fifty years and think that the life they led together was enough.

Me, I saw this movie when I was unemployed and I had no idea what I was going to do with my life. Seeing this woman who was very much like me give up on everything she wanted to give up and die chilled me to the core.

I did not want that to happen to me.

I did not want to lower my expectations to the point where I would give up on ever doing anything with my life. I have fought for over five years to try and make something of myself because I knew that I would not be happy having the life that Ellie led. I dare say most women would not be happy leading that life. Some men want to believe that women don’t have any aspirations beyond getting married and having a family because it absolves them of any responsibility for situations they are unhappy about. It allows us to think that somehow men and women want different things. Men want to be free and have adventures. Women want to settle down and nest. Somehow it’s not possible for both men and women to want the same things.

I think that we are limiting ourselves by writing off the other gender as unknowable and stereotypical. Not all women want to have children and not all men want to be perpetually single. If you go through life without trying to put yourself in another person’s shoes, you will miss a lot of the things that make life amazing. You might accidentally answer a personal ad from your wife because you never thought she might like pina coladas and getting caught in the rain.

up-pixar

The Trick to Forgetting the Big Picture is to Look at Everything Close-Up

Any sufficiently advanced technology is indistinguishable from magic.
– Arthur C. Clarke

Back when I was a programming student, my teacher Eric told me that over the years he has learned and forgotten a dozen programming languages.

At the time, it was inconceivable to me that anyone could learn and forget so much. Two years later, I am shocked to discover that he was right.

Two years ago when I really doubled down on learning iOS programming, I worked on it eighty hours a week. I was working through the Big Nerd Ranch iOS book. They had a series of about five chapters putting together a table view that would display a detail view populated by a singleton.

Every day I would wake up and code this over and over again. The first time I coded the examples, they made no sense. I typed a bunch of words that didn’t set off the compiler warnings, ran them, and magic happened. The second time was not much better. But by the third for fourth time, I began to realize, “Oh, I am creating this object because later when I load this detail view, I will be showing all the stuff I am keeping in this object. This is where it comes from.”

At the time Storyboards Interface Builder wasn’t particularly good for things. If you listen to many people online, their assessment of this situation has not changed. I used .xib files for each of my view and my custom cells and did all of my transitions programmatically. It took me weeks to wrap my head around all of these moving parts to figure out how they worked together. It wasn’t enough for me to just have something work, I really wanted to understand it.

Over the last year and a half, I haven’t really worked with user interfaces much. I had a contract job where there was no UI in Interface Builder because it was a legacy project from 2008. Then I spent a bunch of time running around like a chicken with my head cut off trying to figure out shaders, which are a tiny subset of a program. Then for the last eight months I have been working on porting another legacy project to Swift. We are just now getting to the point where I am working with interfaces again. It’s been over a year since I dealt with interfaces.

I am working on my first application. It is going to be rather limited to start off with, but I have plans to add additional functionality over time, so whenever I finally get it out, no, that is not the final product, more will come later, so don’t give me crap about it.

I am working with HealthKit. In HealthKit, there is a HKHealthStore that you are only supposed to have one instance of in your entire application.

I have been trying to figure out where to make that instance. I know that it needs to be accessible through the entire application and that you’re not supposed to make a bunch of instances of the same thing. I also know you have to pass it along to a lot of different places. I know many people don’t like singletons and I don’t want to create one of those, even though I am pretty sure HKHealthStore is a singleton. I was trying to figure out how all of the controllers can know about something while minimizing global state.

I talked to Brad about this a bit and he was talking about how it should be created in the root view controller for the application because that is responsible for the views that are controlled by it. As he was talking about all this stuff, it dawned on me that he was talking about the same things I was bashing my head against two years ago.

It wasn’t like I had spent a week mucking around with this stuff. I spent eighty hours a week for MONTHS trying to piece together how all this crap worked. I can’t believe that after spending all that time and pain on these concepts that they were buried in some far corner of my brain.

It also made me wonder about all the people who are learning programming now who use storyboards because, honestly, they are easier to get things done quickly. If you just push a couple of buttons and things happen like magic, how do you get a full understanding of what is actually going on? It makes me wonder about what else I don’t know about because I came into programming relatively recently. I know that my knowledge of memory management is bad because it was never something I had to deal with. I came in around iOS5/iOS6, so we had ARC and GCD and a lot of other things that abstract out a lot of the lower level programming stuff from you. Will understanding how root view controllers own detail views go the same way? I know talking to a guy at my first job he didn’t seem to understand this concept and it drove me crazy. I guess I have gotten to the point where I don’t understand it either.

It frightens me about how vast the knowledge is of everything that happens within the iOS ecosystem and how incredibly difficult it is to remember everything because really delving into the low level stuff means that you don’t know how to get things done quickly in the abstracted level. Sticking to the abstracted level limits your ability to do anything really customizable because you don’t see how the pieces fit together.

I am hoping that over the course of the next few years I can figure out a balance that works for me. I hope I can remember enough about how things work that I can deal with the abstracted layer without fundamentally forgetting everything.

Doctor Who: Series One- Father’s Day

PeteRose

I am probably going to retract this by the end of the season, but this is the best episode of Doctor Who so far. The first half of the season was acclimating new viewers to the Who universe and doing a lot of setup and stories that could only be done once.

This episode is the first real episode to explore what Doctor Who is capable of. Everyone wants to be the Companion and run away with the madman in the box. However, the strongest Doctor Who stories have always been character studies about specific companions and their own lives and stories. The fact that the “monster of the week” isn’t the Cybermen or The Master or some other outside force other than Rose’s desire to save the father she never knew makes this episode far more compelling than later outings with the Tyler clan.

It is my feeling since Stephen Moffat took over we are getting further and further away from actual stories about the Companions and getting more entrenched in JJ Abrams’ Mystery Box phenomenon. And no, this past season with Clara and Danny has not changed my assessment. It’s an improvement, but nothing dealing with Clara has has the same emotional gut punch that Rose, Martha, or Donna have had. For better or worse, I feel that Russell T. Davies had a much better handle on how to tell an emotionally driven story than Stephen Moffat has. If he would just make better wibbly-wobbly, timey-wimey puzzles for his story arcs, I would be happy.

So it goes.

Pete and Jackie Tyler

I believe this is the first time we hear about Rose’s father in the series. We have met her mum and her boyfriend, but her father is out of the picture. Until now we didn’t know if he just walked out on the family or if he was in jail or what happened. We never really thought about it. It makes sense that he would not have been spoken about much since he died so long ago. Time heals all wounds and since Rose never really knew her father, he was just this empty spot in her life.

You don't miss something until it's gone.

You don’t miss something until it’s gone.

It’s interesting to see how Jackie describes Pete to Rose as a child and how she reacts to him when he is still alive. She talked to Rose about all of Pete’s wonderful inventions and all the ideas he had when she was scornful of them while he lived. That is such a realistic touch to his portrayal because people have all kinds of quirks and idiosyncrasies that drive you insane that endear you to them later when they are gone.

My grandfather died when I was in my twenties. He and I had been close when I was a child but as he grew older we grew apart because he was basically an overgrown child himself. We didn’t get along and I was sad when he died, but I didn’t think I cared all that much.

When I went to the funeral the minister giving the eulogy talked about all the things he loved doing and all of my memories of childhood came rushing back to me. He was the first person who ever treated me like I was special and he was a good friend to me when I needed one as a child. I started sobbing hysterically because there were so many memories I had of him that I had packed away because our relationship was too painful that all surfaced after he was gone. Human relationships are vast things far more complicated and compelling than any time paradox could possibly be.

The Doctor and Rose

One thing that strikes me going back and rewatching this episode is how it begins. Rose asks The Doctor if he can take her anywhere and he tells her that her wish is his command. He should know better than to put the universe at risk by possibly creating a time paradox. He does it anyway.

Trying to avoid making a stupid "Harry Potter and the Prisoner of Azkaban" joke here.

Trying to avoid making a stupid “Harry Potter and the Prisoner of Azkaban” joke here.

You could make the argument that this is sloppy storytelling, that The Doctor behaves irrationally because the story demands it. However, it doesn’t play that way.

The Doctor cares about Rose. He wants to make her happy. He is willing to do whatever she asks because he cares about her. Later it dawns on him that she might only have agreed to come with him so that he would do this for her and it hurts him to feel that she used him. Their relationship is become more complicated because he is allowing his attachment to her to become way too personal. The behavior is irrational because emotions are irrational. He is angry with her, not for putting the universe in danger, but because he feels like she used him and doesn’t actually care about him the way he cares about her.

Oh god, you pissed off the Eccleston. Hopefully he won't walk off at the end of the season.

Oh god, you pissed off the Eccleston. Hopefully he won’t walk off at the end of the season.

Watching Rose uncomfortably go through their house ratting on about all the stuff her dad had that she heard about and the camera cutting back to Eccleston standing in stone silence is awesome. I have always said that it’s great in shows where when the main character is angry they get really, really quiet. In Battlestar Galactica when Adama has to reprimand both Starbuck and Tigh after their escape from New Caprica, he doesn’t yell. He just gets very, very quiet and says the most devastating things he possibly can. This choice to just show Eccleston pissed was fantastic. He’s so angry he can’t verbally articulate it.

In spite of how angry he is at Rose, he does everything that he can to try to save her father, even to the point of trying to sacrifice himself in Pete’s place.

Even though they go to a lot of trouble to say they aren’t a couple, they certainly act like one. Rose’s knowing look when The Doctor comes back for her is great until she realizes exactly why he’s come back.

Dude, where's my TARDIS? Yes, I deserve to be slapped for that.

Dude, where’s my TARDIS? Yes, I deserve to be slapped for that.

Also, I hadn’t remembered why The Doctor came back for Rose. Going and seeing him walk into the TARDIS and seeing that it was no longer bigger on the inside, then seeing the wheels turning in his head processing why it was like that before panicking and yelling, “ROSE!” was great. He’s mad, but she’s in danger and he’s not going to just leave her there, even though it’s her fault. Actually, I don’t think he had much of a choice considering the TARDIS couldn’t take him away anyway…

Rose and Pete Tyler

It’s interesting to me to see the dynamic between Rose and Pete change over the course of the episode. When she saves his life he gets rather uncomfortable with her attention to him. He has no idea that she is his daughter or that he was supposed to die. Seriously, if some stranger pulled you out of the way of a moving car and started at you expectantly and you didn’t know why, how would you feel?

I think it’s to the credit of the writer that Rose has to come up with reasons to stay with her dad by lying about going to the wedding and needing a ride. I always hate it in TV shows where people wind up doing extraordinary things for strangers with no compelling reason other than the story needs it to be done. In the TV show Leverage you see the main characters taking up jobs in four person companies and no one bats an eye as to how they got there or why they are there and it’s tremendously frustrating.

Even though a lot of trouble has been made to show Pete as a screw-up, he is able to piece together that Rose is his daughter and that all of the damage that is happening is his fault. This episode takes a normal, ordinary man on the worst day of his life and allows him to be a hero he never was. He gets to see the daughter that he won’t be alive to see grow up. The episode makes it his choice to go and fulfill his destiny to die being hit by that car. How many people could do that, honestly?

Pete realizing that he is dead by listening to Rose tell him about this great dad he knows he is never going to be is completely heartbreaking. It’s got to be difficult to listen to someone describe this amazing person they think you are to realize that it isn’t you and it never will be.

It’s kind of awesome that The Doctor comes up with an impossible plan to save the day at the last minute that gets fouled up by the human emotions and irrationality present in a difficult situation. We get so used to The Doctor pulling a solution out of his ass that saves everyone at the last minute that it’s kind of awesome that they actually kill Pete Tyler and he stays dead. Not only that, but he’s made the choice that he will die to save everyone and everything.

1x08-Father-s-Day-doctor-who-17495248-1600-900

Ordinary People

A large, recurring theme in this episode especially is the idea of ordinary people. Rose argues that saving her dad isn’t a big deal because he wasn’t an important person. The Doctor says that the most ordinary person is the most important person in the universe. He tells the bride and groom that they are important.

So much of this first season of Who was about celebrating the ordinary. Rose is a normal, working class girl with a mundane, ordinary life. We get so wrapped up in the idea that everyone has to be Harry Potter that we lose track of the importance of common people. Each and every single person is the center of their own universe. We are not a world made of NPCs. We all work and love and live and that makes each and every one of us important.

After Thoughts

  • First off, I wanted to say that the person who scored this episode did a fantastic job. When Rose saves her dad and other bad time paradox things hit, the score shifts into a dissonant glissando. The music changes abruptly to a way that is wrong, which perfectly fits with the theme of this episode. Also, when Rose and The Doctor are talking about The Doctor having to let his entire world and people die, there is no soundtrack. None. It is silent. It is just him, his words, and his pain. Sorry, geeking out about music.

  • Holy crap. I didn’t process/remember that the best man at the wedding who was trying to talk the groom out of not marrying the mother of his child and to just live in sin for ten years was the guy’s father. LOL!!!

It's the Revenge of the 80s! Why are there no Nikes and jean jackets??

It’s the Revenge of the 80s! Why are there no Nikes and jean jackets??

  • I have no idea if weddings in Britain are the way they are portrayed in Doctor Who and other British media, but I think they’re fantastic. You have all of these women dressed like they are going to the Kentucky Derby who are hanging out in the basement of the Rotary Club. All the men are wearing tails while driving around in rusty old cars. Having this wedding taking place in the 80’s and having the hybrid of the hats and the 80’s fashion is absolutely fantastic.

  • I love the moment when The Doctor yells at Jackie to shut up and do what he says and when she actually meekly does it, he’s like, “Wow, I should have done that a long time ago!” It’s nice to have a moment of earned levity in the middle of a dark episode.

  • Also nice little jab at how clingy Mickey is even as a child.

  • The Doctor to Baby Rose: Now Rose, you’re not going to bring about the end of the world, are you?

Seriously beautiful and amazing episode of Doctor Who. There is no grand mythology or puzzle to be solved. This is simply an episode about the power of love. Love can result in people doing the wrong things for the right reasons, or doing the right thing to save the people we love and cherish.

Next up we have the equally amazing two-part episode “The Empty Child” and the introduction of one of my personal favorite characters, Captain Jack Harkness.