Zen and the Art of Analog Synthesizer Maintenance

2014: The Year of Magical Thinking

You can take a picture of something you see
In the future where will I be?
You can climb a ladder up to the sun
Or write a song nobody has sung
Or do something that’s never been done

Last week I was in Atlanta for CocoaConf Atlanta. That conference was the cap on one of the craziest years I have ever had.

Exactly a year ago I had dropped out of school because I was having a nervous breakdown. I knew I needed to find a programming job but I had no idea where or how I would do so. I was completely broken and I had no hope that anything would get any better. The only thing that got me through that period of my life was the faith that something would happen.

I spent a lot of my time in 2013 sowing seeds, hoping one or two of them would take root. I attended several conferences and met a lot of people. Two of the people I met were Jonathan Penn and Chris Adamson. Jonathan mentioned he was writing a book and wanted to know if I would tech review it. Being a tech reviewer is an unpaid task, but I like and respect Jonathan, as evidenced from this blog post.

The editor for Jonathan’s book is Rebecca Gulick, who also happens to be the editor of my book with Chris. When he was looking for a coauthor and he mentioned me to Rebecca, she already knew who I was.

Before I was approached about writing the book, I reached out to Brad Larson about learning OpenGL. I knew I wanted to be a graphics programmer, but that it takes a long time to learn, especially for someone like me who didn’t have any programming experience until two years earlier. My reaching out to him resulted in me having the chance to work with him on a contract project for Digital World Biology. Even though we were working on this project, I hadn’t met Brad in person.

I happened to meet Brad in person a week after I signed the contract to work on the book with Chris. I didn’t know it at the time, but the book I was working on used to be the textbook used for the iOS programming class at MATC. That definitely made an impression.

Six months ago, I had a couple of conferences that I knew I would be speaking at. I wound up doing twice as many as I thought I would. My first conference talk was less than a year ago. This year I spoke at ten conferences total.

Between writing a book, traveling all over the United States, and getting a job with one of the best programmers in the world working on robots, my head is spinning. There are so many things I thought I might get to do a few years down the road. I just wanted a job to get some experience so that maybe one day in like five years I would be able to work with someone of Brad’s caliber. I hoped that maybe I would be able to work on a book in three years.

I looked back at the goals I set for myself at the beginning of the year. No, I didn’t wind up starting a podcast or buying my MIDI wind controller (however that is on the horizon). I set out six long-term goals that I wanted to do in the next 3-5 years. I have knocked half of those off in 2014.

Depression

Oh brother I can’t, I can’t get through
I’ve been trying hard to reach you, cause I don’t know what to do
Oh brother I can’t believe it’s true
I’m so scared about the future and I wanna talk to you
Oh I wanna talk to you

I am going to be honest. I had absolutely no idea how to proceed from here. Part of being alive is to strive to go further and do better. Once you get to where you want to be, what do you do? I always feel a bit of a disappointment when I finish my cross stitching projects because I keep feeling like I will feel a sense of accomplishment, but it’s always a letdown. I enjoy the process of making the thing more than the joy of accomplishing them.

Part of my excitement about these long term projects was the anticipation of all the neat things I would get to do between then and now. I was really looking forward to all the neat stuff I would get to do and all the time I would get to spend working on my craft.

None of that happened.

Things happened so fast that I haven’t had a chance to enjoy anything I have been doing. I haven’t had a chance to stabilize the ground under my feet. I haven’t had a chance to really dig deep into something than interests me because I am running around like a chicken with my head cut off rushing to the next thing.

I have honestly been depressed. I feel like I shouldn’t be depressed and that I am a terrible and ungrateful human being because I got everything I ever wanted. Not only did I get everything I ever wanted, I got it way faster than anyone else. I have it made and I have no idea how to get up each day and deal with my life. Plus I feel like I can’t talk about it because I know that there is absolutely no reason for me to be unhappy.

I had a lot of conference talks lined up for 2015 and I was thinking about doing a lot more stuff because I feel like I worked my ass off sowing these seeds. I hoped that one or two would take root but twenty did. Last year I had nothing but my stubbornness and refusal to quit and now I have the situation of having too much. It feels wasteful to me to squander opportunities I would have killed for a year ago.

But I have to.

It has been a tremendously difficult decision, but I am not doing any conference talks for at least six months. I do not plan to attend any conferences during that time either.

I love this community. I have made so many friends in so many places. I spent a lot of my life feeling like a freak who never fit in anywhere. Being welcomed into this community and treated with respect has meant more to me than I can ever express. One reason it took me so long to make this decision is because this community means so much to me and I want to make sure other people like myself have a chance to join and be welcomed as well. The Klein family has changed my life and I can never express to them what their kindness has meant to me.

I feel like my life is moving too fast and I need to take a step back. I need to focus on getting my feet back under me. I need to focus on doing my job well. I need to focus on sharpening my tools. I need to find something that gives me back the joy and meaning I had in my life back when I was struggling to break through.

The Zen of Sound

Are you lost or incomplete?
Do you feel like a puzzle, you can’t find your missing piece?
Tell me how do you feel?
Well, I feel like they’re talking in a language I don’t speak
And they’re talking it to me

Last year I felt like I had to spread a wide net to catch one opportunity. I spread myself very thin doing a lot of different things to try and get myself enough exposure to find a job. I am pulling back on a lot of these things.

Looking back at my long-term goals, the half that were not fulfilled all had to do with audio programming. I love sound. I wanted to be a sound designer before I became a programmer. Last year I wanted to write a synthesizer app as a portfolio project, but I had too much noise in my life that I couldn’t focus the way I needed to for this project.

Now that I can pull back on a lot of the things that are taking up my time, I can focus my free time on projects that personally interest me without worrying if they will get me a job.

I spoke to Brad when I began to feel overwhelmed about what I should focus on for the next year or so. He advised me to think of something that doesn’t exist and to try and make it happen. He talked to me about taking an impossible task and breaking it down into small, discreet parts that can each be accomplished individually.

Audio affords me a lot of opportunities to explore things that interest me. I became interested in electronics after I began working with physical hardware at my job. I also became interested in math after I started working with GLSL. Additionally, Apple introduced not only Swift, but AVAudioEngine. There have been audio programmers on Twitter who do not think you can do audio programming in Swift because Swift is not built on C.

When I tried to tackle this last year, I had no idea what I was getting into. I also placed a lot of chips on me being able to pull this thing off that caused me a tremendous amount of anxiety.

I am not going to make that mistake again.

I know it isn’t necessary, but I want to build a physical synthesizer before I tackle a software one. I want to get a feel for how all of the pieces fit together.

I also want to spend more time making music with my tools. You can’t really create a piece of software for a group of people if you don’t understand how they are going to use it. I used to play around with this stuff all the time years ago, but it’s been too painful to work with until recently.

I am not going to disappear. I am going to catalog my journey here on my blog. I hope that I can figure out how to do some things that will be helpful to the community at large. I plan to take everything I am learning over this time and present it at NSScotland, which I am still going to speak at. I could not let down Alan Francis again.

I hope that anyone reading this can understand and respect my decision. I hope that I am not the only person who has felt this way and that reading about my depression can help someone else. I am in this career for the long haul. 2014 was a sprint. The journey is a marathon. I can’t keep going the way I am because I won’t make it to the end. I am going to miss all of the amazing people I have met over the last year, but I need to take care of myself and focus.

Thank you everyone for an unbelievable 2014. I am looking forward to coming out of my self-imposed isolation a happier and healthier person. God bless and keep all of you. Don’t have too much fun without me.

Doctor Who: Series One- The Unquiet Dead

smiling
You may or may not have noticed that I have somewhat dropped the ball on my recap/rewatch of the first season/series of Doctor Who. Not only have I been incredibly busy the last month or so, but I was also kind of dreading watching this episode.

The first time I tried to get through Doctor Who, this was the episode that derailed me. The first two episodes were weird but they were good. They had enough good aspects to endear them to me to the point that I was going to continue watching. When I got to this episode and they show a woman possessed by ghosts in the cold open, I was like, “Seriously, are you fucking kidding me!! I thought this was about aliens, not supernatural crap!!”

I quit watching and I had to try a few more times to get through this episode.

Don’t Know Much About History…

One thing that has struck me when I started watching this episode is that I can’t really remember the last time we had a decent historical episode of Doctor Who. In the many River Song episodes she mentions The Doctor taking her to different places and times on her many excursions out of prison, but we don’t have a lot of episodes where our team just travels somewhere in the past for no good reason.

seanceThe last episode I can remember where they went off on a happy excursion to the past was the Donna/Tennant episode where they visited Pompeii. Most of the Moffat-era excursions to the past had to do with whatever wibbly-wobbly, timey-whimey puzzle agenda he wanted to deal with at any particular point in time.

