SlideShare a Scribd company logo
Faking Data (Building a Real-looking Demo Account) Philip Sharp @philipsharp Clearspring / AddThis DC PHP July 13, 2011
Screenshots are useful... Features/Tour
Help
Marketing
Screenshots are not a demo. Nor do they keep themselves up-to-date. (The same thing goes for videos.)
Neither is a free trial.
We collect data. People want to see how it looks up-front. (We're not all Google. GA doesn't need a demo.)
A good demo requires good data. (Chartbeat is lucky. But we can't all show Fred Wilson's data.)
Obfuscate if you can. demoPayees = [“Joe's Widgets”, ” ACME Explosives”, “ Frank's Fish Fry”] transaction = { “ datetime”: “2011-07-13 18:52:22” “ payee”:  “Churchkey”, “ ammount”: 145.23 } transaction.payee = demoPayees[rand(0,2)];
Make your own if you can. { “ username”: “frodo” “ name”: “Frodo Baggins” rings: 1 }
Some data doesn't cooperate. URLs
Titles
Big Data GET /atapi/pub/shares/content?pubid=xa-4e1df9914f1a6d69 &dates=110706-110712&type=bm%2Cem%2Cfl%2Cif%2Cab &domain=www.example.com&range=0%2C20 [[" http://www.example.com.com/blog/2011/07/big-news ","Example Blog :: Big News",4990]]
Choose Your Inputs Services (top 50)
Countries (top 50)
Ruleset: Domain
URLs
Keywords
Referers
'demo-oz-emeraldcity'   =>   array ( 'emeraldcity.gov.oz'   =>   array ( 'target'   =>   5000 , 'urls'   =>   array ( array ( '/' ,   'The Emerald City' ), array ( '/tourism' ,   'The Emerald City - Oz\'s Premiere Road-Trip Destination' ), array ( '/tourism/things-to-do' ,   'The Emerald City - Things to Do' ), array ( '/tourism/things-to-do/balloon-rides' ,   'The Emerald City - Things to Do - Balloon Rides' ), array ( '/tourism/things-to-do/horse-rides' ,   'The Emerald City - Things to Do -  Horse Rides' ), array ( '/mayor' ,   'The Emerald City - Mayor\'s Office' ) ), 'referers'   =>   array ( '' , 'google.oz' , 'bing.oz' , 'yahoo.oz' , 'search.oz' ), 'keywords'   =>   array ( '' , 'oz' ,   'vacations' ,   'green' ,   'emerald' ,   'sunglasses' ) ), 'wizard.oz'   =>   array ( 'target'   =>   3000 , 'urls'   =>   array ( array ( '/' ,   'The Wizard of Oz' ), array ( '/the-wizard' ,   'The Wizard of Oz :: The Wizard' ), array ( '/seeking-audience' ,   'The Wizard of Oz :: Seeking Audience With The Wizard' ), array ( '/contact-us' ,   'The Wizard of Oz :: Contact Us' ) ), 'referers'   =>   array ( '' ), 'keywords'   =>   array ( '' ) ) ),
foreach
$shareMagnifier =  $countrySharePercentage * $serviceSharePercentage * $browserSharePercentage / 100000; $combinationTarget = $domain['target'] / count($domain['urls']) / count($domain['referers']) / count($domain['keywords']); $dayMultiplier = (($daysOfData - $day) / 100) + 1; $combinationShares[-$day] = floor(rand(1,100) * $shareMagnifier * $dayMultiplier * ($combinationTarget / 50));

More Related Content

PPTX
Ancillary tasks - Magazines
PDF
Travel Services with Indebo
PDF
The Even Darker Art Of Rails Engines Presentation
PPT
Php Basic Security
TXT
noobless gaming
PDF
Exploring JSON With jq
ODP
3rd-Party Authn/Authz
Ancillary tasks - Magazines
Travel Services with Indebo
The Even Darker Art Of Rails Engines Presentation
Php Basic Security
noobless gaming
Exploring JSON With jq
3rd-Party Authn/Authz

