Skip to content

Novita’ della Google Cloud Platform

Dopo i molti annunci durante il Google Cloud Platform Live del 25 Febbraio, ripropongo al pubblico del GDG Firenze le novità’ piu’ salienti.

(1 Aprile 2014)

Android e Google Cloud Platform getting start

In questo video, spiego come utilizzare il “Mobile Backend Starter” per realizzare in pochi minuti un’applicazione Android in grado di gestire una chat tra piu’ utenti, che si interfaccia con un backend hostato su Google Cloud Platform e che gestisce notifiche push e accesso autenticato alle API del backend.

(3 Febbraio 2013)

Intervista per la Droidcon Torino

Dato che non sono stati i primi a farmi queste domande, riporto un pezzo di intervista fatta per la Droidcon di Torino, il 6 e 7 Febbraio 2014. Magari sono riuscito a spiegare meglio il mio attuale lavoro e perche’ mi appassiona.

Ciao Alfredo, raccontaci qualcosa di te: dalla tua esperienza accademica a quella lavorativa.
Lo confesso, non sono un ingegnere. Ho iniziato a nutrire la mia passione per l’informatica dalla quarta elementare, quando i miei mi regalarono un computer, un glorioso Intel 8080. Finite le superiori, sono subito andato a lavorare come sviluppatore, laureandomi nel frattempo in Scienze della Comunicazione perché pensavo, e penso ancora, che la consapevolezza delle nostre abilità sociali e comunicative sia indispensabile nel bagaglio delle conoscenze che ognuno dovrebbe avere. In Google, poi, ho trovato il connubio ideale tra queste mie due inclinazioni. Tra le due, però, vince ancora la programmazione.

Siamo molto curiosi di sapere di cosa ti occupi in questo momento in Google: puoi parlarci brevemente delle tue mansioni?
Sono nel team Developer Relation, e il mio compito è rendere quanto più divertente possibile la vita degli sviluppatori italiani che usano le tecnologie dev di Google. Seguo le community sul territorio, organizzo eventi, faccio formazione nelle università, mi tengo aggiornato sul mondo delle startup nel nostro paese e cerco di far capire ai miei colleghi in America che anche l’Italia vale la loro considerazione e perché.

Com’è lavorare direttamente per il colosso di Mountain View? Data la tua vasta esperienza lavorativa, trovi ci siano differenze di mentalità rispetto alle aziende Italiane?
E’ bello sicuramente, ma impegnativo. Tutti sanno quanto Google tenga alla qualità del posto di lavoro dei propri dipendenti e questo, assieme a dei buoni colleghi e alla possibilità di lavorare su ciò di cui sono appassionato, non condiziona con inutili pesantezze la mia giornata, ma anzi! Di differenze ce ne sono, ma niente che non si possa importare e adattare al proprio contesto. Occorre però essere disposti a mettersi un po’ in gioco: tutta l’azienda, non solo una sua parte.

Che consiglio puoi dare a chi spera un giorno di poter entrare in una grande azienda all’avanguardia come Google che non segue l’innovazione, ma la crea?
Penso che in Google non si assumano persone per far fare loro qualcosa, ma piuttosto per farli continuare in quello che stanno già facendo con successo. Quindi mi sento di consigliare di credere nelle proprie passioni, quelle vere che costruiscono qualcosa d’innovativo, in qualunque campo. Di non pensare a cosa ci ferma, ma focalizzarsi al cosa invece ci aiuta ad andare nella direzione in cui ci vediamo proiettati e felici. Di essere il cambiamento che si vorrebbe vedere intorno a se’. Prima o poi, una Google arriva. E se non arriva, se ne può sempre creare una.

Quality Android Apps, DevFest Sicilia

Principali suggerimenti per creare applicazioni Android di qualita’: Design, Develop, Distribute.

(19 Ottobre 2013, DevFest Sicilia, Sant’Agata di Militello)

Ubuntu Touch su Galaxy Nexus, installazione e impressioni

Lock Screen

Lock Screen

Canonical ha annunciato una versione 1.0 del suo Ubuntu Touch per Ottobre, quindi perchè non provarla direttamente sul campo, per capire a che punto reale e’ lo sviluppo? Grazie quindi alla documentazione ufficiale, ho installato Ubuntu Touch su un Galaxy Nexus e ho iniziato a giocarci un po’.

 

Installazione

Il processo di installazione fila via liscio e senza intoppi (l’importanza di avere un bootloader sbloccato e’ sempre da apprezzare). La guida accompagna sia nell’installazione facile, con script che fa tutto da solo, sia nella “old way”, in cui prima si carica una recovery image tramite fastboot e poi, grazie a questa recovery, si carica il sistema.