One thing I feel is kind of missing with more recent seasons of Who is this feeling of adventure, of just going to places because they are there. Every episode deals with some kind of universe-threatening crisis that must be solved and it gets kind of tiring after a while. I know in the last season with the Ponds they talk about going on adventures, but we never see them.

We always have the reaction shot of wonder from each new Companion when they realize the TARDIS is bigger on the inside, why did they have to do away with the sense of wonder that comes with having a machine that will take you anywhere in time and space?

I feel like this season afforded the writers one and only one opportunity to tell certain kinds of stories because they could only be told for the first time once. That was one reason I was so impressed that they chose to show the end of the world in the second episode. What impossible story do you tell when you can only tell the first impossible story once? What has significance and meaning? The destruction of the Earth and the realization that everything ends is rather interesting for the second episode of a new show.

Wait, I am off on a tangent about other episodes of this show, not the one I am watching. Sigh. Excelsior.

Gwyneth/Gwen Cooper

There are several actors who have appeared multiple times in different roles on Doctor Who. One of the best examples of this phenomenon is current Doctor Peter Capaldi. He first appeared in “The Fires of Pompeii”, then later in the Torchwood series “Children of Earth.”

gwen6Supposedly, I heard that eventually the series would address the fact that Capaldi has previously appeared on the show in some form or fashion. They may have already but I don’t know about it because I am still behind on the series.

It’s interesting to me to see how they deal with these continuity issues. I believe when Martha Jones was brought on as a companion she mentions having a cousin who died at Canary Wharf as a way to bridge the continuity issue of Freema Agyeman having appeared literally two episodes earlier as a different character.

Eve Myles is the first of three eventual Torchwood cross plants from the main universe. Her character here is named Gwyneth. In Torchwood, her name is Gwen Cooper. It isn’t a big stretch to believe that the Torchwood version of Myles was intended to have been a descendant of this character that she plays. I’ll address the other continuity characters when we encounter them.

Also realized that the weird alien fault line that Torchwood is built over is introduced in this episode. It’s interesting how many seeds for Torchwood are planted in this episode. It’s possible the writers just simply took a lot of stray pieces and repurposed them, but it’s fun to go back and see the trail of breadcrumbs that lead to Torchwood. I went into this episode feeling like it was something of a filler episode, but I am now realizing just how many things that became part of the Who mythos were introduced here.

I don’t think Who should cannibalize itself by only doing Weeping Angels episodes, but it would be nice to see more of the world building they did in the first few seasons where you get a character like Cassandra O’Brian coming back.

Charles Dickens

We can’t talk about this episode without mentioning our celebrity guest, Charles Dickens.

charlesDickensDickens is played by Simon Callow, who will forever be to me the theater owner from Amadeus who commissioned Mozart to write “The Magic Flute.” Interestingly, he also plays one of the idiotic theater owners in the miserable atrocity that was the film adaptation of “Phantom of the Opera.” The other theater owner was played either by Julius Caesar from “Rome” or Mance Rayder from “Game of Thrones”, depending on how old your pop culture references are. Yes, I watch entirely too much British media.

Callow interests me because I have seen him in a number of different things. He is well known for being the funeral in “Four Weddings and a Funeral.” He also published an incredibly comprehensive three-part biography of Orson Welles. He is a fairly well known British prestige actor who either plays characters from Dicken’s oeuvre or Dickens himself. He is just well known enough that everyone has probably seen him in something, but not so well known that you can think of him as being that one guy who did this one thing.

It’s good that Doctor Who got decent actors to play historical figures in the show. More recently, when it became a huge success, I can’t imagine it was hard to get well known character actors to appear, but I believe getting someone of Callow’s stature to appear in the first three episodes was something of a coup for the show.

Period Garb

periodGarbAnother thing I just noticed with this episode is that The Doctor makes Rose change into period-appropriate clothing before turning her loose on the town. Again, this is another thing that the show has kind of crept away from in most circumstances. Usually when the companions travel back in time, they get to wear whatever it is that they normally wear regardless of the time period.

I noticed that Rose has been wearing the same outfit for the last three episodes. I like the authenticity of the costume designer acknowledging that Rose never went home to change her clothes because she impulsively jumped in the TARDIS with The Doctor, plus the fact that most people wear things more than one time. That lends a bit of continuity to the episode. However, it probably has more to do with budget reasons and laziness than actually putting thought into the continuity.

It’s also a nice lampshade on the show for The Doctor to claim he has changed because he changed his shirt. The Doctor always wears clothes on the same theme even if certain aspects of the outfit like the color of the suit will change.

Girl Talk

There is a wonderful scene in this episode where Rose and Gwyneth talk about their jobs and how they hated school. There are a number of scenes like this one from various episodes in the Davies era. There was the one from the previous episode where she talks to the maintenance person and one where Martha Jones is trying to get The Master’s nurse to swear in front of her.

GwenCooperFor the most part these scenes don’t really drive the action forward very much, but they do serve a great purpose in establishing that no matter where or when you are, people are not really all that different. An alien at the end of time still has the same thoughts and feelings as a doctor in the twenty-first century.

These scenes can only be done with the companions because they are a very human aspect of the show that The Doctor just doesn’t fulfill. The Doctor will protect and save humanity, but there is never any doubt that The Doctor is not one of us. He is not human. He never will be. He can like and respect his companions as people without ever really being one of us.

When Rose changes into her period garb, The Doctor is shocked and tells her she looks beautiful, for a human. That kind of sums The Doctor up in a nutshell. He can enjoy the companionship of Rose in an aesthetic way without ever really feeling an actual, real connection to her on a human level.

I currently have my pug sleeping on my chest. I love her and enjoy feeling her fur with my fingers, but I never for one moment think that we are on the same level. It doesn’t mean that I don’t love and care about her, I just know that we are not the same and we never will be.

Nature of Humanity

I find the nature of the conflict between Rose and The Doctor to be fascinating. The aliens asking to use the bodies of the dead is an interesting morality question.

Our culture sees the defilement of dead bodies to be an atrocity. But, if you see it from The Doctor’s perspective, whatever made those people who they were is now gone. We throw away millions of viable organs every year because people need to opt in to organ donation programs and many times the organs are either unusable or the doctors are too worried about being sued to harvest them.

GwenGhostIf you look at things logically, it should make total sense for us to let these aliens inhabit dead bodies. However, on a basic human level, we see this as abhorrent. It seems like a cop out at the end when we discover that the aliens are actually horrible people and we can feel good about denying them access to the bodies.

I also wanted to address Gwyneth’s death. I am a sensitive person. I am hurt very easily by other people’s pain. One struggle I personally have is trying to separate other people’s pain from my own. I keep feeling like I can take their pain from them and that they will feel better, but you can’t do that. Everyone has to experience their own pain.

Gwyneth’s willingness to allow herself to be a conduit for these aliens spoke to me because I could totally see myself doing the same thing. I would feel like I was special, or chosen because I could help save these angels and I would allow them to destroy me. I have done that before. There is something intoxicating about feeling like you are the only person who can help someone that sets you up to be in a position of being damaged by forces you don’t control. Extreme empathy can sometimes feel like a gift, but it is a gift that brings destruction if you can’t learn to protect yourself from its consequences.

Assessment

This episode isn’t as bad as I remember it being. I was kind of dreading having to watch this episode after the great one we just had and knowing the great episodes coming up before the end of the season.

I guess the thing that kind of makes this episode for me is all the breadcrumbs that would be picked up for Torchwood. I know other people don’t agree with me, but I don’t feel like the past few seasons have had the same world building that these first few seasons have. Introducing Danny Pink to be Clara’s boyfriend and to set him up to be sacrificed at the end of the season is different than having a few recurring characters who show up over several seasons.

I had also overlooked the plot point where everything hinges on Gwyneth’s embracing of her destiny to be destroyed by the angels. As much as The Doctor and Rose disagreed about whether it was moral for the aliens to inhabit dead bodies, if Gwyneth had not agreed to be the conduit, the argument would have been moot.

This is a pretty solid episode. The writers probably did right by going back in time. These first few episodes lay the ground for everything that comes after it. I think writing a critical assessment of this episode gave me a better understanding of the emotional resonance of the episode.

Up next, we have “Aliens of London.” We get to see the fallout of Rose’s decision to jump in the TARDIS and follow The Doctor to the end of the world.

Impostor Syndrome

Was reading this article about being a beginning female programmer today and I began to feel incredibly depressed. This is something I could have easily written a year ago. I still write quite a lot about how incredibly difficult it is to break into the tech industry.

One reason I don’t necessarily talk about a lot of sexism in tech is because, back when I was starting out, I didn’t know if I wasn’t finding opportunity because I was a woman or because I had no experience. I had an acquaintance go on Twitter and ask why, whenever he posted a job opportunity, no women ever applied for it. I asked him if he would be willing to hire a woman with less than three years of professional experience. His response was a horrified, “Oh god, no!”

