Snow*Mobile 2014

Personal History

SnowMobile

Snow*Mobile 2014 Logo

I started my blog a little over a year ago. The reason for starting my blog was because I was speaking to Ray Hightower at Snow*Mobile in 2013 about a book I wanted to read. He told me when I finished it he would love to read about what I thought about it on my blog. I was like, “I don’t have a blog…yet!”

I never read the book or wrote a blog post about it, but I have done other things and I have come a very long way in the last year.

I am very pleased that I had my first opportunity to speak at a conference at the same conference I first attended: Snow*Mobile.

I attended as a student volunteer last year. It was my first experience going to a conference. I had no idea what to expect and no idea about how much it would change my life.

Talk Preparation

After attended a half dozen or so conferences over the last year, I had semi-formed ideas about how I wanted to do my talk. I wanted to do a Steve Jobs-like talk where I am having a conversation with the audience instead of going up and rambling for an hour while people play with their phones and laptops.

I was urged by a lot of people to not really use a lot of slides. I think everyone has had an experience of seeing a speaker who just reads their slides while people lapse into unconsciousness. I know that every other speaker was using slides. I also had to do a tech talk for class where I didn’t use slides and I was informally told that it was expected that I would if I ever wanted to speak at a conference. I figure after I have been doing this for a few years I can go in and change things up, but my first talk I am not going to be arrogant enough to try and reinvent the wheel.

My talk was titled “Sound: The Silent Partner in User Experience”. I studied sound design and I have been spending years trying to find a way to get people to care about sound design in their apps for the purely selfish reason that I want people to pay me to do it. Sound is something that I think most people don’t think about because it is like lighting: You only notice it if someone does it badly.

Wasn’t really sure how to show sound on a slide, so I tentatively decided to not use a lot of slides. I was planning to play some examples and talk about them. I knew from when I used to do forensics in high school that I tended to choose pieces that were way too long and go over time. I did not want to do that again, so I tried to constrain the breadth of what I was talking about.

I was supposed to go to the CocoaHeads meet-up before the conference to try out my talk. This did not wind up happening because the weather in Wisconsin all winter has been simply miserable. It wasn’t safe to drive in and the meet-up was cancelled.

Snow*Mobile 2014 Logo

Snow*Mobile

After arriving at Snow*Mobile and sitting through the first few talks I realized I was in a little bit of trouble. I didn’t consciously think about how long a half hour really is. When you are doing forensics you have seven minutes to tell a story. That is a quarter of the time that you have to speak.

The morning of my talk I started working on doing a sample project to show the audience. I wasn’t planning to show any code because part of my pitch was that my talk is platform agnostic. If you are an iOS programmer, an HTML5 programmer, or an Android programmer you should be able to get something out of my talk.

So I started working on this demo about three hours before I had to give the talk. That was fun.

I tried to do things a couple of different ways. The first way was more complicated and I couldn’t debug it in the time I had, so I reverted to the “easy” way of adding sound to a project.

I compiled the project and got a weird crash. I was so nervous about everything that I had a minor panic attack and went to my teacher and was like, “OH MY GOD! IT DOESN’T WORK AND I DON’T KNOW WHY!!!!”

Luckily, Wil LaFrance was there to help me out. He showed me some debugging methods (that I really should learn sometime soon…) and we got it working. Huzzah.

I realized that the winter took a toll on everyone in the audience. When I came here last year everyone was really energetic and enthused to be there. This year the energy of everyone was dragging. When I went to the party the day before my talk everyone was very lethargic. Trying to get any energy into anyone was like pulling teeth.

My talk was scheduled for forty-five minutes after lunch. Everyone I talked to all day said they were on the verge of falling asleep.

I really wanted to earn the attention of my audience and I knew I needed to do something. I thought about what might get people engaged and I decided to make everyone stand up and dance for a minute before my talk. This was great because it got people to wake up and it killed a minute or so of my talk.

I realized very quickly that it would have been very helpful for me to have had the opportunity to work through the talk at least once. I relied on my slides more that I thought I would. Things that I was planning to speak about extemporaneously flew by because I didn’t give myself landmarks to keep myself on track.

The demo I crafted before my talk only used up about a minute of my time. This was both bad and good. It was bad for me because I thought it would take longer, but it was good for the audience because I showed how easy it is to add sound to your projects.

