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.