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.

Raspberry Pi: Hardware Programming. Rossi Pietro Alberto

Raspberry Pi: Hardware Programming. Rossi Pietro Alberto Rossi Pietro Alberto Agenda Introduzione Hardware Software Programmazione, primi passi Protocolli di comunicazione Programmazione Conclusioni Introduzione Il Raspberry Pi è una scheda elettronica impementante

Dettagli

Introduzione al Python

Introduzione al Python Andrea Passerini passerini@disi.unitn.it Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti

Dettagli

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato SCP: SCHEDULER LAYER a cura di Alberto Boccato PREMESSA: Negli ultimi tre anni la nostra scuola ha portato avanti un progetto al quale ho partecipato chiamato SCP (Scuola di Calcolo Parallelo). Di fatto

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

Interpreti e compilatori La macchina di Von Neumann

Interpreti e compilatori La macchina di Von Neumann Interpreti e compilatori La macchina di Von Neumann Informatica@Matematica Simone Martini a.a. 2014-2015 1 / 38 Parte I Interpreti e compilatori 2 / 38 Macchine astratte Una macchina astratta è un esecutore

Dettagli

MODULO 1. 1.1 Il personal computer. ISIS STRINGHER Corso Serale Anno scolastico 2010/11 Classe 1 Commerciale

MODULO 1. 1.1 Il personal computer. ISIS STRINGHER Corso Serale Anno scolastico 2010/11 Classe 1 Commerciale MODULO 1 1.1 Il personal computer ISIS STRINGHER Corso Serale Anno scolastico 2010/11 Classe 1 Commerciale 1.1 Il personal computer Il PC Hardware e software Classificazioni del software Relazione tra

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

Dettagli

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI Buona lezione a tutti!! SISTEMI OPERATIVI Gli appunti sono disponibili per tutti gratis sul sito personale del Prof M. Simone al link: www.ascuoladi.135.it nella pagina web programmazione, sezione classi

Dettagli

LAN. Coassiale Doppino Fibra ottica

LAN. Coassiale Doppino Fibra ottica LAN Il cablaggio Tralascio la stesa dei cavi, in quanto per tale operazione basta una conoscenza di base di elettricità e tanta pazienza. Passiamo invece al tipo di supporto da utilizzare per realizzare

Dettagli

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps SOFTWARE PER LA GESTIONE DEI TELECONTROLLI SMS-GPS MANAGER Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps Rev.0911 Pag.1 di 8 www.carrideo.it INDICE 1. DESCRIZIONE

Dettagli

PATENTE EUROPEA DEL COMPUTER 4.0 MODULO

PATENTE EUROPEA DEL COMPUTER 4.0 MODULO PATENTE EUROPEA DEL COMPUTER 4.0 MODULO 2 Uso del Computer e Gestione dei file ( Windows XP ) A cura di Mimmo Corrado MODULO 2 - USO DEL COMPUTER E GESTIONE DEI FILE 2 FINALITÁ Il Modulo 2, Uso del computer

Dettagli

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3 Introduzione...xv A chi si rivolge questo libro...xv Gli argomenti trattati...xv Com è organizzato il libro...xvi Cosa occorre per utilizzare il libro...xvii Convenzioni adottate...xvii Il codice sorgente...xviii

Dettagli

Capitolo 1. Da dove iniziare

Capitolo 1. Da dove iniziare Capitolo 1 Da dove iniziare Breve storia di Raspberry Pi Il progetto Raspberry Pi venne annunciato alla comunità mondiale alla fine del 2011 dalla Raspberry Pi Foundation, una fondazione no-profit con

Dettagli

Ultr@ VNC: Guida (parte 1)

Ultr@ VNC: Guida (parte 1) Ultr@ VNC: Guida (parte 1) Vi presento la guida in italiano per l installazione e l utilizzo di Ultra VNC :http://ultravnc.sourceforge.net. Le potenzialità del programma ve le abbiamo già presentate :http://www.femetal.it/9/ultravncrecensione,

Dettagli

Hardware, software e dati

Hardware, software e dati Hardware, software e dati. Hardware il corpo del computer. Software i programmi del computer. Dati la memoria del computer ICT per la terza età Le video lezioni della Fondazione Mondo Digitale Diapositiva

Dettagli

Informatica e Bioinformatica: Sistemi Operativi

Informatica e Bioinformatica: Sistemi Operativi Informatica e Bioinformatica: Sistemi Operativi 11 marzo 2013 Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle

Dettagli

PROGRAMMA FINALE SVOLTO CLASSE 1 BT A.S. 2014/15

PROGRAMMA FINALE SVOLTO CLASSE 1 BT A.S. 2014/15 Istituto di Istruzione Superiore V. Bachelet Istituto Tecnico Commerciale - Liceo Linguistico Liceo Scientifico Liceo Scienze Umane Via Stignani, 63/65 20081 Abbiategrasso Mi PROGRAMMA FINALE SVOLTO CLASSE

Dettagli

Inizio. Politecnico Open unix Labs Corsi Linux Base 2013. Bruno Aleci

Inizio. Politecnico Open unix Labs Corsi Linux Base 2013. Bruno Aleci Inizio Politecnico Open unix Labs Corsi Linux Base 2013 Bruno Aleci Costruzione di un Media Center Con Rasberry PI e OpenELEC Hardware e Software Open Source 1 Cos'è un Media Center Visualizzatore Immagini

Dettagli

PROGRAMMAZIONE INFORMATICA PRIMO BIENNIO. Opzione Scienze Applicate

PROGRAMMAZIONE INFORMATICA PRIMO BIENNIO. Opzione Scienze Applicate PROGRAMMAZIONE INFORMATICA PRIMO BIENNIO Opzione Scienze Applicate Anno scolastico 2015-2016 Programmazione di Informatica pag. 2 / 8 INFORMATICA - PRIMO BIENNIO OBIETTIVI SPECIFICI DI APPRENDIMENTO DELL

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

http://tinyurl.com/mj22ncg Sicurezza nel WEB Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete

http://tinyurl.com/mj22ncg Sicurezza nel WEB Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete http://tinyurl.com/mj22ncg Sicurezza nel WEB Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete T.O.C. Presentazione Gli Strumenti Server dedicati Raspberry Configurazione

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

Dettagli

INDICE PROGRAMMA CORSO

INDICE PROGRAMMA CORSO INDICE PROGRAMMA CORSO PRIMA LEZIONE: Componenti di un computer: Hardware, Software e caratteristiche delle periferiche. SECONDA LEZIONE: Elementi principali dello schermo di Windows: Desktop, Icone, Mouse,

Dettagli

Manuale utente. ver 1.0 del 31/10/2011

Manuale utente. ver 1.0 del 31/10/2011 Manuale utente ver 1.0 del 31/10/2011 Sommario 1. Il Servizio... 2 2. Requisiti minimi... 2 3. L architettura... 2 4. Creazione del profilo... 3 5. Aggiunta di un nuovo dispositivo... 3 5.1. Installazione

Dettagli

ECDL Modulo 2. Contenuto del modulo. Uso del computer e gestione dei file

ECDL Modulo 2. Contenuto del modulo. Uso del computer e gestione dei file ECDL Modulo 2 Uso del computer e gestione dei file Contenuto del modulo Per iniziare Il desktop Organizzare i file Semplice editing Gestione della stampa Esercitazioni 1 Per iniziare (1) Per iniziare a

Dettagli

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

Dettagli

Server web e protocollo HTTP

Server web e protocollo HTTP Server web e protocollo HTTP Dott. Emiliano Bruni (info@ebruni.it) Argomenti del corso Cenni generali sul web IIS e Apache Il server web Micsosoft Internet Information Server 5.0 Il server web Apache 2.0

Dettagli

Introduzione. Perché è stato scritto questo libro

Introduzione. Perché è stato scritto questo libro Introduzione Perché è stato scritto questo libro Sul mercato sono presenti molti libri introduttivi a Visual C# 2005, tuttavia l autore ha deciso di scrivere il presente volume perché è convinto che possa

Dettagli

Manuale di Desktop Sharing. Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Desktop Sharing. Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Desktop Sharing 7 3.1 Gestione degli inviti di Desktop Sharing.........................

Dettagli

INTERAZIONE CON L UTENTEL

INTERAZIONE CON L UTENTEL IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

Configurare una rete con PC Window s 98

Configurare una rete con PC Window s 98 Configurare una rete con PC Window s 98 In estrema sintesi, creare una rete di computer significa: realizzare un sistema di connessione tra i PC condividere qualcosa con gli altri utenti della rete. Anche

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

Dettagli

3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software

3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software Pagina 29 di 47 3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software Come abbiamo già detto in precedenza, l informatica si divide in due grandi mondi : l hardware