The conference was live streaming my talk. While I was doing a demo on my phone I got a notification from Alan Francis telling me he was watching me in Scotland. That was a really amazing thing to me that someone I talked to online and had never met in person took time to go online and watch my maiden voyage into being a conference speaker. I was very touched that he did that.

My talk wound up being 12 minutes short. I took some painful Q & A until Jim put me out of my misery by starting the afternoon break a little early.

Post-Mortem

Everyone came up to me and told me what a great job I did, which convinced me it must have been terrible because otherwise people wouldn’t have been so emphatic about telling me I did a good job 🙂

I don’t remember who said this, but someone asked me if I was having the post-talk thinking I failed and looking for a roof to jump off of. That was the best thing anyone said to me after the talk because it let me know that freaking out thinking you did a bad job is something other people feel too.

I was assured I didn’t embarrass myself or the conference organizers. I learned a lot of lessons from this talk that I applied to my next talk (which I will write about a little later). The first thing I did after I got done with my talk was to find Brad Grzesiak to ask him if I could come into Bendyworks to perform my next talk before I had to do it for real.

So, the takeaway I want to give for anyone doing their first talk is to do it in front of an audience at least once! I didn’t do that and I think it would have been far better had I done this. I know everyone told me to do that and it just didn’t work out.

I am incredibly grateful that I had this opportunity. I am glad that the stakes were relatively low. Being later in the day and having people not really expecting very much was helpful to me to be able to try something that didn’t necessarily work as well as I would have liked. Next time will be better!

Star Trek: The Next Generation Top Ten – The Chain of Command

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

Four Lights

How many lights do you see??

Brief synopsis of this episode is that Captain Picard is lured off the ship on a spy mission, leaving another captain in command of the Enterprise, Captain Jellico. Why they couldn’t just get Commander Riker to take the big chair, especially when it’s been offered to him and filled by him in the past is beyond me.

Anyway, Picard gets captured and is then tortured and humiliated by the Cardassians while Captain Jellico unleashes his own reign of terror on the Enterprise.

“Chain of Command” was an episode I had heard a lot about but never saw until I did this marathon watch. If I had to pick one episode of Star Trek: The Next Generation that I thought everyone should see, this would be it. (Yes, I am aware of the fact that this has two parts, but I am treating it like one cohesive whole.)

There Are Four Lights!

Chain Of Command

I guess there are worse things than assimilation…

Captain Picard has had some really terrible luck as the captain of the Enterprise. He was assimilated by the Borg and then this happens.

I honestly don’t remember what the purpose of the torture was or why Captain Picard was targeted for torture because it genuinely doesn’t matter.

Over the years Picard has become synonymous with the ideal leader. We have Picard Management tips on Twitter for a reason. Everyone wants to have a boss/mentor like Picard.

It is seemingly simple. All Picard has to do is tell the Cardassian torturing him that there are five lights when there are clearly only four. Picard can’t do it. He knows that if he capitulates to the Cardassian and tells him something they both know isn’t true that he will lose a part of himself. He will show that he can be broken and submit his will to someone else.

This is a power struggle. As long as Picard can hold fast to his version of reality he has power. The second he says there are five lights the game is over. Picard will have lost any power he has. It might seem strange to say that a man who is stripped of his clothing and tortured has any power, but that is not the case. He has not allowed the Cardassian to corrupt his reality and that means something.

chain of command

All your lights are belong to us.

The technique used to break Picard is known as “Gaslighting”. The term comes from an Alfred Hitchcock film of the same name about a woman who is made to feel that she is going insane. Gaslighting is most commonly associated with women in abusive relationships. One reason it is so pervasive in those situations is partially based on cultural bias. We readily believe that women are crazy. Think about how many men talk about their “crazy” ex. It is very easy to ruin a woman’s personal and professional reputation by spreading rumors that the woman is crazy and to do things to her to make her question her own perception of reality.

I have been on the receiving end of gaslighting and it is a terrible experience. You feel like you don’t have a grasp of your own reality. It is a terrible thing to do to another human being.

It is wrenching to see this magnificent leader in the process of being broken. It is so meaningless and cruel. It also shows that as capable and impressive as Picard is, he is a human being. He had tremendous strength which allows him to survive through the initial punishment.

He is rescued before he breaks under the pressure, but I think it speaks volumes that when he is speaking with Troi at the end of the episode that he started to question his sanity and started to wonder if there were in fact five lights. The fact that this rock-solid, impressive character admits that he not only nearly broke, but actually started to question his own sanity is such a huge thing.

