Todd Grooms avatar

Jesus, Man, Can you Change the Station?

A scene from The Big Lebowski where Jeff Bridges is in the back of a cab, holding his head, asking the driver to change the music.

I’ve had a… had a rough night, and I hate the fucking Eagles, man.

Don’t you just hate it when you’re fast asleep and something wakes you up? It’s irritating. I also have a problem: I have a difficult time falling back to sleep once I’ve been awakened. Do you know what makes it particularly troublesome? When it’s after midnight and you feel like you’re at a god damn Eagles concert because your next door neighbor (separated by 6-8 feet) is listening to Take It Easy at maximum volume. And not just “10 - Max Volume”. We’re talking about, full-blown, Spinal Tap, “These go to eleven” maximum volume.

Irritated yet? Have no fear. I hear the starting notes to Witchy Woman, but he hits the skip button to get to Lyin' Eyes. I’m miserable. The next song I remember hearing is Desperado, followed by Tequila Sunrise. After this, he either turns off the stereo or I black out from either anger or sleep deprivation; I’m not sure which.

I spent my Saturday exhausted. I realize what you’re probably saying: “You’re in bed before midnight on a Friday night? Are you an old person?” Not really. Sure, I turn 28 in a few weeks, but I don’t consider that to be too old. The issue is that I enjoy getting up early and contributing to society (even on weekends). In addition to that, Saturday was a pretty special day as it was our baby shower. Thankfully, my wife was unperturbed and did not wake through Their Greatest Hits 1971-1975. I enjoyed the party, but it was difficult to focus. Fortunately for me, my neighbor rarely has back-to-back performances.

You might be asking why I didn’t knock on his door or why I wouldn’t just call him on the phone and ask him to turn it down (I do have his number, after all). Over a year ago, while he was practicing his drums at 11PM on a Wednesday night, I called the police to come give him a warning. I didn’t file anything official. I simply asked that they stop by, warn him, and be on their way. My wife had just had shoulder surgery, was pretty miserable, and just wanted to sleep. To the police officers' credit, they did just that. When they arrived, the music was so loud (he also listens to music while he practices), they had to go around to the side of the house and yell through his open window for him to come to the front door as he could not hear their knocking over the music/drumming. After that, I felt pretty bad. I didn’t even attempt to contact him before contacting the police. But it’s not like I asked for a citation. Just a warning. After that incident, he gave me his phone number. My wife and I also decided that, as long as he’s putting on his concerts before 10:30PM on weeknights or performing during the weekends, we wouldn’t bother asking him to turn it down.

For some odd reason, I tend to project my thoughts and emotions onto others without fully understanding how they actually feel or knowing what they are thinking. And, for whatever reason, I project onto my neighbor that listening to his music or playing drums is something that he genuinely enjoys doing in life. Something that gets him through the day. He has a physical labor job (unlike me, who sits at a computer all day and listens to all the music he damn well pleases), which is something with which I can’t empathize. This sparked a thought in my mind: What am I working for? What am I doing in my free time that enables me to push forward through a difficult day at the office because I know that something fun awaits me?

I'm Kind of a Big Deal

A screenshot from Anchorman: The Legend of Ron Burgundy during the opening party at Ron’s apartment

I’m very important. I have many leather-bound books and my apartment smells of rich mahogany.

Saturday was kind of a special day (as far as software development goes). I opened a pull request for Shenzhen. Shenzhen is a gem for building .ipa files from iOS projects (it even has support for distributing files to TestFlight, HockeyApp, FTP, and S3). While testing the gem, I noticed a few problems with building schemes in workspaces. I cloned the project to my local machine, played around with the source, until I fixed the issue. It was a small fix, but I had a few concerns.

Lizard Brain

I’m a very novice Ruby developer and I feared I was making an ass out of myself. I thought that my change might be considered hackie. Perhaps I was not conforming to Ruby standards. I’ve written Ruby code in the past, but I rarely let it see the light of day. There are always other, more preferred ways of an implementation (Ruby has methods for everything) and I’m always concerned that I’m doing something wrong or embarrassingly wrong.

I’m also pretty green when it comes to Github. Up until this point, I’ve only had a few pull requests accepted from Martin M on his Maven CXX Plugin (mainly changes to keep the plugin updated to building iOS projects). I’ve worked with Martin. He’s incredibly gifted and he was incredibly kind to accept my pull requests (especially since I know I did them poorly; Sorry Martin).

On top of that, the author of the project is mattt. Yes, that Mattt. Mattt with 3 T’s Mattt. NSHipster Mattt. (Side Note: I’m loving the NSHipster: Obscure Topics in Cocoa & Objective-C book.) With such an extremely knowledgable and talented developer, it felt daunting to be offering a change to his codebase.

Saturday morning, I decided it was time to stop being scared. I needed to learn how to do this properly. The best way to learn: By doing.

I Have the Power!!!

First, I found this awesome walkthrough on forking, working, and opening a pull request on Github: How to GitHub: Fork, Branch, Track, Squash and Pull Request. After about an hour of work, I had successfully opened a pull request. I was thrilled. However, my excitement was tempered a bit. I have heard many stories of pull request purgatory where the author never accepts pull requests and open ones just sit there for all eternity. So I was excited, but I realized that just opening a pull request was half the battle. I had done all I could do: Make the changes, document everything thoroughly in the commit log, open the pull request, and re-emphasize the changes I had made (and why) in the pull request description. Luckily, later that day, I received a Github notification: mattt had accepted my pull request. I was ecstatic. As I read through the full message, I noticed that he cherry picked my changes to avoid the addition to the .gitignore of ignoring BBEdit files (not a big deal, I probably should not have checked that change in anyway; Force of habit really).

I Learned Something Today

I think the moral of my story is this: Just do it (Nike™). In all seriousness though, my biggest enemy is always that nagging voice in my head, telling me that I shouldn’t bother. Or that I’ll fail. Or that people will regard my contribution as meaningless to the project. Or that I’m doing it wrong. I’m constantly fighting this. But as I do more, I’m slowly quieting that voice. I’m not sure if I’ll contribute more to open source projects on Github, but now that I have this under my belt, I’m going to feel more confident the next time the urge strikes me.