Progetto per l`esame
Transcript
Progetto per l`esame
Sistemi Multimediali e Laboratorio A.A. 2013/2014 Progetto per l’esame ! Obbiettivo del Progetto Progettazione e realizzazione di uno sketch Processing che visualizzi informazioni meteo reperite in tempo reale dal sito Yahoo Weather. In particolare, lo sketch deve: • all’avvio, reperire le informazioni sul meteo per una località pre-impostata (Udine) da Yahoo Weather • visualizzare, tramite testo, grafica, animazioni, ed eventualmente suoni, le informazioni reperite Il progetto va svolto individualmente e deve essere accompagnato da una breve relazione in formato PDF che spieghi le scelte progettuali (si veda la parte sulla valutazione del progetto). Il seguito di questo documento contiene specifiche dettagliate ed un esempio di codice per il reperimento di informazioni meteo che potete usare come base di partenza. Specifiche dettagliate Lo sketch deve visualizzare: • la città, lo stato, la data e l’ora • condizioni meteo attuali, inclusa la temperatura • previsioni per i due giorni successivi Se volete visualizzare altre informazioni fornite da Yahoo Weather, potete farlo. Potete usare immagini e suoni reperiti su internet, purché siano di pubblico dominio o con licenze che ne permettano l’utilizzo (almeno per scopi non commerciali). Nel caso, dovete indicare nella relazione i siti da cui avete reperito qualsiasi tipo di materiale non creato da voi. Lo sketch deve contenere almeno un’animazione, mentre l’uso di suoni è a vostra discrezione. Inoltre, non deve riprodurre in maniera pedissequa applicazioni o siti Web esistenti che presentano informazioni meteo. Reperire informazioni da Yahoo Weather tramite Processing Yahoo fornisce un servizio RSS contenente le condizioni meteo aggiornate per una località a scelta (le specifiche complete del servizio si trovano alla pagina https://developer.yahoo.com/ weather/). Ad esempio, per ottenere le condizioni meteo aggiornate per Udine con le temperature in gradi Celsius, si può usare l’URL http://weather.yahooapis.com/forecastrss?w=725383&u=c! ! dove 725383 e’ un codice che identifica la città di Udine. La risposta fornita dal server di Yahoo e’ un documento XML che rispetta il formato RSS1, ad esempio: <?xml version="1.0"?> <rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" version="2.0"> <channel> <title>Yahoo! Weather - Udine, IT</title> <link>http://us.rd.yahoo.com/dailynews/rss/weather/Udine__IT/*http://weather.yahoo.com/forecast/ ITXX0163_c.html</link> <description>Yahoo! Weather for Udine, IT</description> <language>en-us</language> <lastBuildDate>Sun, 18 May 2014 8:00 pm CEST</lastBuildDate> <ttl>60</ttl> <yweather:location city="Udine" country="Italy" region="FV"/> <yweather:units distance="km" pressure="mb" speed="km/h" temperature="C"/> <yweather:wind chill="17" direction="350" speed="3.22"/> <yweather:atmosphere humidity="77" pressure="1016" rising="0" visibility=""/> <yweather:astronomy sunrise="5:29 am" sunset="8:32 pm"/> <image> <title>Yahoo! Weather</title> <width>142</width> <height>18</height> <link>http://weather.yahoo.com</link> <url>http://l.yimg.com/a/i/brand/purplelogo//uh/us/news-wea.gif</url> </image> <item> <title>Conditions for Udine, IT at 8:00 pm CEST</title> <geo:lat>46.06</geo:lat> <geo:long>13.23</geo:long> <link>http://us.rd.yahoo.com/dailynews/rss/weather/Udine__IT/*http://weather.yahoo.com/forecast/ ITXX0163_c.html</link> <pubDate>Sun, 18 May 2014 8:00 pm CEST</pubDate> <yweather:condition code="28" date="Sun, 18 May 2014 8:00 pm CEST" temp="17" text="Mostly Cloudy"/> <description><![CDATA[<img src="http://l.yimg.com/a/i/us/we/52/28.gif"/><br /><b>Current Conditions:</ b><br />Mostly Cloudy, 17 C<BR /><BR /><b>Forecast:</b><BR />Sun - Showers Early. High: 18 Low: 13<br />Mon - AM Showers. High: 21 Low: 11<br />Tue - Mostly Sunny. High: 23 Low: 12<br />Wed - Partly Cloudy. High: 23 Low: 13<br />Thu - Sunny. High: 27 Low: 15<br /><br /><a href="http://us.rd.yahoo.com/dailynews/rss/weather/Udine__IT/ *http://weather.yahoo.com/forecast/ITXX0163_c.html">Full Forecast at Yahoo! Weather</a><BR/><BR/>(provided by <a href="http://www.weather.com" >The Weather Channel</a>)<br/>]]></description> <yweather:forecast code="45" date="18 May 2014" day="Sun" high="18" low="13" text="Showers Early"/> <yweather:forecast code="39" date="19 May 2014" day="Mon" high="21" low="11" text="AM Showers"/> <yweather:forecast code="34" date="20 May 2014" day="Tue" high="23" low="12" text="Mostly Sunny"/> <yweather:forecast code="30" date="21 May 2014" day="Wed" high="23" low="13" text="Partly Cloudy"/> <yweather:forecast code="32" date="22 May 2014" day="Thu" high="27" low="15" text="Sunny"/> <guid isPermaLink="false">ITXX0163_2014_05_22_7_00_CEST</guid> </item> </channel> </rss> ! Il seguente codice Processing effettua la richiesta delle informazioni meteo per Udine, e visualizza tramite testo la città e la temperatura corrente: int temperature; String city; ! void setup() { // load the XML document from Yahoo Weather XML root = loadXML("http://weather.yahooapis.com/forecastrss?w=725383&u=c"); // get the channel element (child of rss root element) XML channel = root.getChild("channel"); // get the item element (child of channel element) XML item = channel.getChild("item"); 1 http://en.wikipedia.org/wiki/RSS // get the yweather element (child of item element), containing current weather XML yweather = item.getChild("yweather:condition"); // get the temp attribute of the yweather:condition element temperature = yweather.getInt("temp"); city = channel.getChild("yweather:location").getString("city") channel.getChild("yweather:location").getString("country"); + ", " + size(300,300); // print XML document to console, for debug purposes print(root); !! } void draw() { text("City :" + city,20, 20); text("temperature :" + temperature,20, 40); } ! Lo sketch utilizza la classe XML di Processing (http://processing.org/reference/XML.html), che permette di accedere al contenuto di documenti XML. Il metodo getChild() permette di accedere ai diversi elementi del documento XML utilizzando le relazioni padre-figlio. I metodi getInt() e getString() permettono l’accesso agli attributi degli elementi in base al loro tipo. I dati da visualizzare si trovano all’interno dell’elemento item. Ad esempio, l’elemento ! <yweather:condition code="28" date="Sun, 18 May 2014 8:00 pm CEST" temp="17" text="Mostly Cloudy"/> riporta le principali informazioni meteo al momento della richiesta. L’attributo code indica un codice numerico che identifica le condizioni meteo attuali, corrispondenti al valore dell’attributo text. Ad esempio, il vostro sketch potrebbe mostrare immagini diverse in base al tipo di condizioni meteo attuali. Non è necessario che la visualizzazione sia diversa per tutte le 48 condizioni possibili, le potete raggruppare per tipo (ad esempio, tutte quelle che indicano pioggia possono essere visualizzate allo stesso modo). Consegna e validità del progetto Copiate la relazione, in formato PDF, nella cartella dello sketch che avete realizzato. Comprimete la cartella (attenzione: non solo il contenuto) in formato ZIP2 e speditela via mail a: [email protected] [email protected] La mail deve recare l’oggetto: “Progetto di LabSM - XXXXX” dove XXXXX e’ il vostro numero di matricola e il contenuto della mail deve riportare, oltre all’allegato, il vostro cognome e nome. Riceverete una conferma della ricezione del progetto entro un paio di giorni. Nel caso non la riceveste, contattate Roberto Ranon all’indirizzo sopra indicato. In altre parole, quando scompattate il file ZIP, il risultato deve essere la cartella con il nome dello sketch, con dentro lo sketch e la relazione in formato PDF. 2 Il progetto deve essere consegnato entro la data dello scritto che intendete sostenere. Il progetto e’ valido per tutto l’A.A. 2013/2014, quindi FINO all’appello di febbraio 2015 compreso. E’ possibile riconsegnare il progetto più volte durante l’anno, ma solo una volta per appello scritto. Vale solo l’ultimo progetto consegnato. Valutazione del Progetto La valutazione del progetto e’ un voto da 0 a 10. Il voto, convertito in trentesimi, farà media (pesata in base ai crediti) con il voto delle altre parti dell’esame. Componenti della valutazione: - Esecuzione corretta dello sketch. L’esecuzione con errori dello sketch, o la mancata visualizzazione di qualche informazione meteo, comporta una valutazione di zero punti. - 0-2 punti: rispetto delle specifiche e dei termini di consegna (inclusi i nomi dei file, i formati, l’oggetto della mail di consegna, ecc.). Ogni violazione delle specifiche comporta la perdita di 1 punto. - 0-2 punti: uso efficace dei colori. La relazione deve spiegare che colori e combinazioni di colori sono stati usati ed esplicitare le intenzioni alla base di tali scelte. Vedi note successive. - 0-2 punti: uso efficace di forme e layout. La relazione deve spiegare perché sono state usate determinate caratteristiche plastiche, tipografiche e compositive, ed esplicitare le intenzioni alla base di tali scelte.Vedi note successive. - 0-2: uso efficace di immagini animazioni e suoni. La relazione deve spiegare perché sono state usate determinate immagini e suoni ed esplicitare le intenzioni alla base di tali scelte. Vedi note successive. - 0-2 punti: creatività e originalità. Assegnati dal docente a suo giudizio. Note: - la motivazione delle scelte di progetto va fatta con riferimento a quanto visto a lezione relativamente alla classificazione dei significati potenziali (presentazionale, interpersonale e composizionale) associati alle diverse modalità di rappresentazione e risorse semiotiche (colore, tipografia, immagini, suono, ecc.) e ai requisiti funzionali di leggibilità, scansionabilità, comprensibilità del prodotto. - si suggerisce allo studente di fissare all'inizio del progetto le intenzioni comunicative che intende perseguire attraverso il prodotto e decidere da subito come tradurre tali intenzioni in termini di significati (es. rappresentazionali, interpersonali e composizionali) inscritti nel prodotto e come realizzare tali significati attraverso le varie risorse semiotiche disponibili. - la spiegazione e giustificazione delle scelte effettuate vale quanto il risultato finale. Se il vostro sketch funziona correttamente e visualizza in maniera efficace (e magari originale) i dati meteo, ma la vostra relazione non giustifica le scelte effettuate, il vostro punteggio sarà basso.