Many people enter the tech industry because we keep hearing the desperate plea of companies for more tech workers, but once many of us get here, we realize there is a giant ravine between us and the people who claim they want to hire us.

I recently wrote a blog post about the incredible dearth of opportunity from the various places that claim they can find no workers. I run a CocoaHeads group combined with an NSCoder group for student entirely to try to help them navigate their way to their first jobs. I am doing this because I am not too far removed from the period of my life where I had no fucking clue how I was going to break into tech.

I recently attended CocoaConf in Boston. I went there last year. When I went last year, I was asked by several people what I was going to do when I got home. I told them I honestly had no clue. Everything I had worked for that year was to make it to that conference to take the Core Audio workshop and maybe network with some people. But you know what, that conference was a catalyst for my career.

One of the speakers there, Josh Smith, got me invited to speak at CocoaConf in Chicago back in March. He also was willing to help me try and submit a book pitch to a publisher. I made friends with Chris Adamson there, so when he was looking for a coauthor for his book, he reached out to me.

I can be a sanctimonious prig and go on here and talk about how I worked my ass off trying to learn programming and how I earned/deserve all of my current success, but that isn’t entirely true. I had parents with enough money to help me pay for going to Boston. I got my husband to send me to the first CocoaConf I went to even though that one didn’t immediately pay off.

I have tried very hard to make opportunities happen for myself and I have done my best to exhaust each and every one that I have gotten. I have had a few opportunities that I have massively fucked up. I have tried my best to learn from those and hope that another one will come along that I won’t massively fuck up.

I see people who are given opportunities that squander them because they don’t really understand what they are being given. I scream in my head at these people. They make my brain hurt. They make me feel like crying. Not only are they wasting their opportunity, they are also training the person who gave them that opportunity to stop doing that because people flake out on them. It really sucks.

I wish I could just say that I leaned in and that I made the most of my opportunities and feel proud of how far I have come in the last year, but I have to acknowledge the uncomfortable reality that I got opportunities other people haven’t and I have simply followed through with them where other people have not. It’s a nice story to say I worked hard, but it isn’t right to tell other people that if they do the same thing that stuff will work out for them, because I am honestly shocked that it has worked out for me.

So, thank you to all the people who gave me a chance and lent me a hand. I hope that you will continue to do so for other people in the future and I pray that someday I will be able to do the same as well.

A Brief Analysis of Swift Structures and Classes

Now that I have cleared a few things from my queue, I have some time and mental energy to really delve into some of the things I left on my back burner. One of those things is to really dive deeply into Swift.

Yes, I know. I have my name on a book using Swift. That book isn’t a language book, it is a framework book. We are primarily getting people who code familiar with the Cocoa Touch frameworks that most people will use. We did not really dive deeply into the minutiae of the Swift Language because, honestly, very few people have. It is still in the process of changing and many people are still stuck in the mental paradigm that they are supposed to write it like they would Objective-C.

I knew when I was going to learn Swift that I really wanted to grok in fullness how best to use the language and to not write hacked, inefficient, and messy code.

One thing I am trying to get used to is the fact that a file does not have to have a class. I am so used to the idea that every file must not only have a class, but that the class must have the same name as the file that seeing it is possible to write a file without that and have it compile kind of blows my mind.

This begs the question in my mind of what do you, or should you, need to include in a file that integrates into your project. Right now I am focusing on three different structures: classes, structs, and enums. I want to explore what each of them gives you and what their limitations are. These are three very similar things and I am interested in exploring what situations each would work it.

This post will be on structures and classes and a future post will be on enums.

Class Versus Structure

Classes have all the same functionality that structures have, but this does not go the other way around. Classes and structures can both do the following:

  • Define properties
  • Define methods
  • Define subscripts to provide access using subscript syntax
  • Define initializers
  • Be extended and expanded
  • Conform to protocols

Structures are far more powerful here in Swift than they were back in the Objective-C days. Back in the day structures could pretty much just do the first thing in this list, define properties. Structures have taken on some of the heavy lifting that only classes used to do.

Classes, on the other hand, can do all of these things along with the following:

  • Inherit characteristics
  • Check and interpret the class type through type casting
  • Deinitialize resources
  • Allow more than one reference to the class instance

This kind of begs the question of why you would create a struct if you can get all the functionality of one for “free” by creating a class. What are the advantages of a struct? Why did the Swift development team think it was necessary to supercharge the struct type?

We would of course want to create a struct in the same situations we used to use them before. But if a struct can conform to a protocol, be extended, and define methods, then where is the line between a class and a struct?

One of the things in this list confused me somewhat: ”Define subscripts to provide access using subscript syntax.” I am perusing the Apple documentation and apparently this means that if you instantiate a struct in a class, you can directly set one property inside the struct. I didn’t use structs much when I was learning Objective-C, but I vaguely remember if you created an instance of a struct, like CGRect, you had to set both aspects of the CGRect. You couldn’t create a CGRect that was a square, change your mind, and just reset the length to be longer. You had to reset the height as well. Now if you wanted to do that, you could simply specify the parameter you want to change and reset it directly.

Value Types

Structures and enums are both value types, but classes are not. A value type is a type whose value is copied when you assign it or pass it around. I didn’t know this, but all the types that we use in Swift, like integers, Boolians, and strings, are all actually implemented as structures. I am so used to dealing with these “primitive” data types that I never thought about how they get implemented by the compiler. I find it fascinating that all the types we use in Swift boil down to structures.

I guess if you really think about what the code is doing, this makes total sense. We are not using C pointers in Swift. If you create a CGRect and then create a second one that is set to the same initial value as the first one, your second CGRect can change and mutate independently of the first CGRect.

Reference Types

Classes are reference types. This means that if you create an instance of a class then set another instance of the same class to the first instance, they are linked and what affects one will affect the other. This is a really important distinction between a class and a structure. If you have something where you will need to create a lot of instances of that object, but you want them to display slightly different behavior, you would want to use a structure. Likewise, if you want a lot of instances that will all change when one changes, you would use a class.

So When Do I Use A Structure?

Here is Apple’s advice about when you would want to use a structure. They advise you do to so if at least three of the following conditions apply:

  • You are encapsulating a few relatively simple data values
  • Your values must be copied rather than referenced when they are passed around
  • Any properties in the structure are value types, or if you are not storing instances of classes
  • The structure does not need to inherit properties or behaviors from an existing type

This list is…interesting…

The problem I am having here is that this is pretty much what you could do with structures back in C and Objective-C. What was the point of really increasing the scope of what they can do just to advise everyone to treat them like they did before. This puzzles me. I thought by exploring these differences that I would uncover something I hadn’t considered before, but I am left with my initial questions.

It’s possible I am reading too much into this. Being an Apple developer means sifting through everything Apple says to try and read the tea leaves of what direction they are going in next. Sometimes they leave a decent trail of breadcrumbs. Sometimes they don’t.

I am in the parallel process of learning Haskell along with Swift. I am going to keep these questions in the back of my mind to see if I can find any more answers to this question in other locations. I feel there is something significant here I haven’t gleaned yet, and I am looking forward to figuring out what it is.

Conclusion

I hope for this to be the first in a series of posts about the Swift programming language and how to work with it most effectively. I am probably not telling anyone anything they couldn’t figure out from reading Apple’s Swift book. I have found that writing things out as I am learning them is helpful to my own learning process. If my writing is helpful to you as well, awesome.

Janie’s Insanity Log: Saturday, November 8, 2014

Time: 7:45 am
Tea: Adagio 4 Seasons: Autumn
Current Music: Soundtrack to Revolutionary Girl Utena

Hello. Over the last month or so people ask me what I am going to do this weekend and I invariably say that I am trying to finish my book. I always get the same response: “Wait, you’re still working on that thing??”

Yes. I am still working on that thing.

I am tired of working on that thing. I want it out of my life and into the hands of people who will use it for its intended purpose of chaos and destruction.

Problem is that when I try to make myself sit down and write, I want to be anywhere other than in front of my computer. I start crawling the walls and try to gnaw my own arm off to escape.

So, I am going to the super counterintuitive thing of writing my thoughts down to avoid having to write my thoughts down. I am going to periodically write my mental state here over the next 48 hours or so so that I can share my psychological degradation with the rest of the world. Yay!

This will either be entertaining or it will be a disturbing, incoherent rambling mess. Or, if I am lucky, it will be both! Let’s see what happens.

Time: 7:55 am

I have realized that my chapter goals may have been overly ambitious. I have chosen three frameworks that could each justify their own book. This is a poor decision. I have removed one framework altogether and I am now figuring out how to adequately write the rest of the chapter.

