Monday, December 19, 2011

Majority report – Facebook is taking over the Internet

Facebook growth is amazing. Here are some statistics to illustrate that: over 800 million active users, over 50% of active users login daily, over 60 million status updates per day, users are uploading more than 250 million pictures per day, 350 million active users currently access Facebook through mobile devices, the average user spends more than 700 minutes using Facebook per month.
Facebook is innovating big time. This is good for users, of course; there are some privacy issues from time to time, but the majority of users don’t care so much about privacy or they are not savvy enough, so new features are rapidly embraced and used.
The latest and greatest Facebook features are the Timeline and the Open Graph. More than 2 million people became Facebook developers in order to try the Timeline before it went public. A lot of websites are using Facebook Like buttons. Often the number of fans on Facebook measures the success of a brand. The new Open Graph allows website owners to measure all kind of user activity. It’s a natural evolution of Likes and Facebook is hoping this will change the Internet. Chances are it will.
Open Graph creates opportunities to share more and more of users actions with their friends. This is also a great opportunity for organizations and brands, especially the frictionless sharing experience provided by Open Graph, allowing sharing without the click of a button. Facebook statistics will explode… again.
Open Graph allows organizations to reach an unprecedented amount of users from all over the world.
In a blog post presenting the early Open Graph results, Facebook says that “Media companies have long been early adopters of Facebook Platform tools, including the Like button, Facebook Login, Comments Box, and most recently, the Open Graph, to drive traffic to their sites, engage readers and attract new audiences... The early results from social news partners are encouraging, once again showing that news sites that focus on building social and personalized news experiences will see the most dramatic increases in traffic and engagement.”
All this will help popular stories become (much) more popular. Of course, some other niche information may be buried down as a consequence, but hey, it’s the same old story Google had with the search results, nothing new there.
Another drawback is that Facebook might have to face same challenges Google had: companies will write content for traffic and at some point we might see some news become popular not because the content is great but because it was carefully crafted SEO-like. We count on Facebook to do the same great job Google did with search results.
Facebook have great websites and applications, though as developers we were often frustrated by the APIs bugs, the lack of documentation or multi-environment support (we had to build separate Facebook applications for the development or staging environments). The good news is that is about to change also.
I attended the Facebook Open Graph Technology Day in New York on October 25th. Facebook informed us that they are working on supporting multiple environments for a single application. They launched the so called “operation developer love”, putting a lot of effort into making the developer’s life easier.
My team develops hundreds of Facebook applications every year, so of course we want our users and their friends to add these applications to their accounts. Obviously, Facebook want this also. Some are saying that sharing activity shouldn’t be passive and users should always consciously publish every action. Maybe, but then again, the majority of users don’t care so much. For them, Facebook platform benefits are much more important. Plus, Facebook started to take privacy very seriously and to make privacy settings easier to understand and manage.
The days when the higher number of fans was the only objective of campaigns are over. We will be able to isolate the most relevant content and the most engaged users, ultimately to improve the user experience.
So yes, Facebook is taking over the Internet. Is this bad news? I don’t think so if the result is a better user experience and easy access to relevant information.

Wednesday, August 10, 2011

Amazing Internet, Mobile and Social Media Statistics

Here are some interesting statistics about the internet, mobile and social media:

Internet
  • The Linkscape Web Index indexes an incredible 39,821,634,471 (39.8 Billion) pages on the internet and they aren’t indexing near the number of Webpages that Google, Yahoo/Bing etc. are. There are still very many pages that aren’t being indexed so the true number of Websites and Webpages out there is much much bigger.
  • Google estimates the internet at about 5 million terabytes of data, which is 5 billion gigabytes, or 5 trillion megabytes.
  • The human brain could hold an estimated 1 to 10 terabytes. It would take about a million human brains to store the internet, or 1 billion DVDs or 200 million blu-rays.
  • World average internet population is about 27%, North America is leading with more than 76%.
  • In 2010 people watched more than 700 billion YouTube videos! That is 700,000,000,000. Over 35 hours of video are uploaded to YouTube every minute.
  • As at September 2010, 3,000 images per minute were uploaded to Flickr and over 5 billion images had been uploaded.
  • 247 billion emails are sent every day, 81% are spam though. 90 trillion emails were sent every year.
  • Akismet spam comment filter has saved an incredible 20,892,632,758 spam comments from cluttering up Blogs (that’s about 30 million spam comments per day).

