Thursday, April 30, 2015

Connecting People of Like Interests

[UNDER CONSTRUCTION.
Also, make blog for: Connect search history to Google maps; show keyword search similarities by area so people can see where other people like them congregate.  Idk, just an idea].

Overview:  Technology such as Google Glass is going to let us see reality through a lens augmented by the internet.  In time, I can see this leading to a world where we have the capability to see through the eyes of others.  The topic of this blog is on how we can use Google Glass to help connect people of like interests.



Auras:  Basic Idea


Once Google Glass is more common place, we could create a Common Interests website where users can list things they are interested in connecting with other people on.  These can be things like books they've read, movies they like, political affiliations, etc.  These can also be mined from things like Facebook accounts if users want to link them.

To illustrate the concept, consider the following example.

Assume that Person A has the following set of likes/dislikes.

Likes:  Puppies, Skiing, Dancing
Loves:  Tacos, Burritos
Dislikes:  Kitties, Spinach
Hates:  Sushi, Rap Music


Assume that Person B has the following set of likes/dislikes.

Likes:  Puppies, Skiing, Video Games
Loves:  Tacos, Cheeseburgers
Dislikes:  Kitties, Trigonometry
Hates:  Sushi, Country Music

A caricature of what Person A would see when viewing Person B (and vice versa) is depicted below.

Figure 1.  What would be seen through Google Glass when the people in the example view each other.


The visual is comprised of the overlap between the likes and dislikes of the two individuals, so that they only see what they have in common.  This could additionally be used to help with dating, as there is nothing preventing incorporating whether or not someone is single and what they are looking for.







Identifying Objects in the Real World

-  We could use 3D barcode labels to identify objects we encounter in the real world; these objects can be things like the faces of individuals.  Input a 2D projection of the 3D barcode, check to see if that projection is a possible projection of the 3D label, if it passes the check, link the information for the 3D label to the 2D representation of the object as depicted on the screen.

Problem:  You need 3 such (random) projections to uniquely identify the object

Solution:  OK, so just take 3 random projections before doing the check; not a big deal.


Problem: Both the 3D representation and 2D representation are at the same scale (i.e. one isn't how the object would look a mile away, and the other an inch away?)

Solution:  We would need to construct the 3D image from light rays hitting the 3D label being examined.  But what would define the boundaries of the label?  We could do community detection on groups of adjacent pixels.  Make a network where each pixel is connected to each adjacent pixel, and treat it as a community detection problem.

As an example, consider the following 3 pictures of a hat.






We can detect shadows by cataloging light sources and the types of light they produce.  We can check what kind of light source we are looking at by aggregating clusters of pixels based on both spacial location and color value.  We can do this by treating each pixel as a node in a network that is connected to adjacent pixels.  These edges should be weighted according to a similarity measure based on color values, and we can pull out aggregates using a network oriented community detection algorithm.  We should be able to detect shadows by checking variations in color values within communities.  Light color would be indicated by the variations in color+intensity space along sequences of adjacent pixels.

Once we know what color the light source(s) is(are), we should be able to reconstruct their location in physical space by using the configuration of shadows in the picture.  Once we have done that, we should then be able to construct a 3D representation of the image we are looking at.





Wednesday, April 29, 2015

Cyber Aided Democracy

Tribes
Cyber Aided Democracy



[UNDER CONSTRUCTION]



Overview:  We live in a dramatically different age than the one our form of democracy was born in, and I think we would all be for the better if we come to grips with that fact.  With computers and the internet, we can make people's voices directly heard in the process that governs them.  To this end, why not create a webpage + app that allows individuals to tell their personal government representatives how they would like them to vote?


Structure of Webpage:

The webpage will revolve around what I will call topics of interest (TOI's), and comments about TOI's.

Example Topics of Interest:

-  Upcoming issues to be voted on by the house/senate.  These should be able to be mined from the US Senate Calendar webpage and the US House of Representatives webpage.

-  Upcoming elections.



Examples of Commenting:

-  Voting as to whether you are for/against/neutral regarding a TOI.

-  Providing your personal input on a TOI.



Problem:  How are TOI's generated?

Solution:  Allow anyone to post a TOI. To try to gain contributors, one TOI can be linked to another TOI so that users can browse the TOI's linked to something they are already interested in.  We want the impact of TOI's to scale with the number of contributors it has, so the amount of points that can be awarded with it should scale with the number of contributors.  Maybe have this again be on a scale of 1-10, where TOI's are worth max(1, log(number of contributors) )





Problem:  How do you prevent people from making uninformed decisions?

Solution:  Only allow users to be able to cast their vote on an issue once they've earned enough points (say 10 points) through that issue.  The idea is that we want as much input from as many different angles, so this should be an easy goal to reach.

How to earn Points (in progress):

-  Provide a comment (1 point)

-  Provide a comment with a reliable information link (3 points)

-  Vote on a comment with thumbs up, thumbs down, or neutral (2 points)

-  Have a comment upvoted (2 points per upvote)





Problem:  How to keep people interested?

Solution:  Make a game out of it.  Have leader boards that effectively reset with 2 year election process so people must stay active to stay on top.  We also want to keep diligent users on board, so maybe have their total lifetime point accumulation affect their standing.  Have a bonus of X points for each new season based on their lifetime point accumulation.

Factors that Should Effect X:

-  How many projected points for the season (X should not be more than 20% of this)

-  Lifetime points should be labeled by season; only have the last 2 seasons count (4 years worth of voting).





Problem:  How to get people to band together in their voting strategies?

Solution:  Make a tribal aspect to the game; allow people to link up to form tribes in order to gain additional points per vote (same idea as in Clash of Clans).  This will create a pressure to form tribes comprised of people with similar voting patterns; when one wins, they all win.  Allow people to join up to Y(points) number of tribes.


Factors that Should Effect Y:

-  Personal activity in the previous two weeks (weighted the most)

-  Personal activity in the previous six months

-  Overall lifetime personal activity (weighted the least)





Problem:  How should the tribe dynamic work?

Solution:

-  Tribe leaders can pick Z(tribal points) issues per 3 month period as tribal issues.

-  When tribal issues win, those members get additional points.  There are no negative effects from losing a vote.





Problem:  How should the point system work?

Solution: There should be point categories for:  3 month period, 2 year period, and lifetime.

3 Month Points:

-  Tribal votes won

-  Personal comments (unbounded)

-  Personal votes cast where issue won (2 bonus points per)

-  Rank of tribes which they are a member of


2 Year Period:

-  Personal votes cast (10 points per)

-  Rank of tribes belonged to over the season (keep track of all tribes belonged to per user)

-


Lifetime:

-  All points accumulated.