Feeds:
Articoli
Commenti

Social Graph API

Decisamente ricco il numero di ioProgrammo in edicola in questi giorni.

E per il sottoscritto è anche un numero da incorniciare: segna, infatti, un anno esatto di collaborazione con la rivista.

Due gli articoli da me firmati, entrambi su prodotti di casa Google. Innanzitutto, l’anteprima nazionale di Google Wave: offro una panoramica della piattaforma e spiego come creare dei semplici (ma estremamente utili) Wave Gadgets per arricchire e personalizzare le proprie onde.

Nel secondo articolo apro il capitolo delle Google Data APIs, con un’applicazione che utilizza la YouTube Data API (e la YouTube Player API).

Per celebrare l’anniversario (a beneficio dei lettori del blog e della rivista), sto preparando un post in cui riporterò i link a tutte le risorse da me utilizzate e citate nei 20 articoli apparsi durante l’anno.

Ci vorrà un po’ a raccogliere e commentare tutto il materiale, ma chi avrà pazienza sarà premiato ;-)

Happy waving!

È un bel pezzo che lo vado dicendo ed ora Mashable pubblica un post che lo conferma: se mandate una mail professionale, è probabile che chi la riceve darà peso anche all’account di posta che avete utilizzato. Da un’analisi di Credit Karma, un indirizzo di posta elettronica dice qualcosa di noi e un account GMail dà maggior credito di quanto ne dia un account Yahoo!, MSN e Hotmail.

Anzi, sembra che mandare una mail da Yahoo! possa addirittura causare danni alla propria immagine.

Le motivazioni potrebbero essere diverse e non del tutto scontate. Posso darvi solo la mia idea: GMail non è un account di posta, ma un accumulo di servizi di notevole qualità.

Da GMail è possibile interagire con estrema facilità con tutti i servizi Google, dal calendario ai documenti, dal feedreader alla chat. E tutto questo con lo stesso account. Per non parlare, poi, delle incredibili possibilità di condivizione dell’informazione.

In effetti, è qui che si basa il quasi-monopolio di Google, ma è anche in questa interazione tra servizi avanzati e nelle loro capacità di condivisione/collaborazione/distribuzione che si concretizza la differenza tra chi li usa e chi no.

Ho scoperto, navigando tra le estensioni di Google Wave, questo eccezionale robot che integra le funzioni di Wolfram Alpha all’interno di Google Wave. Date un’occhiata al video:

La Rete sta letteralmente ribollendo per la smania di ricevere inviti per Google Wave, tanto da spingere molti a venderli su ebay. Ad un’occhiata veloce, mi sembra che le quotazioni oscillino tra gli 8 e i 55 euro, sebbene nei primi giorni si offrivano cifre anche più alte.

Ho avuto accesso alla sandbox come sviluppatore da oltre un mese e mi sono chiesto più volte come Wave sarà adottata dagli utenti. Insomma, mi è sembrato uno strumento molto complesso per uscir fuori dall’ambito degli smanettoni/esperti/professionisti, almeno in una fase iniziale.

Inoltre, non mi è sembrato che Wave fosse pronto per il grande pubblico, almeno nelle settimane iniziali. Aggiornamenti frequenti e back-out improvvisi mi hanno spesso lasciato sconcertato.

Ovviamente, col passare del tempo l’applicazione migliora: i bug vengono fissati e nuove features vengono aggiunte. Inoltre, gli utenti cominciano a prendere dimestichezza con lo strumento e se ne diffonde la conoscenza. Questo da un lato aiuta Google a migliorare la piattaforma, dall’altro mette in circolazione conoscenze che servono agli stessi utenti.

Insomma, l’applicazione evolve.

Eppure, secondo me, rimane sempre un’applicazione complessa.

P.s.: ho esaurito gli inviti. L’immagine della Invitation Wave non è aggiornata ;-)

invite

Spesso capita di dover mostrare a video un numero limitato di dati rispetto a quelli presenti in un archivio.

Così, sia se lavorate sui vostri database, sia se dovete gestire i dati provenienti da una webapp cui accedete attraverso API, è frequente dover mostrare l’output dei vostri script su più pagine.

I dati che occorrono sono solo 3:

  1. Numero totale degli elementi del result-set
  2. Numero degli elementi da mostrare per ogni pagina
  3. Indice del primo elemento della pagina

Questa è la mia soluzione al problema:

<?php

$totalResults = 100;

// se è passata la variabile itemsperpage, ne preleva il valore
// altrimenti attribuisce valore 10
$itemsPerPage = $_GET['itemsperpage'] ? $_GET['itemsperpage'] : 10;

// se è passato lo startindex, ne preleva il valore
// altrimenti attribuisce valore 1
$startIndex = $_GET['startindex'] ? $_GET['startindex'] : 1;

// lo startIndex della pagina precedente
// e della pagina successiva
$prevStartIndex = $startIndex - $itemsPerPage;
$nextStartIndex = $startIndex + $itemsPerPage;

// numero della pagina corrente
// la funzione floor approssima al numero intero immediatamente precedente
$numPage = floor((($startIndex - 1)/$itemsPerPage) + 1);

// numero dell'ultima pagina
$lastPage = (is_int($totalResults/$itemsPerPage)) ? ($totalResults/$itemsPerPage) : (floor($totalResults/$itemsPerPage + 1));