Dettagli

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps SOFTWARE PER LA GESTIONE DEI TELECONTROLLI SMS-GPS MANAGER Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps Rev.1009 Pag.1 di 10 www.carrideo.it INDICE 1. DESCRIZIONE

Dettagli

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1 Introduzione Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio Livello applicativo Principi delle applicazioni di rete 2-1 Pila di protocolli Internet Software applicazione: di

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

CLASSE PRIMA Istruzione Professionale Servizi Commerciali a.s. 2013/14

CLASSE PRIMA Istruzione Professionale Servizi Commerciali a.s. 2013/14 IIS Almerico Da Schio - DISCIPLINA: Informatica e Laboratorio CLASSE PRIMA Istruzione Professionale Servizi Commerciali a.s. 2013/14 COMPETENZE ABILITÀ/ CAPACITÀ CONOSCENZE dei linguaggi L1 Utilizzare

Dettagli

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi Parte V & Reti Sistema operativo: insieme di programmi che gestiscono l hardware Hardware: CPU Memoria RAM Memoria di massa (Hard Disk) Dispositivi di I/O Il sistema operativo rende disponibile anche il

Dettagli

Un Sistema Location-based per la mappatura degli Access Point

Un Sistema Location-based per la mappatura degli Access Point 1 Un Sistema Location-based per la mappatura degli Access Point Pasquale Cautela pasquale.cautela@studio.unibo.it Marco Peca marco.peca@studio.unibo.it Rosario Salpietro rosario.salpietro@studio.unibo.it

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

Gestione del database Gidas

Gestione del database Gidas Gestione del database Gidas Manuale utente Aggiornamento 20/06/2013 Cod. SWUM_00535_it Sommario 1. Introduzione... 3 2. Requisiti e creazione del Database Gidas... 3 2.1.1. SQL Server... 3 2.1.2. Requisiti

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

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

Laboratorio di Programmazione Strutturata

Laboratorio di Programmazione Strutturata Laboratorio di Programmazione Strutturata Facoltà di Scienze e Tecnologie per i Media Anno 2008/2009 Dati Generali Docente del corso : Dott. Tulimiero Davide Materiale del corso : Corso completo di programmazione

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

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

Corso di Introduzione all Informatica (corso A) MS-WINDOWS. Esercitatore: Francesco Folino

Corso di Introduzione all Informatica (corso A) MS-WINDOWS. Esercitatore: Francesco Folino Corso di Introduzione all Informatica (corso A) MS-WINDOWS Esercitatore: Francesco Folino IL SISTEMA OPERATIVO Il Sistema Operativo è il software che permette l interazione tra uomo e macchina (hardware).

Dettagli

Elementi del calcolatore: CPU

Elementi del calcolatore: CPU Elementi del calcolatore: CPU Elementi del calcolatore: Memoria Elementi del calcolatore: Memoria Elementi del calcolatore: Hard Disk Antefatto Sistema Operativo Come il computer appare Il calcolatore

Dettagli

REDPITAYA: IL LABORATORIO ELETTRONICO OPEN SOURCE

REDPITAYA: IL LABORATORIO ELETTRONICO OPEN SOURCE REDPITAYA: IL LABORATORIO ELETTRONICO OPEN SOURCE di MARCO MAGAGNIN Presentiamo uno strumento programmabile di misura ed acquisizione dati, open source, realizzato utilizzando il SoC Xilinx Zynq 7010,

Dettagli

Appunti Modulo 2 - Microsoft Windows

Appunti Modulo 2 - Microsoft Windows www.informarsi.net Appunti Modulo 2 - Microsoft Windows Sistema operativo Il sistema operativo, abbreviato in SO (in inglese OS, "operating system") è un particolare software, installato su un sistema

Dettagli

Corso di Introduzione all Informatica MS-WINDOWS. Esercitatore: Fabio Palopoli

Corso di Introduzione all Informatica MS-WINDOWS. Esercitatore: Fabio Palopoli Corso di Introduzione all Informatica MS-WINDOWS Esercitatore: Fabio Palopoli IL SISTEMA OPERATIVO Il Sistema Operativo è il software che permette l interazione tra uomo e macchina (hardware). Il S.O.

Dettagli

LUdeS Informatica 2 EXCEL. Prima parte AA 2013/2014

