SINTESI VOCALE APPLICATA NELL'IMPLEMENTAZIONE DI UN INTERLOCUTORE VIRTUALE PER SISTEMI ANDROID

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "SINTESI VOCALE APPLICATA NELL'IMPLEMENTAZIONE DI UN INTERLOCUTORE VIRTUALE PER SISTEMI ANDROID"

Transcript

1 UNIVERSITÀ POLITECNICA DELLE MARCHE FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica e dell'automazione SINTESI VOCALE APPLICATA NELL'IMPLEMENTAZIONE DI UN INTERLOCUTORE VIRTUALE PER SISTEMI ANDROID Relatore: Prof. Aldo Franco Dragoni Tesi di: Emanuele Cardelli Anno Accademico 2011/2012

2

3 Indice Generale Introduzione...5 Capitolo 1: Il Sistema Android Scelta del sistema 1.2 Breve storia di Android 1.3 Architettura 1.4 Componenti di un'applicazione 1.5 Scheduling della memoria centrale 1.6 Ciclo di vita di un'attività 1.7 Il file Manifest Capitolo 2: Sintesi Vocale Storia 2.2 Tecnologia 2.3 Diffusione dei sistemi VCD 2.4 Android.speech.tts Capitolo 3: Ambiente di Sviluppo Primi Passi 3.2 Virtual Device Manager 3.3 Strumento di disegno per layout xml 3.4 Prospettiva per gestire Device Reali 3.5 Divisione delle risorse Capitolo 4: Configurazione input e output dell'applicazione...31

4 Capitolo 5: Interprete VXML Standard VoiceXML 5.2 Librerie d'appoggio per la costruzione dell'interprete 5.3 Sincronizzazione I/O 5.4 Descrizione dell'interprete Capitolo 6: Conclusione e sviluppi futuri...43 BIBLIOGRAFIA...45 APPENDICE A: Codice dell'applicazione di test per l'input-output...46 APPENDICE B: Codice dell'interprete...50 APPENDICE C: Codice dell'applicazione definitiva...67

5 Introduzione Indice Io e il mio collega, Nicola Sturari, abbiamo scelto di incentrare il nostro tirocinio sullo sviluppo di un applicativo per dispositivi mobili al fine di poter vantare un'esperienza in questo settore in forte crescita. Volendo programmare qualcosa che potesse contemporaneamente rendere più accessibile e più comodo l'uso di alcune funzioni di Smartphone e affini, ci siamo dunque posti l'obiettivo di dar vita a un'applicazione vocale che non fosse fine a se stessa, ma andasse a costituire una base comune: un programma di appoggio sul quale chiunque, semplicemente costruendo un dialogo nel semplice linguaggio a markup VoiceXML, avrebbe potuto fondare una applicazione specifica in grado di sostenere un dialogo con l'utente. Per fare questo abbiamo iniziato studiando il sistema Android e le sue funzioni per poi arrivare alla configurazione dei sistemi di input e output sonori; dopodiché ci siamo informati sullo standard VoiceXML, abbiamo cercato un interprete Java che potesse essere implementato e, non trovandolo, ce ne siamo costruiti uno da noi. Questa tesi vuole ripercorrere l'esperienza vissuta dapprima esponendo lo studio teorico affrontato come il sistema Android e lo standard VoiceXML per poi passare a capitoli più pratici nel quale si illustra il modus operandi per mezzo del quale abbiamo ottenuto il risultato sperato. 5

6 Il Sistema Android Indice 1.1 Scelta del sistema Tra i sistemi disponibili la scelta è subito ricaduta su Android per via della sua forte presenza nel mercato e, soprattutto, grazie alla caratteristica di essere Open-Source: ambiente ideale per l'apprendimento. Abbiamo infatti trovato subito librerie, tutorial e strumenti di sviluppo disponibili gratuitamente per tutti i principali sistemi operativi Desktop. Data la natura del nostro progetto i sistemi per smartphone offrono un grande vantaggio: la recente moda di poter comandare il proprio telefono tramite il solo utilizzo della voce ha infatti concentrato grandi aziende sullo sviluppo dei sistemi di sintesi e riconoscimento vocale e dato che, grazie alla natura di Android, i programmi sono svincolati dai motori per la gestione dell'input-output audio, il nostro progetto non potrà che trarre passivamente beneficio dal vedere aumentare l'efficienza di questi ultimi. 6

7 1.2 Breve Storia di Android Android is not just a blueprint for the faraway future, but a complete platform that will give mobile operators, handset manufacturers, and developers everything they need to build innovative devices, software and services. We are committed to commercially deploy handsets and services using the Android Platform. -da openhandsetalliance.com Il sistema Android fu inizialmente scritto dalla Startup Android Inc., società aquisita nel 2005 da Google Inc., dopodichè i fondatori della prima azienda iniziarono lo sviluppo del sistema basandosi sulla versione 2.6 del celebre Kernel Linux finchè, nel 2007, la Open Handset Alliance presentò pubblicamente il sistema. L'alleanza consiste in un accordo tra molte compagnie tra cui possiamo trovare colossi come Google, Intel, Samsung, ebay, Telecom Italia, etc. il cui scopo è quello di sviluppare standard aperti per dispositivi mobili: Each member of the Open Handset Alliance is strongly committed to greater openness in the mobile ecosystem. Increased openness will enable everyone in our industry to innovate more rapidly and respond better to consumers demands. Our first joint project as a new Alliance is Android. Android was built from the ground up with the explicit goal to be the first open, complete, and free platform created specifically for mobile devices. -da openhandsetalliance.com Già una settimana dopo la presentazione di Android furono pubblicati librerie, emulatori, tutorial e strumenti di sviluppo per qualsiasi sistema basato su architettura x86 con Windows, Mac OS X o Linux. 7

8 L'anno seguente venne rilasciata la prima versione del sistema ma, come si può verificare dal grafico, questo iniziò ad essere commercialmente significativo dalla versione 2.0 Eclair rilasciata verso la fine del Le funzioni di sintesi e riconoscimento vocale non erano presenti in origine ma furono aggiunte nel 2009 con la versione 1.6. Ad Oggi Android è giunto alla versione 4 e Google Play, il negozio virtuale offerto dall'omonima azienda per la distribuzione delle applicazioni, contiene circa programmi. 8

9 1.3 Architettura Come già accennato, Android si basa sul Kernel Linux, questo è di tipo Monolitico e la compattezza e velocità che caratterizza tale tipologia di sistema è ideale per un dispositivo dalle risorse di calcolo limitate come un telefono, unito al fatto che Linux permette di modificare il Kernel senza dover essere ricompilato dando di fatto la possibilità ai singoli venditori di personalizzarlo e modificarlo adattandolo perfettamente alle caratteristiche di ogni proprio modello. Volendo dare una panoramica sull'architettura di Android, immediatamente sopra il kernel troviamo le principali librerie, anch'esse attinte dal mondo dell'open-source: Surface Manager: gestisce l'accesso alle funzioni del display e si occupa dei layout delle finestre; Media Framework: librerie per utilizzare i codec per i vari file multimediali; SQLite: DBMS implementato all'interno del sistema per gestire in maniera 9

