I have a dream

“I have a dream”

(di Martin Luther King – Washington 28 Agosto 1963)

 Martin Luther King

Sono felice di unirmi a voi in questa che passerà alla storia come la più grande dimostrazione per la libertà nella storia del nostro paese. Cento anni fa un grande americano, alla cui ombra ci leviamo oggi, firmò il Proclama sull’Emancipazione. Questo fondamentale decreto venne come un grande faro di speranza per milioni di schiavi negri che erano stati bruciati sul fuoco dell’avida ingiustizia. Venne come un’alba radiosa a porre termine alla lunga notte della cattività.

Ma cento anni dopo, il negro ancora non è libero; cento anni dopo, la vita del negro è ancora purtroppo paralizzata dai ceppi della segregazione e dalle catene della discriminazione; cento anni dopo, il negro ancora vive su un’isola di povertà solitaria in un vasto oceano di prosperità materiale; cento anni dopo; il negro langue ancora ai margini della società americana e si trova esiliato nella sua stessa terra.

Per questo siamo venuti qui, oggi, per rappresentare la nostra condizione vergognosa. In un certo senso siamo venuti alla capitale del paese per incassare un assegno. Quando gli architetti della repubblica scrissero le sublimi parole della Costituzione e la Dichiarazione d’Indipendenza, firmarono un “pagherò” del quale ogni americano sarebbe diventato erede. Questo “pagherò” permetteva che tutti gli uomini, si, i negri tanto quanto i bianchi, avrebbero goduto dei principi inalienabili della vita, della libertà e del perseguimento della felicità.

E’ ovvio, oggi, che l’America è venuta meno a questo “pagherò” per ciò che riguarda i suoi cittadini di colore. Invece di onorare questo suo sacro obbligo, l’America ha consegnato ai negri un assegno fasullo; un assegno che si trova compilato con la frase: “fondi insufficienti”. Noi ci rifiutiamo di credere che i fondi siano insufficienti nei grandi caveau delle opportunità offerte da questo paese. E quindi siamo venuti per incassare questo assegno, un assegno che ci darà, a presentazione, le ricchezze della libertà e della garanzia di giustizia.

Siamo anche venuti in questo santuario per ricordare all’America l’urgenza appassionata dell’adesso. Questo non è il momento in cui ci si possa permettere che le cose si raffreddino o che si trangugi il tranquillante del gradualismo. Questo è il momento di realizzare le promesse della democrazia; questo è il momento di levarsi dall’oscura e desolata valle della segregazione al sentiero radioso della giustizia.; questo è il momento di elevare la nostra nazione dalle sabbie mobili dell’ingiustizia razziale alla solida roccia della fratellanza; questo è il tempo di rendere vera la giustizia per tutti i figli di Dio. Sarebbe la fine per questa nazione se non valutasse appieno l’urgenza del momento. Questa estate soffocante della legittima impazienza dei negri non finirà fino a quando non sarà stato raggiunto un tonificante autunno di libertà ed uguaglianza.

Il 1963 non è una fine, ma un inizio. E coloro che sperano che i negri abbiano bisogno di sfogare un poco le loro tensioni e poi se ne staranno appagati, avranno un rude risveglio, se il paese riprenderà a funzionare come se niente fosse successo.

Non ci sarà in America né riposo né tranquillità fino a quando ai negri non saranno concessi i loro diritti di cittadini. I turbini della rivolta continueranno a scuotere le fondamenta della nostra nazione fino a quando non sarà sorto il giorno luminoso della giustizia.

Ma c’è qualcosa che debbo dire alla mia gente che si trova qui sulla tiepida soglia che conduce al palazzo della giustizia. In questo nostro procedere verso la giusta meta non dobbiamo macchiarci di azioni ingiuste.