LUdeS Informatica 2 EXCEL. Prima parte AA 2013/2014 LUdeS Informatica 2 EXCEL Prima parte AA 2013/2014 COS E EXCEL? Microsoft Excel è uno dei fogli elettronici più potenti e completi operanti nell'ambiente Windows. Un foglio elettronico è un programma che

Dettagli

Sommario. Modulo 8: Applicativi. Parte 3: Terminale remoto. Premessa Telnet SSH XWindows VNC RDP. Gennaio Marzo 2007

Sommario. Modulo 8: Applicativi. Parte 3: Terminale remoto. Premessa Telnet SSH XWindows VNC RDP. Gennaio Marzo 2007 Modulo 8: Applicativi Parte 3: Terminale remoto 1 Sommario Premessa Telnet SSH XWindows VNC RDP Reti di Calcolatori 2 1 Premessa Necessita : controllare a distanza un dispositivo attraverso la connessione

Dettagli

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 25 febbraio 2015. Corso di laurea in Matematica

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 25 febbraio 2015. Corso di laurea in Matematica Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 25 febbraio 2015 1 / 42 INFORMATICA Varie definizioni: Scienza degli elaboratori elettronici (Computer Science)

Dettagli

Corso Eclipse. Prerequisiti. 1 Introduzione

Corso Eclipse. Prerequisiti. 1 Introduzione Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated

Dettagli

NetComp quick reference. 1. NETCOMP...2 2. Supporto Windows CE...3 3. UPDATE SISTEMA...8. 3.1 Update Bootloader/Image...8

NetComp quick reference. 1. NETCOMP...2 2. Supporto Windows CE...3 3. UPDATE SISTEMA...8. 3.1 Update Bootloader/Image...8 MNL139A000 NetComp quick reference ELSIST S.r.l. Sistemi in elettronica Via G. Brodolini, 15 (Z.I.) 15033 CASALE M.TO ITALY Internet: http://www.elsist.it Email: elsist@elsist.it TEL. (39)-0142-451987

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

L informatica comprende:

L informatica comprende: Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Virtualizzazione VirtualBox 4.1.2 su Host Windows

Virtualizzazione VirtualBox 4.1.2 su Host Windows Virtualizzazione VirtualBox 4.1.2 su Host Windows La virtualizzazione, quando riferita all informatica, consiste nella creazione di una versione virtuale di una risorsa normalmente fornita fisicamente.

Dettagli

Crotone, maggio 2005. Windows. Ing. Luigi Labonia E-mail luigi.lab@libero.it

Crotone, maggio 2005. Windows. Ing. Luigi Labonia E-mail luigi.lab@libero.it Crotone, maggio 2005 Windows Ing. Luigi Labonia E-mail luigi.lab@libero.it Sistema Operativo Le funzioni software di base che permettono al computer di funzionare formano il sistema operativo. Esso consente

Dettagli

WGDESIGNER Manuale Utente

WGDESIGNER Manuale Utente WGDESIGNER Manuale Utente Pagina 1 SOMMARIO 1 Introduzione... 3 1.1 Requisiti hardware e software... 3 2 Configurazione... 3 3 Installazione... 4 3.1 Da Webgate Setup Manager... 4 3.2 Da pacchetto autoestraente...

Dettagli

Accesso Remoto: Che cos'è Q uali programmi si utilizzano Come si effettua (teoria) Q uando è utile

Accesso Remoto: Che cos'è Q uali programmi si utilizzano Come si effettua (teoria) Q uando è utile Accesso Remoto Accesso Remoto: Che cos'è Q uali programmi si utilizzano Come si effettua (teoria) Q uando è utile Che cos'è Possibilità di accedere ai processi residenti su un altro computer da una postazione

Dettagli

Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web

Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web Mattia Gentilini Relatore: Renzo Davoli Laurea Specialistica in Informatica I Sessione A.A. 2005/2006

Dettagli

Networking Wireless con Windows XP

Networking Wireless con Windows XP Networking Wireless con Windows XP Creare una rete wireless AD HOC Clic destro su Risorse del computer e quindi su Proprietà Clic sulla scheda Nome computer e quindi sul pulsante Cambia Digitare il nome

Dettagli

STRUTTURA DI UN COMPUTER

STRUTTURA DI UN COMPUTER STRUTTURA DI UN COMPUTER Il computer si serve di dati che vengono immessi da sistemi di INPUT (tastiera, mouse ecc.), vengono elaborati e restituiti da sistemi di OUTPUT (schermo, stampante ecc.). La parte

Dettagli