Social media
  • People spend over 700 billion minutes per month on Facebook, there are over 600 million active users and half of these access Facebook EVERY DAY, 200 million active users access Facebook through mobile devices.
  • There were 25 billion Tweets in 2010 and 100 million new registered accounts.
  • The average Facebook user is connected to 80 community sites, blogs, etc.
  • 30 million pieces of content are shared a month on Facebook and the average person creates 90 unique pieces of information.
  • Mobile Facebook users are twice as active as those who access through computer alone.
  • Since April 2010, 10,000 new sites integrate with Facebook everyday.
  • 21% 0f tweeters follow 100 people or more.
  • 16% of people on twitter have over 100 followers.
  • 44% of tweeters provide a website URL.
  • 89% of people use blogs and other social media to research the latest stories and gossip.
  • 32% of buyers post questions on social media sites.
  • 89% of journalists use blogs for story research, 65% turn to social media sites such as Facebook and LinkedIn, and 52% utilize microblogging services such as Twitter.

Mobile
  • Over 300,000 Android devices and 270,000 iPhones are activated every day.
  • Smartphone sales increased by 96% worldwide from 2009 to 2010 whilst mobile phone sales increased by 35%.
  • By 2015, 4 major regions (Sub-Saharan Africa, Southeast Asia, South Asia, and the Middle East) and 40 countries (including India, Indonesia, and Nigeria) will have more people with mobile network access than with access to electricity at home.
  • Global mobile data traffic grew 2.6-fold in 2010, nearly tripling for the third year in a row.
  • Last year’s mobile data traffic was three times the size of the entire global Internet in 2000.
  • Mobile video traffic will exceed 50 percent for the first time in 2011.

Monday, July 11, 2011

Order of chaos - how to integrate social media feeds into your websites

Today you absolutely have to integrate social media into a website, especially on a blog. At least you include buttons such as Facebook Send or Like buttons, Twitter post button, maybe a Google +1 button and so on.
This helps spreading the information or improves search engine ranking. Of course, this also helps social media platforms collecting behavioral data, but who cares, right? Well I care, but there is no other way.
Integrate social buttons is generally strait forward, you grab the code, you include in your page and boom, all done! However, if you plan to display message feeds on your pages, things become more complicated. You may decide to use the out of the box widgets, so the content will be loaded directly on the browser page; the problem is that this might be reeeeeeally slow. If the content is loaded asynchronously the user might be frustrated seeing pieces of content appearing later. It will be painful to wait for feeds from Facebook, Twitter, YouTube, Flickr: connections opened with each service, latency, not a good user experience. Plus, there are availability issues. Facebook, YouTube and Flickr websites are almost always up, Twitter website is often up. Still, services might be down at some point. This includes your website, but hey, if your site is down, it doesn’t matter if other services are working fine or not. Though, this might be a good solution if you don’t want to display much social services data. But what if you are?
You can of course grab data from all services using a cron job or a scheduled task, store the content locally and then serve it from your server. All social services have APIs, allowing making server calls to obtain data. Front end social media websites are mostly up, but APIs are completely different animals. APIs have all kind of issues. Just to name a few: services are not available or are very slow causing timeouts; there are API call limits (per hour, per IP address), APIs are changing all the time.
The cron job (or scheduled task on Windows) will overcome the APIs call limit, plus if the services are not available the server will offer the latest information it grabbed, but how to deal with API changes? For instance, Facebook changes something every week.
The best solution is to build interfaces specific to your application needs, and then write platform specific providers. This way you only have to adjust the providers when APIs change. For example, you create an interface called IMessage, implementing several properties, such as Author, Message, Data, and several methods such as GetLatestMessages(), returning a list of IMessage objects. In your code you will only use IMessage, so when something changes (like Facebook not allowing anymore to get public message feed witout a token authentication, which broke a lot of applications), your library containing the IMessage implementation will be updated but the application code does not change at all.
In conclusion:
  • write a library for social media feeds
  • use interfaces
  • write an import application to store data on a local cache (maybe database)
  • run the import application on a schedule, just enough to stay bellow social media APIs call limits
  • use the created library to get data and display it on the website
Note: you may find useful an Inverse of Control technique in order to be able to use only interfaces on your application code. Check the examples I wrote for Simple C# inverse of control and C# inverse of control for more details on this subject.