Gestione distribuita di un ambiente grafico bidimensionale

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Gestione distribuita di un ambiente grafico bidimensionale"

Transcript

1 Università degli Studi di Pavia Facoltà di Ingegneria Corso di Laurea Triennale in Ingegneria Informatica Gestione distribuita di un ambiente grafico bidimensionale Relatore: Dott. Ing. Tullio Facchinetti Tesi di laurea di: Alessandro Luppi Anno Accademico 2012/2013

2

3 Ringraziamenti Vorrei ringraziare: Il professore Tullio Facchinetti per avermi seguito durante tutto lo svolgimento della tesi. Il doc. Marco della Vedova per i preziosi consigli datomi durante lo sviluppo. Il doc Guido Benetti per il tempo dedicatomi nel introdurmi all uso di GIT e L A TEX. La mia famiglia in particolare mio fratello per tutta l assistenza e l aiuto datomi nello scrivere questa tesi. La mia collega Monica Rotulo per tutto il supporto morale. I miei amici.

4 Indice Indice Elenco delle figure Elenco delle tabelle iii v vii 1 Introduzione Organizzazione del documento Materiale Raspberry Pi Caratteristiche Utilizzo Accesso remoto Python Tipi di dati e strutture Tipi semplici Tipi dati di alto livello Sintassi Duck typing Storia Sviluppo della libreria PySide Slot and Signal Design Data Graphic ImgItem Manager BorderManager MsgManager MoveManager WallManager Network MySignal iii

5 INDICE iv 4.7 Setup Chiusura Utilizzo Applicazione di esempio MoveManager Implementazione movimento pallina Implementazione movimento sbarretta WallManager Conclusioni 28

6 Elenco delle figure 1.1 Multi monitor Configurazione con schermi separati Configurazione finestre sul mondo Raspberry Alimentatore VGA to HDMI Monitor Switch Cavo Ethernet Raspberry Logo Rasberry Pi schema Rasberry Pi quick start Python logo Slicing Python codice Guido van Rossum e la locandina del famoso Flying Circus dei Monty Python Logo delle librerie Qt e di PySide Design libreria Valori dell item Esempio scena Logica di controllo Esempio di controllo BorderManager Messaggi libreria Header TCP Header UDP Diagramma connessione Formato pacchetti Messaggi di setup Posizione schermi Pong Pong multi-schermo (2) v

7 ELENCO DELLE FIGURE vi 5.3 Pong multi-schermo (4) Urto 2D, caso particolare Urto 2D, con rotazione assi Urto muri

8 Elenco delle tabelle 2.1 Raspberry model B - specifiche tecniche [15] Software per il controllo remoto da Windows Elenco tipi semplici Elenco sequenze vii

9 Capitolo 1 Introduzione Ormai tutte le moderne schede grafiche permettono di lavorare utilizzando più monitor contemporaneamente secondo una logica master-slave, in cui la scheda grafica funge da master e controlla ciascun monitor, i quali rappresentano gli elementi slave. Lo scopo della tesi è quello di realizzare una architettura di gestione multischermo in grado di decentralizzare il controllo dei monitor che la compongono, piuttosto che affidarne la gestione ad un unico master. Tale gestione permette la costruzione di pannelli di monitor atti a rappresentare un unica immagine, la cui visualizzazione è affidata a più monitor opportunamente affiancati, come mostrato in figura 1.1; oppure i monitor possono anche mantenere le distanze come in figura 1.2. Un utilizzo molto affascinate della libreria è mostrato in figura 1.3 in cui ogni schermo è come una finestra sul mondo, in questo caso ogni scheda controlla un area più vasta di quella effettivamente visibile. Figura 1.1: Esempio di configurazione composta da più monitor, che permette di realizzare un monitor virtuale di elevate dimensioni. Per raggiungere questo scopo, la soluzione proposta è quella di collegare un computer a ciascuno schermo, gestendo la visualizzazione delle immagini su ognuno di essi mediante lo scambio di messaggi e informazioni su rete Ethernet. La gestione coordinata della visualizzazione permette di ottenere la dislocazione di una singola immagine virtuale su più schermi fisici. Questa soluzione è resa economicamente praticabile dalla possibilità di impiegare, invece di tradizionali computer, dei sistemi embedded di basso costo ma dotati di potenza computazionale e interfacce adeguate a 1

10 CAPITOLO 1. INTRODUZIONE 2 Figura 1.2: Split mode. Figura 1.3: Windows mode, configurazione dei monitor come finestre sul mondo. pilotare uno monitor standard. Il sistema utilizzato è una scheda Raspberry Pi (figura 1.9), la quale costituisce essenzialmente un piccolo computer dal costo commerciale di 35$. L idea originale è nata dal desiderio di riutilizzare vecchi monitor a tubo catodico (figura 1.7) per la realizzazione di pannelli di monitor simili a quelli utilizzati nelle fiere o eventi in genere, nei quali un enorme immagine viene rappresentata in modo da suddividerne la visualizzazione su più display affiancati. Uno dei problemi incontrati è stato quello di collegare fisicamente i monitor alla scheda Raspberry Pi, la quale non dispone di una interfaccia VGA ma supporta solo le nuove connessioni HDMI. Per effettuare la connessione è stato necessario utilizzare un adattatore da VGA a HDMI (figura 1.6) del costo di circa 20$. D altra parte, la connessione in rete è agevolata dalla presenza di una porta Ethernet di serie sulla scheda Raspberry Pi. La libreria realizzata permette di creare un ambiente bidimensionale, in cui i

11 CAPITOLO 1. INTRODUZIONE 3 monitor rappresentano delle finestre affacciate sul mondo creato: ognuna ne mostra e ne controlla una parte. La gestione degli oggetti visualizzati è distribuita tra tutti i nodi. La connessione e disconnessione di un terminale ne ridistribuisce il lavoro, in questo modo il mondo visualizzato non perde elementi e si garantisce che nessun elemento rimanga senza controllo. 1.1 Organizzazione del documento Il documento è organizzato come segue: Nel capitolo 2 viene descritto il piccolo computer utilizzato, il Raspberry Pi. Il capitolo 3 tratta il linguaggio utilizzato per la realizzazione della libreria, Python. Nel capitolo 4 viene descritto nel dettaglio come è stata realizzata la libreria oggetto della tesi. Nel capitolo 5 viene illustrato un esempio di un applicazione realizzata utilizzando la libreria. Infine alcune riflessioni conclusive sul lavoro svolto e possibili sviluppi futuri verranno presentati nel capitolo Materiale In questa sezione viene elencato l hardware necessario per realizzare il sistema multi-monitor presentato. Per ogni monitor che si desidera utilizzare è necessaria una scheda Raspberry e, in caso di bisogno, degli adattatori per porte VGA. Per alimentare il Raspberry si consiglia di usare un alimentatore da 5V con almeno 0.7A, meglio se 1.2A, ma per la configurazione multi schermo 0.7A sono sufficienti in quanto non colleghiamo nessuna periferica che deve essere alimentata dalla scheda. Le uniche connessioni che usiamo sono la porta HDMI per lo schermo e la porta Ethernet per la connessione dei Raspberry a uno switch. Raspberry Pi (figura 1.4) Alimentatore 5V e 1.2A (figura 1.5) Adattatore Hdmi to Vga (figura 1.6) Monitor (figura 1.7) Switch (figura 1.8) Cavi Ethernet (figura 1.9)

12 CAPITOLO 1. INTRODUZIONE 4 Figura 1.4: Raspberry Pi - model B. Figura 1.5: Raspberry Pi - alimentatore. Figura 1.6: Adattatore VGA to HDMI.

