Mashup University 4: Intro To Mashups

17,175 views
17,010 views

Published on

Slides from John Herren's Introduction to Mashups session at Mashup University 4

Published in: Technology
2 Comments
30 Likes
Statistics
Notes
No Downloads
Views
Total views
17,175
On SlideShare
0
From Embeds
0
Number of Embeds
198
Actions
Shares
0
Downloads
751
Comments
2
Likes
30
Embeds 0
No embeds

No notes for slide

Mashup University 4: Intro To Mashups

  1. 1. Cross Entropy Reduction for Image Analysis Using Simulated Annealing and Fast Artificial Neural Networks Mashup Camp IV, Mountain View CA
  2. 2. Introduction to Mashup Development John Herren Developer, Consultant, Masher-upper Mashup Camp IV, Mountain View CA
  3. 3. My Current Gig
  4. 4. Wikipedia Says <ul><li>Mashup (music), a musical genre of songs that consist entirely of parts of other songs </li></ul><ul><li>Mashup (video), a video that is edited from more than one source to appear as one </li></ul><ul><li>Mashup (web application hybrid), a website or web application that combines content from more than one source </li></ul>
  5. 5. Do you have the mashup gene? <ul><li>Did you repurpose your toys as a kid? </li></ul><ul><li>Do you still? </li></ul><ul><li>LEGO maniac? </li></ul><ul><li>Do you embrace the web as the ultimate maker's platform? </li></ul><ul><li>Are you frustrated until you figure out how things work from the inside? </li></ul>
  6. 6. Do you have the mashup gene? <ul><li>Did you mourn the loss of Don Herbert? </li></ul>
  7. 7. Mashup Characteristics <ul><li>Combination </li></ul><ul><li>Visualization </li></ul><ul><li>Aggregation </li></ul>
  8. 8. Combination <ul><li>Use multiple data sources </li></ul><ul><li>Join across dimensions </li></ul><ul><li>Subject + Time/Place + ... </li></ul>
  9. 9. Combination Example <ul><li>Input: Bands I like + Where I live </li></ul><ul><li>Data Sources: Eventful.com + Yahoo! music search </li></ul><ul><li>Output: nifty mashup </li></ul>
  10. 10. Visualization Example ChicagoCrime.org
  11. 11. Visualization Example ChicagoCrime.org
  12. 12. Aggregation <ul><li>Group your data and take a measure </li></ul><ul><li>Sum, Avg, Min, Max </li></ul><ul><li>Create information from the data </li></ul><ul><li>Which becomes new data itself </li></ul><ul><li>Use algorithms as a substitute for creativity! </li></ul><ul><li>Classification, prediction, clustering, NLP </li></ul><ul><li>Uncover hidden aspects of your data </li></ul>
  13. 13. Aggregation Example
  14. 14. Why Mashup? <ul><li>Perfect prototyping platform </li></ul><ul><li>Hobby </li></ul><ul><li>Business </li></ul><ul><li>Embrace recursion </li></ul><ul><li>Embrace recursion </li></ul><ul><li>Profit! - Fulfill the underpants gnome prophecy </li></ul>
  15. 15. Step One <ul><li>Collect data sources. Use APIs to find </li></ul><ul><ul><li>Restaurant reviews </li></ul></ul><ul><ul><li>Crime statistics </li></ul></ul><ul><ul><li>Books about alpaca farming </li></ul></ul><ul><li>What's an API? </li></ul><ul><ul><li>Hotlinking 2.0? </li></ul></ul>
  16. 16. Step Two <ul><li>Make a mashup (duh)‏ </li></ul><ul><li>Bootstrap a niche </li></ul><ul><li>Exploit the long tail </li></ul>
  17. 17. Step Three <ul><li>Profit! </li></ul><ul><ul><li>15 minutes of blogosphere fame </li></ul></ul><ul><ul><li>Monetize traffic with ppc/cpm ads </li></ul></ul><ul><ul><li>Affiliate programs </li></ul></ul><ul><ul><li>Sell advanced features or memberships </li></ul></ul><ul><ul><li>Sell it as software </li></ul></ul><ul><ul><li>Early acquisition </li></ul></ul><ul><ul><li>Your dream interview </li></ul></ul><ul><ul><li>Win a Sun Microsystems 8-core 32GB RAM Sun Fire T2000 </li></ul></ul><ul><ul><li>(insert liquidity event here)‏ </li></ul></ul>
  18. 18. Case Study <ul><li>Yahoo! News Tag Soup </li></ul><ul><li>Yahoo! interviews </li></ul><ul><li>Tagcloud.com </li></ul><ul><li>Crazy press - Wired, TechCrunch </li></ul><ul><li>Mashup Camp I </li></ul><ul><li>Under the Radar </li></ul><ul><li>Crazy Growth, VC’s </li></ul><ul><li>Deadpool </li></ul><ul><li>? </li></ul>
  19. 19. The Mashup Pyramid GUI Tools Code Libraries APIs Data Feeds Platforms
  20. 20. Data Feeds <ul><li>RSS </li></ul><ul><li>ATOM </li></ul><ul><li>Demo </li></ul>
  21. 21. The Mashup Pyramid GUI Tools Code Libraries APIs Data Feeds Platforms
  22. 22. APIs <ul><li>Dynamic data feed </li></ul><ul><li>Specific to the data service </li></ul>
  23. 23. Feeds How-to <ul><li>Two turntables and a microphone </li></ul><ul><li>APIs and a scripting language </li></ul><ul><ul><li>Easy to prototype </li></ul></ul><ul><ul><li>Easy to deploy </li></ul></ul><ul><ul><li>Scripting language is rarely the bottleneck </li></ul></ul><ul><li>Two simple steps </li></ul><ul><ul><li>Request-Response* </li></ul></ul><ul><ul><li>Iterate over response (result set)‏ </li></ul></ul>
  24. 24. Response Handling <ul><li>Usually XML </li></ul><ul><ul><li>SimpleXML: $rss->channel->item[0]->title; </li></ul></ul><ul><li>JSON </li></ul><ul><li>Serialized Data </li></ul><ul><ul><li>$results = unserialize(file_get_contents($url)); </li></ul></ul><ul><li>YAML </li></ul>
  25. 25. SOAP <ul><li>Not really simple </li></ul><ul><li>Not really object access </li></ul><ul><li>Not really a protocol </li></ul><ul><li>But there is hope </li></ul>
  26. 26. SOAP in PHP <ul><li>$client = new SoapClient(&quot;AmazonWebServices.wsdl&quot;); </li></ul><ul><li>$params = array( </li></ul><ul><ul><li>'keyword' => 'alpacas', </li></ul></ul><ul><ul><li>'page' => 1, </li></ul></ul><ul><ul><li>'mode' => 'books', </li></ul></ul><ul><ul><li>'tag' => 'jhherren', </li></ul></ul><ul><ul><li>'devtag' => 'YOURAPIKEY'); </li></ul></ul><ul><li>$result = $client->KeywordSearchRequest($params); </li></ul>
  27. 27. XML-RPC <ul><li>Easier than SOAP </li></ul><ul><li>Supports typing </li></ul><ul><li>Uses system.methodSignature instead of WSDL </li></ul><ul><li>Popular with blogging apps </li></ul>
  28. 28. REST <ul><li>Representational State Transfer </li></ul><ul><li>Don't need extra layers </li></ul><ul><li>URI as resource </li></ul><ul><li>CRUD operations: GET, POST, PUT, DELETE </li></ul><ul><li>Stateless, cacheable, layered </li></ul><ul><li>(easier)‏ </li></ul>
  29. 29. RSS Example <ul><li>In Python: </li></ul><ul><li>import feedparser #by Mark Pilgrim </li></ul><ul><li>rss_url = &quot;http://feeds.feedburner.com/Techcrunch&quot; </li></ul><ul><li>feed = feedparser.parse(rss_url)‏ </li></ul><ul><li>for entry in feed.entries: </li></ul><ul><ul><li>print entry.title </li></ul></ul>
  30. 30. AJAX & Browser-Side <ul><li>Asynchronous Javascript and XML </li></ul><ul><li>a.k.a. XmlHttpRequest </li></ul><ul><li>Client side </li></ul><ul><li>XML, JSON, ... </li></ul>
  31. 31. The Mashup Pyramid GUI Tools Code Libraries APIs Data Feeds Platforms
  32. 32. Third-party Libraries & Frameworks <ul><li>Check the API providers first! </li></ul><ul><li>Web Frameworks: Django, Ruby on Rails, Zend Framework </li></ul><ul><li>Yahoo! code libraries </li></ul><ul><li>Google AJAX Search API </li></ul>
  33. 33. Zend Framework Example <?php require_once 'Zend/Service/Flickr.php'; $flickr = new Zend_Service_Flickr('MY_API_KEY'); $results = $flickr->tagSearch(&quot;llama&quot;); foreach ($results as $result) { echo $result->title . '<br />'; } ?>
  34. 34. The Mashup Pyramid GUI Tools Code Libraries APIs Data Feeds Platforms
  35. 35. GUI Mashup Tools <ul><li>Graphical widgets </li></ul><ul><li>Boxely </li></ul><ul><li>Adobe AIR </li></ul><ul><li>SnapLogic </li></ul>
  36. 36. The Mashup Pyramid GUI Tools Code Libraries APIs Data Feeds Platforms
  37. 37. Mashups Platforms <ul><li>No server needed </li></ul><ul><li>Graphical building tools </li></ul><ul><li>Think MS Access for mashups </li></ul><ul><li>Google Mashup Editor </li></ul><ul><li>Yahoo! Pipes </li></ul><ul><li>Boxely </li></ul><ul><li>Popfly </li></ul><ul><li>Dappr </li></ul><ul><li>Kapow </li></ul><ul><li>Facebook </li></ul><ul><li>(you really have no excuse now)‏ </li></ul>
  38. 38. Mashup Tools
  39. 39. Browser Based Authentication <ul><li>Login to the service, not the mashup </li></ul><ul><li>Provides anonymity, but not safety </li></ul><ul><li>Yahoo! BBAuth </li></ul><ul><li>Google AuthSub </li></ul>
  40. 40. The Mashup Pyramid GUI Tools Code Libraries APIs Data Feeds Rich, Easy Flexible, Low-level Platforms
  41. 41. Pain Points <ul><li>Latency & Scalability </li></ul><ul><li>API limits, abuse & metering </li></ul><ul><li>API versioning </li></ul><ul><li>IP, copyright, licensing </li></ul><ul><li>Reliability & SLA </li></ul><ul><li>Monetization </li></ul><ul><li>Privacy, security, identity </li></ul>
  42. 42. My Predictions <ul><li>More mobile mashups </li></ul><ul><li>More AI & datamining to supplement “user generated content” </li></ul><ul><li>Microformats catch on and get aggregated </li></ul><ul><li>OpenID catches on </li></ul><ul><li>“ Attention Capital”, “Attention Management” </li></ul>
  43. 43. The Reality <ul><li>Twitter </li></ul><ul><li>Facebook platform </li></ul>
  44. 44. New Predictions <ul><li>Increased competition among mashup platforms </li></ul><ul><li>iPhone, iPhone, iPhone </li></ul><ul><li>Microformat spam </li></ul><ul><li>The big players will implement OpenID </li></ul>
  45. 45. Resources <ul><li>Programmable Web </li></ul><ul><ul><li>http://programmableweb.com/ </li></ul></ul><ul><li>Yahoo Developer Network </li></ul><ul><ul><li>http://developer.yahoo.com </li></ul></ul><ul><li>Google Code </li></ul><ul><ul><li>http://code.google.com </li></ul></ul>

×