Tuesday, July 31, 2012

Sharing revenues with skilled friends

In my previous postings I discussed about the opportunity of explicitly share your skills on facebook showing  that the authenticity of those skills would be self-regulated by the social network. Also, I claimed that the current web search ads system is not necessarily the only monetization model available.  In web search, when a query is submitted some relevant content is retrieved and ads are sold together with the results. The engine takes the money and the web content producers take no money. Web content producers take benefits from the traffic received by the search engine, but they directly take no money -- which is strange to me.

Now the question is what incentive could we give the users who are sharing their own skills?

First answer would be to send them traffic in analogy to what happen in web search. Anyway, I am not sure that this would be valuable for my friend Giuseppe who claimed that he is an expert in Photography. Why sending traffic to his Facebook page should have any additional value to him?

The second answer is to share revenue between my skilled friend Giuseppe and Facebook whenever Facebook shows Giuseppe among the friends skilled in Photography. The more likes Giuseppe gets the higher would be the chances to be retrieved for a search about Photography. Whenever ads shown for that topic are clicked Giuseppe will get a little amount of the revenues generated. He produced the content, he has the skill so he takes some direct money for it. In my view, this model would give a natural incentive to share skills and to get likes for those skills.

The third answer is still to about sharing revenues, but would be based on inserting ads into skilled pages. What is a skilled page? pretty simple. If Giuseppe declares a skill in Photography he can create a special page on his profile very similar to the traditional timeline but focused just on Photography. All the ads shown in that page are about the Photograpy topic and again there should be some form of revenue sharing as form of incentive to produce high quality, curated skilled pages. After all, Giuseppe is the expert so he has to tell something about his expertise. 

Monday, July 30, 2012

Skilled friends can gain money after they share their skills for free

An anonymous reader told me: "people need an incentive/experience to provide this information for free. They will assume that their friends know - so why should they tell Facebook this information?"

In my previous posting, I showed that skills cannot be faked because they are judged by the rest of the friends. This is nothing but just applying the power of social ties which self-regulates authenticity.

Now, let's go to the next step. I believe that current web ads system is fundamentally flawed. A lot of people produce web content which is then indexed by search engines. When a query about a topic is submitted by a user some relevant content is retrieved and ads are sold together with the results. The engine takes the money and the content producers take no money.

Why that?

Yes, content producers will receive more traffic and this has certainly an economic value. Anyway, who said that this is the only model we can think of?

Do you have any alternative?

Sunday, July 29, 2012

Skills cannot be faked

One more thought about my idea of skilled friends on Facebook. I don't believe the a friend can mystify her skills by declaring a talent which is not there. Her social network will understand this and she will look bad in front of her friends.

So, skills cannot be faked. Plus, when you declare a skill there is always the opportunity to like it and this will be an important signal to rank friends by skills.

Saturday, July 28, 2012

An idea for Facebook: from friends to skilled friends (or how to make money)

Facebook has 900 millions of users, and everyone is connected to a number of friends. Sometime you don't know what are your friends' skills. In my network there are people expert in photography, people expert in art, people experts in skiing, people expert in surfing, and people expert in solar power, and people expert in philosophy, and people with an immense musical background, and many geeks, and people with tremendous interest for electrical cars, and people with a passion for astronomy and celestial stuffs, and ....

So many people, so much talent to discover.

So Facebook, let everyone declare their own skills and talents to their social network. Let my friends be skilled friends. Let me also tag the skills of my friends as I tag my friends' faces in pictures.

Then, let me discover this talent when I search:  if I search for photography give the name of my friend Giuseppe who has a skill in this subject, and If I search surfing give me the name of Luca who is the expert here. If no friend is an expert in that topic, please find a skilled expert among the friends of my friend.

Transform generic search in search for skilled friends.

And when I search a skill, here you have the magic opportunity to sell ads about that topic. 

So If i search for surfing give me the name of Luca, but also ads related to the topic. Give me the name of that online market where I can buy great surf tables or show me where to find swimsuits. Likewise, if I search for camera give me the name of Giuseppe but also ads for the latest Nikon D7000. And...

