SlideShare una empresa de Scribd logo
1 de 42
YQL
Paul Donnelly (@pjdonnelly)
YQL Team
When creating an application the
heart of the project is the data.
So how do we get data?
So how do we get data?

- API’s(flickr, twitter)
- Spreadsheets (yahoo finance csv, google docs)
- RSS (blogs, news)
- HTML pages
Many applications require more then
one source of data from different
providers.
This can get complicated very quickly.
This can get complicated very quickly.

For each web service I need to:
 Read API docs
 Figure out REST endpoints
 Figure out rate limits
 Figure out syntax
YQL TO THE RESCUE

           YQL is an expressive SQL-like
           language that lets you
           query, filter, and join data across
           Web services.
            SQL = familiar
            Not limited to just Yahoo web
             services, but any web service.
            Single access point
            Learn the YQL syntax to filter
             data instead of learning an
             individual API.
YQL TO THE RESCUE


   Using YQL, accessing the web and
   it’s API’s becomes as simple as
   SQL:

   select {what} from
   {service} where
   {condition}
RSS AGGREGATION

select * from feed where url in
("http://feeds.feedburner.com/TechCru
nch/","http://allthingsd.com/feed/")
RSS AGGREGATION

select title,description from feed where
url in
("http://feeds.feedburner.com/TechCru
nch/","http://allthingsd.com/feed/")
RSS AGGREGATION

select title,description from feed where
url in
("http://feeds.feedburner.com/TechCru
nch/","http://allthingsd.com/feed/") |
sort(field="pubDate", descending="true
”)
SORT AND OTHER METHODS
Anything right of the | is performed after all select
operations are done.

Valid methods:
• sort
• tail (gets the last count items)
• truncate (gets the first count items)
• reverse
• unique (no duplicates)
• sanitize (emit safe html, prevents XSS)
HTML SCRAPING (SCRAY-P-I)

Pinterest doesn’t (currently) have an
API for it’s top 50 pins.
HTML SCRAPING (SCRAY-P-I)




select * from html where url
=
"http://pinterest.com/popular/
" and xpath =
"//a[@class='PinImage
ImgLink']"
HTML SCRAPING (SCRAY-P-I)
FLICKR

First get a Flickr API Key:

flickr.com/services/apps/create/apply
FLICKR

Query for pizza:

select * from flickr.photos.search
where text="pizza" and
api_key="5b7b21a3d44ed659e1341
0edee783a3b" limit 10
FLICKR
Query for pizza:
FLICKR
Query for pizza:

select source from flickr.photos.sizes
where photo_id in (select id from
flickr.photos.search where
text=”pizza" and api_key=“” and
sort="relevance") and api_key=“”
and label="Medium"
FLICKR
Query for pizza:
HOW DO I ACCESS YQL


Public Endpoint:
http://query.yahooapis.com/v1/public
/yql?q={query}&format={format}
HOW DO I ACCESS YQL


Formats
Current outputs are XML or JSON or
JSON-P
HOW DO I ACCESS YQL


YQL Console:
developer.yahoo.com/yql/conso
le/
YQL CONSOLE
CONSOLE PARAMETERS - DIAGNOSTICS
CONSOLE PARAMETERS - DEBUG
CONSOLE PARAMETERS – DEBUG CONTD.
CONSOLE TIPS – REST QUERY
CONSOLE TIPS – COMMUNITY TABLES
CONSOLE TIPS – PERMALINK & ALIAS
TABLE EDITOR

• Rapid YQL table prototyping
    • Create YQL tables
    • Create YQL Environment files
    • Create YQL Javascript execute files
• Sample templates for all three
• Nifty drag & drop support
• All the above stored in the Yahoo! Cloud
• http://developer.yahoo.com/yql/editor
TABLE EDITOR – SAMPLE TABLE
YQL IN YAHOO PIPES

• http://pipes.yahoo.com
• Easy way to create RSS and create
complex data flows using a visual
editor.
• NEW!! YQL method
    • y.pipe(“pipeid”,”<obj params>”)
YQL IN YAHOO PIPES
RECAP
YQL FORMATS

• Accepts JSON, XML, CSV
• Outputs XML, JSON, JSONP
• Provides data type transformers and mutators
• Tidies up data sources for you (html table)
• Lets you spend more time building your app
FAST, GLOBALLY AVAILABLE

• Deployed across the globe
• Both front and back facing caches
• Developers can control cache behavior
    • _maxage=<seconds> parameter
    • _stalewhilerevalidate=<seconds> parameter
• Rate limited for external developers
    • 2000 calls per hour per IP on public endpoint
    • 20000 on OAuth protected endpoint
APP DEVELOPMENT USING YQL

• Pick open tables or base YQL tables to build
your app.
• Build new ones for your API if needed
• Test the tables in the YQL console
• Use the YUI-YQL module to get data
• Or just call the REST query endpoint
TIPS

Search github.com/yql for table examples:




Use: http://developer.yahoo.com/yql/guide/
Use: http://christianheilmann.com/tag/yql/ for
awesome examples and inspiration
THANKS

Site: http://developer.yahoo.com/yql/
Community:
   http://www.yqlblog.net/
   http://www.datatables.org/
   https://github.com/yql/yql-tables
Email: yql-questions@yahoo-inc.com
Twitter: @pjdonnelly

Más contenido relacionado

La actualidad más candente

A Practical Guide to Hypermedia APIs
A Practical Guide to Hypermedia APIsA Practical Guide to Hypermedia APIs
A Practical Guide to Hypermedia APIsSmartLogic
 
Ajax ppt - 32 slides
Ajax ppt - 32 slidesAjax ppt - 32 slides
Ajax ppt - 32 slidesSmithss25
 
AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)Igor Talevski
 
ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)Michael Rys
 
All your data belong to us - The Active Objects Plugin
All your data belong to us - The Active Objects PluginAll your data belong to us - The Active Objects Plugin
All your data belong to us - The Active Objects PluginSamuel Le Berrigaud
 
Introduction to Foxx by our community member Iskandar Soesman @ikandars
Introduction to Foxx by our community member Iskandar Soesman @ikandarsIntroduction to Foxx by our community member Iskandar Soesman @ikandars
Introduction to Foxx by our community member Iskandar Soesman @ikandarsArangoDB Database
 
Experience with C++11 in ArangoDB
Experience with C++11 in ArangoDBExperience with C++11 in ArangoDB
Experience with C++11 in ArangoDBMax Neunhöffer
 
Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)Michael Rys
 
