Ebook Annoyances

I have a confession to make: I am addicted to books. I am not addicted to reading books, I am addicted to buying and accumulating them.

I have far more books than I am ever going to read in my lifetime, but I like the feeling I get when I feel like if I wanted to know how to do something I could just do it. I am fascinated by animation and I have over a dozen books on HTML 5 animation. I like to think I will get around to reading them one day.

This is a "stack trace" of one of my multitudes of stacks of programming books.

This is a “stack trace” of one of my multitudes of stacks of programming books.

In order to avoid the massive piles I have stacked all over my house, I discovered ebooks. Ebooks are awesome. They just take up a little space on your hard drive, you can put them on multiple devices, and you can take them with you on trips without having to pack an extra suitcase. They also have the added benefit that if I decide I want to buy a book, I click a button and it appears on my computer like magic.

I have been primarily getting my books from InformIT. They are part of Safari Books Online and they sell the ebook version a few series that I am addicted to, primarily the “Learning , A Hand’s On Guide to Learning .” They have a deal of the day and they also have a lot of sales.

Back over the Fourth of July I preordered two books from them: Introduction to Game Design Prototyping and Development and Writing Interactive Music for Video Games. These are both part of a game developer series I have become enamored with.

I ordered these books on July 1st. The prototyping book was set to publish on July 8th. I figured, great, I get the book in a week. Huzzah!

July 8th came and no book. I checked the site and the publish date was pushed back a few days. Okay, no big deal. I can wait longer.

Last week I checked back. The book was now available to purchase and download, but my account page showed that I preordered it and couldn’t download it. I contacted customer service. I was told that I contacted the wrong customer service and I was sent somewhere else. Okay…

I got a response back this morning telling me that my order couldn’t be completed and was cancelled. If I have any questions go to this link.

Uh, why was my order cancelled? Is there a problem with preordering books from your site? Does this mean my other preordered book was cancelled? What happened here exactly? How can I avoid this situation in the future? Is there any way I can still buy the book at the price I ordered it at?

How many of these am I really going to be able to read??

How many of these am I really going to be able to read??

I forwarded these questions back to the representative. I got a response back saying it was between me and my credit card company and that if I have a problem I should talk to them.

No, the problem isn’t with me and my credit card company. It is with you and me. I paid for a product I was not given. I need to get access to my credit card statement to make sure that yes, in fact, I received a refund for the books I ordered. Even if I do talk to the credit card company and get them to authorize this purchase, I can’t get my book because you cancelled my order.

I have purchased books from you every week or two for the last year. I have never had this problem before when I impulsively buy and download random books that catch my eye. Why was I able to buy a book literally two days later but somehow the issue is with the credit card company?

Also, why was I not told the order was cancelled? If I hadn’t contacted you asking where my book was would I have gotten my money back or would you have just held onto it?

If someone who has blown over a thousand bucks on your site over the last year contacts you to find out how to give you more money, don’t blow them off. Don’t tell them to talk to someone else and just cancel their order.

I really wish that O’Reilly carried this series, but sadly they do not. I checked Amazon and they do carry the book I am looking for. It only works on the Kindle, which is kind of limiting. However, I do know that this would never happen on Amazon. As much as I am annoyed by bad business practices, I at least know that if they can’t fulfill my order that at least they will tell me about it and I won’t have to track them down.

I have access to this book through Safari Books Online. I pay nearly fifty bucks a month to get access to everything they have. It is probably a stupid thing for me to buy a book I can access online, I just like to know I can touch and feel it. I guess this should be a wake up call for me to stop wasting my money on impulse ebook purchases from InformIT.

So, thanks for not letting me buy that book. Thanks for saving me from myself. Time to get back to reading one of the many multitudes of books I already own.

Lexical or Preprocessor Issue

So, today was the day I decided to bite the bullet and start working on my Metal demo for CocoaConf Columbus and 360|iDev.

Since a large focus of my talk is on GPUImage, I am hoping to put together a light Metal version of GPUImage that processes an image using a series of filters. I want to write between three and five filters that are easily stacked on one another that have a GPUImage counterpart in order to test how fast Metal processes images compared to GPUImage.

I went to look at what sample code is available from Apple for Metal. To my delight, I saw that there was an image processing base project. It includes one filter to change an image to black and white and that is hardcoded. I should be able to go into this project, add my filters, and add some UI elements allowing me to add the filter shaders I write.

Today I opened the sample code. Immediately, there was an error.

“Lexical or Preprocessor Issue: QuartzCore/CAMetalLayer.h not found.”

This is why we can't have nice things!!

This is why we can’t have nice things!!

Huh. That is inconvenient.

Did some digging. Refrained from asking this question on Stack Overflow because the last time I asked a question about the betas I got a snide person telling me to go somewhere else. Headed to the Dev Forums and found this thread.

Apparently, for the time being, there is no support for Metal in the simulator. There should be support for Metal if you have an A7 device like the iPhone 5S (which I have) that is running the iOS 8 beta.

I have not yet updated my phone to the beta. I know we are getting close to the point where it will be released, so it isn’t a huge thing to update to the beta, I just feel like I have no guarantee that stuff will work on there properly even after I update to the beta.

I must say that this latest wrinkle is not doing anything to sell me on Metal.

Metal only works on iOS A7 chips and now further won’t even work in the simulator. I usually use the simulator in my talks to demonstrate things I am doing, but now I have to get it on my device. I think I can use Airplay to show what the screen looks like, but that is one more step that can go wrong in my process.

The other things I am noticing in the sample applications is that most of the class implementation files end in “.mm”, which means that they are explicitly telling the compiler that there is going to be C++ code in them.

I have not worked with Swift as much as I should have, but I am wondering if this is going to be a problem with trying to write an app in Swift. I know that theoretically Swift is supposed to behave like Objective-C in that you can include C and C++ code, but I have not tried to write straight C code in a Swift class yet. Can you write C code in a Swift class, or is the support just that I can import a C class into a Swift-based project? How is this going to work with Metal?

At least with OpenGL ES you have the GLKit framework with should work with Swift. I am interested to know more about this, but sadly I don’t believe I will be able to explore these issues before I give my talk in Columbus.

I am also trying to figure out just how much C++ I need to know to fully work with Metal. I thought that I needed to know about the same amount of C++ as you need to know of C to work with GLSL, but after seeing the number of classes that are implementing C++, I am slightly worried that I am going to be out of my depth for a while.

These are things I am going to have to take into consideration and disclose during my talk. I know most of these issues will resolve themselves in the next few years, it is just slightly frustrating to sit on the sidelines trying to figure out how to make it work here and now.

Fortune favors the brave.

Heavy Metal