13 CAPITOLO 1. INTRODUZIONE 5 Figura 1.7: Vecchio monitor crt con ingresso vga. Figura 1.8: switch per la connesione di 4 dispositivi via Ethernet. Figura 1.9: Cavo Ethernet.

14 Capitolo 2 Raspberry Pi Noi non pretendiamo di avere tutte le risposte. Non pensiamo che Raspberry Pi sia una soluzione a tutti i problemi informatici di tutto il mondo, siamo convinti che possiamo essere un catalizzatore. Vogliamo vedere computer programmabili in tutto il mondo, accessibili e a basso costo. Incoraggiamo attivamente altre aziende a clonare quello che stiamo facendo. Vogliamo rompere il paradigma secondo cui le famiglie non possano usare Internet senza spendere centinaia di sterline per un PC. Vogliamo possedere un computer veramente personale, che sia normale per i bambini. Pensiamo che il 2012 sarà un anno molto eccitante Eben Upton Il Raspberry Pi è un single-board computer, ovvero un calcolatore implementato su una sola scheda elettronica. Esso è stato sviluppato nel Regno Unito dalla Raspberry Pi Foundation. Il suo lancio al pubblico è avvenuto alla fine del mese di febbraio [15] Nel 2006 Eben Upton preoccupato del calo del livello di competenza degli studenti, ideò assieme ai suoi colleghi del Computer Laboratory dell Università di Cambridge, un piccolo computer con lo scopo di offrire una piattaforma di sviluppo economica, per promuovere principalmente l apprendimento nel linguaggio di programmazione Python, da cui deriva la sigla pi del logo; per ricordare la lettere iniziale P di Python. Oltre al Python sono supportati anche altri linguaggi in ambiente linux e compatibili con l architettura ARM. Eben Upton non solo ha raggiunto il suo scopo, diffondendo la sua creazione nelle scuole per scopi educativi, ma ha dato vita a una grande comunità di sviluppatori, che ogni giorno creano partendo da questo piccolo computer molti progetti, da un server web a sistemi automatizzati per gli scopi più disparati. La Raspberry, insieme ad Arduino (una schedina elettronica con un microcontrollore), è alla base del nascente movimento dei maker e della riscoperta del fai da te in campo tecnologico, o do it yourself (DIY), come dicono gli anglofoni. 6

15 CAPITOLO 2. RASPBERRY PI 7 Figura 2.1: Raspberry Logo. I maker costituiscono un movimento culturale contemporaneo, che rappresenta un estensione su base tecnologica del tradizionale mondo del fai da te. Tra gli interessi tipici dei maker vi sono realizzazioni di tipo ingegneristico, come apparecchiature elettroniche, realizzazioni robotiche, dispositivi per la stampa 3D, e l uso di apparecchiature a controllo numerico, ma anche attività più convenzionali, come lavorazione del metallo, del legno e dell artigianato tradizionale [4]. 2.1 Caratteristiche Figura 2.2: Schema hardware, Rasperry Pi model B. Il progetto della scheda Raspberry ruota attorno a un System-on-a-chip (SoC) Broadcom BCM2835, che incorpora un processore ARM1176JZF-S a 700 MHz, una GPU VideoCore IV, e 256 o 512 Megabyte di memoria. Il progetto non prevede né hard disk né una unità a stato solido, affidandosi invece a una scheda SD per il boot e per la memoria non volatile, la scheda è stata progettata per ospitare sistemi operativi basati su un kernel Linux o RISC OS [15]. Il sistema operativo principale è una derivazione della distribuzione Ubuntu, adattata per lavorare sul core ARM del Raspberry, chiamata Raspbian. In commercio esistono due modelli di Raspberry: il modello A e il modello B. Quest ultimo è stato scelto per realizzare la configurazione multi-monitor descritta al capitolo 1. Il modello A costa solo 25 dollari ed è equipaggiato con 256MB di RAM, da una sola porta USB ed è privo del controller ethernet necessario per i nostri scopi, in quanto non è possibile connetterlo a uno switch.

16 CAPITOLO 2. RASPBERRY PI 8 Il modello B è equipaggiato con due porte USB, 512MB di RAM ed un controller Ethernet 10/100 e costa 35 Dollari. In maniera analoga ai moderni computer, Raspberry Pi è compatibile con tastiere e mouse collegabili tramite porta USB. È comunque consigliabile controllare l effettiva compatibilità della periferica sul sito [8]. Raspberry PI non è fornito di un real-time clock, per cui se la scheda non è connessa a internet, per avere l ora, l utente al bootstrap la deve inserire manualmente. Tuttavia è facile aggiungere un real time clock (come il DS1307) con batteria tampone, attraverso l interfaccia I2C (acronimo di Inter Integrated Circuit un sistema di comunicazione seriale bifilare utilizzato tra circuiti integrati [2]). Prezzo SOC CPU 35 USD Broadcom BCM2835 (CPU + GPU + DSP + SDRAM) 700 MHz ARM1176JZF-S core (famiglia ARM11) GPU Broadcom VideoCore IV, OpenGL ES 2.0, 1080p30 H.264 high-profile decode Memory (SDRAM) USB 2.0 ports Output video Memoria Collegamenti di rete 512 Megabytes (condivisa con la GPU) 2 (attraverso un hub USB integrato) Connettore RCA per il video composito, HDMI SD / MMC / SDIO card slot Ethernet 10/100 (RJ-45) Periferiche di basso livello 2x13 header pins for GPIO, SPI, I2C, UART, +3,3 Volt, +5 Volt Real-time clock No clock or battery Corrente (potenza) assorbita 700 ma, (3,5 W) Alimentazione Dimensioni Sistemi operativi supportati 5 V via MicroUSB o GPIO header 85,60 mm 53,98 mm (3.370 inch inch) Debian GNU/Linux, Fedora, Arch Linux e Gentoo Tabella 2.1: Raspberry model B - specifiche tecniche [15]. 2.2 Utilizzo Il Raspberry richiede una configurazione iniziale prima di poterlo usare. Per prima cosa è necessario installare il sistema operativo sulla scheda SD. Successivamente si procede a installare tutto il software necessario; nel nostro caso bisogna solo installare PySide in quanto l interprete Python è già presente. Per una guida rapida alla configurazione iniziale consultare [9] Accesso remoto Per lavorare più comodamente dal proprio PC, senza necessità di uno schermo e una tastiera da collegare al Raspberry, è possibile utilizzare l accesso remoto, in questo modo basta solo alimentare il Raspberry e connetterlo alla rete (vedi guida

17 CAPITOLO 2. RASPBERRY PI 9 Figura 2.3: Rasberry Pi quick start. [10]). Tramite il protocollo SSH possiamo accedere da remoto al terminare linux del Raspberry, per trasferire file dal pc al Raspberry usiamo il protocollo SCP e per avere uno schermo virtuale che mostra il desktop del Raspberry utilizziamo il VNC (vedi tabella 2.2 per i programmi da usare per il controllo da sistemi windows). SSH (Secure Shell): è un protocollo di rete che permette di stabilire una sessione remota cifrata tramite interfaccia a riga di comando con un altro host di una rete informatica. È il protocollo che ha sostituito l analogo ma insicuro Telnet. SCP (Secure Copy): è un mezzo per trasferire in modo sicuro un file tra un computer locale ed un host remoto o tra due host remoti, usando il protocollo Secure Shell (SSH). VNC (Virtual Network Computing): sono software di controllo remoto e servono per amministrare il proprio computer a distanza. Installando un server VNC sulla propria macchina ed impostando una opportuna password si consente ai client VNC di ricevere un immagine dello schermo e di inviare input di tastiera e mouse al computer server tramite una connessione remota. In pratica si può gestire il computer server da un altra postazione, come se fosse il proprio computer fisico (applicazione di desktop remoto). SSH SCP VNC putty.exe winscp.exe ultravnc viewer Tabella 2.2: Software per il controllo remoto da Windows.

