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