Coding, Random

Da Git Dip Song (For Nerds)

This song was inspired by a Tweet I saw from Michael Hansen (@modality). He tweeted the first two lines and I decided to, well, finish off some of the song. It goes great with “Da Dip” by Freak Nasty playing in the background.

I PUSH MY CODE UP TO UR GIT,
WHEN I SHIP U SHIP WE SHIP!
You push yours and I push mine
We can pull it down.
And commit it ’round.

Get on the branch like I said before
Y’all remember that log
Just put a little -m with it
Now put those edits with it
Pull it, push it, can’t control it?
Just reset it.

Merging ain’t fun so take a chance
Just get on the master branch and
Do the rebase dance
I know you hate it
But don’t try to grep it
Just check the status
And try to fetch it.

Move that base around, let me
Show it from the status
Yeah, I init it like that
Comon’ add .
Roll those commits
Drop down double up
On those diffs
Freak Nasty wanna see
Can ya’ll do this?
Comon’ clone me.

Standard
Coding

Winning 1st Place at the Coca-Cola/Spotify Hackathon!

This invite-only hackathon was put on by Coca-Cola and Spotify. In the previous weeks, our team, London Calling, had received very little information on what brand we would be working with. One clue: the brand is global, operating in 206 countries, with 1.7 billion consumers served, daily. I decided to Google that line, since it sounded like something a brand would use in its marketing materials.

My query resulted with articles about Coca-Cola, but the most telling find was this one. The stakes were raised. We started researching their current initiatives and brand positioning to get a feel for what they are up to. No surprise: stuff about music.

Fast forward to Saturday, April 14. We arrived at 9:30 a.m. It was a nice morning, and I was prepared to put my wrists and back through hackathon hell.

Breakfast? Check. Nice chairs? Check. Lots of branding stuff? Check. Coca-Cola? Check. Beer? That came too. Heck, we even had a masseuse come in to smack our backs like keyboards.

Coke took us through the brief again. And then they took us on a brand immersion course, which included a well-done and informative video. Spotify gave us API information. Facebook followed suit, and provided info on their API authentication process (guidance is pretty much required, since their documentation online is like walking through the 7th circle of hackathon hell).

Briefing was over by about 11:30 a.m., and we immediately started talking about the product. At 1:00 p.m., we spoke to a rep from Coke and bounced a few of our ideas off of him. He confirmed a few things for us, and we steered ourselves back to the brief, and stuck to it for the rest of the weekend. Now comes my favorite part:

1:30 p.m. Begin product spec document and continued brainstorming with Jeff and David.

2:00 p.m. Erase product document and start over.

2:30 p.m. Wireframing.

3:00 p.m. More notes. Starting to get nervous and anxious because I need to be coding something.

3:30 p.m. No more product talk, just start designing and developing.

4:00 p.m. It was mentioned that it would be cool if you could get a street view of the moon with Google Maps. Toby: “Yeah, it would show you a green alien in full stride, running away from the camera.” Me: “With its face blurred out.”

4:15 p.m. F-bombs are being dropped, and I can’t remember why.

Dinner happened somewhere in here. We keep coding through the evening. The features weren’t coming as quickly as we hoped they would, but it was starting to look good. Around this time, we commented that “it’s likely that we’ll have the best looking app at the hackathon – thanks David!

Tiredness really starts to kick in around 12 straight hours of working. So, basically from 11:00 p.m. on into Sunday, it’s an upward battle — a battle of which one fights with exorbitant amounts of caffeine, sugar, stand-up breaks, and pushups (if you’re Aaron).

Once you get into any time after 2 a.m., delirium comes in waves, until it floods over you. Brain output dissipates into nonexistence. If you’re doing front-end, you see the physical world in terms of <div>s and <class>es. If you’re doing back-end, it’s all variables, objects and arrays.

Sunday

4:00 a.m. Apparently Toby writes a MongoDB driver.

4:15 a.m. “Flags. I love flags.” -Me

4:20 a.m. “Mr. text-box-man, how is your text box coming?” -Me

4:28 a.m. “mur mur mur mur mur mur mur” -David

4:30 a.m.: var sleep = “I wish I was sleeping.”;

document.write(sleep);