Rapid API Development ArangoDB Foxx
Rapid API Development ArangoDB FoxxRapid API Development ArangoDB Foxx
Rapid API Development ArangoDB FoxxMichael Hackstein
 
Skillwise - Advanced web application development
Skillwise - Advanced web application developmentSkillwise - Advanced web application development
Skillwise - Advanced web application developmentSkillwise Group
 
OData RESTful implementation
OData RESTful implementationOData RESTful implementation
OData RESTful implementationHari Wiz
 
Using C# with U-SQL (SQLBits 2016)
Using C# with U-SQL (SQLBits 2016)Using C# with U-SQL (SQLBits 2016)
Using C# with U-SQL (SQLBits 2016)Michael Rys
 
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)U-SQL User-Defined Operators (UDOs) (SQLBits 2016)
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)Michael Rys
 
Kotlin db migration tool
Kotlin db migration toolKotlin db migration tool
Kotlin db migration toolKenji Otsuka
 

La actualidad más candente (20)

A Practical Guide to Hypermedia APIs
A Practical Guide to Hypermedia APIsA Practical Guide to Hypermedia APIs
A Practical Guide to Hypermedia APIs
 
Ajax ppt - 32 slides
Ajax ppt - 32 slidesAjax ppt - 32 slides
Ajax ppt - 32 slides
 
AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)
 
Chapter 15
Chapter 15Chapter 15
Chapter 15
 
ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)
 
Ajax and PHP
Ajax and PHPAjax and PHP
Ajax and PHP
 
Deep Dive on ArangoDB
Deep Dive on ArangoDBDeep Dive on ArangoDB
Deep Dive on ArangoDB
 
