The death (and rise) of a rabbit

During the summer months of 2008, I was privileged enough to be able to work on a social music application that I believe could change the market.

introduction:

Before we get ahead of ourselves, let me start out by giving you a bit of back story:

A big part of the junior year in my college consists of internships; during a total of 20 weeks, students get to experience how the “real business world” is like.

The first ten weeks are usually spent in a company, where students work as interns and fulfill all kinds of different tasks: from the dreaded setting of coffee, to the building of rich media encoding conduits, I have done it all during my seventeen weeks at XOLO.TV.

Normally, students would spend ten weeks at one company, then get a few weeks of (needed?) rest and continue with another project, this one much more specialized and custom-developed with their specific skill set in mind.

To me, my internship mattered. It still does and in fact, when faced with the decision of taking a three week holiday or starting my first (ever) internship early, I decided that the more quality-time I could get in, the better and as things progressed, I started to feel at home at my internship’s company.

Ten weeks quickly turned into seventeen and I progressed as both a human being and a media professional.

down the rabbit hole

During the final weeks at XOLO.TV, I started looking for my second internship; I was a bit late to be looking (again), to be honest, but since I had an option to go to San Francisco and work with a former client of mine as well as being, most probably, able to join a venerable New York, US based video hosting / sharing company, I felt that I was on the safe side and for what it is worth, I said to myself that one last look could not hurt.

I started talking to an online contact of mine, Pak-Kei, currently the head-designer at Trillian (a multi-IM chat application) and we started toying around with ideas.

We both shared a deep love for music as well as innovative products and moreover, we wanted to incorporate the social factor into our project, too.

After discussing the project for nights on end, I made a decision that I cannot, that I will not regret: I would go for it.

My friends, colleagues, contacts were opposed to it, asking me why I would go for something risky when I had a perfectly safe company I could work for?

The reason for me was simple: I was looking for a challenge, something I could chew on, something that would make me expand my horizon in ways I was not able to do so before.

Pak-Kei and me kept talking, discussing, fantasizing and dreaming about the project and, finally, we decided to name it Rabbit.dj - a name that is / was easy to remember yet refreshing and still makes sense once you understand the underlying cause of the site. We were happy with it.

Hey Mr. DJ, put a record on

Before we go on, let me explain what our project is all about, by telling you a little story:

Picture yourself in a situation where you are tasked to provide a musical selection for a party with approximately forty to fifty people; the age-range is eighteen to thirty one, their respective musical preferences cover an average of, at least, ten different genres.

How would you come up with the right songs in a feasible manner?

Let me be frank here: unless you know all the people who are attending inside-out and know, perfectly well, what they listen too, you will not be able to come up with a playlist.

But we could. And not only are we able to come up with a playlist that was approved by 90% whopping percent of our test panel (of ten people), we also are able to do it in a timely fashion and, therefore, basically, provide you with a one-stop solution to a problem you did not have before.

The Secret Sauce

Due to the fact that I still believe in this idea, I cannot go into too many specifics as to how this playlist is generated, but I can provide you with the following:

Rabbit.dj is a social music tool that helps you get parties started by examining your, existing, social relationships from a number of social networks (SN) and then providing you with a selection of music that, in theory, would appeal to the attending audience.

The process was designed to be as straight forward as it could be, therefore keeping the need for user interaction to a bare minimum.

The whole process could be finished in, basically, three steps (provided that you were logged into the site already):

During the first step, a user would select the amount of people in attendance (with a maximum of forty, for free accounts) and the kind of party (dance, homecoming, date, etc.) the playlist would be used at.

The second step, then, presented the user with the selection screens for a number of social networks. Phase One of the project included support for Last.fm as well as Facebook.

Phase Two expansions, initially planned for November 2008 (at the latest), would add support for IMEEM, MySpace and The Hype Machine.

Phase Three, with no planned release date, would add international social networks, such as the Dutch Hyves, the German StudiVZ, the French Bahu as well as the Belgian Netlog and, finally, the Japanse mixi.

Prior to having users select all the invited people from the respective social networks, Rabbit.dj would provide a notice, stating that all the information we gathered was in accordance with the regulations of the site we scraped it from, thereby, hopefully, putting the user at ease.