5:00 a.m. Our troops are starting to disperse, traveling home to the warmth of their mattresses. Three have gone, and it is Pinzler, Toby and I remaining.

6:00 a.m. Toby heads home.

6:30 a.m. I go to sleep on a couch in the venue’s lounge area.

7:00 a.m. Pinzler joins me.

9:30 a.m. ‘HELLO WORLD!’ I AM WIDE AWAKE.

9:31 a.m. No I’m not. I’m still tired.

9:32 a.m. I stumble out into the main area. Aaron and Pinzler are sitting there working. It will take me an hour to get my shit together to be useful again.

10:00 a.m. David rolls in.

10:05 a.m. I call Toby. The conversation we had was intensely creative:

Me: “Hey Toby.”

Toby: Hi.

Me: So (hitting keys on my keyboard, click click click).

Toby: …

Me: What’s up? How was your sleep?

Toby: I got a solid two and a half.

Alex: Nice. I slept here… 2.5 for me, too.

* silence *

Alex: When are you coming?

Toby: I’ll be there soon.

Alex: Cool. Cya.

Toby: Cya.

(This conversation occurred over a 3 minute period.)

10:30 a.m. Toby rolls in.

10:50, or-something-like-that-a.m.: Jeff arrives.

What ensued was a feverish storm of typing. Hacking was set to end at 3, and our app still didn’t play music. No problem; it’s just a Spotify application, it doesn’t need to play music.

1:00 p.m. My brain actually returns to about 85-90% of its normal operational output.

Features are coming together. One problem: one of the core functionalities of our app isn’t working, and as it turns out, it never did. We couldn’t finish everything.

The last hour of a hackathon seems to be the most productive. Features are forced through, and not even a missing semi-colon will stop them. OK, a missing semi-colon will stop them, but let’s just pretend it doesn’t.

3:00 p.m. Time is up, and people start presenting. We are picked to present third. I’m tired. We keep hacking some of the final additions until the last minute before we head up there.

I think around 4:00 p.m., we’re on stage, and Jeff rolls out his story. Unfortunately, some of the features we promised Jeff weren’t working, so we kinda threw him under the bus for his presentation. Luckily for him, it wasn’t a school bus.

But, he maintained confidence and handled it really well. We finished and were asked a lot of questions – this was a good thing. Three groups went after us, and then the judging began. 30 minutes to an hour later, the announcement came:

“We will be working with… London Calling.”

It took a second to register, and then shortly after, WOW.  We go up and shake hands with all the king’s good men and women, share some high fives, and then head to the keg.

We celebrated with more drinking. And on Monday, I was back at work as a Creative Strategist at the agency, even though I felt like a super hero.

Check out the video that Coke created below:

Standard
Coding, Hackathon

Winning 2nd Prize (Place?) at Music Apps Hack Weekend!

This past weekend, Spotify and a few other brands put on an amazing hackathon at SPiN NY. Yes, there was ping pong, and in fact, there was a ping pong tournament. Other things that were there: lots of Mountain Dew, lots of alcohol, lots of Doritos and lots of McDonald’s. All four of those items helped everyone get through the weekend, and they were there due to the epic sponsorship of the whole event.

The event kicked off on Friday night with a live performance from “Blood Orange,” which turned out to be really awesome. I showed up the next day around 9 a.m. for the breakfast, which was provided by McDonald’s. McDonald’s did a good thing and gave all of the leftovers to a shelter.

As I was sitting down reading about the Spotify API and trying to figure it out, a guy sat down next to me. He started talking with a friend of mine — and my friend told the mysterious gentleman that I could use some help (it was true). Spotify’s API was all JavaScript, and I’m not as familiar with OOP JavaScript as I wish I was. Thus, I was introduced to Toby at about 11:30 a.m., and we started working together at about 12:00 p.m. (late start).

We were setting out to build the Spotify Apps game. The idea initially came from my girlfriend, Tal. She told me about Apples to Apples, the boardgame, and we discussed tweaking it so that it was a music game. I thought it was a pretty good idea. And we worked out a few of the game mechanics on Friday night. As such, the core concepts of the game were known by Saturday. However, before I met Toby, I was considering working on something else that was a bit easier, I must admit.