All your data belong to us - The Active Objects Plugin
All your data belong to us - The Active Objects PluginAll your data belong to us - The Active Objects Plugin
All your data belong to us - The Active Objects Plugin
 
Introduction to Foxx by our community member Iskandar Soesman @ikandars
Introduction to Foxx by our community member Iskandar Soesman @ikandarsIntroduction to Foxx by our community member Iskandar Soesman @ikandars
Introduction to Foxx by our community member Iskandar Soesman @ikandars
 
ajax - the basics
ajax - the basicsajax - the basics
ajax - the basics
 
PHP - Introduction to PHP AJAX
PHP -  Introduction to PHP AJAXPHP -  Introduction to PHP AJAX
PHP - Introduction to PHP AJAX
 
Experience with C++11 in ArangoDB
Experience with C++11 in ArangoDBExperience with C++11 in ArangoDB
Experience with C++11 in ArangoDB
 
M Ramya
M RamyaM Ramya
M Ramya
 
Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)
 
Rapid API Development ArangoDB Foxx
Rapid API Development ArangoDB FoxxRapid API Development ArangoDB Foxx
Rapid API Development ArangoDB Foxx
 
Skillwise - Advanced web application development
Skillwise - Advanced web application developmentSkillwise - Advanced web application development
Skillwise - Advanced web application development
 
OData RESTful implementation
OData RESTful implementationOData RESTful implementation
OData RESTful implementation
 
Using C# with U-SQL (SQLBits 2016)
Using C# with U-SQL (SQLBits 2016)Using C# with U-SQL (SQLBits 2016)
Using C# with U-SQL (SQLBits 2016)
 
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)U-SQL User-Defined Operators (UDOs) (SQLBits 2016)
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)
 
Kotlin db migration tool
Kotlin db migration toolKotlin db migration tool
Kotlin db migration tool
 

Destacado

YQL + YUI: Building End-to-End Applications
YQL + YUI: Building End-to-End ApplicationsYQL + YUI: Building End-to-End Applications
YQL + YUI: Building End-to-End ApplicationsPaul Donnelly
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging ChallengesAaron Irizarry
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesUX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesNed Potter
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with DataSeth Familian
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

Destacado (6)

YQL + YUI: Building End-to-End Applications
YQL + YUI: Building End-to-End ApplicationsYQL + YUI: Building End-to-End Applications
YQL + YUI: Building End-to-End Applications
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging Challenges
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesUX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and Archives
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar a YQL Publicis Hackday

Yahoo! Query Language - Hadoop India Summit 2011
Yahoo! Query Language - Hadoop India Summit 2011Yahoo! Query Language - Hadoop India Summit 2011
Yahoo! Query Language - Hadoop India Summit 2011Saurabh Sahni
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiTiago Knoch
 
WPP Hackday presentation - YQL
WPP Hackday presentation - YQLWPP Hackday presentation - YQL
WPP Hackday presentation - YQLsriramiyer2007
 
Yui conf nov8-2010-introtoyql
Yui conf nov8-2010-introtoyqlYui conf nov8-2010-introtoyql
Yui conf nov8-2010-introtoyqlmirekgrymuza
 
Big data, just an introduction to Hadoop and Scripting Languages
Big data, just an introduction to Hadoop and Scripting LanguagesBig data, just an introduction to Hadoop and Scripting Languages
Big data, just an introduction to Hadoop and Scripting LanguagesCorley S.r.l.
 
Offline strategies for HTML5 web applications - pfCongres2012
Offline strategies for HTML5 web applications - pfCongres2012Offline strategies for HTML5 web applications - pfCongres2012
Offline strategies for HTML5 web applications - pfCongres2012Stephan Hochdörfer
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP TutorialLorna Mitchell
 
Advanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST APIAdvanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST APIRasan Samarasinghe
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document StoreRui Quelhas
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Open stack ocata summit  enabling aws lambda-like functionality with openstac...Open stack ocata summit  enabling aws lambda-like functionality with openstac...
Open stack ocata summit enabling aws lambda-like functionality with openstac...Shaun Murakami
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?Olivier DASINI
 
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...Indus Khaitan
 
ITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul ServicesITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul ServicesOrtus Solutions, Corp
 
YQL: Select * from Internet
YQL: Select * from InternetYQL: Select * from Internet
YQL: Select * from Internetdrgath
 
An Introduction to Tornado
An Introduction to TornadoAn Introduction to Tornado
An Introduction to TornadoGavin Roy
 
Designing RESTful APIs
Designing RESTful APIsDesigning RESTful APIs
Designing RESTful APIsanandology
 
REST Enabling Your Oracle Database
REST Enabling Your Oracle DatabaseREST Enabling Your Oracle Database
REST Enabling Your Oracle DatabaseJeff Smith
 

Similar a YQL Publicis Hackday (20)

Yahoo! Query Language - Hadoop India Summit 2011
Yahoo! Query Language - Hadoop India Summit 2011Yahoo! Query Language - Hadoop India Summit 2011
Yahoo! Query Language - Hadoop India Summit 2011
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
 
WPP Hackday presentation - YQL
WPP Hackday presentation - YQLWPP Hackday presentation - YQL
WPP Hackday presentation - YQL
 
SEA Open Hack - YQL
SEA Open Hack - YQLSEA Open Hack - YQL
SEA Open Hack - YQL
 
Yui conf nov8-2010-introtoyql
Yui conf nov8-2010-introtoyqlYui conf nov8-2010-introtoyql
Yui conf nov8-2010-introtoyql
 
YQL & Yahoo! Apis
YQL & Yahoo! ApisYQL & Yahoo! Apis
YQL & Yahoo! Apis
 
Big data, just an introduction to Hadoop and Scripting Languages
Big data, just an introduction to Hadoop and Scripting LanguagesBig data, just an introduction to Hadoop and Scripting Languages
Big data, just an introduction to Hadoop and Scripting Languages
 
Web api
Web apiWeb api
Web api
 
Offline strategies for HTML5 web applications - pfCongres2012
Offline strategies for HTML5 web applications - pfCongres2012Offline strategies for HTML5 web applications - pfCongres2012
Offline strategies for HTML5 web applications - pfCongres2012
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 
Advanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST APIAdvanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST API
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document Store
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Open stack ocata summit  enabling aws lambda-like functionality with openstac...Open stack ocata summit  enabling aws lambda-like functionality with openstac...
Open stack ocata summit enabling aws lambda-like functionality with openstac...
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
 
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...
 
ITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul ServicesITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul Services
 
YQL: Select * from Internet
YQL: Select * from InternetYQL: Select * from Internet
YQL: Select * from Internet
 
An Introduction to Tornado
An Introduction to TornadoAn Introduction to Tornado
An Introduction to Tornado
 
Designing RESTful APIs
Designing RESTful APIsDesigning RESTful APIs
Designing RESTful APIs
 
REST Enabling Your Oracle Database
REST Enabling Your Oracle DatabaseREST Enabling Your Oracle Database
REST Enabling Your Oracle Database
 

Último

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Último (20)

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