I made the somewhat impulsive decision yesterday to go to CoocaConf Boston to spend some time with Chris working on the book. I started a job a few months ago where I can actually talk to another programmer about the issues I am having and it has increased my productivity tremendously.

One reason this has been taking so long is that life has gotten in the way. It’s been hard to say I am going to sit in front of my computer and write about something I am still figuring out when it has been nice and sunny outside and I would rather be doing other things. Having another person there to bounce ideas off of and who knows you are supposed to be working because they are in the same boat is an invaluable thing. We have been limping along this way out of necessity, but I really need to work with Chris in person, so I am sacrificing some of my royalties in order to make sure the project gets done the way I want it to be done.

Time: 8:00 am

Realized I am spending time I should not chatting on Twitter about what a cool idea this post is and all the awesome crap I am going to do with it. Gently directing my attention back to the task I have to do.

Time: 8:05 am

Reconnoitering the task at hand. I am trying to figure out the best way to proceed here. I have an idea about what I want to talk about and what project I want to complete by the end of the chapter. I know that some amount of the chapter is going to be structural stuff and the rest will be what Chris likes to call, “clicky-draggy” stuff of explaining how to set things up and show actual code.

I don’t want to work on coding the project by myself because I want to work with the person who has done a lot of the work on the code, which is why I am going to Boston. However, I don’t think I will get very much done if I don’t at least begin to explain some of the “clicky-draggy” stuff.

I found a project very similar to the one I want to explain by the end of the chapter. I am tentatively planning to throw code in the chapter that I will tag to remove when I replace it with the actual code I am creating for the project. This will give me a sense of how long this chapter will be. I will also have to account for screen shots that will be taken later when I get the project working.

I feel bad that I am having trouble doing a remote project by myself. I worked alone out of my house for a year and half while learning programming and I could self motivate for that. To be fair, I never completed a project that was released to the world when working by myself. Also, working with another person on code they primarily wrote is an entirely different skill set than just doing your own thing.

I am an inherently social person. I like talking to people about their code. I am not one of those solitary programmers who lives in the basement staring at a screen. If I don’t have anyone to talk to about things that interest me, I kind of wilt and get depressed. I had hoped to work more directly with Chris on the book, but we both had a lot of curve balls thrown at us and it is understandable why it wasn’t really possible to spend an hour a day chatting on Skype about the book. I am hoping that working on the project together in person will accelerate the process of getting the book done.

Time: 8:15 am

Oh! Student Council elevator song from Utena is playing!

Touga: If it cannot break out of its shell, the chick will die without ever being born.
Miki: We are the chick-
Juri: The world is our egg.
Nanami: If we don’t crack the world’s shell, we will die without ever truly being born.
Saionji: Smash the world’s shell.
All: FOR THE REVOLUTION OF THE WORLD!

Sounds about right. Probably shouldn’t be listening to mind fuck anime soundtracks. What else do I have? Neon Genesis Evangelion, Puella Magi Madoka Magica, and Attack on Titan. This isn’t a promising development…

Time: 8:25 am
On second pot of tea. Already driving Chris insane with my pestering. Will leave the poor guy alone. It must be nice to be an introvert.

Time: 8:30 am

Holy crap! I actually started writing something for the chapter!

Time: 8:45 am

Went looking for sandals. Floor is gritty and covered with various pug debris. Resisting urge to procrastinate by trying to clean my office. I am looking forward to deep cleaning the living crap out of this room when I get done with this thing.

Time: 9:00 am
Current Music: Soundtrack to Puella Magi Madoka Magica

Succumbed to the temptation to clean when I went to refill my tea and saw lots of dirty dishes in the sink with a dishwasher full of clean dishes. Feel slightly better that the kitchen isn’t a complete mess. I should probably eat at some point in the future…

Time: 9:30 am
Current Music: Soundtrack to Attack on Titan

I figured out something I was confused about and didn’t understand about the framework, so I actually got some stuff written. Now I need to determine if this is something Chris explains earlier in the book.

Also ate the other half of my leftover crispy chicken sandwich and french fries from yesterday. I am sad that this is probably going to be the healthiest food I eat this weekend. I am keeping a food log of all the horrible things I am going to put in my body to punish myself for not getting this done sooner.

Time: 9:45 am

Got sidetracked by an argument with a friend of mine online about whether the TV show Scorpion is offensive and stereotypical to smart people. My friend is on the autism spectrum and is thrilled to see people like herself on TV. I am annoyed that it is assumed that if you are a smart person you must be completely socially inept. Wait, I am supposed to be writing now, aren’t I? *grumble*

(But seriously, if one piece of your dialog in the pilot is the main character telling the young white guy with glasses in the back of the room that he is a programmer and the guy asking, gee, how did you know, and the main guy saying lucky guess, guess what?? THAT IS A FUCKING OFFENSIVE STEREOTYPE!!!)

Time: 10:05 am

Having an existential thought about whether or not what I am writing is correct and if it isn’t, would anyone ever know? Wondering how many tech books I have read where the author was completely talking out of their ass and doesn’t know what they are doing only to figure out like years later that something they wrote was completely wrong. I guess it doesn’t matter because anything written about Apple tech is inherently ephemeral.

Time: 10:20 am

Got slightly derailed by a flare-up of my involuntary muscle twitching. Beginning to wonder if it might be an allergic reaction of some kind. This only happens when I am at home. When I travel to conferences or I am at work I rarely have any issues. I hope I am not allergic to my pugs. That would suck to the extreme.

Time: 10:45 am

The Husband returned from his outings. He brought me hacker food. He brought pizza, a case of Mountain Dew made with real sugar, and french silk pie. My digestive system is about ready to strike and walk off the job in protest. This will be fun.

Time: 11:45 am
Current Music: Soundtrack to The Rocky Horror Picture Show

Crap. I got pulled into conversations with people on Twitter. Chris seems to have gotten over my annoying him this morning and we are talking about Revolutionary Girl Utena. Also talking to people I need to connect with in Boston while I am there.

I am making progress on the book. I have written quite a lot so far. I have mentally broken thing up and I am putting the pieces together. I had to spend some time doing a little research, but I am able to find the answers I need fairly quickly and not falling down too many rabbit holes. Also not stressing myself out too badly or crawling the walls trying to escape. Plus, it’s almost noon and I haven’t thought about how long it is until I can open a bottle of wine, so yay to that.

Sadly, getting to the part of the book I am going to have to hack somewhat because it involves code I haven’t written yet. I want to write some of the glue code about the process even though I haven’t done it yet. Sigh.

Time: 12:00 pm
Tea: Adagio Raspberry Black Tea

On my third pot of caffeinated tea. I might want to consider switching to something herbal in a little while or else panic attacks will happen. I wonder if I switched to Mountain Dew if that would still result in panic attacks because caffeine is caffeine. Should run experiments on the pugs.

Time: 12:30 pm

As I am writing the chapter, I am realizing I might be approaching the project incorrectly by trying to describe doing it before creating it. I am taking a bunch of notes in the chapter to try to come up with a list of requirements for the project so I can start working on it when I am in town with Chris. Also need to look over the code better to figure out how to integrate this into what we have so far.

Also, figuring out that I am hungry. Grabbed a random pizza from the freezer and preheating the oven. Also took a can of Mountain Dew and threw it in the freezer to get it cold quickly. I am mentioning it so that when I inevitably forget to take it out of the freezer and it explodes there will be foreshadowing of that event.

Time: 1:30 pm

Managed to collaborate on a plan of action with Chris so we can make the most of our limited time in the same physical plane of existence.

I am creating a set of software requirements for my sample code. I am also looking over all of the code we have thus far to strategize about the best way to approach the code and the organization. I might just stub out some space in the book where I describe what is going to happen in each place.

Also made pizza and switched from tea to Mountain Dew (no, I didn’t forget the can in the freezer and we had no explosions.). Haven’t gotten super hyper yet. Give it some time.

Time: 2:15 pm

I am approaching the end of what I can do on this portion of things by myself. I am getting an idea about how I need to approach my project, which is what I will do for the remainder of my day. I am planning to tackle another part of the project tomorrow. Hopefully I will be able to put together a software requirements package that will allow me to just sit down and code my project when I can collaborate with Chris and we can get this stupid thing done and shipped.

Time: 2:30 pm

Bah. Tired. Time for first bath. Normally I would read tech books in the bathtub, but I am trying to avoid contaminating my focus with any of my other hobbies. Will probably just read historical fiction book about Henry II and Eleanor of Aquitaine. Pondering whether I want wine or not…

Time: 4:00 pm

Took my bath. Got really sleepy. Was really hoping that I could take a nap. No such luck. I really miss taking naps. I haven’t been able to have one in a while because when I go to lie down the involuntary twitching comes back and I can’t sleep.

Today has been a fairly productive day. I am trying to spend what energy I have left outlining the things I need to figure out to implement the first part of this project.