Cerchiamo di non soddisfare la nostra sete di libertà bevendo alla coppa dell’odio e del risentimento. Dovremo per sempre condurre la nostra lotta al piano alto della dignità e della disciplina. Non dovremo permettere che la nostra protesta creativa degeneri in violenza fisica. Dovremo continuamente elevarci alle maestose vette di chi risponde alla forza fisica con la forza dell’anima.

Questa meravigliosa nuova militanza che ha interessato la comunità negra non dovrà condurci a una mancanza di fiducia in tutta la comunità bianca, perché molti dei nostri fratelli bianchi, come prova la loro presenza qui oggi, sono giunti a capire che il loro destino è legato col nostro destino, e sono giunti a capire che la loro libertà è inestricabilmente legata alla nostra libertà. Questa offesa che ci accomuna, e che si è fatta tempesta per le mura fortificate dell’ingiustizia, dovrà essere combattuta da un esercito di due razze. Non possiamo camminare da soli.

E mentre avanziamo, dovremo impegnarci a marciare per sempre in avanti. Non possiamo tornare indietro. Ci sono quelli che chiedono a coloro che chiedono i diritti civili: “Quando vi riterrete soddisfatti?” Non saremo mai soddisfatti finché il negro sarà vittima degli indicibili orrori a cui viene sottoposto dalla polizia.

Non potremo mai essere soddisfatti finché i nostri corpi, stanchi per la fatica del viaggio, non potranno trovare alloggio nei motel sulle strade e negli alberghi delle città. Non potremo essere soddisfatti finché gli spostamenti sociali davvero permessi ai negri saranno da un ghetto piccolo a un ghetto più grande.

Non potremo mai essere soddisfatti finché i nostri figli saranno privati della loro dignità da cartelli che dicono:”Riservato ai bianchi”. Non potremo mai essere soddisfatti finché i negri del Mississippi non potranno votare e i negri di New York crederanno di non avere nulla per cui votare. No, non siamo ancora soddisfatti, e non lo saremo finché la giustizia non scorrerà come l’acqua e il diritto come un fiume possente.

Non ha dimenticato che alcuni di voi sono giunti qui dopo enormi prove e tribolazioni. Alcuni di voi sono venuti appena usciti dalle anguste celle di un carcere. Alcuni di voi sono venuti da zone in cui la domanda di libertà ci ha lasciato percossi dalle tempeste della persecuzione e intontiti dalle raffiche della brutalità della polizia. Siete voi i veterani della sofferenza creativa. Continuate ad operare con la certezza che la sofferenza immeritata è redentrice.

Ritornate nel Mississippi; ritornate in Alabama; ritornate nel South Carolina; ritornate in Georgia; ritornate in Louisiana; ritornate ai vostri quartieri e ai ghetti delle città del Nord, sapendo che in qualche modo questa situazione può cambiare, e cambierà. Non lasciamoci sprofondare nella valle della disperazione.

E perciò, amici miei, vi dico che, anche se dovrete affrontare le asperità di oggi e di domani, io ho sempre davanti a me un sogno. E’ un sogno profondamente radicato nel sogno americano, che un giorno questa nazione si leverà in piedi e vivrà fino in fondo il senso delle sue convinzioni: noi riteniamo ovvia questa verità, che tutti gli uomini sono creati uguali.

Io ho davanti a me un sogno, che un giorno sulle rosse colline della Georgia i figli di coloro che un tempo furono schiavi e i figli di coloro che un tempo possedettero schiavi, sapranno sedere insieme al tavolo della fratellanza.

Io ho davanti a me un sogno, che un giorno perfino lo stato del Mississippi, uno stato colmo dell’arroganza dell’ingiustizia, colmo dell’arroganza dell’oppressione, si trasformerà in un’oasi di libertà e giustizia.

Io ho davanti a me un sogno, che i miei quattro figli piccoli vivranno un giorno in una nazione nella quale non saranno giudicati per il colore della loro pelle, ma per le qualità del loro carattere. Ho davanti a me un sogno, oggi!.

