Sunday, November 6, 2011

Google Plus

1. What is a social network.
Most people think that what Facebook, as it is today, is synonmous with a social network.  That is, a social network is nothing more than a place where you post your pictures, update statuses, and communicate with your personal friends.

This is a very narrow and limiting definition of a social network.  Any business that tried to build a 'social network' as defined by these terms would certainly loose to Facebook.  If Facebook is the definition of a social network, you can't out Facebook Facebook.  To win you have to change the definition.  (Or better yet, go back to the definition)

A social network is comprised of two parts.  
1. Social - Who are all these people?  What do they care about?  What do they do?What do they enjoy?  What do they like to tell other people?
2. Network - How are these people connected together? How can they share things important to them to their network?

This definition doesn't inherently necessitate having a 'wall', or photos, or a profile page.  Google won't win by just pumping our a Facebook clone.  It'll take adding things inherit in the definition of a social network, that don't exist today. 

The first step is to 'socialize' all of Google's products.  Here are the products I think have the lowest hanging fruit.  (Each of these could make a really interesting post)
  • Android
  • Google TV
  • Gmail
  • Google Music
  • Youtube
  • Google Calendar
  • Google Automobile (I this doesn't exist yet, but it should and will)
  • Finally Search
Meanwhile Google could also start socializing the rest of the web.  Imagine if Amazon or Netflix was able to make suggests based on who your friends are.

Thursday, February 24, 2011

Kinect Ads

Problem: Ads in the physical world are dumb.  If there is an ad in the mall, I'll see the same ad as everyone else that walks by.

Solution: Use Microsoft kinect and a screen to target ads to people as they walk by.  The kinect can tell us information to serve that person better ads.

Here are some things the kinect could identify about a person as they walked by

  • How old are they (infant, adolescent, adult)  
    • A mother with a young child should get different ads than a teenager
  • How big of group are they walking with
    • A person by themselves should get a different ad than a group of friends
  • Gender
  • How fast are they walking
    • Are they in a hurry


Linear Conversations

Scenario: Its Friday afternoon.  You and your friends need a plan for what to do that night.  You open an email thread to discuss what to do.  You throw out a couple ideas; maybe a pub or watching a movie.

Your friends reply to your mail.  They have movie  and pub suggestions.  Once friend mentions playing kickball as another idea.

Problem - Email Threads: Think about how unorganized this email thread will be.  Your friends will hit reply all, and you'll be left with an long chain of emails.  In all this unstructured linear text you might forget the suggestion of kickball, or you might forget why you all decided not to watch a movie.

Problem Analysis:  People don't think or communicate linearly.  Email threads force linearity.

Solution - Email Webs: In the original email thread replies we added to one long chain of text.  We should be able to break apart the conversation into different subtopics.

A conversation shouldn't look like a line, it should look like a tree.

Wednesday, February 16, 2011

Twitter problems

I was reading Quora and I found this post.  http://www.quora.com/Twitter-Inc-company/Why-does-Twitter-need-300-employees  Jane mentioned some really interesting CS problems

I remember my housemate was once incredulous as to why we needed so many engineers for such an apparently simple site. 1) Twitter's not as simple a website as you think--keeping Justin Bieber from dominating the trends and user recommendations are two examples of nontrivial features. 2) Like Facebook, the core functionality is simple and most people could do it in a weekend, but getting it all to work at scale is hard.


Here are a few ideas for how to tackle those problems.

1) Keep Justin Bieber off of trends

For each potential trend, keep track of two pieces of information.  How often it normally occurs, and how often it is currently occurring.  List the item as a trend once its current rate greatly exceeds its average rate.

2) Recommendations

Idea 1: Graphs - This is the most feasible, and least out there

  1. For a user U, make a graph of every user U follows (following represents an edge). 
  2. For every user in the graph, add all users they follow
  3. (optional) repeat 2 until graph is big enough
  4. Recommend the nodes in the graph with the most inbound edges. 
Idea 2: Clustering
I want to flush this out later, but the basic idea is to create some N dimensional space.  Each dimension corresponds to level of interest in an area. (eg. interest in Justin Beiber)  Map the user and potential recommendations to this space.  Recommend the nearest items.

Figuring out what are potential recommendations and what the space looks like might be either be hard (computationally) or take some extra thinking.

Idea 3: Neural Networks

Tuesday, February 15, 2011

Saturday, January 29, 2011

SpellCheck

You know what sucks.  Spellcheck.

My first attempt at spelling 'prestigious' came out 'prestituious'.  Even with the context of the rest of the sentence Word 2010 had "No Spelling Suggestions" for me.


Now I have to switch to a web browser, copy paste 'prestituious' into a search engine (Bing), then copy and paste its correction back into my document.  In doing that I wasted a few seconds, and lost my train of thought.




Microsoft - You can do better.