Intro To Mashups

2,234 views

Published on

For the novices at Mashup University, this will be the sort of icebreaker that should help you to understand the rest of the material that you'll be exposed to during the rest Mashup University.

Published in: Technology
1 Comment
6 Likes
Statistics
Notes
  • Non avevo mai sentito parlare di mashup, e da questa introduzione l'idea che mi sono fatto è che è davvero interessante; vedo poi che utilizza tante di quelle tecnologie che sicuramente lo rendono uno strumento più potente di quanto non se ne intuisca immediatamente.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,234
On SlideShare
0
From Embeds
0
Number of Embeds
67
Actions
Shares
0
Downloads
0
Comments
1
Likes
6
Embeds 0
No embeds

No notes for slide
  • © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. MGB 2003
  • Intro To Mashups

    1. 1. Introduction to Mashup Development John Herren Developer, Consultant, Masher-upper Mashup Camp III, Boston MA
    2. 2. 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>
    3. 3. Characteristics of Mashups <ul><li>Combination </li></ul><ul><li>Visualization </li></ul><ul><li>Aggregation </li></ul>
    4. 4. Combination <ul><li>Join across dimensions </li></ul><ul><li>Subject + Time/Place + ... </li></ul><ul><li>Bands I like + Where I live + Eventful.com + Yahoo! music search = nifty mashup </li></ul>
    5. 5. Visualization ChicagoCrime.org
    6. 6. Visualization ChicagoCrime.org
    7. 7. 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>
    8. 8. Why Mashup? <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! - Fulfil the underpants gnome prophecy </li></ul>
    9. 9. 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>
    10. 10. 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>
    11. 11. 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>
    12. 12. How? <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>
    13. 13. Development Goals <ul><li>Be lazy! </li></ul><ul><li>Abstract the plumbing </li></ul><ul><li>Don't reinvent the wheel </li></ul><ul><li>Spend time on the good stuff </li></ul>
    14. 14. Web Service Pattern <ul><li>Request – Response* </li></ul><ul><li>Similar to a database query </li></ul><ul><ul><li>Request == Query </li></ul></ul><ul><ul><li>Iterate over response (result set) </li></ul></ul>
    15. 15. 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>
    16. 16. 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>
    17. 17. SOAP Structure <ul><li>Envelope </li></ul><ul><li>Faults </li></ul><ul><li>WSDL </li></ul>
    18. 18. 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>'type' => 'lite', //or heavy </li></ul></ul><ul><ul><li>'devtag' => 'YOURAPIKEY'); </li></ul></ul><ul><li>$result = $client->KeywordSearchRequest($params); </li></ul>
    19. 19. 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>
    20. 20. 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>
    21. 21. RSS <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><ul><ul><li>And another Demo.... </li></ul></ul>
    22. 22. AJAX <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><ul><li>Demo </li></ul>
    23. 23. 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>
    24. 24. 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>Google AJAX Search API </li></ul><ul><li>Demo </li></ul>
    25. 25. Mashup Tools <ul><li>ning.com </li></ul><ul><li>openkapow.com </li></ul><ul><li>Dappr http://dappit.com </li></ul><ul><li>Amazon S3, EC2 </li></ul>
    26. 26. Pain Points <ul><li>API abuse & metering </li></ul><ul><li>API versioning </li></ul><ul><li>IP & Copyright </li></ul><ul><li>Reliability & TOS </li></ul><ul><li>(Monetization) </li></ul><ul><li>Privacy, security, ... </li></ul>
    27. 27. 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>
    28. 28. 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><ul><li>Original Signal </li></ul><ul><ul><li>http://www.originalsignal.com </li></ul></ul>

    ×