SlideShare a Scribd company logo
1 of 43
Download to read offline
Heavy Duty YUI 3 & YQL
Eric Ferraiuolo
@ericf
http://tiptheweb.org
Community-Supported
Web Publishing
http://www.flickr.com/photos/alper/4094452745/
Live Demo
YUI 3 at TipTheWeb
A Lot of YUI 3
56YUI 3 Modules
http://www.flickr.com/photos/curiousexpeditions/489992128/
Top-Level Components
• Manage interactions within page
• Extends Y.Base uses ATTRS, Custom Events
•Y.BaseComponentMgr
•Y.Resource
Component Management
• Y.Base extension
• Adds COMPONENTS to Y.Base, think ATTRS
• Dependencies & Instances on-demand
• this.useComponent('foo', callback);
Y.BaseComponentMgr Example
// Defined statically
COMPONENTS : {
! myOverlay : {
! ! requires : ['overlay', 'gallery-overlay-extras'],
! ! initializer : '_initMyOverlay'
! }
}
// …Somewhere else
Y.one('#show').on('click', Y.bind(function(e){
this.useComponent('myOverlay', function(overlay){
overlay.show();
});
}, this));
RESTful Client
• RESTful HTTP semantics
• JSON in, JSON out
• Resource-scoped Events
Y.Resource Example
var r = new Y.Resource({ uri: 'path/to/{id}' });
r.GET({! // makes request to: path/to/123
! params!: { id: 123 },
! on! : {
! ! success : function(e){
! !
! ! ! // e.entity is an Object parsed from JSON
! ! !
! ! }
! }
});
Lots of Overlays
Overlay Extras
• Y.Plugin.OverlayModal
• Y.Plugin.OverlayKeepaligned
• Y.Plugin.OverlayAutohide
YQL at TipTheWeb
URLs
• http://925html.com/code/photos-around-you/
• http://www.flickr.com/photos/37592789@N00/5095656356/
• http://www.flickr.com/photos/fwiltrakis/5095656356/
• http://www.youtube.com/watch?v=8410qUT4QtA
• http://bit.ly/Bb6g0
URL Processing — Targeting Tips
Example: http://bit.ly/Bb6g0
1.Determine Integration, If Any
2.Gather URL Data
3.Cache & Return Results
SELECT * FROM targetresolver
WHERE url="http://bit.ly/Bb6g0"
Determine Integration, If Any
http://bit.ly/Bb6g0
bit.ly Matches?
Determine Integration, If Any
http://bit.ly/Bb6g0
bit.ly Matches?
No, Request Page
Determine Integration, If Any
http://bit.ly/Bb6g0
bit.ly Matches?
No, Request Page
SELECT url FROM docresolver
WHERE url="http://bit.ly/Bb6g0"
Determine Integration, If Any
http://bit.ly/Bb6g0
bit.ly Matches?
Redirected?
No, Request Page
Determine Integration, If Any
http://bit.ly/Bb6g0
bit.ly Matches?
Redirected?
No, Request Page
Yes, http://www.youtube.com/watch?v=8410qUT4QtA
Determine Integration, If Any
http://bit.ly/Bb6g0
bit.ly Matches?
Redirected?
No, Request Page
Yes, http://www.youtube.com/watch?v=8410qUT4QtA
youtube.com Matches?
Determine Integration, If Any
http://bit.ly/Bb6g0
bit.ly Matches?
Redirected?
No, Request Page
Yes, http://www.youtube.com/watch?v=8410qUT4QtA
youtube.com Matches?
Yes, Load Integration
Determine Integration, If Any
http://bit.ly/Bb6g0
bit.ly Matches?
Redirected?
No, Request Page
Yes, http://www.youtube.com/watch?v=8410qUT4QtA
youtube.com Matches?
Yes, Load Integration
y.include("store://youtube.js");
Gather URL Data
http://www.youtube.com/watch?v=8410qUT4QtA
Matches Video URL?
Gather URL Data
http://www.youtube.com/watch?v=8410qUT4QtA
Matches Video URL?
Yes, 8410qUT4QtA
Gather URL Data
http://www.youtube.com/watch?v=8410qUT4QtA
Matches Video URL?
Is YouTube Video?
Yes, 8410qUT4QtA
Gather URL Data
http://www.youtube.com/watch?v=8410qUT4QtA
Matches Video URL?
Is YouTube Video?
Yes, 8410qUT4QtA
SELECT title, author FROM youtube.videos
where id="8410qUT4QtA"
Gather URL Data
http://www.youtube.com/watch?v=8410qUT4QtA
Matches Video URL?
Is YouTube Video?
Yes, 8410qUT4QtA
Yes, Valid YouTube Video
Gather URL Data
http://www.youtube.com/watch?v=8410qUT4QtA
Matches Video URL?
Is YouTube Video?
Yes, 8410qUT4QtA
Yes, Valid YouTube Video
Gather Video MetaData
Gather URL Data
http://www.youtube.com/watch?v=8410qUT4QtA
Matches Video URL?
Is YouTube Video?
Yes, 8410qUT4QtA
Yes, Valid YouTube Video
Gather Video MetaData
{
"author": "…",
"title": "…"
}
• Cache Result for 1 hour
• Return Target Data:
Cache & Return Results
{
! "link"! : "http://www.youtube.com/watch?
v=8410qUT4QtA",
! "title"!: "Chicken Techno by Oli Chang",
! "target": "youtube:unicornhunters"
}
Requests Made By YQL
1.Requested: http://bit.ly/Bb6g0
2.Redirected: http://www.youtube.com/
watch?v=8410qUT4QtA
3.Included: store://youtube.js
4.Requested: Google GData Video Feed
YQL via the Browser
• Thick-clients can do real work
• Off-load YQL requests
• Rate limits become a non-issue
• Server’s resources freed-up
YQL via YUI 3
• Spread load and rate limits to browsers
• Guinea pig for Dav Glass’ YQL module for YUI
• Y.YQL(query, callback);
Y.YQL('SELECT * FROM targetresolver WHERE url="…"',
! function(r) {
!
! var results = r.query.results;
!
});
http://www.flickr.com/photos/monkeyc/231565309/
• Cached results are not rate limited!
• ?_maxage=3600
• response.maxAge=3600;
Caching
Timeout
• Preventing table lock!
• request.timeout(25000);
• y.rest(url).timeout(25000);
• y.query(query, params, 25000);
timer.getRemaining()
timer = (function(){
! timeout = timeout > 29000 ? 29000 : timeout;
! var start = new Date().getTime();
!
! return {
! ! getRemaining : function () {
! ! ! var now = new Date().getTime(),
! ! ! ! elapsed = now - start,
! ! ! ! remaining = timeout - elapsed;
! ! ! !
! ! ! return ( remaining > 0 ? remaining : 0 );
! ! }
! };
}());
Summary
• YUI 3 & YQL— enabling small teams
• YUI 3 top-level components
• YQL— cache, timeout, access via browser
Invite Code: yuiconf
Eric Ferraiuolo
@ericf
http://tiptheweb.org