Hair Force One announcing Metal

Hair Force One announcing Metal

I know that the big new hotness from WWDC 2014 for most people is the Swift programming language. Swift has a large impact on me and on the project I am working on that I can’t publicly announce yet, but that was not the most intriguing thing announced to me. The most interesting thing that captured my attention was Metal.

I have been interested in learning OpenGL ever since I heard about it. I had to make the terrible choice last year of choosing whether to learn OpenGL or Core Audio because it would be complete idiocy to try to learn both at the same time. Since Chris Adamson didn’t write a book on OpenGL, I made the choice last year to learn Core Audio. It was the first programming book I read cover to cover and I got to spend a day with him in Boston at CocoaConf doing Core Audio. That was an amazing experience, but it’s time to move on to the next thing.

I started to learn OpenGL ES in earnest back in March. I had a few books and I have primarily been reading the same materials over and over again hoping that my brain translates them.

GPUImage

GPUImage

One accepted way learn OpenGL ES is to work on the GPUImage framework. There is a great blog post about how to write a custom shader here.

I decided a good way to learn OpenGL ES was to do a talk on GPUImage. Many of the tutorials I have seen on the framework basically just tell you how to plug it into your project and use the built-in filters. I wanted to do a talk about how the framework actually works and how to write your own filters. The creator of the framework, Brad Larson, lives in town. He has been extraordinarily generous with his time and knowledge about OpenGL ES. I pitched this talk and got it accepted at two different conference: CocoaConf Columbus and 360|iDev in Denver. Both of these conferences are in August. I pitched these talks around May. I figured that would be a decent amount of time to figure all this stuff out.

Then, like everyone else, I got slammed by WWDC.

I know that I don’t have to talk about Metal. It’s only been publicly announced for a few months and it only works on a handful of devices. There was no reason I couldn’t just keep my original talk topic. No reason except I had some existential questions I wanted answered.

Every time I heard about GPUImage I heard it was faster than Core Image because it was programmed on the GPU. What does that mean? All of my research on OpenGL ES says to push as much work off the GPU as possible, but they never specify what work the GPU is doing. I read a whole book on OpenGL ES without having any real clue what work is being done on the GPU.

The Defending Champion, OpenGL ES!

The Defending Champion, OpenGL ES!


I really wanted to do a talk on how to optimize OpenGL ES. I also wanted to explore what exactly it was that Metal was doing that was so much better than OpenGL ES. I heard a lot of bemoaning about how slow and inefficient OpenGL ES was, but after talking to Brad about it for a little while, I wondered if the mob was wrong.

I am doing my first talk on Metal three weeks from today. I have exactly one slide from my talk done as of 1:00 this afternoon, but I am in the process of gathering the answers to my questions.

One resource I can’t recommend more highly is the video tutorial series done by Ray Wenderlich. I had a list of questions in my head that I now have answers to because of his series on OpenGL ES. I am a quarter of the way through it and subscribing to his video tutorials is the best money I have spent on tech resources this year. It is my hope that one day he will produce a 3D graphics programming, hopefully after I know it well enough to be able to contribute to it!

So, I am going to take some time, but not too much, cataloging my work on this talk. I also have a debugging talk to complete in three weeks along with some obligations for my unnamed project. I think this is doable if I don’t have a panic attack or get distracted by squirrels.

The Famous Utah Teapot

The Famous Utah Teapot

I am planning to include links in my blog to any resource I have found to be particularly useful.

My goal before going to CocoaConf is to have a working Metal application with a few of the GPUImage filters translated from the OpenGL Shading Language to the Metal Shading Language. I would like to show the performance differences between GPUImage and Metal using the same project. I would also like to be able to intelligently explain GPU programming to people who are coming into this without knowing anything about OpenGL.

Three weeks. Two talks. Git ‘er done!

Lay Down Your Burdens

Today I invested way too much of my time contemplating my future. These thoughts were primarily based on these pieces by Ed Finkler and Matt Gemmell. Both of these articulate men spoke about feeling burned out.

Ed has at least 15 years of web developer experience and Matt recently left software development to become a full time writer.

Here is my story.

I began programming in earnest in March of 2012. I began going to school for programming in 2010, but I was working at the time and I didn’t have the time or energy to really immerse myself in programming. By March 2012 I had unofficially dropped out of school and had walked away from programming feeling defeated.

I began a new job. The second week I was there our team lead walked in, closed all the doors, and told all of us under no circumstances were we to tell anyone in the company that we had no work to do and that we were to pretend to be busy.

Along with looking for another job, I also started working through the tutorials on Code Academy. It looked kind of like work and it was something to occupy my time. Ever tried doing nothing 40 hours a week? It’s living torture. Doing those tutorials kept me from having a complete nervous breakdown.

Miraculously, I discovered that if I spent 40 hours a week coding, I actually was able to learn it. Before I embarked on this experiment I had to look up how to write a “for” loop. I got to a point where I could just code. I didn’t feel stupid, I could do things and make stuff work. I felt amazing.

I was eventually fired from my job, but I actually finally understood what I needed to do in order to be a programmer. I needed to code. A lot.

I went back to school and I was on unemployment. It was going to take a year and a half to finish my programming degree, so I set out to code a lot. I gave up everything I used to love doing to learn programming. I would wake up at 7:00 in the morning and code 10-12 hours a day. I would code tutorials over and over again until I understood them.

The Modern Programmer

The Modern Programmer

I assumed this was temporary. I figured I would learn enough to find a job and that eventually I would be able to get some of my life back. I would be able to read fiction books. I would be able to cross stitch. I could learn to make candy. I would be able to take a weekend off. Hell, I would be able to go on a vacation!!

None of this has happened yet.

I have never been able to get back to the feeling I had when I initially mastered the fundamentals of programming. There has always been another obstacle to overcome. I learned object orientation. I learned to build user interfaces. I learned design patterns. I’m learning a whole new fucking language.

The only thing that gets me through all of this is the idea that somehow, some day I will gain a critical mass of knowledge where I will be able to take a break. I am not talking about never learning another new thing ever again, I am talking about being able to go on a cruise for a week without bringing my computer and having a panic attack because I am wasting time I could be spending reading programming books. I am talking about being able to think about possibly having kids without thinking that it would completely and utterly derail my career. I am talking about being able to write and produce an application without having to immediately go back and redo it because everything changed a week after I finished it.

I regularly work myself to exhaustion. I will be laying in bed completely incapacitated feeling guilty that I am not working. I give myself migraines where I have to have my Kindle pried from my hands because I feel like I should be reading a programming book when I am about to throw up from the pain and I should be asleep.

