s.p.r.i.te. magazine n.6

16
S.P.R.I.Te.Magazine S.P.R.I.Te.Magazine VI VI Bimensile gratuito - Associazione studentesca S.P.R.I.Te. C.d.l. In Scienze dell'Informazione – Cesena Numero 6 – anno 2007 SOMMARIO SOMMARIO Ajax articolo numero 2 - Demo 2 Welcome Day CSR - Tommaso Dionigi 5 wxWidgets e wxDevC++ - Elvis Ciotti 6 Development day 8 Last.fm, the social music revolution - Matteo Battistelli 8 “Stay hungry. Stay foolish.” by Steve Jobs - Venturi Filippo 10 Enigmi matematici e soluzioni 13 Streamtuner – Matteo Lupini 15 Eccoci qua ! S.P.R.I.Te. Magazine è il giornalino della nostra associazione nel quale parliamo dei nostri progetti, attività, argomenti inerenti il nostro c.d.l. e non solo. Per chi già non ci conoscesse, l'associazione S.P.R.I.Te. è composta di studenti volenterosi che offrono il loro aiuto per creare tutto quello che non è normalmente offerto agli studenti: servizio fotocopie e dispense, organizzazione feste, gestione sala Albatros, buffet di benvenuto alle matricole, linux/development-day, ecc... Per consultare l'elenco completo dei progetti/attività consulta il nostro sito http://sprite.csr.unibo.it/ Se ti senti coinvolto e vuoi darci una mano, scrivere un articolo per questo giornalino o proporre idee, contattaci all'indirizzo e-mail [email protected] , oppure vieni a trovarci negli orari di apertura, siamo nell'atrio della sede del c.d.l. , accanto all'aula E. S.P.R.I.Te. Ricordiamo i prossimi eventi ai quali non puoi assolutamente mancare: Mar 23 Ottobre – Vidia Club (S.Vittore): Festa delle matricole 07 [pag 3] Ven 26 Ottobre – Aule Scienze dell'Informazione: Development day 07 [pag 4] 23 OTTOBRE Festa delle matricole 2007 [PAG 4] 26 OTTOBRE 07 Development Day [PAG 8] scherzo alle matricole e Welcome Day S.P.R.I.Te. [PAG. 5]

Upload: elvis-ciotti

Post on 25-May-2015

186 views

Category:

Internet


2 download

TRANSCRIPT

Page 1: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

S.P.R.I.Te.MagazineS.P.R.I.Te.Magazine VIVIBimensile gratuito - Associazione studentesca S.P.R.I.Te.

C.d.l. In Scienze dell'Informazione – CesenaNumero 6 – anno 2007

SOMMARIOSOMMARIO

Ajax articolo numero 2 - Demo 2

Welcome Day CSR - Tommaso

Dionigi

5

wxWidgets e wxDevC++ - Elvis

Ciotti

6

Development day 8

Last.fm, the social music

revolution - Matteo Battistelli

8

“Stay hungry. Stay foolish.” by

Steve Jobs - Venturi Filippo

10

Enigmi matematici e soluzioni 13

Streamtuner – Matteo Lupini 15

Eccoci qua !

S.P.R.I.Te. Magazine è il giornalino della nostra associazione nel quale parliamo dei nostri progetti, attività, argomenti inerenti il nostro c.d.l. e non solo.

Per chi già non ci conoscesse, l'associazione S.P.R.I.Te. è composta di studenti volenterosi che offrono il loro aiuto per creare tutto quello che non è normalmente offerto agli studenti: servizio fotocopie e dispense, organizzazione feste, gestione sala Albatros, buffet di benvenuto alle matricole, linux/development-day, ecc...

Per consultare l'elenco completo dei progetti/attività consulta il nostro sitohttp://sprite.csr.unibo.it/Se ti senti coinvolto e vuoi darci una mano, scrivere un articolo per questo

giornalino o proporre idee, contattaci all'indirizzo e-mail [email protected], oppure vieni a trovarci negli orari di apertura, siamo nell'atrio della sede del c.d.l. , accanto all'aula E.

S.P.R.I.Te.

Ricordiamo i prossimi eventi ai quali non puoi assolutamente mancare:• Mar 23 Ottobre – Vidia Club (S.Vittore): Festa delle matricole 07 [pag 3]• Ven 26 Ottobre – Aule Scienze dell'Informazione: Development day 07 [pag 4]

23 OTTOBREFesta delle matricole 2007

[PAG 4]

26 OTTOBRE 07Development Day

[PAG 8]

scherzo alle matricole e Welcome Day S.P.R.I.Te.

[PAG. 5]

PAG 1

Page 2: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

Ajax articolo numero 2

di Demo < [email protected] >

Nello scorso numero ho introdotto Ajax e vi ho mostrato un semplice esempio di codice su come è nato e quale era una delle sue prime implementazioni. Dall'introduzione dei frameset e degli iframe ci sono stati un po' di cambiamenti. Vari browser hanno iniziato ad implementare diverse soluzioni per dare a Javascript il “potere” di effettuare chiamate GET e/o POST in background. Senza tornare troppo nel dettaglio, in questo numero introdurrò due nuovi concetti senza discostarmi troppo da quanto detto nel precedente articolo.

1) XMLHttpRequest / ActiveXObject(Microsoft.XMLHTTP)2) PHP5 & XML (rss)

Con il primo elimineremo un sacco di codice sia javascript che html al fine di rendere le nostre pagine sempre più leggere, e capaci di sfruttare le potenzialità di ajax. Di per se pochi kb in una pagina non fanno la differenza ma un milione di siti per un pugno di kb di traffico in meno per ogni pagina che viene vista... Se tutti gli sviluppatori fossero più consapevoli nel creare le proprie applicazioni ne gioverebbe tutta la rete.

Con il secondo introdurremo e vedremo in maniera assolutamente periferica, come php5 consente di interagire con lo standard rss.

sprite.html<html> <head> <script language="JavaScript" src="caricaFeed.js"></script> </head> <body onload="javascript:caricaFeed('elfo', 'sprite.php');"> <div id="elfo">Sto caricando ...</div> </body></html>

Tutto il codice HTML della volta scorsa è scomparso. Per chi non avesse letto lo scorso numero il pattern utilizzato prevedeva l'utilizzo di un'applicazione a frame. In un frame con altezza 0% venivano caricate le pagine (essendo questo frame nascosto) che andavano a riempire la pagina principale nel frame con altezza impostata al 100%. Diciamo che lo spazio occupato ora è almeno un terzo o addirittura un quarto.

In questo documento HTML ci sono 3 cose da notare. Per prima la chiamata ad un file .js che ho chiamato caricaFeed.js. La seconda è la chiamata alla funzione caricaFeed(); non appena il documento è stato caricato (<body ... onload=””>). Terzo è l'elemento <div id=”elfo”

/>.

Come nell'esempio scorso, mi piace spiegare i miei script esattamente per come si comportano:

Il browser ha caricato sprite.html, ha incluso un file javascript, e quando finisce di caricare tutto il documento si genera l'evento onload e il tag body fa si che venga richiamata la funzione caricaFeed('elfo', 'sprite.php');. Andiamo a vedere che cosa fa questa funzione (che ci tengo a sottolineare è l'unica presente in questo esempio: a dimostrazione del fatto che ajax può ridurre notevolmente il “peso” e/o la “leggibilità” di un'applicazione web).