Going to navigate away from my desk. My arm and leg are jerking so much that I am afraid of falling off of my ball. I need to go to bed or somewhere that I am not going to fall over and hurt myself.

Tentatively going to call it a day unofficially. Going to get up tomorrow and continue on my odyssey of writing. See you then!

You Kids, Get off my Virtual Realty!!

Over the weekend I was surprised with a gift I didn’t think I would ever get: New ports of a bunch of my favorite games from when I was in my impressionable tweenaged years. First among these games was “Sam and Max Hit the Road.” Closely following this cultural touchstone were “Indiana Jones and the Fate of Atlantis” and the “Legend of Kyrandia” trilogy.

I became acquainted with the point and click adventure game genre through my brother. When I was in junior high my dad bought my brother a computer for Christmas and bought me a wooden chess set. I am not bitter about this. Much…

Anyway, he was working through Day of the Tentacle. I would walk by and wonder what the hell it was he was playing. It looked weird and creepy. It is weird and creepy, but at the time it didn’t look weird and creepy in an endearing way.
Day_of_the_Tentacle_Founding_Fathers
One day I got curious and started asking him about what was going on. He was stuck on a puzzle in the game but he couldn’t explain to me what had happened up until then, so I went on the computer and started my own game.

Holy crap, this game was amazing! There are so many weird and surreal things going on this game that it may have irreparably warped my sense of humor. Possibly more so than it was warped before. A game with time traveling port-o-potties, a valley dude hanging out with George Washington, and a plot point that requires you to freeze and microwave a hamster is more than a little sick and twisted.

We worked in parallel on our game. One of us would make progress and we would share it with the other person. It took us a really long time to get through that game. It feels like it took months. It might have, I really don’t remember.

When an artifact comes along, you must whip it!

When an artifact comes along, you must whip it!


After polishing off Day of the Tentacle, we worked through Indiana Jones and the Fate of Atlantis. We thought there was only one path through the game and we had screwed it up by ditching Sofia halfway through the game. After working through the game a few times we realized that there were actually three successful paths through the game. That got us really excited to go through the game and replay it a few times to figure out how many different ways the game could be won.

I did want to make a brief mention of my bewilderment about the death of the Indiana Jones franchise. Fate of Atlantis proved that Indiana Jones could be a great franchise where you have a nice formula that is infinitely customizable without getting overly stale. I am saddened that the last few films felt like they had to do like character development or something. Indiana Jones totally could have been James Bond with archaeology. Such a missed opportunity.

The Tunnel of Love from Hell!

The Tunnel of Love from Hell!


It took us a lot longer to get through Sam and Max. There was a point in the game where you had to go into the Tunnel of Love and hit a specific place on the wall at exactly the right moment in order to find the Mole Boy who wanted pecan flavored candies. We went crazy trying to get past this point in the game. We knew something was there, but we never hit the wall at the right moment. I think we worked on this game on and off for months. I think we restarted the game just to be able to play the game up until that point because we enjoyed the twisted sense of humor so much. In fact, we replayed up until that point so many times that there is a full two thirds of the game I barely remember because I played it all the way through just once or twice.

I don’t remember which one of us got past that point or if we did it together. I do remember we were both elated that we could finally continue on with the game and we celebrated that moment together.

The summer between seventh and eighth grade I encountered two games: Myst and Legend of Kyrandia. Legend of Kyrandia was another SCUMM-based adventure game created by a company other than LucasArts. Our school had a summer enrichment program that many of us quickly realized meant that we could hang out at school and play computer games all day.
the-legend-of-kyrandia-screen-4
I don’t remember who found Legend of Kyrandia, but it very quickly became a favorite of everyone in the group of about ten of us. We were obsessed with this game. There is a point in the game where you get lost in these caves and if you don’t light them properly you get eaten by animals. We all worked together to piece together a map of the entire cave, along with all the objects that are hidden that you needed. When someone would make progress in the game we would quickly spread that new information to everyone else in the group. It took us a few weeks to work through the game and it worked as something of a bonding experience for all of us that immediately was forgotten when school started up again.

My experience with Legend of Kyrandia was vastly different than my experience with Myst. I had to work through that game alone. I played it a lot because I thought the graphics were pretty. Myst is in fact one of the things that got me interested in 3D graphics and texture mapping. I really wanted to know how the worlds were made. Unfortunately, I didn’t get as far into the game as I would have liked. I didn’t realize you could leave the island until I bought a strategy guide. I thought you were just supposed to wander around and look at all the pretty scenery. I couldn’t understand why everyone thought the game was so amazing. After figuring out you could leave, I was far more excited about the game.

At this point, you may be wondering why I am rambling on about my lost childhood gaming experiences. I have a point. If you read through this spiel, you will notice that not once did anyone ever check the Internet to see what to do when we got stuck. If we got stuck, we just didn’t progress in the game.

Pro tip: Don't stick your hand in a crack in the wall on an alien planet. Just don't.

Pro tip: Don’t stick your hand in a crack in the wall on an alien planet. Just don’t.


The only games I was able to get all the way through were ones that I worked on with at least one other person. I found a simulated version of Legend of Kyrandia and I tried working through it on my own, but I quickly got stuck in the caves, got bored, and just downloaded a map off the internet.

I find it mind boggling that my brother and I literally spent YEARS when I was a teenager working through these games. We would be stuck on puzzles for months. Yet we would sit there and just keep trying anything we could think of to get through the game.

When was the last time anyone ever spent a month working through a game? The last game my husband bought was Legend of Zelda: Skyward Sword. He spent about a week playing through the game, beat it, then threw it in a box and forgot about it.

Back when I used to work at Target I would bring my Nintendo DS to work. I had Lego Harry Potter to play on my breaks to blow off steam. I would only play that game when I was at work as something to help me get through my day without going insane. After I had been working on it for a month one of the back room guys came over and said, “Wait, you’re still working on playing that same game?!” It’s inconceivable that anyone would spend a month playing a game without either giving up or beating it.

I don’t pretend to be any kind of gamer, but are games easier than they used to be? It seems to me like people used to spend weeks or months working through games. I read a blog post by a guy talking about working through one of the first Zelda games by coming home from school and being glued to the TV for weeks.

Waiting for the smoke monster to show up with the polar bear.

Waiting for the smoke monster to show up with the polar bear.


I am kind of sad that I don’t really see games out anymore that take months to get through. I am also really sad that I don’t get to work through a game with other people anymore. That summer working through that game was a really awesome experience. I have felt rather isolated from my classmates in school. I always did group projects on my own. Having an experience where we all worked together on something that we were excited about was a gift.

I don’t have this experience of working through games anymore, but I have found that I can get something like it when I talk to people about code. Right now my boss is working through functional Swift programming using Haskell design patterns and syntax. Sitting with him looking at the stuff he is doing and trying to catch up so that I can help out is surprisingly emotionally fulfilling.

I wonder if people who grew up with the internet will ever get a chance to work through a problem with someone where the answer isn’t instantly available online. One reason I am finding working on the Swift problem so exhilarating is that there isn’t a “right” or “wrong” way to do things yet. Coming from a school background, I’m used to the idea that the person who knows more than I do has a right answer to the problem we are supposed to solve for class. Being in a situation where that answer isn’t known yet is somewhat freeing. It gives these things we are doing meaning. We aren’t just doing mind games or mental exercises. This is it. This is why I learned to code, to solve a problem.

Working through those silly adventure games really gave me tenacity to keep working at something that I knew there had to be an answer to, even if it wasn’t immediately available. It also taught me how important sharing knowledge and collaborating is. None of us would have gotten through the game in the time we did if we hadn’t worked together and pooled our knowledge.

Giving information to someone who doesn’t have it costs us nothing. Working together we can do things we couldn’t do separately.

I haven’t opened any of my games yet. I am afraid I won’t remember how to do anything and I won’t have anyone to play them with. Maybe I’ll find someone to play with. Maybe not. Either way, I’m sure they will be harder than I remember them being.

So are we, Bernard. So are we.

So are we, Bernard. So are we.

Your Pipeline is Broken

Yesterday I had lunch with a friend of mine who is smart and talented enough to have gotten an internship at Apple and is planning to go out there for a permanent position at the end of the school year.

We were catching up about all the stuff we have been doing over the last few months and I can’t remember how this topic came up, but she mentioned to me that a company in town was desperately anxious to hire every mobile developer our school produced.

She is not the first person to tell me this. I am very puzzled and confused by this information because it does not correlate with my own experiences.

I started in the mobile development program two years ago. I was at school as a mobile development student for three semesters. Each semester we have an IT Job Fair where local employers supposedly send representatives to connect with students looking for jobs or internship.

I noticed that every semester I went to this job fair it got progressively worse and worse. At the first job fair people would actually talk to you and answer questions. The second one people would avoid eye contact with you and were incredibly unhelpful.

