Sessione "Fun with Machine Translation APIs" tenuta al DotNetCmpus 2012.
Microsoft Translator è il frutto del reparto ricerca e sviluppo Microsoft che permette, tramite una serie di API multi protocollo, di fornire ai nostri utenti un servizio di traduzione automatica. La sessione è dedicata alla scoperta delle funzionalità e degli scenari supportati da questa innovativa piattaforma di traduziuone automatica. Durante la sessione si cercherà di dare un quadro preciso e puntuale di quando usare e quando non utilizzare un meccanismo di traduzione automatica.
I servizi offerti dalla piattaforma BING consentono di realizzare facilmente applicazioni per Windows 8.1 moderne ed evolute. Le funzionalità di Speech Recognition, ad esempio, consentono di fornire all'utente un diverso modo per interagire con la nostra applicazione mentre le funzionalità infrastrutturali di App Linking ci permettono di integrare la nostra applicazione all'interno dei risultati della Smart Search di Windows 8.1, consentendoci di essere più visibili e, quindi, di avere un maggior successo.
Slide della sessione "BING e Windows Store App" tenuta al DotNetCampus 2014 a Roma il 10/05/2014
Nel corso di queste poche righe vedremo quindi come sia possibile e semplice mettere SugarCRM proprio “dentro” Liferay. Ipotizzando uno scenario dove Liferay implementa un portale operativo da cui è possibile accedere a informazioni e procedure di un’ipotetica azienda, non sarebbe una cosa fuori dal comune, consentire l’accesso al CRM direttamente dal portale senza essere obbligati a dover aprire una nuova finestra del browser evitando anche la ripetizione dell’autenticazione.
I servizi offerti dalla piattaforma BING consentono di realizzare facilmente applicazioni per Windows 8.1 moderne ed evolute. Le funzionalità di Speech Recognition, ad esempio, consentono di fornire all'utente un diverso modo per interagire con la nostra applicazione mentre le funzionalità infrastrutturali di App Linking ci permettono di integrare la nostra applicazione all'interno dei risultati della Smart Search di Windows 8.1, consentendoci di essere più visibili e, quindi, di avere un maggior successo.
Slide della sessione "BING e Windows Store App" tenuta al DotNetCampus 2014 a Roma il 10/05/2014
Nel corso di queste poche righe vedremo quindi come sia possibile e semplice mettere SugarCRM proprio “dentro” Liferay. Ipotizzando uno scenario dove Liferay implementa un portale operativo da cui è possibile accedere a informazioni e procedure di un’ipotetica azienda, non sarebbe una cosa fuori dal comune, consentire l’accesso al CRM direttamente dal portale senza essere obbligati a dover aprire una nuova finestra del browser evitando anche la ripetizione dell’autenticazione.
Utilizziamo il Bot Framework per realizzare il nostro primo Bot utilizzabile sulle maggiori piattaforme di Messaging (facebook, telegram, skype, slack e molto altro) e con la potenza dei cognitive rendiamo in grado di analizzare e reagire alle immagini che invieeremo.
Nel corso di quest’articolo vedremo come sia possibile sfruttare il Service Builder (Liferay Inc., 2014) per creare dei servizi da esporre all’esterno non direttamente collegati all’entità gestiste dallo specifico plugin.
Quello che vogliamo ottenere è quindi un servizio personalizzato chiamato Custom Users Service disponibile pubblicamente e che sfrutti i servizi core del portale. In questo particolare scenario vogliamo fare in modo che il servizio Custom Users Service, esponga un metodo che ritorni al consumer del servizio, la lista di utenti taggati con un determinato tag (Liferay Inc., 2014).
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Massimo Caliman
Introduzione a Google App Engine:Cosa è Google App Engine,Linguaggi di programmazione supportati
L'ambiente di Runtime,Static File Servers
Datastore,Services,Namespaces,Google Accounts, OpenID, e OAuth,Task Queues e Cron Jobs,Developer Tools,Administration Console.
Slide utilizzate durante l'intervento sulle Progressive Web App e le Trusted Web Activities applicate a Wordpress e Woocommerce.
Trovate informazioni più precise sull'argomento su https://2019.catania.wordcamp.org/session/progressive-web-app-e-twa/
e sugli articoli https://www.francescogiammanco.it/progressive-web-app-lighthouse/
e https://www.francescogiammanco.it/trasformare-un-sito-in-twa/
In questo speech esploreremo le REST API più interessanti e curiose pubblicamente disponibili. Dopo una introduzione utile a fissare concetti di base e prerogative, vedremo come “consumarle” con Delphi costruendo accattivanti applicazioni client.
Creare una Progressive Web App in Angular è un processo semplice e potente. Vediamone tutte le caratteristiche messe a disposizione dal famoso framework frontend, per rendere le nostre Single Page Application pronte per lavorare offline, ricevere notifiche e tanto altro!
Repository GitHub: https://github.com/fsciuti/ng-pwa-conf-demo
Il Serverless Computing è l'ultima frontiera della rivoluzione "cloud" della programmazione ed enfatizza ulteriormente la produttività caratteristica delle offerte PaaS. Azure Functions è la soluzione di Serverless Computing integrata in Azure, con cui poter raggiungere rapidamente l'obiettivo di organizzare la propria applicazione a microservizi, o di integrarsi in maniera flessibile con applicazioni esterne, senza preoccuparsi dell'infrastruttura sottostante. Azure Functions Deep Dive - Giorgio Di Nardo ASP.NET Core with Azure Functions - Luca Congiu
SugarCRM REST API: Un’applicazione in appena dieci minutiAntonio Musarra
Realizzare un’applicazione (semplice) HTML 5 (costruita veramente in dieci minuti) che interagisca con il sistema SugarCRM sfruttando le API REST.
Con gli strumenti adeguati abbiamo avuto modo di costatare come in questi ultimi anni in particolare sia divenuto semplice e quasi immediato realizzare applicazioni web, che interagiscono con servizi prettamente di tipo REST per attingere ai dati. L’utilizzo di framework commisurati al progetto influisce positivamente sul risparmio di tempo necessario per l’implementazione, non considerando ovviamente il tempo necessario per l’apprendimento dell’uso dello strumento.
In this meeting we will face a very known but often overlooked aspect, namely the use of HTTPS. Many developers still think that the use of HTTPS is reserved for important sites and that for simpler things, such as a site consisting of a few static pages, it's not worth it. We will first try to dispel this myth, showing how much damage can be done using the HTTP pages of a simple static site, and then we will show how it is possible to use the free SSL certificates of Let's Encrypt to create HTTPS services without spending a fortune.
Utilizziamo il Bot Framework per realizzare il nostro primo Bot utilizzabile sulle maggiori piattaforme di Messaging e con la potenza dei cognitive rendiamo in grado di analizzare e reagire alle immagini che invieremo
Empower every Azure Function to achieve more!!Massimo Bonanni
The Azure Functions seem easy to use but what if our business scenario cannot be implemented using one of the "default" triggers or bindings? "Extension" is the keyword in this case! In this session, we see how to enhance our functions with custom triggers and custom bindings to make the most of the power of Serverless.
Session delivered at ServerlessDay Warsaw on 21/10/2021.
Durable Functions vs Logic App : la guerra dei workflow!!Massimo Bonanni
Hai la necessità di implementare un workflow o un integrazione tra servizi?
Ti serve scalabilità e non vuoi preoccuparti degli aspetti infrastrutturali?
Non sai da dove iniziare?
Inizia da questa sessione! Il serverless è la risposta per la scalabilità e l'astrazione infrastrutturale, ma per l'aspetto tecnologico puoi scegliere tra Durable Functions e Logic App. Questa sessione ti mostrerà pro e contro di entrambe le tecnologie fornendoti gli strumenti necessari per una scelta oculata.
Sessione del meetup #PitchOnline di #Coding del 21/07/2021
Utilizziamo il Bot Framework per realizzare il nostro primo Bot utilizzabile sulle maggiori piattaforme di Messaging (facebook, telegram, skype, slack e molto altro) e con la potenza dei cognitive rendiamo in grado di analizzare e reagire alle immagini che invieeremo.
Nel corso di quest’articolo vedremo come sia possibile sfruttare il Service Builder (Liferay Inc., 2014) per creare dei servizi da esporre all’esterno non direttamente collegati all’entità gestiste dallo specifico plugin.
Quello che vogliamo ottenere è quindi un servizio personalizzato chiamato Custom Users Service disponibile pubblicamente e che sfrutti i servizi core del portale. In questo particolare scenario vogliamo fare in modo che il servizio Custom Users Service, esponga un metodo che ritorni al consumer del servizio, la lista di utenti taggati con un determinato tag (Liferay Inc., 2014).
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Massimo Caliman
Introduzione a Google App Engine:Cosa è Google App Engine,Linguaggi di programmazione supportati
L'ambiente di Runtime,Static File Servers
Datastore,Services,Namespaces,Google Accounts, OpenID, e OAuth,Task Queues e Cron Jobs,Developer Tools,Administration Console.
Slide utilizzate durante l'intervento sulle Progressive Web App e le Trusted Web Activities applicate a Wordpress e Woocommerce.
Trovate informazioni più precise sull'argomento su https://2019.catania.wordcamp.org/session/progressive-web-app-e-twa/
e sugli articoli https://www.francescogiammanco.it/progressive-web-app-lighthouse/
e https://www.francescogiammanco.it/trasformare-un-sito-in-twa/
In questo speech esploreremo le REST API più interessanti e curiose pubblicamente disponibili. Dopo una introduzione utile a fissare concetti di base e prerogative, vedremo come “consumarle” con Delphi costruendo accattivanti applicazioni client.
Creare una Progressive Web App in Angular è un processo semplice e potente. Vediamone tutte le caratteristiche messe a disposizione dal famoso framework frontend, per rendere le nostre Single Page Application pronte per lavorare offline, ricevere notifiche e tanto altro!
Repository GitHub: https://github.com/fsciuti/ng-pwa-conf-demo
Il Serverless Computing è l'ultima frontiera della rivoluzione "cloud" della programmazione ed enfatizza ulteriormente la produttività caratteristica delle offerte PaaS. Azure Functions è la soluzione di Serverless Computing integrata in Azure, con cui poter raggiungere rapidamente l'obiettivo di organizzare la propria applicazione a microservizi, o di integrarsi in maniera flessibile con applicazioni esterne, senza preoccuparsi dell'infrastruttura sottostante. Azure Functions Deep Dive - Giorgio Di Nardo ASP.NET Core with Azure Functions - Luca Congiu
SugarCRM REST API: Un’applicazione in appena dieci minutiAntonio Musarra
Realizzare un’applicazione (semplice) HTML 5 (costruita veramente in dieci minuti) che interagisca con il sistema SugarCRM sfruttando le API REST.
Con gli strumenti adeguati abbiamo avuto modo di costatare come in questi ultimi anni in particolare sia divenuto semplice e quasi immediato realizzare applicazioni web, che interagiscono con servizi prettamente di tipo REST per attingere ai dati. L’utilizzo di framework commisurati al progetto influisce positivamente sul risparmio di tempo necessario per l’implementazione, non considerando ovviamente il tempo necessario per l’apprendimento dell’uso dello strumento.
In this meeting we will face a very known but often overlooked aspect, namely the use of HTTPS. Many developers still think that the use of HTTPS is reserved for important sites and that for simpler things, such as a site consisting of a few static pages, it's not worth it. We will first try to dispel this myth, showing how much damage can be done using the HTTP pages of a simple static site, and then we will show how it is possible to use the free SSL certificates of Let's Encrypt to create HTTPS services without spending a fortune.
Utilizziamo il Bot Framework per realizzare il nostro primo Bot utilizzabile sulle maggiori piattaforme di Messaging e con la potenza dei cognitive rendiamo in grado di analizzare e reagire alle immagini che invieremo
Empower every Azure Function to achieve more!!Massimo Bonanni
The Azure Functions seem easy to use but what if our business scenario cannot be implemented using one of the "default" triggers or bindings? "Extension" is the keyword in this case! In this session, we see how to enhance our functions with custom triggers and custom bindings to make the most of the power of Serverless.
Session delivered at ServerlessDay Warsaw on 21/10/2021.
Durable Functions vs Logic App : la guerra dei workflow!!Massimo Bonanni
Hai la necessità di implementare un workflow o un integrazione tra servizi?
Ti serve scalabilità e non vuoi preoccuparti degli aspetti infrastrutturali?
Non sai da dove iniziare?
Inizia da questa sessione! Il serverless è la risposta per la scalabilità e l'astrazione infrastrutturale, ma per l'aspetto tecnologico puoi scegliere tra Durable Functions e Logic App. Questa sessione ti mostrerà pro e contro di entrambe le tecnologie fornendoti gli strumenti necessari per una scelta oculata.
Sessione del meetup #PitchOnline di #Coding del 21/07/2021
The document discusses using Durable Functions to manage state in Azure Functions. Durable Functions allow for adding state management, checkpoints, and restarts to address limitations of stateless Azure Functions. It describes Durable Function components like orchestrators and activities that can be used to build workflows. Examples are given of how Durable Functions can be used to implement patterns like function chaining, fan-out/fan-in, human interaction, and aggregation that are difficult to do with stateless functions. Durable Entities are also introduced as a way to define operations for reading and updating small pieces of state.
Architetture Serverless con SQL Server e Azure FunctionsMassimo Bonanni
L'architettura serverless va sempre più di moda e innovative tecnologie come le Azure Functions ci consentono di implementarla facilmente. Come possiamo calare in questa realtà un prodotto consolidato come SQL Server che all'apparenza sembra non essere tagliato per questi scenari? In questa sessione vedremo come sfruttare SQL Server e l'estensibilità delle Azure Functions per costruire solutioni Serverless.
Sessione tenuta il 11/06/2021 a SQL Start 2021.
Serverless è una architettura basata sugli eventi e quali migliori scenari se non quelli IoT sono fondati sugli eventi? Migliaia di device che inviano telemetrie alla nostra soluzione e che dobbiamo gestire. In questa sessione vedremo un semplice approccio a scenari di questo genere che utilizza le Durable Entities per gestire la logica associata ai device del nostro sistema. Un esempio pratico per capire pregi e difetti delle Durable Entities che possono essere utili in moltissimi scenari in cui gestire eventi è essenziale.
Sessione tenuta durante Azure Global Virtual 2021.
This document summarizes a presentation about stateful patterns in Azure Functions using Durable Functions. The presentation introduces Durable Functions as a way to add state management to Azure Functions. It discusses common stateful patterns like function chaining, fan-in/fan-out, and human interaction and how Durable Functions addresses issues with implementing these patterns with regular stateless functions through orchestrations, activities, and entities. The presentation concludes by emphasizing how Durable Functions solves concurrency issues but may not always be the right choice depending on requirements around latency.
Sessione tenuta a CodeGen 2021 il 13/02/2021
Serverless è una architettura basata sugli eventi e quali migliori scenari se non quelli IoT sono fondati sugli eventi? Migliaia di device che inviano telemetrie alla nostra soluzione e che dobbiamo gestire. In questa sessione vedremo un semplice approccio a scenari di questo genere che utilizza le Durable Entities per gestire la logica associata ai device del nostro sistema. Un esempio pratico per capire pregi e difetti delle Durable Entities che possono essere utili in moltissimi scenari in cui gestire eventi è essenziale.
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
Session provided in community meetup #PitchOnline (SharpCoding community) on 21/01/2021.
Can I implement unit tests on my Azure Functions? How can I monitor my Azure Functions in a production environment? These are the questions that born into the head of the developer immediately after realizing that the Azure Functions can be a handy tool for designing a whole range of scenarios. In this session, you learn how to implement functions that are unit testable and which is the best approach to make them monitorable.
Empower every Azure Function to achieve more!!Massimo Bonanni
This document contains information from a presentation on Azure Functions including:
- An overview of Azure Functions and their pay-per-use model with instant scalability.
- Details on the anatomy of a function including triggers, bindings, and their associated classes.
- Explanations of the startup and runtime phases of functions and how triggers and bindings are configured.
- Recommendations to write efficient functions that avoid unnecessary resource usage.
- Links provided for additional documentation, code samples, and the speaker's contact information.
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
The document discusses testing and monitoring Azure Functions. It explains that Azure Functions should be written to allow dependencies to be mocked or stubbed for testing. The document demonstrates how to make Azure Functions testable using constructor injection to substitute mock services. It also discusses using logging and custom metrics to monitor Azure Functions performance and errors when deployed, including built-in integration with Application Insights. Code samples and a live demo are provided.
Everything you always wanted to know about API Management (but were afraid to...Massimo Bonanni
Azure API Management is an Azure service that allows developers to implement a consistent and secure access layer to their APIs. It provides features like throttling to prevent DOS attacks, JWT token validation for security, and a developer portal for API documentation and testing. The key components of API Management include the API gateway, publisher portal, developer portal, and policies for pre/post processing requests. Products are used to surface APIs to developers through subscriptions.
Xmas Serverless Transformation: when the elf doesn’t scale!Massimo Bonanni
Babbo Natale è in difficoltà! E' noto che l'elfo non scala! Con l'approssimarsi del periodo natalizio, le letterine dei bimbi aumentano vertiginosamente e la gestione tradizionale presta il fianco. Babbo Natale non può pretendere che gli elfi lavorino più di quello che già fanno (il sindacato degli elfi è inflessibile) e non può delocalizzare la produzione perché si trova già in un posto sperduto! L'unica soluzione è ottimizzare e razionalizzare il processo sfruttando il cloud e l'approccio serverless: Xmas Serverless Transformation ovvero come rispondere ai picchi di carico senza sfruttare gli elfi! Slide della sessione tenuta all'evento Xmas Dev 2018.
This document discusses updates to Azure Functions runtime including .NET Core 2.1 support, new extensibility model, and tooling updates. It also describes Durable Functions going GA and improvements to consumption plans, app service plans, and DevOps integration. The document provides tips for optimizing function performance such as avoiding long running functions and writing stateless functions. It concludes by thanking the audience and providing contact information.
This document discusses the Service Fabric reliable actor model. It begins by explaining the origins of the actor model in computer science and how it relates to concurrency and message passing. It then describes how Service Fabric implements the reliable actor pattern, including how actors are represented as .NET/Java classes, have reliable state storage, and lifecycle management. The document discusses architecture details like the actor service and runtime. It also covers topics like partitioning, concurrency handling, reentrancy, reminders, and when to use the actor model.
Testing a Service Fabric solution and live happy!!Massimo Bonanni
This document discusses testing Service Fabric solutions. It emphasizes the importance of unit testing microservices to ensure reliability and stability. It identifies three main obstacles to unit testing microservices - the Service Fabric platform, external dependencies, and other microservices. It proposes solutions such as mocking the platform, abstracting proxies, and creating layers of indirection to overcome these obstacles. The document also discusses chaos testing to evaluate how solutions handle errors and complex state transitions in production-like conditions.
This document provides an introduction to the actor model in Microsoft Service Fabric. It discusses key concepts of actors like message passing, state management, and concurrency. Actors are designed for high scalability and can distribute work across a cluster of machines. The document recommends understanding if the actor model fits one's requirements before building an application with it. It also provides some best practices and limitations to keep in mind for actor development.
3. chi sono
• Mi occupo di sviluppo dal 1982, prima in maniera amatoriale e, poi,
in maniera «professionale». Mi «diletto» con il framework .NET
dall’inizio degli anni 2000. Sono MVP per VB.NET e presidente di
DomusDotNet.
• La sessione nasce con lo scopo di fornire una panoramica degli
strumenti messi a disposizione degli sviluppatori (non solo .NET) per
utilizzare le traduzioni automatiche all’interno dei propri applicativi.
4. agenda
• Introduzione.
• Il widget web.
• La traduzione collaborativa
• Le API
• L’autenticazione.
• I servizi
• Translator Hub.
5. Introduzione
Partiamo da 3 assunti:
1. Internet è formato da contenuti
2. I contenuti hanno visibilità planetaria.
3. Affinchè i contenuti possano avere
diffusione, debbono essere compresi dalla
maggior parte delle persone.
6. Introduzione
Quando scriviamo i contenuti in una specifica lingua,
questi possono essere compresi da coloro che
parlano tale lingua e poco più.
Una soluzione (non sempre applicabile) è ricorrere
ad una traduzione automatica.
7. Cosa è Microsoft Translator
Microsoft Translator è un progetto Microsoft
Research che nasce con lo scopo di fornire un
prodotto di traduzione automatica:
• Affidabile
• Facile da utilizzare
• Applicabile in molteplici scenari
8. Cosa non è Microsoft Translator
Microsoft Translator non nasce con lo scopo di
sostituire un traduttore professionale.
In alcuni casi, infatti, non ha senso che il nostro
contenuto sia tradotto automaticamente.
9. Quando utilizzarlo
Esistono scenari in cui una traduzione fornita da uno strumento
automatico raggiunge, invece, egregiamente lo scopo di far
comprendere il concetto esposto:
• Blog,
• Siti tecnici,
• News
• .........
10. Quando utilizzarlo
Nei casi esposti, la quantità di informazione e la
rapidità di pubblicazione (vedi news o blog), non
permettono una traduzione «umana».
Un traduttore automatico assolve pienamente il
compito di far capire di cosa si parla anche senza
una traduzione rigorosa.
11. Quando non utilizzarlo
In altri scenari non è possibile lasciare ad una
traduzione automatica l’onere di comunicare un
concetto.
Ad esempio, una campagna pubblicitaria, in cui la
forma, a volte, è quasi più importante della
sostanza, non può essere lasciata ad una
12. Gli strumenti di Microsoft Translator
La piattaforma Microsoft Translator ci mette a
disposizione un ampio ventaglio di strumenti da
utilizzare nei nostri siti:
• il widget web
• le API (JSON, REST o SOAP)
• Microsoft Translator HUB
13. Il Web Widget
Il widget web è un “controllo” web (di fatto una serie
di controlli HTML contenuti in un <div>) che i web
master possono inserire nel proprio sito per
permettere agli utenti di tradurre le pagine.
14. Il Web Widget
La versione base del widget è utilizzabile senza
registrazione, mentre per le funzioni avanzate
dello stesso e per le API è necessario registrarsi
tramite LiveID.
15. Il Web Widget
L’utilizzo del Widget è assolutamente gratuito e
non impone limiti di traduzioni (Microsoft si
«accontenta» della pubblicità che le fate con il
logo esposto dal controllo)
Ogni pagina può avere un solo widget.
16. Il Web Widget
Per configurare ed
ottenere il widget è
sufficiente utilizzare la
pagina presente
all’indirizzo:
http://www.microsofttranslator.com/wid
get/
17. Il Web Widget
Per ottenere lo snippet dell’HTML, è necessario:
• inserire l’indirizzo del sito che si intende tradurre e la lingua di origine
dello stesso
• configurare il tipo di traduzione che si intende fornire agli utenti:
• manuale;
• notifica ;
• automatica;
• scegliere colore e dimensione del widget;
• accettare i termini di utilizzo (obbligatorio per generare l’HTML);
18. Il Web Widget
Il widget può avere 3 differenti modalità di utilizzo:
• manuale : nella pagina apparirà il widget e sarà l’utente, se vorrà, a
tradurre il contenuto premendo il tasto per la traduzione;
• notifica : all’utente verrà notificato (tramite una barra in alto nella
pagina) che è possibile tradurre il contenuto e sarà, comunque, lui a
tradurlo;
• automatica : il contenuto verrà automaticamente tradotto nella
lingua dell’utente che visita il sito e questo potrà, se vuole, vedere il
contenuto originale;
19. Il Web Widget – un esempio
Compare se gli
Inietta, al momento del caricamento
script Javascript
della pagina, l’effettivo codice HTML
sono disabilitati
per il controllo Translator
20. Web Widget – Decidere cosa tradurre
Se lo riteniamo opportuno, possiamo anche escludere parti della
pagina dal processo di traduzione (resteranno come le abbiamo
scritte noi in qualunque lingua l’utente scelga).
Per fare ciò possiamo procedere in due modi:
• inserire nel tag da non tradurre l’attributo custom
translate=no;
• decorare il tag da mantenere inalterato con la classe di stile
notranslate.
22. Web Widget – Traduzione collaborativa
Il web widget permette di abilitare la traduzione
collaborativa.
Possiamo dare, ai visitatori del nostro sito, la
possibilità di intervenire nella traduzione automatica
correggendo traduzioni inesatte o suggerendo
traduzioni alternative
23. Web Widget – Traduzione collaborativa
Per abilitare la traduzione collaborativa è necessario
avere un codice di invito che si può richiedere dal pannello
di attivazione presente nella pagina di creazione del
Widget
24. Web Widget – Traduzione collaborativa
Se viene abilitata la traduzione collaborativa, l’utente può
segnalare una sua traduzione diversa da quella proposta
dal sistema.
25. Web Widget – Traduzione collaborativa
Il proprietario del sito (colui che ha generato il widget) può
«invitare» altri utenti, tramite LiveID, a partecipare alla
moderazione delle traduzioni.
26. Web Widget – Traduzione collaborativa
Viene fornita una dashboard per gestire il tutto in maniera
più semplice:
28. Le API
Se vogliamo avere maggior controllo sulla traduzione dei nostri
contenuti oppure non abbiamo un’applicazione web, possiamo
utilizzare le API messe a disposizione dalla piattaforma.
Si tratta di «servizi web» che possono essere richiamati con
diverse modalità: AJAX, HTTP o SOAP
29. Le API - Sottoscrizione
Per poter utilizzare le
API è necessario
sottoscrivere una
abbonamento sull’Azure
Data Marketplace
utilizzando il proprio
LiveId.
30. Le API – ClientId & SecretClient
Sottoscritto l’abbonamento è necessario generare un
ClientId e far generare dalla piattaforma il SecretClient
necessari per l’autenticazione.
31. Le API – ClientId & SecretClient
• Clientid e nome dell’applicazione sono obbligatori (e li possiamo
inventare a nostro piacimento);
• Il SecretClient è generato dal sistema;
• La descrizione è facoltativa;
• Il Redirect URI non è utilizzato (anche se va inserito);
Il ClientId (assieme al SecretClient) identifica la nostra applicazione e la
sua scelta è a nostra discrezione anche se il sistema controlla che non
esista già il ClientId scelto.
32. Le API - Autenticazione
Tutti i servizi esposti da Microsoft Translator prevedono,
attualmente, due possibili modi per autenticarsi:
• uno di tipo “legacy” che sfrutta l’autenticazione dei vecchi
servizi di Bing (attualmente supportata per
retrocompatibilità);
• uno oAuth.
Microsoft Translator sostituisce Bing Translator e, per
tale motivo, supporta, ancora, la vecchia autenticazione di
Bing (anche se in futuro verrà abbandonata).
33. Le API - Autenticazione oAuth
Open Authorization (oAuth), è un protocollo di
comunicazione open mediante il quale
un’applicazione (o un servizio web) può gestire in
modo sicuro l'accesso autorizzato ai dati
sensibili.
34. Le API – Autenticazione oAuth
Generazione
ClientId e
1. Authorization Request
SecretClient
Resource
Owner
Richiesta Access 2. Authorization Grant
Token e chiamata
ai servizi
3. Authorization Grant
Authorization
Client Server
4. Access Token
5. Access Token
Resource
6. Protected Resource
Server
35. Le API – Access Token
Il meccanismo di autenticazione di Microsoft Translator è,
quello di recuperare, tramite ClientId e SecretClient, un access
token ed utilizzarlo per le richieste al server (finchè il token non
scade).
Per recuperare l’access token è sufficiente eseguire una
richiesta HTTP di tipo POST all’URL:
https://datamarket.accesscontrol.windows.net/v2/OAuth2-
13
36. Le API – Access Token
La risposta del server di autenticazione è, in
caso di autenticazione corretta, di tipo JSON:
{
"access_token":"http.............lAPlcjWWR412WlHOoEh6cIKA7mg%3d",
"token_type":"http://schemas.xmlsoap.org/ws/2009/11/swt-token-
profile-1.0",
"expires_in":"599",
"scope":”http://api.microsofttranslator.com”
}
37. Le API – Access Token
I nodi JSON restituiti sono:
• access_token: è l’access token vero e proprio;
• token_type: è il formato del token restituito dal sistema. Attualmente viene
restituito sempre un token definito nel namespace
http://schemas.xmlsoap.org/ws/2009/11/swt-token-profile-1.0;
• expires_in: numero di secondi di validità del token. Attualmente è pari a
600;
• scope: è il dominio per cui è valido il token. Nel caso di Microsoft Translator
è sempre http://api.microsofttranslator.com.
39. Le API – Ajax, Http o SOAP
I servizi di Microsoft Translator sono erogati con tre differenti
modalità:
• La modalità Ajax è adatta per un utilizzo all’interno di pagine
Web;
• La modalità Http prevede chiamate GET o POST a seconda delle
funzionalità richieste ed è ideale nell’utilizzo con quei linguaggi in
cui non è semplice l’interazione con web services;
40. Le API – Ajax, Http o SOAP
Entrambe le modalità Ajax e Http restituiscono i
dati in formato JSON.
Tutte le modalità prevedono, nell’invocazione
della funzionalità, il passaggio di un Access
Token valido.
41. Le API – Cosa possiamo fare
Attualmente, a prescindere dal protocollo scelto abbiamo
le seguenti funzionalità:
AddTranslation GetLanguageNames Speak
AddTranslationArray GetLanguagesForSpeak Translate
BreakSentences GetLanguagesForTranslate TranslateArray
Detect GetTranslations
DetectArray GetTranslationsArray
42. Le API – Il metodo Translate
Per capire le differenze tra le tre modalità,
prendiamo il metodo Translate che ci consente di
tradurre un testo da una lingua ad un’altra.
43. Le API – Translate Ajax
Bearer Token
I parametri della
chiamata debbono
essere Encodati
44. Le API – Translate Http
Bearer Token passato al
c.daniele71@gmail.com server attraverso l’header
della chiamata HTTP
Definisce il tipo di testo da
tradurre. Attualmente
disponibili solamente
«text/plain» o «text/html»
47. Microsoft Translator Hub
Tutti i sistemi di traduzione automatica permettono
la traduzione da un numero di lingue molto basso (al
massimo un centinaio su oltre le 7.000 in uso a
livello mondiale).
Translator Hub permette di costruire il proprio
sistema di traduzione.
48. Microsoft Translation Hub
Per accedere a Microsoft Translation Hub
si deve richiedere un codice all’indirizzo:
http://hub.microsofttranslator.com