I don’t want to be Sisyphus. I don’t want to get so close to getting that boulder up to the top of the hill only to watch it fall back down to the bottom. It is fucking demoralizing to see everything you know crumble to dust before your eyes and having to start over.

There is a chapter in one of Anthony Bourdain’s books talking about how when you go to a celebrity chef’s restaurant, like Wolfgang Puck’s, your food isn’t being prepared by Wolfgang Puck, it’s usually being prepared by a guy named Jesus or Jorge. He says being a chef is grueling and you don’t have guys chained to their kitchens into their sixties. He pleads that these guys put decades of their lives into their craft, don’t they deserve a break? Why should programmers be any different?

Everyone has a certain number of times they can watch their life’s work go up in smoke before they say fuck it, I give up. I am not there yet, but I can seriously see a time ten, fifteen years from now when I am there. I don’t think it is healthy for us to just accept that everyone is going to either get career burnout or career obsolescence. There has to be a healthy, sustainable way for everyone to be able to adapt to change at a pace that is reasonable. It isn’t right to treat people like resources to be used and discarded when they can’t take it anymore or want to have some semblance of a normal life. This isn’t too much to ask.

Thoughts on Being an Indie Developer

Back at the beginning of 2014 I thought everything was finally coming together. I got my first programming job and I had my first tech conference talk lined up. Everything was going great. 2014 was going to be my year.

A month into 2014 I lost my job. It wasn’t a great fit and I wish everyone the best. However, it put me in this uncomfortable position of revamping my conference speaker bio. I felt kind of like I broke up with my boyfriend a week before Valentine’s Day. I had no idea what to say. I didn’t want to just go, “Hey, I am unemployed! Huzzah!”

My answer came in an email from our CocoaHeads organizer. He was announcing what people in our group were presenting conference talks and he listed my job as: “Independent”.

Yes! Independent is perfect. I don’t have to go through the humiliation of having to put in my bio that I am unemployed or tap dancing around the fact that I don’t have a job listed. I have a job. I am an independent developer.

After I got done with my talks I started a remote contract job that lasted two and a half months. Immediately after that I started a project that I am currently still working on that will take another few months.

Life is pretty sweet. I work out of my house, so I can wear comfortable clothes. I don’t have to leave my pugs. I don’t have to drive anywhere. If I want to leave in the middle of the day to work out of a tea house, no one cares.

I would love to do this for the rest of my career. I get to do things that interest me and I can change what that is every couple of months without my resume looking like swiss cheese. I keep waiting for a nice block of time where I don’t have any obligations to anyone to work on my own stuff.

However, I am coming to a slightly uncomfortable reality.

everyone-is-a-democrat-until-they-get-a-little-bit-of-money.jpgI have noticed over the last month or so that an awful lot of formerly independent developers are now being hired by large companies.

I am wondering if my wanting to work for myself out of my house is me still clinging to a fig leaf that I am not an unemployed developer but that I am doing this out of my own free will. I am worried that I am going to be the guy in the group who dates women half his age long after it stops being socially acceptable and it just becomes sad.

I don’t even know if what I want to do is feasible. Other developers that I have spoken to have seen contract work dry up because iOS has become a mature enough platform that companies are creating in house developer teams rather than hiring contractors to do piecemeal work. Additionally, it is conventional wisdom that the market for paid apps has also mostly dried up.

I don’t really want to start a company and be in charge of people because I noticed people don’t really listen to what I have to say. I also don’t want to jeopardize a bunch of other people’s futures on the chance I might not be wrong about something. I am okay with gambling my own future, but I don’t want to be responsible for anyone else’s.

I am an arrogant person who looks at Steve Jobs and uses the fact that he succeeded as proof that following your gut can pay off even though there are thousands of people out there who have done that and failed. I like to think that there is more than one way to do something and just because 90% of the world does their job the same way doesn’t mean I have to. There is a 10% out there that does things differently, and isn’t that the spirit behind people who identify themselves as Apple users?

I know if I am smart I will find a nice, stable company to work for that hopefully will let me work remotely and pay me a nice wage. One day it will happen. But not yet. I have apps to make.

Star Trek: The Next Generation Favorite Episode- The First Duty

This is the ninth entry in my “Top Ten Star Trek: The Next Generation” episodes.

Do you swear to tell the truth, the whole truth...

Do you swear to tell the truth, the whole truth…


The first duty of every Starfleet officer is to the truth, whether it’s scientific truth or historical truth or personal truth! It is the guiding principle on which Starfleet is based! And if you can’t find it within yourself to stand up and tell the truth about what happened, you don’t deserve to wear that uniform!

That quote, in a nutshell is the reason that this episode is my absolute favorite episode of Star Trek: The Next Generation ever. I picked this episode over “The Best of Both Worlds”, “Tapestry”, and all the other wonderful episodes on my list.

Wesley Crusher

Wesley Crusher is among the most hated and problematic characters on TV. He was introduced in the first season of TNG and the writers didn’t really know what to do with him. Frankly, the writers didn’t really know what to do with any of the characters for the first few seasons of the series.

Yeah, well I don't really want to be here either...

Yeah, well I don’t really want to be here either…

I went to see “Datalore” in a movie theater when they were releasing the Blu-Ray versions of the each season of TNG. There is a point in the episode where Wesley is the only character who realizes Data is not Data. At that point, Picard snarls, “Shut up, Wesley!” Everyone in the theater burst into cheers. It bothered me that the writers would make Picard do something so unprofessional and out of character, but honestly he was saying what everyone probably thinks.

Wesley also wound up getting placed in this terrible characterization of always saving the ship. You had the elite, best of the best officers serving on the flagship of the Federation being made a fool of by a teenaged boy. I remember there was an episode where he creates a program that simulates voices and uses it to hack into the computer and make himself captain. I give props to Wil Wheaton for doing what he could with the character because I think I would have gagged over nearly everything he was given to do.

That was one reason this episode was so great. You had this problematic character who somehow miraculously always knew what to do who was now put in the very human situation of making a mistake. Not only did he make a mistake, he doubled down on his mistake by trying to cover it up.

Well now, Lancelot, Galahad, and I will leap out of the rabbit...

Well now, Lancelot, Galahad, and I will leap out of the rabbit…

I remember growing up somewhat isolated and not having a lot of friends. I found a group of friends in college. My father wanted me to transfer to a better school my last year of college. I chose not to because I found friends for the first time in my life and I thought that was more important. A week after the deadline to transfer all of my friends turned on me and I spent my last year of college alone. Wesley’s decision to stick with his friends out of loyalty rings true to me. It is very hard to betray people you know and want to like you, so his behavior is completely understandable. It is also understandable why he chooses to finally do the right thing. If everyone had to look Patrick Stewart in the eye while he tells them they disappointed him, then no one would ever do anything wrong.

