SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Concept History
Concept HistoryConcept History
Concept History
jonphipps
 
20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享
elevenma
 
анатолий шарифулин Mojolicious
анатолий шарифулин Mojoliciousанатолий шарифулин Mojolicious
анатолий шарифулин Mojolicious
rit2010
 
E Records Resource Recommendations
E Records Resource RecommendationsE Records Resource Recommendations
E Records Resource Recommendations
Ken Matthews
 
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
Jeremy Kendall
 

Mais procurados (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
 

Destaque (8)

Dedicated tax system
Dedicated tax systemDedicated tax system
Dedicated tax system
 
CSR - GTL Foundation
CSR - GTL FoundationCSR - GTL Foundation
CSR - GTL Foundation
 
Philippine CEDAW Report Highlights
Philippine CEDAW Report HighlightsPhilippine CEDAW Report Highlights
Philippine CEDAW Report Highlights
 
Uzei power point irudiak
Uzei power point irudiakUzei power point irudiak
Uzei power point irudiak
 
100418 From Idea To Capital Raising Short Version
100418 From Idea To Capital Raising Short Version100418 From Idea To Capital Raising Short Version
100418 From Idea To Capital Raising Short Version
 
常常喜樂
常常喜樂常常喜樂
常常喜樂
 
Role of media
Role of mediaRole of media
Role of media
 
Reforming the Excise Tax on Tobacco
Reforming the Excise Tax on TobaccoReforming the Excise Tax on Tobacco
Reforming the Excise Tax on Tobacco
 

Missing kids on you

  • 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