Io ho davanti a me un sogno, che un giorno ogni valle sarà esaltata, ogni collina e ogni montagna saranno umiliate, i luoghi scabri saranno fatti piani e i luoghi tortuosi raddrizzati e la gloria del Signore si mostrerà e tutti gli essere viventi, insieme, la vedranno. E’ questa la nostra speranza. Questa è la fede con la quale io mi avvio verso il Sud.

Con questa fede saremo in grado di strappare alla montagna della disperazione una pietra di speranza. Con questa fede saremo in grado di trasformare le stridenti discordie della nostra nazione in una bellissima sinfonia di fratellanza.

Con questa fede saremo in grado di lavorare insieme, di pregare insieme, di lottare insieme, di andare insieme in carcere, di difendere insieme la libertà, sapendo che un giorno saremo liberi. Quello sarà il giorno in cui tutti i figli di Dio sapranno cantare con significati nuovi: paese mio, di te, dolce terra di libertà, di te io canto; terra dove morirono i miei padri, terra orgoglio del pellegrino, da ogni pendice di montagna risuoni la libertà; e se l’America vuole essere una grande nazione possa questo accadere.

Risuoni quindi la libertà dalle poderose montagne dello stato di New York.

Risuoni la libertà negli alti Allegheny della Pennsylvania.

Risuoni la libertà dalle Montagne Rocciose del Colorado, imbiancate di neve.

Risuoni la libertà dai dolci pendii della California.

Ma non soltanto.

Risuoni la libertà dalla Stone Mountain della Georgia.

Risuoni la libertà dalla Lookout Mountain del Tennessee.

Risuoni la libertà da ogni monte e monticello del Mississippi. Da ogni pendice risuoni la libertà.

E quando lasciamo risuonare la libertà, quando le permettiamo di risuonare da ogni villaggio e da ogni borgo, da ogni stato e da ogni città, acceleriamo anche quel giorno in cui tutti i figli di Dio, neri e bianchi, ebrei e gentili, cattolici e protestanti, sapranno unire le mani e cantare con le parole del vecchio spiritual: “Liberi finalmente, liberi finalmente; grazie Dio Onnipotente, siamo liberi finalmente”.

 

Creative Commons License
This work by Francesco Ficetola is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2013/08/29/i-have-a-dream/.

[iOs] AudioStreamer e ShoutCast: come riprodurre la nostra web radio in un’app

internet-radioAvete una vostra web radio o semplicemente volete condividere la vostra playlist preferita? Sicuramente conoscete SHOUTcast, storico programma per la condivisione di streaming audio e la realizzazione di web-radio amatoriali e, direi, professionali. 

Potete scaricare il server di ShoutCast sul sito ufficiale gratuitamente per varie piattaforme:

http://www.shoutcast.com/broadcast-tools

Seguite le istruzioni di installazione e riuscirete in pochi passi a configurare un servizio online (su una pagina web pubblica) per la trasmissione in streaming della vostra radio, grazie a SHOUTcast D.N.A.S. Avrete una pagina web tipo questa, da dove andremo a recuperare lo streaming audio e le info sulla traccia corrente:

 

SHOUTCAST SERVER DNAS

 

Per ulteriori info su come creare la vostra webradio con ShoutCast e Winamp vi consiglio di leggere questo tutorial: http://www.gozzinet.net/2009/06/01/come-creare-una-webradio-con-winamp-e-shoutcast/

In questo articolo ci concentriamo più che altro sulla realizzazione di un’app che vi permetterà di riprodurre lo streaming di ShoutCast, accedendo alla pagina web creata dal server suddetto. Tutto è molto semplice, perché basta scaricare e customizzare l’ottimo progetto di Matt Gallagher su GitHub:

https://github.com/mattgallagher/AudioStreamer