Ensign Sito

One episode I had on my top ten list that I dropped because I realized it would overlap was “Lower Decks”. That episode appealed to me because it follows up from this episode.

Don't try to stare down Picard. Just don't.

Don’t try to stare down Picard. Just don’t.

Sito Jaxa is one of the members of Nova Squadron who is punished for her role in the cover-up. She doesn’t make a huge impression in “The First Duty” because you have powerhouse performances by Patrick Stewart, Ray Walston, and Robert Duncan McNeill.

When she comes back in a few seasons, you probably don’t remember her. You get a reminder that she has a backstory later in the episode.

Her story is interesting to me because it is a story that doesn’t get told very often. She is a person who made a mistake and was punished for it. That mistake could have ruined her future. She had to repeat a year of school and she lost all of her friends. She was known as one of the cadets who killed a teammate and tried to cover it up. The pressure of that drove Wesley to drop out of the Academy.

In fiction, we like self-contained stories. Person does something stupid, they get punished for it, the karmic balance of the universe is restored, let’s go have cake. There is a reason all the princess fairy tales end with “happily ever after” after the wedding. At that point stuff starts getting real and messy and complicated.

Sito Jaxa undercover

Sito Jaxa undercover

It is a very real thing to have your life torn apart and having to figure out where you go from there. One reason I find Steve Jobs compelling is that his story could have ended back in 1985 when he was forced out of Apple. Man starts company, is in over his head, flies too close to the sun, then crashes back down to Earth. Nice and tidy.

Except it isn’t. Your life crashes around your ears and you keep living. You can’t stop. You keep having to move forward. You learn. You change. You gather the pieces of your life and you start over.

I have encountered many people over the years who tell me that one false move will destroy my career. I do one wrong thing and it is over.

It doesn’t have to be that way.

I thought my life was over six years ago. I had everything I worked for evaporate overnight. Everything was gone. I was 27 years old and I had no idea what I was going to do with my life. I did know, however, that I had to endure. I knew that I could not just give up on myself. I knew it would take time and it would be hard, but that I needed to get over it and keep going.

I don’t think that one bad decision I made when I was in my 20s should label me a failure and determine that I will never succeed. I think people are fully capable of learning from mistakes and becoming new and better people. I am not the same person I was five or ten years ago. The fact that they brought this character back and had her talk about having to pull herself together and persevere after nearly having her career destroyed by a mistake was just awesome.

Picard and Boothby

One of the best pieces of advice I ever got from my parents was to always be nice to support staff. Support staff are the people who really know what is going on. Being mean to them is tacky and it is also a really bad idea because they usually know more about what is going on that the people in “charge”.

Cranky old man with cranky middle aged man.

Cranky old man with cranky middle aged man.

It is telling that when Picard gets back to the Academy the first person he goes to for the inside scoop is Boothby.

It is interesting that in my last recap, “Tapestry”, Picard got a chance to go back and prevent himself from making a mistake. Boothby helped him with some trouble that is completely different than the territory they covered in Tapestry.

I find it interesting that so much of the series is focused on breaking down Picard. He lost his heart by being stabbed. He got kidnapped by The Borg. He was tortured by the Cardassians. There is a running gag in Deep Space Nine that each season they have a “torture O’Brian” episode. They may have gotten the idea from torturing Picard.

I really can’t think of any other character in any form of literature whose development comes close to that of Jean-Luc Picard. Picard is the only character I know who has been allowed to fail and come back from it. He has failed many times. He is the only character I know of who is shown as a successful adult at the height of his career who got there by failing upward.

It is really nice that you have Picard getting advice from Boothby as a cadet, becoming the wise older man, then paying it forward to Wesley.

Seriously, I don’t think you can be human and be given this speech without feeling like complete and total crap:

Come on, don't tell me you don't want to sit in the Captain's chair too!!

Come on, don’t tell me you don’t want to sit in the Captain’s chair too!!

Do you remember the first day you came aboard this ship? Your mother brought you on the Bridge. And you even sat in my chair! I was annoyed! A presumptuous child playing on my ship! But I never forgot how you already knew every control, every display. You behaved as though you belonged on the Bridge. And then, later, when I decided to make you an acting Ensign, I was convinced that you could be an outstanding officer. And I never questioned that conviction… until now.

The biggest thing that has bothered me when I have failed is when I have let down someone who gave me a chance and believed in me. One of the things that helps me gather my fortitude and carry on is wanting to be able to show that person that they were not wrong.

Tom Paris, no, I mean Nicholas Locarno

No, I am not a shapeshifter!

No, I am not a shapeshifter!

Just want to make an aside about why the hell the creators of Voyager didn’t just call the Tom Paris character Nicholas Locarno when they cast McNeill. The character has basically the same backstory and personality. I understand that sometimes Star Trek actors get recycled, like how Dr. Leah Brahms turns up in Deep Space Nine as an admiral of some kind, but the characters are vastly different.

Maybe Tom Paris is just a shapeshifter. That would explain an awful lot, especially in that god-awful episode where they break the warp 10 barrier…

Truthiness

Earlier this year I read an article by a start-up founder talking about the cost of lying.

The general gist of the post is that when you lie to yourself or your investors, you are not living in reality. You are placing yourself in an aspirational reality that prevents you from being able to fix what is broken.

The last job I had before I dedicated myself to programming was for this company where our team leader didn’t know what we were supposed to be doing. Instead of talking to his bosses, he decided to hide the truth from them.

What do you say to a man whose son you accidentally killed?

What do you say to a man whose son you accidentally killed?

My second week on the job he told everyone to pretend to be busy. He would shame you if you asked any questions by implying that asking questions makes you look stupid and that if you have questions you should just keep them to yourself to avoid being judged and eventually fired. If he thought that anyone was talking to anyone else who was not on your team he would take you to an empty office and eviscerate you. He broke everyone down so that people would not leave or look for other jobs because they were convinced they were worthless and no one would ever hire them again.

All of this eventually caught up with him because I reported his behavior and the company had to deal with the fact that many things they thought were the case were based on lies. I was punished for my complicity in this scheme, which was fine. I really needed to figure out what to do with my life and that gave me the kick I needed to follow the path I needed to be on. All of this could have been avoided if the team lead had just told the truth right away and said “I don’t know what you want us to do.”

Unwillingness to deal with the truth is my smell test of whether I want to work for a company or not. If I talk to people who don’t want to deal with reality, then it is going to bleed into other areas. Most companies that have a bullying culture are unwilling to deal with the truth, so it gets ignored and swept under the rug.

Conclusion