La posta elettronica. ICT per la terza età Le video lezioni della Fondazione Mondo Digitale

La posta elettronica. ICT per la terza età Le video lezioni della Fondazione Mondo Digitale La posta elettronica ICT per la terza età Le video lezioni della Fondazione Mondo Digitale Diapositiva Introduzione Posta elettronica E mail Elettronica Posta In questo argomento del nostro corso impareremo

Dettagli

Word Elaborazione testi

Word Elaborazione testi I seguenti appunti sono tratti da : Consiglio Nazionale delle ricerche ECDL Test Center modulo 3 Syllabus 5.0 Roberto Albiero Dispense di MS Word 2003 a cura di Paolo PAVAN - pavan@netlink.it Word Elaborazione

Dettagli

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

Dettagli

Stress-Lav. Guida all uso

Stress-Lav. Guida all uso Stress-Lav Guida all uso 1 Indice Presentazione... 3 I requisiti del sistema... 4 L'installazione del programma... 4 La protezione del programma... 4 Per iniziare... 5 Struttura delle schermate... 6 Password...

Dettagli

Ubiquity getting started

Ubiquity getting started Introduzione Il documento descrive I passi fondamentali per il setup completo di una installazione Ubiquity Installazione dei componenti Creazione del dominio Associazione dei dispositivi al dominio Versione

Dettagli

1) Una periferica di input è: A) il mouse B) il monitor C) la stampante

1) Una periferica di input è: A) il mouse B) il monitor C) la stampante CONOSCENZE DI INFORMATICA 1) Una periferica di input è: A) il mouse B) il monitor C) la stampante 2) Una memoria in sola lettura con la particolarità di essere cancellata in particolari condizioni è detta:

Dettagli

PROGRAMMA DI INFORMATICA CLASSE: 1 C Indirizzo: AMMINISTRAZIONE FINANZA E MARKETING Anno Scolastico 2014-2015

PROGRAMMA DI INFORMATICA CLASSE: 1 C Indirizzo: AMMINISTRAZIONE FINANZA E MARKETING Anno Scolastico 2014-2015 CLASSE: 1 C Indirizzo: AMMINISTRAZIONE FINANZA E MARKETING MODULO HARDWARE 1. Che cos è il PC - Gli elementi del computer- Unità centrale:uc-alu- RAM - La memorizzazione delle informazioni:bit-byte. Sistemi

Dettagli

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore Dispensa di Fondamenti di Informatica Architettura di un calcolatore Hardware e software La prima decomposizione di un calcolatore è relativa ai seguenti macro-componenti hardware la struttura fisica del

Dettagli

Raspberry Pi - Labolatorio Informatica

Raspberry Pi - Labolatorio Informatica Raspberry Pi - Labolatorio Informatica Indice 1 Prerequisiti 2 2 Installazione di Raspbian su scheda SD 2 2.1 Installazione con Linux...................................... 2 2.2 Installazione con Windows....................................

Dettagli

1) Introduzione ai sistemi operativi (O.S.=operative system)

1) Introduzione ai sistemi operativi (O.S.=operative system) 1) Introduzione ai sistemi operativi (O.S.=operative system) Sistema Operativo: è un componente del software di base di un computer che gestisce le risorse hardware e software, fornendo al tempo stesso

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

FileMaker Pro 13. Utilizzo di una Connessione Desktop Remota con FileMaker Pro13

FileMaker Pro 13. Utilizzo di una Connessione Desktop Remota con FileMaker Pro13 FileMaker Pro 13 Utilizzo di una Connessione Desktop Remota con FileMaker Pro13 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054

Dettagli

Corso base per l uso del computer. Corso organizzato da:

Corso base per l uso del computer. Corso organizzato da: Corso base per l uso del computer Corso organizzato da: S Programma del Corso Ing. Roberto Aiello www.robertoaiello.net info@robertoaiello.net +39 334.95.75.404 S S Informatica S Cos è un Computer Il personal

Dettagli

EX-word TextLoader Funzione Biblioteca

EX-word TextLoader Funzione Biblioteca Dizionario elettronico EX-word (Serie C) EX-word TextLoader Funzione Biblioteca Guida dell utilizzatore Importante! Il presente manuale copre il funzionamento di vari differenti modelli di dizionari elettronici

Dettagli

Compilazione rapporto di Audit in remoto