I went to the last one purely out of spite. I simply wanted to see just how bad it had gotten over the last year. I was not disappointed.

Each booth has a sign on it saying what they are looking for. I found one company looking for a mobile developer. Every other company that was looking for developers was looking for someone who knew VB.Net. VB.Net was eliminated from our curriculum around the time I went back to school full time. No one there had ever even taken a class in it. There was also a shocking amount of people looking for COBOL programmers even though I have no idea how long ago that language was eliminated from the curriculum.

The only people even looking for Java, which I had assumed was a pretty safe language to learn, were recruiters. Yes, there were recruiters at the job fair. I guess they really don’t want to miss an opportunity to capture someone before they know better than to hand over their soul, I mean, resume.

So, back to this company that is supposedly desperate to hire people. They have a booth at the job fair. Back when I was just starting out I talked to people there about what I should study if I want to work for their company. They handed out data sheets and seemed happy to talk to me. At this last one there were two women at the booth gossiping. I was feeling like a troll, so I went over to talk to them. They ignored me. Having nothing better to do and being curious about what was going to happen, I stood there and watched them while they tried to pretend I wasn’t there.

When it became obvious that I wasn’t going to leave, one of them sighed and snapped at me, “What do you want?”

I told her I was looking for a job. She sighed again and rolled her eyes at her friend. She said, “Yeah, we don’t hire people. If you want to work here, go over there and talk to Robert Half and leave us alone because we are busy.” She then went back to ignoring me and picking up her conversation with her friend.

Aw, isn't that cute. She wants a job. Doesn't she know she has to fill out form BZ/ST/486/C and defeat the Minotaur to get a phone screen?

Aw, isn’t that cute. She wants a job. Doesn’t she know she has to fill out form BZ/ST/486/C and defeat the Minotaur to get a phone screen?


Yeah, I am not talking to Robert Half. Robert Half is evil and incompetent. Actually, I could replace their name with any number of other recruiters in Madison and it would still be true.

I have spoken to recruiters (back when I didn’t know any better) and I have been told that no one in town wants entry level developers. No one wants to hire someone who just got done with school. I was told that no jobs ever came up, but if in the unlikely chance they ever did, I needed to sign an exclusivity contract with one of the recruiters to even have a shot at it. I was speaking to about five recruiters as part of my unemployment obligations back before I decided to go back to school full time and each recruiter was only interested in getting dirt on what the other recruiters were talking to me about.

I stopped looking for jobs on job sites because every job posted is a fake job created by a recruiter to trick someone into sending them a resume so they can fulfill some quota. I have seen the same job posted over and over again, but it someone miraculously never gets filled.

I have tried applying for a job directly at this company. I have applied for jobs that I fit perfectly and I have never made it past the HR screening criteria to even receive an email written by an actual human being.

I found it was easier to get tech conference talks accepted, get a book deal, and find a job at a weird esoteric small company that builds fluid printing robots that is run by one of the best programmers in the world than it was to even get to first base with this company in town that is supposedly desperate for developers.

I thought that maybe things had changed since last year. Things in tech change very rapidly and it was possible that this company had gotten their heads out of their asses and actually fixed their problems.

I asked a current student if he went, and he verified my tale that no one there was actively seeking out mobile developers. He saw lots of people looking for COBOL, but no iOS or Android.

I am actively telling people attending school not to bother with this company because it is too hard to perforate the layers of bureaucracy protecting it from ever actually hiring a competent person for work they supposedly need done.

People, your pipeline is broken. I believe that it is possible that the executives talking to our school actually want to hire some of our students, but they are setting up impossible obstacles to prevent us from ever actually getting there. Sending representatives from your company to a job fair to basically tell anyone who wants to work for you to fuck off is not going to convince anyone that they really want to work for your company.

I guess I should thank these guys for making it so hard for me to get in. When I went back to school in 2010 I wanted to work there and have a nice, stable, mundane existence. I think if I had done that I would be bored to tears. Things worked out fine for me. I guess maybe they were doing something right by trying to keep people like me out. I will see what I can do to help the other people like me avoid being trapped by the endless recruiter bureaucracy.

My plea to the current students studying programming: Don’t fall into this trap! This leads to misery and despair. Build a portfolio. Reach out to experts in your field. Go to conferences. Do things that don’t pay you a lot of money immediately but build your skills and establish your credibility. Push yourself to do things that are hard and be comfortable with feeling that you are stupid. Be willing to learn better ways to do things. For the love of God, do not give your resume to a recruiter! They will hound you to the grave with four month contracts in Boise, Idaho programming in a language that died ten years ago. Choose your own adventure.

Doctor Who: Series One- The End of the World

It's the end of the world as we know it, and I feel fine...

It’s the end of the world as we know it, and I feel fine…

Everything has its time and everything dies.

I had forgotten how many things this episode introduced us to. We got Lady Cassandra O’Brian, The Face of Barrowman, er, I mean, Boe, and we find out for the first time that The Doctor is the last of the Timelords.

The Doctor being responsible for wiping out the Timelords and the Daleks is such an ingrained part of the new series’ mythology that it is difficult to remember there was a time when discovered this information instead of just knowing it. We don’t discover The Doctor’s complicity in this episode yet, but we are introduced to the Lonely God, the Last of His Kind that will haunt the rest of the series from here on out.

It is strangely appropriate that the second episode of the new series is about the end of the world. The second episode of each season tends to be a disappointment because it’s hard to figure out where to go after the premiere. I am not saying this episode is a classic by any stretch of the imagination, but it really does help set the tone for what the series is and what it could be. By introducing the fact that The Doctor had, offscreen, lost his entire race and showing Rose that everything she knows will end one day, it really does emphasize how small we are compared to everything in the Universe. It really puts our place in perspective.

Mum, you're breaking up! I only have one bar out here at the end of world!

Mum, you’re breaking up! I only have one bar out here at the end of world!

In the middle of the episode we get Rose talking to her mother on the phone. Jackie is still in her unawakened state where she doesn’t really think about the fact that everything is going to end. Rose has had her perspective completely altered and her talking to her mom underscores the whole fact that she has been changed by her experiences, even as early in the series as it is.

There is a great part towards the beginning of the episode where Rose assumes that The Doctor is going to step in at the last minute and save the Earth. He tells her he won’t because its time is up. This is something we see less and less frequently in Doctor Who. We rarely see The Doctor refuse to step in and meddle with things. He will still occasionally say that something is a fixed point in time, like the destruction of Pompeii, but we have seen him jump through a multitude of hoops to avoid any real consequences of anything actually dying or being destroyed. Just look at the number of times Rory comes back from the dead.

Please start dancing and saying "I am Groot!"

Please start dancing and saying “I am Groot!”

It is nice that Doctor Who makes some token attempt to explain why every alien we encounter in the future is humanoid. By saying that humans left the Earth and interbred with various other species, we can at least have a logical explanation of why every species is bipedal and looks like human being in make-up. I know it is easier to just do make-up on actors in sci-fi, but I always like it when they at least attempt to explain why everyone looks like a person and speaks English.

One thing that I think is cool about having a working class companion is that we see interactions with a lot of people you might not see interactions with. The scene where Rose is chatting with the plumber is really cool. Yes, there are all of these important dignitaries there to watch the Earth die, but every time you have a function like that, there are a lot of nameless, faceless people who are working behind the scenes to make sure that things come off without a hitch. As cool as it is to see The Doctor hang out with various Prime Ministers, it is also really neat to take time to talk to Mitt Romney’s 47%. I don’t know if it is a function of Russell T. Davies being a member of an underrepresent minority, but his dedication to racial and gender diversity, along with showing people whose stories don’t normally get told is commendable.

This Tainted Love is kind of Toxic.

This Tainted Love is kind of Toxic.

One aspect of this series that delights me to no end is watching Christopher Eccleston being goofy. In this episode when they haul out the “iPod” and play the classical music tune “Tainted Love” watching Eccleston dancing to the music is all kinds of awesome. There are so many terribly cheesy or just plain bad things in the this season that only work because Eccleston has the gravitas to pull it off. Eccleston has been in a lot of terrible blockbuster action movies where he has been absolutely wasted. It is painful watching a movie like “Thor: The Dark World” where his character could have been played by anyone and it would not have mattered.

The conversation between Rose and The Doctor where she tries to get him to tell her about himself and his people is very well crafted. The Doctor is going through the painful process of coming to grips with what has happened. Healing is not a linear process of slowly feeling better. Generally speaking, when you go through a trauma, parts of you shut down. The Doctor wants to take his new companion on a nice, fun adventure. He doesn’t want to think about or deal with the fact that he is responsible for the destruction of his people. Rose pressing him for straight answers begins to awaken uncomfortable feelings for The Doctor and you can see him trying to retreat back into his comfortable numbness, but he just can’t. The dragon has awakened and you can’t put it back to sleep.