I know this probably isn’t everyone’s favorite episode of Star Trek, but it was mine. It has many of the same themes as Tapestry, but I found this one slightly more compelling because you don’t really know what is going to happen to the characters. With Tapestry you know at the end of the episode Picard will be alive and that he will feel better about his mistakes. This ends on a question mark. There is no “happy ending” here. Wesley loses his friends and his leader gets expelled. You don’t know what is going to happen to Wesley.

Stand and deliver.

Stand and deliver.

I would argue that this incident is the reason Wesley kind of falls on his ass and drops out of the Academy.

Some people deal with adversity better than others. People either learn from their mistakes or those mistakes bring them down. I know that for me personally I have learned and grown so much from my mistakes that I would not trade them for anything. Other people get destroyed by incidents that happen to him. I am glad that the writers gave Wesley some grey areas instead of just having him graduate from the Academy early and be lined up to captain a ship right out of the Academy like some other Star Trek properties I could point to.

For those of you counting at home, I have only covered nine Star Trek episodes out of a Top Ten list. As we all know, “All Good Things…” must come to an end…

Star Trek: The Next Generation Top Three Episodes- Tapestry

This is the eighth entry in my “Top Ten Star Trek: The Next Generation” episodes.

You are dead, and I am God.

You are dead, and I am God.

Jean-Luc Picard: Q. what is going on?

Q: I told you. You’re dead. This is the afterlife. And I’m God.

Jean-Luc Picard: No… I am not dead. Because I refuse to believe that the afterlife is run by you. The universe is not so badly designed.

Introduction

“Tapestry” is “It’s a Wonderful Life”, TNG-style, except, instead of having an incompetent, bumbling guardian angel you are stuck with a psychopathic trickster with God-like powers. This has already gotten better.

These are your best friends?? Why do we never see them again?

These are your best friends?? Why do we never see them again?

This episode explores the idea that there are pivotal moments in your life that set you on a path irreparably. In Doctor Who, The Doctor refers to these as “fixed moments in time.” He couldn’t stop the destruction of Pompeii because it was a fixed moment in time. He could, however, save one family from the fires and then regenerate into the father of that family in 2014.

Picard is being given the chance to go back and change that fixed point in time. He regretted what choices he made in that instance and he has a chance to go back, putting things right that once went wrong and hoping each time that his next leap will be the leap home. Oh wait, wrong Enterprise captain.

Jean-Luc Picard

Jean-Luc Picard is one of my absolute, all-time favorite characters in anything. I have said before that I feel like Picard is the mentor/boss/father figure everyone wishes they had. He commands respect, but he still has a sense of humor.

Who would have thought anyone would be so happy to be stabbed?

Who would have thought anyone would be so happy to be stabbed?

One reason he is such a compelling character is because he has made mistakes. In “The First Duty” he and Boothby talk about some mistake he made as a cadet that is never elaborated on. He talks about how he was a thoughtless and reckless young man. Making mistakes as a young man formed the wise man we see today.

There is so much emphasis in our society on prodigies. We are enamored with the idea of people who have preternatural gifts that allow them to effortlessly float through problems most people find difficult.

We do not fundamentally respect experience. If someone fails at something, we write them off and never give them another chance again. This is not a good attitude to have. Failure is one of the best teachers there is. We do not allow people in our society to fail. Everyone gets a ribbon in the science fair. Everyone is special, which is the same as saying no one is.

I have had my fair share of failures in my life. Each and every one of them taught me something. One reason this episode spoke so much to me was because I have thought about if I was given the chance to go back in time and change one of my fixed points in time if I would. I would not. If I went back and changed anything, it would just delay the inevitable. I would have not learned the lesson I needed to from that failure and I would have had it later when it was harder to recover from.

I don’t necessarily buy that Picard would have become a science lieutenant if he hadn’t been stabbed, but it did get the point across to Picard that these mistakes were part of the tapestry of his life. His mistakes were woven into the fabric of who he is and if you pull one thread the whole piece comes unravelled.

Q

Q is one of the best characters in Star Trek and this is one of the best episodes he appears in.

When we are introduced to Q in “Encounter at Farpoint” he is putting humanity on trial. He decided that we were not ready to interact with the larger universe. We had to prove to him that we were.

I push humanity forward.

I push humanity forward.

All of the best Q stories come from this base idea. I think some of the writers don’t fundamentally understand the kernel of Q’s essence, as evidenced by the abortion they did to the character in his appearances on Voyager.

Q is compelling because he challenges the nature of who we are. He has God-like powers, but they are best used when he forces you into a situation you are uncomfortable with and forces a change on you.

The silly Q episodes like “Q-Pid” could have just as easily been holodeck episodes.

Each race on Star Trek that has become successful represents some aspect of humanity reflected back at us in a way that we can explore it. The Ferengi were a failed race until Deep Space Nine when they figure out that what made the Ferengi tick was capitalism. This was a deep and rich vein to be mined for stories and it is rather painful to go back and see episodes of TNG before they figured that out.

Q and the Q Continuum, to me at least, represent our collective unconscious. I mean that in our feel that there are things that are larger and greater than we are. We are fundamentally all connected and we have stories and themes that universally speak to all of us. There are dark aspects of ourselves that we do not like to examine. Q forces those aspects out into the light and makes you deal with them. Picard worries that he flew too close to the sun and will burn himself out early because he wasn’t more prudent as a young man. Q forces him to confront that fear and to realize that just being alive isn’t the same as living.

Do you want to make a contract??

Do you want to make a contract??

Picard inadvertently made something of a Faustian bargain. He traded some of the end of his life for distinction and success earlier on. Generally in fiction Faustian bargains are portrayed as bad or evil. People trade their lives for power, power corrupts, and they descend into a personal hell.

In Puella Magi Madoka Magica Kyubey convinces people to enter into Faustian bargains with it. There is a discussion on the morality of what it is doing. It says that these bargains push the human race forward. If it didn’t create these contracts, the human race would still be sitting around naked in caves.

Not everyone can play it safe. You need people like Steve Jobs to take risks and push us forward. Being one of those people may or may not shorten your life, but we need people to take risks, fall on their face, and get up and keep moving forward.

Live fast, die young, and leave a beautiful corpse.

The Cost of Living

I often think about quality of life. I know a lot of people who are commodity programmers at companies where they will work doing the same thing for 10-30 years until it gets outsourced, converted over, or too expensive to pay people to do.

Fixed point in time.

Fixed point in time.

The thought of doing this makes me feel like I am drowning. I can’t imagine doing the same thing for years and years. I have encountered a fair number of people with decades of experience in something that is being phased out who don’t want to start over again doing something new because not only would it be hard, but they would be back down at the bottom of the ladder again pay-wise and it is too much to do.