Piccola nota, dato che avevo gia’ una recovery installata nel telefono (CWM): durante l’installazione mi e’ apparso il messaggio:
“ROM may flash stock recovery on boot. Fix? THIS CAN NOT BE UNDONE.”
Seguendo quanto detto qui, ho risposto no e sono andato avanti. Primo boot del sistema, emozione.

 

Configurazione di base del sistema

Ho subito fatto un bell’aggiornamento del sistema. Siccome sono un purista, mi sono collegato dal mio pc con adb shell e poi ho lanciato un classico
# apt-get update && apt-get dist-upgrade -y
Se non si vuole usare un pc, basta lanciare gli stessi comandi dall’app Terminal del device, preceduti da sudo (pwd phablet).

In teoria ci sono un paio di applicazioni per gestire l’aggioramento del sistema, System Settings -> Updates, oppure l’app updatemanager, ma in nessun caso mi hanno dato nuovi aggiornamenti presenti, mentre apt-get mi dava pletore di nuovi pacchetti. L’aggiornamento OTA e’ supportato, ma magari vengono rilasciati solo snapshot piu’ stabili del sistema, non so.

In System Settings -> Accounts ho inserito i miei account Twitter, Facebook e Google. Adesso Friends e’ in grado di mostrare il mio stream Twitter e Facebook, le foto possono essere condivise su Facebook direttamente dalla Gallery, ma purtroppo, se lancio l’app di Facebook o Twitter o Gmail, devo inserire nuovamente i miei dati nello schermo di login. Anche le notifiche di nuove email in Gmail non ci sono.

Manca ancora un’app per  sincronizzare i contatti del device con quelli di un qualunque servizio cloud. Per fortuna, grazie a SyncEvolution e con un po’ di sana riga di comando, e’ comunque possibile gestire la sicronizzazione per i servizi da questo supportati. Nel mio caso, avendo tutto nel cloud di Google, si e’ trattato di semplici passi. Dal terminale del dispositivo (o adb shell):
sudo apt-get install syncevolution
su – phablet
syncevolution –configure –sync-property “username=email@gmail.com” –sync-property “password=secret” Google_Contacts
syncevolution –sync one-way-from-server Google_Contacts addressbook
Purtroppo vengono importati 50 contatti alla volta, ma basta eseguire l’ultima riga piu’ e piu’ volte fino a quando tutti i contatti presenti sul server sono stati importati nel dispositivo. La modalita’ one-way-from-server copia i contatti dal cloud al vostro dispositivo, ma esiste anche un modo per tenerli sincronizzati bidirezionalmente. Personalmente, dato lo stato ancora sperimentale del tutto, ho deciso di eseguire sporadicamente una one-way-from-server, in modo da non rischiare di corrompere i dati nel cloud.

 

Installazione altre applicazioni e rifiniture varie

Si possono anche installare alcune applicazioni addizionali (non core) che sono presenti nel Collection PPA, seguendo la guida Ubuntu Touch apps. Sempre dal terminale del telefono digitare:
sudo add-apt-repository ppa:ubuntu-touch-coreapps-drivers/collection
sudo apt-get update
e poi installare le app desiderate, come ad esempio
sudo apt-get install xkcd-viewer

Risorse utili per rimanere aggiornati: la community ufficiale del progetto e alcuni blog come The Raving Rick, I me mine, Stephane Graber’s website, NotYetThere.org, Popey.com,

 

Impressioni finali

Il lavoro svolto dal team di Ubuntu Touch e’ fin qui monumentale. Se ripenso alle prime discussioni sull’interfaccia, alle core-app gia’ disponibili, alla velocita’ con cui il progetto si sta evolveno, non posso che stupirmi davanti a Canonical e alla community, per essersi imbarcata in un’impresa cosi’ complessa e per portarla avanti con cosi’ tanta energia e determinazione. Vi stimo davvero! Purtroppo pero’, dopo qualche giorno di utilizzo, penso che Ubuntu Touch non sia ancora un sistema operativo pronto per avere una versione 1.0 nel giro di un mese (e neanche 2 o 3, a dirla tutta).

Ci sono molte, troppe,  cose ancora da sistemare: innanzitutto la stabilita’ del sistema e’ una chimera: se lancio qualche app, inevitabilmente devo eseguire un reset dopo un po’ visto che mi si blocca tutto. Anche la responsivita’ dell’interfaccia e’ accettabile solo per poco tempo dopo il reset. Aspettiamo con ansia che il merge tra Mir e Unity 8 e altre sostanziose ottimizzazioni migliorino le cose. Tra l’altro lo sto provando su un Galaxy Nexus, quindi neanche l’ultimo dei terminali in quanto a performance. Di sicuro su un Nexus 4 andrebbe meglio, ma questo fuga ogni dubbio che Ubuntu Touch possa essere un sistema operativo per device low/mid-end, almeno allo stato attuale.