Denial of Reality.

Denial of Reality.

You can run, but you can't hide...

You can run, but you can’t hide…

Seeing The Doctor go from dancing and being goofy to having to talk about the painful reality of being the last of his kind is a pivot that not a lot of actors could do. His work in the scene where he is confronted about being the last of the Timelords is painfully subtle. Eccleston conveys so much with his stillness and his silence.

I still maintain that Eccleston and Piper have the best chemistry of all the Doctor/Companion pairs. This is only their second episode but they have such sparky energy with one another when he is modifying her phone so she can call her mother. I am a highly sensitive person and I get all gushy inside watching the two of them interact. It makes me all kinds of happy. Watching this its hard to believe that these people have not been together for years. Their banter and comfort with one another is just so natural that it absolutely drives me insane that we only have a baker’s dozen episodes of the two of them.

I find the theme of this episode to be highly ironic. The episode deals with the inevitable end of everything, yet everyone involved in this episode has unnaturally extended the time they have been allotted. Lady Cassandra has morphed and mutated herself in a doomed attempt to avert and cheat death. The Earth has been artificially prevented from ending at its natural time. We don’t know it yet, but The Face of Boe is the immortal Captain Jack who was altered accidentally and is an abomination that the TARDIS will flee to the end of the Universe to try to escape. The Doctor himself is an immortal god.

Everything has its time and everything dies.

This episode spends so much time talking about so many people who have unnaturally extended their time in this existence. Life is precious because we have a finite amount of it.

The end of all things.

The end of all things.


The idea that trying to unnaturally extend your life is evil is a very common theme in sci-fi and fantasy. Vampires are cursed because they try to cheat death and they are marked by their curse. In the Harry Potter series Voldomort is physically maimed by his attempts to cheat death by breaking his soul into pieces and scattering them to the four corners of the globe. In Lord of the Rings, the wearers of the rings of power are granted unnaturally long life at the expense of their soul. Death is to be feared, but far more scary is the terrible cost at trying to avoid the inevitable.

Each and every moment we are given is precious. I sometimes feel like I don’t have enough time to do the things I want to do. I push myself very hard and make myself sick trying to make up for time I squandered when time felt limitless. I forget that sometimes it is important to just take a day or two to stop and look around at the wonder that exists all around us.

I went to Greenville, SC for a conference a few weeks ago. I got there half a day early and I spent the entire time just walking around a park in a place I have never been and might not ever see again. It recharged my soul to get away from all my worries and responsibilities and just exist for a few hours.

It doesn’t do to dwell on dreams and forget to live.

Sometimes you just have to accept that everything is going to end one day and take time to stop and smell the chips.

Everything ends and everyone dies. Let's eat chips!

Everything ends and everyone dies. Let’s eat chips!

Doctor Who: Series One- Rose

I have complained here about how I don’t like the current iteration of The Doctor in Doctor Who. Recently I have been thinking back to a lot of stuff from the earlier parts of New Who and I am going to write a series of posts about each episode in at least the first series. I am doing this as a recovering English major who thinks that the first series was a very well written set of episodes and tells a very concise story about a pair of dynamic characters who change and are changed by one another.

Rose, I think this is the beginning of a beautiful friendship.

Rose, I think this is the beginning of a beautiful friendship.

It is interesting to go back and look at “Rose” from the perspective of knowing just how huge Doctor Who would get in the ten years after the show premiered. I will confess to being rather late to to Doctor Who bandwagon. I believe I began watching the show in real time in either Series 5 or 6. I tried, like most people, to get into the series by watching “Rose.”

“Rose” isn’t a bad episode, per se, it is just very weird for someone who has no idea what to expect from Doctor Who. I was expecting Doctor Who to be kind of like a cross between “Lost” and “Hitchhiker’s Guide to the Galaxy.” I was not expecting how dark it would get. Even though Mickey comes back from the dead, you have a scene where he basically gets murdered by a plastic mannequin and you see this really bad special effect/makeup job on the actor wandering around saying “Pizza!”

Another thing I find interesting about “Rose” is the actual introduction of the companion. We see Rose wake up, go to work, eat lunch with her boyfriend, and basically have a typical, lower-middle class existence. Her life is perfectly serviceable, if somewhat boring. She works in a shop and has a boyfriend. She probably does not expect to have a lot of upward social mobility and she doesn’t seem particularly interested in trying to get any further than she actually is. She doesn’t seem to be aware of it and it doesn’t really bother her. She is like the main character from “Flowers for Algernon” who isn’t really viscerally aware of the fact that there is more to life than what he knows. Ignorance is bliss.

Compare that to the other series where you are introduced to the companion. Most of those stories are about The Doctor. As the show has progressed, The Doctor has become more and more the focus of the show. The companion is chosen now because the companion is somehow special. Amy Pond with her crack in the universe in her wall. Clara, whose iterations show up over and over again. The Impossible Girl.

Rose is not an impossible girl. Rose is a common girl. Except she isn’t.

runningIf we look as Series One as a whole, we are at the beginning of The Hero’s Journey. We are in “The Ordinary World.” Rose is Bilbo Baggins, snug and safe in her hobbit hole with no aspirations to go on any sort of adventures.

When we meet The Doctor for the first time, it is an exhilarating experience. She, as well as us, are curious about him. She goes and tries to research him on the Internet. She wants to know more about him. She is actively discouraged by her family from trying to find out more about The Doctor. When she goes to talk to the guy from the Internet, Mickey insists on taking her there to keep an eye on her because he thinks she is going to be murdered by an insane internet lunatic. It’s clear from their behavior that neither Mickey nor Jackie thinks Rose can make her own choices or take care of herself. They mean well, but they treat her like a child.

These changes mark the beginning of a metamorphosis that will transform Rose by the end of the series. Had Rose only met The Doctor once, she might not have changed. She would have thought it was weird, but then ultimately would have moved on and forgot. The speech where The Doctor tells her he can feel the Earth hurtling through space, you know Rose will never be the same again. There is a part of her that awakens to the possibility that exists in the Universe.

A happier Doctor by the end of the episode.

A happier Doctor by the end of the episode.

So far I have only spoken about Rose. It is equally important to mention The Doctor. He is recently regenerated, as we can tell when he looks at his reflection and comments on the ears. The Doctor is badly damaged at this point in time due to his decision to destroy the Timelords and the Daleks.

It is hard to determine how The Doctor feels at this point in time. The Doctor picks up companions because he is lonely. He is even more lonely at this point in time because he just destroyed his entire race. (Yes, I know this was retconned.) The Doctor needs a companion to avoid losing touch with the people he has dedicated himself to saving, but he is a broken man. He brings death and destruction everywhere he goes and he is reluctant to bring another person along and place them in danger.

The biggest thing that sells their relationship in this episode is the chemistry between Billie Piper and Christopher Eccleston. Eccleston, one of the greatest living thespians we have, does an excellent job of selling us on why someone would be fascinated by him. Piper, however, has the harder job of selling us on why The Doctor would invite her to travel the Universe with him. Even though we see initially that Rose is a rather ordinary and common person, there is potential within her. She has a spark of curiosity and imagination missing from everyone else we meet in the pilot.

The moment of epiphany is a glorious moment.

The moment of epiphany is a glorious moment.

One of the great, defining moments in the pilot is the part where Rose realizes that the London Eye is the transmitter and The Doctor figures it out. There are so many times in life when you are looking at things from the wrong angle and you need a change of perspective. It was this moment when The Doctor realized that he needed Rose, or someone like her.

The moment when Rose realizes that she can be more than she is is slightly later, when The Doctor needs to be saved. We get the great line from Rose:

I’ve got no A-Levels, no job, no future… but I tell ya what I have got – Jericho Street Junior School – Under Sevens Gymnastic Team – I got the Bronze!

This is the point where Rose reaches “The Call to Adventure.” She has somewhat reached rock bottom. She realizes consciously for the first time that she is asleep. Her normal, comfortable life has been turned upside down and she is painfully aware that she has no hope of doing anything better than she is doing now. This realization galvanizes her to strive to be more than she was.

Both Rose and The Doctor are changed by their encounters with one another. The Doctor has recovered enough from his damage by his encounter with Rose that he feels comfortable inviting her to come with him. He realizes on a fundamental level that he needs her to recover from what happened with the Time Lords. He also recognizes the potential in her to be more than she is.

You can contrast her reaction to The Doctor with Mickey’s. Mickey also had an encounter with the strange and unknown. His reaction was entirely different. The unknown frightened him. It pushed him further into his small world view.

Look at the invitation the Doctor extends to Rose, but not to Mickey:

ROSE: You were useless in there. You’d be dead if it wasn’t for me.