I have never seen playing along and following the rules paying off for anyone long-term. I went to college being told that if I got good grades and tried hard that something would be other there for me. I got done and it wasn’t. It was a very upsetting realization that forced me to change how I live my life.

I am now grateful that I made that change in my twenties rather than having a tiny amount of success and continuing to fight the inevitable. I do not want to live my life as a lieutenant in the science department of the Enterprise. I don’t think I want to be the captain, but I sure as hell do not want to be a wage slave commodity programmer perpetually afraid that I am going to be laid off like the worker in Office Space.

To quote Lieutenant Junior-Grade Picard:

I would rather die as the man I was than live the life I just saw.

Identity

I also spend a lot of time thinking about who I am. I don’t mean that in a narcissistic, naval-gazing kind of way. I mean what fundamentally makes you who you are.

Doctor Donna Friend

Doctor Donna Friend

If I woke up tomorrow with amnesia not remembering anything I did for the last two years, would I still be me?

This thought is present throughout a lot of science fiction and fantasy.

At the end of the fourth season of Doctor Who, The Doctor has to remove all memory that Donna Noble had of their travels together. She saved the Universe but she would never know or remember it because those experiences were removed from her life.

Donna had the most heartbreaking ending of any companion on Doctor Who. She encountered something that fundamentally and profoundly changed her for the better. To have that cruelly yanked away from her and to make her back into the person she was before is just terrifying.

This thought is most articulately expressed by Yuri Nakamura from “Angel Beats!”

If I vanish now, could I start over anew? Could I accept normal happiness? If I lost my memories, and got a different personality, I might be able to. But then, what does it mean to be reborn? That isn’t the life I had anymore. It’s someone else’s life.

Yuri's speech to the NPCs from Angel Beats!

Yuri Nakamura articulating what it means to be alive.

Everyone only gets to live life one time, and it’s right here. I only get it once. This is my life. I can’t entrust it to someone. I can’t steal a new one. I can’t force it on others. I can’t forget it, or erase it. I can’t stomp over it, laugh it off, or beautify it. I can’t anything, I’d have to- I’d have to accept my one shot at life no matter how cruel or merciless or unfair I thought it was. Sir, don’t you understand? That is why I must fight. I must keep on fighting, because- because I could never accept that kind of life!

Conclusion

Again, I very much enjoyed this episode exploring how a series of choices we make throughout our lives make us who we are. Alice in “Alice in Wonderland” says, “I can’t go back to yesterday! I was a different person then!”

Heraclitus says “You could not step in the same river twice.” Everything continues to flow and change around you. When Homura keeps going back in time to try to save Madoka each timeline she enters is subtly different and she keeps getting further and further from the Madoka she is trying to save.

There is only so much you can do to cheat fate.

There is only so much you can do to cheat fate.

Fixed points in time are fixed for a reason. They are a linchpin around which your life is held together.

Fate is a tricky thing. My personal belief system accounts for both faith and free will. I think that you can have a path that you are supposed to take, but you can willingly veer off that path if you choose. To me, fate is representative of your optimal path. If you veer off your path the Universe will put you through a lot of ordeals until you figure out where you are supposed to be. I don’t believe you get one and only one chance to be the person you want to be. I think if you miss one chance another one will come your way. You need to be open to it and be willing to jump when the Universe says jump.

I would like to end with one last quote from this great episode:

There are many parts of my youth that I’m not proud of. There were… loose threads – untidy parts of me that I would like to remove. But when I… pulled on one of those threads- it unraveled the tapestry of my life.

Why I am Not at WWDC

Seeing a lot of the normal “Why are there no women at WWDC??” posts that tend to come out this time of year. I want to offer my very limited perspective on why I am not at WWDC.

I did not enter to win the WWDC Golden Ticket lottery because I could not afford to go. It isn’t just the cost of the ticket. It is also the flight and the cost of the hotel. I estimate going to WWDC costs about five grand.

Five grand is a lot of money. That is a Mac Pro or a vacation to Europe.

There are a lot of people who go out there who do not have WWDC tickets who still paid between three and five grand to just be out there and talk to their peers.

My understanding is that a lot of people who go to WWDC work for companies that pay those expenses.

I don’t work for a company. I used to, but that company did not really value sending people to conferences, so I doubt they would have paid to send me even if I were still there.

I took two years off to go back to school to learn programming. I am now in the rocky process of trying to establish myself as a professional.

I have some health issues that prevent me from being able to work all those crazy hours that are expected of you if you work at the kinds of innovative start-ups that want to do cutting edge iOS technology or have enough money to send people to go play with the new toys.

Replace health issues with family issues and you will see the problem a large number of women have trying to get to something like WWDC. Even if you can afford to send yourself, you are still leaving your children/family for a week to go run yourself ragged.

For better or worse, women are still the primary caregivers of children. My conference excursions are becoming longer and farther away and it is causing an issue between my husband and I. He doesn’t think it is fair that I am going off on these trips without him and expecting him to subsidize the costs associated with them. Even though I am a speaker and many of the costs get taken care of, there are always some costs that we wind up paying.

There are two easy things that Apple could do to get more women at WWDC:

  • Set aside 100-200 tickets for women in technology. Either set it up as a lottery or have women apply using an essay or something. Try to pick people who are doing interesting things and not just the token woman board member at Zynga.
  • Do something to help ameliorate the cost. Waive the cost of the ticket. Set up a roommate system so that if you want to spilt the cost of a room with another woman you can do that to save money. Each time I have gone to CocoaConf Chicago I have ridden down and roomed with a woman I met when I picked them up to go to Chicago and both woman became very good friends.

I will probably never work for Apple. I can’t afford to move out there and I can’t work the number of hours expected of an Apple engineer. I probably won’t ever get to go to WWDC. I think it is disappointing because I would love to go to all of the OpenGL and Core Audio labs and sessions that I hear are a ghost town because no one cares about them. I am working within the constraints that I am given and doing the best I can.

Apple could make bringing women to WWDC a priority. They think bringing students to WWDC is a priority and the set aside 150 tickets for students. If they wanted more women there, they would do that for them too.

But then again, they would also set aside tickets for a lot of the prominent iOS companies that got shut out of the WWDC lottery. They probably had 100,000 people enter into a lottery for 5,000 tickets. They could double or triple the cost of a ticket and still sell out every year. They had nearly 400,000 people download their Swift programming guide within a day of it being announced/released.

Apple is going to do fine without people like me. I can throw a hissy fit about them not including me, or I can just accept the fact that I am in the same boat as a lot of other people and do the best I can with what I have.