Similar to Faking Data (20)

DOC
PHP code examples
PDF
Playing With The Web
PPTX
SearchLove London | Matt Beswick, 'Get More From Your Content'
PDF
Teaching Your Machine To Find Fraudsters
PPT
How to Build a Yahoo! SearchMonkey App
PDF
PHP tips and tricks
PDF
Awesome Tools 2017
PDF
Php tips-and-tricks4128
PDF
Performance measurement and tuning
 
KEY
Spl Not A Bridge Too Far phpNW09
PPTX
Securing and Personalizing Commerce Using Identity Data Mining
PDF
Keyword Research for Professionals - SMX Stockholm 2012
PPT
Introduction To Mashups - Mashup Camp 5 - Dublin
PPTX
Sitemaps
PDF
Sitemaps
PDF
Ekoparty 2017 - The Bug Hunter's Methodology
PDF
Creating an Effective Mobile API
ZIP
DataSift Historics in 5 Steps
PPTX
Jeremy cabral search marketing summit - scraping data-driven content (1)
PPTX
Streamlining your content marketing process by Matt Beswick | SemDays 2015
PHP code examples
Playing With The Web
SearchLove London | Matt Beswick, 'Get More From Your Content'
Teaching Your Machine To Find Fraudsters
How to Build a Yahoo! SearchMonkey App
PHP tips and tricks
Awesome Tools 2017
Php tips-and-tricks4128
Performance measurement and tuning
 
Spl Not A Bridge Too Far phpNW09
Securing and Personalizing Commerce Using Identity Data Mining
Keyword Research for Professionals - SMX Stockholm 2012
Introduction To Mashups - Mashup Camp 5 - Dublin
Sitemaps
Sitemaps
Ekoparty 2017 - The Bug Hunter's Methodology
Creating an Effective Mobile API
DataSift Historics in 5 Steps
Jeremy cabral search marketing summit - scraping data-driven content (1)
Streamlining your content marketing process by Matt Beswick | SemDays 2015
Ad

Recently uploaded (20)

PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPT
What is a Computer? Input Devices /output devices
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
Getting Started with Data Integration: FME Form 101
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Architecture types and enterprise applications.pdf
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
1. Introduction to Computer Programming.pptx
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PPTX
OMC Textile Division Presentation 2021.pptx
A comparative study of natural language inference in Swahili using monolingua...
Group 1 Presentation -Planning and Decision Making .pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
What is a Computer? Input Devices /output devices
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
NewMind AI Weekly Chronicles – August ’25 Week III
cloud_computing_Infrastucture_as_cloud_p
A contest of sentiment analysis: k-nearest neighbor versus neural network
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
observCloud-Native Containerability and monitoring.pptx
Getting Started with Data Integration: FME Form 101
Getting started with AI Agents and Multi-Agent Systems
Hindi spoken digit analysis for native and non-native speakers
1 - Historical Antecedents, Social Consideration.pdf
Developing a website for English-speaking practice to English as a foreign la...
Architecture types and enterprise applications.pdf
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
1. Introduction to Computer Programming.pptx
O2C Customer Invoices to Receipt V15A.pptx
OMC Textile Division Presentation 2021.pptx
Ad