18 Capitolo 3 Python Più di sei anni fa, nel dicembre 1989, stavo cercando un progetto di programmazione per hobby che mi avrebbe dovuto tenere occupato nella settimana vicina a Natale. Il mio ufficio sarebbe stato chiuso, ma io avevo un computer, e non molto di più. Decisi di scrivere un interprete per un nuovo linguaggio di scripting a cui avrei pensato dopo: un discendente dell ABC, che sarebbe dovuto appartenere agli hacker di Unix. Scelsi Python come nome per il progetto, essendo leggermente irriverente (e sono un grande fan di Monty Python s Flying Circus) Guido Van Rossum Python è un linguaggio di programmazione moderno, dalla sintassi semplice e potente che ne facilita l apprendimento. Gli ambiti di applicazione sono molteplici: è attualmente utilizzato per realizzare interfacce GUI, per lavorare con i database, per lo sviluppo di applicazioni web e desktop, per realizzare giochi, grafica 3D, etc. Python supporta diversi paradigmi di programmazione, come quello objectoriented (con supporto all ereditarietà multipla), quello imperativo e quello funzionale, ed offre una tipizzazione dinamica, ma nonostante questo è un linguaggio fortemente tipizzato e il controllo sui tipi viene eseguito al runtime. In Python il tipo delle variabili non è deciso staticamente dal programmatore prima del suo utilizzo, ma è deciso dall interprete, in base al valore assegnato alla variabile. In altre parole una variabile è un contenitore al quale viene associata un etichetta (il nome) che può essere associata a diversi contenitori anche di tipo diverso durante il suo tempo di vita. Python usa un garbage collector per la liberazione automatica della memoria, sollevando il programmatore dal difficile compito di gestire la memoria. La gestione degli errori in Python avviene tramite le eccezioni, che sono provocate da un evento anomalo o imprevisto che cambia il normale flusso d esecuzione del codice. Ogni eccezione può essere gestita e controllata oppure non gestita, in questo caso l errore può anche provocare l arresto del programma, fornendo al programmatore tutte le informazioni necessarie per localizzarlo. Python è fornito di una libreria built-in estremamente ricca che, unitamente alla gestione automatica della memoria e a robusti costrutti per la gestione delle 10

19 CAPITOLO 3. PYTHON 11 Figura 3.1: Logo di Python. eccezioni, fa di Python uno dei linguaggi più ricchi e comodi da usare. Python è un linguaggio interpretato in quanto un interprete si occupa di analizzare il codice sorgente e, se sintatticamente corretto, di eseguirlo. In Python, non esiste una fase di compilazione separata (come avviene in C) che generi un file eseguibile partendo dal sorgente. L essere interpretato rende Python un linguaggio estremamente portabile. Una volta scritto un sorgente, esso può essere interpretato ed eseguito sulla gran parte delle piattaforme attualmente utilizzate, siano esse di casa Apple (Mac) che PC (Microsoft Windows e GNU/Linux). Semplicemente basta la presenza della versione corretta dell interprete e nei rari casi in cui non sia disponibile per la propria piattaforma, basta avere un compilatore C per scaricare il codice sorgente e compilare l interprete. Infine Python è open source, questo significa che è completamente gratuito il download dell interprete per la propria piattaforma, così come l uso di Python nelle proprie applicazioni; oltre a questo Python può essere liberamente modificato e così ridistribuito, secondo le regole di una licenza pienamente open source. La documentazione ufficiale di Python è molto dettagliata e sempre aggiornata [6]. Queste caratteristiche hanno fatto di Python il protagonista di un enorme diffusione in tutto il mondo (Italia compresa) negli ultimi anni. Questo perché garantisce lo sviluppo rapido (e divertente) di applicazioni di qualsiasi complessità in tutti i contesti: dal desktop al web, passando dallo sviluppo di videogiochi allo scripting di sistema. Alcuni celebri esempi di utilizzatori di Python [3]: Google: fa ampio uso di Python per il suo sistema di ricerca e per le sue creazioni, come per esempio you tube. BitTorrent: il popolare software di P2P è scritto in Python. Maya e Blender: due popolari software di sviluppo 3D. Intel, Cisco, HP, Seagate, Qualcomm e IBM : usano Python per il testing dell hardware. Industrial Light & Magic, Pixar: usano Python nella produzione dei film animati. Nasa, Fermilab: usano Python per lavori scientifici. IRobot: utilizza Python per lo sviluppo commerciale dei robot.

20 CAPITOLO 3. PYTHON 12 NSA: usa Python per crittografia e analisi. e tanti altri Tipi di dati e strutture Python è un linguaggio a tipizzazione dinamica e in quanto tale tutte le variabili sono in realtà puntatori ad oggetto, per esempio ad una variabile assegnata ad un intero, un istante dopo può essere assegnata una stringa o una lista. Python è anche un linguaggio fortemente tipizzato, si ha conversione implicita per i tipi numerici, che permette ad esempio di moltiplicare un numero complesso per un intero, ma non c è, ad esempio, conversione implicita tra numeri e stringhe, per cui è necessario fare un casting esplicito. Python mette a disposizione un gran numero di tipi base e avanzati. Infatti offre supporto nativo, oltre che ai classici tipi quali interi, floating point, stringhe, anche a tipi più evoluti quali interi a grandezza arbitraria, numeri complessi, liste, insiemi, dizionari, non è invece previsto un tipo specifico per i caratteri. Molti altri tipi sono importabili da librerie standard e nuovi tipi possono essere creati attraverso il costrutto di classe Tipi semplici I tipi interi (int) e floating point (float) hanno una precisione dipendente dalla macchina e dall implementazione dell interprete, in genere sono rispettivamente a 32 e 64 bit. Sono supportati nativamente numeri interi arbitrariamente grandi (long, che sono l opzione di default per gli interi a partire dalla versione 3.0) e numeri complessi (complex). Python ha già dall installazione una ricchissima libreria matematica per ogni esigenza e se non dovesse bastare esistono moduli per il calcolo scientifico come Numpy e Scipy, che possono in diverse situazioni addirittura sostituire, un programma come Matlab. Dalla versione 2.4 sono disponibili come libreria anche i numeri decimali (decimal), ossia numeri con la virgola a precisione illimitata, che non soffrono di problemi di arrotondamento e stabilità tipici dei numeri floating point classici. interi interi lunghi numeri in virgola mobile numeri complessi decimali valori booleani int long float complex decimal bool Tabella 3.1: Elenco tipi semplici Tipi dati di alto livello Oltre ai tipi dati nativi più usuali, Python ne offre altri estremamente specializzati: liste, tuple, set e dizionari. In pratica sono dei contenitori di oggetti che prevedono

