SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
YQL: Find more than just data

           Philip Tellis / philip@bluesmoon.info


      Yahoo!7 Open Session – 11 May 2010 – #y7os




Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
$ finger philip




      Philip Tellis
      philip@bluesmoon.info
      @bluesmoon
      yahoo
      geek
      http://bluesmoon.info/




     Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
missingkids.com




     Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
missingkidsmap.com




      http://www.missingkidsmap.com/read.php?state=CA




    Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
<locations>
   <maplocation zoom="5"
                state_long="-119.838867"
                state_lat="37.370157"/>
   <location id="1"
             firstname="Anastasia"
             lastname=" Shearer "
             picture="img width=160 target=_new src=http://www.missingkids.com/photographs/NCM
             picture2="img width=160 target=_new src=http://www.missingkids.com/photographs/NC
             medpic = "img width=60 border=0 target=_new src=http://www.missingkids.com/photog
             smallpic="img width=30 border=0 target=_new src=http://www.missingkids.com/photog
             policenum="1-661-861-3110"
             policeadd="Kern County Sheriff´ Office (California)"
                                           s
             policenum2=""
             policeadd2=""
             st=" CA"
             city="BAKERSFIELD"
             missing="12/26/2009"
             status="Endangered Runaway"
             age="16"
             url="1140669"
             lat="35.3733333333333"
             lng="-119.017777777778"/>
   ...
</locations>




     Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
Death by 404


    API call on every 404 page =⇒




     Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
This looks like a job for...




  YQLCAT




      Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
SELECT




 SELECT * From xml Where
 url=’http://www.missingkidsmap.com/read.php?state=ZZ’




    Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
Geo




 More useful if we find local kids




      Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