YQL Publicis Hackday

  • 1.
  • 3. When creating an application the heart of the project is the data.
  • 4. So how do we get data?
  • 5. So how do we get data? - API’s(flickr, twitter) - Spreadsheets (yahoo finance csv, google docs) - RSS (blogs, news) - HTML pages
  • 6. Many applications require more then one source of data from different providers.
  • 7. This can get complicated very quickly.
  • 8. This can get complicated very quickly. For each web service I need to:  Read API docs  Figure out REST endpoints  Figure out rate limits  Figure out syntax
  • 9. YQL TO THE RESCUE YQL is an expressive SQL-like language that lets you query, filter, and join data across Web services.  SQL = familiar  Not limited to just Yahoo web services, but any web service.  Single access point  Learn the YQL syntax to filter data instead of learning an individual API.
  • 10. YQL TO THE RESCUE Using YQL, accessing the web and it’s API’s becomes as simple as SQL: select {what} from {service} where {condition}
  • 11. RSS AGGREGATION select * from feed where url in ("http://feeds.feedburner.com/TechCru nch/","http://allthingsd.com/feed/")
  • 12. RSS AGGREGATION select title,description from feed where url in ("http://feeds.feedburner.com/TechCru nch/","http://allthingsd.com/feed/")
  • 13. RSS AGGREGATION select title,description from feed where url in ("http://feeds.feedburner.com/TechCru nch/","http://allthingsd.com/feed/") | sort(field="pubDate", descending="true ”)
  • 14. SORT AND OTHER METHODS Anything right of the | is performed after all select operations are done. Valid methods: • sort • tail (gets the last count items) • truncate (gets the first count items) • reverse • unique (no duplicates) • sanitize (emit safe html, prevents XSS)
  • 15. HTML SCRAPING (SCRAY-P-I) Pinterest doesn’t (currently) have an API for it’s top 50 pins.
  • 16. HTML SCRAPING (SCRAY-P-I) select * from html where url = "http://pinterest.com/popular/ " and xpath = "//a[@class='PinImage ImgLink']"
  • 18. FLICKR First get a Flickr API Key: flickr.com/services/apps/create/apply
  • 19. FLICKR Query for pizza: select * from flickr.photos.search where text="pizza" and api_key="5b7b21a3d44ed659e1341 0edee783a3b" limit 10
  • 21. FLICKR Query for pizza: select source from flickr.photos.sizes where photo_id in (select id from flickr.photos.search where text=”pizza" and api_key=“” and sort="relevance") and api_key=“” and label="Medium"
  • 23. HOW DO I ACCESS YQL Public Endpoint: http://query.yahooapis.com/v1/public /yql?q={query}&format={format}
  • 24. HOW DO I ACCESS YQL Formats Current outputs are XML or JSON or JSON-P
  • 25. HOW DO I ACCESS YQL YQL Console: developer.yahoo.com/yql/conso le/
  • 27. CONSOLE PARAMETERS - DIAGNOSTICS
  • 29. CONSOLE PARAMETERS – DEBUG CONTD.
  • 30. CONSOLE TIPS – REST QUERY
  • 31. CONSOLE TIPS – COMMUNITY TABLES
  • 32. CONSOLE TIPS – PERMALINK & ALIAS
  • 33. TABLE EDITOR • Rapid YQL table prototyping • Create YQL tables • Create YQL Environment files • Create YQL Javascript execute files • Sample templates for all three • Nifty drag & drop support • All the above stored in the Yahoo! Cloud • http://developer.yahoo.com/yql/editor
  • 34. TABLE EDITOR – SAMPLE TABLE
  • 35. YQL IN YAHOO PIPES • http://pipes.yahoo.com • Easy way to create RSS and create complex data flows using a visual editor. • NEW!! YQL method • y.pipe(“pipeid”,”<obj params>”)
  • 36. YQL IN YAHOO PIPES
  • 37. RECAP
  • 38. YQL FORMATS • Accepts JSON, XML, CSV • Outputs XML, JSON, JSONP • Provides data type transformers and mutators • Tidies up data sources for you (html table) • Lets you spend more time building your app
  • 39. FAST, GLOBALLY AVAILABLE • Deployed across the globe • Both front and back facing caches • Developers can control cache behavior • _maxage=<seconds> parameter • _stalewhilerevalidate=<seconds> parameter • Rate limited for external developers • 2000 calls per hour per IP on public endpoint • 20000 on OAuth protected endpoint
  • 40. APP DEVELOPMENT USING YQL • Pick open tables or base YQL tables to build your app. • Build new ones for your API if needed • Test the tables in the YQL console • Use the YUI-YQL module to get data • Or just call the REST query endpoint
  • 41. TIPS Search github.com/yql for table examples: Use: http://developer.yahoo.com/yql/guide/ Use: http://christianheilmann.com/tag/yql/ for awesome examples and inspiration
  • 42. THANKS Site: http://developer.yahoo.com/yql/ Community: http://www.yqlblog.net/ http://www.datatables.org/ https://github.com/yql/yql-tables Email: yql-questions@yahoo-inc.com Twitter: @pjdonnelly

Notas del editor

  1. Personalized endpoint