10 estremamente efficiente basi di dati; OpenGL ES: versione per sistemi Embedded delle celebri librerie OpenGL atte alla costruzione di elementi grafici 2D e 3D; FreeType: insieme di fonts; WebKit: librerie per la navigazione internet utilizzate anche da Browser per sistemi Desktop come Google Chrome o Apple Safari; SGL: librerie grafiche di basso livello che lavora assieme a Surface Manager; SSL: librerie per il Secure Socket Layer; libc: implementazione delle basilari librerie del linguaggio C; Salendo troviamo l'application Framework che si occupa di compiti come la gestione delle finestre, lo scambio di informazioni tra processi, le funzionalità di telefonia e, in generale, i compiti basilari del sistema che vengono continuamente richiamati dalle applicazioni, costituenti l' ultimo livello del sistema. Merita particolare attenzione la Dalvik Virtual Machine: consiste, appunto, in una macchina virtuale progettata da Google per permettere l'esecuzione di programmi progettati in codice Java ma, a differenza della Java Vritual Machine, non esegue codice bytecode ma i file.class devono essere riconvertiti in.dex (Dalvik Executable) prima dell'installazione sul dispositivo. Questo perchè la Dalvik Virtual Machine è una VM Registered-Based, a differenza della Java che è Stack-Based: riusciamo a risparmiare in termini di numero di istruzioni in linguaggio bytecode a fronte di una compilazione più onerosa. Questa scelta è stata presa per via della scarsa capacità di memoria e calcolo presente nei telefoni rispetto i Personal Computer. 10

11 Questo schema spiega come avviene l'ottimizzazione del bytecode: The Dalvik optimizer does the following: For virtual method calls, replace the method index with a vtable index. For instance field get/put, replace the field index with a byte offset. Also, merge the boolean / byte / char / short variants into a single 32-bit form (less code in the interpreter means more room in the CPU I-cache). Replace a handful of high-volume calls, like String.length(), with "inline" replacements. This skips the usual method call overhead, directly switching from the interpreter to a native implementation. Prune empty methods. The simplest example is Object.<init>, which does nothing, but must be called whenever any object is allocated. The instruction is replaced with a new version that acts as a no-op unless a debugger is attached. Append pre-computed data. For example, the VM wants to have a hash table for lookups on class name. Instead of computing this when the DEX file is loaded, we can compute it now, saving heap space and computation time in every VM where the DEX is loaded. -da netmite.com 11

12 Nonostante le intrinseche differenze tra le virtual machine, tutta la riconversione del codice è trasparente al programmatore che può quindi utilizzare le normali librerie Java. Dalla versione di Android 2.2 la Dalvik VM implementa il Dalvik Just in time compiler che permette di aumentare le performance del bytecode traducendone parte in linguaggio C o C++ in fase di esecuzione e rendendo l'efficienza sempre più vicina ad un codice scritto interamente in linguaggio nativo, ma mantenendo comunque i vantaggi delle macchine virtuali. 1.4 Componenti di una applicazione I componenti sono i mattoni con cui viene costruita un'applicazione, sono indipendenti tra loro e svolgono ruoli ben definiti. Si dividono in 4 tipi: Attività : la documentazione ufficiale la definisce una singola e precisa cosa che l utente può fare. È la parte del programma che interagisce con l'utente, incaricata, quindi, di gestire input-output e, non obbligatoriamente ma nella maggior parte dei casi, presenta un'interfaccia grafica. Servizio: componente che agisce in background, destinato a compiere tutte le operazioni a lungo termine. Ad esempio un servizio potrebbe gestire l'aggiornamento di dati via internet o eseguire un brano musicale, comunque svolge ruoli che non richiedono l'interazione diretta dell'utente e che vengono eseguiti senza interrompere l'attività attuale. Content Provider: strumento tramite il quale i programmi gestiscono i file, gestisce l'accesso ad una directory centralizzata e sono pensati per permettere la comunicazione tra più applicazioni. Broadcast Receiver: viene utilizzato per intercettare un messaggio che si dirada in tutto il sistema come può essere il segnale di batteria quasi scarica. Spesso sfruttato come canale di comunicazione tra gli altri componenti. 12

13 Una peculiarità delle componenti di Android consiste nel fatto che un'applicazione può richiamare lo specifico componente di un'altra, ovviamente utilizzando il sistema come tramite perchè considerata un'operazione privilegiata. Attività, Servizi e Broadcast Receiver sono richiamati tramite l'oggetto intent, struttura dati che invia un messaggio asincrono a cui si possono legare informazioni extra, utile per gestire negli stessi comandi l'esecuzione di un componente e il passaggio dei dati utili. Gli intent possono essere espliciti o impliciti: nel primo caso si indica la precisa classe cui si fa riferimento mentre nel secondo si dichiara solitamente il tipo di azione (come ACTION_RECOGNIZE_SPEECH che indica l'azione di riconoscimento vocale) e il sistema, a seconda delle impostazioni del singolo utente, deciderà quale progamma lanciare per soddisfare la richiesta. Abbiamo sfruttato, nel nostro progetto, questa caratteristica per permettere al programma di essere indipendente dal sistema di riconoscimento e di sintesi: verranno sempre usati i motori vocali preferiti dall'utente poiché non si fa riferimento ai singoli ma al tipo di azione che deve essere eseguita. 1.5 Scheduling della memoria centrale Android è stato progettato per essere multitasking, l'obiettivo è riuscire a fornire all'utente un sistema che riesca a gestire contemporaneamente più applicazioni e poter passare da una all'altra rapidamente e prontamente, tutto questo sfruttando le potenzialità limitate di un telefono. Quando un processo viene chiuso in realtà rimane in esecuzione e mantiene i propri dati in memoria centrale. Finché quest'ultima è disponibile, la macchina riuscirà a mantenere tutti i processi in stato di running, dunque passare dall'uno all'altro consiste solamente nel riportare il secondo in primo piano a sfavore di quello accantonato. Nel momento in cui la memoria centrale scarseggia un sistema Desktop, tipicamente, 13

14 si avvale di un meccanismo di swap che sposta i dati dei processi meno importanti dalla Ram alla memoria di massa. In Android, una volta deciso il processo meno importante, si chiede al Kernel di forzarne la chiusura, conseguentemente le risorse vengono liberate in un tempo ridotto. Questo metodo non consente alle applicazioni che vengono chiuse nessuna azione, non possono quindi salvare il proprio stato per essere riprese in futuro, ma, per poter ricostruire anche programmi chiusi forzatamente dal Kernel nelle stesse condizioni in cui l'utente le aveva lasciate, ogni volta che una activity passa in background viene salvato il suo stato attraverso un oggetto Bundle: struttura dati delle librerie di Android in cui vengono salvate le informazioni più importanti sullo stato di esecuzione. In questo modo il sistema, in condizioni di scarse risorse, può liberare memoria senza nessun controllo tra i processi in background e senza ridare l'esecuzione al programma in modalità utente. Per poter gestire quei programmi che necessitano un esecuzione in background con questo meccanismo bisogna avvalersi dei componenti già pensati a tal scopo: si evita così che le applicazioni vengano forzatamente chiuse come le altre. Ad esempio se un'applicazione ha un Broadcast Receiver, una volta che intercetta il messaggio di sistema ha 10 secondi per gestirlo con la propria routine, scaduti i quali verrà riposta alla stessa priorità delle altre in background, con la possibilità di essere terminata. Questo metodo è molto efficiente ma quando c'è la necessità di avere operazioni in sottofondo con un tempo di esecuzione indeterminato si usano i Servizi: questo tipo di componente esegue delle operazioni in background a lungo termine ed è l'applicazione a controllarne l'avvio e il termine. In una situazione di scarsità di memoria, se non basta forzare l'uscita delle applicazioni standard si forza la chiusura anche dei processi contenenti servizi ma Android, tenendo conto della loro natura, cercherà di riattivarli appena possibile. Nel caso in cui si vogliano programmare dei servizi che necessitano di rimanere attivi, come la riproduzione di un brano musicale, si può classificare il servizio in stato di foreground, ovvero con la stessa priorità che ha l'activity con cui l'utente sta interagendo, a patto però che venga segnalato al cliente del sistema attraverso una 14