YQL can do it




               SELECT * From ip.location Where ip=@ip




     Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
{
    "query":{
     ...
     "results":{
      "Response":{
        "Ip":"209.117.47.253",
        "Status":"OK",
        "CountryCode":"US",
        "CountryName":"United States",
        "RegionCode":null,
        "RegionName":null,
        "City":null,
        "ZipPostalCode":null,
        "Latitude":"38",
        "Longitude":"-97",
        "Timezone":"-6",
        "Gmtoffset":"-6",
        "Dstoffset":"-5"
      }
      Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
WoEID




 SELECT place.woeid From flickr.places
 Where lat=@lat And lon=@lon




    Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
WoEID




 SELECT place.woeid From flickr.places
 Where (lat, lon) IN
 (
 SELECT Latitude, Longitude From ip.location
 Where ip=@ip
 )




     Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
{
    "query":{
     "count":"1",
     ...
     "results":{
       "places":{
        "place":{
          "woeid":"12588378"
        }
       }
     }
    }
}




      Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
Country/State




  SELECT country.code, admin1.code
  From geo.places
  Where woeid=@woeid




     Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
All together



  SELECT country.code, admin1.code From geo.places
   Where woeid IN
     (
        SELECT place.woeid From flickr.places
         Where (lat, lon) IN
           (
              SELECT Latitude, Longitude
                From ip.location
               Where ip=@ip
           )
     )




     Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
{
    "query":{
     "count":"1",
     ...
     "results":{
       "place":{
        "country":{
          "code":"US"
        },
        "admin1":{
          "code":"US-KS"
        }
       }
     }
    }
}


      Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
And that’s it




      Throw in a bit of PHP to turn the JSON into HTML
      CSS to style it
      Wrap it in your page template
      eg: http://bluesmoon.info/foobar




      Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
PHP


 $json = http_get($missing_kids_url);
 $o = json_decode($json, 1);
 $children = $o[’query’][’results’]
                    [’locations’][’location’];

 $child = array_rand($children);

 print_404($child);

 ...

 header(’HTTP/1.0 404 Not Found’);




       Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
ErrorDocument 404 /404.php




     Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
Links




        http://tech.bluesmoon.info/2010/02/convert-ip-to-geo-info-
        using-yql.html
        http://tech.bluesmoon.info/2010/02/missing-kids-on-your-
        404-page.html
        http://developer.yahoo.com/yql/
        http://www.missingkidsmap.com/




        Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
Photo credits




     http://lolcats.com/view/11439/
     http://lolcats.com/view/13347/
     http://www.flickr.com/photos/wwworks/440672445/




     Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data
Thank you




     Philip Tellis
     philip@bluesmoon.info
     @bluesmoon
     http://bluesmoon.info/
     slideshare.net/bluesmoon




    Yahoo!7 Open Session – 11 May 2010 – #y7os   YQL: Find more than just data

Más contenido relacionado

La actualidad más candente

Concept History
Concept HistoryConcept History
Concept Historyjonphipps
 
Hebrew Bible as Data: Laboratory, Sharing, Lessons
Hebrew Bible as Data: Laboratory, Sharing, LessonsHebrew Bible as Data: Laboratory, Sharing, Lessons
Hebrew Bible as Data: Laboratory, Sharing, LessonsDirk Roorda
 
Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!Anatoly Sharifulin
 
API Pain Points (PHPNE)
API Pain Points (PHPNE)API Pain Points (PHPNE)
API Pain Points (PHPNE)Phil Sturgeon
 
01 ElasticSearch : Getting Started
01 ElasticSearch : Getting Started01 ElasticSearch : Getting Started
01 ElasticSearch : Getting StartedOpenThink Labs
 
20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享elevenma
 
JSON Schema in Web Frontend #insideFE
JSON Schema in Web Frontend #insideFEJSON Schema in Web Frontend #insideFE
JSON Schema in Web Frontend #insideFEHiroyuki Anai
 
анатолий шарифулин Mojolicious
анатолий шарифулин Mojoliciousанатолий шарифулин Mojolicious
анатолий шарифулин Mojoliciousrit2010
 
Php 102: Out with the Bad, In with the Good
Php 102: Out with the Bad, In with the GoodPhp 102: Out with the Bad, In with the Good
Php 102: Out with the Bad, In with the GoodJeremy Kendall
 
JSON-LD for RESTful services
JSON-LD for RESTful servicesJSON-LD for RESTful services
JSON-LD for RESTful servicesMarkus Lanthaler
 
E Records Resource Recommendations
E Records Resource RecommendationsE Records Resource Recommendations
E Records Resource RecommendationsKen Matthews
 
The Web, one huge database ...
The Web, one huge database ...The Web, one huge database ...
The Web, one huge database ...Michael Hausenblas
 
Leveraging the Power of Graph Databases in PHP
Leveraging the Power of Graph Databases in PHPLeveraging the Power of Graph Databases in PHP
Leveraging the Power of Graph Databases in PHPJeremy Kendall
 
Leveraging the Power of Graph Databases in PHP
Leveraging the Power of Graph Databases in PHPLeveraging the Power of Graph Databases in PHP
Leveraging the Power of Graph Databases in PHPJeremy Kendall
 

La actualidad más candente (18)

Concept History
Concept HistoryConcept History
Concept History
 
Hebrew Bible as Data: Laboratory, Sharing, Lessons
Hebrew Bible as Data: Laboratory, Sharing, LessonsHebrew Bible as Data: Laboratory, Sharing, Lessons
Hebrew Bible as Data: Laboratory, Sharing, Lessons
 
Transformation jsontoxmlesb
Transformation jsontoxmlesbTransformation jsontoxmlesb
Transformation jsontoxmlesb
 
Transformation jsontoxmlesb
Transformation jsontoxmlesbTransformation jsontoxmlesb
Transformation jsontoxmlesb
 
Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!
 
API Pain Points (PHPNE)
API Pain Points (PHPNE)API Pain Points (PHPNE)
API Pain Points (PHPNE)
 
01 ElasticSearch : Getting Started
01 ElasticSearch : Getting Started01 ElasticSearch : Getting Started
01 ElasticSearch : Getting Started
 
20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享
 
JSON Schema in Web Frontend #insideFE
JSON Schema in Web Frontend #insideFEJSON Schema in Web Frontend #insideFE
JSON Schema in Web Frontend #insideFE
 
анатолий шарифулин Mojolicious
анатолий шарифулин Mojoliciousанатолий шарифулин Mojolicious
анатолий шарифулин Mojolicious
 
Php 102: Out with the Bad, In with the Good
Php 102: Out with the Bad, In with the GoodPhp 102: Out with the Bad, In with the Good
Php 102: Out with the Bad, In with the Good
 
JSON-LD for RESTful services
JSON-LD for RESTful servicesJSON-LD for RESTful services
JSON-LD for RESTful services
 
E Records Resource Recommendations
E Records Resource RecommendationsE Records Resource Recommendations
E Records Resource Recommendations
 
The Web, one huge database ...
The Web, one huge database ...The Web, one huge database ...
The Web, one huge database ...
 
Api pain points
Api pain pointsApi pain points
Api pain points
 
Php File Operations
Php File OperationsPhp File Operations
Php File Operations
 
Leveraging the Power of Graph Databases in PHP
Leveraging the Power of Graph Databases in PHPLeveraging the Power of Graph Databases in PHP
Leveraging the Power of Graph Databases in PHP
 
Leveraging the Power of Graph Databases in PHP
Leveraging the Power of Graph Databases in PHPLeveraging the Power of Graph Databases in PHP
Leveraging the Power of Graph Databases in PHP
 

Destacado

Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
 
Boomerang @ NY Web Perf meetup
Boomerang @ NY Web Perf meetupBoomerang @ NY Web Perf meetup
Boomerang @ NY Web Perf meetupPhilip Tellis
 
Frontend Performance: Expert to Crazy Person
Frontend Performance: Expert to Crazy PersonFrontend Performance: Expert to Crazy Person
Frontend Performance: Expert to Crazy PersonPhilip Tellis
 
Measuring the web with Boomerang (YUIConf 2010)
Measuring the web with Boomerang (YUIConf 2010)Measuring the web with Boomerang (YUIConf 2010)
Measuring the web with Boomerang (YUIConf 2010)Philip Tellis
 

Destacado (6)

Service Summit M.-A. Delisle Part 2
Service Summit M.-A. Delisle Part 2Service Summit M.-A. Delisle Part 2
Service Summit M.-A. Delisle Part 2
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy Person
 
Boomerang @ NY Web Perf meetup
Boomerang @ NY Web Perf meetupBoomerang @ NY Web Perf meetup
Boomerang @ NY Web Perf meetup
 
Service Summit M.-A. Delisle Part 1
Service Summit M.-A. Delisle Part 1Service Summit M.-A. Delisle Part 1
Service Summit M.-A. Delisle Part 1
 
Frontend Performance: Expert to Crazy Person
Frontend Performance: Expert to Crazy PersonFrontend Performance: Expert to Crazy Person
Frontend Performance: Expert to Crazy Person
 
Measuring the web with Boomerang (YUIConf 2010)
Measuring the web with Boomerang (YUIConf 2010)Measuring the web with Boomerang (YUIConf 2010)
Measuring the web with Boomerang (YUIConf 2010)
 

Más de Philip Tellis

Improving D3 Performance with CANVAS and other Hacks
Improving D3 Performance with CANVAS and other HacksImproving D3 Performance with CANVAS and other Hacks
Improving D3 Performance with CANVAS and other HacksPhilip Tellis
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
 
Frontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou FurieuxFrontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou FurieuxPhilip Tellis
 
Beyond Page Level Metrics
Beyond Page Level MetricsBeyond Page Level Metrics
Beyond Page Level MetricsPhilip Tellis
 
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...Philip Tellis
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
 
RUM Distillation 101 -- Part I
RUM Distillation 101 -- Part IRUM Distillation 101 -- Part I
RUM Distillation 101 -- Part IPhilip Tellis
 
Improving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFramesImproving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFramesPhilip Tellis
 
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"Philip Tellis
 
The Statistics of Web Performance Analysis
The Statistics of Web Performance AnalysisThe Statistics of Web Performance Analysis
The Statistics of Web Performance AnalysisPhilip Tellis
 
Abusing JavaScript to Measure Web Performance
Abusing JavaScript to Measure Web PerformanceAbusing JavaScript to Measure Web Performance
Abusing JavaScript to Measure Web PerformancePhilip Tellis
 
Analysing network characteristics with JavaScript
Analysing network characteristics with JavaScriptAnalysing network characteristics with JavaScript
Analysing network characteristics with JavaScriptPhilip Tellis
 
A Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web TrafficA Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web TrafficPhilip Tellis
 
Messing with JavaScript and the DOM to measure network characteristics
Messing with JavaScript and the DOM to measure network characteristicsMessing with JavaScript and the DOM to measure network characteristics
Messing with JavaScript and the DOM to measure network characteristicsPhilip Tellis
 
Boomerang: How fast do users think your site is?
Boomerang: How fast do users think your site is?Boomerang: How fast do users think your site is?
Boomerang: How fast do users think your site is?Philip Tellis
 

Más de Philip Tellis (20)

Improving D3 Performance with CANVAS and other Hacks
Improving D3 Performance with CANVAS and other HacksImproving D3 Performance with CANVAS and other Hacks
Improving D3 Performance with CANVAS and other Hacks
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy Person
 
Frontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou FurieuxFrontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou Furieux
 
Beyond Page Level Metrics
Beyond Page Level MetricsBeyond Page Level Metrics
Beyond Page Level Metrics
 
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy Person
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy Person
 
mmm... beacons
mmm... beaconsmmm... beacons
mmm... beacons
 
RUM Distillation 101 -- Part I
RUM Distillation 101 -- Part IRUM Distillation 101 -- Part I
RUM Distillation 101 -- Part I
 
Improving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFramesImproving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFrames
 
Extending Boomerang
Extending BoomerangExtending Boomerang
Extending Boomerang
 
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"
 
The Statistics of Web Performance Analysis
The Statistics of Web Performance AnalysisThe Statistics of Web Performance Analysis
The Statistics of Web Performance Analysis
 
Abusing JavaScript to Measure Web Performance
Abusing JavaScript to Measure Web PerformanceAbusing JavaScript to Measure Web Performance
Abusing JavaScript to Measure Web Performance
 
Rum for Breakfast
Rum for BreakfastRum for Breakfast
Rum for Breakfast
 
Analysing network characteristics with JavaScript
Analysing network characteristics with JavaScriptAnalysing network characteristics with JavaScript
Analysing network characteristics with JavaScript
 
A Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web TrafficA Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web Traffic
 
Input sanitization
Input sanitizationInput sanitization
Input sanitization
 
Messing with JavaScript and the DOM to measure network characteristics
Messing with JavaScript and the DOM to measure network characteristicsMessing with JavaScript and the DOM to measure network characteristics
Messing with JavaScript and the DOM to measure network characteristics
 
Boomerang: How fast do users think your site is?
Boomerang: How fast do users think your site is?Boomerang: How fast do users think your site is?
Boomerang: How fast do users think your site is?
 

Último

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"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
 

Último (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
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!
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"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
 

YQL: More than just data

  • 1. YQL: Find more than just data Philip Tellis / philip@bluesmoon.info Yahoo!7 Open Session – 11 May 2010 – #y7os Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 2. $ finger philip Philip Tellis philip@bluesmoon.info @bluesmoon yahoo geek http://bluesmoon.info/ Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 3. Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 4. missingkids.com Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 5. missingkidsmap.com http://www.missingkidsmap.com/read.php?state=CA Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 6. <locations> <maplocation zoom="5" state_long="-119.838867" state_lat="37.370157"/> <location id="1" firstname="Anastasia" lastname=" Shearer " picture="img width=160 target=_new src=http://www.missingkids.com/photographs/NCM picture2="img width=160 target=_new src=http://www.missingkids.com/photographs/NC medpic = "img width=60 border=0 target=_new src=http://www.missingkids.com/photog smallpic="img width=30 border=0 target=_new src=http://www.missingkids.com/photog policenum="1-661-861-3110" policeadd="Kern County Sheriff´ Office (California)" s policenum2="" policeadd2="" st=" CA" city="BAKERSFIELD" missing="12/26/2009" status="Endangered Runaway" age="16" url="1140669" lat="35.3733333333333" lng="-119.017777777778"/> ... </locations> Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 7. Death by 404 API call on every 404 page =⇒ Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 8. This looks like a job for... YQLCAT Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 9. SELECT SELECT * From xml Where url=’http://www.missingkidsmap.com/read.php?state=ZZ’ Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 10. Geo More useful if we find local kids Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 11. YQL can do it SELECT * From ip.location Where ip=@ip Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 12. { "query":{ ... "results":{ "Response":{ "Ip":"209.117.47.253", "Status":"OK", "CountryCode":"US", "CountryName":"United States", "RegionCode":null, "RegionName":null, "City":null, "ZipPostalCode":null, "Latitude":"38", "Longitude":"-97", "Timezone":"-6", "Gmtoffset":"-6", "Dstoffset":"-5" } Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 13. WoEID SELECT place.woeid From flickr.places Where lat=@lat And lon=@lon Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 14. WoEID SELECT place.woeid From flickr.places Where (lat, lon) IN ( SELECT Latitude, Longitude From ip.location Where ip=@ip ) Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 15. { "query":{ "count":"1", ... "results":{ "places":{ "place":{ "woeid":"12588378" } } } } } Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 16. Country/State SELECT country.code, admin1.code From geo.places Where woeid=@woeid Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 17. All together SELECT country.code, admin1.code From geo.places Where woeid IN ( SELECT place.woeid From flickr.places Where (lat, lon) IN ( SELECT Latitude, Longitude From ip.location Where ip=@ip ) ) Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 18. { "query":{ "count":"1", ... "results":{ "place":{ "country":{ "code":"US" }, "admin1":{ "code":"US-KS" } } } } } Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 19. And that’s it Throw in a bit of PHP to turn the JSON into HTML CSS to style it Wrap it in your page template eg: http://bluesmoon.info/foobar Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 20. PHP $json = http_get($missing_kids_url); $o = json_decode($json, 1); $children = $o[’query’][’results’] [’locations’][’location’]; $child = array_rand($children); print_404($child); ... header(’HTTP/1.0 404 Not Found’); Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 21. ErrorDocument 404 /404.php Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 22. Links http://tech.bluesmoon.info/2010/02/convert-ip-to-geo-info- using-yql.html http://tech.bluesmoon.info/2010/02/missing-kids-on-your- 404-page.html http://developer.yahoo.com/yql/ http://www.missingkidsmap.com/ Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 23. Photo credits http://lolcats.com/view/11439/ http://lolcats.com/view/13347/ http://www.flickr.com/photos/wwworks/440672445/ Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data
  • 24. Thank you Philip Tellis philip@bluesmoon.info @bluesmoon http://bluesmoon.info/ slideshare.net/bluesmoon Yahoo!7 Open Session – 11 May 2010 – #y7os YQL: Find more than just data