21 CAPITOLO 3. PYTHON 13 la possibilità di iterare sull insieme di elementi che contengono, e dunque sono utilizzabili all interno di contesti di iterazione quali il ciclo for e funzioni quali somma, ricerca e ordinamento. I contenitori in genere permettono di contenere dati di tipo eterogeneo e condividono gran parte dei metodi. Le liste e le tuple sono un elenco ordinato di oggetti con la grande differenza che una tupla è immutabile, cioè una volta creata non è modificabile a meno di creare una nuova tupla. Le sequenze sono un vero e proprio insieme di elementi non ordinati e senza duplicati, mentre i dizionari sono un elenco non ordinato di coppie, chiave e valore. Anche le comuni stringhe (str e unicode) sono considerate sequenze. A partire da Python 3.0, i tipi str e unicode sono unificati e compare il tipo byte, equivalente grosso modo a una stringa binaria. Sono supportate tutte le operazioni classiche sulle stringhe, come concatenamento, formattazione, ricerca, sostituzione, ecc. Le stringhe in Python sono sequenze immutabili, cosicché qualsiasi operazione che in qualche modo potrebbe alterare una stringa (come ad esempio la sostituzione di un carattere) restituirà invece una nuova stringa. Python permette le seguenti funzioni avanzate delle sequenze: slicing: particolare metodo di accesso a uno o più elementi di una sequenza (vedi fig 3.2). comprehension: é un costrutto sintattico che permette di creare nuove sequenze a partire da altre, selezionandone gli elementi che faranno parte della nuova sequenza applicando una funzione. stringe str immutabile tuple tuple immutabile insiemi immutabili frozenset immutabile liste list mutabile dizionari dict mutabile insiemi set mutabile file file mutabile Tabella 3.2: Elenco sequenze Figura 3.2: Slicing applicato a una stringa.

22 CAPITOLO 3. PYTHON Sintassi Python è nato per essere un linguaggio immediatamente intuibile, la sua sintassi è pulita e snella così come i suoi costrutti, decisamente chiari e non ambigui. Python ha solo due forme di ciclo: for che cicla sugli elementi di una lista o su di un iteratore e while che cicla fin tanto che l espressione booleana indicata risulterà vera. In sostanza manca dei cicli in stile C for, do... while, oppure di until in stile Perl, ma tutti questi possono essere espressi con dei semplici equivalenti. Allo stesso modo ha solamente il costrutto if... elif... else per le scelte condizionate, ma non switch oppure goto (salto incondizionato). Una delle principali caratteristiche di Python è il ruolo fondamentale che ha l indentazione del codice. Infatti i blocchi logici vengono costruiti semplicemente allineando le righe allo stesso modo, incrementando la leggibilità e l uniformità del codice anche se vi lavorano diversi autori (figura 3.3). Questo modo di separare i blocchi logici rende il codice obbligatoriamente ordinato, al contrario di altri linguaggi, come C, in cui i blocchi sono delimitati con le parentesi ed è solo una convenzione degli sviluppatori il fatto di indentare il codice. Figura 3.3: Esempio di codice Python, grazie all obbligo di indentazione il codice è molto ordinato. 3.3 Duck typing Nei linguaggi di programmazione object oriented come nel caso di Python, il duck typing si riferisce ad uno stile di tipizzazione dinamica dove la semantica di un oggetto è determinata dall insieme corrente dei suoi metodi e delle sue proprietà, anziché dal fatto di estendere una particolare classe o implementare una specifica interfaccia.[13] Il nome del concetto si riferisce al duck test attribuito a James Whitcomb Riley che può essere formulato come segue: «Quando io vedo un uccello che cammina come un anatra, nuota come un anatra e starnazza come un anatra, io chiamo quell uccello anatra» Nel duck typing si è interessati solamente a che cosa può fare un oggetto senza compiere nessun controllo su che tipo di oggetto si tratta, è sufficiente che abbia il

23 CAPITOLO 3. PYTHON 15 metodo richiesto per non avere errori dall interprete. Gli utenti che provengono da linguaggi tipizzati staticamente tendono ad aggiungere questo controllo statico dei tipi (prima del run-time), reprimendo i benefici e la flessibilità del duck typing e vincolando il dinamismo del linguaggio. 3.4 Storia Python fu creato nel lontano natale del 1989 da Guido Van Rossum, che invece di passare le vacanze a decorare l albero, decise di scrivere un linguaggio che correggesse in gran parte, se non tutti, i difetti che secondo lui erano presenti negli altri linguaggi; pubblicò la sua creazione nel febbraio del Il nome Python deriva dalla passione di Van Rossum per un gruppo di comici inglesi degli anni sessanta, i Monty Python; anche il termine spam viene da uno degli sketch di questo gruppo. Figura 3.4: Guido van Rossum e la locandina del famoso Flying Circus dei Monty Python. Bisogna arrivare al dicembre 2008 per assistere ad una vera rivoluzione, con il rilascio della versione 3.0 di Python che introdusse molti miglioramenti e novità al linguaggio, sacrificando la compatibilità con le vecchie versioni 2.X e rendendo la migrazione molto più lenta.

24 Capitolo 4 Sviluppo della libreria La libreria oggetto di questo lavoro di tesi è realizzata utilizzando la versione ad oggi più recente di Python, la versione 3.3. In questo capitolo verranno descritti i dettagli della sua implementazione. 4.1 PySide Per lo sviluppo della libreria ho scelto di utilizzare il modulo Pyside, in quanto è il migliore toolkit grafico disponibile e compatibile con l ultima versione di Python, la 3.3. PySide è un binding delle Qt per Python, ovvero permette di utilizzare la libreria Qt all interno di un programma scritto in Python. Nell Agosto 2009, Nokia, che ha acquisito la proprietà delle librerie Qt (grazie all acquisizione della Trolltech), ha rilasciato PySide, fornendo funzionalità simili a PyQt, ma sotto licenza LGPL, dopo aver cercato di raggiungere un accordo con la società Riverbank Computing, creatrice delle PyQt, al fine di convincerla a fornire come ulteriore licenza quella LGPL. Le librerie PyQt sono infatti disponibili sotto doppia Licenza: GPL e Commerciale. [14] Figura 4.1: Logo delle librerie Qt e di PySide Pyside è un libreria molto vasta, potente e con un ricca documentazione [7]. Di seguito riporto le classi utilizzate. QByteArray: utilizzato per creare un array di byte del immagine da inviare via udp. QBuffer: associando un array di byte, è possibile scrivere e leggere nell array. QIODevice: interfaccia di alto livello per gestire l input / output. QTimer: classe utilizzata per generare segnali periodici, utilizzata per scandire ogni quanto aggiornare la scena. 16

25 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 17 QGraphicsPixmapItem: padre della classe imgitem 4.4, utilizzata per disegnare le immagini della scena. QGraphicsScene: classe in cui vengono disegni tutti gli item. QGraphicsView: classe in cui mettere una QGraphicsScene per visualizzarla a schermo. QPixmap: contiene tutti i dati del immagine visualizzata da QGraphicsPixmapItem. QUdpSocket: interfaccia per la connessione tramite protocollo udp Slot and Signal Una meccanismo molto importate di PySide sono gli slot e i segnali. Lo scopo fondamentale del sistema è quello di far comunicare tra loro gli oggetti della libreria, senza dipendere dai metodi di comunicazioni nativi del sistema operativo, in modo da rimanere indipendenti dal sistema usato. Questo meccanismo è utilizzato per associare un evento a una azione, per esempio è possibile collegare al click di un bottone l azione che cambia colore della finestra. Gli slot e i segnali risolvono brillantemente il problema di far comunicare tra loro i due oggetti: quello che gestisce l evento e quello che esegue l azione. Il meccanismo è semplice, quando si verifica l evento viene lanciato un segnale che è ricevuto da tutti gli oggetti connessi a quel particolare segnale. Gli slot non sono altro che metodi di una classe, che posso collegare a uno o più segnali tramite la funzione di libreria connect di Pyside. Una volta collegato, lo slot sarà invocato ad ogni ricezione del segnale. Se successivamente vogliamo rimuovere la connessione basta utilizzare la funzione disconnect. 4.2 Design Il programma è strutturato seguendo il pattern MVC: model-view-controller. Il pattern è basato sulla separazione dei compiti fra i componenti software che interpretano tre ruoli principali: Model (Data 4.3) fornisce i metodi per accedere ai dati utili all applicazione. View (Graphic 4.4) visualizza i dati contenuti nel model e si occupa dell interazione con utenti e agenti. Controller (Manager 4.5) riceve i comandi dell utente (in genere attraverso il view) e li attua modificando lo stato degli altri due componenti. In figura 4.2 si può vedere uno schema riassuntivo del programma

