• Like
  • Save
2012 ConvergeSE: Exploring Human Identity Through Personalization and Data Mining
Upcoming SlideShare
Loading in...5
×
 

2012 ConvergeSE: Exploring Human Identity Through Personalization and Data Mining

on

  • 2,144 views

This workshop dives into the depths of how a person can be identified online, allowing for the delivery of highly personalized experiences. This will cover a few topics, including:...

This workshop dives into the depths of how a person can be identified online, allowing for the delivery of highly personalized experiences. This will cover a few topics, including:
Building the identity foundation using authentication systems like BrowserID, PayPal Access and Facebook Connect.
Understanding how cultural identity concepts like tribalism play into how people group themselves innately online.
Building personality and interest profiles for users by tracking actions using keyword density scraping and categorization.

Statistics

Views

Total Views
2,144
Views on SlideShare
2,142
Embed Views
2

Actions

Likes
1
Downloads
23
Comments
0

1 Embed 2

https://si0.twimg.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Concepts of bound vs unbound scopes
  • Suck in web content via curlConvert to valid XML document (do not use as text and run Regex against it)
  • Search through text on the page and store words + how often they are usedStrip out common words
  • Use meta description and keywords to match against your keyword density searchUse Open Graph protocol tags to find more keywords and page content
  • http://gizmodo.com/5470696/fck-you-google
  • http://www.pcmag.com/article2/0,2817,2399970,00.asp
  • http://www.forbes.com/sites/kashmirhill/2012/02/16/how-target-figured-out-a-teen-girl-was-pregnant-before-her-father-did/The statistician is now a rock star