After a selection was made, Rabbit.dj would start to process the information, employing some low-level logic to strip out items that did not make sense, spell checking items that made sense but would not provide a correct entry in our library and, finally, offer users an option to enter up to ten bands that they wanted to have in the playlist at any cost as well as offering a possibility to manually strip out bands that Rabbit.dj had marked for processing.

Next up, the user would confirm his selection and be taken to step three, which mostly happens behind the scenes:

Backstage access

The first part of step three consisted of querying Last.fm and, if need be, MusicBrainz, for information on the artists the application gathered during step two.

The information was used to select the top three songs for any given artist and put them in a list that would be queried during the next step.

We also queried the user’s country top-list and made a note of the current hot song.

Rabbit.dj then, would start scouring a number of video hosting sites (YouTube at first, more were planned for the future), trying to find media that linked up with the artist / song combination gathered previously and, if a hit was returned, again would apply some logic to weed out the tops from the flops.

Every time this process completed successfully, Rabbit.dj would have one song marked down, added to a second list and erased from the first one, then restarting the whole process, until every song from the first list was queried successfully and moved to the second list.

For your information: although this process sounds very lengthy, a simple, single-core server with only a gigabyte of RAM, is actually able to carry out about ten to fifteen of these queries in a second; the biggest speed bump being the network latency.

Finally, after the second list was populated, the user would receive a confirmation on screen, inviting them to check out their freshly generated playlist as well as offering them an option, depending on the type of account they use, to export the information:

Free users would be able to export playlists as a plain text file or generated a YouTube stream that would automagically query all the clips from the playlist, disable the video, only serving the audio stream in a custom-built player.

Premium users, in addition to the above mentioned options, would also be able to export the playlist as an XSPF, M3U or PLS playlist file, get reminders of the playlist URL via SMS or share the URL with a more widespread public via Twitter, Pownce or Facebook Events, provided that they selected the playlist to be public in the first place.

Premium user playlists would also be stored on the service indefinitely, contain a virtually ad-free player that could also be run standalone from the site and would have access to more features like rating the playlist, reviewing its quality and the likes.

Money, Money, Money

Any web start-up without a solid idea of generating money is doomed to fail, especially in a weakened economy like the one we are dealing with now and for that reason, Rabbit.dj was built with a number of monetization strategies in mind:

Free users are, as always, the user group who gets to feel the full force of our “need for money”: their player applications would be filled with contextual ads, provided by both Google’s AdSense technology as well as Yahoo!’s Publisher Network.

What’s more: any playlist they generated, would include anywhere between three to six short (ten to thirty seconds) commercials that are also selected based on their context as well as two branding messages from Rabbit.dj, one at the beginning of the playlist, one at the end.

Premium users, on the other hand, would get ad-free players as well as virtually ad-free music streams, only including one high-profile advertisement during the latter part of the playlist.

The technology used to employ ads throughout streams takes a number of variables into account, the biggest of them being: user attention.

For premium users, this means that the ad would be played during a time when most people at a party would either be wasted already or strongly on their road to being wasted.

For free users, in order to keep annoyance levels to a minimum, the time between two ads, would be at least thirty minutes.

Project Management 101

Now, for the juicy part, let us examine the way this project was carried out:

Back in April, the idea was formulated and discussed, a number of brainstorming sessions occurred and ideas were jotted down. Come May 2008, the amount of information exceeded a manageable level and I set-up a project management site, based on ProjectPier, an OSS version of Basecamp.

I started to fill the application with our data, outlining a number of ideas, tasks and the likes, Pak-Kei went through it, amended documents as he saw fit and we both collaborated to the business plan, all the while putting the idea first, contractual securities last.

Then came the time to sell the idea to my college’s mentor and sell it I did: I outlined my idea and fired off an email, loaded with a huge portion of enthusiasm. The result? I got a thumbs-up, met with my mentor again, to get some last-minute feedback (and socialize) and come June 3rd, I boarded a plane that would take me to the City That Never Sleeps ™, so I could meet up with Pak-Kei and work on Rabbit.dj on location.

After fighting off some minor exhaustion (no jetlag though), we re-started our brainstorming sessions, putting down a plan on how to tackle the upcoming weeks:

Tuesdays would be our designated meeting days, but more meetings could be held if the need arose; the weekend would be used to scout new bands and band managers, information that would be used once Rabbit.dj was launched; think: we help you help us.

