Smanettolandia

Spesso ci viene chiesto quali software e servizi utilizziamo nel nostro lavoro. Di seguito troverete un breve riassunto: la lista inizia con strumenti semplici - che usiamo per gestire email e documenti - e diventa via via più specifica sulle tecnologie alla base dei nostri prodotti.
Google Apps è alla base della nostra gestione aziendale, e lo utilizziamo davvero per tutto: email, messaggi istantanei e video conferenze, condivisione di documenti di ogni formato e collaborazione in tempo reale, per fare solo alcuni esempi. Senza tralasciare il fatto che tutte queste funzionalità sono disponibili anche per dipositivi mobili.

Utilizziamo Google Drive per tutta la documentazione, compresa la nostra gestione contabile. E pensiamo che Apps Script sia un elemento fondamentale per automatizzare molti passaggi.

Il vantaggio però non sta solo nella semplificazione dei processi, ma anche nei costi, perchè queste soluzioni ci permettono di risparmiare moltissimo rispetto alle alternative in commercio.
Oltre ad essere il browser più sicuro e veloce, Google Chrome fornisce strumenti di altissimo livello per lo sviluppo di applicazioni web.

Anche se nel corso dei nostri test utilizziamo tutti i browser principali, per azioni come il debugging o l'ottimizzazione di siti e applicazioni, ci sembra che nessuno strumento sia migliore di Chrome Development Tools.
BigQuery è uno strumento impagabile per ogni tipo di interrogazione, analisi statistica e generazione di dati. Raggiunge davvero un livello altissimo, riesce ad interrogare 1TB (Terabyte) di dati in 24 secondi!

Inoltre il command line tool di BigQuery - bq - è molto pratico, così come l'interfaccia web, agile e intuitiva. E non per ultimo, le interrogazioni possono essere lanciate direttamente da Apps Script!
La maggior parte dei nostri servizi web interni e dei nostri siti pubblici gira su Google App Engine. Lo utilizziamo per molti motivi: la facilità del processo di deployment, i componenti come l'auto-scale scheduler e Task Queues, e tanti altri.
App Engine ci permete di concentrarci sullo sviluppo dell'applicazione e delle sue funzionalità, invece di farci perdere tempo nella configurazione dei sistemi alla base.

Altri strumenti come AppStats e Testbed rendono ancora più veloci i processi di debug, test e misurazione di performance delle applicazioni.
Il nostro codice più datato non può purtroppo girare su Google App Engine. Per fortuna esiste AppFog! Si tratta di un'altro provider di Platform As A Service (PaaS), basato sulla technologia di CloudFoundry.

AppFog è anche partner di un buon numero di provider di infrastutture e questo permette di caricare un'applicazione in diversi continenti e diverse regioni sulla base di bisogni specifici.
Nei casi in cui nè App Engine nè AppFog ci soddisfano, ci salva Rackspace Cloud Servers! E' basato sulla tecnologia di OpenStack, e rende veramente semplice la gestione di server virtuali. Una delle caratterisiche che ci piace di più è la possibilità di creare snapshot senza far ripartire il server. Questo ci permette di effettuare aggiornamenti e manutenzione senza interruzione del servizio.
Altre due cose che ci piacciono: i prezzi davvero competitivi e Fanatical Support!
Google Drive è perfetto per la condivisione e la collaborazione, ma quando si tratta di gestire risorse all'interno di siti web o di un'applicazione, il nostro supporto è Cloud Storage. Decisamente molto veloce e affidabile.

Dispone di un'API molto semplice e ricca di funzionalità, ed in più Cloud Storage fornisce gsutil, un command line tool intuitivo, che abbiamo integrato con i nostri processi di deployment.
Closure Tools è lo strumento che usiamo per scrivere applicazioni JavaScript di alto livello. Il Compiler di Closure è il davvero il migliore per l'ottimizzazione di JavaScript. Non ci stupisce il fatto che molti tra i prodotti più famosi di Google siano stati scritti utilizzando Closure Library, che contiene un'immensa quantità di codice di qualità e ben testato, e funzionalità notevoli come ModuleManager, per citarne una delle tante.
Infine, usiamo anche Closure Templates per generare l'HTML dal lato client.
Ci siamo innamorati di Go! E non solo perchè il logo è così adorabile. Soprattutto perchè ci permette di creare applicazioni veloci ed efficienti con un bassissimo utilizzo di memoria, anche grazie al fatto di essere in grado di compilare applicazioni (web) direttamente come file eseguibili.

Ed è supportato su App Engine, una combinazione fantastica!

Go eccelle anche per la modularità, per il supporto della formattazione del codice e del testing integrati. Ma quello che apprezziamo di più sono i suoi concetti fondamentali. Siamo davvero contenti nel vederlo diffuso in molti enti ed aziende.
E non meno di Go, adoriamo Python! E' un linguaggio maturo, molto ben documentato e supportato da una bella community, e lo utilizziamo in quasi tutti nostri script di deployment. Quando fai qualcosa in Python funziona proprio come anticipato. Senza trucchi.

Utilizziamo Python anche per scrivere applicazioni web. Ad oggi esistono un numero altissimo di ottime librerie, che rendono il lavoro facile, veloce e molto divertente!
Un passo importante del processo di sviluppo delle nostre applicazioni è la revisione del codice. La funzione "pull requests" di GitHub non è male, ma preferiamo Rietveld perchè permette di visualizzare i diff in modalità side-by-side. Di solito utilizziamo direttamente la versione codereview.appspot.com.
Per l'hosting di codice privato usiamo Bitbucket di Atlassian, che con la sua recente ristrutturazione è diventato ancora meglio!

I progetti opensource stanno su Google Project Hosting e GitHub. I nostri sistemi di code versioning preferiti sono Git e Mercurial.