caricaFeed.jsfunction caricaFeed(id, pagina){

if(window.XMLHttpRequest)req = new XMLHttpRequest();

else if (window.ActiveXObject)req = new ActiveXObject(Microsoft.XMLHTTP);

req.onreadystatechange = function(){

if(req.readyState == 4)if(req.status == 200)

document.getElementById(id).innerHTML = req.responseText;};

var today = new Date(); var strDateOut = today.getFullYear() + today.getMonth() + today.getDate() + today.getMinutes() + today.getSeconds();

PAG 2

Page 3: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

req.open("GET", pagina + "?" + strDateOut, true); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send(null);

}

Specifichiamo subito che questa funzione vuole due argomenti:

1) id dell'elemento nella pagina html2) la pagina da caricare in background

In primo luogo (chiedo venia se ho omesso commenti direttamente nel codice), viene creato l'oggetto in grado di leggere la struttura DOM (Document Object Model) che si vuole caricare. Dovete sapere che IE e FF hanno due implementazioni differenti per la gestione delle richieste HTTP con Javascript (ma va ...).

Per creare un parser controlliamo se esiste window.XMLHttpRequest. Questo è il nome dell'oggetto su FF. Beh, ovviamente c'è ancora quel “sempre troppo” percento dell'utenza che si ostina ad utilizzare IE. In quel caso l'XMLHttpRequest non esisterà e quindi noi andremo a creare un controllo ActiveX con window.ActiveXControl(Microsoft.XMLHTTP). In questo articolo non voglio entrare nel dettaglio del

funzionamento delle implementazioni di Microsoft o di altri standard, mi limiterò a dire che hanno punti in comune.

Teniamo presente che questo oggetto caricherà una pagina in background, questo caricamento attraverserà diverse fasi che scaturiranno degli eventi. In particolare noi possiamo andare a gestire il “momento” onreadystatechange.

Ogni volta che cambia lo stato di questo oggetto si controlla se lo stato è 4 (finished) ed a quel punto si controlla che lo stato sia 200. Se lo stato dovesse essere 404 avremo una situazione di “page not found”. Appurato il fatto che il nostro documento in background è stato caricato, ne preleviamo il testo reperibile dall'attributo responseText. A questo punto lo possiamo tranquillamente “schiaffare” dove vogliamo. Per come ho scritto questa funzione, la nostra pagina andrà a caricare l'elemento passato come argomento: nel nostro caso “elfo”.

I più attenti noteranno un codice strano:

caricaFeed.js... var today = new Date(); var strDateOut = today.getFullYear() + today.getMonth() + today.getDate() + today.getMinutes() + today.getSeconds();

req.open("GET", pagina + "?" + strDateOut, true); ...

Questo codice assurdo, serve per evitare che IE carichi la pagina in background dalla cache. Se notate viene aggiunta alla pagina php una querystring il cui valore sarà al 99.9% sempre diverso. Questo fa credere ad IE che le richieste sono diverse e caricherà nuovamente la pagina in questione.

Adesso è il turno della pagina php. Che cosa farà mai questa pagina?

sprite.php<?php

$xmldoc = new DOMDocument(); $xmldoc->load('http://punto-informatico.it/fader/pixml.xml'); $xp = new DOMXPath($xmldoc); $xml = $xp->query("//rss/channel/item/title"); foreach ($xml as $node) { print $node->textContent.'<br>'; } ?>

Questa è una pagina semplicissima. Anche qui ci sarebbe da estendere ancora di più questo articolo e parlare meglio del DOM xml con php, poi... Xpath. Eheheh le cose da dire sarebbero davvero tante.

Limitiamoci a dire che in questo documento viene creato un oggetto DOMDocument il cui costruttore altro non fa che allocare la memoria per contenere un file XML. Il documento può essere interno o appartenente ad un sito

PAG 3

Page 4: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

esterno. Infatti nella riga successiva si nota che l'XML caricato fa riferimento al sito di punto-informatico.

Il costruttore della classe DOMXPath, invece, prende come parametro l'oggetto della classe DOMDocument che contiene il documento XML, e ne crea uno nuovo che può essere interrogato con Xpath. La riga successiva carica tutti i titoli dell'rss. Un semplice foreach se li scorre tutti e mostra il contenuto del nodo title.

Fine =)

-Per domande e chiarimenti-GMAIL sensorario at gmail.com-ICQ 55493398-MSN knottyboy at hotmail.it-MYSPACE http://www.myspace.com/knottyboybox

Festa delle matricole 2007

PAG 4

Page 5: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

Welcome Day CSR: una giornata a base di S.P.R.I.Te.!Il primo giorno di scuola: di nuovo!

Di Tommaso Dionigi < [email protected] >

Ormai abituato a “primi giorni di scuola” la preoccupazione e l’ansia sono ridotte al minimo. Probabilmente un ambiente nuovo ti non emoziona più come i banchi, gli odori, i colori di quella prima elementare di tanti anni fa.

Allora arrivi tranquillo, cercando di riabituarti alla sveglia che suona in linea con gli orari della “gente normale”, orari abbandonati a giugno, quando saltando l’ostacolo dell’esame di maturità ti avviavi con passo deciso verso quella che capirai presto essere l’ultima vera e lunga vacanza degli anni di scuola.

Si arriva presto oggi, il “quarto d’ora accademico” non è ancora entrato a far parte dei tuoi ritardi abituali.

Alle nove sono tutti li, come te, ad aspettare l’inizio della nuova, ennesima metamorfosi della propria figura di studente.

Il primo giorno di scuola non si fa gran che, ti dici. Forse te la caverai in qualche ora, forse nessuno ha pensato a come organizzare una giornata di passaggio. Ma si, si... sarà una cosa veloce e ci penseremo domani.

Invece no.

Giacca, cravatta e passo deciso: entra il professore. Non sembra avere voglia di scherzare né tanto meno di perdere il suo tempo in inutili introduzioni.

Il concetto è chiaro: 5 minuti del suo tempo valgono di più della tua intera mattinata. Non c’è speranza.

Sospettavi che “all’Università fossero un po’ esigenti”, ma non saresti mai arrivato ad immaginare tanto.

Tutti in silenzio, le parole del professore si susseguono ad un ritmo molto diverso da quello dei tuoi pensieri che invece ripetono lenti: “non guardare me, ci sono altre 100 persone qui dentro, io taccio e faccio finta di niente”.

Suona un cellulare, la fondamentale raccomandazione del prof è già stata violata: lui sta perdendo tempo a causa vostra. Al malcapitato dopo qualche minuto restano solo frammenti dell’oggetto che fino a poco prima usava come telefono.

Alla lavagna un limite che non sai risolvere: sono passati solo 10 minuti.

Ma... non dovevi cavartela con qualche cenno introduttivo o poco altro? Qualcosa non va, non è possibile!

Quello che accade dopo è poco importante: il prof si interrompe, gira il portatile... cosa sta succedendo?

La rivelazione: S.P.R.I.Te. ha pensato a te molto prima che tu mettessi piede in quell’aula, quella mattina del primo giorno di ottobre. Era uno scherzo. Benvenuta all’università cara matricola!

Un’introduzione da parte dei referenti del Corso di Laurea, qualche ora di lezione. Vai a vedere cosa avrà avuto il coraggio di organizzare ancora “S.P.R.I.Te.” .

E’ “S.P.R.I.Te. Welcome!”. Stranamente è tutto tranquillo.

Ma poi cosa sarà questa sprite? E che nome sarà mai questo?!

Studenti Polo Romagnolo Informatica e Tecnologie, eccoti la spiegazione.

Benvenuto! Mangi, bevi, fai la tessera dell’Associazione (l’hai fatta la tessera vero?! ndr).