But I did meet Toby, and we started hustling — setting up a GitHub repository and planning out the project in a Google Doc. At around 2 or 3 p.m., Tal showed up. She lent a hand on the user experience and game flow. She also began to design some of the core elements. We had a functional, working name by about 4 p.m., but none of us were completely sold on it: “Songville with Friends.” It was more of a joke in the beginning, and it was one that we thought would help us earn a laugh or two from the crowd. However, after an evening brainstorm, we ended up changing our name to SongJitsu. At that point, we had a good handle on the branding: Ninjas. And that branding is awesome. 

Tal began to redesign the pages in accordance with the many game states (complicated? check.). Meanwhile, as the designs came in, I was coding them on the frontend. Toby was working on the backend, building it out in Ruby. I had some experience with Ruby in the past, but I didn’t think I was going to be much help to him, so I kind of stuck myself on the frontend coding (there were 570 lines in styles.css). I did a quick count on some of our code, and we have over 1,500 lines (that doesn’t count rewrites, haha… ha… CRY).

We kept kicking ass throughout the night, and were, overall, very impressed with the event. Around 9 p.m. on Saturday they held a ping pong tournament, but before playing, there was a demo from two pros. They were AMAZING. And one of them even stripped down to his spandex underwear.

Around 9:30 p.m. or so, Doritos came by and informed us that we had won the services of a Doritos intern from the hours of 10 p.m. to 9 a.m. on Sunday. Additionally, we had $375 to spend on anything we wanted, except for booze and drugs, and we could send the intern to do anything for us. Wise as we are, we sent the intern to go find us ninja costumes for our presentation. Nothing was open, so she fashioned us some red bandanas, which we ended up losing anyway. Either way, it was a really neat idea that Doritos came up with, and it kept things interesting.

Code. Code. Code. Somewhere between 3 and 5 a.m., McDonald’s ordered pizza for everyone. This was humorous. It was greatly appreciated, slightly confusing, and unsurprisingly, it wasn’t Domino’s. Instead? Fat Sal’s.

Code. Code. Code. 5 a.m. Things were coming together. The app had an interface, Tal was telling me to move pixels, I told her to go to sleep (she did and I changed the pixels anyway).

“Code.” “Code.” “Code.” It’s 7.am now. Tal is sleeping, but about to be woken up. Toby and I aren’t writing our greatest code anymore. Sometimes I just stared at the screen. We ask each other questions and sometimes there is no answer.

7:30 a.m. I wake Tal up.

“Let’s all take a moment to examine the horrific posture in this room.” — Toby at 7:35 a.m. I try to sit up.

9 a.m. now, and I’ve hit the 24-hour mark. We have 1.5 hours left till the defined “stop coding” time. We still have a lot of things to work out, specifically, connecting to the Spotify API and getting the player working in our app.

10:30 a.m. Still coding. They blow a whistle or something, and everyone pretends they didn’t hear it. We still haven’t gotten the player working.

10:45 a.m. The player works! I finalize a JS/jQuery function that runs when a player wins. The function name: win_and_slide();

12:00 p.m. We’re actually done. The app works for the demo. I’m tired. Toby is tired. Tal is tired. The whole room is tired, and people are getting set up to present.

We’re on deck at some random time. Between 12:00 p.m. and 3:00 p.m. I didn’t have a watch on and forgot about my phone. I start thinking of everything in terms of an #id or .class.

We get on stage, present, and things go well. Then we wait. The judges go to vote and prize-giving ensues. Some people win DVDs and Mountain Dew skateboard decks. They announce that the $5,000 prize goes to: “SONGJITSU.” Tal starts screaming and jumping up and down. In my head, I call the function win_and_slide();. Toby is stoked — big group hug, lots of smiles. All of that teamwork paid off.

We collect the oversized check and take photos with it, and we admit that we will probably be eating Doritos for the rest of our life.

After the event, I head to go grab some food with Tal at a diner. I fall asleep at the table and am virtually sleeping while walking. It was around 5 or 6 p.m. by then and I’m pushing being up for 32 straight hours. We get back to Tal’s place and I fall asleep in about 30 seconds.

I woke up today at 8:30 a.m. and got ready for work.

Standard