Captain Jellico

Jellico

Fetch the microscope! I need to micromanage!

Oh. My. God. I don’t think there are words to describe how much I hate this fucking asshole. If Captain Picard is the boss we all wish we had, Captain Jellico is the composite of all the worst bosses we’ve ever actually had.

The first thing he does when he come aboard is he disrupts the flow of the ship. He orders Riker to reconfigure all the work shifts and since he only has two hours he better get cracking. There was a reason the ship was not following that particular type of schedule but rather than find out why he disrupted the routine of everyone on the ship.

It is important to be able to go along with change, but if you are doing things that disrupt vital ship functions and places the ship in danger just to play musical chairs is really stupid. How difficult would it have been to give them until they created the next shift schedule to implement the change? I guess this is indicative that labor unions are dead in the twenty-fourth century.

Anyway, making meaningless disruptive change is stupid.

Jellico and Riker

Damn! I wish I had paid more attention when Data taught me the Vulcan Neck Pinch!

Captain Jellico also does the classic management thing where he manages upward. That means that he doesn’t really try to nurture or manage the people under his command. He honestly doesn’t give a damn about them as people. He just wants to snap his fingers and get them to jump. I think one reason Picard has been seen as a paragon of management is because he actively worked with his crew to try and push them to do better. Many people in management only worry about cultivating relationships upward for advancement without really caring about or noticing the people under them.

When I used to do radio news I really wanted to be a producer. My producer was a very unpleasant human being and I wanted to be in charge. I was briefly given a producer job on the Wednesday night newscast.

We had a live interview fall through and we needed to move on to the next story. I wrote this information down and gave it to the anchor. She took the piece of paper and set it aside without reading it.

She did the intro for the interview and did her, “And now speaking with us about this is our guest I-Forgot-His-Name. Hello. Hello??”

I ran in and picked up the piece of paper and held it in front of her face to get her to read it. She looked at it and went back to the microphone and said, “Oh, it looks like we aren’t going to talk to I-Forgot-His-Name. Our producer screwed up the interview and we have to move on.”

I can not tell you how deeply angry and powerless I felt at that moment. I could not believe the lack of professionalism this person displayed. I also couldn’t do anything about it. I couldn’t just jump on a microphone and tell everyone that I told her about this but she didn’t read the note and so she was the one that screwed up.

As unpleasant as my news producer was, there was no fucking way anyone would pull something like that on her. It would not occur to anyone to even try it. She would make your life not worth living if you even thought about pulling that crap on her.

The moral of this story (and how it relates to this episode) is that you can’t just put a person in charge and expect everyone to do what they say. There is a difference between a boss and a leader.

Redecorate Jellico

Oh, you’ve redecorated! I don’t like it!

Captain Jellico’s attitude seemed very similar to the one I had before becoming a producer. I assumed that since I was in charge people would do what I say. I was wrong. If people don’t respect you or don’t think you are strong enough to follow through on things you will either get mowed over or you will earn the eternal hatred of everyone underneath you.

I think it is possible to cultivate leadership, but I also think some people are born with a natural proclivity for it. Some people don’t. I don’t. I could spend a bunch of time cultivating it, but honestly, it really isn’t that important to me. I would rather focus my time and energy on other things.

Conclusion

This was a powerful and complex episode of Star Trek. I kind of took Captain Picard for granted before this episode. I am looking forward to going back and watching previous episodes to marvel at how well he leads the crew.

The way the writers constructed Captain Jellico was perfect. He wasn’t overly exaggerated and he was seen less as an evil person and more as a misguided person who was out of his depth. If he wasn’t such a prick I would almost feel sorry for him.

Star Trek episodes occasionally lack subtlety and will beat the viewer over the head with whatever message they want to convey, like the terrible first season conversation between Tasha Yar and Wesley Crusher about drug addiction. All of the characters in this episode showed sufficient complexity and human ambiguity. They tackled a difficult subject and did credit to it. Kudos.

Properties and Headers and Ivars, Oh My!

So I have been seriously coding Objective-C for about a year now. I have spent a lot of time just sort of typing things only having a surface knowledge of what I was coding and why.

One thing I noticed in my independent iOS studies is that there are a lot of different places to create variables. Also, there are variables and there are properties.

Why pick a property over a variable? Why declare the property in the header file instead of the implementation file?

Properties