Ora puoi anche tornare a casa.Questo primo giorno da universitario non te lo

dimenticherai tanto facilmente.

Tommaso DionigiPresidente Ass.Stud. S.P.R.I.Te.

[email protected]

Il video dello scherzo a questo link:http://sprite.csr.unibo.it/blog/2007/10/10/scherzo-matricole-1-ottobre-2007/

PAG 5

Page 6: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

Window applications con wxWidgets e wxDevC++di Elvis Ciotti <[email protected]>

Questa guida, rivolta a chi conosce già C++, illustra un modo open-source e platform-independent per creare applicazioni a finestre per Ms Windows, Linux, Max Os X, Win CE. In pratica un'alternativa gratuita e portabile a Ms Visual C++ /NET.

Le librerie che forniscono queste funzionalità sono le wxWidgets (http://wxwidgets.org).

Possono essere usate dai linguaggi ad oggetti C++, C#/net,Per, Python.

A differenza delle MFC e WTL, utilizzano un look nativo, quindi indipendente delle API di Ms Windows, non servono quindi dll esterne. Le wxWidgets sono estensibili e Open Source.

La grafica che ne risulterà non sarà quindi perfettamente in stile visuale di Ms Windows se compilate in piattaforme win32, in pratica lavorerete in modalità WYSINAWYG (What You See Is Not Always What You Get).

Nel sito trovate la guida, da tenere sottomano per la lista funzioni.

Per utilizzare le librerie con l'ausilio di tools per disegnare i controlli con il mouse, esiste wxDev-C++ (http://wxdsgn.sourceforge.net), ambiente di sviluppo Dev C++ modificato per utilizzare al meglio le librerie wxWidgets.

wxDev-C++ contiene sia le librerie che tool grafici per disporre i controlli nelle finestre, oltre a creare automaticamente il codice c++ necessario all'istanziazione, inizializzazione e funzionamento dei componenti.

Il compilatore che usa è MinGW (cioè il porting di GCC su windows), non molto veloce ma con un ottimo debugger. L'editor supporta l'autocompletamento del codice, comprese le funzioni della libreria wxWidgets.

Iniziamo

Dal menu File creiamo un nuovo wxFrame, lasciamo il nome Progetto1.

Automaticamente vengono creati i file:Progetto1Frm.cppProgetto1Frm.h Progetto1Frm.wxform

questi 3 file contengono la classe Progetto1Frm, estensione di wxFrame.

Consiglio già da adesso di abituarsi a consultare la guida per vedere le funzioni della classe wxFrame, in modo da sapere già da subito cosa è possibile fare.

Ad esempio, quando inseriamo i componenti (bottoni, EditText, Selectbox...) nella finestra, viene ridefinito il metodo CreateGUIControls() che li instanzia durante la costruzione della classe, oltre a definire altre proprietà della finestra.Progetto1App.cppProgetto1App.hProgetto1App.rc

Contengono il "main" dell'applicazione, cioè il codice che lancia le varie finestre create.

In questi file viene definita la classe Progetto1FrmApp, ereditata da wxApp.

I metodi sono essenzialmente due: OnInit() che instanzia e mostra il nostro unico frame (Progetto1Frm) e OnExit() che gestisce l'uscita dal programma.

Il file wxform è il file che memorizza le dimensioni dei frames (windows) e componenti (widgets) al loro interno.

Primi passi

Per inserire il codice che vogliamo parta con un evento di un componente, clicchiamo sul componente, nella finestra proprietà scegliamo l'evento dal menù a discesa. Viene automaticamente creata la funzione ed aggiunta alla classe del frame.

Dobbiamo solo inserire il codice da eseguire allo scatenarsi dell'evento.

Le variabili relative ai componenti della finestra, sono puntatori alle classi degli oggetti relativi della libreria (wxButton per i pulsanti, wxTextCtrl per editbox...), sono dichiarate "private" nella classe Progetto1Frm.

Se siamo all'interno di una funzione della classe (ad esempio la funzione che parte al click su un pulsante), per usarne una proprietà, dobbiamo chiamare:WxButton1->metodo(<argomenti>)

L'elenco dei metodi lo trovate nella guida, classe WxButton.

Stringhe

Le stringhe, indispensabili per utilizzate quasi tutti i controlli (es: testo editabile wxTextCtrl, testo dei pulsanti WxButton), vanno usate con la classe wxString, quasi identica alla classe String della StdLib C++.

La classe wxString presenta le funzioni per calcolarne lunghezza, leggerne un carattere, concatenazione, estrazione sottostringa, conversione del formato, conversione in numero.

PAG 6

Page 7: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

Alcune funzionalità

Elenco alcuni metodi dei controlli più usati, in modo da poter creare fin da subito qualche cosa di utile. Consultate l'elenco degli argomenti e prototipi delle funzioni nella guida di wxWidgets.

Caselle di testo anche multilinea (wxTextCtrl):AppendText, GetValue, SetValue, GetNumberOfLines, GetLineText, GetLineLength, GetStringSelection, SaveFile, SetValue

CheckBox (wxCheckBox): GetValue, SetValue

SelectBox (wxChoice): Append, GetSelection

Abbiamo anche molti altri controlli, per selezione date, print e MessageDialog, ColourDialog, Timer, TreeListCtrl, HTMLwindow...

Sviluppo con wxDevc++

Ci sono dei problemi riguardanti il tool per disegnare i frames e i componenti al loro interno.

Al momento, disegnando un controllo, non è possibile più cambiarne il nome per richiamarne proprietà e metodi, neanche sostituendo tutte le dichiarazioni nei files del codice. Si può rimediare a questo bug usando un puntatore alla classe col nome che vogliamo.

Se vogliamo isolarci da questi problemi e avere più controllo (componenti simili potrebbero essere meglio gestiti da un array di puntatori piuttosto che da una variabile per ogni controllo), possiamo creare manualmente il codice inserendo le dichiarazioni dei componenti nella classe del frame (Progetto1Frm) e inserirne la creazione in CreateGUIControls(), metodo

della classe, dove istanziamo il componente con le relative proprietà.

wxDev-C++ permette di aggiornare il compilatore, le librerie (anche le wxWidgets) e i files al suo interno senza dover reinstallare il programma, tramite una funzionalità presente nel menù di info/about.

Come già detto, l'eseguibile dell'applicazione che viene prodotto non richiede alcuna libreria esterna per disegnare e gestire i componenti delle finestre, questo comporta che la grafica sarà leggermente diversa e l'eseguibile sarà di alcuni Mb.

L'enorme vantaggio è che abbiamo un software completamente indipendente, ricompilabile senza tante modifiche in altre piattaforme.

Una volta compilato su Ms Windows, la grafica del software funziona sempre, senza terminare nell'eventuale mancanza di una dll esterna come potrebbe succedere per applicazioni create con librerie specifiche del sistema operativo.

Tra le varie opzioni dell'editor di codice, possiamo specificare i colori con cui vengono evidenziate le varie parti, oltre a carattere, tabulazioni e modo di elencare le classi e metodi esistenti.

Troviamo nel menu anche il supporto CVS e controlli per upload files / progetto.

Tra le opzioni di compilazione troviamo anche il supporto per compilatori Visual C++ 6, Visual C++ 2005, Visual C++ NET, qualora si abbiamo installati, in alternativa al MinGw presente con l'ambiente.

Alternative

Segnalo anche le librerie SmartWin++ (http://smartwin.sourceforge.net), sempre distribuite sotto licenza GPL e fornite con un ambiente tipo DevCpp

Segnalo anche Ultimate++ (http://upp.sourceforge.net/index.html), un ambiente di sviluppo che dovrebbe creare eseguibili meno pesanti e compilare più velocemente.

Un ambiente RAD (rapid application development) commerciale per disegnare con le wxWidgets è WxDesigner (http://www.roebling.de), mentre un ambiente alternativo a wxDev-C++ freeware è invece VisualWx (http://visualwx.altervista.org).

PAG 7

+

Interfaccia di wxDevC+

Page 8: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

Development day – 26 ottobre 2007

Development Day

Il Development Day si svolgerà lungo tutta la giornata del 26 Ottobre 2007 presso il Corso di Laurea in Scienze dell’Informazione di Cesena. Il tema centrale di questa giornata tratta, ovviamente, la programmazione in tutti i suoi aspetti. La giornata sarà composta di interventi puramente relazionali (detti talk) e di interventi con dimostrazione pratica (detti workshop). Inoltre, saranno suddivisi in due livelli: livello I, che si riferisce a quei interventi in cui non è necessaria una conoscenza molto approfondita dell’argomento relazionato, e livello II, in cui è necessaria una conoscenza approfondita dell’argomento relazionato.

Call for Paper

Chiunque voglia proporre una conferenza per il Development Day può consultare il Call for Paper. Troverete tutte le specifiche per farci pervenire le vostre proposte. Sono indicati gli argomenti generali che preferiremmo trattare durante le due giornate, le modalità di svolgimento delle conferenze, le modalità di invio degli interventi e le date da rispettare per la richiesta e la conferma della propria conferenza.

Se avete interventi da proporre per il Development Day vi invitiamo a contattarci di modo che i vostri contributi, i risultati del vostro lavoro, le vostre esperienze possano essere condivise con chi come voi apprezza e lavora con Linux o più in generale con e per gli utenti e gli sviluppatori del mondo del free software e dell’open source.

Elenco dei talk, informazioni al sito web: http://sprite.csr.unibo.it/blog/progetti/linuxday-2007/

Last.fm, the social music revolutiondi Matteo Battistelli < [email protected] >

Vi piace ascoltare musica? E vi piace farlo, magari, tramite il vostro pc... mentre programmate, leggete la posta, scribacchiate un breve articolo per il giornale di Sprite? E magari vi piacerebbe avere una cronologia di ciò che avete ascoltato, su questa ottenere una serie di statistiche e trovare utenti per il web che hanno gusti simili ai vostri e che possano consigliarvi qualche pezzo interessante? Oppure avete un gruppo e qualche vostro brano da

distribuire, o semplicemente volete pubblicizzare le vostre prossime esibizioni live? Bene allora last.fm è il sito che fa per voi. Quella che segue è solo una breve introduzione ad alcune delle funzioni , a mio avviso le più interessanti, che il sito offre. Per le altre vi consiglio di andare su www.last.fm e dare una sbirciatina alla guida: il sito è molto intuitivo e con qualche click del mouse scoprirete che si possono far parecchie cose interessanti.

PAG 8

Page 9: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

Audioscrobbler

Una volta registrati al sito e scaricato l'apposito player (o un plug-in per vostro player preferito) siete pronti per effettuare l' audioscrobbling.Ma che cos'è l'audioscrobbler? Esso non è altro che un sistema per tenere traccia dei brani che ascoltate. Questi saranno immediatamente pubblicati sul vostro spazio last.fm (che si trova all'indirizzo

www.last.fm/user/vosto_username). Dopo un numero sufficiente di brani memorizzati il sito inizierà a fornirvi una serie di statistiche tra cui la classifica degli artisti, album e pezzi più ascoltati. Inoltre, e questa è forse la cosa più interessante, vi consiglierà brani o musicisti compatibili con i vostri gusti. Sulla base di ciò che ascoltate inoltre verra stilata una lista di "vicini", utenti cioè che hanno gusti simili ai vostri e da cui potrete farvi consigliare qualche nuovo artista.

I profili degli artisti.

Per ogni cantante o gruppo esiste un apposito spazio all'interno del sito che mostra una breve descrizione con la lista dei suoi concerti oltre che la classifica dei brani più ascoltati dagli utenti del sito. Alcuni di questi brani possono essere scaricati, gratuitamente o a pagamento, o ascoltati in streaming.Questa sezione del sito, naturalmente, può essere usata anche da gruppi emergenti che possono fare l'upload dei

propri brani e decidere in che modo distribuirli o pubblicare le date dei propri concerti.

Playlist

Una funzione molto interessante è quella che dà la possibilità di creare una playlist con i propri brani preferiti. Se alla vostra playlist vengono aggiunti almeno 15 brani (scelti anche tra quelli distribuiti a pagamento) di album e artisti diversi quest'ultima potrà essere liberamente ascoltata in streaming da chiunque si colleghi all'indirizzo del vostro spazio su last.fm. Naturalmente l'utente non potrà scegliere liberamente il brano da ascoltare: sarà il sistema che si occuperà di selezionare, come una sorta di radio on-line, quale brano della playlist trasmettere in streaming.

Widgets

In questa sezione del sito è possibile creare delle piccole applet da inserire nel proprio sito web o blog. Con una serie di semplici click otterrete in un batter d'occhio il codice html da aggiungere alla propria pagina web. E' possibile, ad esempio, creare il codice di un semplice playlist player, un "quilt", cioè un collage animato delle copertine degli album o delle foto degli artisti preferiti, oppure la classifica dei brani più ascoltati.

PAG 9

Page 10: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

“Stay hungry. Stay foolish.” by Steve Jobsa cura di Venturi Filippo (2007.05.19)

Fidatevi di me.

Questo articolo è lungo, ma merita di essere letto e scommetto una birra che alla fine mi darete ragione.

Nel Giugno 2005, alla Stanford University, situata in California nella Contea di Santa Clara, Steve Jobs (fondatore di Apple) ha ricevuto la laurea honoris causa, ovvero uno speciale titolo accademico assegnato ad una persona come riconoscimento alla propria esperienza e competenza in un determinato campo del sapere, pur senza aver dato esami.

Steve Jobs, alla Stanford University

L’evento è stato sicuramente importante anche se ormai questo genere di riconoscimento sta perdendo valore, visto che avviene sempre più spesso, da quando le università hanno scoperto il lato “pubblicitario” di questo tipo di iniziativa.

La parte più interessante però è il discorso tenuto da Jobs che, pur essendo lungo, ha fatto riflettere e a anche portato alla luce alcuni piccoli aneddoti sul Jobs studente e in seguito manager, senza mai annoiare. Ecco il testo tradotto. (Il video è reperibile all’indirizzo http://news-service.stanford.edu/news/2005/june15/videos/51.html)

“Sono onorato di essere qui con voi oggi alle vostre lauree in una delle migliori università del mondo. Io non mi sono mai laureato. Anzi, per dire la verità, questa è la cosa più vicina a una laurea che mi sia mai capitata. Oggi voglio raccontarvi tre storie della mia vita. Tutto qui, niente di eccezionale: solo tre storie.”

La prima storia è sull’unire i puntini

“Ho lasciato il Reed College dopo il primo semestre, ma poi ho continuato a frequentare in maniera ufficiosa per altri 18 mesi circa prima di lasciare veramente. Allora, perché ho mollato?

E’ cominciato tutto prima che nascessi. Mia madre biologica era una giovane studentessa di college non sposata, e decise di lasciarmi in adozione. Riteneva con determinazione che avrei dovuto essere adottato da laureati, e fece in modo che tutto fosse organizzato per farmi adottare fin dalla nascita da un avvocato e sua moglie. Però quando arrivai io loro decisero all’ultimo minuto che avrebbero voluto adottare una bambina. Così quelli che poi sono diventati i miei genitori adottivi e che erano in lista d’attesa, ricevettero una chiamata nel bel mezzo della notte che gli diceva: “C’è un bambino, un maschietto, non previsto. Lo volete voi?” Loro risposero: “Certamente”. Più tardi mia madre biologica scoprì che mia madre non si era mai laureata al college e che mio padre non aveva neanche finito il liceo. Rifiutò di firmare le ultime carte per l’adozione. Poi accetto di farlo, mesi dopo, solo quando i miei genitori adottivi promisero formalmente che un giorno io sarei andato al college.

Diciassette anni dopo andai al college. Ma ingenuamente ne scelsi uno altrettanto costoso di Stanford, e tutti i risparmi dei miei genitori finirono per pagarmi l’ammissione e i corsi. Dopo sei mesi, non

riuscivo a vederci nessuna vera opportunità. Non avevo idea di quello che avrei voluto fare della mia vita e non vedevo come il college potesse aiutarmi a capirlo. Eppure ero là, che spendevo tutti quei soldi che i miei genitori avevano messo da parte lavorando per tutta la loro vita. Così decisi di mollare e avere fiducia che tutto sarebbe andato bene lo stesso. Era molto difficile all’epoca, ma guardandomi indietro ritengo che sia stata una delle migliori decisioni che abbia mai preso. Nell’attimo che mollai il college, potei anche smettere di seguire i corsi che non mi interessavano e cominciai invece a capitare nelle classi che trovavo più interessanti.

Non è stato tutto rose e fiori, però. Non avevo più una camera nel dormitorio, ed ero costretto a dormire sul pavimento delle camere dei miei amici. Guadagnavo soldi riportando al venditore le bottiglie di Coca cola vuote per avere i cinque centesimi di deposito e poter comprare da mangiare. Una volta la settimana, alla domenica sera, camminavo per sette miglia attraverso la città per avere finalmente un buon pasto al tempio Hare Krishna: l’unico della settimana. Ma tutto quel che ho trovato seguendo la mia curiosità e la mia intuizione è risultato essere senza prezzo, dopo. Vi faccio subito un esempio.

Il Reed College all’epoca offriva probabilmente la miglior formazione del Paese relativamente alla calligrafia. Attraverso tutto il campus ogni poster, ogni etichetta, ogni cartello era scritto a mano con calligrafie

PAG 10

Page 11: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

meravigliose. Dato che avevo mollato i corsi ufficiali, decisi che avrei seguito la classe di calligrafia per imparare a scrivere così. Fu lì che imparai dei caratteri serif e san serif, della differenza tra gli spazi che dividono le differenti combinazioni di lettere, di che cosa rende grande una stampa tipografica del testo. Fu meraviglioso, in un modo che la scienza non è in grado di offrire, perché era artistico, bello, storico e io ne fui assolutamente affascinato.

Nessuna di queste cose però aveva alcuna speranza di trovare una applicazione pratica nella mia vita. Ma poi, dieci anni dopo, quando ci trovammo a progettare il primo Macintosh, mi tornò tutto utile. E lo utilizzammo tutto per il Mac. E’ stato il primo computer dotato di una meravigliosa capacità tipografica. Se non avessi mai lasciato il college e non avessi poi partecipato a quel singolo corso, il Mac non avrebbe probabilmente mai avuto la possibilità di gestire caratteri differenti o font spaziati in maniera proporzionale. E dato che Windows ha copiato il Mac, è probabile che non ci sarebbe stato nessun personal computer con quelle capacità. Se non avessi mollato il college, non sarei mai riuscito a frequentare quel corso di calligrafia e i persona computer potrebbero non avere quelle stupende capacità di tipografia che invece hanno. Certamente all’epoca in cui ero al college era impossibile unire i puntini guardando il futuro. Ma è diventato molto, molto chiaro dieci anni dopo, quando ho potuto guardare all’indietro.

Di nuovo, non è possibile unire i puntini guardando avanti; potete solo unirli guardandovi all’indietro. Così, dovete aver fiducia che in qualche modo, nel futuro, i puntini si potranno unire. Dovete credere in qualcosa - il vostro ombelico, il destino, la vita, il karma, qualsiasi cosa. Questo tipo di approccio non mi ha mai lasciato a piedi e invece ha sempre fatto la differenza nella mia vita.

La mia seconda storia è a proposito

dell’amore e della perdita

Sono stato fortunato: ho trovato molto presto che cosa amo fare nella mia vita. Woz e io abbiamo fondato Apple nel garage della casa dei miei genitori quando avevo appena 20 anni. Abbiamo lavorato duramente e in 10 anni Apple è cresciuta da un’azienda con noi due e un garage in una compagnia da due miliardi di dollari con oltre quattromila dipendenti. L’anno prima avevamo appena realizzato la nostra migliore creazione - il Macintosh - e io avevo appena compiuto 30 anni, e in quel momento sono stato licenziato. Come si fa a venir licenziati dall’azienda che hai creato? Beh, quando Apple era cresciuta avevamo assunto qualcuno che ritenevo avesse molto talento e capacità per guidare l’azienda insieme a me, e per il primo anno le cose sono andate molto bene. Ma poi le nostre visioni del futuro hanno cominciato a divergere e alla fine abbiamo avuto uno scontro. Quando questo successe, il Board dei direttori si schierò dalla sua parte. Quindi, a 30 anni io ero fuori. E in maniera plateale. Quello che era stato il principale scopo della mia vita adulta era andato e io ero devastato da questa cosa.

Non ho saputo davvero cosa fare per alcuni mesi. Mi sentivo come se avessi tradito la generazione di

imprenditori prima di me - come se avessi lasciato cadere la fiaccola che mi era stata passata. Incontrai David Packard e Bob Noyce e tentai di scusarmi per aver rovinato tutto così malamente. Era stato un fallimento pubblico e io presi anche in considerazione l’ipotesi di scappare via dalla Silicon Valley. Ma qualcosa lentamente cominciò a crescere in me: ancora amavo quello che avevo fatto. L’evolvere degli eventi con Apple non avevano cambiato di un bit questa cosa. Ero stato respinto, ma ero sempre innamorato. E per questo decisi di ricominciare da capo.

Non me ne accorsi allora, ma il fatto di essere stato licenziato da Apple era stata la miglior cosa che mi potesse succedere. La pesantezza del successo era stata rimpiazzata dalla leggerezza di essere di nuovo un debuttante, senza più certezze su niente. Mi liberò dagli impedimenti consentendomi di entrare in uno dei periodi più creativi della mia vita.

Durante i cinque anni successivi fondai un’azienda chiamata NeXT e poi un’altra azienda, chiamata Pixar, e mi innamorai di una donna meravigliosa che sarebbe diventata mia moglie. Pixar si è rivelata in grado di creare il primo film in animazione digitale, Toy Story, e adesso è lo studio di animazione più di successo al mondo. In un significativo susseguirsi degli eventi, Apple ha comprato NeXT, io sono ritornato ad Apple e la tecnologia sviluppata da NeXT è nel cuore dell’attuale rinascimento di Apple. E Laurene e io abbiamo una meravigliosa famiglia.

Sono sicuro che niente di tutto questo sarebbe successo se non fossi stato licenziato da Apple. E’ stata una medicina molto amara, ma ritengo che fosse necessaria per il paziente. Qualche volta la vita ti colpisce come un mattone in testa. Non perdete la fede, però. Sono convinto che l’unica cosa che mi ha trattenuto dal mollare tutto sia stato l’amore per quello che ho fatto. Dovete trovare quel che amate. E questo vale sia per il vostro lavoro che per i vostri affetti. Il vostro lavoro riempirà una buona parte della vostra vita, e l’unico modo per essere realmente soddisfatti è fare quello che riterrete un buon lavoro. E l’unico modo per fare un buon lavoro è amare quello che fate. Se ancora non l’avete trovato, continuate a cercare. Non accontentatevi. Con tutto il cuore, sono sicuro che capirete quando lo troverete. E, come in tutte le grandi storie, diventerà sempre migliore mano a mano che gli anni passano. Perciò, continuate a cercare sino a che non lo avrete trovato. Non vi accontentate.

La mia terza storia è a proposto della morte

Quando avevo 17 anni lessi una citazione che suonava più o meno così: “Se vivrai ogni giorno come se fosse l’ultimo, sicuramente una volta avrai ragione”. Mi colpì molto e da allora, per gli ultimi 33 anni, mi sono guardato ogni mattina allo specchio chiedendomi: “Se oggi fosse l’ultimo giorno della mia vita, vorrei fare quello che sto per fare oggi?”. E ogni qualvolta la risposta è “no” per troppi giorni di fila, capisco che c’è qualcosa che deve essere cambiato.

Ricordarsi che morirò presto è il più importante strumento che io abbia mai incontrato per fare le grandi scelte della vita. Perché quasi tutte le cose - tutte le aspettative di eternità, tutto l’orgoglio, tutti i timori di

PAG 11

Page 12: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

essere imbarazzati o di fallire - semplicemente svaniscono di fronte all’idea della morte, lasciando solo quello che c’è di realmente importante. Ricordarsi che dobbiamo morire è il modo migliore che io conosca per evitare di cadere nella trappola di chi pensa che avete qualcosa da perdere. Siete già nudi. Non c’è ragione per non seguire il vostro cuore.

Più o meno un anno fa mi è stato diagnosticato un cancro. Ho fatto la scansione alle sette e mezzo del mattino e questa ha mostrato chiaramente un tumore nel mio pancreas. Non sapevo neanche che cosa fosse un pancreas. I dottori mi dissero che si trattava di un cancro che era quasi sicuramente di tipo incurabile e che sarebbe stato meglio se avessi messo ordine nei miei affari (che è il codice dei dottori per dirti di prepararti a morire). Questo significa prepararsi a dire ai tuoi figli in pochi mesi tutto quello che pensavi avresti avuto ancora dieci anni di tempo per dirglielo. Questo significa essere sicuri che tutto sia stato organizzato in modo tale che per la tua famiglia sia il più semplice possibile. Questo significa prepararsi a dire i tuoi “addio”.

Ho vissuto con il responso di quella diagnosi tutto il giorno. La sera tardi è arrivata la biopsia, cioè il risultato dell’analisi effettuata infilando un endoscopio giù per la mia gola, attraverso lo stomaco sino agli intestini per inserire un ago nel mio pancreas e catturare poche cellule del mio tumore. Ero sotto anestesia ma mia moglie - che era là - mi ha detto che quando i medici hanno visto le cellule sotto il microscopio hanno cominciato a gridare, perché è saltato fuori che si trattava di un cancro al pancreas molto raro e curabile con un intervento chirurgico. Ho fatto l’intervento chirurgico e adesso sto bene.

Questa è stata la volta in cui sono andato più vicino alla morte e spero che sia anche la più vicina per qualche decennio. Essendoci passato attraverso posso parlarvi adesso con un po’ più di cognizione di causa di quando la morte era per me solo un concetto astratto e dirvi:

Nessuno vuole morire. Anche le persone che vogliono andare in paradiso non vogliono morire per andarci. E anche che la morte è la destinazione ultima che tutti abbiamo in comune. Nessuno gli è mai sfuggito. Ed è

così come deve essere, perché la Morte è con tutta probabilità la più grande invenzione della Vita. E’ l’agente di cambiamento della Vita. Spazza via il vecchio per far posto al nuovo. Adesso il nuovo siete voi, ma un giorno non troppo lontano diventerete gradualmente il vecchio e sarete spazzati via. Mi dispiace essere così drammatico ma è la pura verità.

Il vostro tempo è limitato, per cui non lo sprecate vivendo la vita di qualcun altro. Non fatevi intrappolare dai dogmi, che vuol dire vivere seguendo i risultati del pensiero di altre persone. Non lasciate che il rumore delle opinioni altrui offuschi la vostra voce interiore. E, cosa più importante di tutte, abbiate il coraggio di seguire il vostro cuore e la vostra intuizione. In qualche modo loro sanno che cosa volete realmente diventare. Tutto il resto è secondario.

Quando ero un ragazzo c’era una incredibile rivista che si chiamava The Whole Earth Catalog, praticamente una delle bibbie della mia generazione. E’ stata creata da Stewart Brand non molto lontano da qui, a Menlo Park, e Stewart ci ha messo dentro tutto il suo tocco poetico. E’ stato alla fine degli anni Sessanta, prima dei personal computer e del desktop publishing, quando tutto era fato con macchine da scrivere, forbici e foto polaroid. E’ stata una specie di Google in formato cartaceo tascabile, 35 anni prima che ci fosse Google: era idealistica e sconvolgente, traboccante di concetti chiari e fantastiche nozioni.

Stewart e il suo gruppo pubblicarono vari numeri di The Whole Earth Catalog e quando arrivarono alla fine del loro percorso, pubblicarono il numero finale. Era più o meno la metà degli anni Settanta e io avevo la vostra età. Nell’ultima pagina del numero finale c’era una fotografia di una strada di campagna di prima mattina, il tipo di strada dove potreste trovarvi a fare l’autostop se siete dei tipi abbastanza avventurosi. Sotto la foto c’erano le parole: “Stay Hungry. Stay Foolish.”, siate affamati, siate folli. Era il loro messaggio di addio. Stay Hungry. Stay Foolish. Io me lo sono sempre augurato per me stesso. E adesso che vi laureate per cominciare una nuova vita, lo auguro a voi.

Stay Hungry. Stay Foolish.Grazie a tutti.”

FONTI:

http://news-service.stanford.edu/news/2005/june15/grad-061505.htmlhttp://news-service.stanford.edu/news/2005/june15/videos/51.htmlhttp://macintosh.wordpress.com/2005/10/27/stay-hungry-stay-foolish/http://www.youtube.com/watch?v=D1R-jKKp3NA

PAG 12

Page 13: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

Enigmi matematicitratti da chiesi.net

Una corda e tre animali

Immaginate di avere una corda lunga quanto la circonferenza terrestre (cioè all'incirca 40000 km), che si trova distesa lungo l'equatore. Immaginate ora di prendere questa corda, di tagliarla, di aggiungervene un metro e quindi di ridistribuirla attorno all'equatore in modo che abbia una distanza dalla superficie terrestre che rimanga costante lungo tutta la circonferenza.

La domanda a cui dovete cercare di rispondere è: quale dei seguenti tre animali può passare di misura nello spazio interposto tra la corda e la superficie: una formica, un gatto o un elefante?

Il ciclista

Un ciclista scala una montagna alla media di 20 km/h , e poi, giunto in cima, gira la bicicletta e ridiscende a valle (seguendo la stessa strada) ad una media di 60 km/h. Qual è la media complessiva tenuta dal ciclista, durante tutto il suo viaggio?

Stato di famiglia

Due vecchi amici matematici si ritrovano dopo molti anni, e discorrono per un po'. Il primo fa: "Allora hai tre figli? E quanti anni hanno?". L'altro risponde: "Considerando le loro età come numeri interi, il loro prodotto è 36, e la somma è il numero civico di questa casa qui davanti". Il primo ci pensa un po' e sbotta: "Beh, non mi hai certo dato dei dati sufficienti!" e il secondo ribatte: "Hai ragione: il maggiore ha gli occhi azzurri". Quali sono le età dei tre figli?

Gioco a premi

Supponiamo di essere a un gioco a premi e di dovere scegliere quale porta aprire fra le tre proposte dal presentatore. Dietro una di queste c'e` un'auto, nelle altre due... una capra. Noi scegliamo una porta, e come capita in tutte le puntate, il presentatore ci dice "Ne sei proprio sicuro? Puoi ancora cambiare la scelta: anzi, ti voglio aiutare", e apre una delle porte che noi non abbiamo scelto, mostrando una capra. Ammesso che vogliamo vincere l'auto, ci conviene cambiare porta, o la cosa è indifferente?

Corde che bruciano

Ci sono a disposizione due corde di lunghezza uguale, e tanti accendini quanti si vuole... e nient'altro! Entrambe le corde, se incendiate, impiegano un'ora esatta per bruciare.

Cioè dando fuoco ad una estremità, il fuoco arriverà all'altra estremità dopo esattamente 60 minuti. Le due corde però non bruciano in maniera uniforme, ma

casualmente, e non bruciano nemmeno nello stesso modo ma ognuna per i fatti suoi. L'obiettivo del gioco è riuscire a trovare un modo per calcolare il passare di un quarto d'ora di tempo.

Successione di numeri

Qual è il termine successivo in questa successione?1 - 11 - 21 - 1211 - 111221 - ...

Le noci di cocco

Tre marinai trovano un mucchio di noci di cocco. Il primo ne prende la metà più mezza noce. Il secondo prende metà di quello che è rimasto più mezza noce. Anche il terzo prende metà del rimanente più mezza noce. Rimane esattamente una noce che essi danno alla scimmia. Quante erano inizialmente le noci del mucchio?

I berretti

Tre esploratori vengono catturati da una tribù africana con l'hobby degli enigmi. Il capo tribù decide di graziarli solo se si dimostrano sufficientemente intelligenti. Mostra loro tre berretti rossi e due berretti bianchi. Poi li benda e pone sulla testa di ognuno un berretto rosso. Una volta sbendati ogni esploratore può vedere il berretto sulla testa degli altri ma non il proprio.Chiede al primo: "Di che colore è il berretto che hai sulla testa?". Il primo osserva gli altri due e risponde che non lo sa. Chiede al secondo: "Di che colore è il berretto che hai sulla testa?". Il secondo osserva gli altri due e risponde che non lo sa. Chiede al terzo: "Di che colore è il berretto che hai sulla testa?". Il terzo risponde esattamente dicendo che il proprio berretto è rosso salvando la vita a tutti e tre. Come ha fatto a saperlo? (Si supponga che i tre esploratori siano dei logici perfetti, cioè siano in grado di dedurre istantaneamente tutte le conseguenze da un insieme di premesse dato).

SOLUZIONI NELLA PROSSIMA PAGINA !

PAG 13

Page 14: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

Soluzionisoluzioni agli enigmi della pagina precedente

Una corda e tre animali

La risposta è: un gatto. Questa risposta è sorprendente, in quanto si è indotti a pensare che allungare una circonferenza così lunga di una percentuale tanto insignificante provochi un aumento del raggio altrettanto insignificante. Invece questo non è vero, poichè l'incremento subito dal raggio dipende solo dalla lunghezza del pezzo di corda aggiunto e non dal raggio della circonferenza iniziale. Detto questo, il calcolo è veramente immediato. Infatti, indicando con R il raggio terrestre, con PI la costante pi greco e con C=2*PI*R la circonferenza, si ha che la distanza tra la corda e la superficie terrestre vale: d = (C+1)/(2*PI) - R = 1/(2*PI) che vale circa 16 centimetri, e quindi ci può passare sotto un gatto.

Il ciclista

La risposta corretta è: 30 km/h. La risposta più frequente che viene data a questo problema è è invece 40 km/h, basata sul fatto che che il ciclista ha percorso esattamente metà del cammino alla velocità (media) di 20 km/h e esattamente l'altra metà alla velocità (media) di 60 km/h; ma ciò nondimeno, la risposta è errata, giacché procedendo in discesa ad una velocità tripla rispetto a quella tenuta in salita il nostro atleta ha pedalato per un tempo triplo alla velocità di 20 km/h rispetto al tempo in cui è andato a 60 km/h. La risposta corretta è dunque data da v = (3 x 20 + 60) / 4 = 30 km/h. Bisogna cioè tenere conto del peso relativo di ciascuna delle medie.

Stato di famiglia

Le terne di numeri interi il cui prodotto è 36 (con le somme vicino) sono riportate in tabella. Il secondo matematico conosce la somma (vede il numero della casa) ma non sa rispondere. Questo significa che la somma è 13, l'unico numero che appare due volte. La seconda affermazione del primo matematico ci dice che la risposta giusta è 9-2-2, nell'altro caso infatti si avrebbero due gemelli di 6 anni.

Terna Somma

36-1-1 38

18-2-1 21

12-3-1 16

9-4-1 14

9-2-2 14

6-6-1 13

6-3-2 11

4-3-3 10

Gioco a premi

Il trucco qui è il fatto che il presentatore non apre una porta a caso, ma ne sceglie una con una capra. Supponiamo di avere scelto la prima porta: in questo momento abbiamo probabilità 1/3 che l'auto sia dietro una qualunque porta. Nei due casi in cui l'auto sia nella porta 2 o 3, il presentatore apre rispettivamente la porta 3 o 2, e se noi cambiamo scelta vinciamo (probabilità 2/3); se avevao scelto la porta giusta, lui ne apre a caso una delle altre (probabilità 1/6 per ciascuna) e se noi cambiamo perdiamo (probabilita` 1/3). Quindi ci conviene cambiare porta.

Corde che bruciano

All'inizio si prende la prima corda e si dà fuoco a entrambe le estremità contemporaneamente, e sempre nello stesso istante accendo un estremo della seconda corda. Passata mezz'ora la prima corda sarà completamente consumata (visto che ci avrebbe impiegato un'ora se fosse stata accesa solo da una parte). A questo punto la seconda corda continuerebbe a bruciare ancora per mezz'ora, ma se si dà fuoco anche all'altro estremo, finirà esattamente nel giro di un quarto d'ora.... il quarto d'ora da misurare.

Successione di numeri

Il termine successivo è 312211. Ogni termine si ricava dal precedente "spiegando cosa è scritto": in 1112211 ci sono tre 1, due 2 e ancora due 1, quindi 3 1, 2 2, 2 1, quindi 312221.

Le noci di cocco

La risposta è 15 noci. Infatti se alla fine resta una noce (quella che viene data alla scimmia) vuol dire che il terzo marinaio si è trovato davanti ad un mucchio di 3 noci, dal quale ne ha prese 2, ovvero metà del mucchio (cioè una noce e mezza) più mezza noce, lasciandone 1. Analogamente il secondo marinaio avrà avuto a disposizione 7 noci prendendone 4 (3 e mezzo + 1 mezza noce) e lasciandone appunto 3 per il terzo marinaio. Infine, il primo marinaio poteva disporre di un totale di 15 noci, e ne ha prese 8.

I berretti

Il primo esploratore non sa rispondere di che colore è il proprio berretto perciò evidentemente vuol dire che gli altri due non hanno entrambi il berretto bianco, altrimenti avrebbe saputo rispondere che il proprio era rosso.

Neppure il secondo esploratore sa di che colore è il proprio berretto, ciò significa che il terzo non può avere il berretto bianco altrimenti lui avrebbe detto che il suo è rosso (non potendo essere entrambi bianchi).

Di conseguenza il terzo dice che è il proprio è rosso .

PAG 14

Page 15: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

Streamtuner - Installazione, uso e trickzdi Matteo Lupini <[email protected]>

Salve ragazzi, amanti di Linux e della musica. Stanchi della solita musica? Avete mai sentito parlare di streaming Audio/Video? Certamente, immagino. Streaming (dall'inglese stream che significa fiume, o corrente) è quel flusso di dati audio/video trasmessi da una sorgente ad una o più destinazioni tramite la rete internet. Lo streaming può essere Live oppure OnDemand. Per OnDemand intendiamo quella corrente di dati che risiede sul server ospitante, e che viene avviata su richiesta del client. Live invece, significa la tradizionale trasmissione radio o video in broadcast. I dati che vengono trasmessi in streaming, sono compressi per poter occupare il minor numero di banda possibile, e vengono bufferizzati sul client, ovvero, prima di riprodurre, vengono prima raccolte una quantità di informazioni tale da non creare stalli o interruzioni nella riproduzione. Questi file, quindi, non vengono scaricati interamente e fisicamente sul client, i dati ricevuti vengono decompressi e riprodotti pochi secondi dopo l'inizio della ricezione, e scompaiono con la chiusura del programma.

In questa sede mi occuperò di streaming Audio Live, e di un programma per poter utilizzare questo servizio sulla propria Linux Box. Vediamo come poter usare StreamTuner!

Streamtuner (http://www.nongnu.org/streamtuner) è free ed è coperto dalla GNU GPL, sfrutta servizi come SHOUTcast (http://www.shoutcast.com) e Live365 (http://www.live365.com), che sono siti web che permettono di ascoltare la propria musica preferita in streaming, su vere e proprie radio. Streamtuner permette di sfogliare gli archivi e le radio di questi due principali servizi, di selezionare un canale, e con l'aiuto di StreamRipper di poterla registrare e riascoltarla quando si vuole. Ma andiamo passo passo:

Installazione:

Streamtuner si può reperire dal proprio sito web, oppure dalle repository Debian tramite il comando:

# apt-get install streamtunerricordatevi, però, di abilitare l'opzione “universe” nelle

vostre repository.Per poter funzionare correttamente, Streamtuner ha

bisogno dei seguenti pacchetti: GTK+ (versione 2.4.0 o superiore) e libcurl (versione 7.10.8 o superiore), che sono essenziali per il funzionamento del programma, più altri pacchetti opzionali: libxml (versione 2.0 or superiore), TagLib (versione 1.2 o superiore), Python (versione 2.3 o superiore) e PyGTK (versione 2.4.0 o superiore). Con tutta questa roba, streamtuner funzionerà alla perfezione, e sarete in grado di sfogliare non soltanto SHOUTcast e Live365, ma anche Xiph, basic.ch, Google Stations e punkcast.com. Per l'installazione dai sorgenti, seguite la guida INSTALL che si trova all'interno del pacchetto, per poterlo compilare adeguatamente.

Utilizzo:

Aprite Streamtuner, selezionate il servizio che preferite, come SHOUTcast o Live365, selezionate il genere musicale che preferite poi andate sulla stazione che volete ascoltare e cliccate sul pulsante che si trova in alto “Tune In”. Si aprirà il lettore multimediale predefinito che riceverà la radio e la bufferizzerà riproducendo la stazione selezionata. Semplice, no? Per modificare il lettore multimediale andate nel menu Edit -> Preferences. Nella scheda Application vedrete una tabella. Nella colonna di destra, dove c'è scritto “Listen to a stream”, di fianco apparirà la scritta, ad esempio “xmms %q”. Cancellare xmms e sostituirlo con amarok, ad esempio, o noatun. La cosa importante è di non eliminare %q alla fine, lasciarlo invariato. Esempio: “amarok %q” o “/usr/bin/amarok %q”.

Trickz

Ora, non vi basta ascoltare solo la musica, ma volete registrarla e salvarla sul vostro hard disk per poterla ascoltare ogni volta che volete? Ci pensa Streamripper. Importante: registrare musica dalla radio è perfettamente legale, come anche registrare un programma dalla TV, ma ricordate che condividere questa musica da voi registrata sulla rete è vietato, dato che tutta la musica riprodotta è coperta da diritti d'autore. Ci siamo capiti? Se proprio volete farlo, vedete almeno di non farvi beccare! ;) Ma veniamo a noi. Per scaricare streamripper utilizziamo il nostro fantastico Advanced Package Toolkit, se utilizziamo Debian, oppure scarichiamo i sorgenti e li compiliamo da http://streamripper.sourceforge.net, in questo modo:

# apt-get install streamripperOra, diciamo a streamtuner di usare streamripper per

registrare musica, in questo modo: Nel menu Edit -> Preferences, cerchiamo nella colonna di destra la voce “Record a stream”, e cancelleremo quello che c'è dentro con, ad esempio, questa rigax-terminal-emulator -e streamripper %q -d /home/mouse/Ripped -r -q

dove “/home/mouse/Ripped” è la cartella dove andrà salvata tutta la musica registrata. Ricordate che la cartella dove andrete a salvare i file, deve poter godere dei permessi dell'utente, perché se non ci sono i permessi di scrittura, il rippaggio non funzionerà.

L'opzione "-r" dice a Streamripper di creare un server di ritrasmissione. In altre parole, se non lo fate scaricherete la versione rippata due volte, una da streamripper, e una dal vostro media player. Non è un problema se avete una banda larga, ma d'altro canto risparmiare banda è importante. Come dicevo, l'opzione "-r" creerà un "relay server" usando di default la porta 8000 ma, nel caso fosse occupata, continuerà cercando nella prossima porta aperta. In genere, se la 8000 è occupata, la 8001 non lo sarà.

Esempio. Trovate una radio carina. La caricate, il vostro lettore si apre e la ascoltate. Vi piace e decidete di iniziare a rippare. Premete il pulsante "Record". Si aprirà una

PAG 15

Page 16: S.P.R.I.Te. magazine n.6

S.P.R.I.T.e. Magazine VI

console (da qui "x-terminal-emulator"), e streamtuner inizierà il suo lavoro. Ora potete ascoltare qualsivoglia con il vostro lettore multimediale (altre radio, file locali, etc), perché intanto streamripper continuerà a rippare su quella stazione e salverà i file sul disco. Se decidete di voler ascoltare cosa è stato fin'ora rippato, invece di connettervi a quella stazione, vi connetterete al server

creato da streamripper, e per farlo aprite con il vostro media player "http://localhost:8000/” (oppure http://localhost:8001/, etc).

Tutto chiaro? Buon divertimento nel mondo dello streaming audio, e ricordate: l'udito è un senso dell'uomo molto importante, non lo rovinate!! :-P

FINE

Hanno collaborato a questo numero (in ordine alfabetico):

Matteo Battistelli, Elvis Ciotti (articolo e impaginazione giornalino), Tommaso Dionigi, Demo/Simone Gentili, Lupini Matteo, Filippo Venturi

PAG 16