New York, Brooklyn, the excitement of working on a (supposedly) large-scale web application / mash-up kept me from stopping for just a single moment and thinking about the need for a contract.

A great number of start-ups in the US failed, because they went through their (financial) assets too fast and burned out before they even managed to get to the starting line and so Pak-Kei and me had decided that we would not incorporate Rabbit.dj until the point where the product was worthy of a launch.

To be precise, money was one of two reasons why we did not incorporate early on; being able to keep the whole project as stealthy as possible was the other one.

Death and all his friends

Again, without a company, we did not see a need to set-up any contracts and so we just keep working … until, well, until it happened.

Now, most people will not know what it really is and to date, I have not talked about it much, mostly because I felt that it was not up to me to spread the news about this incident, but after struggling with my college and future, I came to the decisions that I would rather talk about it and save my own hide, than take one for a team I do not believe in, anymore.

Pak-Kei had two pet turtles, one of them died in February 2008, the other died in June 2008, three weeks after I arrived.

To the best of my knowledge, I can say that I have nothing to do with said death. I did nothing to prevent it but I also did not facilitate it in any way.

The death of the turtle followed an earlier incident, where Pak-Kei and me had a verbal alteration in public, the topic of it being if we should or should not create a volume control in the player’s application interface.

The communication between Pak-Kei and me came to a slow drag after said incident, but we picked it up again, two nights later and continued as per our project management schedule.

That is, I thought that we did; the truth is: I did. Leo (Pak-Kei’s nickname), did not continue his work, nor would he continue it at a later stage.

When the turtle incident happened, Leo seemed to be affected by it so hard, one would think that half his (human) family had died, not just a pet that he, seemingly, cared little about, the days prior to its death.

The weeks after the death, Leo was little more than a walking, hypersensitive corpse; he would neither talk to the other roommate nor me, nor would he respond to instant messages.

The use of email and / or text messages resulted in him shooting back a short, unrelated reply, telling us to stay the F away and leave him be.

To be honest, while I felt for Leo’s loss, I found it ridiculous that he used the passing-away as an argument to not work on anything for Rabbit.dj anymore and I confronted him about it a number of times.

I have the ability to separate business from pleasure on a level that he did not, he would project his fear, anger, distrust, paranoia and hate on me, even when I wanted to talk about Rabbit.dj and nothing else.

Thinking that he would eventually come around, I continued my work on additional Rabbit.dj features, such as the member system as well as search-engine optimized profiles and playlists.

When August came, Becca (another roommate) and Pak-Kei had a talk; social tension inside the apartment had gotten to a point where Pak-Kei and me had not talked to each other for at least two weeks and it did not look like that would change any time soon.

Becca facilitated a discussion where she brought up the point of Pak-Kei and me not talking to each other and once the talk was finished, something incredible happened:

During an hour long talk, Leo offered his apologies to me, explained why he did not continue any of his work lately, discussed how far I had come with the project and, also, made a number of promises.

Psychologically speaking, I was in a defensive mode as far as the project was concerned; I would not let it die just yet, for I had invested time and money into it.

Leo hit a sweet spot that made me gullible enough to believe his empty promises and continue working on the project and once again, no contracts were signed.

Yes, in a business setting, contracts are the one thing a company lives or dies by, but in a setting where two people, friends (?), work with each other, honor and a word of promise should have worked too.

Cold War redux

Truth be told, it did not: when I boarded the plane, back to Europe, I left with mixed feelings: would Leo hold up his end of the deal or not?

After numerous emails, text messages, instant messages, the answer to that question is: he did not and what’s more: he also scuttled the server with the Rabbit.dj project files and most of our ideas.

I felt betrayed and cheated on, but I did not hate him. To this day, I do not think that he is worth any emotional response, positive or negative, from me.

On the bright side: I started working on the project again, this time with someone I trust and someone I have worked with before. Someone who is as motivated as I am, to keep building at it until we have reached a point where we are content enough with it to share it with others.

I still believe in the idea of Rabbit.dj and have every intention of making it a working application that generates a sizable ripple effect.

In closing, I can say the following and I feel a strong urge to paraphrase Tony Blair’s resignation speech a little bit:

Hand on heart, I did what I thought was right. It may not have worked out the way I wanted it to be, but I still feel that I made the right choice.