2012 ConvergeSE: Exploring Human Identity Through Personalization and Data Mining 2012 ConvergeSE: Exploring Human Identity Through Personalization and Data Mining Presentation Transcript

  • Exploring Human Identity Through Personalization and Data Mining Jonathan LeBlanc Developer Evangelist: X.commerce Twitter: @jcleblanc E-Mail: jleblanc@x.com Github: github.com/jcleblanc
  • What We’re Going to Cover The Foundations of Human Identity Tribalism and Social Grouping Experimental Identity Methods The Big Bag of Social Identity Failhttp://www.x.com http://slideshare.net/jcleblanc
  • What We’re Going to Cover The Foundations of Human Identity Tribalism and Social Grouping Experimental Identity Methods The Big Bag of Social Identity Failhttp://www.x.com http://slideshare.net/jcleblanc
  • Human Identity: User Types Anonymous Users Registered Usershttp://www.x.com http://slideshare.net/jcleblanc
  • Human Identity: Open Identity Programming OpenID (…and the upcoming OpenID Connect) PayPal Access, Google, Yahoo! OAuth (1.0a + 2.0) PayPal Access, Facebook, Twitter BrowserID Mozillahttp://www.x.com http://slideshare.net/jcleblanc
  • Human Identity: Anonymous Usershttp://www.x.com http://slideshare.net/jcleblanc
  • Human Identity: Tracking Anonymous Users There are a few common options Tracking Cookie Local Storagehttp://www.x.com http://slideshare.net/jcleblanc
  • Human Identity: Tracking Anonymous Users Program Overview • On each page visited, track the URL • HTML5 Local Storage as primary storage • Cookies as secondary storagehttp://www.x.com http://slideshare.net/jcleblanc
  • Tracking Anonymous Users with Local Storage var storeName = "visited"; if (typeof(localStorage) == undefined ) { //Local Storage Not Available } else { try { var sites = localStorage.getItem(storeName); sites = (sites === null) ? window.location : sites + window.location; localStorage.setItem(storeName, sites + "|"); } catch (e) { if (e == QUOTA_EXCEEDED_ERR) { //quota exceeded } } }
  • Tracking Anonymous Users with Cookies function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(;); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ){ c = c.substring(1, c.length) }; if (c.indexOf(nameEQ) == 0){ return c.substring(nameEQ.length, c.length); } } return null; }
  • Tracking Anonymous Users with Cookies var storeName = "visited"; if (typeof(localStorage) == "undefined" ) { var cookieVal = readCookie(storeName); var value = ((cookieVal === null) ? window.location : cookieVal + window.location); var days = 1; var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); var expires = "; expires=" + date.toGMTString(); document.cookie = storeName + "=" + value + "|" + expires + "; path=/"; } else { //Use Local Storage }
  • Human Identity: Tracking Anonymous Users Next Steps / Improvements • Remove oldest results when storage fills • Build categorization mapping prior to storage to save space (more on this later)http://www.x.com http://slideshare.net/jcleblanc
  • Human Identity: Registered Usershttp://www.x.com http://slideshare.net/jcleblanc
  • Human Identity: Identity Sources Sources of Real Identity Social (perceived) Concrete (true)http://www.x.com http://slideshare.net/jcleblanc
  • Human Identity: Concrete Identityhttp://www.x.com http://slideshare.net/jcleblanc
  • PayPal Access: OAuth 2 + Commerce Seamless Checkout Prospect Scores Recommendationshttp://www.x.com http://slideshare.net/jcleblanc
  • PayPal Access: The Common Code<?phpdefine(KEY, YOUR APPLICATION ID);define(SECRET, YOUR APPLICATION SECRET);define(CALLBACK_URL, YOUR CALLBACK PATH - TO COMPLETE.PHP);define(AUTH_ENDPOINT, https://identity.x.com/xidentity/resources/authorize);define(TOKEN_ENDPOINT, https://identity.x.com/xidentity/oauthtokenservice);define(USER_ENDPOINT, https://identity.x.com/xidentity/resources/profile/me);function run_curl($url, $method = GET, $postvals = null){ ... }?>
  • PayPal Access: Forwarding for Login <?php require_once "common.php"; $auth_url = sprintf( "%s?scope=%s&response_type=code&redirect_uri=%s&client_id=%s", AUTHORIZATION_ENDPOINT, urlencode("https://identity.x.com/xidentity/resources/profile/me"), urlencode(CALLBACK_URL), KEY); //forward user to PayPal auth page header("Location: $auth_url"); ?>
  • PayPal Access: Obtaining the Access Token <?php require_once "common.php"; //capture code from auth $code = $_GET["code"]; //construct POST object for access token fetch request $postvals = sprintf("client_id=%s&client_secret=%s&grant_type=authorization_code& code=%s&redirect_uri=%s", KEY, SECRET, $code, urlencode(CALLBACK_URL)); //get JSON access token object $token = json_decode(run_curl(ACCESS_TOKEN_ENDPOINT, POST, $postvals));
  • PayPal Access: Using the Access Token //construct URI to fetch profile information for current user $profile_url = sprintf("%s?oauth_token=%s", PROFILE_ENDPOINT, $token- >access_token); //fetch profile of current user $profile = run_curl($profile_url); var_dump($profile); ?>
  • PayPal Access: Using the Raw Datahttp://www.x.com http://slideshare.net/jcleblanc
  • PayPal Access: Using the Raw Datahttp://www.x.com http://slideshare.net/jcleblanc
  • What We’re Going to Cover The Foundations of Human Identity Tribalism and Social Grouping Experimental Identity Methods The Big Bag of Social Identity Failhttp://www.x.com http://slideshare.net/jcleblanc
  • Social Grouping: It’s Not A New Thing…http://www.x.com http://slideshare.net/jcleblanc
  • Social Grouping: Foundation in Tribalism Tribalism started as a way to keep us safe …it has lead to some horrible parts of history but it is also a foundation of many of our social relationshipshttp://www.x.com http://slideshare.net/jcleblanc
  • Social Grouping: The Real Life Social Graphhttp://www.x.com http://slideshare.net/jcleblanc
  • Social Grouping: The Online Social Graphhttp://www.x.com http://slideshare.net/jcleblanc
  • Social Grouping: Group Types Follower Type Connection Type Group Typehttp://www.x.com http://slideshare.net/jcleblanc
  • Social Grouping: Data Miners are Rock Starshttp://www.x.com http://slideshare.net/jcleblanc
  • Social Grouping: Group Programming Primer Program Overview • Use all URLs from the previous program. • Obtain content category for page. • Categorize user interest.http://www.x.com http://slideshare.net/jcleblanc
  • Social Grouping: Group Programming Primer Step 1: Obtain Website Contenthttp://www.x.com http://slideshare.net/jcleblanc
  • Social Grouping: Group Programming Primer Step 2: Perform Keyword Density Searchhttp://www.x.com http://slideshare.net/jcleblanc
  • Social Grouping: Group Programming Primer Step 3: Weight Keywordshttp://www.x.com http://slideshare.net/jcleblanc
  • What We’re Going to Cover The Foundations of Human Identity Tribalism and Social Grouping Experimental Identity Methods The Big Bag of Social Identity Failhttp://www.x.com http://slideshare.net/jcleblanc
  • Experimental Identity: WebFingerhttp://www.x.com http://slideshare.net/jcleblanc
  • Experimental Identity: WebFinger Step 1: Perform Discovery curl https://gmail.com/.well-known/host-metahttp://www.x.com http://slideshare.net/jcleblanc
  • Experimental Identity: WebFinger <XRD xmlns=http://docs.oasis.open.org/ns/xri/xrd-1.0 xmlns:hm=http://host-meta.net/xrd/1.0> <hm:Host xmlns=http://host-meta.net/xrd/1.0>gmail.com </hm:Host> <Link rel=lrdd template=http://www.google.com/s2/webfinger/?q={uri}> <Title>Resource Descriptor</Title> </Link> </XRD>http://www.x.com http://slideshare.net/jcleblanc
  • Experimental Identity: WebFinger Step 2: Collect User Data curlhttp://www.google.com/s2/webfinger/?q=nakedt echnologist@gmail.comhttp://www.x.com http://slideshare.net/jcleblanc
  • Experimental Identity: WebFinger User Profile http://www.google.com/profiles/nakedtechnologist Portable Contacts http://www- opensocial.googleusercontent.com/api/people/118167 121283215553793/http://www.x.com http://slideshare.net/jcleblanc
  • Experimental Identity: WebFinger profileUrl name id formatted thumbnail url family name urls given name photos display namehttp://www.x.com http://slideshare.net/jcleblanc
  • Experimental Identity: BrowserIDhttp://www.x.com http://slideshare.net/jcleblanc
  • Experimental Identity: BrowserID BrowserID Source <script src="https://browserid.org/include.js" type="text/javascript"></script> JQuery Source <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>http://www.x.com http://slideshare.net/jcleblanc
  • Experimental Identity: BrowserIDnavigator.id.get(function(assertion) { if (assertion) { $.ajax({ url: https://browserid.org/verify, type: POST, data:assertion=+assertion+&audience=jcleblanc.com, success: function(res) { console.log(res); } });});http://www.x.com http://slideshare.net/jcleblanc
  • Experimental Identity: BrowserID Results { audience: "jcleblanc.com", email: "nakedtechnologist@gmail.com", expires: 1320081400987, issuer: "browserid.org", status: "okay" }http://www.x.com http://slideshare.net/jcleblanc
  • What We’re Going to Cover The Foundations of Human Identity Tribalism and Social Grouping Experimental Identity Methods The Big Bag of Social Identity Failhttp://www.x.com http://slideshare.net/jcleblanc
  • Social Identity Fail: Personal Safety When Social Discovery Impacts Personal Safety “My privacy concerns are not trite. They are linked to my actual physical safety” --Harriet Jacobs (Gizmodo)http://www.x.com http://slideshare.net/jcleblanc
  • Social Identity Fail: Privacy Concerns When Making Things Easy Impairs Privacy “Path Uploads Your Entire iPhone Contact List By Default” --Mark Hachman (PCMag)http://www.x.com http://slideshare.net/jcleblanc
  • Social Identity Fail: The Fine Line The Fine Line Between Insightful and Creepy “How Target Figured Out A Teen Girl Was Pregnant Before Her Father Did” --Kashmir Hill (Forbes)http://www.x.com http://slideshare.net/jcleblanc
  • Identity Programming Core Concepts Identity is more than just a login Have a social conscience Find the tool that: – Has the raw data that you need – Works with your businesshttp://www.x.com http://slideshare.net/jcleblanc
  • Thanks! Any Questions? http://slidesha.re/convergese_id Jonathan LeBlanc Developer Evangelist: X.commerce Twitter: @jcleblanc E-Mail: jleblanc@x.com Github: github.com/jcleblanc