C’e’ poi il fattore delle applicazioni, cruciale per il successo di ogni sistema operativo: le core-app offerte sono carine, ma poche e lungi dall’essere complete e pienamente usabili.  Senza contare la mancanza di applicazioni complementari a quelle di sistema ad un mese dal lancio. Questi fattori, sempre secondo me, non rendono la piattaforma appetibile, forse, neanche ai geek piu’ smaliziati. Certo, tutti i siti web ottimizzati per mobile possono essere considerati “first class citizen” di Ubuntu Touch, ma ad oggi sono davvero pochi quei servizi che hanno un sito web performate e usabile al pari un’app nativa per Android, iOS o Windows Phone. Senza contare che, con questo paradigma, la fruzione del servizio offline deve essere gestita dal sito stesso, e sinceramente non so qual’e’ il livello di supporto offerto dal browser della piattaforma, o quanto in profondita’ sia affrontato questo scenario dalle specifiche HTML5.

In definitiva, ancora tifo per vedere Ubuntu Touch come sistema operativo sul mio secondo telefono (il primato va ad Android, inutile dirlo), ma ci riprovero’ tra qualche mese. Purtroppo all’oggi rischio addirittura di perdere le telefonate, dato un sistema cosi’ instabile (prove fatte, ve l’assicuro). Nonostante tutto, Go Canonical, go, io aspetto fiducioso ancora un po’!

This slideshow requires JavaScript.

Date di compleanno da Facebook nei contatti di Android

Compleanni nei contatti AndroidUna delle funzioni piu’ utili del telefono? Ricordarmi le dati di compleanno dei miei contatti. Una delle funzioni piu’ utili dei social network? Gli utenti stessi mettono le propria data di nascita nel loro profilo. Nonostante i contatti di Android abbiano un campo apposito per memorizzare la data di nascita (Add another field -> Events -> Birthday, di sicuro da Android 4.0, non so se anche versioni precedenti), la stessa applicazione dei contatti non ha funzioni di importazione automatica di queste informazioni da altre fonti.

Perche’ mettere le date di nascita nei contatti? Per tenere le informazioni aggregate (considero la rubrica il mio punto di contatto sociale primario) e perche’ Google Calendar, automaticamente, puo’ creare degli appuntamenti da queste date, che mi tornano comodi come promemoria.

EboBirthday: Crea un proprio database di compleanni, attingendo dai contatti del telefono, da Facebook, da un CSV ed altre fonti. La cosa estremamente comoda e’ che aggiorna anche i contatti della rubrica di Android con le date dei compleanni presi da Facebook, se i due contatti hanno lo stesso nome. Ha un widget con i prossimi compleanni, puo’ creare notifiche, non richiede la sottoscrizione a nessun servizio e non lascia background task attivi in memoria. Prevede dei workaround per funzionare anche con versioni molto datate di Android e puo’ creare dei reminder nel calendario dell’utente con dei giorni di anticipo configurabili a piacere rispetto al compleanno. La sincronia va lanciata manualmente, l’interfaccia non ha un’interfaccia aggiornatissima e non sincronizza le foto dei contatti Facebook con quelli Android. Link al Play Store.

UberSync for Facebook: Oltre ad aggiungere la data del compleanno dei contatti Facebook nella rubrica Android (basandosi sull’omonimia degli stessi o inserendo il Facebook ID nelle note di un contatto Android), questa applicazione sincronizza anche le foto dei contatti e gli status. Gestendo le funzioni di sincronia tramite l’Account Manager di Android, non ci sono servizi che rimangono attivi in background, nonostante la sincronia sia gestita in automatico dal sistema. Link al Play Store e codice sorgente dell’app.

Personalmente preferisco EboBirthday dato che ha un widget e le notifiche che mi fanno molto comodo per ricordarmi di fare gli auguri.

Un altro hackathon, un’altra bella esperienza da ricordare

HackItaly 2013“Se ci sono cose che senti come parte di te, e’ inutile combatterle o reprimerle, piuttosto dai loro corso, e troverai la felicita’”. Con questa autocitazione d’altri tempi in mente, dopo una pausa forzata durata quasi due anni, ho deciso che era il momento di sporcarsi nuovamente mani e piedi con il codice, perdere un bel po’ di ore di sonno, pensare a come realizzare un’idea infattibile in un tempo improponibile. E via, macchiva direzione HackItaly Camp.

Nessuna cronaca dell’evento, ma solo alcune considerazioni di varia natura.

