MarcoDuff.com Mobile Site

HTC Desire

E’ da tanto che non aggiorno queste pagine, ultimamente mi sono dedicato parecchio alla programmazione Android, magari uno di questi giorni creo qualche tutorial da postare.

Visto il mio uso massiccio del mio nuovissimo HTC Desire ho deciso di ottimizzare il mio blog per la navigazione con cellulare. Alla fine non ho fatto altro che utilizzare un plugin per WordPress, ma il risultato devo dire che è ottimo!

Fatemi sapere cosa ne pensate (da usare ovviamente con il vostro cellulare)!

Alla prossima!

Il Protocollo OAuth

Logo OAuth
Logo OAuth

Ultimamente mi sono imbattuto in un piccolo progetto con Java. Per il momento non vi anticipo lo scopo del progetto, che spero di pubblicare il prima possibile su questo blog,  ma grazie a questo sto studiando parecchi aspetti della programmazione web oriented, dell’integrazione con i social network e delle metodologie del futuro.

Tutti questi studi e tutte le mie scoperte le condividerò ovviamente con tutti voi in un insieme di articoli che pubblicherò su questo blog. In questo primo articolo della serie vi parlerò di come funziona l’autenticazione tra una Applicazione ed un Sistema Esterno utilizzando OAuth!

OAuth è un protocollo open che permette ad Applicazioni Web o Desktop di chiamare in modo sicuro ed autorizzato API messe a disposizione da un Sistema Esterno in modo semplice e standard. Questo protocollo risulta essere molto efficace in chiamate conformi alla metodologia RESTful, quindi facilmente applicabile a tutte quelle applicazioni scritte in linguaggi capaci di aprire una Socket.

Il protocollo OAuth ha essenzialmente due principi. Li riporto dal sito ufficiale:

OAuth is a simple way to publish and interact with protected data. It’s also a safer and more secure way for people to give you access. We’ve kept it simple to save you time.

If you’re storing protected data on your users’ behalf, they shouldn’t be spreading their passwords around the web to get access to it. Use OAuth to give your users access to their data while protecting their account credentials.

In poche parole, quello che OAuth vuole dirci è che quando una Applicazione vuole utilizzare i dati di un Utente salvati in un Sistema Esterno, questa non deve venire in possesso dei dati di accesso dell’Utente verso il Sistema Esterno, ma l’Utente deve autorizzare in modo esplicito il Sistema Esterno a fornire i dati all’Applicazione.

Il ragionamento sembra essere molto contorto, ma basta guardarsi in giro su Internet per vedere come questo concetto sia all’ordine del giorno:

  • Dobbiamo esplicitamente dire al Facebook che autorizziamo una data Applicazione prima di vederla sul nostro profilo;
  • Dobbiamo esplicitamente dire a Twitter che autorizziamo una data Applicazione ad aggiornare il nostro stato;
  • Dobbiamo esplicitamente dire a Yahoo o Google che autorizziamo una data Applicazione a recuperare i nostri dati;
  • ecc…

Come potete rendervi subito conto, tutte le Applicazioni che ho menzionato riescono ad avere un accesso ai dati dell’Utente di un determinato Sistema Esterno (Facebook, Twitter, Yahoo, Google, ecc…) senza che queste conoscano in modo diretto la login e la password dell’Utente stesso e garantendo a questo un livello di privacy molto elevato!

Sorpresi?

Questa autorizzazione avviene ovviamente in piena conformità con la filosofia RESTful, ovvero utilizzando l’header HTTP, in particolare il campo Authorization.

I passi che vengono effettuati nel processo di autorizzazione sono i seguenti:

  1. In modo preliminare, lo sviluppatore dell’Applicazione deve registrare quest’ultima sul Servizio Esterno, indicando quali dati potranno essere recuperati;
  2. L’Utente accede all’Applicazione che contatta il Servizio Esterno per ricevere un “Unauthorized Request Token”;
  3. L’Applicazione ridirige l’Utente verso il Sistema Esterno, passando il token non autorizzato;
  4. L’Utente decide di autorizzare l’Applicazione direttamente sul Sistema Esterno;
  5. Il Sistema Esterno ridirige l’Utente verso l’Applicazione passando un “Access Token”;
  6. L’Applicazione accede ai dati dell’Utente presenti sul Sistema Esterno grazie al token autorizzato.