15 notifica: rimanendo nell'esempio del brano musicale, quando questi viene eseguito permane nella barra delle notifiche un'icona. 1.6 Ciclo di vita di un'attività In un dispositivo cellulare, rispetto un sistema Desktop, lo schermo è piccolo: per questo nel sistema Android solo un' Activity alla volta può interagire con l'utente, ovvero occupare lo schermo. L'attività in primo piano è quella che ha maggior priorità e, come già spiegato, se ha bisogno di una maggiore quantità di memoria centrale vengono terminate quelle in sottofondo in favore della prima. Come si può osservare dall'immagine a fianco, la vita di un'activity è scandita da 7 stati: oncreate(bundle savedinstancestate): è la funzione richiamata alla creazione dell'attività, ha come argomento l'oggetto Bundle in cui sono salvate le informazioni sullo stato d'esecuzione, inizialmente è null; onstart(): chiamata quando l'attività sta per ottenere il controllo dello schermo, quindi la priorità d'esecuzione; onrestart(): si attiva se l'attività sta per essere richiamata dopo essere stata 15

16 fermata; onresume(): eseguito quando l'attività sta per iniziare l'interazione con l'utente; onpause(): segnala che non si sta più interagendo con l'utente; onstop(): chiamato quando l'attività perde il possesso dello schermo; ondestroy(): eseguito quando l'attività sta per essere terminata. Grazie alla programmazione ad oggetti, il programmatore può sovrascrivere una o più di queste funzioni, attraverso un metodo detto Override, già presenti nella classe Activity per poter ottenere i propri scopi. Comunque è fortemente consigliato lasciare all'inizio delle funzioni la routine originale, situazione che si può ottenere semplicemente con il comando super.nome_funzione; infatti in Java il comando super è una parola chiave che indica il costruttore della classe madre. È infine importante osservare che quando l'applicazione deve cambiare orientamento, ad esempio perché l'accelerometro interno al dispositivo indica al sistema che l'utente ha ruotato lo stesso, l'attività viene completamente distrutta e ricostruita, richiamando quindi l'oncreate(). Questa caratteristica faceva si che, se l'utente ruotava il dispositivo mentre la nostra applicazione era in attesa della stringa dal programma di riconoscimento vocale, venivano re-inizializzate le variabili (cosa che avviene normalmente nell'oncreate) con la conseguenza di avere una stringa vuota. Per ovviare al problema abbiamo dichiarato nel manifest (spiegato nel prossimo paragrafo) che l'activity richieda l'orientamento verticale, eliminando la possibilità di ruotarsi. 16

17 1.7 Il file Manifest Ogni applicazione Android utilizza un file xml, detto manifest, che contiene tutte le dichiarazioni dei propri componenti. es. Dichiarazione di un'activity: <manifest xmlns:android="http://schemas.android.com/apk/res/android" [...]> <application > <activity [.]>[..]</activity> </application> </manifest> All'interno dello spazio riservato ai singoli componenti è possibile specificare a quali tipi di azioni questo è in grado di rispondere attraverso un intent-filter al fine di rispondere velocemente ai già esposti intent impliciti. Un'altra informazione fondamentale è la richiesta dei permessi di cui il programma ha bisogno: come meccanismo di sicurezza, infatti, il sistema Android distingue molti tipi di azioni privilegiate come l'accesso alla memoria esterna, l'accesso a internet, la lettura dello stato del telefono ecc. ; tutto ciò che richiede un'applicazione viene mostrato all'utente al momento dell'installazione come misura di sicurezza ulteriore alle continue scansioni svolte dall'antivirus Bouncer utilizzato da Google. In questo file è anche indicata la versione minima di Android per poter eseguire l'applicazione (il sistema è pienamente retrocompatibile, basta dichiarare il minimo) e altri meta-dati utili come l'orientamento dello schermo, il nome dell'applicazione, l'icona ecc.. 17

18 Sintesi Vocale Indice 2.1 Storia Con Sintesi Vocale si intende l'azione di riprodurre la voce umana attraverso congegni artificiali. Le applicazioni di una simile tecnologia sono ampie: può essere utilizzata per permettere la lettura di testi a persone con problemi di vista, per dare ad un programma informatico la facoltà di parlare attraverso gli altoparlanti di un supermercato, per poter controllare tutte le funzioni del proprio telefono mentre si guida senza distogliere lo sguardo dalla strada e molto ancora. L'uomo ha concepito l'idea di sintesi vocale molto prima dell'avvento dell'informatica: già nel X secolo troviamo coraggiosi tentativi meccanici pensati a tal scopo. Nel 1779 Christian Kratzenstein riuscì a costruire un modello in grado di riprodurre le vocali e pochi anni dopo Wolfgang von Kempelen, grazie all'introduzione di elementi ispirati a labbra e lingua, produsse una macchina capace anche di esprimere consonanti. Joseph Faber nel 1846 creò Euphonia, sintetizzatore in grado di riprodurre persino l'inno nazionale inglese. I dispositivi di sintesi basati sull'elettronica iniziarono a vedere la luce grazie ai Bells Labs che, negli anni trenta, svilupparono il Vocoder: un sintetizzatore elettronico basato su input da tastiera. 18

19 2.2 Tecnologia Generalmente si divide il processo di text-to-speech, ovvero la conversione di testo in onde sonore, in due fasi: La prima, detta Front-End, consiste in una analisi del testo che normalizza tutto (numeri, simboli, etc.) per poi convertirli in fonemi dividendoli logicamente per periodi e proposizioni. La seconda, detta Back-End converte i fonemi ottenuti in suono. Le tecniche attualmente utilizzate per la seconda fase sono principalmente due: la sintesi concatenativa e la sintesi basata sulle regole. La differenza tra le due è sostanziale: la prima utilizza dei campioni di voce umana pre-registrati mentre la seconda genera di per se le forme d'onda da riprodurre. La sintesi concatenativa può essere effettuata memorizzando in un database un'enorme quantità di registrazioni che comprendano singole lettere, sillabe, parole che gli algoritmi di selezione andranno a scandire continuamente per formare le frasi. Possiamo suddividere questa tipologia di TTS per il numero di fonemi memorizzati: utilizzando fonemi doppi, ad esempio, rispetto un sistema che ne ha solo di singoli, la qualità sarà maggiore perché l'operazione di incollare le piccole serie di lettere si presenta meno frequentemente ed è proprio questo fenomeno a generare i tipici disturbi che fanno sembrare la voce scattosa e poco comprensibile. D'altro canto gestire un numero molto più vasto di registrazioni genera una quantità considerevolmente maggiore di combinazioni delle stesse, rendendo il calcolo della composizione della frase un processo più esoso e richiedendo una memoria di grandi 19