/* in alternativa alla stringa precedente, si può ricorrere alla normale struttura condizionale
if (is_int($totalResults/$itemsPerPage)){
  $lastPage = $totalResults/$itemsPerPage;
}else{
  $lastPage = floor($totalResults/$itemsPerPage + 1);
}
*/

// genera il link alla pagina precedente
// se la pagina attuale è successiva alla prima pagina
if($numPage > 1){
  $prevPageURL = 'miofile.php?startindex=' . $prevStartIndex . '&amp;itemsperpage=' . $itemsPerPage;
  $prevPageLink = '<a href="' . $prevPageURL . '">Precedente</a>';
}else{
  $prevPageLink = "Precedente";
}

// genera il link alla pagina successiva
// se la pagina attuale è precedente all'ultima pagina
if($numPage < $lastPage){
  $nextPageURL = 'miofile.php&amp;startindex=' . $nextStartIndex . '&amp;itemsperpage=' . $itemsPerPage;
  $nextPageLink = '<a href="' . $nextPageURL . '">Successiva</a>';
}else{
  $nextPageLink = "Successiva";
}

Eccoci all’appuntamento mensile con ioProgrammo.

Nello spazio dedicato al Web 2.0 due articoli del sottoscritto per presentare le API di Slideshare e Thumblr.

Nel primo articolo, spiego con due esempi come creare un widget con le anteprime di una serie di presentazioni. I criteri di ricerca vengono impostati dallo sviluppatore nel primo esempio, dall’utente dell’applicazione, attraverso un form, nel secondo. I risultati vengono mostrati a video con l’ausilio di Thickbox, un’applicazione basata su JQuery.

Nell’articolo dedicato a Thumblr, mostro come creare una galleria di immagini grazie all’API del più popolare servizio di thumblelog.

Buona lettura!

Google Data APIs

Google mette a disposizione degli sviluppatori uno strumento formidabile di distribuzione e pubblicazione di contenuti attraverso il Web: le Google Data API.

Queste offrono i dati nei due formati standard di distribuzione Atom e RSS. Per la pubblicazione, invece, le Data API fanno ricorso al protocollo di pubblicazione Atom, più una serie di estensioni per la manipolazione delle query.

In pratica, basta trasmettere delle richieste HTTP GET per ottenere una normale rappresentazione di dati in formato Atom. Per inserire, modificare o eliminare dati, basterà trasmettere delle richieste HTTP POST, PUT o DELETE.

E ancora…

La Data API permette di inviare ai server delle query per la selezione di dati specifici: cosa non possibile con i normali formati di syndication, ma resa possibile dalle Data APIs.

I vantaggi e le opportunità offerte da Google sono intuibili: accedere ai dati con formati XML standard, permette allo sviluppatore di creare applicazioni che accedono ai dati indipendentemente dalla piattaforma e dal linguaggio di programmazione. Lavorate con PHP? Fantastico: le funzioni simpleXML di PHP5 vi permetteranno di creare mash-up di qualsiasi tipo, inserendo nelle vostre applicazioni video di YouTube, foto di Picasa, eventi dal Google Calendar, record dei fogli di calcolo, ecc. ecc. Preferite JS? Non cambia nulla: prelevate il feed e mandate i dati a video.

Nessun limite, se non la propria fantasia!

Nella pagina di presentazione delle Data API, oltre ad una panoramica generale del protocollo, si trova un indice delle Google-apps accessibili: Google Analytics, Blogger, Google Books, Picasa, YouTube, ecc. ecc.
A queste si è aggiunta la nuovissima Sidewiki Data API.

Il materiale su cui lavorare è corposo, ma il funzionamento delle API è sempre lo stesso: si genera una URI in cui vengono specificati i parametri della richiesta, si trasmette con il metodo opportuno, si elabora la risposta XML.

Prossimamente sarà in edicola un mio articolo sulla YouTube Data API, mentre sono in cantiere dei lavori con la Picasa Web Data API e la Calendar Data API.

Su queste pagine i prossimi sviluppi…

Google Maps Place

Google lancia Google Maps Place, uno spazio in cui convergono mappe, immagini di Panoramio, video di YouTube, commenti e risorse web collegate, come link a pagine di Wikipedia.

A prima vista sembra un modo semplice e funzionale per ottenere informazioni geografiche su qualsiasi luogo di cui esistano riferimenti nel mondo Google (ma non solo).

Ho fatto le prime provecon qui: http://maps.google.com/places/it/rimini-città

Mi sembra un ottimo modo per scoprire informazioni sui luoghi prima di mettersi in viaggio.

Life su Google Books

La notizia mi sembra eccezionale: 1860 numeri della rivista Life sono consultabili su Google Books.

Magari ci ritorno con qualche riflessione nei prossimi giorni. Per ora mi limito a segnalare i link di riferimento e a suggerirvi di fare qualche ricerca di informazioni su personaggi ed eventi che coprono un arco temporale di quasi 40 anni, dal 1936 al 1972.

La mia prima chiave di ricerca? “Che Guevara“:

Il Che in Bolivia

Ma non finisce qui. Google Image Search ospita un enorme archivio di foto della rivista.

Articoli precedenti »