Compilazione rapporto di Audit in remoto Compilazione rapporto di Audit in remoto Installazione e manuale utente CSI S.p.A. V.le Lombardia 20-20021 Bollate (MI) Tel. 02.383301 Fax 02.3503940 E-mail: info@csi-spa.com Rev. 1.1 23/07/09 Indice Indice...

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

Concetti di base della Tecnologia dell'informazione e della Comunicazione. Studio Elfra sas Via F.lli Ruffini 9 17031 Albenga SV 0182596058

Concetti di base della Tecnologia dell'informazione e della Comunicazione. Studio Elfra sas Via F.lli Ruffini 9 17031 Albenga SV 0182596058 by Studio Elfra sas Concetti di base della Tecnologia dell'informazione e della Comunicazione Aggiornato a Aprile 2009 Informatica di base 1 Elaborazione testi I word processor, o programmi per l'elaborazione

Dettagli

Indice generale. Introduzione...xi. Capitolo 1 Da dove iniziare... 1. Capitolo 2 Collegamenti con il mondo esterno... 9

Indice generale. Introduzione...xi. Capitolo 1 Da dove iniziare... 1. Capitolo 2 Collegamenti con il mondo esterno... 9 Introduzione...xi Capitolo 1 Da dove iniziare... 1 Breve storia di Raspberry Pi... 1 Un progetto nato per passione... 2 Piattaforma educativa, ma non solo... 3 Il primo Raspberry Pi... 3 I modelli in produzione...

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3

Dettagli

1. Avviare il computer

1. Avviare il computer Guida n 1 1. Avviare il computer 2. Spegnere correttamente il computer 3. Riavviare il computer 4. Verificare le caratteristiche di base del computer 5. Verificare le impostazioni del desktop 6. Formattare

Dettagli

Il computer: primi elementi

Il computer: primi elementi Il computer: primi elementi Tommaso Motta T. Motta Il computer: primi elementi 1 Informazioni Computer = mezzo per memorizzare, elaborare, comunicare e trasmettere le informazioni Tutte le informazioni

Dettagli

Registro unico Antiriciclaggio

Registro unico Antiriciclaggio Registro unico Antiriciclaggio VERSIONE PROFESSIONISTI E CED VERSIONE 4.0.0 Sommario Introduzione... 4 Requisiti di sistema... 5 Installazione del software... 6 Verifica automatica dei requisiti di installazione...

Dettagli

Modulo 8 Ethernet Switching

Modulo 8 Ethernet Switching Modulo 8 Ethernet Switching 8.1 Ethernet Switching 8.1.1 Bridging a livello 2 Aumentando il numero di nodi su un singolo segmento aumenta la probabilità di avere collisioni e quindi ritrasmissioni. Una

Dettagli

SERVER NAS. Di Louise Jimenez. RELATORE: Julia Totaro REFERENTE TECNICO: Luca Cesana

SERVER NAS. Di Louise Jimenez. RELATORE: Julia Totaro REFERENTE TECNICO: Luca Cesana SERVER NAS Di Louise Jimenez RELATORE: Julia Totaro REFERENTE TECNICO: Luca Cesana Classe III B Operatore Elettronico ID: 110612 Anno scolastico 2014/15 INDICE Introduzione.1 Com è collegato un NAS con

Dettagli

PhoneSuite Manuale dell utente. Istruzioni preliminari: installazione e primo impiego di Phone Suite

PhoneSuite Manuale dell utente. Istruzioni preliminari: installazione e primo impiego di Phone Suite PhoneSuite Manuale dell utente Istruzioni preliminari: installazione e primo impiego di Phone Suite Il software PhoneSuite può essere utilizzato direttamente da CD o essere installato sul PC. Quando si

Dettagli

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

Dettagli

'LVSHQVD :LQGRZV GL0&ULVWLQD&LSULDQL

'LVSHQVD :LQGRZV GL0&ULVWLQD&LSULDQL 'LVSHQVD 'L :LQGRZV GL0&ULVWLQD&LSULDQL ',63(16$',:,1'2:6,QWURGX]LRQH Windows 95/98 è un sistema operativo con interfaccia grafica GUI (Graphics User Interface), a 32 bit, multitasking preempitive. Sistema

Dettagli

Sicurezza nel WEB. Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete

Sicurezza nel WEB. Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete Slide disponibili su http://www.inginfpoliba.eu Sicurezza nel WEB Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete A cura di Maurizio Triggiani maurizio@triggiani.net

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture

Dettagli