Gen 24

Per poter accedere alla API di YouTube é necessario ottenere un Developer ID e la documentazione é abbastanza completa, anche se mi aspettavo qualche metodo in più. Le metodologie di accesso sono due: REST e XML-RPC.

Obiettivo del post é fare una panoramica di come implementare una classe Java che, dati DEV_ID e una lista di VIDEO_ID, acceda alle API di YouTube, ne scarichi i dettagli, provveda a costruire una cache su filesystem. Non entrerò in dettagli che uno sviluppatore Java conosce sicuramente meglio di me.

Metologie di caching:

  • la più semplice in Java é serializzare l’oggetto ottenuto dall’XML su filesystem;
  • per palati più raffinati, si possono utilizzare ottime librerie open source come

REST Interface

Interfaccia estremamente semplice si basa su una chiamata http che come risultato restituisce un file xml. Un esempio.

http://www.youtube.com/api2_rest?
method=youtube.videos.get_details&dev_id=YOUR_DEV_ID
&video_id=YOUR_VIDEO_ID

dove:

  • method é il parametro in cui si indica il metodo delle API YouTube a cui si vuole accedere;
  • dev_id il proprio id di sviluppo;
  • video_id é l’id univoco del filmato su YouTube.

La nostra classe:

  1. scorre la lista di VIDEO_ID;
  2. verifica se esiste già  una cache per quel video (o verificando su filesystem se esiste l’oggetto serializzato o interroganto EHCache/OScache);
  3. se non esiste una cache:
    • farà  la chiamata http alle API di YouTube
    • riceverà  l’xml di dettaglio del video per quel determinato VIDEO_ID
    • elaborerà  l’xml trasformandolo in un oggetto strutturato nel modo che ci viene più comodo e utile
    • creerà  la cache per quell’oggetto
  4. se esiste l’oggetto cachato, la classe si preoccuperà  soltanto di recuperarlo;
  5. viene restituita una lista di oggetti contenenti i dettagli dei nostri video.

Per effettuare una chiamata http é necessaria una libreria che implementi un client http, va benissimo l’HttpClient del progetto Jakarta Commons. La chiamata può essere fatta in GET o in POST: in questo senso la documentazione di YouTube non dice nulla (l’esempio sopra simula una GET) ma penso che l’API accetti entrambi i metodi (preferibile il POST).

Il codice (plausibilmente un metodo privato della classe) dovrà  essere strutturato più o meno così:

HttpClient client = new HttpClient();
PostMethod method = new PostMethod(”http://www.youtube.com/api2_rest”);
method.addParameter(”method”, “youtube.videos.get_details”);
method.addParameter(”dev_id”, YOUR_DEV_ID);
method.addParameter(”video_id”, YOUR_VIDEO_ID);
try {
// eseguo la chiamata
int statusCode = client.executeMethod(method);
if (statusCode != HttpStatus.SC_OK) {
System.err.println(”Method failed: ” + method.getStatusLine());
}
// leggo la risposta
byte[] responseBody = method.getResponseBody();
// utilizzo la response.
// Attenzione: assicurarsi che l’encoding sia corretto ne non siano dati binari
String myXML = new String(responseBody));
} catch (HttpException e) {
… // gestione dell’eccezione
} catch (IOException e) {
… // gestione dell’eccezione
} finally {
// chiudo la connessione.
method.releaseConnection();
}

Le possibilità  di ottimizzazione sono svariate, come per esempio creare un unico client e sfruttare un’unica connessione per evitare overhead inutili: a voi la scelta. La response che si otterrà  sarà  simile a questa.

Per elaborare l’xml e trasformarlo in un più comodo oggetto, possiamo utilizzare uno dei moltissimi parser a disposizione della piattaforma Java. La scelta in questo caso é più orientata su considerazioni di gusto (riguardo l’API del parser), di leggerezza del parser e della sua velocità  di elaboarzione.

Per un utilizzo leggero e snello consiglio di utilizzare un pull-parser anche senza feature di validazione (che in questo caso servono a poco e non avremmo comunque il DTD su cui lavorare). Un elenco veloce di alcuni:

Alla prossima puntata farò una panoramica su come può funzionare l’approccio via interfaccia XML-RPC.

Gen 23

Rilasciata la nuova versione stabile di Wordpress: 2.1.

Apprezzabile l’ottimizzazione delle query MySQL, versante un po’ debole della piattaforma. Piccolo slancio polemico: nuova feature, come segnalato nelle release notes, o bug-fix? Io propendo per la seconda interpretazione.

Gen 23

Iscritto il blog a Blogbabel che mi posiziona al 3.427° posto su 3.508: pieno fondo classifica, si può solo risalire!

Gen 19

Nasce come diario personale, diventa uno strumento di marketing.

E’ indiscutibile, il blog tira ormai da un paio d’anni portando con sé un nuovo approccio al web design, ai contenuti e alle strategie di marketing online. Anche le aziende se ne sono accorte e stanno disseminando la rete di operazioni di blog marketing.

