{"id":682,"date":"2016-05-20T11:25:22","date_gmt":"2016-05-20T11:25:22","guid":{"rendered":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/?p=682"},"modified":"2016-05-20T11:25:22","modified_gmt":"2016-05-20T11:25:22","slug":"comunicacio-yahoo-weather","status":"publish","type":"post","link":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/es\/2016\/05\/20\/comunicacio-yahoo-weather\/","title":{"rendered":"Comunicaci\u00f3n: Yahoo Weather"},"content":{"rendered":"<p><span style=\"line-height: 1.5\">Una de las cosas que podemos hacer con Processing es conectar con otros programas, protocolos, paquetes de datos &#8230;<\/span><span style=\"line-height: 1.5\"><br \/>\n<\/span><\/p>\n<p>Uno de los ejemplos es la conexi\u00f3n con Yahoo Weather, que nos puede servir para hacer que nuestros sketches cambien seg\u00fan el tiempo que hace en un punto del mundo en concreto.<\/p>\n<p>A partir de<a href=\"http:\/\/learningprocessing.dreamhosters.com\/examples\/chapter-18\/example-18-5\/\"> un ejemplo de Daniel Shiffman<\/a> hemos adaptado un poco el c\u00f3digo para simplificar alguna parte y hacer que muestre un poco m\u00e1s de informaci\u00f3n. La idea es simple: cada vez que hacemos clic en la ventana de Processing , obtendremos la temperatura y estado del tiempo de Nueva York , Barcelona y Tokio sucesivamente.<\/p>\n<p><a href=\"https:\/\/www.dropbox.com\/s\/3k544p93n0ceq1i\/YahooWeather.zip?dl=0\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-684\" src=\"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/files\/2016\/05\/weather-1.jpg\" alt=\"weather\" width=\"200\" height=\"200\" srcset=\"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/files\/2016\/05\/weather-1.jpg 200w, http:\/\/multimedia.uoc.edu\/blogs\/labpc\/files\/2016\/05\/weather-1-150x150.jpg 150w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><\/p>\n<p>Pod\u00e9is descargar el ejemplo completo\u00a0<a href=\"https:\/\/www.dropbox.com\/s\/3k544p93n0ceq1i\/YahooWeather.zip?dl=0\">aqu\u00ed<\/a>. Seguidamente, comenteamos los puntos clave.<\/p>\n<p>De entrada, lo que hace el sketch no es m\u00e1s que conectarse a un enlace xml como este:\u00a0<a href=\"https:\/\/query.yahooapis.com\/v1\/public\/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%3D2459115\">https:\/\/query.yahooapis.com\/v1\/public&#8230;<\/a>\u00a0La clave es la parte final. Un n\u00famero que identifica una ciudad: 2459115 por Nueva York, 753,692 por Barcelona , etc. Si quer\u00e9is\u00a0provar, en <a href=\"http:\/\/woeid.rosselliot.co.nz\/\">este enlace<\/a>\u00a0ver\u00e9is c\u00f3mo encontrar el identificador de la ciudad deseada.<\/p>\n<p>La clase clave es WeatherGrabber , y desde el draw conectamos con wg.getWeather(); y wg.getTemp(); para obtener informaci\u00f3n del tiempo que hace y la temperatura en la ciudad indicada.<\/p>\n<p>B\u00e1sicamente, lo que hace WeatherGrabber es leer\u00a0todo el xml, hace una sola l\u00ednea de texto, y luego utiliza la t\u00e9cnica del &#8216; parsing &#8216;, que consiste en analizar texto para quedarse con la informaci\u00f3n de una parte determinada, para leer la parte que interesa. Por ejemplo, el texto que hay detr\u00e1s &#8216;text=&#8217; ( y antes del siguiente car\u00e1cter &#8216;\\&#8217;) es el tiempo que hace: sunny, partly cloudy, etc. Y el texto que hay a continuaci\u00f3n de &#8216; temp=&#8217; es la temperatura (en grados Farenheit que convertimos en Celsius). La funci\u00f3n &#8216; giveMeTextBetween &#8216; es la que hace el an\u00e1lisis del texto y devuelve la informaci\u00f3n buscada.<\/p>\n<p>A partir de aqu\u00ed, simplemente lo que hace el sketch es dibujar una barra seg\u00fan la temperatura y mostrarla en texto, as\u00ed como tambi\u00e9n el estado del tiempo y la ciudad de la que se lee la informaci\u00f3n siguiendo su indicador.<\/p>","protected":false},"excerpt":{"rendered":"<p>Una de las cosas que podemos hacer con Processing es conectar con otros programas, protocolos, paquetes de datos &#8230; Uno de los ejemplos es la conexi\u00f3n con Yahoo Weather, que nos puede servir para hacer que nuestros sketches cambien seg\u00fan el tiempo que hace en un punto del mundo en concreto. A partir de un [&hellip;]<\/p>\n","protected":false},"author":100,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,24,1,4,6,35],"tags":[121,120,119,88,117],"class_list":["post-682","post","type-post","status-publish","format-standard","hentry","category-catalan","category-codigo","category-general","category-idioma","category-intermedia","category-processing-tema","tag-conexion","tag-daniel-shiffman","tag-learningprocessing","tag-proccessing","tag-yahoo"],"_links":{"self":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/es\/wp-json\/wp\/v2\/posts\/682","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/es\/wp-json\/wp\/v2\/users\/100"}],"replies":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/es\/wp-json\/wp\/v2\/comments?post=682"}],"version-history":[{"count":6,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/es\/wp-json\/wp\/v2\/posts\/682\/revisions"}],"predecessor-version":[{"id":690,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/es\/wp-json\/wp\/v2\/posts\/682\/revisions\/690"}],"wp:attachment":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/es\/wp-json\/wp\/v2\/media?parent=682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/es\/wp-json\/wp\/v2\/categories?post=682"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/es\/wp-json\/wp\/v2\/tags?post=682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}