I am not going to have the same career as everyone else. That doesn’t make what I do any less relevant than working at Facebook or trying to create a social photo sharing start-up. I don’t think I have to measure myself based on what other people use for measures of success.

To quote a famous philosopher:

“Here’s to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes. The ones who see things differently. They’re not fond of rules. And they have no respect for the status quo. You can quote them, disagree with them, glorify or vilify them. But the only thing you can’t do is ignore them. Because they change things. They push the human race forward. And while some may see them as the crazy ones, we see genius. Because the people who are crazy enough to think they can change the world, are the ones who do.”

Just because I am not at WWDC does not mean I don’t exist or that I am not a developer. We’re out there. It might take a while, but you will see more of us. I am not quitting.

iOS 7: The Year that Was

iOS 7 was the first new iOS that I remember having to learn. I started around the time iOS 6 lifted its NDA, so all the books I was reading were out of date with Modern Objective-C.

Since iOS 6 was sort of my first one, I don’t really remember anything “new” from it. Everything was new and I was simply in a panic to try to learn the basics before everything up and changed on me again.

That was different with iOS 7. I had enough of a grasp on iOS programming to be able to grok the differences between it and iOS 7. The fact that there were a multitude of changes stylistically helped things tremendously.

With WWDC just around the corner, I have been talking to some people about iOS 7. Specifically, what worked and what didn’t. There were a lot of new APIs and technologies that were supposed to revolutionize how people created and designed their apps. Some of these technologies were the focus of several WWDC talks. How many of them were actually implemented and have changed the way we design our apps?

  • Borderless Buttons: Borderless buttons are among the most despised changes that I have heard people openly complain about. I can’t find anyone who likes the borderless buttons. Everyone I am encountering is trying as hard as humanly possible to ignore that part of the HIG. I haven’t looked recently, but I think that in Xcode 5 they removed the ability to give a button a border in IB. It seemed to me that this was something Apple really wanted people to be doing, but so far everyone I talk to is avoiding it like the plague. Will be interested to see if Apple backs down on this or if no one is actually going to give a crap about it.
  • UIKit Dynamics: So, Apple wanted developers to add motion effects to their apps? UIKit Dynamics was kind of cool, but it looked very much like a stripped down Sprite Kit. I think it might have been possible to find something new and unique to do with dynamics, but it just seemed like those obnoxious JavaScript effects you used to use on your Geocities site back in 1995. I would love to see someone figure out a neat and innovated way to use these, but generally speaking they don’t really contribute anything to the functionality of most people’s apps.
  • Translucency: This one confused me tremendously. I think that having the interface be layered with translucency could have been a really cool thing to do, but to the best of my knowledge, Apple did not provide built-in functionality for this. If you wanted a blur effect you had to roll your own. If Apple wanted this to be the preferred way of doing things, I wonder why they didn’t make it easier for developers to adopt.
  • Text Kit: Text Kit was the subject of at least three different WWDC 2013 sessions. It seemed like it was an API that Apple was promoting and pushing very strongly. I know that there were some easy implementations of Text Kit to make the text responsive to the user’s font size settings, but I haven’t really heard anyone talking about Text Kit.

    I know of one person doing a talk on it at CocoaConf, but my impression was that this experienced developer was having trouble using it.

    It’s possible that people have done the easy implementation of Text Kit into their apps, but again, not really seeing people getting excited over it and not seeing people evangelizing it, at least not to the extent that I thought they would.

  • Sprite Kit: Again, this surprised me. I know when this was announced that it was a very popular subject with students in my iOS classes. There was a lot of genuine excitement around Sprite Kit.

    I have seen a couple of books about it, but I am not really seeing a lot of people advocating it. I am wondering if it because people already know another engine like Cocos2D that would allow them to port to other systems or if it is because people are not enthused about making game for the iOS platform anymore or what is going on with this.

  • Auto Layout and Animated Transitions: Going along with some of the other style changes from iOS 7, this was another thing I don’t see people doing much with. I have been trying to learn Core Animation, but with the renewed emphasis on Auto Layout, it has been tremendously difficult trying to reconcile those two battling pieces of technology. Auto Layout wants to keep everything in one place while Core Animation wants to make things move. We are supposed to utilize both of these APIs, yet again Apple does not make it easy to reconcile them.

Where Do We Go From Here?

I am wondering what impact iOS 8 is going to have on developers. I am wondering if, since there was such a radical change to the UI, people have simply not had time to explore any of these new APIs.

I am very interested in graphics and a lot of these APIs excite me a lot. Talking to other developers, many are not as focused on these things as I am. They focus on things like Core Data and table views and networking APIs.

So far not utilizing these new APIs hasn’t prevented anyone from putting an app out on the store.

I hope that in the new few years people become more comfortable with things like Text Kit and we see some real innovations in how people create apps. I don’t know if that will happen.

At CocoaConf Chicago, Justin Williams made the knowing joke about every iOS developer waking up in the morning deciding to make a weather app. I have observed that people want to do something that is easy or at least not particularly innovative.

When was the last time you saw a truly innovative app out on the store? I think we are stuck in a self-perpetuating cycle where app developers make something easy that already has a dozen instances on the store, doesn’t make money off of their app, then decides app development is a burst bubble and refuses to put any more effort into it.

I think there are a lot of possibilities out there for people willing to dig into these “new” APIs. I hope that in the next few years more people are willing to give this a shot and do something innovative. I would like to do something innovative (if I ever get any free time!!).

Again, this was the first year I saw a new iOS from beginning to end. I don’t know if any of these are going to be considered failures or what is going to happen in the coming few days, but I was very excited about a lot of what I saw last year and I hope that it is given some more time for people to get used to and to explore, along with all the other neat things we will see next week. I have faith.

Star Trek: The Next Generation Top Three Episodes- The Best of Both Worlds Part One

This is the seventh entry in my “Top Ten Star Trek: The Next Generation” episodes.

Brief synopsis: The race of people introduced in “Q Who?”, the Borg, make their long-awaited appearance in the Alpha quadrant. They kidnap Captain Picard and the show ends on a cliffhanger about whether Riker’s order will result in the death of Captain Picard.

Memories of the Future

Picard and Borg ship

That’s no cube, it’s a space station.

Absolutely no list of the top episodes of Star Trek would be complete without this seminal episode. This episode has been listed as the best episode of Star Trek ever, across all the franchises.

I remember seeing this episode when it first aired. I was eight years old and this episode scared the crap out of me. I asked my parents if everyone was going to be okay. Of course, this was the season finale and we had to wait months to find out what happened. I spent every night that summer carefully tucking my blankets completely around my body because I thought somehow that would prevent the Borg from finding me if they invaded my bedroom while I was sleeping.