26 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 18 Figura 4.2: Design libreria 4.3 Data La classe data è una delle classi più importati della libreria, in quanto contiene tutte le informazioni necessarie per il suo corretto funzionamento. Questa classe utilizza il pattern Singleton. Si tratta di un design pattern creazionale, che ha lo scopo di garantire che di una determinata classe venga creata una e una sola istanza, e di fornire un punto di accesso globale a tale istanza. Inoltre ha lo scopo di garantire l univocità dei dati contenuti, per essere sicuri che ogni classe utilizzi le stesse informazioni. In Python si implementa tramite il metodo new (cls, *args, **kwargs) con il quale si può controllare la creazione di una nuova istanza, e differisce dal comune metodo init (self) in quanto quest ultimo serve solo per l inizializzazione. Gli attributi sono tutti dichiarati privati, nascondendoli dall esterno della classe. L unico modo per manipolare i dati è attraverso dei metodi che, vista l importanza di quello che modificano, prima di ogni azione controllano la correttezza delle operazioni svolte. In Python un metodo o un attributo privato si ottiene tramite una convenzione di denominazione: il suo nome deve iniziare con due caratteri underscore (es info). Una curiosità, a differenza di altri linguaggi, Python permette in caso di bisogno di accedere comunque a metodi privati indicando il nome della classe prima del metodo (es nome._classe info), a proprio rischio e pericolo. Le informazioni memorizzate sono le seguenti: Posizioni di ogni monitor online: identificati da un id schermo, memorizza i parametri [x,y,w,h] del rettangolo della scena di ogni schermo online. Indirizzo ip e porta per la comunicazione di ogni monitor online: identificati dallo stesso id schermo delle posizioni, memorizza l indirizzo ip e la porta (53055) di ogni schermo online. Dizionario degli item memorizzati dal sistema: sono identificati da un id generato in maniera incrementale ad ogni creazione di nuovo item a partire dal id id_schermo 000, per esempio lo schermo numero 1 partirà dal id Una volta generato l id rimane associato in maniera univoca ai valori del item (figura 4.3) in qualsiasi schermo si trova. Storico immagini: memorizza per ogni id schermo, la lista delle immagini inviate.

27 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 19 Figura 4.3: Valori memorizzati per ogni item, associati in maniara univoca ad un id. La classe data è anche responsabile del setup iniziale 4.7 e tramite lo storico della immagini garantisce che non vengano inviate immagini duplicate così da non sovraccaricare la rete di pacchetti superflui. Ogni volta che viene inviato un messaggio di tipo immagine viene fatto un controllo sullo storico dei messaggi inviati a quel destinatario, nel caso in cui l immagine è già presente non è necessario inviarla di nuovo perché è già nota al destinatario. 4.4 Graphic Eredita della classe QtGui.QGraphicsView tutti i metodi necessari per disegnare e visualizzare la grafica del programma. Apre un finestra dove disegnare gli oggetti grafici, istanzia tutti gli oggetti da visualizzare caricando le immagini, in più stabilisce la frequenza di aggiornamento della scena tramite la classe QtTimer. I segnali lanciati dal timer sono connessi alla gestione scena del manager (vedi 4.5) che procede nel controllo e aggiornamento della scena ad ogni scadenza del timer. Figura 4.4: Esempio di una scena ImgItem Figlia della classe QGraphicsPixmapItem (vedi sezione 4.1), è la base di tutti gli item della scena, ognuno è un immagine caricata da file e contenuta all interno di un rettangolo. Anche se l item in realtà è un rettangolo è possibile utilizzare la libreria PySide per considerare solo l immagine, ignorando i pixel trasparenti. Questa funzione è la base del meccanismo che rileva le collisioni, funzione fornita da PySide che segnala se avviene una collisione tra due item. Questo controllo è

28 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 20 iterato su ogni item che ha modificato la sua posizione controllando se è avvenuta una sovrapposizione tra ogni altro item della scena. Ogni istanza creata di questa classe, per cui ogni item, è identificata univocamente da un id generato alla creazione ed è memorizzata in data. 4.5 Manager Il manager è responsabile del controllo della scena, implementando la logica di controllo utilizzando gli altri manager specifici per ogni funzione. Utilizza il pattern template method in modo da lasciare alle sottoclassi (i vari manager) il compito di implementare alcuni passi del controllo come preferiscono. In questo modo si può ridefinire e personalizzare parte del comportamento nelle varie sottoclassi senza dover riscrivere più volte il codice in comune. Il pattern è implementato utilizzando un caratteristica funzionalità di Python, il duck typing (vedi sezione 3.3). Figura 4.5: Logica di controllo. La logica di controllo (figura 4.5) è iterata su ogni item memorizzato in data, che ha modificato la sua posizione. Per prima cosa si controlla se è visibile o no all interno della scena. Nel caso in cui non sia visibile perché è oltre i confini della scena, ne mantiene il controllo fin quando non rileva che l item è diventato visibile nella scena di un altro terminale online e ne cede il controllo. Nel caso in cui l item è visibile esegue il controllo se non è già sotto i comandi di un altro terminale. Il controllore dell item, deve muoverlo nella scena tramite il movemanager che in base alla modalità di movimento scelta indica la nuova posizione. Sulle nuove coordinate si controlla la posizione rispetto ai bordi della scena, ed è compito del wallmanager in base alle impostazioni correggere la nuova posizione in base a un eventuale urto contro le pareti. Una volta determinata la nuova posizione il bordermanager ha il compito di individuare i terminali online interessati del movimenti del item e di fornire al manager dei messaggi la lista dei datagrammi da inviare con i relativi destinatari, per informarli su che immagine visualizzare e di tutti i parametri del item. In caso di chiusura della scena (vedi sezione 4.8) è compito del manager inviare un messaggio di chiusura in broadcast per informare tutti i terminali online.

29 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 21 Figura 4.6: Esempio di passaggio di un oggetto da una scena all altra nel caso non siano addiacenti. In grigio è rappresentato il mondo virtuale visualizzato in parte dalle due scene, che sono quello che effettivamente viene mostrato a schermo. Il master dell oggetto è evidenziado usando lo stesso colore della scena che lo controlla BorderManager È il manager responsabile del controllo del perimetro della scena visibile, in caso di superamento del confine della scena, cerca i destinatari interessanti dal movimento dell item facendo un controllo di visibilità su tutte le scene registrate in data; ed invia un messaggio contenente l immagine, quando necessario e un messaggio di update contenente la posizione aggiornata. I controlli di visibilità, sono fatti aumentando i margini delle scene come indicato nella figura 4.7 (nel caso di due schermi), in modo tale da non avere rallentamenti dovuti al tempo richiesto per inviare il messaggio. È fondamentale che nel momento del passaggio dell item al interno della scena dell altro schermo, il messaggio sia già stato ricevuto. È questo il motivo per cui il bordo considerato per i messaggi di tipo immagine, i più pesanti, è il più ampio. In questo modo, inviando prima il messaggio, non si corre il rischio che non arrivi in tempo. Figura 4.7: I bordi della scena considerati dal border manager, nel invio di un oggetto dalla scena 1 alla scena 2, nel caso generale in cui non sono adiacenti.