Se volete approfondire il protocollo vi consiglio essenzialmente due link: le specifiche ufficiali del protocollo ed una spiegazione come Google usa OAuth.

Emergenza Terremoto Haiti

Emergenza Terremoto Haiti
Emergenza Terremoto Haiti
APPELLO DELLA CRI PER IL TERREMOTO AD HAITI – La CRI lancia un appello per raccogliere fondi destinati alle popolazioni colpite dal terremoto ad Haiti del 12 gennaio 2010.  Rocca (Cri): “Pronti a partire con uomini e mezzi”
Alle ore 16 del 12 gennaio 2010 – ore 23.00 in Italia – un terribile terremoto ha colpito l’Isola di Haiti. 4 forti scosse di magnitudo 7,3 Richter, il cui epicentro è situato a 15 km della capitale Port-au-Prince, hanno colpito i centri abitati sbriciolando centinaia di palazzi. Migliaia di morti e feriti, migliaia di sfollati, ingenti danni alle infrastrutture, con taglio del rifornimento di acqua e di elettricità, in diverse città: questa la situazione che si è presentata questa mattina agli occhi dei soccorritori.

APPELLO DELLA CRI PER IL TERREMOTO AD HAITI – La CRI lancia un appello per raccogliere fondi destinati alle popolazioni colpite dal terremoto ad Haiti del 12 gennaio 2010.  Rocca (Cri): “Pronti a partire con uomini e mezzi”

Alle ore 16 del 12 gennaio 2010 – ore 23.00 in Italia – un terribile terremoto ha colpito l’Isola di Haiti. 4 forti scosse di magnitudo 7,3 Richter, il cui epicentro è situato a 15 km della capitale Port-au-Prince, hanno colpito i centri abitati sbriciolando centinaia di palazzi. Migliaia di morti e feriti, migliaia di sfollati, ingenti danni alle infrastrutture, con taglio del rifornimento di acqua e di elettricità, in diverse città: questa la situazione che si è presentata questa mattina agli occhi dei soccorritori.

Fonte: Sito Croce Rossa Italiana

Ubuntu e Web Proxy ISA

Finalmente dopo mille ricerche sono riuscito a tovare il modo di far funzionare apt e Synaptinc della mia distribuzione Ubuntu dietro un Web Proxy ISA!

Il problema stava tutto in un errore di autenticazione con il proxy stesso, infatti quando provavo ad installare gli aggiornamenti dei pacchetti di Ubuntu la procedura, al momento del download, mi andava in errore. Più precisamente, l’errore era:

407 Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )

Ecco come risolverlo:

  1. Scaricate il pacchetto NTLM Authorization Proxy Server dal sito http://sourceforge.net/projects/ntlmaps/
  2. Scompattate il pacchetto con il comando tar -xvzf ntlmaps-xxxx.tar.gz (sostituite ovviamente xxxx con la versione)
  3. Modificate il file server.cfg inserendo l’indirizzo ip del proxy, la porta, il dominio, la user e la password negli appositi campi
  4. Modificate le impostazioni del proxy di Synaptinc (sotto Setting, Preferences, Network) con 127.0.0.1 porta 5865 (queste sono le impostazioni di default di NTLM)
  5. Fate partire NTLM tramite il comando ./main.py &

Quello che effettivamente accade è che viene fatto partire un ulteriore server proxy sulla vostra macchina locale. Quindi tutti le nostre applicazioni, invece di utilizzare il server proxy reale, utilizzano quest’ultimo che si occupa, in modo corretto, dell’autenticazione!

Risultato: finalmente il nostro sistema Ubuntu riesce ad aggiornarsi!!! 😉

Solo una piccola nota: ho notato che la navigazione tramite browser risulta essere leggermente rallentata utilizzando questo web proxy locale, probabilmente devono essere ottimizzati i parametri nel file server.cfg. Ma, siccome la navigazione via browser mi funzionava correttamente anche senza utilizzare il proxy locale, semplicemente non lo utilizzo e tutto torna ad essere veloce!

Buon aggiornamento a tutti!

Google Wave, altri inviti disponibili

Ho a disposizione altri inviti per provare Google Wave, se siete interessati fate un commento a questo articolo inserendo come email il vostro contatto gmail!

Ciao! 😉

by Marco "Duff" Palermo