20 dimensioni. Volendo estremizzare questo concetto un sintetizzatore vocale sarebbe perfetto se possedesse un database con tutte le proposizioni possibili, numero che, essendo infinito, richiederebbe una quantità infinita di memoria e potenza di calcolo. Ciò che ho intuitivamente chiamato incollare è in realtà una procedura fondamentale dei sistemi TTS chiamata smoothing : dovendo generare una frase componendo insieme tanti piccoli spettri vocali bisogna ridurre il più possibile la differenza tra le loro estremità in modo che non si formi uno stacco udibile. Per ovviare al problema alcuni sintetizzatori utilizzano un'elaborazione digitale per costruire la frazione di congiunzione tra due fonemi; altri utilizzano un secondo database contenente i difoni ovvero tutte le possibili transizioni fra suoni diversi. La sintesi concatenativa è la tecnica che assicura una maggior naturalezza del parlato perché la voce registrata è autentica, anche se può essere incomprensibile se l'algoritmo non riesce ad eseguire uno smoothing di qualità. La sintesi basata sulle regole sfrutta dei modelli acustici per generare forme d'onda e modularne i parametri. La voce risulta molto meno naturale presentando un tipico suono metallico ma è più intellegibile perchè non presenta le nette differenze tra sillabe che affliggono la sintesi concatenativa; inoltre richiede poca memoria e potenza di calcolo: è quindi indicata per sistemi portatili o embedded in cui le potenzialità sono limitate. 2.3 Diffusione dei sistemi VCD Con l'acronimo VCD si indica voice commanded device, ovvero tutti i dispositivi in grado di proporre all'utente un interfaccia di controllo puramente basata sul dialogo. Questa modalità di comando si sta, col tempo, ampliando e migliorando: nei pù recenti sistemi operativi Desktop troviamo già inserita questa funzionalità: per esempio la casa Microsoft ha implementato da Windows Vista in poi un software che permette 20

21 all'utente di controllare il sistema, gestire file, scrivere documenti e spedire solamente con l'uso della voce. Un altro ambito che merita citazione è l'automobilismo: esistono già sistemi che permettono di eseguire i compiti più basilari, come rispondere alle telefonate o cambiare musica, attraverso un sistema vocale, senza distogliere l'attenzione e le mani del conducente. Ford Sync ne è un ottimo esempio: si tratta di un programma integrato in alcune autovetture che si appoggia su un sistema operativo embedded della Microsoft pensato per macchine: Windows Embedded Automotive. Un veicolo dotato di questo programma attualmente può: Informare il conducente sullo stato del veicolo; Controllare la navigazione GPS con la possibilità di conoscere il traffico e informazioni di vario genere; Collegarsi ad uno smartphone tramite il quale effettuare chiamate oppure aprire ed utilizzare applicazioni; Collegarsi in via remota ad un computer fisso, modificare e stampare documenti; e altro ancora. Per quanto strabiliante, il campo di maggior utilizzo, e quindi che da più spinta allo sviluppo, rimane quello degli Smartphone: tutte le più grandi ditte hanno investito e stanno investendo nell'interazione vocale; Android ha Pico TTS e molti altri sul market, Windows Phone ha Speech, IOS ha Siri e anche BlackBerry OS offre funzioni simili. Tutti quanti consentono già funzioni basilari come effettuare chiamate o scrivere messaggi e alcuni, come Android, permettono già di effettuare 21

