{"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\/2016\/05\/20\/comunicacio-yahoo-weather\/","title":{"rendered":"Comunicaci\u00f3: Yahoo Weather"},"content":{"rendered":"<p>Una de les coses que podem fer amb Processing \u00e9s connectar amb altres programes, protocols, paquets de dades&#8230;<\/p>\n<p>Un dels exemples \u00e9s la connexi\u00f3 amb Yahoo Weather, que ens pot servir per fer que els nostres sketches canvi\u00efn segons el temps que fa a un punt del m\u00f3n en concret.<\/p>\n<p>A partir d&#8217;<a href=\"http:\/\/learningprocessing.dreamhosters.com\/examples\/chapter-18\/example-18-5\/\">un exemple de Daniel Shiffman<\/a>\u00a0hem adaptat una mica el codi per tal que\u00a0simplificar-ne alguna part i fer que mostri una mica m\u00e9s d&#8217;informaci\u00f3. La idea \u00e9s simple: cada cop que cliquem a la finestra de Processing, obtindrem la temperatura i estat del temps de Nova York, Barcelona i T\u00f2quio successivament.<\/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>Podeu descarregar l&#8217;exemple complet <a href=\"https:\/\/www.dropbox.com\/s\/3k544p93n0ceq1i\/YahooWeather.zip?dl=0\">aqu\u00ed<\/a>, per\u00f2 en tot cas en comentem seguidament els punts clau.<\/p>\n<p>D&#8217;entrada, el que fa l&#8217;sketch no \u00e9s m\u00e9s que connectar-se a un enlla\u00e7 xml com aquest:\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 clau \u00e9s la part final. Un n\u00famero que identifica una ciutat:\u00a02459115 per Nova York,\u00a0753692 per Barcelona, etc. Si teniu ganes de provar, a <a href=\"http:\/\/woeid.rosselliot.co.nz\/\">aquest enlla\u00e7<\/a> hi trobareu com trobar l&#8217;identificador de la ciutat que volgueu.<\/p>\n<p>La classe clau \u00e9s WeatherGrabber, i des del draw hi connectem amb\u00a0wg.getWeather(); i\u00a0wg.getTemp(); per obtenir-ne informaci\u00f3 del temps que fa i la temperatura a la ciutat indicada.<\/p>\n<p>B\u00e0sicament, el que fa\u00a0WeatherGrabber \u00e9s agafar tot l&#8217;xml, en fa una sola l\u00ednia de text, i despr\u00e9s utilitza la t\u00e8cnica del &#8216;parsing&#8217;, que consisteix en analitzar text per quedar-se amb la informaci\u00f3 d&#8217;una part determinada, per\u00a0llegir la part que interessa. Per exemple, el text que hi ha darrere\u00a0&#8216;text=&#8217; (i abans del proper car\u00e0cter &#8216;\\&#8217;) \u00e9s el temps que fa: \u00a0sunny, partly cloudy, etc. I el text que hi ha seguidament de\u00a0&#8216;temp=&#8217; \u00e9s la temperatura (en graus Farenheit que convertim a Celsius). La funci\u00f3 &#8216;giveMeTextBetween&#8217; \u00e9s la que fa l&#8217;an\u00e0lisi del text i retorna la informaci\u00f3 buscada.<\/p>\n<p>A partir d&#8217;aqu\u00ed, simplement el que fa l&#8217;sketch \u00e9s dibuixar una barra segons la temperatura i mostrar-la en text, aix\u00ed com tamb\u00e9 l&#8217;estat del temps i la ciutat de la que es llegeix la informaci\u00f3 seguint el seu indicador.<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Una de les coses que podem fer amb Processing \u00e9s connectar amb altres programes, protocols, paquets de dades&#8230; Un dels exemples \u00e9s la connexi\u00f3 amb Yahoo Weather, que ens pot servir per fer que els nostres sketches canvi\u00efn segons el temps que fa a un punt del m\u00f3n en concret. A partir d&#8217;un exemple de [&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\/wp-json\/wp\/v2\/posts\/682","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/wp-json\/wp\/v2\/users\/100"}],"replies":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/wp-json\/wp\/v2\/comments?post=682"}],"version-history":[{"count":6,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/wp-json\/wp\/v2\/posts\/682\/revisions"}],"predecessor-version":[{"id":690,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/wp-json\/wp\/v2\/posts\/682\/revisions\/690"}],"wp:attachment":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/wp-json\/wp\/v2\/media?parent=682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/wp-json\/wp\/v2\/categories?post=682"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/labpc\/wp-json\/wp\/v2\/tags?post=682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}