Una de les coses que podem fer amb Processing és connectar amb altres programes, protocols, paquets de dades…
Un dels exemples és la connexió amb Yahoo Weather, que ens pot servir per fer que els nostres sketches canviïn segons el temps que fa a un punt del món en concret.
A partir d’un exemple de Daniel Shiffman hem adaptat una mica el codi per tal que simplificar-ne alguna part i fer que mostri una mica més d’informació. La idea és simple: cada cop que cliquem a la finestra de Processing, obtindrem la temperatura i estat del temps de Nova York, Barcelona i Tòquio successivament.
Podeu descarregar l’exemple complet aquí, però en tot cas en comentem seguidament els punts clau.
D’entrada, el que fa l’sketch no és més que connectar-se a un enllaç xml com aquest: https://query.yahooapis.com/v1/public… La clau és la part final. Un número que identifica una ciutat: 2459115 per Nova York, 753692 per Barcelona, etc. Si teniu ganes de provar, a aquest enllaç hi trobareu com trobar l’identificador de la ciutat que volgueu.
La classe clau és WeatherGrabber, i des del draw hi connectem amb wg.getWeather(); i wg.getTemp(); per obtenir-ne informació del temps que fa i la temperatura a la ciutat indicada.
Bàsicament, el que fa WeatherGrabber és agafar tot l’xml, en fa una sola línia de text, i després utilitza la tècnica del ‘parsing’, que consisteix en analitzar text per quedar-se amb la informació d’una part determinada, per llegir la part que interessa. Per exemple, el text que hi ha darrere ‘text=’ (i abans del proper caràcter ‘\’) és el temps que fa: sunny, partly cloudy, etc. I el text que hi ha seguidament de ‘temp=’ és la temperatura (en graus Farenheit que convertim a Celsius). La funció ‘giveMeTextBetween’ és la que fa l’anàlisi del text i retorna la informació buscada.
A partir d’aquí, simplement el que fa l’sketch és dibuixar una barra segons la temperatura i mostrar-la en text, així com també l’estat del temps i la ciutat de la que es llegeix la informació seguint el seu indicador.