Tale progetto è consigliato addirittura da Google (AudioStreamer Metadata Google Code). La classe AudioStreamer vi permette di:

  • a partire dalla URL della pagina web generata da SHOUTcast D.N.A.S., di riprodurre lo streaming audio
  • vi mette a disposizione i controlli PLAY e STOP per la riproduzione
  • permette il controllo del volume del vostro iPhone

Tuttavia, non vi permette di recuperare le informazioni sulla traccia correntemente in riproduzione. Teoricamente queste informazioni sono contenute nei metadati del pacchetto HTTP dello streaming (più precisamente nel pacchetto ICY), così come si legge in questo articolo: Shoutcast Metadata Protocol.

Onestamente non sono riuscito a recuperare in modo agevole le informazioni su titolo, artista e cover della copertura dell’album della traccia in riproduzione, dai metadati del pacchetto ICY. Occorrerebbe individuare il punto preciso in cui andare a “parsare” tali informazioni.

ShoutCast, però, genera delle pagine accessorie da cui recuperare le info che ci servono. Per esempio, per la web radio http://www.kissradio.info si riescono a recuperare le info su artista e brano in riproduzione, nonché la cover, dalle seguenti URL:

  • http://www.kissradio.info/OnAir.txt
  • http://www.kissradio.info/OnAir.jpg

Ma facendo varie ricerche ho scoperto che ShoutCast inserisce le info anche in una pagina “nascosta” del server di streaming, la 7.html. Per esempio, per il servizio di streaming http://kemoniastreaming2.com:8018, le info della traccia in riproduzione le troviamo qui: http://kemoniastreaming2.com:8018/7.html

Basterà, dunque, “parsare” queste info nella nostra app e visualizzarle mentre il brano viene riprodotto. Sarà ovviamente necessario un refresh delle info secondo un tempo prefissato, magari utilizzando un timer (NSTimer).

 

User-centered design: progettare considerando i bisogni degli utenti

Semplicemente stupendo il libro che sto leggendo e di cui scriverò in questi giorni una sintesi su questo blog. Il libro è di Donald A. Norman e si intitola La caffettieria del masochistaRiporto un suo estratto che si collega ad una considerazione personale che avevo pensato di scrivere nei giorni scorsi.

comic-ease-of-use

Questa è una sorta di autocritica per chi come me si occupa di progettazione e sviluppo di software. Ecco il passo del libro in questione:

“Ma i progettisti sembrano particolarmente dimentichi dei bisogni degli utenti, particolarmente inclini a cadere in tutti i trabocchetti del design. Gli specialisti del design non sono interpellati quasi mai per questo tipo di prodotti. La progettazione è lasciata invece tutta nelle mani di ingegneri e programmatori, persone che di solito non hanno alcuna esperienza né competenza specialistica nel campo del design.

Il carattere astratto del computer propone una sfida tutta particolare. Il funzionamento è elettronico, invisibile, senza alcun segno esterno delle azioni che vengono eseguite. E i comandi vengono impartiti mediante un linguaggio astratto, un linguaggio che specifica il flusso interno dell’informazione, con le relative istruzioni, ma che non è particolarmente tagliato a misura dei bisogni dell’utente.

I programmatori specializzati lavorano su questi linguaggi  per impartire al sistema le istruzioni necessarie per eseguire le operazioni richieste. E’ un compito complesso e i programmatori devono possedere un ampio repertorio di competenze e talenti naturali. La messa a punto di un programma esige infatti una combinazione di capacità specialistiche, della preparazione tecnica della conoscenza del compito, fino alla cognizione delle esigenze e delle capacità degli utenti.

Ai programmatori non dovrebbe essere addossata la responsabilità delle interazioni tra la macchina e gli utenti:non ne hanno la competenza specialistica, né dovrebbero averla. Molti dei programmi esistenti per le applicazioni da parte degli utenti di base sono troppo astratti, richiedendo manovre che hanno un senso per le esigenze del computer – e agli occhi dello specialista di computer – ma non sono coerenti, ragionevoli, necessarie o comprensibili per l’utilizzatore normale. Per rendere il sistema più facile da usare e capire ci vuole una gran quantità di lavoro in più. I programmatori hanno tutta la mia comprensione, ma tuttavia non posso scusare il generale disinteresse per i problemi degli utenti. ”

 