If you are coming from a language like Java, you will know that you are required to write getters and setters for all of your properties. Back in the olden days of Objective-C, you used to have to do this as well. A few years ago Apple decided to introduce a @synthsize property to do the getting and setting for you. Then a few years ago they decided that since it was best practice to do that anyway, it is all baked into the code for you. Just because you aren’t doing it and you don’t see it doesn’t mean it isn’t happening under the hood.

Properties are backed by instance variables. So, if you declare a property in the implementation part of your .m file, a backing ivar is created.

So, if you have:

@property (copy, nonatomic) NSString *myString;

you will then be able to access it in your methods by using:

_myString = @“Hello, World!”;

In this instance _myString is an ivar of the property *myString.

Header Vs Implementation

One thing I wondered about a lot while working with tutorials is why you would choose to place things in the header file over the implementation file. Back when I was just typing until something worked I put everything in the Header files because they would show up in the autocomplete. Then I started seeing tutorials where they declared properties in the implementation file and used ivars.

If you want a property to be accessible by another class, you need to set the property in the header file. You don’t always need or want a property to be accessible to another class because it is something you are using internally. In those cases, use either a property or an ivar in the implementation file.

Apple’s best practices say to always use a property for data encapsulation. There is some debate about whether to use them or not, but that goes beyond the scope of what I am going to talk about here.

There is a wonderful blog post from the Big Nerd Ranch discussing this issue. In this post I am simply exploring what the scope of everything is, so if you are interested, then check it out.

Ivars

Instance Variables (or Ivars) are created in the @interface of your .m file. They are immediately differentiated by the fact that their declaration begins with their type and not with @property.

It is a coding convention to begin Ivars with an underscore. When you create properties that are backed by instance variables those will always start with an underscore, so it keeps things consistent in your program to start yours with an underscore as well.

Demo

I created a small demo project on GitHub to just generally show better examples of this code in action.

Conclusion

This is intended to be a gentle introduction to the scope of various properties and variables. I want to explore some of this topic further, such as what the strong, non-atomic, copy, retain all mean and why you use those, but that is a large enough topic for its own blog post.

If you have any suggestions about Objective-C minutiae you would like clarified and explored, drop me a line on either Twitter or App.net at @RedQueenCoder. Happy to take suggestions!

I hope this clarifies for you how to choose where you set your properties, or at least answers your questions about why they are set in so many different places.

Star Trek: The Next Generation Top Ten – Hollow Pursuits

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

In honor of Singles Awareness Day, I am going to do a write up on Hollow Pursuits.

Hollow_Pursuits

Mr. Barclay wants his martini shaken, not stirred.

Brief synopsis of this episode is that a socially awkward engineer feels more comfortable in the simulated reality of the Holodeck than dealing with the complexity of normal human relationships. This sounds like nearly everyone in my freshmen engineering classes.

I don’t know about anyone else, but the first thing that pops into my head when you say that there is a virtual reality technology that is virtually indistinguishable from reality is “Why would anyone ever leave??”

This isn’t a unique thought in popular culture and science fiction. In “Parable of the Talents” by Octavia Bulter one character has never seen her mother because her mother lives in a Holodeck and never leaves. In Batman Beyond there is an episode where characters can create virtual realities to conform to their desires and they become addicted to the joy and thus become drug pushers for the villain who manufactures the technology. The whole Matrix trilogy is based on this idea of creating a comfortable virtual world away from the nastiness of reality.

I am glad that the writers on Star Trek decided to address the elephant in the room by doing an episode based on something we as viewers thought would happen if this was a real thing.

The Goddess of Empathy

The Goddess of Empathy. Gag reflex engaged!

I am sure I am not the only person who has become enamored with a virtual world that I wished I could visit and be a part of. Based on the number of LARPers in the world and the number of people who dressed up like Hobbits to go to see the Lord of the Rings movies at midnight on opening night, I know I am not alone.

Things only get to be a problem when you have trouble distinguishing fantasy from reality. In reality I am never going to be a Magical Girl. My pug isn’t going to make a contract with me that allows me to go out and fight witches. As cool as that is, it isn’t real.

I have a lot of things about myself that I don’t like, but I have a lot fewer of them than I did a decade ago because I wanted to change. I wanted to be a different person. I wanted to be the kind of person I liked, respected, and admired. Rather than hiding from those flaws I looked them square on and I worked to change them. There are still a lot of things about myself that I wish were better, but I keep working on them and I try every day to be better and over time it accumulates.

