8 Apr 2011

What Happened To JumpPost?

Logo_large

 

I frequently get emails from people looking to use the JumpPost product that we launched a year ago to help find a new apartment. This post explains what happened to JumpPost and why we aren't running it anymore. In case you weren't familiar with JP, the model was that we would pay vacating tenants $500 to list their apartment with us, if we found someone to sign a new lease on the apartment. Apartment hunters could search in advance, not compete with the craigslist crowd, and not pay a full broker's fee, and vacating tenants could make $500 for doing very little work.

When Jordan and I were starting a company we wanted to build a large "local" product. At that time our ideas weren't fully formed yet, but the vague way to describe it would be a Craigslist 2.0. We had studied marketplaces and attempts at better craigslist-type products, and we knew that you needed a unique model to create liquidity within one channel before you could just launch a craigslist with a better UI. So we looked at real estate as the most valuable vertical within craigslist, and came up with the JumpPost model as our "in". We also knew that we would need a significant amount of capital to go after a huge marketplace, and to attract the capital we'd have to prove our team, product, and revenue generation abilities before we could raise financing.

JumpPost was quite successful for an early stage company in that it was generating revenue right away. And the whole time we were working on it, we were constantly trying to figure out how to expand it beyond just the unique real estate value prop that we were offering. Unfortunately its blessing was its curse in that the model was so specific, that if you added any more categories or even other types of real estate, people would be really confused about what to do when they landed on your site. They wouldn't know why they could earn $500 for listing and showing an apartment, but nothing for listing and selling an old ipod or furniture.

So if we just continued on with JumpPost under the $500 incentive model, it would have likely been very successful if you measure success as owning a real estate brokerage which generates $1000+ profit on almost every apartment that you transact through the site. You have to also be excited about being "on the ground", handholding every deal from start to finish, dealing with multiple parties on every deal, and losing out on a lot of deals you put work into. This can scale into an NYC only multi-million dollar business if you work long and hard at it.

But as Justin Timberlake let us all know: A million dollars isn't cool...You know what's cool....?

We're internet entrepreneurs, developers, hackers, product designers. We want to change the world. We're not real-estate agents. After we proved that we could execute on a local marketplace, build product, etc, we were able to pitch the big vision which was now much more fully formed. Outside investment was raised, and the seeds for Hyperpublic, a local data platform, were planted. The decision wasn't made overnight to just shut JumpPost down. We certainly debated about modifying it, letting someone else run it, rolling the new product under the JumpPost brand, but in the end with the help of our advisors and network, we decided it best to focus on the enormous long-term opportunity.

At JumpPost we were focussed on making money in the first month, and at Hyperpublic we won't be focused on it within the first year. But if we succeed, we'll change the world, and that's what gets us really fired up to work the long hard hours that it takes to run a startup.

 

1 Mar 2011

Hyperpublic Developer Challenge Stats and Recap

Last Thursday over at Hyperpublic we launched The Hyperpublic Developer Challenge. It consisted of two programming problems, one of easy/medium difficulty, and one which was slightly harder. We built it for fun, because we're developers, and we love when there's a fun problem around to work on if we get bored or need a distraction. The response to the challenge was phenomenal. We had thousands of developers from around the world working on the problems, and hundreds submit correct solutions. Here's a summary of the response, the problems, the winners, and some observations.

The Response
Screen_shot_2011-03-01_at_9
To our amazement, 5,759 people landed on our challenge start page. From there 2/3rds of them, or 3,856, were feeling brave enough to at least look at the first problem. I'm sure it didn't hurt that we were giving away free Dropbox and Github accounts, so even the non-programmers who landed on the page at least wanted to take a look at the first problem. The response peaked out with 400+ people viewing/working on the challenge concurrently.

The first problem, summarized below, proved to be a strong filter. Only 446 people, or 11.57% of people who looked at the problem, submitted a correct response. 4,860 incorrect answers were submitted, meaning that the successful submission rate was under 10%.