bestofbothworldsPlanet

I am listing this episode as my third favorite episode of TNG. (Yes, for you actually still reading my series, I have three episodes to talk about after this one, I haven’t miscounted.) This is without a doubt a wonderful episode, but it wasn’t my favorite one. I went in thinking this would be my second favorite episode, but it got knocked down a little way.

My blame for the displacement of this episode is the fatigue I have with it. When the Borg were the most terrifying enemy the Enterprise had ever encountered in “Q Who?” this episode was fraught with danger and tension. In the nearly 25 years since this episode aired the Borg have lost a lot of their menace and what made them an interesting villain in the first place. I primarily blame Voyager for this.

It was strange going back and seeing this episode because there are so many things that happen in the episode that you just don’t remember because you are waiting for the Borg to show up. The Borg are in here surprisingly little. That was interesting to observe.

The Borg

Resistance is futile.

Resistance is futile.

The Borg, in some ways, are like Doomsday from the Superman comics or Bane from Batman. Both of these villains either killed or broke their respective hero in their debut story. There really isn’t much more you can do after that. They get brought back because they are interesting villains, but they shot their wad on their first go and everything else is kind of a let down after that.

The Borg were introduced in “Q Who?” as a test concocted by Q to see if he could get Picard to grovel for help from the omnipotent super being.

I think The Borg are the only characters we see who are more technologically sophisticated than The Federation. The other traditional enemies of The Federation that you see are The Klingons and The Romulans. Those villains are never a real threat because they are clearly never going to take over the Federation. I don’t think that is ever really their end goal.

The Klingons fight because that is what they do. They’re like a dog chasing a car. If they ever caught it they wouldn’t know what to do with it. They are like Sir Pelinore chasing the Questing Beast. It isn’t about the end goal, it’s more about the process of wining glory on the battlefield and dying in combat.

The Borg are the only enemy that ever poses an actual, real threat to the Federation. The Borg have more in common with a disease than anything else I can think of. The Borg are like an antibiotic resistant bacteria that is out to infect everything it touches. They are a computer virus that is on autopilot to replicated itself until your storage fills and your hard drive crashes.

It is easy for me to imagine us giving birth to The Borg. Our increasing reliance on computers to do everything for us and the ease of overlooking the consequences of one line of programming logic is all that stands between us and the Borg. I think if anything the Borg have become more terrifying in the twenty five years since this episode aired because of how much closer we get to them with each passing year.

The Borg became less terrifying in the episodes after this one because the writers began changing the nature of the Borg and tried to make them more human, which I think was a mistake. I know when you get something that works really well you want to keep using it and running it into the ground. Unfortunately, that happened in Voyager with the two best villains from TNG: The Borg and Q. What Voyager did to Q was unforgivable. Grr…

Riker

Huh, so that is what a female me looks like. I don't like it.

Huh, so that is what a female me looks like. I don’t like it.

The biggest reason this episode stayed in my top ten after the rewatch was primarily due to the conflict between Commander Riker and Commander Shelby.

This episode marks the second time Riker is offered command of his own ship. We know that a character isn’t going to leave the show for a promotion, especially back in 1990 before we had the bloodbath era brought on by Joss Whedon. I think it is interesting that the writers actually addressed this fact this close to the beginning of the series.

Normally in real life if you are a young hotshot, you are going to go as far and as fast as you possibly can. That isn’t an option for Riker. Most of the other characters can be given promotions without leaving the ship, but the only other step up the ladder for Riker is Picard’s seat.

I know that the writers were flirting with the idea of killing of Picard. They didn’t know if Patrick Stewart was going to come back, so creating this tension of setting up Riker to take over the Enterprise for Picard was somewhat necessary.

What went above and beyond this necessity was the conversation Riker has with Troi about why he is hesitant to leave the ship. This is a piece of character development that gives Riker some dimensions he didn’t have before that might have just been ignored or disregarded on a lot of other TV shows. The fact that the writers put some thought into it and were able to give a good character explanation for him sticking around shows just how far they came from the terrible writing in Season One.

Riker and Shelby

Don't get comfortable, you're not staying.

Don’t get comfortable, you’re not staying.

The biggest plot point from this episode that I latched onto was the character of Commander Shelby. Shelby was brought on to be something of a foil for Riker. She is who Riker was five years ago before he “made it” and got comfortable with where he was.

Shelby is a strong woman. I am sure that the same people who hate Skyler White for being and emasculating bitch also hate Shelby. I think I remember not liking her at the time because she wasn’t really meant to be likable, which is a shame.

I have been in her situation. At my last job I joined a reestablished team of people who were not really eager to welcome me into their group. I wasn’t with them months earlier when they were at the office for 48 hours trying to reach a deadline. I wasn’t there when they would grill brats out in the parking lot while drinking beer. It’s really hard to come into an established group of professionals and make your voice be heard.

People are used to doing things a certain way and they don’t like it when someone comes in and wants to shake things up. When you are working with the same people every day you are used to how they work and trying to deal with someone whose habits you don’t know yet can be kind of rough. It really sucks being the person trying to break into the group, especially if people don’t really want to welcome you there.

Shelby was pretty well screwed. I think she was in a no-win situation. When she went to the poker game and squared off with Riker there really wasn’t a way to win that. By winning her hand and calling Riker’s bluff she annoys the audience who is rooting for Riker. If she lost then she would lose her credibility and be dismissed as incompetent.

They don't see eye-to-eye.

They don’t see eye-to-eye.

I know as a woman trying to figure out my way in a male-dominated field it can be difficult figuring out the best tack to integrate myself into a group of developers. The only successes I have had are when the other people in the group are predisposed to giving me a chance. Having been in a situation like Shelby of being the interloper in a group of people who have worked together on their own for at least a year, it was kind of painful and uncomfortable for me to watch her trying to gun for Riker’s seat.

I wish we lived in a society where there was more sympathy for the Commander Shelbys of the world. Until that happens, I will just have to keep trying to figure out how to walk a line between being assertive and being a bitch when I am fighting for the right to have my voice be heard.

Conclusion

I guess I don’t really have all that much to say about this episode. This episode has been covered by so many people that there really isn’t a lot of new ground to cover. It was paced well. The episode had a really great villain who was still fresh and hadn’t been spoiled by overexposure yet. There was genuine tension at the end of the episode about whether the writers would kill of Picard.

Given that the first Star Trek didn’t survive after its third season, it seems fitting that this is the last episode of TNG’s third season. It’s kind of like a big “Fuck you, we are here and we are staying” flag that gets planted to make the point that TNG isn’t going to disappear for several decades like its predecessor did.