Questo post è una sessione di domande e risposte con Sara Robinson, Developer Advocate, e Maxwell Neely-Cohen, uno scrittore di Brooklyn che ha utilizzato l'API Cloud Speech-to-Text per acquisire le parole pronunciate durante un incontro di lettura di poesia e visualizzarle su uno schermo al fine di migliorare l'esperienza del pubblico.
Potresti parlarmi del problema di narrazione orale che stai cercando di risolvere?
Gli scrittori tendono a trascorrere molto tempo a eventi in cui gli autori leggono le loro opere ad alta voce di fronte al pubblico. Mi sono sempre chiesto se fosse possibile creare immagini dinamiche e reattive per una lettura dal vivo proprio come si fa per una performance musicale live. Non avevo in mente un design, un'estetica o un obiettivo specifico né pensavo che l'esperienza sarebbe stata necessariamente spettacolare, volevo semplicemente capire se fosse fattibile. Potrebbe funzionare o come potrebbe essere? Queste erano le mie domande. Anche se il risultato era sistematicamente molto semplice, l'invio di risultati speech-to-text a un dizionario ordinato in base al colore che le persone pensavano avessero le parole, ha finito per essere il perfetto test case per questo tipo di idea, oltre a essere molto divertente.
Di che cosa ti occupi?
Sono uno scrittore di romanzi e fiction vecchio stile, ma molte delle mie storie riguardano l'impatto sociale e culturale della tecnologia. Il mio primo romanzo è ambientato nella cultura di Internet e dei videogiochi, quindi ho sempre seguito e pensato allo sviluppo del software senza che fosse necessariamente parte della mia vita o della mia carriera. Quando ero giovane e frequentavo l'università, ho lavorato anche in molte performance e produzioni musicali professionali. Queste esperienze mi hanno permesso di avere una certa familiarità con hardware e software in ambito creativo e sono stati il motivo principale per cui mi sono sentito in grado di affrontare questo progetto. Ultimamente mi sono dedicato a piccoli progetti per cercare di instaurare un dialogo e una collaborazione maggiori tra il mondo letterario e quello della tecnologia. Penso che queste due culture abbiano molto da offrirsi.
Come ti sei imbattuto nell'API di Google Speech-to-Text e cosa l'ha resa adatta ad aggiungere elementi visivi alla poesia?
Abbiamo ricercato ogni possibile API e software speech-to-text esistente per trovare la soluzione più reattiva e che offrisse i minori tempi di ritardo possibili. Ne abbiamo considerate molte, ma alla fine abbiamo scelto Cloud Speech-to-Text, e ha funzionato perfettamente. Proprio perché l'API può restituire così rapidamente un risultato provvisorio, un'ipotesi e infine un'ipotesi finale aggiornata, si è rivelata ideale per questo progetto. Ci siamo trovati leggermente in difficoltà all'inizio ma, non appena abbiamo cominciato a utilizzare l'API, si è risolto tutto.
Come si svolgono queste letture di poesia? Potresti parlarmi un po' di CultureHub?
A giugno, durante la prima settimana del progetto, abbiamo dedicato quattro giorni allo sviluppo con Oren Shoham, un geniale studente ITP della NYU, e poi tre giorni al testing effettuato da alcuni scrittori. Ho semplicemente mandato un'email a un gruppo di amici (fortunatamente il gruppo include molti autori premiati) che sono stati così gentili da partecipare e gettarsi a capofitto nel progetto. Non avevamo idea di cosa avrebbe o non avrebbe funzionato, quindi è stato un processo piuttosto sperimentale.
A novembre, durante la seconda settimana del progetto, abbiamo lanciato l'API su Unity e un gruppo di giovani sviluppatori di giochi ha creato i prototipi di diversi progetti visivi per il sistema. Hanno trascorso quattro giorni a sfornare un'idea dopo l'altra e poi abbiamo organizzato un evento pubblico, ossia una lettura con i poeti Meghann Plunkett, Rhiannon McGavin, Angel Nafis e il drammaturgo Jeremy O. Harris, solo per vedere come si sarebbe comportato il progetto nel contesto di un evento. Entrambe le volte ho cercato di creare ambienti collaborativi per evitare di fare tutto da solo. Nell'ambito delle espressioni creative sperimentali, penso sia fondamentale ascoltare il maggior numero di punti di vista possibile. CultureHub è una collaborazione tra il famoso La MaMa Experimental Theatre Club e il Seoul Institute of the Arts. È costituito da una comunità artistica globale che supporta e cura diversi i tipi di opere utilizzando le tecnologie emergenti. Si distingue per i progetti in cui ha utilizzato la telepresenza in svariate modalità creative. È l'ambiente ideale per testare un'idea rivoluzionaria come questa, mai provata prima.
Come hai risolto questa problematica con Cloud Speech-to-Text? Hai qualche snippet di codice da condividere?
Nella versione iniziale abbiamo usato uno script Python che interagiva con l'API; il più grande cambiamento è stato adattarlo e ottimizzarlo per l'esecuzione pseudo-continuativa e quindi eseguire il feed dei risultati nell'NRC Word-Emotion Association Lexicon, un database creato dai computer scientist Saif Mohammad e Peter Turney. Abbiamo quindi inserito i risultati relativi a colore e testo in una patch Max/MSP che ha generato i risultati visivi.
La seconda versione utilizzava Node invece dello script Python, e Unity al posto di Max/MSP. È ora disponibile su GitHub.
Hai consigli per i nuovi sviluppatori che desiderano iniziare a utilizzare Cloud Speech-to-Text o il machine learning in generale?
Direi loro che, anche se non hanno esperienze di programmazione, se hanno un'idea, di seguirla. Creare ambienti collaborativi in cui i talenti creativi non tecnici possano collaborare con gli sviluppatori è innovativo e divertente di per sé. Penso che sia racchiuso un enorme valore nelle idee che non hanno necessariamente un'impronta o una prospettiva commerciale. Niente di ciò che volevo fare rappresentava una potenziale idea commerciale o qualcosa del genere, era solo un progetto puramente artistico realizzato con un suo perché.
Domande per Max? Puoi trovarlo su Twitter @nhyphenc e andare a vedere il repository GitHub per questo progetto qui.
Firebase è stato lanciato oltre sei anni e mezzo fa come database, ma da allora si è espanso fino a divenire una piattaforma di diciotto (18!!) prodotti. Quest'anno abbiamo annunciato una gamma di nuove funzionalità che ti aiutano a creare app migliori e a sviluppare ulteriormente la tua attività. Abbiamo inoltre infuso Firebase con una maggiore potenza di machine learning in modo da rendere le app più intelligenti e più collaudate, e in modo che Firebase possa soddisfare meglio le esigenze degli sviluppatori delle grandi imprese complesse.
Poiché la fine dell'anno è il momento ideale per compilare liste top-ten, volevamo concludere l'anno con la "Top Ten List of Firebase launches". Ma poi ci siamo resi conto che avevamo più di dieci prodotti di cui volevamo parlare, e non ci andava di favorirne solo alcuni. Ecco quindi la nostra lista 2018 dei "Tredici lanci Firebase senza uno specifico ordine perché sono tutti fantastici a modo loro". Buona lettura!
In occasione di Google I/O, abbiamo lanciato una delle funzionalità più interessanti del 2018: ML Kit for Firebase, uno SDK di machine learning per Android e iOS. ML Kit ti consente di aggiungere la potenza del machine learning alle tue app senza dover avere una laurea in reti neurali. Fornisce una serie di soluzioni pronte all'uso per eseguire attività come riconoscere il testo nelle immagini, etichettare oggetti nelle foto e rilevare volti. Consentirà inoltre di usare modelli personalizzati a chi ama creare i propri (in questo momento le reti neurali artigianali sono molto in voga tra i data scientist hipster).
Le notifiche sono un ottimo modo per far ritornare gli utenti latenti alla tua app, ma come comunichiamo con quelli che invece utilizzano attivamente l'app? Nel 2018 abbiamo lanciato Firebase In-App Messaging per aiutarti a inviare messaggi mirati e contestuali agli utenti che adoperano regolarmente l'app. I messaggi in-app sono un ottimo modo per incoraggiare l'esplorazione e il rilevamento delle app, e guidare gli utenti verso la scoperta di nuove funzionalità nel prodotto o verso un importante evento di conversione.
Noi di Firebase siamo grandi fan della creazione di script che ci semplifichino la vita, sia che tratti di automatizzare le attività comuni o eseguire una logica personalizzata. In questa ottica abbiamo lanciato tre nuove API REST che puoi adoperare per automatizzarti la vita (almeno dalla prospettiva di Firebase). L'API Firebase Management è ottima per automatizzare attività come la creazione di nuovi progetti, l'API Remote Config REST può essere utile per personalizzare il modo in cui aggiorni i valori di Remote Config e l'API Firebase Hosting può essere usata per caricare automaticamente determinati file sul tuo sito.
Recentemente StackBlitz e Glitch hanno utilizzato l'API Management per creare integrazioni che consentono di implementare progetti direttamente su Firebase Hosting. Avvia un progetto, scrivi il codice, fai clic su qualche pulsante et voilà! Il tuo progetto Firebase è implementato sul Web!
Ottenere delle buone prestazioni è uno dei fattori chiave per la creazione di ottime esperienze per l'utente. Firebase Performance Monitoring raccoglie automaticamente le metriche delle prestazioni dove più contano: nel mondo reale.
Quest'anno il monitoraggio delle prestazioni è passato dalla versione beta alla disponibilità generale. Lungo il percorso abbiamo aggiunto nel dashboard alcune nuove funzionalità utili come il feed dei problemi per evidenziare gli importanti problemi di prestazioni riscontrati dagli utenti. Abbiamo anche aggiunto il supporto della visualizzazione di sessione per la classe di rete e le tracce, che consente di analizzare più nel dettaglio la singola sessione di una traccia, in modo da poter visualizzare gli attributi e gli eventi che hanno causato uno specifico problema di prestazioni.
Abbiamo anche rilasciato Firebase Predictions ed è ora disponibile per il pubblico. Predictions adopera il machine learning per segmentare in modo intelligente gli utenti in base alla previsione del loro comportamento. Lungo il percorso abbiamo aggiunto indicatori d'integrità e criteri di valutazione a ogni previsione, in modo da poter comprendere meglio quanto sia affidabile una previsione, così come i dati utilizzati per realizzarla. Abbiamo anche integrato Predictions con BigQuery per ottenere un maggiore controllo sui dati.
Iniziare a utilizzare Predictions è facile come premere un pulsante nella console. Prevediamo che ti piacerà da morire (scusa la battuta)!
Ormai non ci ferma più nessuno! Anche Cloud Functions è passato alla disponibilità generale, insieme alla sua nuova versione di SDK. Il nuovo SDK aggiunge funzioni "callable" che rendono molto più semplice chiamare le funzioni del server dal client, soprattutto se la funzione richiede l'autenticazione.
Cloud Functions ha anche rilasciato la nuova libreria firebase-functions-test per semplificare le funzioni di testing delle unità. Questa libreria si occupa delle configurazioni e disinstallazioni necessarie, consentendo una facile simulazione dei dati di test. Quindi, oltre ai semplici test standalone, è ora possibile scrivere test che interagiscono con un progetto di sviluppo Firebase e osservare il successo delle action come le scritture del database.
firebase-functions-test
Nel 2018 Firebase Test Lab è diventato multipiattaforma grazie all'aggiunta del supporto per iOS. Ora puoi scrivere ed eseguire test su dispositivi iOS reali in esecuzione nei nostri data center. Test Lab supporta dieci modelli di iPhone e iPad che eseguono sette diverse versioni di iOS, tra cui iOS 12.
Test Lab ha anche lanciato una serie di miglioramenti per Robo, uno strumento che esegue test completamente automatizzati sui dispositivi Android. Testare i giochi ora è più semplice, grazie alle "monkey action" (che possono fare clic a caso sul tuo schermo) e ai loop di gioco (che eseguono action pregenerate dagli script). Ora puoi personalizzare Robo persino di più se devi accedere all'inizio della tua app o aggiungere testo intelligente a un campo di ricerca.
Continuando il tema del testing, nel 2018 abbiamo lanciato gli emulatori per Firestore e Realtime Database, in modo da poter testare più facilmente le regole di sicurezza e incorporarle in un ambiente di integrazione continua. Questi emulatori vengono eseguiti localmente e consentono di testare le regole di sicurezza offline prima di passare alla produzione. Abbiamo anche creato una libreria di testing per semplificare il codice di test.
Sin dall'inizio Cloud Functions ha integrato fortemente le metriche di utilizzo importanti con Stackdriver, il potente servizio di monitoraggio di Google Cloud. Per ottenere un'integrazione persino maggiore, abbiamo collegato il Realtime Database a Stackdriver. Ora puoi visualizzare ancora più metriche di quelle fornite dalla Console Firebase, come il carico ripartito in base al tipo di operazione e le informazioni sui byte scaricati.
La vera potenza di questa integrazione è la capacità di impostare avvisi relativi a metriche o errori in modo da poter individuare e rispondere ai problemi prima che i clienti li notino.
A volte i dashboard della Console Firebase non offrono il livello di granularità o specificità dei data desiderata. È qui che entrano in gioco BigQuery, il data warehouse di Google Cloud, e Data Studio, lo strumento di visualizzazione dei dati di Google Cloud.
È possibile esportare i dati di Analytics in BigQuery già da tempo, ma quest'anno abbiamo aggiunto le integrazioni con Predictions e Crashlytics, in modo da poter esportare ancora più dati Firebase in un unico warehouse centrale. Ulteriori informazioni su come utilizzare Firebase e BigQuery insieme.
Cloud Firestore è il database di nuova generazione che offre molte delle funzionalità, che apprezzi in Realtime Database, combinate alla scalabilità e complessità di Google Cloud Platform. Nel corso del 2018 abbiamo lanciato una serie di miglioramenti di Firestore per renderlo più adatto alle imprese complesse.
Abbiamo anche aggiunto alcune funzionalità interessanti come l'ampliamento del supporto offline per l'SDK Web da una sola scheda a schede multiple del browser. Abbiamo lanciato un migliore supporto per la ricerca di documenti in base al contenuto dei loro array nonché svariate nuove posizioni per l'archiviazione dei dati di Firestore: Francoforte, Germania e Carolina del Sud negli Stati Uniti (e ne aggiungeremo altre nel 2019).
Per qualsiasi team, la Console Firebase è un elemento cruciale nel flusso di lavoro di Firebase. Quest'anno ci siamo impegnati moltissimo per renderla persino migliore. Riportiamo qui alcune delle nuove funzionalità.
Queste funzionalità ti rendono più produttivo e protetto nell'ambito della sicurezza e delle prestazioni dell'app. Non vediamo l'ora di aggiungere altre funzionalità alla console nel 2019!
È già da un po' che sentiamo dire che ti piacerebbe avere un'opzione per ottenere il supporto al livello aziendale di Firebase. Per rispondere a questa richiesta, abbiamo aggiunto il supporto per Firebase ai nostri pacchetti di supporto Google Cloud Platform (GCP), ora disponibili in versione beta.
Se hai già un pacchetto di supporto GCP a pagamento, la nostra versione beta ti consentirà di trovare risposte alle tue domande relative a Firebase sul canale di supporto GCP, senza costi aggiuntivi. Quando il nuovo supporto passerà alla disponibilità generale, includerà tempi di risposta target, gestione tecnica degli account (per il livello aziendale) e altro ancora. Ulteriori informazioni sul supporto GCP.
Se desideri mantenere il supporto di Firebase al livello gratuito, non preoccuparti: non abbiamo in programma di apportare modifiche all'attuale modello di supporto. Continua a rivolgerti al nostro fantastico team di supporto per qualsiasi esigenza o domanda!
È stato un anno eccezionale, e siamo pronti a ripartire alla grande a gennaio. Ti auguriamo un nuovo anno pieno di serenità. E se dovesse essere pieno anche di app mobili e Web, speriamo che userai Firebase! Buon lavoro!
Pubblicato da Fei Ye, Software Engineer e Kazushi Nagayama, Ninja Spamologist
Le classificazioni e le recensioni di Google Play sono estremamente importanti per aiutare gli utenti a decidere quali app installare. Sfortunatamente le recensioni false e fuorvianti possono minare la fiducia degli utenti. Per noi a Google Play preservare questa fiducia è una priorità, pertanto lavoriamo continuamente per assicurarci che le classificazioni e le recensioni mostrate nel nostro store non vengano manipolate.
Ci sono diversi modi in cui le classificazioni e le recensioni possono violare le nostre linee guida per sviluppatori:
Quando ce ne accorgiamo, interveniamo sull'app stessa, oltre che sulla recensione o classificazione in questione.
Nel 2018 i team di Google Play Trust & Safety hanno implementato un sistema che unisce l'intelligenza umana e il machine learning per rilevare e far rispettare le norme relative alle violazioni di classificazioni e recensioni. Un team di ingegneri e analisti monitora attentamente e analizza le attività sospette in Play e migliora regolarmente la precisione e il richiamo del modello. Inoltre, chiediamo regolarmente a revisori esperti di verificare le decisioni prese dai nostri modelli per garantirne la qualità.
È un lavoro enorme. Per avere un'idea del volume gestito, ecco i dati relativi a una delle ultime settimane:
Il nostro team può fare molto, ma abbiamo bisogno del tuo aiuto per far sì che Google Play rimanga un luogo sicuro e affidabile per app e giochi.
Se sei uno sviluppatore, puoi aiutarci nel seguente modo:
Esempio di violazione: le classificazioni incentivate non sono consentite
Se sei un utente, puoi seguire queste semplici linee guida:
Infine, se trovi classificazioni e recensioni negative su Google Play, aiutaci inviandoci il tuo feedback! Gli utenti possono contrassegnare la classificazione come "Spam" e gli sviluppatori possono inviare il loro feedback nella Play Console.
Tooltip per contrassegnare la recensione come spam.
Grazie per averci aiutato a mantenere Google Play sicuro e affidabile, per continuare a scoprire alcuni dei migliori giochi e app al mondo.
Quanto ti è stato utile questo post?
★ ★ ★ ★ ★
Tutti noi del team Firebase ci siamo divertiti a giocare con il progetto CoreML-in-ARKit di Hanley Weng. Consente di visualizzare le etichette 3D sulle immagini rilevate in una scena. Anche se il rilevamento su dispositivo fornisce risposte rapide, abbiamo voluto creare una soluzione che offrisse la velocità del modello su dispositivo abbinata all'accuratezza delle soluzioni basate su cloud. Questo è esattamente ciò che abbiamo ottenuto con il progetto MLKit-ARKit. Continua a leggere per sapere nel dettaglio come abbiamo raggiunto questo risultato!
ML Kit for Firebase è un SDK per dispositivi mobili che sfrutta l'esperienza di machine learning (ML) Google Cloud nelle app per Android e iOS grazie a un pacchetto potente, ma facile da usare. Include API Base di semplice utilizzo e offre anche la possibilità di adoperare i propri modelli TFLite personalizzati.
ARKit è il framework Apple che combina il motion tracking del dispositivo, l'acquisizione della scena della telecamera, l'elaborazione avanzata delle scene e la convenienza del display per semplificare la creazione di un'esperienza AR. Puoi utilizzare queste tecnologie per creare molti tipi di esperienze AR sfruttando la fotocamera posteriore o frontale di un dispositivo iOS.
In questo progetto i frame ARKit passano dalla fotocamera posteriore a una coda. ML Kit li elabora per rilevare gli oggetti presenti in quel frame.
Quando l'utente tocca lo schermo, ML Kit restituisce l'etichetta rilevata con la massima confidenza. Quindi viene creato il testo in un fumetto 3D e aggiunto alla scena dell'utente.
ML Kit rende il machine learning facile per tutti gli sviluppatori di dispositivi mobili, indipendentemente dal loro livello di esperienza. All'interno di ML Kit è possibile adoperare i propri modelli TFLite per i casi d'uso più avanzati, ma per quelli più comuni è sufficiente implementare una delle API Base di semplice utilizzo. Queste API sono ideali per casi d'uso come il riconoscimento del testo, l'etichettatura delle immagini, il rilevamento dei volti e altro, e sono supportate dai modelli addestrati da Google Cloud. Nel nostro esempio utilizzeremo l'etichettatura delle immagini.
Le API Base sono disponibili in due versioni: su dispositivo e basate su cloud. Le API su dispositivo possono essere adoperate gratuitamente ed essere eseguite localmente, mentre quelle basate su cloud offrono una precisione maggiore e risposte più accurate. Le API Vision basate su cloud sono gratuite per le prime 1000 chiamate all'API, dopodiché sono a pagamento. Forniscono la potenza dei grandi modelli delle API di Google Cloud Vision.
Utilizziamo l'API di etichettatura delle immagini su dispositivo ML Kit per ottenere un feed live dei risultati che consenta di mantenere una frequenza costante di fotogrammi a 60 fps. Se l'utente tocca lo schermo, viene attivata una chiamata asincrona all'API di etichettatura delle immagini Cloud con l'immagine corrente. Quando riceviamo una risposta da questo modello più accurato, aggiorniamo immediatamente l'etichetta 3D. Pertanto, anche se eseguiamo in modo continuativo l'API su dispositivo e ne utilizziamo i risultati come fonte iniziale di informazioni, l'API Cloud, dotata di maggiore accuratezza, viene chiamata on-demand e i risultati che fornisce eventualmente sostituiscono l'etichetta su dispositivo.
Mentre l'API su dispositivo è in tempo reale con tutte le elaborazioni che avvengono localmente, l'API Cloud Vision effettua una richiesta di rete nel backend di Google Cloud sfruttando un modello più grande e più accurato. Dato che consideriamo questa risposta più precisa, nella nostra app sostituiamo l'etichetta fornita dall'API su dispositivo con il risultato dell'API Cloud Vision appena ricevuto.
1. Clonare il progetto
$ git clone https://github.com/FirebaseExtended/MLKit-ARKit.git
2. Installare i pod e aprire il file .xcworkspace per vedere il progetto in Xcode
$ cd MLKit-ARKit
$ pod install --repo-update
$ open MLKit-ARKit.xcworkspace
GoogleService-Info.plist
Info.plist
A questo punto l'app dovrebbe funzionare utilizzando il riconoscimento su dispositivo.
★ La funzione di rilevamento delle etichette Cloud è ancora gratuita per i primi 1000 utilizzi mensili. Fai clic qui per ulteriori dettagli sui prezzi.
A questo punto, l'app dovrebbe aggiornare le etichette con risultati più precisi ottenuti dall'API Cloud Vision.
Il cloud computing si sta evolvendo su una scala e con una velocità difficili da seguire. Infatti sembra quasi che ogni settimana un fornitore di cloud pubblico annunci una nuova funzionalità per eseguire le applicazioni e archiviare i dati in modo più scalabile, affidabile e sicuro. Non è sempre facile capire da dove iniziare.
Il team di Google Cloud Professional Services è stato creato per aiutare i clienti a gestire le diverse esigenze relative al cloud. Lungo il percorso abbiamo imparato a riconoscere ciò che può mettere in crisi un'organizzazione oltre a ciò che invece può determinarne il successo. Recentemente abbiamo riscontrato un cambiamento nei risultati che i nostri clienti vogliono ottenere con il cloud. Per i primi 10 anni, il cloud veniva adottato principalmente per iniziative tattiche di riduzione dei costi, quindi per creare il cosiddetto "mess for less" nel cloud. Invece negli ultimi anni i nostri clienti hanno iniziato a porci domande molto più importanti, più strategiche e persino visionarie: "come posso utilizzare il machine learning per fornire un servizio migliore ai clienti?", "come posso pianificare un inventario predittivo?" oppure "come posso abilitare un piano tariffario dinamico?".
Questi sono i tipi di domande che, qui in Google, ci entusiasmano e ci stimolano ad aiutarti a trovare le risposte giuste. Ma arrivare al punto in cui un'organizzazione possa davvero svilupparsi nel cloud, spesso richiede una trasformazione completa e profonda. Può essere una pillola amara da mandare giù. Se tu sei l'unico a guidare questa trasformazione, essere in grado di comunicare il tuo piano in maniera semplice e logica può essere fondamentale per ispirare fiducia e trasmettere la tua visione.
Questi e molti altri sono i motivi per cui abbiamo sviluppato il Google Cloud Adoption Framework, che è basato sulla nostra esperienza con i clienti aziendali e può aiutarti a determinare dove ti trovi oggi nel tuo percorso verso il cloud e dove vorresti arrivare.
Nonostante la vasta gamma di informazioni disponibili nel nostro framework, desideriamo condividerne una in particolare: la transizione al cloud consiste nel trovare il giusto equilibrio.
Nella nostra base di clienti abbiamo visto alternarsi molte volte due tipi di culture aziendali. Ad esempio, molti dei nostri clienti nativi del cloud hanno una predisposizione all'azione. Svolgono molti compiti bene: autosufficienza nel mettere i carichi di lavoro in produzione, team altamente collaborativi, apprendimento e sperimentazione continui, solo per citarne alcuni. Ma sulla scia di questo desiderio di agire rapidamente, alcuni sottovalutano l'importanza di creare dei guardrail che limitino l'inevitabile espansione incontrollata di dati e risorse di calcolo. Questa omissione non solo fa salire il costo mensile dell'hosting del cloud, ma porta anche a problemi di sicurezza e riservatezza dei dati a lungo termine. In questo caso, le aziende hanno favorito la velocità a breve termine rispetto alla sostenibilità a lungo termine.
Il contrario può essere vero per molte imprese non esperte del cloud. Spesso gravitano verso il replicare la loro comprovata governance e il loro modello operativo nel cloud, impiegando molto tempo a progettare processi e norme (che sono importanti) e troppo poco invece a trasferire i carichi di lavoro veri e propri nel cloud. Senza carichi di lavoro di produzione, non sviluppano l'esperienza necessaria per gestire casi d'uso sempre più complessi e business-critical. Se non ottengono i risultati desiderati sin dall'inizio, possono essere riluttanti a investire ulteriormente e poi perdono la spinta necessaria per procedere.
L'ideale è bilanciare la velocità del cambiamento sul fronte delle persone, dei processi e della tecnologia. In tal modo puoi imparare in modo continuativo, condurre in modo efficace, scalare in modo efficiente e proteggere il tuo ambiente in modo completo, ossia adottare le quattro funzionalità che riteniamo contribuiscano al successo nel cloud.
Queste sono solo alcune delle informazioni e delle best practice che desideriamo condividere per aiutarti a iniziare. Per saperne di più, scarica il white paper.
Pubblicato da Brian Claire Young e Shawn Willden di Android Security e Frank Salim di Google Pay
Android Keystore fornisce agli sviluppatori di applicazioni un set di strumenti crittografici progettati per proteggere i dati degli utenti. Keystore sposta le primitive crittografiche disponibili nelle librerie software dal sistema operativo Android a un hardware sicuro. Le chiavi sono protette e utilizzate solo all'interno dell'hardware sicuro per tutelare i segreti delle applicazioni dalle varie forme di attacchi. Keystore offre la possibilità di specificare le restrizioni relative alle applicazioni su come e quando utilizzare le chiavi.
Android Pie introduce nuove funzionalità per Keystore. Nel nostro post descriveremo due di queste nuove funzionalità. La prima abilita le restrizioni sull'utilizzo delle chiavi in modo da proteggere le informazioni sensibili. La seconda facilita l'utilizzo sicuro delle chiavi proteggendo il materiale delle chiavi dall'applicazione o dal sistema operativo.
A volte un'applicazione mobile riceve dati ma non ha bisogno di accedervi immediatamente se l'utente non utilizza il dispositivo in quel momento. Le informazioni sensibili inviate all'applicazione quando lo schermo del dispositivo è bloccato devono rimanere protette finché l'utente non esegue l'accesso. Android Pie risolve questo problema introducendo le chiavi crittografiche associate a Keyguard. Quando lo schermo è bloccato, le chiavi possono essere utilizzate per le operazioni di crittografia o verifica, ma non sono disponibili per la decrittografia o la firma. Se in quel momento il dispositivo è bloccato con un PIN, una sequenza o una password, qualsiasi tentativo di utilizzare queste chiavi si tradurrà in un'operazione non valida. Le chiavi associate a Keyguard proteggono i dati dell'utente se il dispositivo è bloccato e sono disponibili solo quando l'utente ne ha bisogno.
L'associazione a Keyguard e l'associazione all'autenticazione si comportano in modi simili, eccetto per una cosa: l'associazione a Keyguard collega la disponibilità delle chiavi direttamente allo stato di blocco dello schermo, mentre quella dell'autenticazione utilizza un timeout costante. Con l'associazione a Keyguard, le chiavi non sono disponibili se il dispositivo è bloccato e divengono disponibili solo quando l'utente sblocca il dispositivo.
Vale la pena notare che l'associazione a Keyguard è applicata dal sistema operativo, non da un hardware sicuro. Ciò avviene perché l'hardware sicuro non ha modo di sapere quando lo schermo è bloccato. Le funzionalità di protezione di Android Keystore imposte dall'hardware, come l'associazione all'autenticazione, possono essere combinate con l'associazione a Keyguard per ottenere un livello ancora più elevato di sicurezza. Inoltre, poiché l'associazione a Keyguard è una funzionalità del sistema operativo, è disponibile su qualsiasi dispositivo che esegua Android Pie.
Le chiavi per qualsiasi algoritmo supportato dal dispositivo possono essere associate a Keyguard. Per generare o importare una chiave associata a Keyguard, basta chiamare setUnlockedDeviceRequired(true) sull'oggetto builder KeyGenParameterSpec o KeyProtection durante la generazione o l'importazione della chiave.
Secure Key Import è una nuova funzionalità di Android Pie che consente alle applicazioni di eseguire il provisioning delle chiavi esistenti all'interno di Keystore in modo più sicuro. L'origine della chiave, un server remoto che può trovarsi in un data center on-premise o nel cloud, crittografa la chiave sicura utilizzando una chiave di wrapping pubblica dal dispositivo dell'utente. La chiave crittografata nel formato SecureKeyWrapper, che contiene anche una descrizione dei modi in cui è possibile utilizzare la chiave importata, può essere decrittografata solo nell'hardware Keystore appartenente allo specifico dispositivo che ha generato la chiave di wrapping. Le chiavi sono crittografate in transito e rimangono in modalità opaca per l'applicazione e il sistema operativo, ossia sono disponibili solo all'interno dell'hardware protetto in cui vengono importate.
Secure Key Import è utile negli scenari in cui un'applicazione intende condividere una chiave segreta con il dispositivo Android ma vuole impedire che venga intercettata o lasci il dispositivo. Google Pay utilizza Secure Key Import per fornire alcune chiavi sui telefoni Pixel 3 e impedire che queste ultime vengano intercettate o estratte dalla memoria. Sono inoltre disponibili diversi casi d'uso aziendali, come le chiavi di crittografia S/MIME, che vengono recuperate dal Certificate Authorities Escrow in modo che la stessa chiave possa essere utilizzata per decrittografare email su dispositivi multipli.
Per usufruire di questa funzionalità, consulta questo articolo sull'addestramento. Secure Key Import è una funzionalità hardware sicura e pertanto è disponibile solo su determinati dispositivi Android Pie. Per scoprire se il tuo dispositivo la supporta, le applicazioni possono generare un KeyPair con PURPOSE_WRAP_KEY.
Allora... hai realizzato un'Action che offre ai tuoi utenti un'esperienza meravigliosa. L'unico problema è che è disponibile solo per coloro che parlano la lingua in cui è stata scritta. Non stai sfruttando l'opportunità di mettere a disposizione ciò che hai realizzato a un maggior numero di utenti. Come fare allora per far arrivare la tua Action a tutti? Localizzandola!
Che cos'è la localizzazione?
Con localizzazione si intende la personalizzazione delle esperienze offerte dalla tua Action nelle varie lingue e varianti linguistiche. Di seguito sono riportati alcuni esempi di frasi di saluto in diverse lingue per un'Action GDG San Francisco:
“Welcome to GDG San Francisco. I can tell you about … ”
“Benvenuto a GDG San Francisco. Posso darti informazioni … ”
“Bienvenidos a GDG San Francisco. Puedo contarte sobre … ”
“Willkommen bei der GDG San Francisco. Ich kann dir mehr über unsere … ”
Scopri quali lingue e varianti linguistiche sono attualmente supportate da Actions on Google.
Motivi per localizzare
Come localizzare la tua Action
Puoi trovare informazioni su come localizzare la tua Action nei documenti, organizzati di seguito affinché tu possa utilizzarli come guida per le Action che utilizzano Dialogflow e un webhook (consulta questo codice di esempio sul tipo di progetto a cui mi riferisco).
Questa è la parte che richiede più tempo, ma è la più importante. Idealmente, il testo deve essere tradotto da madrelingua che hanno testato la tua Action, in modo che possano avere un'idea della persona dell'Action.
3. Aggiorna il codice affinché supporti più lingue. Utilizza una libreria client che supporti i18n (internazionalizzazione). Esistono molte librerie diverse che la supportano per diversi framework, scegli quella più adatta a te.
4. Aggiungi nuove lingue all'agente Dialogflow tramite la console di Dialogflow
5. Aggiungi lingue alla console Actions on Google
6. Prova l'Action nella console
7. Aggiorna l'Action sulla console aggiungendo le informazioni sulla directory tradotte per ogni lingua:
8. Invia per il rilascio!
Può sembrare molto lavoro, ma una volta tradotta la tua Action in una prima lingua, quelle successive sono una passeggiata! Dedicare del tempo ad ampliare la tua Action in più lingue consente a più utenti di utilizzarla!
Desideri maggiori informazioni? Vai alla community Actions on Google per discutere di questo argomento con altri sviluppatori. Partecipa al programma della community degli sviluppatori Actions on Google per ricevere 200 $ in credito mensile con Google Cloud e una t-shirt dell'Assistente alla pubblicazione della tua prima app.