30 CAPITOLO 4. SVILUPPO DELLA LIBRERIA MsgManager È il manager responsabile della creazione dei messaggi da inviare e dell estrazione delle informazioni dai datagrammi ricevuti. L elenco delle tipologie usate dalla libreria è il seguente (vedi la figura 4.8 per i vari formati) : msgupdate: messaggio utilizzato per fornire i valori aggiornati degli item a ogni cambiamento. Ogni datagramma contiene tutti i valori dell item, i parametri del rettangolo che contiene l immagine, il valore z che indica il livello, la modalità di movimento, i valori fisici cioè massa, velocità, direzione e infine l id del terminale che ne ha il controllo. msgimage: messaggio necessario per passare l immagine di un nuovo item, prima di inviare un messaggio di update con i valori. msgclose: messaggio inviato nel momento in cui viene chiusa la scena per informare tutti i terminali online di eliminare lo schermo uscente dalla memoria, in più ordina l invio di messaggi di tipo update e di tipo immagine per passare gli item che erano sotto il suo controllo a un altro in modo da non lasciarli senza un controllore (vedi sezione 4.8). msgsetup: messaggio inviato nel momento di apertura della scena, per informare gli altri terminali online della nuova connessione in modo da memorizzare i parametri della nuova scena (vedi sezione 4.7). Figura 4.8: Formati dei messaggi utilizzati nella libreria, in generale i messaggi sono sempre nel formato, tipo e informazioni. Il tipo è fondamentale in ricezione per capire in che modo estrarre le informazioni MoveManager È il manager responsabile del controllo dei movimenti di tutti gli item della scena. Il suo compito è calcolare la prossima posizione dell item. La modalità di movimento è memorizzata in data 4.3 insieme a tutti gli altri parametri dell item (vedi figura 4.3); in base alla modalità, viene utilizzata un implementazione diversa del movimento. Chiunque utilizza la libreria può creare una propria implementazione in base alle sue necessità e aggiungerla al dizionario del manager che gestisce i movimenti, in questo modo è possibile creare quante modalità di movimento si vogliono per la

31 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 23 propria applicazione. Ovviamente nel caso si voglia realizzare un applicazione senza movimenti questo manager può essere ignorato WallManager Il wallmanager stabilisce quali bordi della scena sono un muro oltre il quale gli item non possono andare e ne gestisce le collisioni con le pareti. Manager utilizzabile per applicazioni che necessitano di muri oltre il quale gli oggetti non devono andare. 4.6 Network Dopo aver esaminato ogni classe della libreria che permette il funzionamento della scena su ogni schermo, adesso ci occupiamo di come i terminali comunicano tra di loro. Figura 4.9: Header TCP. Come prima cosa è stato necessario scegliere il migliore protocollo di rete tra TCP e UDP. Il primo è un protocollo affidabile che garantisce la corretta consegna dei pacchetti a costo di un maggior overhead, 20 byte di intestazione (head) contro gli 8 byte del UDP, come si può vedere dalle immagini 4.9 e Al contrario UDP non da garanzie, ma grazie a questa mancanza è molto più leggero e per applicazioni che richiedono rapidità può essere un ottima scelta. In questo caso UDP fornisce le migliori prestazioni in quanto la mancanza di garanzie di consegna non è un problema rilevante, la perdita o collisione di pacchetti è improbabile, visto che i terminali sono connessi non tramite il web ma in rete locale usando uno switch, come mostrato nell immagine Ogni pacchetto inviato in rete avrà il formato in figura 4.12, sapendone la dimensione si ricava la banda necessaria per avere un frame rate minimo di 24 immagini al secondo. Per prima cosa calcoliamo con la formula (4.1) il numero di

32 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 24 Figura 4.10: Header UDP. Figura 4.11: Diagramma connessione di più terminali tramite switch. pacchetti necessari per inviare un immagine; dato il numero di pacchetti da inviare, troviamo con la (4.2) l overhead totale dovuto alle intestazioni di ogni pacchetto ed in fine, con la (4.3) abbiamo la banda necessaria (Mbps). Nei calcoli abbiamo trascurato i ritardi dovuti alle code nello swith, in quanto trascurabili. Supponendo di avere 8 nodi, di inviare immagini di 2MB e di voler mantenere un FPS (frame rate per second) minimo di 24, utilizzando le formule precedenti si trova che è sufficiente una banda di circa 50Mbps, per cui non avremo nessun problema con la connessione ethernet 10/100 dei Raspberry. Figura 4.12: Formato pacchetti invitati.

33 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 25 pacchetti = overhead = banda = dimimg 220 MSS (4.1) pacchetti (headip + headudp + headeth) 2 20 (4.2) (dimimg + overhead) 8 periodo nodi (4.3) MySignal MySignal è la classe che istanzia tutti i segnali QtCore.Signal() necessari al programma, in aggiunta a quelli già definiti dalla libreria PySide, come il segnale del timer per il tempo refresh. newmsg: segnale lanciato all arrivo di un nuovo messaggio da NetworkUDP (sezione 4.6), il segnale è connesso al msgmanager (sezione 4.5.2) in modo da attivare il metodo per estrarre le informazioni contenute nel msg nel momento in cui viene ricevuto. 4.7 Setup Il setup è la sequenza di passaggi che la libreria compie nel momento in cui si avvia la scena. Definizione della posizione dello schermo: se non viene specificato niente lo schermo assume la posizione di default (figura 4.14) altrimenti è richiesta una lista nel formato [x,y,w,h], con le indicazioni dei parametri del rettangolo della scena. Invio in broadcast del proprio setup: ogni terminale online viene informato della nuova presenza nella rete (messaggi blu fig 4.13). Risposta alla ricezione di un setup: in caso di ricezione di un messaggio di tipo setup 4.5.2, viene inviata una risposta al mittente con il proprio setup in modo tale da permettere al nuovo arrivato di aggiungere gli schermi già online alla sua classe data (messaggi gialli fig 4.13). Ridistribuzione del carico di lavoro: i terminali che erano già online cedono il controllo al nuovo arrivato degli elementi che si trovano al interno della sua scena, inviandogli messaggi di tipo immagine e update. 4.8 Chiusura Quando il programma viene chiuso, prima di arrestarsi del tutto segue una sequenza di passi in modo da cedere il controllo degli item sotto il suo comando, nel caso in cui non ci sia più nessuno online per prendere il comando non compie nessuna azione.

34 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 26 Figura 4.13: Invio messaggi di setup nel momento della connessione di un nuovo terminale (blu). Figura 4.14: Posizione di default degli schermi. Creazione della lista degli item controllati: la lista degli item memorizzata viene filtrata e la nuova lista contiene solo gli item di cui è il master. Ricerca di un nuovo master: per ogni item della nuova lista, si cerca tra i terminali online uno a cui cedere il controllo; si privilegiano quelli che hanno già in memoria l immagine dell item. Se nessun terminale ha già in memoria l item allora oltre a un messaggio di update, verrà inviato un messaggio immagine al nuovo controllore. Invio in broadcast di un messaggio di chiusura: tutti i terminali online vengono informati del fatto che uno degli schermi si sta chiudendo, in modo tale da eliminare le voci non più valide in data 4.3. Invio dei messaggi di update ai nuovi master: il terminale che riceve il messaggio aggiorna la propria lista degli item, salvando i nuovi elementi di cui ora è il controllore.

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

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

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