22 ricerche su internet, scrivere , avviare e controllare la navigazione gps, controllare la riproduzione di brani musicali, etc. 2.4 Android.speech.tts Android.speech.tts è la classe delle API Android che contiene tutto ciò che serve per controllare l'esecuzione di una sintesi vocale. La classe è indipendente dal sintetizzatore utilizzato, che sia Pico TTS (quello di default) o uno qualunque acquistato dal market. Prima di tutto offre dei metodi per verificare se è presente un sintetizzatore vocale: TextToSpeech.Engine.CHECK_TTS_DATA e per accertarsi che sia installata la lingua richiesta: TextToSpeech mtts; //Creo un'oggetto di tipo TextToSpeech if(mtts.islanguageavailable(locale.uk)){ //Controlla che sia installato l'inglese mtts.setlanguage(locale.uk); //quindi lo imposta Possiamo poi alterare la frequenza e la velocità della voce rispettivamente tramite le funzioni mtts.setpitch(float numero) e mtts.setspeechrate(float numero). Un'altra opzione interessante che offre la classe è la possibilità di associare ad una stringa un file audio di modo che il compito di rendere vocalmente tale testo, qualora si incontrasse, non verrà affidata al Text-to-Speech ma subentrerà direttamente la riproduzione del file indicato: mtts.addspeech(string testo, String percorso_file). Per l'output standard, che va direttamente alla scheda audio, si usa la funzione: mtts.speak(string testo_da_riprodurre,int queuemode,hashmap params) Dove queuemode indica come il sintetizzatore deve gestire la coda di richieste: QUEUE_ADD se si vuole aggiungere in coda le nuove chiamate o QUEUE_FLUSH se si preferisce interrompere quelle in esecuzione a favore delle nuove. Infine attraverso la funione: mtts.synthetizetofile(string testo,hashmap params, String percorso_file) si ridireziona l'output verso un file audio. 22

23 Ambiente di Sviluppo Indice 3.1 Primi Passi Il sito base, cui fa riferimento ogni sviluppatore, è developer.android.com dal quale è possibile scaricare tutto il software necessario allo sviluppo, visualizzare le references delle varie versioni del sistema Android e consultare tutorial precisi e completi: Vi è anche una guida sulla configurazione dell'ide Eclipse, considerato il predefinito: probabilmente scelto dalla Open Handet Alliance in vista della sua natura di programma open-source, multipiattaforma e per essere già familiare nell'ambiente professionale dei programmatori Java. Bisogna quindi scaricare il vero e proprio SDK all'interno del quale è presente un tool per scaricare alcuni strumenti opzionali e le librerie della versione di Android desiderata (nel nostro caso la 2.1): 23

24 Infine è disponibile un plug-in per il suddetto IDE Eclipse che permette a ques'ultimo di interfacciarsi direttamente con l'sdk e gestire tutta la compilazione in modo trasparente all'utente, oltre a fornire diversi strumenti che vedremo in seguito. Il Plug-In è facilmente installabile dal sistema integrato di Eclipse per l'installazione di nuovo software, basta indicare il sito sorgente. 24

25 3.2 Virtual Device Manager L'ambiente di sviluppo offre la possibilità di generare macchine virtuali con sistema Android. Com'è possibile vedere nell'immagine, la virtual device si configura facilmente tramite un'apposita scheda fornita dal plugin ove è possibile specificare la risoluzione dello schermo, le librerie utilizzate e alcune specifiche hardware: Il dispositivo virtuale è pienamente funzionante: può persino connettersi ad internet tramite la connessione del computer ospitante simulando una rete UMTS. È però sprovviso di programmi come il market Google Play per motivi legali legati al fatto di non avere un numero di serie o un IMEI. Una volta avviato, si presenta così: 25

26 e l'ide lo seleziona automaticamente come bersaglio per il test dell'applicazione (se le librerie sono compabili, altrimenti,se configurato, avvia il giusto emulatore). La virtualizzazione del sistema comporta notevoli vantaggi: La possibilità di testare il programma indipendentemente dall'hardware, provandolo con diversi processori, diversa memoria e risoluzione dello schermo; La sicurezza di non poter in alcun modo danneggiare il sistema in fase di testing poiché completamente contenuto dalla macchina virtuale. L'unico aspetto negativo che solitamente si presenta con questa tecnica, la perdita di prestazioni, viene a essere meno pesante poiché Android richiede una potenza di calcolo e una quantità di risorse decisamente inferiori ad un normale sistema operativo per computer da tavolo e questi ultimi sono, in genere, abbastanza potenti da sostenerlo in emulazione senza rallentamenti. 26

27 3.3 Strumento Di disegno per layout xml Lo schema standard di programmazione per Android è impostato in modo tale da separare il più possibile il codice e i dati. Questo principio è stato applicato anche al layout che è possibile dichiarare in un file separato in formato xml, per poi essere implementato attraverso la funzione setcontentview(r.layout.nome_layout). La classe R è generata automaticamente da Eclipse e permette di tenere traccia e di collegare tutte le risorse esterne al codice. Questo metodo di progettazione, oltre a conferire la capacità di modificare il design delle applicazioni senza il rischio di inficiarne il funzionamento, permette di utilizzare un editor grafico per la realizzazione dei layout che, non dovendo generare complicato codice Java come WindowBuilder e simili, risulta essere molto efficiente: 27

28 3.4 Prospettiva per gestire Device Reali Un'ultima funzionalità che voglio citare del plug-in per Eclipse consiste in una prospettiva, ovvero una configurazione dell'interfaccia dell'ide, in cui sono state già predisposte tutte le view per gestire il debug su dispositivi Android fisici collegati al computer: Nell'immagine possiamo vedere in alto a sinistra la lista dei dispositivi Android connessi con tutti i processi attualmente in esecuzione. Per ogni processo si possono richiedere dettagli avanzati come la visualizzazione dei Threads o lo stato dell'heap, mostrato in figura. Per poter testare le applicazioni su un telefono reale bisogna configurare opportunamente il sistema operativo in uso (in Windows installare opportuni driver forniti da Google, in Linux impostare delle regole di sicurezza che variano a seconda del costruttore del telefono). L'applicazione testata viene firmata digitalmente in modo che solo il computer con cui si programma possa in futuro modificarla, cosa che ad 28

29 altri verrebbe impedito da Android. 3.5 Divisione delle Risorse Nel momento in cui si crea un nuovo progetto Android, Eclipse, configurato dal plug-in, predispone già tutte le risorse del progetto come si può vedere in figura. Come nei normali progetti Java la cartella src contiene i vari file Java suddivisi per package; le cartelle res e assets contengono le risorse esterne necessarie all'applicazione: in particolare la prima ha una struttura già impostata che vede drawable ospitare le risorse grafiche, layout i file formato xml che definiranno gli oggetti visivi delle componenti e values che contiene i file in cui sono scritti diversi dati utili al programma, in modo da potervi accedere e modificarli senza alterare il codice Java. Si possono dichiarare i seguenti tipi di risorse: stringhe, colori, misure, rettangoli di colore, vettori di numeri interi, vettori di stringhe e stili. L'utilizzo dell'ide, inoltre, permette di impostare tutti i tipi di risorsa senza scrivere xml ma direttamente da un'interfaccia apposita: 29

30 Infine la cartella gen contine i file che vengono generati automaticamente: in particolare la già citata classe R.Java funge da collegamento per tutto ciò che si trova nella cartella res ; è dunque possibile richiamare qualsiasi risorsa dal codice Java attraverso il suo id. Se, ad esempio, volessimo associare ad un oggetto di tipo Button un bottone dichiarato nel layout xml che ha id button1 basterebbe scrivere: Button bottone=(button)findviewbyid(r.id.button1); 30

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

TeamViewer 8 Manuale Meeting

TeamViewer 8 Manuale Meeting TeamViewer 8 Manuale Meeting Rev 8.0-12/2012 TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen www.teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni

Dettagli

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO Precisione del riconoscimento Velocità di riconoscimento Configurazione del sistema Correzione Regolazione della

Dettagli

Ciclo di vita delle aevità Android Mobile Programming Prof. R. De Prisco

Ciclo di vita delle aevità Android Mobile Programming Prof. R. De Prisco Ciclo di vita delle aevità Ogni AcHvity ha dei metodi standard A(vità non esiste 1. oncreate() 2. onstart() 3. onresume() A(vità in esecuzione 4. onpause() 5. onstop() 6. ondestroy() A(vità non esiste

Dettagli

Web Conferencing Open Source

Web Conferencing Open Source Web Conferencing Open Source A cura di Giuseppe Maugeri g.maugeri@bembughi.org 1 Cos è BigBlueButton? Sistema di Web Conferencing Open Source Basato su più di quattordici componenti Open-Source. Fornisce

Dettagli

Manuale - TeamViewer 6.0

Manuale - TeamViewer 6.0 Manuale - TeamViewer 6.0 Revision TeamViewer 6.0 9947c Indice Indice 1 Ambito di applicazione... 1 1.1 Informazioni su TeamViewer... 1 1.2 Le nuove funzionalità della Versione 6.0... 1 1.3 Funzioni delle

Dettagli

Testi della Guida introduttiva a cura di Martin Ley. Revisione e controllo qualità: Cristina Bachmann, Heiko Bischoff, Marion Bröer, Sabine Pfeifer,

Testi della Guida introduttiva a cura di Martin Ley. Revisione e controllo qualità: Cristina Bachmann, Heiko Bischoff, Marion Bröer, Sabine Pfeifer, Guida Introduttiva Testi della Guida introduttiva a cura di Martin Ley. Revisione e controllo qualità: Cristina Bachmann, Heiko Bischoff, Marion Bröer, Sabine Pfeifer, Heike Schilling. Data di rilascio:

Dettagli

Boot Camp Guida di installazione e configurazione

Boot Camp Guida di installazione e configurazione Boot Camp Guida di installazione e configurazione Indice 3 Introduzione 4 Panoramica dell'installazione 4 Passo 1: Verificare la presenza di aggiornamenti 4 Passo 2: Per preparare il Mac per Windows 4

Dettagli

FileMaker Server 13. Guida introduttiva

FileMaker Server 13. Guida introduttiva FileMaker Server 13 Guida introduttiva 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker e Bento sono marchi

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

TeamViewer 7 Manuale Controllo remoto

TeamViewer 7 Manuale Controllo remoto TeamViewer 7 Manuale Controllo remoto TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni sul

Dettagli

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa di Ilaria Lorenzo e Alessandra Palma Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa Code::Blocks

Dettagli

Mini manuale di Audacity.

Mini manuale di Audacity. Mini manuale di Audacity. Questo mini manuale è parte del corso on-line Usare il software libero di Altrascuola. Il corso è erogato all'interno del portale per l'e-learning Altrascuola con la piattaforma

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Web conferencing software. Massimiliano Greco - Ivan Cerato - Mario Salvetti

Web conferencing software. Massimiliano Greco - Ivan Cerato - Mario Salvetti 1 Web conferencing software Massimiliano Greco - Ivan Cerato - Mario Salvetti Arpa Piemonte 2 Che cosa è Big Blue Button? Free, open source, web conferencing software Semplice ed immediato ( Just push

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Guida all'installazione ed uso dell'app RXCamLink

Guida all'installazione ed uso dell'app RXCamLink Guida all'installazione ed uso dell'app RXCamLink Questa guida riporta i passi relativi all'installazione ed all'utilizzo dell'app "RxCamLink" per il collegamento remoto in mobilità a sistemi TVCC basati

Dettagli

Alb@conference GO e Web Tools

Alb@conference GO e Web Tools Alb@conference GO e Web Tools Crea riunioni virtuali sempre più efficaci Strumenti Web di Alb@conference GO Guida Utente Avanzata Alb@conference GO Per partecipare ad un audioconferenza online con Alb@conference

Dettagli

MEGA Process. Manuale introduttivo

MEGA Process. Manuale introduttivo MEGA Process Manuale introduttivo MEGA 2009 SP4 1ª edizione (giugno 2010) Le informazioni contenute nel presente documento possono essere modificate senza preavviso e non costituiscono in alcun modo un

Dettagli

Guida Dell di base all'acquisto dei server

Guida Dell di base all'acquisto dei server Guida Dell di base all'acquisto dei server Per le piccole aziende che dispongono di più computer è opportuno investire in un server che aiuti a garantire la sicurezza e l'organizzazione dei dati, consentendo

Dettagli

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO Francesco Marchione e Dario Richichi Istituto Nazionale di Geofisica e Vulcanologia Sezione di Palermo Indice Introduzione...

Dettagli

FileMaker Server 13. Guida di FileMaker Server

FileMaker Server 13. Guida di FileMaker Server FileMaker Server 13 Guida di FileMaker Server 2010-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker e Bento sono

Dettagli

Boot Camp Guida all installazione e alla configurazione

Boot Camp Guida all installazione e alla configurazione Boot Camp Guida all installazione e alla configurazione Indice 4 Introduzione 5 Cosa ti occorre 6 Panoramica dell installazione 6 Passo 1: verifica la presenza di aggiornamenti. 6 Passo 2: apri Assistente

Dettagli

Simplex Gestione Hotel

Simplex Gestione Hotel Simplex Gestione Hotel Revisione documento 01-2012 Questo documento contiene le istruzioni per l'utilizzo del software Simplex Gestione Hotel. E' consentita la riproduzione e la distribuzione da parte

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

TeamViewer 8 Manuale Controllo remoto

TeamViewer 8 Manuale Controllo remoto TeamViewer 8 Manuale Controllo remoto Rev 8.0-12/2012 TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen www.teamviewer.com Indice 1 Informazioni su TeamViewer... 6 1.1 Informazioni sul software... 6

Dettagli

AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0

AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0 AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0 Con questo aggiornamento sono state implementate una serie di funzionalità concernenti il tema della dematerializzazione e della gestione informatica dei documenti,

Dettagli

Seagate Access per Personal Cloud Manuale utente

Seagate Access per Personal Cloud Manuale utente Seagate Access per Personal Cloud Manuale utente 2015 Seagate Technology LLC. Tutti i diritti riservati. Seagate, Seagate Technology, il logo Wave e FreeAgent sono marchi depositati o marchi registrati

Dettagli

FileMaker Server 13. Pubblicazione Web personalizzata con PHP

FileMaker Server 13. Pubblicazione Web personalizzata con PHP FileMaker Server 13 Pubblicazione Web personalizzata con PHP 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker

Dettagli

DEFT Zero Guida Rapida

DEFT Zero Guida Rapida DEFT Zero Guida Rapida Indice Indice... 1 Premessa... 1 Modalità di avvio... 1 1) GUI mode, RAM preload... 2 2) GUI mode... 2 3) Text mode... 2 Modalità di mount dei dispositivi... 3 Mount di dispositivi

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

INFORMATIVA SUI COOKIE

INFORMATIVA SUI COOKIE INFORMATIVA SUI COOKIE I Cookie sono costituiti da porzioni di codice installate all'interno del browser che assistono il Titolare nell erogazione del servizio in base alle finalità descritte. Alcune delle

Dettagli

Guida introduttiva. Installazione di Rosetta Stone

Guida introduttiva. Installazione di Rosetta Stone A Installazione di Rosetta Stone Windows: Inserire il CD-ROM dell'applicazione Rosetta Stone. Selezionare la lingua dell'interfaccia utente. 4 5 Seguire i suggerimenti per continuare l'installazione. Selezionare

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

GESTIRE LA BIBLIOGRAFIA

GESTIRE LA BIBLIOGRAFIA GESTIRE LA BIBLIOGRAFIA STRUMENTI DI GESTIONE BIBLIOGRAFICA I software di gestione bibliografica permettono di raccogliere, catalogare e organizzare diverse tipologie di materiali, prendere appunti, formattare

Dettagli

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 Download Si può scaricare gratuitamente la versione per il proprio sistema operativo (Windows, MacOS, Linux) dal sito: http://www.codeblocks.org

Dettagli

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. Generate debugging information FASE DEBUGGING: Prima della compilazione, si devono inserire 1 nel progetto informazioni per il debug cioè si devono visualizzare le opzioni di progetto seguendo il percorso: controllando che la voce Genera

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

Software 2. Classificazione del software. Software di sistema

Software 2. Classificazione del software. Software di sistema Software 2 Insieme di istruzioni e programmi che consentono il funzionamento del computer Il software indica all hardware quali sono le operazioni da eseguire per svolgere determinati compiti Valore spesso

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Virtualizzazione e installazione Linux

Virtualizzazione e installazione Linux Virtualizzazione e installazione Linux Federico De Meo, Davide Quaglia, Simone Bronuzzi Lo scopo di questa esercitazione è quello di introdurre il concetto di virtualizzazione, di creare un ambiente virtuale

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente Linux Debian, Fedora, Ubuntu www.ondacommunication.com Chiavet ta Internet MT503HSA Guida rapida sistema operativo LINUX V 1.1 33080, Roveredo in Piano (PN)

Dettagli

Windows Compatibilità

Windows Compatibilità Che novità? Windows Compatibilità CODESOFT 2014 é compatibile con Windows 8.1 e Windows Server 2012 R2 CODESOFT 2014 Compatibilità sistemi operativi: Windows 8 / Windows 8.1 Windows Server 2012 / Windows

Dettagli

How to Develop Accessible Linux Applications

How to Develop Accessible Linux Applications How to Develop Accessible Linux Applications Sharon Snider Copyright 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML

Dettagli

Le novità di QuarkXPress 10

Le novità di QuarkXPress 10 Le novità di QuarkXPress 10 INDICE Indice Le novità di QuarkXPress 10...3 Motore grafico Xenon...4 Interfaccia utente moderna e ottimizzata...6 Potenziamento della produttività...7 Altre nuove funzionalità...10

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

UBUNTU SERVER. Installazione e configurazione di Ubuntu Server. M. Cesa 1

UBUNTU SERVER. Installazione e configurazione di Ubuntu Server. M. Cesa 1 UBUNTU SERVER Installazione e configurazione di Ubuntu Server M. Cesa 1 Ubuntu Server Scaricare la versione deisiderata dalla pagina ufficiale http://www.ubuntu.com/getubuntu/download-server Selezioniare

Dettagli

Setup e installazione

Setup e installazione Setup e installazione 2 Prima di muovere i primi passi con Blender e avventurarci nel vasto mondo della computer grafica, dobbiamo assicurarci di disporre di due cose: un computer e Blender. 6 Capitolo

Dettagli

Configurazioni Mobile Connect

Configurazioni Mobile Connect Mailconnect Mail.2 L EVOLUZIONE DELLA POSTA ELETTRONICA Configurazioni Mobile Connect iphone MOBILE CONNECT CONFIGURAZIONE MOBILE CONNECT PER IPHONE CONFIGURAZIONE IMAP PER IPHONE RUBRICA CONTATTI E IPHONE

Dettagli

Strumenti 3D per SMART Notebook 11.1. Manuale dell'utente

Strumenti 3D per SMART Notebook 11.1. Manuale dell'utente Strumenti 3D per SMART Notebook 11.1 Manuale dell'utente Registrazione del prodotto Se si registra il prodotto SMART, si verrà informati delle nuove funzionalità e aggiornamenti software disponibili. Registrazione

Dettagli

Il compilatore Dev-C++

Il compilatore Dev-C++ Il compilatore Dev-C++ A cura del dott. Marco Cesati 1 Il compilatore Dev-C++ Compilatore per Windows: http://www.bloodshed.net/devcpp.html Installazione Configurazione Utilizzazione 2 1 Requisiti di sistema

Dettagli

GESTIONE DELLA E-MAIL

GESTIONE DELLA E-MAIL GESTIONE DELLA E-MAIL Esistono due metodologie, completamente diverse tra loro, in grado di consentire la gestione di più caselle di Posta Elettronica: 1. tramite un'interfaccia Web Mail; 2. tramite alcuni

Dettagli

Guida all'installazione di SLPct. Manuale utente. Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it

Guida all'installazione di SLPct. Manuale utente. Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it Guida all'installazione di SLPct Manuale utente Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it Premessa Il redattore di atti giuridici esterno SLpct è stato implementato da Regione

Dettagli

Manuale d uso. Congratulazioni per aver scelto e-tab. Ti ringraziamo per la Tua fiducia e la decisione di comprare il nostro prodotto!

Manuale d uso. Congratulazioni per aver scelto e-tab. Ti ringraziamo per la Tua fiducia e la decisione di comprare il nostro prodotto! Manuale d uso Congratulazioni per aver scelto e-tab. Ti ringraziamo per la Tua fiducia e la decisione di comprare il nostro prodotto! Giacchè noi costantemente aggiorniamo e miglioriamo il Tuo e-tab, potrebbero

Dettagli

Guida al nuovo sistema di posta. CloudMail UCSC. (rev.doc. 1.4)

Guida al nuovo sistema di posta. CloudMail UCSC. (rev.doc. 1.4) Guida al nuovo sistema di posta CloudMail UCSC (rev.doc. 1.4) L Università per poter migliorare l utilizzo del sistema di posta adeguandolo agli standard funzionali più diffusi ha previsto la migrazione

Dettagli

2014 Electronics For Imaging. Per questo prodotto, il trattamento delle informazioni contenute nella presente pubblicazione è regolato da quanto

2014 Electronics For Imaging. Per questo prodotto, il trattamento delle informazioni contenute nella presente pubblicazione è regolato da quanto 2014 Electronics For Imaging. Per questo prodotto, il trattamento delle informazioni contenute nella presente pubblicazione è regolato da quanto previsto in Avvisi legali. 23 giugno 2014 Indice 3 Indice...5

Dettagli

Windows Mail Outlook Express 6 Microsoft Outlook 2003 Microsoft Outlook 2007 Thunderbird Opera Mail Mac Mail

Windows Mail Outlook Express 6 Microsoft Outlook 2003 Microsoft Outlook 2007 Thunderbird Opera Mail Mac Mail Configurare un programma di posta con l account PEC di Il Titolare di una nuova casella PEC può accedere al sistema sia tramite Web (Webmail i ), sia configurando il proprio account ii nel programma di

Dettagli

RefWorks Guida all utente Versione 4.0

RefWorks Guida all utente Versione 4.0 Accesso a RefWorks per utenti registrati RefWorks Guida all utente Versione 4.0 Dalla pagina web www.refworks.com/refworks Inserire il proprio username (indirizzo e-mail) e password NB: Agli utenti remoti

Dettagli

Posta Elettronica Certificata

Posta Elettronica Certificata Posta Elettronica Certificata Manuale di utilizzo del servizio Webmail di Telecom Italia Trust Technologies Documento ad uso pubblico Pag. 1 di 33 Indice degli argomenti 1 INTRODUZIONE... 3 1.1 Obiettivi...

Dettagli

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore Cicli in Visual Basic for Application Le strutture del programma che ripetono l'esecuzione di una o più istruzioni sono chiamate Cicli. Alcune strutture per i cicli sono costruite in modo da venire eseguite

Dettagli

IDom. Omnicon SRL Via Petrarca 14 20843 Verano Brianza (MB) info@omnicon.it

IDom. Omnicon SRL Via Petrarca 14 20843 Verano Brianza (MB) info@omnicon.it IDom MANUALE UTENTE Omnicon SRL Via Petrarca 14 20843 Verano Brianza (MB) info@omnicon.it 2 COPYRIGHT Tutti i nomi ed i marchi citati nel documento appartengono ai rispettivi proprietari. Le informazioni

Dettagli

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

Gestore Comunicazioni Obbligatorie. Progetto SINTESI. Comunicazioni Obbligatorie. Modulo Applicativo COB. - Versione Giugno 2013 -

Gestore Comunicazioni Obbligatorie. Progetto SINTESI. Comunicazioni Obbligatorie. Modulo Applicativo COB. - Versione Giugno 2013 - Progetto SINTESI Comunicazioni Obbligatorie Modulo Applicativo COB - Versione Giugno 2013-1 Versione Giugno 2013 INDICE 1 Introduzione 3 1.1 Generalità 3 1.2 Descrizione e struttura del manuale 3 1.3 Requisiti

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it izticket Il programma izticket permette la gestione delle chiamate di intervento tecnico. E un applicazione web, basata su un potente application server java, testata con i più diffusi browser (quali Firefox,

Dettagli

MyMedia Portal LMS un servizio SaaS di e-learning basato sul Video Streaming per la vendita on line di Lezioni Multimediali interattive

MyMedia Portal LMS un servizio SaaS di e-learning basato sul Video Streaming per la vendita on line di Lezioni Multimediali interattive 1 MyMedia Portal LMS un servizio SaaS di e-learning basato sul Video Streaming per la vendita on line di Lezioni Multimediali interattive Cos è un servizio di e-learning SaaS, multimediale, interattivo

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

Integrated Development Environment (IDE) DevC++ 4.9.9.2

Integrated Development Environment (IDE) DevC++ 4.9.9.2 Integrated Development Environment (IDE) DevC++ 4.9.9.2 Manuale utente Data ultima revisione: 22/10/2008 Fondamenti di informatica Università Facoltà Corso di laurea Politecnico di Bari 1 a Facoltà di

Dettagli

Come configurare un programma di posta con l account PEC di GLOBALCERT.IT

Come configurare un programma di posta con l account PEC di GLOBALCERT.IT Come configurare un programma di posta con l account PEC di GLOBALCERT.IT Il Titolare di una nuova casella PEC può accedere al sistema sia tramite Web (Webmail i ), sia configurando il proprio account

Dettagli

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso Integrare le MFC con Irrlicht by Raffaele White tiger Mancuso In questo topic spiegherò come integrare irrlicht in un documento singolo MFC *(1). Io ho usato il visual c++ 6 ma la procedura dovrebbe essere

Dettagli

SISSI IN RETE. Quick Reference guide guida di riferimento rapido

SISSI IN RETE. Quick Reference guide guida di riferimento rapido SISSI IN RETE Quick Reference guide guida di riferimento rapido Indice generale Sissi in rete...3 Introduzione...3 Architettura Software...3 Installazione di SISSI in rete...3 Utilizzo di SISSI in Rete...4

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

WEB Conference, mini howto

WEB Conference, mini howto Prerequisiti: WEB Conference, mini howto Per potersi collegare o creare una web conference è necessario: 1) Avere un pc con sistema operativo Windows XP o vista (windows 7 non e' ancora certificato ma

Dettagli

Il portafoglio VidyoConferencing. Tutto ciò di cui avete bisogno per realizzare videoconferenze HD di qualità, accessibili e a costi vantaggiosi

Il portafoglio VidyoConferencing. Tutto ciò di cui avete bisogno per realizzare videoconferenze HD di qualità, accessibili e a costi vantaggiosi Il portafoglio VidyoConferencing Tutto ciò di cui avete bisogno per realizzare videoconferenze HD di qualità, accessibili e a costi vantaggiosi La qualità HD di Vidyo mi permette di vedere e ascoltare

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE Oracle Business Intelligence Standard Edition One è una soluzione BI completa, integrata destinata alle piccole e medie imprese.oracle

Dettagli

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1 Dipartimento di Sistemi e Informatica Università degli Studi di Firenze Dev-C++ Ing. Michele Banci 27/03/2007 1 Utilizzare Dev-C++ Tutti i programmi che seranno realizzati richiedono progetti separati

Dettagli

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata Giampiero Carboni Davide Travaglia David Board Rev 5058-CO900C Interfaccia operatore a livello di sito FactoryTalk

Dettagli

La procedura di registrazione prevede cinque fasi: Fase 4 Conferma

La procedura di registrazione prevede cinque fasi: Fase 4 Conferma Guida Categoria alla registrazione StockPlan Connect Il sito web StockPlan Connect di Morgan Stanley consente di accedere e di gestire online i piani di investimento azionario. Questa guida offre istruzioni

Dettagli

CA Process Automation

CA Process Automation CA Process Automation Glossario Release 04.2.00 La presente documentazione, che include il sistema di guida in linea integrato e materiale distribuibile elettronicamente (d'ora in avanti indicata come

Dettagli

Introduzione a Puppy Linux: installazione su una chiavetta USB

Introduzione a Puppy Linux: installazione su una chiavetta USB Introduzione a Puppy Linux: installazione su una chiavetta USB Alex Gotev 1 Contenuti Che cos'è Puppy Linux? Come posso averlo? Come si avvia? Che programmi include? Installazione su Chiavetta USB Domande

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Procedura per il ripristino dei certificati del dispositivo USB

Procedura per il ripristino dei certificati del dispositivo USB Procedura per il ripristino dei certificati del dispositivo USB 30/04/2013 Sommario - Limitazioni di responsabilità e uso del manuale... 3 1 Glossario... 3 2 Presentazione... 4 3 Quando procedere al ripristino

Dettagli

Virtualizzazione con Microsoft Tecnologie e Licensing

Virtualizzazione con Microsoft Tecnologie e Licensing Microsoft Virtualizzazione con Microsoft Tecnologie e Licensing Profile Redirezione dei documenti Offline files Server Presentation Management Desktop Windows Vista Enterprise Centralized Desktop Application

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Nitro Reader 3 Guida per l' utente

Nitro Reader 3 Guida per l' utente Nitro Reader 3 Guida per l' utente In questa Guida per l'utente Benvenuti in Nitro Reader 3 1 Come usare questa guida 1 Trovare rapidamente le informazioni giuste 1 Per eseguire una ricerca basata su parole

Dettagli

C O M E I N I Z I A R E A U S A R E U N T A B L E T A N D R O I D

C O M E I N I Z I A R E A U S A R E U N T A B L E T A N D R O I D C O M E I N I Z I A R E A U S A R E U N T A B L E T A N D R O I D Se avete un tablet android, ma non avete la minima idea di come accenderlo, usarlo e avviarlo, seguite queste nostre indicazioni 1. ATTIVAZIONE

Dettagli

GUIDA RAPIDA emagister-agora Edizione BASIC

GUIDA RAPIDA emagister-agora Edizione BASIC GUIDA RAPIDA emagister-agora Edizione BASIC Introduzione a emagister-agora Interfaccia di emagister-agora Configurazione dell offerta didattica Richieste d informazioni Gestione delle richieste d informazioni

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

I.Stat Guida utente Versione 1.7 Dicembre 2010

I.Stat Guida utente Versione 1.7 Dicembre 2010 I.Stat Guida utente Versione 1.7 Dicembre 2010 1 Sommario INTRODUZIONE 3 I concetti principali di I.Stat 4 Organizzazione dei dati 4 Ricerca 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della lingua 7 Individuazione

Dettagli

CONFERENCING & COLLABORATION

CONFERENCING & COLLABORATION USER GUIDE InterCall Unified Meeting Easy, 24/7 access to your meeting InterCall Unified Meeting ti consente di riunire le persone in modo facile e veloce ovunque esse si trovino nel mondo facendo sì che

Dettagli

GUIDA ALLE BEST PRACTICE PER MOBILE DEVICE MANAGEMENT E MOBILE SECURITY

GUIDA ALLE BEST PRACTICE PER MOBILE DEVICE MANAGEMENT E MOBILE SECURITY GUIDA ALLE BEST PRACTICE PER MOBILE DEVICE MANAGEMENT E MOBILE SECURITY Con Kaspersky, adesso è possibile. www.kaspersky.it/business Be Ready for What's Next SOMMARIO Pagina 1. APERTI 24 ORE SU 24...2

Dettagli

Agilent OpenLAB Chromatography Data System (CDS)

Agilent OpenLAB Chromatography Data System (CDS) Agilent OpenLAB Chromatography Data System (CDS) EZChrom Edition e ChemStation Edition Requisiti hardware e software Agilent Technologies Informazioni legali Agilent Technologies, Inc. 2013 Nessuna parte

Dettagli