DOCTOR: Yes, I would. Thank you. Right then, I’ll be off, unless, er, I don’t know, you could come with me. This box isn’t just a London hopper, you know. It goes anywhere in the universe free of charge. 

MICKEY: Don’t. He’s an alien. He’s a thing.

DOCTOR: He’s not invited. What do you think? You could stay here, fill your life with work and food and sleep, or you could go anywhere.

You can hold her all you want to Mickey, but she's already gone.

You can hold her all you want to Mickey, but she’s already gone.

At this point, we see Rose reach “The Refusal of the Call” point in the Hero’s Journey. Changing your life is scary. Going on an adventure with The Doctor will fundamentally change who she is. She won’t be happy doing the same things she did at the beginning of the episode. She will evolve into another kind of person, leaving Mickey and Jackie behind her. Hell, when she gets invited, Mickey throws his arms around her and clings to her like grim death to keep her from going. That is a scary thing. It is hard to leave people behind that you outgrow. But if you are going to be more than you are, you must do so. She isn’t quite ready to say goodbye to the person she was to become the person she is going to be, so she turns him down.
The look on her face watching the TARDIS disappear is heartbreaking. She knows that this was a chance that she will probably never get again to be more than she is. She gave it up to stay with the people she loved. She resigns herself to going back to the way things were. Then the TARDIS comes back. She won’t make that mistake again.

ROSE: Thanks.

MICKEY: Thanks for what? 

ROSE: Exactly.

I do find it rather interesting that later in the show they do explore what happens to another prospective companion who turns The Doctor down and regrets it. We meet Donna Noble in a Christmas special. She turns down The Doctor, and we get a season of Martha Jones. A year later we see that even though Donna did not take The Doctor up on his invitation, she could not avoid being changed by him.

Sometimes in life events force you to change. You might want to cling to the person that you were, but that person is essentially gone. Lewis Carroll has a wonderful quote: “I can’t go back to yesterday because I was a different person then.”

I have, in the course of my life, encountered a lot of people who absolutely do not like change. Change frightens them. They bury their heads in the sand and try to avoid dealing with the fact that everything is constantly changing. Your cells replace your organs every few years. We have change built into the structure of our DNA. It is unavoidable, yet people run and hide from things that are inevitable.

One reason I am focusing on this season is because I find it fascinating that the writers generated these characters where you have one dynamic character surrounded by static ones. One issue I have with the newer seasons of Who in the Moffatt era is that none of the characters really grow or evolve. Amy Pond was kidnapped, held hostage, and had her only child stolen from her, yet it never seems to affect her in any meaningful way. She is temporarily affected because it means she and Rory can’t have children, so she leaves him so he can have them with someone else, which is complete and total bullshit.

I identify with Rose very much. I have had several transformative experiences over the last two years and watching this season resonates with me a great deal. I hope that my analysis of these episodes is somewhat interesting or entertaining. If not, I promise to talk more about programming soon.

Mono No Aware

Over the last year we in the iOS community have had a mass exodus of our best people back to the Mothership. There was a period for a while on Twitter where like once a day I would see someone tweet “I have an announcement to make. I just made a really tough decision, but I have accepted a job at Apple.” My favorite response to this phenomenon that I saw was from Jeff LaMarche, who tweeted: “Last one to go work for Apple turn the lights off, okay?”

One day a few months ago I go on Twitter and see a tweet from Jonathan Penn. “I have an announcement to make.” Oh no. “I just made a really tough decision…” Oh please, dear god, don’t let this be what I think it is. “…but I have accepted a job at Apple.” NOOOOOOOOOO!!!!

The Breakpoint Formerly Known as Jonathan Penn

The Breakpoint Formerly Known as Jonathan Penn

I honestly can’t tell you why losing Jonathan Penn to Apple affected me so profoundly. I met Jonathan back at my first CocoaConf in Chicago 2013. It wasn’t like I was as close to him as I eventually got to Chris Adamson. We weren’t best pals or anything. I don’t think I had a closer relationship to him than anyone else did and I actually think I probably wasn’t as close to him as other people were. And yet.

I think Jonathan has a biological mutation that causes him to secrete nitrous oxide because whenever you are around him, you can’t help but feel happy. I don’t think I have a picture of Jonathan without a big goofy grin on his face. Watching him crack up during the CocoaConf game show was a joy to experience. Additionally, Jonathan is wicked smart. I would go to his talks and feel like the village idiot because I would be blown away by his rapid fire delivery of concepts that sailed right over my head.

I guess I got used to the idea that he was always going to be here. I figured when I go to CocoaConf there are certain things that are always there. There will always be an amazing keynote by Daniel Steinberg. There will always be a Breakpoints Jam concert. I guess I thought there would always be a Jonathan Penn.

Back when I had my life changing trip to Boston, I started thinking about what kind of a person I want to be. I wanted to be Jonathan Penn. His passion and his energy were absolutely amazing. He is such a warm and giving person. He adds so much to the iOS development community. I wanted to be like Jonathan Penn.

I am being slammed this year with a lot of instances of impermanence. We got a new programming language from Apple. Many prominent actors and comedians who I grew up with passed away. I feel change happening around me everywhere I turn. The phrase I have as the title of this post, mono no aware is a Japanese phrase that talks about the ephemeral nature of existence. Everything we do has meaning because nothing lasts forever. Life is precious because we have a limited amount of it. Each and every moment we have will never come again and no matter how lousy it might seem at the time, it is special because it is transitory.

Everything in life is transitory. As a member of the generation that came during the internet boom and the Great Recession, that is painfully obvious. People don’t work for the same company for forty years anyone or have the same job their entire career. This is doubly so for computer programming. I have only been programming for the last two years and I am already gearing up to switch from imperative programming to functional programming. Before I left for my conference on iOS programming I got a bunch of help from my boss setting up iHaskell notebook to learn Haskell. I can already feel the ground shifting under me and I am trying to adapt before it is too late or too difficult.

Jonathan going to Apple felt very much like he had died. We can’t talk to him about what he is doing anymore. He is too busy to waste a bunch of time on Twitter. I don’t reliably have an event ten times a year where I can go and absorb all of the joy he radiates. He’s still here, but he is now sharing that joy with other people.

I guess I was also very upset when Jonathan left because I didn’t know that the last time I saw him might literally be the last time I saw him. Had I known that he would be moving on to another stage of his life I would have savored the time with him more. We always feel regret when it is too late to do anything about it.

Jonathan leaving makes me think about the fact that I am going to leave someday. Right now we have this amazing community in iOS, but this is ephemeral. Something else that is going to be really cool is going to come along. All the top people are going to get tired of what we are doing and are going to move on to the next thing.

Yuri Nakamura is my spirit animal

Yuri Nakamura is my spirit animal

I worry about my ability to let this thing go. I don’t want to be the person who graduates from high school and keeps hanging around because they can’t move on. There is an anime series, ”Angel Beats!” about a group of teenagers who had terrible lives and died young who spend time in an afterlife that looks very much like a normal Japanese high school. The point of this afterlife is to get the people in this afterlife to resolve the unresolved issues they brought with them in their previous lives and to help them move on, which in this series is called “graduating.” (My twitter avatar is of me dressed as one of the main characters from Angel Beats, not Sailor Moon.)

Sometimes it is hard to move on. You have a snapshot in your brain of this fixed point in time where things were really great or terrible. In Star Trek: Deep Space Nine, Captain Sisco is trying to explain linear time to the wormhole aliens. The aliens point out to him that he has frozen his linear existence. His life was trapped in amber at the exact moment when he lost his wife. He can’t figure out how to live his life after this tragedy happened.

Life doesn’t stop just because you want it to or because you have been so incredibly damaged that you can’t figure out how to cope with your new paradigm.

Imagine my surprise and delight to actually have a chance to rectify all of this, Jonathan made a cameo at CocoaConf Las Vegas this weekend. Jonathan’s parents live right outside of Vegas and he brought his whole family to CocoaConf to watch him rock out at the Breakpoint Jam.

Thanks to Solomon Klein for making me look thin in this picture with Jonathan.

Thanks to Solomon Klein for making me look thin in this picture with Jonathan.

Having the chance to sit in the audience one last time with Jonathan being a Breakpoint was a fantastic gift. James Dempsey asked me how the concert was and I told him it was the best one. He thought I was pandering to him, but I wasn’t. Jonathan brings this energy to the performances and being able to sit there and enjoy this performance knowing that it would be the last one was truly meaningful to me. The crowd was a smaller, more intimate crowd. The concert wasn’t a super rousing concert, but it felt more like hanging out with your friends goofing around, which was really nice to have.

Jonathan, if you are reading this, I hope you are not creeped out by my writing a whole post about you. I hope I didn’t bother you by hugging you a few times. I wish you the best of luck at Apple. I will try to stop talking about you like you are dead, but I make no promises.