E ancora condivido la considerazione di Norman sulla poca presenza nei programmi universitari di materie relative all’usabilità e alla progettazione “usercentric” dei sistemi, non solo informativi. Il cosiddetto user-centered design.

” La scienza del computer ha lavorato finora allo sviluppo di potenti linguaggi di programmazione che permettono di risolvere i problemi tecnici di calcolo. Deboli sforzi sono stati compiuti in direzione di efficaci linguaggi interattivi. Ogni studente di un corso per programmatori viene istruito sugli aspetti computazionali dei computer, mentre sono rarissime invece le lezioni sui problemi che si pongono all’utente. In generale questo tipo di insegnamento non è richiesto nei piani di studio, né peraltro sarebbe facile fargli posto negli orari già fittissimi e massacranti cui devono sottoporsi gli studenti d’informatica. Il risultato è che la maggior parte dei programmatori sa scrivere programmi capaci di eseguire operazioni mirabili, ma inutilizzabili per chi non è uno specialistica del ramo. Quasi nessuno di loro pensa ai problemi che deve affrontare l’utilizzatore. Da qui la sincera sorpresa che li coglie quando scoprono che le loro creazioni sottopongono l’utente comune a una dispotica tirannia.”

 

E’ importante lavorare con persone creative. Ho conosciuto professionisti capaci di applicare principi di buon design e di usabilità nella progettazione di software, sia web che mobile. Dai grafici attenti a questi principi si impara e si trae una esperienza professionale positiva, oltre a produrre software di buona qualità e piacevole per l’utente.

La cosiddetta user experience merita un’attenzione particolare; dovrebbe essere un processo a parte nello sviluppo del software. Specie nelle società ICT italiane, spesso si confondono le figure di progettista, analista, sviluppatore, oltre a non esistere quelle di graphic o user experience designer. Ma per mantenere alto il livello di qualità e competitività del prodotto, occorre essere coscienti della forte specializzazione delle competenze da mettere in gioco.

Cito due massime efficaci per trarre le seguenti conclusioni:

  1. Chi nasce tondo, non muore quadrato” – dividiamo le competenze e le responsabilità delle figure coinvolte in un progetto.  Ognuno faccia il proprio mestiere, senza confondere le professionalità. Dalla interazione di queste professionalità, nasce il buon presupposto per realizzare un prodotto di successo.
  2. Lo sparagno (cit. risparmio) è mal guadagno” – il cosiddetto “triplo vincolo” di un progetto (costo, tempo, qualità), andrebbe spostato sempre più in direzione della qualità. Per far ciò occorre dotarsi di figure competenti per coprire i vari ambiti della progettazione software (analisti, grafici, sviluppatori, progettisti, ecc.). Provate a far fare ad uno sviluppatore la grafica, nella maggior parte dei casi produrrà qualcosa di poco piacevole ed usabile per l’utente finale.

Il pensiero umano non è come la logica…non procede con eleganza e senza sbalzi

Gli psicologi hanno registrato le cronache dei fallimenti del pensiero, dell’irrazionalità del comportamento reale. Anche compiti semplici possono talvolta mettere in crisi persone peraltro abilissime. Benché i principi di razionalità sembrino contraddetti altrettanto spesso quanto rispettati, restiamo attaccati all’idea che il pensiero umano debba essere razionale, logico e ordinato. Gran parte dell’ordinamento giudiziario si basa sul concetto di un pensiero e comportamento razionale. Gran parte della teoria economica si basa sul modello dell’individuo razionale che cerca di ottimizzare vantaggi, utilità e benessere personale. Molti studiosi di intelligenza artificiale usano la matematica della logica formale – il calcolo predicativo – come strumento principale per simulare il pensiero.