Sembra quasi di tornare alla fine degli anni novanta, quando tutti nel settore avevano sulla bocca le parole portale e portale verticale: si percepiva lo stesso tipo di elettricità  ed entusiasmo attuali. Adesso tutti parlano di blog e tutti vogliono avere un blog: motore economico del Web 2.0.

Perché il blog funziona? Ricchezza di contenuti, supposta neutralità /credibilità  degli editor, rapidità  di aggiornamento, sono masticabilissimi e piacciono ai sistemi di indicizzazione dei motori di ricerca.

Ma i rischi e il collasso del modello é dietro l’angolo.

  • Spesso gli operatori del settore cavalcano la moda, forzando i propri clienti a seguire un modello di marketing online che non é automatico gli si addica: troppi blog aziendali contano i propri post sulle dita di una mano, molti mancano della corretta ispirazione editoriale.
  • Troppa informazione corrisponde a nessuna informazione: l’esigenza di compattare e rendere gestibile questo overload d’informazione ha dato vita a siti meta, aggregatori web e standalone, sistemi di indicizzazione alternativi e linking.

L’esplosione dei vari *Camp ha qualcosa del fenomeno del costume e vede le prime infiltrazioni markettare, lasciando intravvedere un nuovo livello: il blogger marketing, ovvero quel marketing operato da un blogger verso i propri colleghi.

I blog non sono per tutti.

  • Vuoi condividere e dar valore alle tue esperienze, competenze, ragionamenti?
  • Hai in mente un progetto editoriale preciso?
  • Vuoi avvicinare nuovi potenziali clienti attraverso un concreto servizio di informazione?

In questi casi forse il blog é un buon strumento per essere presente sulla rete. Diversamente ci sono altri modi, altri modelli di cui uno fra tutti: la creatività , l’amore per la sperimentazione e l’irriverenza per i modelli affermati.

Si é smesso di parlare di portali, si smetterà  di parlare di blog. Sia chiaro: tuttora esistono portali e continueranno ad esistere i blog e i bloggers. Ma il modello di marketing una volta raggiunto il massimo punto sostenibile d’inflazione rinnegherà  se stesso e si dirigerà  verso altre forme, forse ancora più semplici e dirette di comunicazione.

Scadenza: 2 anni.

Giu 4

Di Ajax ormai si parla da tempo e la richiesta di innovazione per le interfacce web si fa sempre più spinta. Anche i maggiori player del mercato sono entrati prepotentemente.

Ora é il turno di Adobe, che pubblica la prerelease di Spry, il suo framework Ajax sotto comoda licenza BSD. Gli effetti che si vedono nelle demo stupiranno poco gli addetti del settore. La vera manna é la libreria di caricamento, manipolazione e binding dell’XML: da leggere assolutamente il “Getting Started”.

Da tempo si cerca di ricreare un ambiente desktop in html dinamico e, negli ultimi tempi, in Ajax. Mai nessuno mi ha stupito come Challenger: ottima qualità  sia nell’interazione che nella definizione del paradigma dell’interfaccia.

Mar 3

Quest’anno Apple ha concretizzato la svolta annunciata a metà  2005: i nuovi Mac non sono più basati su architettura PowerPC ma su piattaforma Intel. Ad oggi le linee basate su procesori Intel sono i Mac Book, i Mac Mini e gli iMac. Il fatto stesso che Mac OS X fosse già  pronto a girare sotto x86 non avrebbe dovuto stupire nessuno, in quanto erede di NextStep.

Con questa svolta di Apple si concretizza una nuova importante possibilità  per noi webdesigner, poter avere su un unico computer i sistemi più diffusi tra l’utenza finale: Windows, Mac OS X, Linux, FreeBSD, NetBSD, etc. Si, perché di fatto i nuovi Mac sono pc compatibili a tutti gli effetti assemblati con componentistica standard e estremamente diffusa. L’unica difficoltà  da scavalcare é l’uso del BIOS EFI, che sarà  superata con Windows Vista e dalle prossime distribuzioni di Linux.

Come fare?

Tra qualche mese sarà  possibile acquistare un Mac e partizionare l’hard-disk in modo da avere installati Windows Vista, Mac OS X e Linux contemporaneamente: riavviando il computer si potrà  accedere al sistema operativo di cui si ha bisogno. Ma ancora meglio, con sistemi di virtualizzazione come VMWare o Xen sarà  effettivamente possibile avere i diversi sistemi operativi attivi contemporaneamente.

In questo modo si potrà 

  • sviluppare effettuando i controlli cross-browser e cross-platform in modo molto più snello (pensate ad avere sotto mano contemporaneamente IE, Firefox Win/Linux, Safari),
  • scegliere il sistema operativo e il software più adatto a quanto ci proponiamo di fare,
  • avere la massima libertà  di scelta anche in termini di gusti e abitudini per interfaccia, stile d’uso.

Sicuramente il quadro complessivo ha alcune ombre: un rafforzamento dello strapotere di Intel, Mac OS X non viene venduto disgiunto dall’hardware. Ma i vantaggi di facilità  e accesso alle diverse piattaforme e software per grafica, webdesign e sviluppo potrebbe candidare la piattaforma della Mela come ideale nel nostro lavoro.

Next Entries »