La prima: perche’ lo fai? Questa e’ facile: perche’ abbiamo l’obbligo morale di vivere quanto piu’ possibile nel nostro stato di flow. E quando codo durante un hackathon, a me capita proprio questo. Totalmente perso nell’idea da implementare, irrimediabilmente assorbito nella bolla che l’evento crea per le 7/10/12/24 ore della sua durata, appassionatamente immerso in pensieri creativi. Avere gia’ chiaro quello che ti aspetta mentre le tue mani danzano, quasi da sole, su quello che stai ancora facendo. Solo possibilita’, qualche problema da risolvere che separa da queste, e la piu’ completa, disinteressata e coinvolgente gioa del fare. Fallire, perche’ tra la fretta, la stanchezza, i cambi di luna e le distrazioni, di errori ne fai tanti. Ma poco importa, perche’ si va ad un hackathon per immaginare, per creare, per divertirsi. Materia creativa allo stato grezzo, di colore bianco puro: tutto dipende dalle tue decisioni e dalle tue capacita’. E’ una delle piu’ belle palestre per crescere nella consapevolezza dei propri limiti.

La seconda: con chi lo fai? Con chi so capace di condividere questo tipo di approccio. Se poi sono amici di lunga data o ragazzi conosciuti sul momento, poco importa. La bella cosa dei dev, quelli veri, e’ che non fanno distinzioni di titoli, stato sociale, ruolo sul lavoro o esperienza. Se vedi che anche l’altro (o l’altra) ha quello sguardo furbetto di chi sa titillarsi nello sperimentare, compiacersi di aver fatto una cosa nuova sbattendo e risbattendoci il muso, preso dalla tecnologia e dalla voglia di metterci su le mani (se riconosci in lui, insomma, alcuni tratti tipici dell’essere nerd), tanto basta per essere subito amici.

La terza: come potresti farlo meglio? Come per ogni cosa, c’e’ sempre spazio per migliorare. Grande cruccio di questi hackathon cosi’ grandi (saremmo stati in pocomeno di 300) e’ la gestire della fase di presentazione di quanto realizzato. Pitch di 1/2 minuti, per rimanere nell’oretta e mezzo di tempo, purtroppo spesso vanificano le 24 ore di lavoro, possono banalizzare le cose fatte dai team e diluiscono la passione e lo sforzo che ci sono voluti per ottenerle. Vero che l’importante di un hackathon non e’ vincere, ma divertirsi, pero’ la condivisione del proprio hack rimane un tassello fondamentale di quel divertimento, almeno per me. Perche’ insegno qualcosa, perche’ imparo moltissimo dagli altri. E ancora non sono riuscito a trovare una buona soluzione di compromesso, anche negli eventi che ho realizzato io stesso, Android University Hackathon compreso.

Inoltre, proprio perche’ creare il tuo hack ti assorbe cosi’ tanto, c’e’ il rischio di chiudersi in un ermetismo da sviluppo. Per ovviare a questo problema, oltre ad organizzare attivita’ sociali durante l’evento (cena ed altro), si potrebbero anche dare dei “punti socialita’” ai team che si impegnano, in qualunque modo, a rendere l’intero evento piu’ social, piu’ condiviso.

La quarta: cosa ti riporti a casa? Ovviamente del gran divertimento, nuove avventure condivise con i miei amici, le riflessioni fatte fino ad ora e il fatto che la multidisciplinarita’ che scaturisce dal contatto con gli altri e la voglia di buttarsi vincono sempre. Perche’ un hackathon, alla fine, questo ti insegna: essere dannatamente focalizzati verso un’obiettivo creativo, con il sorriso pero’ sulle labbra, assieme ad altre persone. Grazie a FrancescaPaolo, Marco per questa avventura :)

Dalla prima email agli occhiali intelligenti, Universita’ di Pavia

Difficile pensare che sia tutto partito da un semplice messaggio trasmesso nella primitiva ragnatela del web. Eppure oggi abbiamo i social netwok, gli OpenData, e persino macchine in grado di guidarsi da sole. Un viaggio tra le più importanti rivoluzioni che l’informatica ha introdotto nella nostra vita quotidiana, senza tralasciare temi come privacy, community, cybercrime, e computer così piccoli da stare in un paio di occhiali.

(6 Giugno 2013, Universita’ di Pavia)

Google App Engine Code-on

Come creare una prima applicazione in Google App Engine usando il runtime Java e l’ambiente di sviluppo Eclipse. Slide dell’intervento su http://goo.gl/wGsLK

(13 Giugno 2013, Google Cloud Dev Conf in LUISS ENLABS a Roma)

Google Cloud Endpoints Code-on

i passi necessari per utilizzare i Google Cloud Endpoints su un’applicazione Google App Engine per reallizzare RESTful API. Slide dell’intervento su http://goo.gl/Dp9F2

(13 Giugno 2013, Google Cloud Dev Conf in LUISS ENLABS a Roma)