SlideShare a Scribd company logo
Standardizing web querying - Using YQL for accessing and exposing APIs
Agenda Introduction to YQL How to get started What’s supported through YQL Theme of the day – mim.yahoo.com Lots of examples using mim API  Mashup using YQL Introduction to more YQL goodies Server side javascript execution YQL hosted storage Concluding remarks ..lets keep it interactive
YQL – Yahoo Query Language Enables you to access Internet data with SQL-like commands YQL hides the complexity of Web service APIs by presenting data as simple tables, rows, and columns. YQL includes pre-defined tables for popular Yahoo! Web services such as Flickr, Search, Geo andMim. YQL can access services on the Internet that output data in the following formats: HTML, XML, JSON, RSS, Atom, and microformat. Create fast mashups reducing latency, code
How to get started Explore the APIs - http://developer.yahoo.com/everything.html Get a developer key - https://developer.apps.yahoo.com/wsregapp/ Read the documentation - http://developer.yahoo.com/yql/guide/ Visit the YQL Console - http://developer.yahoo.com/yql/console/ The YQL Console enables you to run YQL statements interactively from your browser.  Hack away..
Y! APIs supported by YQL Show tables Flickr Y! geo Y! local search Y! maps Y! mim Y! music Y! MyBlogLog Y! search Y! social Y! upcoming
External APIs supported by YQL Through datatables.org Show tables Amazon ECS AWS Bit.ly Comicvine Craigslist Del.icio.us Dopplr Facebook Friendfeed Github Google (News, Search, Translate) Guardian IMDB LastFm MediaWikiAPI Microsoft (Bing) Twitter Zillow
Theme of the day – mim.yahoo.com Mim has an YQL based API for everything – reading, searching, updating, deleting and so on. Profile information ofmimusers Followers/following information Query for users Listing mim posts of a user Popular posts Search for posts Inserting (posting to mim) through YQL ,[object Object],[object Object]
In JSON select * from meme.info where owner_guid=me {"query": {   "count": "1",         "created": "2009-11-19T10:33:11Z",   "lang": "en-US",      "updated": "2009-11-19T10:33:11Z",   "uri": "http://query.yahooapis.com/v1/yql?q=select+*+from+meme.info+where+owner_guid%3Dme",  "results": {    "meme": {     "guid": "NKADUBBZPUQQG6GF6AHTDTABSQ",     "name": "shreeni",          "title": "Shreeni'sMim",     "description": null,     "url": "http://mim.yahoo.com/shreeni/",     "avatar_url": "http://d.yimg.com/gg/shreeni/avatars/7a0d55f7d0aab9e326a7906a110f8027d46bd49b.jpeg",     "language": "en",           "followers": "18" }}}}
How to run YQL queries ,[object Object]
Use the YQL Console - http://developer.yahoo.com/yql/console/
Use a PHP SDK provided by Y! - http://developer.yahoo.com/social/sdk/#php,[object Object]
Selecting specific fields (also Followers API) select name from meme.followers where owner_guid = “NKADUBBZPUQQG6GF6AHTDTABSQ”  <results> 		     <meme>             <name>herry</name>         </meme>         <meme>             <name>grahamhills</name>         </meme>         <meme>             <name>fizzycitrus</name>         </meme>     </results>
Sub-select and Limits select name from meme.followers where owner_guid in (select guid from meme.info where name='shreeni’) limit 2  <results> 		     <meme>             <name>herry</name>         </meme>         <meme>             <name>grahamhills</name>         </meme> </results>
Functions select name from meme.followers where owner_guid in (select guid from meme.info where name='shreeni') | sort(field="name", descending="true”)
Functions Sort Tail Truncate Reverse unique Sanitize
Following API inmim select name from meme.following where owner_guid in (select guid from meme.info where name='bangwinissimo')
Searching for people select guid, name, title, language from meme.people where query="Fajar” select guid, name, title, language from meme.people where query="Fajar" and language=”id"
Finding specific Posts of amimuser select * from meme.posts where owner_guid in (select guid from meme.info where name='bangwinissimo') select * from meme.posts where owner_guid in (select guid from meme.info where name='bangwinissimo') and type='text'
Popular Posts select * from meme.popular select * from meme.popular where locale="id"
Search inmim SELECT * FROM meme.search WHERE query="jakarta”
Inserting/Deletingmimposts INSERT INTO meme.user.posts (type, content) VALUES ("text", "This is a text post from YQL!”) DELETE FROM meme.user.posts where pubid = "Nswwwmv"
Reposting, Commenting INSERT INTO meme.user.posts (guid, pubid, comment) VALUES ("S5R44PGJRBLKNEE5GYSRQPTXLQ", "rGCOBCK", "this is the repost comment”) INSERT INTO meme.user.comments (guid, pubid, comment) VALUES ("S5R44PGJRBLKNEE5GYSRQPTXLQ", "rGCOBCK", "meme rocks")
YQL Cheat Sheet  http://bit.ly/yql-cheat-sheet
Exposing own API through YQL <?xml version="1.0" encoding="UTF-8"?>   <table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">     <meta>       <sampleQuery>select * from {table} where query=’q'</sampleQuery>     </meta>     <bindings>       <select itemPath="results" produces="JSON" >         <urls>           <url env="all">http://query-url</url>         </urls>         <inputs>           <key id=”q" type="xs:string" paramType="query" required="true" />         </inputs>     </select>     </bindings>   </table>
Now access it through YQL USE "http://definition-file.xml" AS mytable; SELECT * FROM mytable WHERE query="whatever”
Mashup - introduction ,[object Object]
Earthtoolsapi for sunrise-sunset information
XML based api
Needs latitude-longitude of the location
Yahoo Geo API to convert location to latitute-longitude
Would need 2 different API calls and effort from your side
Assuming Yahoo API was in JSON would have to deal with 2 formats,[object Object]
Querying for the data # Get the Lat Long information for Jakarta select * from geo.places where text="Jakarta" limit 1; # Now get the sunrise/sunset from earthtools using a  # YQL query USE "http://rahukalamcalculator.appspot.com/yql/earthtools-definition.xml" AS earthtools; SELECT morning, evening FROM earthtoolsWHERE lat="1.365580" and lon="103.827713" and day="21" and month="11”
Combine the queries # One awesome call! select * from mytable where (lat,lon) in (select centroid.latitude, centroid.longitude from geo.places where text="jakarta") and day="21" and month="11”
Mashup – solution highlights ,[object Object]
Expressed business logic in Query – readable, maintainable
Used server side for the actual join
Less latency

More Related Content

What's hot

Forum Presentation
Forum PresentationForum Presentation
Forum Presentation
Angus Pratt
 
Flash Templates- Joomla!Days NL 2009 #jd09nl
Flash Templates- Joomla!Days NL 2009 #jd09nlFlash Templates- Joomla!Days NL 2009 #jd09nl
Flash Templates- Joomla!Days NL 2009 #jd09nl
Joomla!Days Netherlands
 
Yahoo! BOSS in Bucharest
Yahoo! BOSS in BucharestYahoo! BOSS in Bucharest
Yahoo! BOSS in Bucharest
Ted Drake
 
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
Chris Toohey
 
Microformats at Web 2.0 Expo April 2007
Microformats at Web 2.0 Expo April 2007Microformats at Web 2.0 Expo April 2007
Microformats at Web 2.0 Expo April 2007
John Allsopp
 
Accelerated Mobile - Beyond AMP
Accelerated Mobile - Beyond AMPAccelerated Mobile - Beyond AMP
Accelerated Mobile - Beyond AMP
Jono Alderson
 
Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3
Pradeep Varadaraja Banavara
 
Getting More Traffic From Search Advanced Seo For Developers Presentation
Getting More Traffic From Search  Advanced Seo For Developers PresentationGetting More Traffic From Search  Advanced Seo For Developers Presentation
Getting More Traffic From Search Advanced Seo For Developers Presentation
Seo Indonesia
 
courts circuits : l'innovation dans le luxe 'mon idendité de luxe" (partie 3)
courts circuits : l'innovation dans le luxe 'mon idendité de luxe" (partie 3)courts circuits : l'innovation dans le luxe 'mon idendité de luxe" (partie 3)
courts circuits : l'innovation dans le luxe 'mon idendité de luxe" (partie 3)
nous sommes vivants
 
Creating Web Sites with HTML and CSS
Creating Web Sites with HTML and CSSCreating Web Sites with HTML and CSS
Creating Web Sites with HTML and CSSBG Java EE Course
 
Site Architecture for Advanced SEO: Images
Site Architecture for Advanced SEO: ImagesSite Architecture for Advanced SEO: Images
Site Architecture for Advanced SEO: Images
Brian Ussery
 
2012 03 27_philly_jug_rewrite_static
2012 03 27_philly_jug_rewrite_static2012 03 27_philly_jug_rewrite_static
2012 03 27_philly_jug_rewrite_staticLincoln III
 
Beautiful Java EE - PrettyFaces
Beautiful Java EE - PrettyFacesBeautiful Java EE - PrettyFaces
Beautiful Java EE - PrettyFaces
Lincoln III
 
Advanced SEO for Web Developers
Advanced SEO for Web DevelopersAdvanced SEO for Web Developers
Advanced SEO for Web DevelopersNathan Buggia
 
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google InfrastructureLiving in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Pamela Fox
 
HTML presentation for beginners
HTML presentation for beginnersHTML presentation for beginners
HTML presentation for beginners
jeroenvdmeer
 

What's hot (17)

Forum Presentation
Forum PresentationForum Presentation
Forum Presentation
 
Flash Templates- Joomla!Days NL 2009 #jd09nl
Flash Templates- Joomla!Days NL 2009 #jd09nlFlash Templates- Joomla!Days NL 2009 #jd09nl
Flash Templates- Joomla!Days NL 2009 #jd09nl
 
Yahoo! BOSS in Bucharest
Yahoo! BOSS in BucharestYahoo! BOSS in Bucharest
Yahoo! BOSS in Bucharest
 
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
 
Microformats at Web 2.0 Expo April 2007
Microformats at Web 2.0 Expo April 2007Microformats at Web 2.0 Expo April 2007
Microformats at Web 2.0 Expo April 2007
 
Front End on Rails
Front End on RailsFront End on Rails
Front End on Rails
 
Accelerated Mobile - Beyond AMP
Accelerated Mobile - Beyond AMPAccelerated Mobile - Beyond AMP
Accelerated Mobile - Beyond AMP
 
Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3
 
Getting More Traffic From Search Advanced Seo For Developers Presentation
Getting More Traffic From Search  Advanced Seo For Developers PresentationGetting More Traffic From Search  Advanced Seo For Developers Presentation
Getting More Traffic From Search Advanced Seo For Developers Presentation
 
courts circuits : l'innovation dans le luxe 'mon idendité de luxe" (partie 3)
courts circuits : l'innovation dans le luxe 'mon idendité de luxe" (partie 3)courts circuits : l'innovation dans le luxe 'mon idendité de luxe" (partie 3)
courts circuits : l'innovation dans le luxe 'mon idendité de luxe" (partie 3)
 
Creating Web Sites with HTML and CSS
Creating Web Sites with HTML and CSSCreating Web Sites with HTML and CSS
Creating Web Sites with HTML and CSS
 
Site Architecture for Advanced SEO: Images
Site Architecture for Advanced SEO: ImagesSite Architecture for Advanced SEO: Images
Site Architecture for Advanced SEO: Images
 
2012 03 27_philly_jug_rewrite_static
2012 03 27_philly_jug_rewrite_static2012 03 27_philly_jug_rewrite_static
2012 03 27_philly_jug_rewrite_static
 
Beautiful Java EE - PrettyFaces
Beautiful Java EE - PrettyFacesBeautiful Java EE - PrettyFaces
Beautiful Java EE - PrettyFaces
 
Advanced SEO for Web Developers
Advanced SEO for Web DevelopersAdvanced SEO for Web Developers
Advanced SEO for Web Developers
 
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google InfrastructureLiving in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
 
HTML presentation for beginners
HTML presentation for beginnersHTML presentation for beginners
HTML presentation for beginners
 

Viewers also liked

Rcjeks halfway open
Rcjeks halfway openRcjeks halfway open
Rcjeks halfway open
Jill Emery
 
Developing TERMS
Developing TERMSDeveloping TERMS
Developing TERMS
Jill Emery
 

Viewers also liked (6)

Rcjeks halfway open
Rcjeks halfway openRcjeks halfway open
Rcjeks halfway open
 
Lia Goguadze
Lia GoguadzeLia Goguadze
Lia Goguadze
 
Developing TERMS
Developing TERMSDeveloping TERMS
Developing TERMS
 
Bus 305 week 6
Bus 305 week 6Bus 305 week 6
Bus 305 week 6
 
Libr 430 Week 8
Libr 430 Week 8Libr 430 Week 8
Libr 430 Week 8
 
Analysing the Holiday
Analysing the Holiday Analysing the Holiday
Analysing the Holiday
 

Similar to YQL talk at OHD Jakarta

DevDays09 Internet Explorer 8
DevDays09 Internet Explorer 8DevDays09 Internet Explorer 8
DevDays09 Internet Explorer 8
Konstantinos Pantos
 
The Basics Of Page Creation
The Basics Of Page CreationThe Basics Of Page Creation
The Basics Of Page Creation
Wildan Maulana
 
Developing and testing ajax components
Developing and testing ajax componentsDeveloping and testing ajax components
Developing and testing ajax components
Ignacio Coloma
 
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Alfresco Software
 
Evolution of API With Blogging
Evolution of API With BloggingEvolution of API With Blogging
Evolution of API With Blogging
Takatsugu Shigeta
 
Widgets Tools Keynote
Widgets Tools KeynoteWidgets Tools Keynote
Widgets Tools Keynote
Michael Mahemoff
 
Illuminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 TutorialIlluminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 Tutorial
mikel_maron
 
HTML5 Overview
HTML5 OverviewHTML5 Overview
HTML5 Overview
reybango
 
Web 2.0 & Search Engines
Web 2.0 & Search EnginesWeb 2.0 & Search Engines
Web 2.0 & Search Engines
Ambles Kwok
 
OpenSocial - GTUG Stockholm Meeting Oct 1 2009
OpenSocial - GTUG Stockholm Meeting Oct 1 2009OpenSocial - GTUG Stockholm Meeting Oct 1 2009
OpenSocial - GTUG Stockholm Meeting Oct 1 2009
Jacob Gyllenstierna
 
Lessons Learned - Building YDN
Lessons Learned - Building YDNLessons Learned - Building YDN
Lessons Learned - Building YDN
Dan Theurer
 
JSP Custom Tags
JSP Custom TagsJSP Custom Tags
JSP Custom Tags
BG Java EE Course
 
SlideShare Instant
SlideShare InstantSlideShare Instant
SlideShare Instant
Saket Choudhary
 
SlideShare Instant
SlideShare InstantSlideShare Instant
SlideShare Instant
Saket Choudhary
 
KMUTNB - Internet Programming 3/7
KMUTNB - Internet Programming 3/7KMUTNB - Internet Programming 3/7
KMUTNB - Internet Programming 3/7
phuphax
 
Introduction into Struts2 jQuery Grid Tags
Introduction into Struts2 jQuery Grid TagsIntroduction into Struts2 jQuery Grid Tags
Introduction into Struts2 jQuery Grid Tags
Johannes Geppert
 
Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Final
ematrix
 
Grddl In A Nutshell V1
Grddl In A Nutshell V1Grddl In A Nutshell V1
Grddl In A Nutshell V1
Fabien Gandon
 

Similar to YQL talk at OHD Jakarta (20)

DevDays09 Internet Explorer 8
DevDays09 Internet Explorer 8DevDays09 Internet Explorer 8
DevDays09 Internet Explorer 8
 
The Basics Of Page Creation
The Basics Of Page CreationThe Basics Of Page Creation
The Basics Of Page Creation
 
Developing and testing ajax components
Developing and testing ajax componentsDeveloping and testing ajax components
Developing and testing ajax components
 
Lecture1 B Frames&Forms
Lecture1 B  Frames&FormsLecture1 B  Frames&Forms
Lecture1 B Frames&Forms
 
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
 
Evolution of API With Blogging
Evolution of API With BloggingEvolution of API With Blogging
Evolution of API With Blogging
 
Widgets Tools Keynote
Widgets Tools KeynoteWidgets Tools Keynote
Widgets Tools Keynote
 
Illuminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 TutorialIlluminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 Tutorial
 
HTML5 Overview
HTML5 OverviewHTML5 Overview
HTML5 Overview
 
Web 2.0 & Search Engines
Web 2.0 & Search EnginesWeb 2.0 & Search Engines
Web 2.0 & Search Engines
 
OpenSocial - GTUG Stockholm Meeting Oct 1 2009
OpenSocial - GTUG Stockholm Meeting Oct 1 2009OpenSocial - GTUG Stockholm Meeting Oct 1 2009
OpenSocial - GTUG Stockholm Meeting Oct 1 2009
 
Lessons Learned - Building YDN
Lessons Learned - Building YDNLessons Learned - Building YDN
Lessons Learned - Building YDN
 
JSP Custom Tags
JSP Custom TagsJSP Custom Tags
JSP Custom Tags
 
SlideShare Instant
SlideShare InstantSlideShare Instant
SlideShare Instant
 
SlideShare Instant
SlideShare InstantSlideShare Instant
SlideShare Instant
 
KMUTNB - Internet Programming 3/7
KMUTNB - Internet Programming 3/7KMUTNB - Internet Programming 3/7
KMUTNB - Internet Programming 3/7
 
Html5
Html5Html5
Html5
 
Introduction into Struts2 jQuery Grid Tags
Introduction into Struts2 jQuery Grid TagsIntroduction into Struts2 jQuery Grid Tags
Introduction into Struts2 jQuery Grid Tags
 
Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Final
 
Grddl In A Nutshell V1
Grddl In A Nutshell V1Grddl In A Nutshell V1
Grddl In A Nutshell V1
 

More from Michael Smith Jr.

How to pitch
How to pitchHow to pitch
How to pitch
Michael Smith Jr.
 
Leveraging on scalable technology to expand regionally
Leveraging on scalable technology to expand regionallyLeveraging on scalable technology to expand regionally
Leveraging on scalable technology to expand regionally
Michael Smith Jr.
 
Escape velocity from singapore aws '17
Escape velocity from singapore   aws '17Escape velocity from singapore   aws '17
Escape velocity from singapore aws '17
Michael Smith Jr.
 
Mobile Marketing Conference 2011
Mobile Marketing Conference 2011Mobile Marketing Conference 2011
Mobile Marketing Conference 2011
Michael Smith Jr.
 
Sparxup
SparxupSparxup
Web Product Innovation in Emerging Markets
Web Product Innovation in Emerging MarketsWeb Product Innovation in Emerging Markets
Web Product Innovation in Emerging Markets
Michael Smith Jr.
 
YUI Evolved
YUI EvolvedYUI Evolved
YUI Evolved
Michael Smith Jr.
 
Open Hack Indonesia Keynote
Open Hack Indonesia KeynoteOpen Hack Indonesia Keynote
Open Hack Indonesia Keynote
Michael Smith Jr.
 
Mobile Mondays Indonesia
Mobile Mondays IndonesiaMobile Mondays Indonesia
Mobile Mondays Indonesia
Michael Smith Jr.
 
Echelon Slide Deck
Echelon Slide DeckEchelon Slide Deck
Echelon Slide Deck
Michael Smith Jr.
 
The Trend is your frend!
The Trend is your frend!The Trend is your frend!
The Trend is your frend!
Michael Smith Jr.
 

More from Michael Smith Jr. (11)

How to pitch
How to pitchHow to pitch
How to pitch
 
Leveraging on scalable technology to expand regionally
Leveraging on scalable technology to expand regionallyLeveraging on scalable technology to expand regionally
Leveraging on scalable technology to expand regionally
 
Escape velocity from singapore aws '17
Escape velocity from singapore   aws '17Escape velocity from singapore   aws '17
Escape velocity from singapore aws '17
 
Mobile Marketing Conference 2011
Mobile Marketing Conference 2011Mobile Marketing Conference 2011
Mobile Marketing Conference 2011
 
Sparxup
SparxupSparxup
Sparxup
 
Web Product Innovation in Emerging Markets
Web Product Innovation in Emerging MarketsWeb Product Innovation in Emerging Markets
Web Product Innovation in Emerging Markets
 
YUI Evolved
YUI EvolvedYUI Evolved
YUI Evolved
 
Open Hack Indonesia Keynote
Open Hack Indonesia KeynoteOpen Hack Indonesia Keynote
Open Hack Indonesia Keynote
 
Mobile Mondays Indonesia
Mobile Mondays IndonesiaMobile Mondays Indonesia
Mobile Mondays Indonesia
 
Echelon Slide Deck
Echelon Slide DeckEchelon Slide Deck
Echelon Slide Deck
 
The Trend is your frend!
The Trend is your frend!The Trend is your frend!
The Trend is your frend!
 

Recently uploaded

Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 

Recently uploaded (20)

Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 

YQL talk at OHD Jakarta

  • 1. Standardizing web querying - Using YQL for accessing and exposing APIs
  • 2. Agenda Introduction to YQL How to get started What’s supported through YQL Theme of the day – mim.yahoo.com Lots of examples using mim API Mashup using YQL Introduction to more YQL goodies Server side javascript execution YQL hosted storage Concluding remarks ..lets keep it interactive
  • 3. YQL – Yahoo Query Language Enables you to access Internet data with SQL-like commands YQL hides the complexity of Web service APIs by presenting data as simple tables, rows, and columns. YQL includes pre-defined tables for popular Yahoo! Web services such as Flickr, Search, Geo andMim. YQL can access services on the Internet that output data in the following formats: HTML, XML, JSON, RSS, Atom, and microformat. Create fast mashups reducing latency, code
  • 4. How to get started Explore the APIs - http://developer.yahoo.com/everything.html Get a developer key - https://developer.apps.yahoo.com/wsregapp/ Read the documentation - http://developer.yahoo.com/yql/guide/ Visit the YQL Console - http://developer.yahoo.com/yql/console/ The YQL Console enables you to run YQL statements interactively from your browser. Hack away..
  • 5. Y! APIs supported by YQL Show tables Flickr Y! geo Y! local search Y! maps Y! mim Y! music Y! MyBlogLog Y! search Y! social Y! upcoming
  • 6. External APIs supported by YQL Through datatables.org Show tables Amazon ECS AWS Bit.ly Comicvine Craigslist Del.icio.us Dopplr Facebook Friendfeed Github Google (News, Search, Translate) Guardian IMDB LastFm MediaWikiAPI Microsoft (Bing) Twitter Zillow
  • 7.
  • 8. In JSON select * from meme.info where owner_guid=me {"query": { "count": "1", "created": "2009-11-19T10:33:11Z", "lang": "en-US", "updated": "2009-11-19T10:33:11Z", "uri": "http://query.yahooapis.com/v1/yql?q=select+*+from+meme.info+where+owner_guid%3Dme", "results": { "meme": { "guid": "NKADUBBZPUQQG6GF6AHTDTABSQ", "name": "shreeni", "title": "Shreeni'sMim", "description": null, "url": "http://mim.yahoo.com/shreeni/", "avatar_url": "http://d.yimg.com/gg/shreeni/avatars/7a0d55f7d0aab9e326a7906a110f8027d46bd49b.jpeg", "language": "en", "followers": "18" }}}}
  • 9.
  • 10. Use the YQL Console - http://developer.yahoo.com/yql/console/
  • 11.
  • 12. Selecting specific fields (also Followers API) select name from meme.followers where owner_guid = “NKADUBBZPUQQG6GF6AHTDTABSQ” <results> <meme> <name>herry</name> </meme> <meme> <name>grahamhills</name> </meme> <meme> <name>fizzycitrus</name> </meme> </results>
  • 13. Sub-select and Limits select name from meme.followers where owner_guid in (select guid from meme.info where name='shreeni’) limit 2 <results> <meme> <name>herry</name> </meme> <meme> <name>grahamhills</name> </meme> </results>
  • 14. Functions select name from meme.followers where owner_guid in (select guid from meme.info where name='shreeni') | sort(field="name", descending="true”)
  • 15. Functions Sort Tail Truncate Reverse unique Sanitize
  • 16. Following API inmim select name from meme.following where owner_guid in (select guid from meme.info where name='bangwinissimo')
  • 17. Searching for people select guid, name, title, language from meme.people where query="Fajar” select guid, name, title, language from meme.people where query="Fajar" and language=”id"
  • 18. Finding specific Posts of amimuser select * from meme.posts where owner_guid in (select guid from meme.info where name='bangwinissimo') select * from meme.posts where owner_guid in (select guid from meme.info where name='bangwinissimo') and type='text'
  • 19. Popular Posts select * from meme.popular select * from meme.popular where locale="id"
  • 20. Search inmim SELECT * FROM meme.search WHERE query="jakarta”
  • 21. Inserting/Deletingmimposts INSERT INTO meme.user.posts (type, content) VALUES ("text", "This is a text post from YQL!”) DELETE FROM meme.user.posts where pubid = "Nswwwmv"
  • 22. Reposting, Commenting INSERT INTO meme.user.posts (guid, pubid, comment) VALUES ("S5R44PGJRBLKNEE5GYSRQPTXLQ", "rGCOBCK", "this is the repost comment”) INSERT INTO meme.user.comments (guid, pubid, comment) VALUES ("S5R44PGJRBLKNEE5GYSRQPTXLQ", "rGCOBCK", "meme rocks")
  • 23. YQL Cheat Sheet http://bit.ly/yql-cheat-sheet
  • 24. Exposing own API through YQL <?xml version="1.0" encoding="UTF-8"?> <table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta> <sampleQuery>select * from {table} where query=’q'</sampleQuery> </meta> <bindings> <select itemPath="results" produces="JSON" > <urls> <url env="all">http://query-url</url> </urls> <inputs> <key id=”q" type="xs:string" paramType="query" required="true" /> </inputs> </select> </bindings> </table>
  • 25. Now access it through YQL USE "http://definition-file.xml" AS mytable; SELECT * FROM mytable WHERE query="whatever”
  • 26.
  • 30. Yahoo Geo API to convert location to latitute-longitude
  • 31. Would need 2 different API calls and effort from your side
  • 32.
  • 33. Querying for the data # Get the Lat Long information for Jakarta select * from geo.places where text="Jakarta" limit 1; # Now get the sunrise/sunset from earthtools using a # YQL query USE "http://rahukalamcalculator.appspot.com/yql/earthtools-definition.xml" AS earthtools; SELECT morning, evening FROM earthtoolsWHERE lat="1.365580" and lon="103.827713" and day="21" and month="11”
  • 34. Combine the queries # One awesome call! select * from mytable where (lat,lon) in (select centroid.latitude, centroid.longitude from geo.places where text="jakarta") and day="21" and month="11”
  • 35.
  • 36. Expressed business logic in Query – readable, maintainable
  • 37. Used server side for the actual join
  • 39.
  • 40. Better data shaping and parsing
  • 41. Better support for calling external Web service
  • 42. Better support for adding, modifying, and deleting data using external Web services
  • 43.
  • 44.
  • 45. Retention Limit: Records not read, updated, or executed at least once every thirty days may be removed.
  • 46. Record Format: Records must be in a text-based format. Examples include JavaScript code, XML files, Open Data Tables, or YQL environment files.
  • 47.
  • 48. Querying from hosted storage # Uses select-id select * from yql.storage where name="store://08fd2c74” # Uses update-id delete from yql.storage where name="store://3cc85a99” update yql.storage set value="new value" where name="store://3cc85a99” # Use contents as env file (uses execute-id) use "store://35ad2c72" as mytable; select * from mytable; # Use contents as JS for server side execute (uses execute-id) y.include('store://35ad2c72'); response.object = <success>{success}</success>;
  • 49.
  • 50. Allows standardization of APIs across the web
  • 51. Familiar and concise language for expressing business and data logic
  • 52. Powerful tool to build mashups
  • 53. You can build upon existing APIs and expose third party APIs
  • 54.
  • 55.