To quote a wise old wizard: “It doesn’t do to dwell on dreams and forget to live.”

The thing that strikes me about this episode is how innocent it is. Yes, you have the two female characters stripped of their agency and they exist to comfort Barclay and make him feel loved and accepted, but this is a far cry from a lot of the problems we are seeing today, specifically in the gaming industry.

You don’t see Barclay raping either Councilor Troi or Doctor Crusher. He doesn’t assume that because they are women and they speak to him that they are going to drop their panties for him. He seems mortified when Troi discovers his fantasy. This is a far cry from a lot of the behaviors we are seeing exhibited in the gaming industry.

Booby Trap

When you are touching the ship, you are touching me…

In fact, the closest thing I have seen to that kind of behavior was in the episode “Galaxy’s Child” when Geordi meets the woman who designed the ship. He, in the earlier episode “Booby Trap”, interacted with a hologram of her and he expected her to be far different than she actually was. His behavior in that episode was profoundly disturbing. He expects her to reciprocate his feelings even though he is a stranger to her. When she doesn’t he gets very angry with her. When she discovers the holodeck program he had of her, he tells her he was just trying to be nice to her with his voice dripping with contempt. He is angry with her for not being the perfect, compliant woman he made himself believe she was. Seriously, watch the clip.

I wrote earlier about characters being mismanaged, and sadly Geordi was one of those characters. LeVar Burton said he thought the writers didn’t know how to deal with black male sexuality so they didn’t really know what to do with Geordi. I can believe that. Between him creating a virtual female representation of the ship and the episode where he goes into a dead crew woman’s cabin, read her mail, and sit on her bed with her dog, there is very little the writers could do to make Geordi more creepy that would still fit into the nice, happy formula of Star Trek.

“Hollow Pursuits” wasn’t a perfect episode, but it went about as dark as it could while still feeling like a Star Trek episode. It brought the recurring character of Barclay that allowed the show to explore a character who wasn’t perfect but wasn’t a main part of the ensemble. I am glad that the show took pains to occasionally show us people who were not perfect who were struggling with their lives and careers rather than just giving us people who always know the answer and always do and say the right things.

Happy Valentine’s Day everyone!

Star Trek: The Next Generation Top Ten – Parallels

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

Brief synopsis of this episode is that Worf accidentally travels through a quantum singularity and starts hopping through parallel dimensions that get further and further away from his starting dimension.

Parallels

Multiple Worfs!

I know that Star Trek has done a lot of alternate reality episodes, so why pick this one over “Yesterday’s Enterprise” (which I will be speaking about later)? Honestly, I just like the story structure better.

In “Yesterday’s Enterprise” the writers hit you over the head with the fact that. “Hey! Look! Tasha Yar is alive. Holy crap! We’re not in Kansas anymore!!”

With “Parallels”, the distinction is far more subtle. The first thing that we see change was the flavor of the birthday cake. If you are watching for the first time a lot of these things don’t stand out until they start getting more disparate.

You also aren’t really sure what is going on for a little while. Is Worf going crazy? Is this some elaborate Romulan plot to take over the ship? It takes some time to suss out what is going on and I like the fact that the writers set up a trail of breadcrumbs that stand up on repeated viewings.

Another thing I want to address regarding this episode and “Yesterday’s Enterprise” is the use of two underutilized characters: Tasha Yar and Worf.

Tasha Yar

Are you fully functional?

Denise Crosby left the show in the first season because she didn’t like the direction they had her character going in and honestly, I can’t blame her. In “Encounter at Farpoint” we were promised this badass female security officer. She was being set up to be a similar character to Major Kira and Ensign Ro. So what do they do with her? This:

TNG had a real woman issue its first season. Denise Crosby quit and they fired Gates McFadden. Marinia Sirtis was on the verge of quitting but was talked out of it by panicked producers realizing that all of their female actresses were gone and that they needed to retain at least one piece of eye candy.

Michael Dorn stuck it out through the bad first few years of TNG. His character was poorly written and stereotypical. It was a thankless role that he stuck with for seven long years and I am pleased that they gave him something to do because he is honestly great in this role.

Early in the episode he asks Troi to be Alexander’s godmother, but the title is closer to step-sister in Klingon. Troi reminds him that would make her mother his step-mother. Dorn’s reaction to this is priceless.

Merry Man

I protest! I am NOT a merry man!

