SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: 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
 

Kürzlich hochgeladen (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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!
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: 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
 

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

Hinweis der Redaktion

  1. Personalized endpoint