Ma il pensiero umano – e quei suoi parenti stretti che sono la soluzione dei problemi e l’elaborazione dei piani d’azione – sembra più radicato nell’esperienza passata che nella deduzione logica. La vita mentale non è lucida e ordinata, non procede con eleganza e senza sbalzi in forma logica e pulita. Al contrario, va avanti a sbalzi e strattoni, saltando da un’idea all’altra, collegando cose che non hanno niente a che fare l’una con l’altra, formando intuizioni e concetti nuovi, saltando creativamente alle conclusioni. Il pensiero umano non è come la logica; è fondamentalmente diverso come spirito e qualità. La differenza non è né in meglio né in peggio. Ma è questa differenza a portare le scoperte creative e la grande solidità del comportamento.

Tratto da “La caffettiera del masochista” di Donald A. Norman

La caffettiera del masochista

[iOs] Librerie per la scansione di codici a barre ed il riconoscimento OCR

Come acquisire un codice a barre in un’app iOs? Ce lo dice Marco Giraudo, giovane sviluppatore iOs e PHP, che mi ha mandato questo ottimo articolo, in cui si è trovato a valutare delle librerie per la scansione di codici a barre (BarCode Reader), ma anche per il riconoscimento OCR.

iPhone_barcode_scanner

Eccovi l’esperienza di Marco, a cui va il mio ringraziamento:

“Mi sono fatto questa domanda nelle ultime settimane per motivi di lavoro e vi voglio riportare 2 esempi che sono riuscito a trovare e testare. In particolare, mi serviva riconoscere un codice a barre e cosi ho utilizzato due librerie: ZBarSDK e Tesseract .

1° Esempio: ZBarSDK

ZBarSDKhttp://zbar.sourceforge.net/iphone/sdkdoc/

C’è stato subito un problema da superare, dopo l’installazione sul mio progetto xCode:

Warning: Only the iPhone 3GS and iPhone 4 are supported, as they have a camera with auto-focus. The ZBar library does not support the iPhone 3G and is unlikely to ever support it.

Su iPhone 5 con iOs 6 e successivi mi dava problemi, ma ho trovato la soluzione su http://stackoverflow.com:

http://stackoverflow.com/questions/12506671/zbar-sdk-is-not-working-in-ios6

Oltre a settare come “Valid Architecture” il processore armv7s nelle impostazioni del vostro progetto xCode, potete provare a scaricare ed installare la versione beta compatibile con iOs 6 (ZBarSDK-1.3.1.dmg):

http://sourceforge.net/projects/zbar/files/iPhoneSDK/beta/

Una  volta installato il .DMG, l’unica cosa da fare è leggere il file README riportato e seguire le istruzioni per inserire la libreria nel proprio progetto:

    • trascinare la cartella ZBarSDK nel proprio progetto
    • inserire nel proprio progetto i Frameworks: AVFoundation (weak), CoreMedia (weak), CoreVideo (weak), QuartzCore, libiconv.dylib

Per usare ZBar, basta importare nel vostro controller la libreria:

#import “ZBarSDK.h”

Nello stesso .dmg troverete una cartella con molti esempi da cui prendere spunto. L’ho anche provata con iPhone5 con su installato ios7 beta4 e funziona benissimo.

2° Esempio: Tesseract-OCR (Google)

Secondo esempio che vi riporto è tesseract-ocr, un OCR Engine che vi permette di riconoscere i testi riportati in un’immagine. Ecco il sito ufficiale su Google Code:

http://code.google.com/p/tesseract-ocr/

Per far funzionare l’OCR Engine in iOs, esiste un Wrapper: Tesseract for iOs (https://github.com/ldiqual/tesseract-ios)

Eccovi le istruzioni di installazione:

http://lois.di-qual.net/blog/install-and-use-tesseract-on-ios-with-tesseract-ios/

Spero che questi due esempi possano esservi utili. Alla prossima!”