I think he was one of the most under-appreciated actors on the show. If you look at the terrible Star Trek: Insurrection the scene where Picard asks Worf if he knows Gilbert and Sullivan and he say, “No Captain, I have not had a chance to meet all the new crew members.” This is a terrible line. It is a terrible joke. I think it is extraordinarily difficult to say something that is supposed to be funny with a straight face and be able to sell it, especially when it is that terrible. In that scene with Patrick Stewart and Brent Spiner gleefully singing “A British Tar” the real stand-out in the scene is Worf’s horrified head shaking when ordered to join it. That is the only redeeming part of that whole movie.

It takes a special kind of balance to be able to be constantly cranky without being unlikeable and to work through the make-up. I think if they had given this episode to any of the other characters it would not have been nearly as interesting or well done.

Another thing I didn’t realized while watching the series from start to finish was that they didn’t instantiate the Worf-Troi relationship until this point in the series. It was about halfway through the last season. Why bother??

I know earlier they had Troi helping Worf with Alexander, but they didn’t formalize this relationship until now. It seems like a wasted effort, especially when they move Worf over to DS9 and hook him up with Dax right away. Everyone knew that Riker and Troi were going to be together, so this just seems superfluous.

Seeing how different the universe could be, especially the chilling Enterprise from the Borg-infested parallel dimension, was a nice touch. This let the writers do a sort of AMV Hell of “What-if?” episodes.

Was this the best or more important episode of Star Trek ever? Probably not. It is one that I look forward to seeing more than once, so it earns a spot in my top ten.

Star Trek: The Next Generation Top Ten – The Pegasus

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

“The Pegasus” was one of the episodes I saw when it was first on. It was one that I remember pretty well, which I think may be one reason this is on my top ten list.

The Pegasus

The Pegasus stuck in an asteroid

The general synopsis is that Commander Riker’s first commanding officer, Admiral Pressman (played by Terry O’Quinn from Lost), comes aboard the ship to retrieve wreckage from Riker’s first ship that was destroyed in action. We eventually discover that the ship was not in fact destroyed. The ship had an experimental cloaking device on board that was in violation of a Federation treaty (explaining why the Enterprise and the Federation does not have cloaking technology). The crew died while attempting a mutiny. Riker, who was on his first assignment, sided with the Captain and followed orders. This decision has haunted him throughout his career and is partially responsible for the man he is today.

“The Pegasus” taps into themes that will probably be beaten to death over the course of these posts: Authority and moral ambiguity.

I have a fascination with how people respond to authority. The Milgram Experiment demonstrated that people will do unspeakable things when directed to do so by an authority figure. I have a book on my bookshelf called “Ordinary Men” talking about people who were in the SS in Nazi Germany.

Riker was put into a situation where he was being asked to do something that went against his conscience. It didn’t occur to him at the time to disobey that order, but over the years it ate at him. Had he disobeyed the order he would have died along with everyone else. Because he did something morally repugnant he was in a position to bring it to light later. Had he not been there it is likely no one would have known what happened.

The episode also asks the question of whether we should act in good faith when the people we have made a truce with have no such intentions. This episode was from pre-Deep Space Nine where moral ambiguity was most fully explored in the “real” Star Trek (not that horrible JJ Abrams crap). Finding out that the Federation was breaking a treaty and trying to cover it up was some pretty heavy stuff for TNG.

I have gotten myself in trouble over the years by thumbing my nose at authority. When I was in college I worked for the school newspaper. My editor sent me out on a story that wasn’t real. I told her it wasn’t real and she told me to just make something up to take up the space she had allocated for it in the paper. I told her I would not because I found it to be unethical and I received a scathing email from her raking me over the coals for letting down the paper and for my unprofessional behavior. The newspaper teacher got involved and took her side because he wanted her to learn to trust her instincts. This is one of many reasons I didn’t go into journalism.

I have an almost pathological aversion to doing something I find to be morally wrong, even when I know I can tell myself that my view of the situation is overly extreme and it isn’t a matter of life and death. I know my family would have been far happier had I learned to swallow my pride and just do what I was told.

I know a lot of people claim to value honesty and integrity, but they really don’t. There is a lot of willful ignorance out there in the world and people do not like it when you break the illusion of their chosen reality. Me, I want to know what is going on, even if it is painful. I want to be able to work effectively with the way things are and not how I want them to be.

Pressman and Riker

There are two sides, light and dark…