Faking Data

  • 1. Faking Data (Building a Real-looking Demo Account) Philip Sharp @philipsharp Clearspring / AddThis DC PHP July 13, 2011
  • 5. Screenshots are not a demo. Nor do they keep themselves up-to-date. (The same thing goes for videos.)
  • 6. Neither is a free trial.
  • 7. We collect data. People want to see how it looks up-front. (We're not all Google. GA doesn't need a demo.)
  • 8. A good demo requires good data. (Chartbeat is lucky. But we can't all show Fred Wilson's data.)
  • 9. Obfuscate if you can. demoPayees = [“Joe's Widgets”, ” ACME Explosives”, “ Frank's Fish Fry”] transaction = { “ datetime”: “2011-07-13 18:52:22” “ payee”: “Churchkey”, “ ammount”: 145.23 } transaction.payee = demoPayees[rand(0,2)];
  • 10. Make your own if you can. { “ username”: “frodo” “ name”: “Frodo Baggins” rings: 1 }
  • 11. Some data doesn't cooperate. URLs
  • 13. Big Data GET /atapi/pub/shares/content?pubid=xa-4e1df9914f1a6d69 &dates=110706-110712&type=bm%2Cem%2Cfl%2Cif%2Cab &domain=www.example.com&range=0%2C20 [[" http://www.example.com.com/blog/2011/07/big-news ","Example Blog :: Big News",4990]]
  • 14. Choose Your Inputs Services (top 50)
  • 17. URLs
  • 20. 'demo-oz-emeraldcity' => array ( 'emeraldcity.gov.oz' => array ( 'target' => 5000 , 'urls' => array ( array ( '/' , 'The Emerald City' ), array ( '/tourism' , 'The Emerald City - Oz\'s Premiere Road-Trip Destination' ), array ( '/tourism/things-to-do' , 'The Emerald City - Things to Do' ), array ( '/tourism/things-to-do/balloon-rides' , 'The Emerald City - Things to Do - Balloon Rides' ), array ( '/tourism/things-to-do/horse-rides' , 'The Emerald City - Things to Do - Horse Rides' ), array ( '/mayor' , 'The Emerald City - Mayor\'s Office' ) ), 'referers' => array ( '' , 'google.oz' , 'bing.oz' , 'yahoo.oz' , 'search.oz' ), 'keywords' => array ( '' , 'oz' , 'vacations' , 'green' , 'emerald' , 'sunglasses' ) ), 'wizard.oz' => array ( 'target' => 3000 , 'urls' => array ( array ( '/' , 'The Wizard of Oz' ), array ( '/the-wizard' , 'The Wizard of Oz :: The Wizard' ), array ( '/seeking-audience' , 'The Wizard of Oz :: Seeking Audience With The Wizard' ), array ( '/contact-us' , 'The Wizard of Oz :: Contact Us' ) ), 'referers' => array ( '' ), 'keywords' => array ( '' ) ) ),
  • 22. $shareMagnifier = $countrySharePercentage * $serviceSharePercentage * $browserSharePercentage / 100000; $combinationTarget = $domain['target'] / count($domain['urls']) / count($domain['referers']) / count($domain['keywords']); $dayMultiplier = (($daysOfData - $day) / 100) + 1; $combinationShares[-$day] = floor(rand(1,100) * $shareMagnifier * $dayMultiplier * ($combinationTarget / 50));
  • 24. Using It Demo Accounts Demo Profiles
  • 25. OOP to the rescue. /** * Hydra Package API demo wrapper * * @author philip * @requires Zend Framework */ class AT_Hydra_Package_Service_Demo extends AT_Hydra_Package_Service { … } $dataModel->setService(new AT_Hydra_Package_Service_Demo());
  • 26. But wait, there's more. Browsers and Operating Systems
  • 30. $radian = ($minute / 1440) * 2 * M_PI + (1.25 * M_PI); $sin = sin($radian) + 1.05; $shares = round(rand(1,100) * $sin * $shareMagnifier * $combinationTarget);
  • 31. Dangers 0.00000001 * [Just about anything] is a really small number

Editor's Notes

  • #2: Who am I. What we do.
  • #3: People want to see the product. Our people want to show it off.
  • #8: (save, edit, publish) manually, automatically
  • #9: Point your site to a demo db.
  • #10: Hard to obfuscate. Tedious to make manually.
  • #11: cant store random stuff explicitly by-day
  • #16: Date is rolling
  • #18: passthrough where ok override where ok reformat data