Transform generic search in a search for skilled friends, and make money out of a great user experience.

Thursday, July 26, 2012

Bing search meets Facebook: exciting typeahead progress

Very happy about the integration of typeahead/autosuggestion technologies between Bing and Facebook. Now you can Bing directly from Facebook search box. Congratulation to the teams that made this happening by establishing a collaboration with several locations in the world (California, Washington, and London). My team in London provided core backend technologies for Bing Autosuggestion.


Wednesday, July 25, 2012

A phone has two sides. An idea for phone manifactures

Yesterday, I was listening this conversation: "I have always to carry at least two phones. My iphone is great for browsing and the apps, and my blackberry is great for browsing emails". How many of you have a similar  experience: either you have a phone with a large touch display which is great for browsing, or you have a phone with smaller display but with a decent keyboard. So you go out of there and buy your favourite Android, Windows Phone, Iphone AND you possibly buy a traditional Blackberry or the like.

Now I wonder why two devices? Why don't have just one with two sides? On one side you have the large touch display, and on the other side you have the smaller display but a good traditional keyboard.

I should probably patent this idea and sell it to companies out of there, but there is a war so I prefer to publish here and give it for free.. as in freedom

Sunday, July 22, 2012


How to implement LRU caching scheme? What data structures should be used

Saturday, July 21, 2012

Thursday, July 19, 2012

Bitonic arrays

iven an array A[0 ... n-1] containing n positive integers, a subarray A[i ... j] is bitonic if there is a k with i <= k <= j such that A[i] <= A[i + 1] ... <= A[k] >= A[k + 1] >= .. A[j - 1] > = A[j]. Write a function that takes an array as argument and returns the length of the maximum length bitonic subarray.

Wednesday, July 18, 2012

Array and positions

Given an array of n distinct integers sorted in ascending order, write a function that returns true is there is an index i such that arr[i] is equal to i

Tuesday, July 17, 2012

Strange struct.

struct str
    int i: 1;
    int j: 2;
    int k: 3;
    int l: 4;

what is this? is it a good and portable code?

Monday, July 16, 2012

Two arrays

Given two sorted arrays of any length, find out the median of them if they are sorted into single array

Saturday, July 14, 2012


Write a program to find all the possible paths from a starting point to dest point in a maze(2-D array).
ex: 1 0 1 0
 1 1 1 1
 0 1 0 1
 0 0 1 1 
If there is a block it’s represented by 0.
If there is a path it’s represented by 1.

Friday, July 13, 2012


Write a program for beautificaion of a program file in an IDE

Thursday, July 12, 2012

Linked list

Write a program to print the n-nodes from tail of the linked list.

Wednesday, July 11, 2012


Write a program to Validate an IPv4 Address

Tuesday, July 10, 2012

Distributed sort

Given N machines. Each machine contains some numbers in sorted form. The amount of numbers for each machine is not fixed. Output the numbers from all the machine in sorted non-decreasing form.

Monday, July 9, 2012

Unique words

Design a system to calculate the number of unique words in a file.. 1) What if the file is huge ? 2) Assuming that you have more than one computers available, how can you distribute the problem ?

Sunday, July 8, 2012

Array of 0 and 1

You have an array of 0s and 1s and you want to output all the intervals (i, j) where the number of 0s and numbers of 1s are equal. linear

Wednesday, July 4, 2012

Sum 3 numbers

given an array and a target value. Find a,b,c such that a+b+c=target

Monday, July 2, 2012

Solve the coin change problem

def count( n, m ): if n == 0: return 1 if n < 0: return 0 if m <= 0 and n >= 1: #m < 0 for zero indexed programming languages return 0 return count( n, m - 1 ) + count( n - S[m], m )

Sunday, July 1, 2012

Regexp match

Write a function checkRegex() which takes two strings as input, one string represents a regex expression and other is an input string to match with the regex expression. Return true if it matches, else false. Regex may contain characters ‘a-z’, ‘.’ and ‘*’ where ‘.’ matches any character and ‘*’ means 0 or more occurrences of the previous character preceding it.