If I had just made up a story, it isn’t like I would have been kicked out of school. I don’t think it would have earned me any brownie points with the editor and I don’t think it would have influenced my decision to walk away from journalism. I felt good because I stuck to what I thought was right, but I had to drop the class and it caused trouble for me later when I had to find something else to take in order to graduate.

This episode interests me because I know if I had been Riker I would have gone along with the mutiny. But then I would be dead. Twenty years later the tech would have been covered up and no one would have known the truth. It is difficult for me to acknowledge the fact that sometimes you have to go along with things you know are wrong because it is the best choice at the moment. You remember and you wait for the time when your actions can be effective rather than throwing your life away over a useless gesture.

I know that this wasn’t the intended moral of the story, but I did appreciate that this episode asked a hard question without making it a heavy-handed, cut and dry morally unambiguous story. Plus, in the cold open they had “Captain Picard Day” complete with Riker making the Picard doll intone: “Make it so”. Who could ask for anything more??

Top Ten Star Trek: The Next Generation Episodes

Since Netflix has made it possible to marathon lots of older TV series at my leisure, I have been meaning to watch Star Trek: The Next Generation.

When the show initially came on I was just starting grade school. The show was on at 10:30 on Saturday nights and I rarely got a chance to watch the show when it was on. I have a few memories of watching Tasha Yar get murdered by the tar pit and Q giving Data the chance to laugh for the first time.

Over the years I probably saw about two thirds of the episodes in syndication, but there were a lot of them that I have never seen, including “The Inner Light”, which I know is considered to be one of the best Star Trek episodes of all time.

Today I completed the series and I had someone mention the idea of putting out a blog post talking about my top ten favorite episodes.

I realized as I went through thinking about it that there was a common theme among my favorite episodes and that there were a lot of episodes that I thought were important, but were not among my favorites for whatever reason.

I figured out this was too large of an undertaking for me to do in one blog post, so I am doing one post about each of my favorite episodes and I will also do one for each of the episodes I didn’t include among my favorites that I would like to talk about anyway.

My top ten won’t be in any particular order. I have some that are in my top ten and some that are in my top three and I don’t really want to spend too much time figuring out the specific order.

I will link back to this post when I put up a new episode “review”.

Enjoy!

Portfolio App

About a year ago I wrote a wine journaling app. I was applying for a scholarship to WWDC and I hadn’t been developing for iOS for very long. I had two weeks to design and debug an app to submit to them.

I was able to accomplish this, but there were a lot of things I really wanted to go back and fix. The UI was very clunky. I didn’t have the persisted data organized very well. I didn’t have the navigation set up to work well with the user. I didn’t use Storyboards or Auto Layout. It was designed before iOS 7 came out. I made it iPad only, not thinking that you need two hands to hold and type on the app and you have no hands to hold your wine. I also had it where the user had to type in every single thing that went into the persisted data.

I have sort of been using that project as a make-shift portfolio project. I took six months out of my life to try and learn Core Audio and at the end of that time I was too burned out on it to make an app that uses it.

I still have this idea of what I want the app to be. I want to include a map where you can see all of the places your wine came from and all the places you have had wine. I want to find a way for the user to have to type in as little information as possible. I want to simplify the navigation. I want to use more modern ways of displaying my data. I would like the design to be clean and pleasant. I want to add the layers and animations that are recommended for the current UI standards.

I will be spending the next month working on this app. I know I could spend forever working on this app, so I am giving myself an informal deadline of having a preliminary build done before I give my talk at CocoaConf.

I plan to implement Core Data, networking with a wine API, and create a clean, well-designed project, both internally and externally. I would like to spend a week creating the Core Data and the data modeling.

Then I would like to spend a week doing NSURLSession and setting up the networking to query the API for the data I would like to persist, such as the type of grape, region, winery, year, etc… This part might get derailed if the API I am trying to use does not work. I have a contingency plan in place. If all else fails I can create a few lists of grape types and wine regions. I can take steps to limit the amount of typing my user will need to use.

After I get all of this in place I am planning to implement the user interface. I either want to use tab bar navigation or have a side menu that floats over the top of the main view. I don’t know how difficult that will be to implement, so I might go back and refactor it if it presents a problem.

Along with the UI I would like to display the wines in a collection view. I would like to give the user the option of seeing all of their wines or filtering based on tasting groups. In the previous version of the app every wine was part of a tasting. I would like to make this an optional parameter in the data structure.

I would also like to implement a map view that would allow the user to go back and forth seeing where their wines have come from and where they have tasted wine.

