$ cat /dev/random
ripley's miscellanous debris

Flickr API e Appello ai coders :-)

(2006/06/02)

Sei un programmatore?

Ti fischiano spesso le orecchie ed il tuo otorinolaringoiatria non sa darsi una spiegazione?

Potresti non aver commentato a sufficienza il tuo codice :-) Qualche altro programmatore dall’altra parte del mondo potrebbe essere li davanti al tuo codice pensando:

“haahhaksgjmfjjiirkmskb!!!”

Che non e’ un insulto… ce lo dice Irman… deriva dal greco e significa:

saggezza

Ma come la conoscenza, che senza la saggezza e il senso del sacro e’ fina a se stessa, cosi’ il nostro codice sara’ inutilizzabile da parte di molti sviluppatori se non viene commentato a sufficienza :-(

Lo so... e' difficile da digerire... mica posso fare tutto io...
... perche' non si commenta lui da solo...
ma lo sai a che ora mi sono alzato?... alle 7 meno un quarto...

Anche io ogni giorno penso: “uhm… forse un po’ di commenti ed un getting started per rog ci vorrebbero proprio”

Ma poi nun me coddhra... preferisco scrivere altro codice :-P

Ma bisogna resistere ai nostri istinti animaleschi :-)

Comunque, a parte gli scherzi, oggi ho provato per gioco un binding ruby per l’API di flickr e anche se flickr non mi e’ molto simpatico come servizio ho deciso di mettere online l’esperimento (andato a buon fine) visto che l’api che ho usato (rflickr) e’ piuttosto carente di documentazione e il GETTING_STARTED e gli esempi non sono sufficienti a permetterti di avere uno snippet funzionante senza aver prima lanciato un buon numero di:

“hahhaksgjmfjjiirkmskb!!!”

ma andiamo avanti…

Il magico mondo di Flickr

Il magico mondo di Flickr e’ un quartiere del magico mondo yahoo... per poter utilizzare il servizio quindi dovrete avere un magico account yahoo... che significa rispondere ad una serie domande del tipo:

uff… che palle… mi sta quasi passando la voglia…

ora che avere il vostro magico account yahoo potete attivare il vostro magico account flickr... e quindi dovrete rispondere ad altre fantastiche domande:

Ah… ora possiamo upload-are le immagini… aspetta ma noi lo vogliamo fare con l’API… benissimo devi attivare una application key... altre domande :-( ...

coff… coff… ammazza oh quante ne vogliono sapere… c’e’ l’abbiamo fatta: abbiamo la nostra application key e shared secret

E mo? che ce faccio? dopo tutta sta fatica DEVE funzionare.

rflickr

rflickr e’ un binding ruby per comunicare con il webservice flickr, non so se e’ l’unico ma l’ho provato solo per capire insieme ad un amico perche’ non voleva funzionare, quindi non importa.

Potete installarlo con un semplice:

gem install rflickr -r

e vederne il contenuto con:

gem contents rflickr

La documentazione e’ composta da un GETTING_STARTED e alcuni esempi.

Se proverete ad usare gli esempi cosi’ come sono…

non funzioneranno

Si si provate… ma tanto non funzionano :-)

In effetti il GETTING_STARTED un suggerimento ce lo da in proposito… ma comunque non e’ che ti aiuti piu’ di tanto :-P

Esperimento

Per il test ho scelto un esempio a caso (quello che mi sembrava piu’ semplice) e l’ho provato: album_test.rb

In questo esempio ci sono 2 problemi che ci mandano fuori strada:

  1. non vengono passate l’application key e lo shared secret al costruttore di Flickr (per cui non riusciremo ad autenticarci)
  2. le applicazioni hanno necessita’ di autorizzazione esplicita da parte dell’utente per poter accedere ai dati (autorizzazione che viene accordata visitando un url che ci viene comunicato durante la fare di autorizzazione)

Questo si traduce in una piccolissima (quanto fondamentale) modifica al codice dell’esempio:

token_cache_file = "./token.cache" # path del file cache del token

flickr = Flickr.new(token_cache_file,APP_KEY,SHARED_SECRET)
  unless flickr.auth.token
    flickr.auth.getFrob
    url = flickr.auth.login_link
    puts "You must visit #{url} to authorize this application. "+ 
     "Press enter when you have done so. This is the only time "+
     "you will have to do this."
    gets
    flickr.auth.getToken
    flickr.auth.cache_token
end

da sostituire all’originale (ed eccessivamente ottimista :-)):

flickr = Flickr.new('MY_TOKEN')

A questo punto loggatevi sul vostro magico account flickr, upload-ate qualche immagine/foto e organizzatele in un Set (chiamato ad es. “prova”).

Siete pronti a provare l’esempio:

ruby album_test.rb prova

visitate l’url suggerito e date l’ok per l’accesso dello script al vostro account e premete invio (nella console in cui avete lanciato l’esempio :-)

Conclusioni

Questi nuovi servizi community-centralizzata-commercializzata non mi piacciono un granche’... sono servizi di community ma:

Li rende troppo suscettibili a manipolazioni... cambi di servizio o di politica dell’azienda... uhm… non la vedo come una cosa proprio comunitaria.

Inoltre nel caso specifico di Flickr, mi sembra tutto sommato un servizio che non nasconde una poi cosi’ elevata complessita’ da rendere difficile la realizzazione di alternative libere.

Cosi’ su due piedi mi sembra un applicazione rails da 2 soldi (almeno l’idea di base) e chiunque potrebbe avere il suo servizio personale sul proprio sito web o comunitario sul proprio sito web comunitario.

Troppo estremista? ai posteri l’ardua sentenza.

buon divertimento con il vostro magico account flickr.


Full of CC licensed ripley's debris
HTML and CSS Design by Nicolas Fafchamps
Generated with Rote and Rog