More Related Content

Similar to TipTheWeb.org - Heavy Duty YUI 3 & YQL

YQL - Christian Heilmann Open Hack London presentation
YQL - Christian Heilmann Open Hack London presentationYQL - Christian Heilmann Open Hack London presentation
YQL - Christian Heilmann Open Hack London presentation
Korben00
 
Video Archiving and Playback in the Wayback Machine
Video Archiving and Playback in the Wayback MachineVideo Archiving and Playback in the Wayback Machine
Video Archiving and Playback in the Wayback Machine
Sawood Alam
 

Similar to TipTheWeb.org - Heavy Duty YUI 3 & YQL (20)

YQL: Hacking on steroids - Yahoo! Open Hack Day 2012
YQL: Hacking on steroids - Yahoo! Open Hack Day 2012YQL: Hacking on steroids - Yahoo! Open Hack Day 2012
YQL: Hacking on steroids - Yahoo! Open Hack Day 2012
 
YQL & Yahoo! Apis
YQL & Yahoo! ApisYQL & Yahoo! Apis
YQL & Yahoo! Apis
 
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
 
YQL - HackU IIT Madras 2012
YQL - HackU IIT Madras 2012YQL - HackU IIT Madras 2012
YQL - HackU IIT Madras 2012
 
Yql hacku iitd_2012
Yql hacku iitd_2012Yql hacku iitd_2012
Yql hacku iitd_2012
 
Essential digital resources (2011 version)
Essential digital resources (2011 version)Essential digital resources (2011 version)
Essential digital resources (2011 version)
 
Yql with geo
Yql with geoYql with geo
Yql with geo
 
YQL - Christian Heilmann Open Hack London presentation
YQL - Christian Heilmann Open Hack London presentationYQL - Christian Heilmann Open Hack London presentation
YQL - Christian Heilmann Open Hack London presentation
 
Web services and JavaScript
Web services and JavaScriptWeb services and JavaScript
Web services and JavaScript
 
YQL & Yahoo! APIs - Open Hack India 2011
YQL & Yahoo! APIs - Open Hack India 2011YQL & Yahoo! APIs - Open Hack India 2011
YQL & Yahoo! APIs - Open Hack India 2011
 
C___oop_to_Advanced zarif.pptx
C___oop_to_Advanced zarif.pptxC___oop_to_Advanced zarif.pptx
C___oop_to_Advanced zarif.pptx
 
Query the web with YQL
Query the web with YQLQuery the web with YQL
Query the web with YQL
 
Video Archiving and Playback in the Wayback Machine
Video Archiving and Playback in the Wayback MachineVideo Archiving and Playback in the Wayback Machine
Video Archiving and Playback in the Wayback Machine
 
Building Video Applications with YouTube APIs
Building Video Applications with YouTube APIsBuilding Video Applications with YouTube APIs
Building Video Applications with YouTube APIs
 
Search 500-video-clips
Search 500-video-clipsSearch 500-video-clips
Search 500-video-clips
 
Creating custom modules using YUI3
Creating custom modules using YUI3Creating custom modules using YUI3
Creating custom modules using YUI3
 
Open Hack London - Introduction to YQL
Open Hack London - Introduction to YQLOpen Hack London - Introduction to YQL
Open Hack London - Introduction to YQL
 
Technology Tips for Administrators
Technology Tips for AdministratorsTechnology Tips for Administrators
Technology Tips for Administrators
 
Embedded Videos: from Invisibility to Visibility
Embedded Videos: from Invisibility to VisibilityEmbedded Videos: from Invisibility to Visibility
Embedded Videos: from Invisibility to Visibility
 
Masal 2010 b&b - v13
Masal 2010   b&b - v13Masal 2010   b&b - v13
Masal 2010 b&b - v13
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

TipTheWeb.org - Heavy Duty YUI 3 & YQL