I feel I have a better grasp of how Objective-C and the iOS development environment works than I did last year. If I didn’t that would be a huge problem! I feel more confident about creating a well-designed app than I did before.

It is important for me to get something done and out there in the world. I have very specific ideas about how this should be done and I know if I don’t actually do it then I don’t have any credibility.

I have a deadline and I have a specific list of frameworks I plan to use. I will catalog my progress on this app and I will provide detailed technical explanations of any technology that I use that I have had to learn or figure out along with a list of resources I used to figure them out.

I will also continue work on the demos for my talks and on polishing my presentations. The next month is going to be interesting. Allons-y!

New Directions

I have several things going on over the next month. In about two weeks I have my very first tech talk at Snow*Mobile. Two weeks after that I am giving my first hard-core tech talk at CocoaConf in Chicago.

I still, at this point, do not have an app out on the store. I find this personally embarrassing. I have had some issues over the last few months that have interfered with my ability to focus on my work. I tend to get into a rut where I want to learn about something and once I know about it I tend to want to move on to something else. I need to produce something.

I am going to try and create an app that is ready to be deployed to the App Store in the next month. Over the next month I am also going to try and write about what I am doing every single day.

I would like to write a book on how to create an iOS app utilizing an API. I want this to be along the lines of “Learning Core Data” by Tim Roadley. That book not only talks about Core Data, it also talks about how to populate the UI with the data you are persisting in the data model.

I would like my prospective book to talk about HTTP, NSURLSession, and REST on the networking end of things. I would like to speak about Core Data and data modeling along with aspects of UI.

So part of the purpose of the blog for the time being is to talk about the progress I am making on my app while seeing if I can take the pieces I am working with and explaining them in a useful manner to someone who might be looking for a resource. I also want to see if I can actually write every single day on a focused topic.

Later today I will publish a post detailing my plans for the next few weeks. I will include detailed information about the app I am working on and how I intend to implement it. As time goes on I will write posts about how to utilize the various technologies I am implementing and the resources I used.

I can’t change yesterday. Tomorrow hasn’t happened yet. All I can worry about is what I do now. Now is the most important time because it will never come again.

Tech Talks Prep

I have been very fortunate to have two tech talks accepted for the beginning of this year: Snow*Mobile 2014 and CocoaConf Chicago.

Snow*Mobile was the first programming conference I ever attended. I was able to attend by being a student volunteer. My job was to hand out the name badges to the attendees. Having that job made a huge difference to me because I got to meet everyone who came and since I was working with the conference I had some built-in recognition from the conference goers.

The talk I am doing for Snow*Mobile is about sound design and user experience in mobile applications. The talk I am doing for CocoaConf is on AV Foundation audio.

If someone told me that I would be speaking at the next Snow*Mobile after I attended the first one I would have laughed at them. I didn’t think it was possible that I would be able to be a conference speaker at this point in my career.

I know that I am being given this opportunity by the Remsiks and the Kleins. At CocoaConf especially they tend to only invite experts and people who have written books.

I am putting a great deal of pressure on myself to not let down people who are giving me opportunities.

Snow*Mobile is a month from now and CocoaConf is two weeks after that.

I am juggling a lot of things right now. I have been at my job for a month and I love my job. However, due to the nature of the beast, I do not have a lot of free time or mental energy to take on new tasks.

I decided to dedicate this whole weekend to getting some portion of these talks done. I do not intent to leave them until the last minute. I want to give myself some time where I can change course if something I am doing is not working.

So far this weekend I have completely rethought both of my talks. I realized that the UX talk was misguided because I was thinking of it from the perspective of film. I realized all of my examples were from things that are vastly different than what I as a user am looking for in an app.

I feel better about this talk now that I have a better grasp on what I would like to say that would be useful to people attending the conference.

I had a similar revelation with my CocoaConf talk. I started getting overwhelmed by the amount of information I felt I needed to present. While I was doing research I found a focal point for my talk. I know that I can speak reasonably about the amount of information I am going to present and I will be able to give a solid, yet entertaining talk on my topic.

I am also lucky in that I have access to people who know more than I do who are willing to help me and answer my questions.

I think at this point I have maxed out the number of things I can effectively manage without dropping anything. I am gambling somewhat because I am counting on nothing disastrous happening to me in the next month and a half. This is one reason I am trying to knock these things out now on the off chance that something unforeseen happens.