Problem 2, the more challenging problem, received 231 correct submissions. This means that of the 446 people who made it through question 1, only 51.79% of people made it through problem 2. There were 753 incorrect submission attempts.

All in all, 4.01% of people who viewed the challenge made it through to completing both problems.
Screen_shot_2011-03-01_at_9

The Problems
Problem 1 asked developers to calculate the influence of fictitious users in Hyperpublic based upon the influence of the users which they have added to the system. The data was given as a text file, but it could easily be converted into a 2-D array representing which users added which other users to the system.

The most common approach was to use the input as a matrix representation of a directed graph. For each user in the input, traverse the graph recursively to sum up the number of users that the initial user was responsible for. Then find the three users with the highest scores, and use them to compute your answer to problem 1.

While we won't be posting code examples here because we'll leave the contest up for others to try, there are various solutions available around the internet and github, which can be found quite easily be googling/searching github.

Problem 2 assigned point values to various tasks around Hyperpublic and gave 4 users point totals. It asked the developer to compute the minimum number of tasks required in order to reach their exact point totals. This proved a bit trickier, in that many people's first instinct was the use a greedy algorithm in which they always executed the task with the largest point total before moving on to tasks with smaller point totals. This would lead to an incorrect submission and developers to rethink their solutions.

The best way to write this program for inputs and point values of any size is using dynamic programming. This is analogous to the optimal solution coin changing problem which asks what the optimal way to make change for a given amount of money is using coins of various values. It uses a technique called memoization, where you compute the optimal ways to make change for values 1, 2, 3...up to your highest amount, and you use the previously computed values to compute the next unknown values in k attempts, where k is the number of distinct values of coins.

The other way common way in which people solved this problem efficiently was by solving 4 different linear equations. There were some one line solutions using Mathematica and Matlab linear solvers. 

Fortunately, the problem size was limited enough in that a brute force solution would run quite quickly if people really got stuck as well.

The Winners
From the 231 correct submissions, we randomly selected winners of the following prizes:

Github "Medium" account free for one year - Norbert Fekete. Norbert hails from Mosonmagyarovar, Hungary, and submitted his solutions in C++. He's new to github, so follow him over there and suggest some repos for him to fork.

Dropbox "Pro 100" account free for one year  - Brian Barthel. Brian is from Memphis, Tennessee, submitted a C# solution, and runs an independent software company called Zoasoft

Free desk for a month for two hackers to work on their own project at Hyperpublic HQ - Martin Czygan. Martin is from Leipzig, Germany, submitted a python solution, and since he can't take advantage of a free desk in NYC anytime soon he has graciously donated the prize to an NYC based hacker who can use it. You can find him on github and twitter.

Other Observations
The most common language that we saw in submissions was Python. We haven't run exact numbers, but eyeballing it, Ruby, PHP, Java, and C++ were the next most common. There were submissions in a wide range of languages though including Groovy, Scala, Clojure, L, Ocaml, C, Javascript, Haskell, Matlab, Mathematica, and others. Haskell in particular was popular among people who self identified as students or researchers.

Many people who submitted commented that the problems were too easy, and they would have preferred a harder challenge. We think that judging by the number of people who made it through, the number of people who emailed for help, and the number of people who submitted incorrectly, that the difficulty was about right. The majority of responses were very positive in that they said "this was a fun way to kill an hour or two." We wanted the problems to take only an hour or two, and as such I think we got the difficulty right. People got to brush up on their dynamic programming or linear solving, they got to construct a graph, or they got to get their hands dirty with a new language. We think people had fun.

The last thought, is that we did this for fun, and we're glad people enjoyed it. We also wanted to meet more developers and make them aware of Hyperpublic. We're working on structuring data around every "local object" in the world, which is a big technical problem. If you're interested in working on this with us, or hearing more about it. Don't hesitate to contact me.

Looking forward to the next programming challenge.

 

24 Feb 2011

The Hyperpublic Developer Challenge

Over the past couple of days the team at Hyperpublic has been working on the Hyperpublic Developer Challenge. It's a simple programming contest consisting of two problems: an easy problem, and a slightly harder one. It should take a programmer with a CS background 1-2 hours to complete.