Bus di sistema. Bus di sistema

Bus di sistema. Bus di sistema Bus di sistema Permette la comunicazione (scambio di dati) tra i diversi dispositivi che costituiscono il calcolatore E costituito da un insieme di fili metallici che danno luogo ad un collegamento aperto

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

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Guida rapida all uso di ECM Titanium

Guida rapida all uso di ECM Titanium Guida rapida all uso di ECM Titanium Introduzione Questa guida contiene una spiegazione semplificata del funzionamento del software per Chiputilizzare al meglio il Tuning ECM Titanium ed include tutte

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

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

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

CARATTERISTICHE DELLE CRYPTO BOX

CARATTERISTICHE DELLE CRYPTO BOX Secure Stream PANORAMICA Il sistema Secure Stream è costituito da due appliance (Crypto BOX) in grado di stabilire tra loro un collegamento sicuro. Le Crypto BOX sono dei veri e propri router in grado

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

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

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

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

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

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

Progetti reali con ARDUINO

Progetti reali con ARDUINO Progetti reali con ARDUINO Introduzione alla scheda Arduino (parte 2ª) ver. Classe 3BN (elettronica) marzo 22 Giorgio Carpignano I.I.S. Primo LEVI - TORINO Il menù per oggi Lettura dei pulsanti Comunicazione

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

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

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

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

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

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

INDICE Informazioni Generali... 4. Comprare ebook con Kobo Desktop... 8. Usare la Libreria di Kobo Desktop... 10. Leggere su Kobo Desktop...

INDICE Informazioni Generali... 4. Comprare ebook con Kobo Desktop... 8. Usare la Libreria di Kobo Desktop... 10. Leggere su Kobo Desktop... Kobo Desktop Manuale Utente INDICE Informazioni Generali... 4 Installare Kobo Desktop su Windows... 5 Installare Kobo Desktop su Mac... 6 Comprare ebook con Kobo Desktop... 8 Usare la Libreria di Kobo

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

> MULTI TASKING > MULTI PROCESS > MULTI CORE

> MULTI TASKING > MULTI PROCESS > MULTI CORE > MULTI TASKING > MULTI PROCESS > MULTI CORE WorkNC V21 multicore 64 bits : Benefici di WorkNC Aumento generale della produttività, grazie alle nuove tecnologie multi-core, 64 bit e Windows 7 Calcolo di

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

Cos è un protocollo? Ciao. Ciao 2:00. tempo. Un protocollo umano e un protocollo di reti di computer:

Cos è un protocollo? Ciao. Ciao 2:00. <file> tempo. Un protocollo umano e un protocollo di reti di computer: Cos è un protocollo? Un protocollo umano e un protocollo di reti di computer: Ciao Ciao Hai l ora? 2:00 tempo TCP connection request TCP connection reply. Get http://www.di.unito.it/index.htm Domanda:

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

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

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

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

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

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

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

Progetto VirtualCED Clustered

Progetto VirtualCED Clustered Progetto VirtualCED Clustered Un passo indietro Il progetto VirtualCED, descritto in un precedente articolo 1, è ormai stato implementato con successo. Riassumendo brevemente, si tratta di un progetto

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Protocolli di rete Sommario Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Configurazione statica e dinamica

Dettagli

Procedura corretta per mappare con ECM Titanium

Procedura corretta per mappare con ECM Titanium Procedura corretta per mappare con ECM Titanium Introduzione: In questo documento troverete tutte le informazioni utili per mappare correttamente con il software ECM Titanium, partendo dalla lettura del

Dettagli

CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA

CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA Supponiamo di voler eseguire una istantanea del nostro desktop, quella che in gergo si chiama Screenshot (da screen, schermo, e shot, scatto fotografico).

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

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

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Guida all utilizzo del dispositivo USB

Guida all utilizzo del dispositivo USB Guida all utilizzo del dispositivo USB 30/04/2013 Sommario - Limitazioni di responsabilità e uso del manuale... 3 1. Glossario... 3 2. Guida all utilizzo del dispositivo USB... 4 2.1 Funzionamento del

Dettagli

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone Paragrafo 1 Prerequisiti Definizione di applicazione server Essa è un servizio che è in esecuzione su un server 1 al fine di essere disponibile per tutti gli host che lo richiedono. Esempi sono: il servizio

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

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

SERVER VIDEO 1-PORTA H.264

SERVER VIDEO 1-PORTA H.264 SERVER VIDEO 1-PORTA H.264 MANUALE UTENTE DN-16100 SALVAGUARDIA IMPORTANTE Tutti i prodotti senza piombo offerti dall'azienda sono a norma con i requisiti della legge Europea sulla restrizione per l'uso

Dettagli

Architetture CISC e RISC

Architetture CISC e RISC FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architetture CISC e RISC 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n.

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette.

Dettagli

Serduino - SERRA CON ARDUINO