We love hacking, we love building, and we love puzzles, so we made this for fun. But we're also hoping that it will spark developer interest in our product and our platform. Anyone who completes the challenge successfully will be entered into a raffle to win a free year's account at Dropbox or Github. We also have open desks in our new office and we'll be giving some of them away to developers looking for a home for a month or two.

Have fun, and let us know if you have any questions or feedback. 
17 Feb 2011

What is Hyperpublic?

Screen_shot_2011-02-17_at_10

As an entrepreneur you frequently get asked what you do, what you're working on, and what your big idea is. Even your closest friends don't always know, since over the years they've observed all of the "pivots", "iterations", and "experiments" that you've conducted in the name of finding that elusive product market fit. I'd like to explain what Hyperpublic, the product we launched two weeks ago, is all about, since there is more to the company than appears on the newly minted Hyperpublic.com

Hyperpublic is a company focused on capturing and structuring local data.

What does that mean? Well, we look at local data as being any object in the world with a location attached to it. These objects can be people, they can be places (like restaurants, shops, and parks), or they can be things (like the West Elm bookcase in your apartment you're trying to sell). After we know what the object is and where it is, we'd like to structure and attach as much data to it as we can. This data may be photos, it may be tags that describe it, it may be pricing data if the item is for sale, it may be contact information. The list goes on.

After you collect and structure all of this data, there are a lot of things you can do with it. You can browse photos of local restaurants, you can find and hire a babysitter in your neighborhood, you can list all of the great comic books for sale in your city. We'd like to make it available to developers in order to find uses that we haven't even dreamed about. As such, the Hyperpublic platform will have an open API where developers can not only pull our data to create and enhance local applications, but they can also push objects, tags, and photos back into the system to distribute through the Hyperpublic ecosystem.

Hyperpublic.com is the first application built on top of the Hyperpublic platform. It exposes some of the data in the system as a local search, discovery, and curation tool for several big cities in the United States. Add yourself to the site if you'd like to be discovered. Tag yourself with "web designer", "freelance", "writer", or "looking for love". Browse your local neighborhood and save your favorite places and items into lists to organize your local world. Share your favorite spots with your friends. Post items you want to sell to the things category. You can join by simply emailing a picture of yourself, a thing, or a place to add@hyperpublic.com from your camera phone. No signup required.

Structuring data and location around every single person, place, and thing in the world and becoming a data provider is certainly a large goal, but it's a goal that our team is incredibly excited about pursuing. We'll have to solve hard problems involving big data, search, mobile product design, API and platform design, and more. If you're interested in working with us on these challenges, I'm hiring. Email me at doug@hyperpublic.com, or hit me up @petkanics.
1 Feb 2011

Heroku Support Saved My Launch Day

052406_computer_smash

The last 72 hours have been a wild ride leading up to the launch of my new site, Hyperpublic.com. I'd say that I got about 3 hours of sleep last night, 0 hours on Sunday, and maybe I was lucky to get 4 hours on Saturday. Pushing the site live this morning gave me all the adrenaline I needed to carry through the day however, as watching the users, tweets, and data pour into our hyperlocal object database kept me from falling asleep on my keyboard. A great writeup from Techcrunch and The Observer provided an extra boost of momentum.

We got quite a bit of traffic, and thanks to Heroku, the instant deployment and scalability Ruby application hosting service, we were able to handle all of the activity without a problem. The last thing you want to worry about on launch day is keeping the site up, and instead you want to be supporting your users and getting their feedback. After a few months of building and a momentous sprint at the end to get launched, I was very excited as we were nearing COB here on the east coast and traffic was starting to level off indicating that I would be okay to finally get some rest.

But that was not to be, as anyone who's ever launched a web product before knows, anything that can go wrong, will go wrong (ATCGWWGW). The site went down around 5pm with a few hundred active users on it.

There was no evidence, no error, no log message to indicate what the problem was. I tried everything I could think of to get it back up with no success. That's when we reached out to the aforementioned Heroku to see if they could help diagnose the issue. 

I filed a ticket with support hoping to hear back. Sure enough a few minutes later I got an email response. After a quick exchange we were on IM. A few minutes later my contact had the database team looking into the issue while he worked with me to help diagnose it at the application level. After about half an hour we found out that the database drive failed and needed to be switched out. They made the change, and within minutes Hyperpublic was back online.

Anyone reading this may first react that this was Heroku's fault in the first place. Sure it was horrible that my app was down for an hour on launch day, and I would have preferred that there was no problem with our database. But as mentioned before, ATCGWWGW, and I'm damn glad that I had Heroku at my back helping to diagnose and fix the issue, as opposed to having to go it alone with my own server or unsupported hosting. 

Instant, personal, realtime, friendly, and free support more than makes up for the occasional glitch in service, even if it occurs on a launch day. Once again, thank you Heroku.
5 Dec 2010

Advice for college computer science students interested in entrepreneurship

Screen_shot_2010-12-05_at_10
This past Friday I took part in a panel at Penn's computer science department designed to help students figure out what options are available to them career-wise post graduation. The panel was excellent and included representatives from big tech companies, big finance companies, graduate research programs, startups who had already grown and had a successful exit, and early stage founders such as myself. A lot of great advice was handed down through the Q&A session in particular, and I figured it would be good to summarize some of the best advice for college computer science students who are interested in entrepreneurship.

Build a web presence
This was echoed over and over again. One of the best parts about college is that you aren't burdened by a nine to five job, and you actually have time to work on projects. In many cases, you can actually receive credit for such projects. Use your senior design project, your independent research projects, and even project based homework assignments to enhance your web presence. Spend a little extra time putting up a simple web site to collect and show off your work. If appropriate, open source your work on github and contribute to active open source projects. Start a blog to document your entrepreneurial endeavors and instincts. 

Whether you're looking for a job at a startup, or elsewhere, simply pointing to your web-based project repo or your github account will be 10x more effective than emailing over another one-page resume.

Learn systems - take the hard, project based classes
Operating Systems, Databases, and Networking should all be required for anyone looking to build applications. Why they are sometimes electives are beyond me. Take these classes, work through the projects, and what you gain in experience will pay off for your entire career.

Get comfortable with a scripting language
Many good CS programs eschew practicality in favor of teaching the fundamentals and core concepts. This is a good thing as the current popular languages will go out of style at some point, but the core concepts never will. But just because the CS departments may teach you Java or C++ doesn't mean that you are stuck programming in them forever. 

Many startups use scripting languages like Python, Ruby, and PHP, as well as the accompanying popular web frameworks that go with them. These languages, although not the most performant, contain great high level standard libraries allowing you to accomplish many useful tasks in just one or two lines of code that would otherwise take 30 in C++. You can easily and quickly write scripts to solve many of your problems, and you won't have to worry about complicated compilation or deployment setups. Spend time learning and using one of these languages for your senior design or independent research projects if your program doesn't use them in any of your classes.

Graduate
If you start a company during college, it might fail. Most startups do. What you learn at college, in and out of the classroom, will benefit you your entire life. Most people don't look back on college and regret staying the full four years.

Sub-matriculation can save years off of the immigration process for international students, which can be especially helpful in working towards entrepreneurship
This was a great practical piece of advice that apparently many undergrads aren't aware of until after the fact. I'm not familiar with all of the immigration laws and processes, but the gist of the advice was as follows:

With a bachelor's degree you need to be sponsored by an employee to remain in the US, and you likely have to stay with that employee or find another big company sponsor for a period of 7+ years while you work to earn your green card. It's hard to make an entrepreneurial move in the US during this process. However if you sub-matriculate into a 1 year master's program, then you cut the process from 7+ years to about 1.5 years. If you have the flexibility to spend one more year on campus, it can be worth it just in the immigration benefits alone.

Getting funding for your college startup can be difficult if you go the traditional VC route, but there are options
Programs like YCombinator, Techstars, and Dreamit are perfect for recent college grads. You have a smart and scrappy team, no overbearing life commitments or costs, and the ability to relocate to the best possible environment to launch your company. Big-time investors will look for proven leadership teams, past experience, and market intelligence and connections when making million dollar investment decisions, and this likely doesn't describe the team comprised of your dormmates. But the accelerators mentioned above are looking for smart teams working on hard problems. This is right up your alley, and they'll lead you to the connections you need later.

The above is just some of the great advice that was given. If you are a college student and you have questions about working at a startup or entrepreneurship, email me anytime at petkanics@gmail.com, or hit me up on twitter @petkanics.
24 Aug 2010

Making a POST request to a Rails API Endpoint

Here's a rare super-technical blog post. I spent enough time struggling with this seemingly simple problem today, that I felt I should share the answer.

The problem: You're designing a REST API for your Rails app. You want to let people insert records in your application via a POST request. However they submit their POST request via their 3rd party application, and your app throws an InvalidAuthenticityToken exception. Why is this happening?

The background: Ruby on Rails stores an authenticity token for each session, and submits this token as a hidden form field in any POST request upon a form submission. It does this to authenticate that the request is actually coming as a form submission through the web site, as opposed to a random POST request generated from CURL or another tool. A 3rd party application developer certainly doesn't have a token assigned and therefore can't submit this via their API request.

The solution: Rails only checks for the authenticity token in the case of a form submission. If you submit your data as content-type application/xml or application/json, then the token is not required. As a result you can set the content type appropriately and encode your input parameters as either xml or json. See the below gist for a ruby example.

It was hard to find this solution via google. Anyone know a smoother solution? Does the API designer generally disable forgery protection in this scenario on POST endpoints for inserting data via an API? Let me know in the comments or on twitter @petkanics
19 Aug 2010

Quora as a blog subsidy

Screen_shot_2010-08-19_at_2

There's been a lot of buzz lately about Quora, the question and answer startup from ex-facebook employees Charlie Cheever and Adam D'Angelo. The site has done an amazing job of quickly building up a strong community of users including many experienced startup founders, investors, and respected members of the tech ecosystem. I read an interview with the founders where they explained that they didn't exactly see it as a question and answer site that they were building, but instead it was more of a blogging platform where you are writing to an audience who's already opted in to read about what you're writing.

When you come to a question page on Quora and it’s blank there are a bunch of people waiting for the answer. An expert will look at it and say “there’s an audience here and I know exactly what they want to hear. And I actually know about this stuff, or know enough to research and produce a really interesting piece of content, and it’s going to go to the perfectly targeted audience who opted in to hearing about this."

This struck a chord. If you're looking for an audience for your writing, previously you would post to your blog. A few people might be subscribed. If you share a link to your post across your social graph, maybe 100 people will read your post. If it gets picked up by an aggregator or social news site, then maybe a few thousand people will read it. And if all of the above happens and you really hit the SEO jackpot on a previously unfulfilled popular search query, then you may get thousands of readers from search over time. But of course that all begins with an original creative idea.

Now consider the case of writing on Quora. The site has a large audience, with many followers on particular topics such as "startups" or "venture capital." There are plenty of unanswered questions, and if you happen to have some valuable information to contribute in answer to someone's question, you are almost guaranteed that what you write will be of interest to at least that person. And as you're taught very early on in school, if you have a question you should ask it, since someone else probably has the same question. Chances are many people are interested in what you have to say. Your writing is immediately distributed to a list of topic followers, and if what you said is really insightful, it will get voted up and bubble to the top of the answer listing.

There are many reasons to write a blog - writing helps formulate your ideas, you create a personal voice within the greater community, and active discussion follows from intelligent posts. In Quora, all of these advantages are maintained, with the added benefit of a built in audience. So this prompts the question: is your time better spent writing a personal blog, or answering questions on Quora?

I suppose there are two main advantages to a personal blog: If you want to write about a topic where there is no existing question on Quora then you have a place to do so, and on you blog you can include personal branding around your writing. On a blog you can add pictures, video, and other media to your post. However it would be nice to subsidize your blog content with your own Quora answers as well. When the Quora API is available I'd like to write an importer which optionally autoposts Quora answers as blog articles with the question as the title of the post and the answer as the body. This would create a nice steady stream of blog content with the addition of distribution of your voice to the Quora audience. Two birds with one stone. 

Now to figure out how to reduce the SEO hit on duplicate content...
15 Jul 2010

The internet never sleeps

The_city_that_never_sleeps

When people ask me to describe my regular workday, I usually start off by mentioning that I spend from about 7:15-7:45am "catching up with the internet."

You see, it seems as if this post-web-2.0 internet consisting of realtime, social, and mobile is an organism that never stops moving. It's constantly spewing off news stories, tweets, startup launches, blog comment discussions, and genius viral campaigns. Not only is there a 24-hour news cycle, but there's a 24-hour discussion cycle amongst my friends, my colleagues, and people whom I aspire to one day become my colleagues. And there's something to learn from all of it.

So during my waking hours, even though I don't spend every minute working, I still try to spend as much time as possible absorbing. It's not that hard to stay current on the pulse of the internet because I'll either catch an update on twitter, hear someone in our workspace talking about the latest controversy, or get an email asking me what I think about the hot new datastore. But when I sleep, the internet keeps moving forward. The debates of the day ramble on late into the west coast hours, and intelligent people contribute valuable information to the general collective knowledge base. And it really burns me up inside to feel like I'm missing out.

Am I missing out? In the grand scheme of things probably not. If I don't hear about news that broke 6 hours ago while I was sleeping, then it probably wasn't important enough to be worth knowing anyway. But still, it's hard to tell what's worth spending time on and reading in the morning, and what's not worth the 10 minutes that could be better spent elsewhere.

There are a number of services out there which try and recommend worthwhile content to you based on your past habits, topics of interest which you've tagged, and the influence of other people like you in the system. The smart folks at Parse.ly are working on content recommendation system like this, as are the bright minds at Pinyadda, among countless other startups. If these services can truly recommend useful content, and more importantly do it in realtime, then it will be interesting to see how they turn out. I think it may be overly optimistic to expect that the realtime aspect will be effective, so instead I would like to recommend another approach: curated personal daily briefings.

When President Obama gets up in the morning, he doesn't even have to ask, "What's going on?" There's already a large team of people who's sole task it is is to provide him with a briefing on every area of governance that he's concerned with, and they're all waiting and ready to give him a report. I'd like an analogous team ready to give me a briefing on what's going on, as well as to tell me what is worthwhile to follow up on on my own. 

Sounds like it's pretty far fetched, eh? Maybe not. Consider that I'd be satisfied with one person very similar to myself, a good friend and fellow NYC startup hacker-founder perhaps, who happens to be paying attention to the internet during the 12 hours that I'm not, giving me a 10 minute briefing first thing in the morning. I'd be happy to return the favor for him during the time he wasn't paying attention. We'd read similar news, be interested in similar topics, and follow similar sources on twitter. Now, with just two people playing this role there'd definitely be gaps when we'd both miss something, but what if there were 4 people and we only had to report once every other day? What if there were 10 people? 60 people? Each person would be responsible for creating a curated update of the past 12 hours once a month to contribute to the group. Seems reasonable to assume there may be 60 like minded people in the same ecosystem looking to benefit from these updates.

Now what if there was no need to organize a group like this at all, and instead there was a service that you could pay for these on-demand updates. Maybe I wouldn't subscribe individually to pay out of pocket (I probably would actually), but it would certainly be beneficial for a startup to pay for this for each of their employees. The productivity gains would be tremendous by eliminating the need for every individual to filter through all the content on their own. A service could deliver updates to subscribers via podcast, via email, via personal phone call, and it could be customized to each person based on their interests and sources of preference.

I haven't taken much more time than it took to write this to think through everything, so with more thought it could obviously be tuned. But it seems like a curated wire news service for niche groups based on their ecosystem and preferences would at least be useful, if not profitable.
1 Jul 2010

Key takeaways from The Facebook Effect

Screen_shot_2010-07-01_at_11

I recently read David Kirkpatrick's new book The Facebook Effect, which chronicles the history of Facebook from the pre-creation days in a Harvard Dorm Room to the 400 million user platform and advertising behemoth that it exists as today. It was a very pro-facebook, pro-Zuckerberg account as compared to much of the media coverage that has been given to Facebook over the years, and while it points out the mistakes they've made along the way, it generally gives the young founders the benefit of the doubt. Overall, I found the book interesting and worth the read simply for the Facebook story, but from an entrepreneur's perspective, there were three key takeaways for me that will shape the way I think about building our current company.

1. Ride a big theme
Shortly after the founders experienced the early success of Facebook on their campus, they realized that they were onto something big. But their goal was never to build a business that had one product which was an intercampus social network. Their goal was to increase sharing in the world. They felt that by making the world a more open place, they would make it more transparent, bring people and cultures closer together in the global ecosystem, and as a result it would be a better place. Their business wasn't based around selling one product or even one feature within a product as some businesses are. Their goal was the change the world.

By riding this enormous theme of sharing and openness, Facebook was able to address a market of almost every person on the planet. Sure they needed a product which would facilitate their themes, and they had a great one, but they were really starting from a point of almost limitless growth potential.

2. Timing is critical
You often hear people say that they had the idea for Facebook before the launch of Facebook. And sometimes in tech circles you even hear people say that they built a Facebook style service before Facebook but it never caught on. Well here's some news: lots of smart people spent lots of time and money building Facebook style social networks long before Facebook even launched. And some were actually moderately successful. However many just didn't have the timing that Facebook had and the world wasn't ready to embrace a global social network yet.

What made their timing so accurate? There were a couple of contributing factors including people's willingness to accept transparency online, proliferation of broadband internet, and the rise in popularity and availability of cheap digital cameras. 

Companies that created social networks before broadband internet had a hard time convincing their users to wait around for endless page loads and no photos. Facebook users spend a tremendous amount of time on the site because they can keep clicking from link to link, from photo to photo, and get instant satisfaction. Try that before broadband. 

Social networks that launched before people were comfortable enough with the internet to put their information online had a hard time getting people to use their real names and information. Facebook only let users use their service with their real name and identity, and therefore there was an enforcement on the site that you couldn't misbehave or your reputation would suffer. In 2001 people were scared to enter any information online, but in 2004 people were ready and the timing was right.

The Facebook photos feature was really the first application built on top of the Facebook social graph, and it was a gamechanger for the company due to the amount of time that users spent on the site after the launch. But photos on other networks just weren't popular until everyone had a digital camera with which to take the pictures. 2004 was probably one of the earliest years that you could expect your average college student to possibly own a digital camera. And if they didn't own one, they could buy one for a couple hundred bucks in order to join in the facebook photo frenzy.

When thinking about your own business, you need to look around and leverage the emerging trends (or even better yet the trends that are just about to emerge), and use them against existing, slow moving competition. Look at recent changes in the world and technology and take advantage of the latest ways that people are spending their time and money.

3. Product vision is key and needs to be protected
Mark Zuckerberg really was a product visionary. He somehow knew what users would want, before they even did, and he was almost always correct in his predictions. The protection which he gave his vision was paramount. He was endlessly harassed by investors, officers of his company, and even the public at times to consider major changes, but he fought them off hard and committed to building the product that he wanted to build. 

Ben Horrowitz wrote yesterday in his discussion on why they funded Foursquare that "The only thing better than the CEO being the keeper of the vision is the CEO being the creator of the vision." Facebook had this CEO with the right vision, and he knew never to compromise the vision or the product for short term wins. If he had, Facebook would likely be chock full of banner ads and part of the Rupert Murdoch empire.

Doug Petkanics's Space

Co-Founder of Hyperpublic. Fighting the good fight.