Serduino - SERRA CON ARDUINO Serduino - SERRA CON ARDUINO 1 Componenti Facchini Riccardo (responsabile parte hardware) Guglielmetti Andrea (responsabile parte software) Laurenti Lorenzo (progettazione hardware) Rigolli Andrea (reparto

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

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

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Germano Pettarin E-book per la preparazione all ECDL ECDL Modulo 2 Sistema Operativo Windows Argomenti del Syllabus 5.0

Germano Pettarin E-book per la preparazione all ECDL ECDL Modulo 2 Sistema Operativo Windows Argomenti del Syllabus 5.0 Germano Pettarin E-book per la preparazione all ECDL ECDL Modulo 2 Sistema Operativo Windows Argomenti del Syllabus 5.0 G. Pettarin ECDL Modulo 2: Sistema Operativo 2 Modulo 2 Il sistema operativo Windows

Dettagli

Guida ai Servizi Internet per il Referente Aziendale

Guida ai Servizi Internet per il Referente Aziendale Guida ai Servizi Internet per il Referente Aziendale Indice Indice Introduzione...3 Guida al primo accesso...3 Accessi successivi...5 Amministrazione dei servizi avanzati (VAS)...6 Attivazione dei VAS...7

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

Lezione su Informatica di Base

Lezione su Informatica di Base Lezione su Informatica di Base Esplora Risorse, Gestione Cartelle, Alcuni tasti di scelta Rapida Domenico Capano D.C. Viterbo: Lunedì 21 Novembre 2005 Indice Una nota su questa lezione...4 Introduzione:

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

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org.

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Nuovo documento Anteprima di stampa Annulla Galleria Apri Controllo ortografico Ripristina Sorgente dati Salva Controllo

Dettagli

Di seguito sono descritti i prerequisiti Hardware e Software che deve possedere la postazione a cui viene collegata l Aruba Key.

Di seguito sono descritti i prerequisiti Hardware e Software che deve possedere la postazione a cui viene collegata l Aruba Key. 1 Indice 1 Indice... 2 2 Informazioni sul documento... 3 2.1 Scopo del documento... 3 3 Caratteristiche del dispositivo... 3 3.1 Prerequisiti... 3 4 Installazione della smart card... 4 5 Avvio di Aruba

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

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP Università degli Studi di Pisa Facoltà di Scienze Matematiche,Fisiche e Naturali Corso di Laurea in Informatica Michela Chiucini MIB PER IL CONTROLLO DELLO STATO DI UN SERVER

Dettagli

IT-BOOK. Domini Hosting Web marketing E-mail e PEC

IT-BOOK. Domini Hosting Web marketing E-mail e PEC 5 giugno 09 IT-BOOK Configurazioni e cartatteristiche tecniche possono essere soggette a variazioni senza preavviso. Tutti i marchi citati sono registrati dai rispettivi proprietari. Non gettare per terra:

Dettagli

Controllare un nastro trasportatore fischertechnik con Arduino

Controllare un nastro trasportatore fischertechnik con Arduino TITOLO ESPERIENZA: Controllare un nastro trasportatore fischertechnik con Arduino PRODOTTI UTILIZZATI: OBIETTIVO: AUTORE: RINGRAZIAMENTI: Interfacciare e controllare un modello di nastro trasportatore

Dettagli

Plesk Automation. Parallels. Domande tecniche più frequenti

Plesk Automation. Parallels. Domande tecniche più frequenti Parallels Plesk Automation Primo trimestre, 2013 Domande tecniche più frequenti Questo documento ha come scopo quello di rispondere alle domande tecniche che possono sorgere quando si installa e si utilizza

Dettagli

Progettazione di sistemi Embedded

Progettazione di sistemi Embedded Progettazione di sistemi Embedded Corso introduttivo di progettazione di sistemi embedded A.S. 2013/2014 proff. Nicola Masarone e Stefano Salvatori Eccetto dove diversamente specificato, i contenuti di

Dettagli

EndNote Web. Quick Reference Card THOMSON SCIENTIFIC

EndNote Web. Quick Reference Card THOMSON SCIENTIFIC THOMSON SCIENTIFIC EndNote Web Quick Reference Card Web è un servizio online ideato per aiutare studenti e ricercatori nel processo di scrittura di un documento di ricerca. ISI Web of Knowledge, EndNote

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

9. Urti e conservazione della quantità di moto.

9. Urti e conservazione della quantità di moto. 9. Urti e conservazione della quantità di moto. 1 Conservazione dell impulso m1 v1 v2 m2 Prima Consideriamo due punti materiali di massa m 1 e m 2 che si muovono in una dimensione. Supponiamo che i due

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

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Come installare e configurare il software FileZilla

Come installare e configurare il software FileZilla Come utilizzare FileZilla per accedere ad un server FTP Con questo tutorial verrà mostrato come installare, configurare il software e accedere ad un server FTP, come ad esempio quello dedicato ai siti

Dettagli

Architettura di un sistema informatico 1 CONCETTI GENERALI

Architettura di un sistema informatico 1 CONCETTI GENERALI Architettura di un sistema informatico Realizzata dal Dott. Dino Feragalli 1 CONCETTI GENERALI 1.1 Obiettivi Il seguente progetto vuole descrivere l amministrazione dell ITC (Information Tecnology end

Dettagli

Guida alla scansione su FTP

Guida alla scansione su FTP Guida alla scansione su FTP Per ottenere informazioni di base sulla rete e sulle funzionalità di rete avanzate della macchina Brother, consultare la uu Guida dell'utente in rete. Per ottenere informazioni

Dettagli

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+... Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad

Dettagli

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux.

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux. FAQ su GeCo Qual è la differenza tra la versione di GeCo con installer e quella portabile?... 2 Esiste la versione per Linux di GeCo?... 2 Quali sono le credenziali di accesso a GeCo?... 2 Ho smarrito

Dettagli

Funzioni di base. Manualino OE6. Outlook Express 6

Funzioni di base. Manualino OE6. Outlook Express 6 Manualino OE6 Microsoft Outlook Express 6 Outlook Express 6 è un programma, incluso nel browser di Microsoft Internet Explorer, che ci permette di inviare e ricevere messaggi di posta elettronica. È gratuito,

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. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi.

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi. I server di stampa vengono utilizzati per collegare le stampanti alle reti. In tal modo, più utenti possono accedere alle stampanti dalle proprie workstation, condividendo sofisticate e costose risorse.

Dettagli

Manuale di KDE su Geert Jansen Traduzione del documento: Dario Panico Traduzione del documento: Samuele Kaplun Traduzione del documento: Daniele Micci

Manuale di KDE su Geert Jansen Traduzione del documento: Dario Panico Traduzione del documento: Samuele Kaplun Traduzione del documento: Daniele Micci Geert Jansen Traduzione del documento: Dario Panico Traduzione del documento: Samuele Kaplun Traduzione del documento: Daniele Micci 2 Indice 1 Introduzione 5 2 Usare KDE su 6 3 Funzionamento interno 8

Dettagli

ALFABETIZZAZIONE DI BASE Programma del Corso livello base

ALFABETIZZAZIONE DI BASE Programma del Corso livello base Un po di Storia ISP & Web Engineering ALFABETIZZAZIONE DI BASE Programma del Corso livello base Breve cenno sulla storia dell informatica: dagli albori ai giorni nostri; L evoluzione di Windows: dalla

Dettagli

2009 Elite Computer. All rights reserved

2009 Elite Computer. All rights reserved 1 PREMESSA OrisDent 9001 prevede la possibilità di poter gestire il servizio SMS per l'invio di messaggi sul cellulare dei propri pazienti. Una volta ricevuta comunicazione della propria UserID e Password

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

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento.

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. Excel: le funzioni Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. DEFINIZIONE: Le funzioni sono dei procedimenti

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente www.ondacommunication.com CHIAVETTA INTERNET MT503HSA 7.2 MEGA UMTS/EDGE - HSDPA Manuale Utente Rev 1.0 33080, Roveredo in Piano (PN) Pagina 1 di 31 INDICE

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Scopo di questo corso, vuole essere quello di fornire ad ognuno dei partecipanti, indipendentemente dalle loro precedenti conoscenze informatiche, l apprendimento

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 installazione e d uso

Manuale di installazione e d uso Manuale di installazione e d uso 1 Indice Installazione del POS pag. 2 Funzionalità di Base - POS Sagem - Accesso Operatore pag. 2 - Leggere una Card/braccialetto Cliente con il lettore di prossimità TeliumPass

Dettagli

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory.

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory. @ PC (Personal computer): Questa sigla identificò il primo personal IBM del 1981 a cura di R.Mangini Archiviazione: Il sistema operativo si occupa di archiviare i file. Background (sfondo): Cursore: Nei

Dettagli

Marco Giorgi. Palazzo di Giustizia di Torino 30 marzo 2012

Marco Giorgi. Palazzo di Giustizia di Torino 30 marzo 2012 Marco Giorgi Palazzo di Giustizia di Torino 30 marzo 2012 Post mortem (Dopo lo spegnimento del sistema) Si smonta il dispositivo e lo si collega ad un PC dedicato all'acquisizione Live forensics (Direttamente

Dettagli

Entrate... 11 Uscite... 11 Trasferimento... 11 Movimenti ricorrenti... 11 Movimenti suddivisi... 12

Entrate... 11 Uscite... 11 Trasferimento... 11 Movimenti ricorrenti... 11 Movimenti suddivisi... 12 Data ultima revisione del presente documento: domenica 8 maggio 2011 Indice Sommario Descrizione prodotto.... 3 Licenza e assunzione di responsabilità utente finale:... 4 Prerequisiti:... 5 Sistema Operativo:...

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

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale InterWrite SchoolBoard è un software per lavagna elettronica di facile utilizzo. Può essere adoperata anche da studenti diversamente

Dettagli