Rimando ai vari tutorial che ci sono sulla rete per la configurazione dei componenti.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Rimando ai vari tutorial che ci sono sulla rete per la configurazione dei componenti."

Transcript

1 Questo è un tutorial BASICO, scritto pensando anche a chi non ha mai avuto a che fare con lo sviluppo di Wss. Per questo motivo le definizioni di alcuni concetti potrebbero essere approssimative in quanto ho privilegiato la chiarezza alla correttezza formale. Inoltre io stesso non sono un esperto di questi argomenti. Ancora un ultimo avviso: io sono un fan dei layer nelle applicazioni, e quindi tendo tendo a suddividerle. Nessuna eccezione in questo tutorial. Infatti quello che troverete qui, sono due progetti: un progetto web che conterrà tutti i file di configurazione e la definizione del WS un progetto libreria che conterrà tutte le implementazioni necessarie Perchè questo articolo? Ultimamente mi sono trovato a dover affrontare lo sviluppo di un web service, cosa che mi era capitata solo una volta in precedenza. Inoltre, mentre nella precedente occasione ho potuto utilizzare un approccio contract last, questa volta era indispensabile utilizzare l'approccio inverso contractfirst (questo per motivi architetturali). C'è una grande differenza fra i due approcci, e il passaggio da uno all'altro comporta un radicale cambiamento nel modo di pensare al servizio. Con un approccio contract last si pensa come un classico programmatore in termini di moduli, classi, metodi delegando poi a qualche tool esterno, come ad esempio Axis2, la pubblicazione del servizio (vedremo appena sotto cosa pubblicazione significa). Al contrario, con l'approccio contract first la vostra prima preoccupazione deve essere la pubblicazione. Quindi, cosa ci serve per pubblicare un WS? Un WSDL! Un WSDL è in effetti un contratto che descrive interamente il servizio in termini di tipi (richieste e risposte) e operazioni. Questa è la via più formale di sviluppare un WS. Sfortunatamente, come spesso succede, è anche la più complicata. Inoltre è necessario tenere a mente che un servizio è la sua definizione, non la sua implementazione. In altri termini, il focus primario in questo caso è l'interfaccia di comunicazione fra il mondo e il nostro servizio. Più avanti in questo articolo, supporrò una fondamentale differenza fra i termini metodo e operazione: un metodo è relativo ad una classe, un'operazione ad un WS. Devo dire che ho trovato piuttosto duro il passaggio da un approccio all'altro, per questo ho deciso di scrivere questo articolo, pensando che sia un argomento che merita di essere ben descritto. Questo è il perchè, ora passiamo al cosa. Quello che ci serve Eclipse Ganymede java 1.6 Maven Apache Tomcat XJC eclipse plugin (tool di generazione di classi a partire da un XSD) SoapUI (il plugin per eclipse mi ha creato parecchi problemi, ho optato quindi per la versione stand alone) Rimando ai vari tutorial che ci sono sulla rete per la configurazione dei componenti. Perchè Spring WS? Approaching WS development thinking at the contract, means defining its WSDL and then develop the code (java, C#,...) to fullfill the requests. L'approccio contract first, come visto, impone che si pensi prima al contratto che all'implementazione; significa che bisogna prima definire il WSDL e quindi pensare

2 all'implementazione (java, C#,...) che soddisfi le richieste. Ma un file WSDL + abbastanza complicato e certamente di non istantanea comprensione. Spring WS aiuta molto in questo, in quanto ci permette di pensare in termini di XSD piuttosto che di WSDL. In altri termini, ci si può concentrare nella definizione dei tipi, Inoltre, devo dire che trovo Spring un framework davvero valido. L'ho conosciuto nell'ultimo mese per fare sicurezza (Spring Security); da lì ho conosciuto Springbeans e il contenitore IoC. Quindi ho visto anche l'aop. Ora come ora, il mo progetto (nato come semplice servizio contract last con Axis2) è diventato un progetto che si basa quasi interamente su Spring utilizzando security, beans, aop e ws. Cosa vogliamo costruire? Quello che intendiamo sviluppare in questo articolo è un WS che esponga due operazioni 1. Hello(): che risponda con hello! 2. HelloTo(string): che risponda con hello + string Creazione di un nuovo progetto web Creare un nuovo progetto Selezionare Maven Maven project Siete liberi di mettere i nomi che volete al progetto, ma selezionate spring ws archetype come archetipo. Creazione del progetto libreria Come prima create un nuovo progetto. Siete sempre liberi di mettere i nomi che volete, ma selezionate come archetipo maven archetypequickstart. Usando Maven, aggiungete a questo la dipendenza al pacchetto spring ws (consiglio il jar completo). Sempre con Maven referenziate il progetto libreria all'interno del progetto web. Implementazione Abbiamo creato la struttura base dei nostri progetti. Visto che stiamo utilizzando un approccio contract first, cominciamo dal progetto web. If we look at the content of the WEB INF folder, we can see that along with web.xml there is one more file: spring ws servlet.xml. Se osserviamo il contenuto della cartella WEB INF, possiamo vedere che assieme al classico web.xml, c'è un altro file (lo ha messo Maven): spring ws servlet.xml Apriamo questi due file. In web.xml notiamo che è definita una servlet chiamata spring ws che mappa tutti i percorsi. Possiamo anche chiudere web.xml, non ci servirà più (può essere modificato, per esempio per far sì che la servlet risponda solo su alcuni percorsi, ma non è questo il nostro scopo al momento). The second is an empty XML file, except for the root element <schema> and the namespace definition. Il secondo è un file xml vuoto, a parte per il tag radice <schema> che contiene la definizione del namespace. Il nome del file qui è importante, in quanto per convezione deve essere [nome servlet] servlet.xml (in realtà, è possibile cambiare questa convenzione aggiungendo qualcosa al web.xml, ma nemmeno questo è il nostro scopo)

3 Questo file è il context della servlet e sarà usato più avanti per istanziare i vari oggetti e collegarli tra loro all'interno del'ioc container di Spring. Ci preoccuperemo di editare questo file una volta che avremo definito il servizio e implementato le classi necessarie. Adesso, la domanda che dobbiamo porci è: Cosa vogliamo che il nostro servizio faccia? Cosa deve esporre al mondo e come il mondo può comunicare con lui? Come già detto, il WS deve esporre due operazioni: Hello HelloTo(string) La definizione di un servizio gira tutta intorno a requests e responses (uso i termini inglesi in quanto sono termini tecnici riconosciuti a livello internazionale). Adesso dirò una cosa che dovrete dimenticare subito, ma è giusto per farmi capire da chi non ha mai visto un WS: una request ad un WS è assimilabile alla chiamata di un metodo di una classe in OOP. La request viaggerà sulla rete, tipicamente con il protocollo SOAP, e sarà qualcosa di simile a questo: <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:spr="http://www.innove.it/life/spring ws annotations"> <soapenv:header/> <soapenv:body> <spr:hellorequest/> </soapenv:body> </soapenv:envelope> Come già detto, vogliamo un servizio con due operazioni: segnifica che dobbiamo creare due request. Per prima cosa, creiamo la loro descrizione in XSD. Creiamo il file tutorial.xsd nella cartella WEB INF ed editiamolo subito per apportare una modifica e poi aggiungere le nostre request. Inizialmente il notro file sarà qualcosa di simile a questo: <?xml version="1.0" encoding="utf-8"?> <schema xmlns="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.example.org/tutorial" xmlns:tns="http://www.example.org/tutorial" elementformdefault="qualified"> </schema> Dobbiamo cambiare il namespace di destinazione. Suppongo che il namespace sia ws annotations (è una scelta assolutamente arbitraria) Il risultato sarà: <?xml version="1.0" encoding="utf-8"?> <schema xmlns="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.innove.it/life/spring-ws-annotations" xmlns:tns="http://www.innove.it/life/spring-ws-annotations" elementformdefault="qualified">

4 </schema> Adesso aggiungiamo la definizione delle nostre request: la prima sarà vuota, la seconda conterrà un elemento (una stringa nella fattispecie) <element name="hellorequest"> <complextype></complextype> </element> <element name="hellotorequest"> <complextype> <all> <element name="to" type="string"></element> </all> </complextype> </element> Grazie a Spring, questo è tutto ciò che ci è richieste per creare il contratto del WS (sembra banale, me pensate ad un WS reale: quante operazioni dovrà esporre?) Possiamo quindi cominciare a pensare all'impementazione. Le prime cose da implementare sono le nostre request (vanno implementate perchè poi noi lavoreremo con un linguaggio di programmazione, quindi anche lui deve conoscere la loro struttura). Possiamo farlo a mano, ma consiglio di usare il plugin XJC per Eclipse in quanto le classi vanno annotate in una maniera particolare. Una volta installato il plugin (molto semplice. Scaricare il jar, copiarlo nella cartella plugin e riavviare Eclipse) possiamo generare le classi cliccando col destro sul nostro file.xsd e selezionando JAXB 2.1 Run XJC : ci sarà richiesto la cartella dove generare i file e il loro package. Supponiamo di scegliere la cartella del sorgente del progetto libreria e come package it.innove.life.tutorials.spring.ws.schema. Osserviamo adesso il progetto libreria: potete notare che sono state create delle classi nel package specificato: due di loro implementano in linguaggio Java i tipi definiti nell'xsd. Adesso che abbiamo considerato le request, dobbiamo considerare le response. Entrambe le operazioni danno come response una stringa. Sfortunatamente, Jaxb non riesce a serializzare java.lang.string in quanto non presenta le annotazioni necessarie. Dobbiamo quindi creare un wrapper alla classe String package it.innove.life.tutorials.spring.ws.types; import javax.xml.bind.annotation.xmlaccesstype; import javax.xml.bind.annotation.xmlaccessortype; import javax.xml.bind.annotation.xmlelement; import javax.xml.bind.annotation.xmlrootelement; /** stefano public class private String value;

5 public StringType() public StringType(String value) this.setvalue(value); public void setvalue(string value) this.value = value; public String getvalue() return value; Non c'è molto da dire su questa classe: solo, date un occhio alle annotazioni. Procediamo con l'implementazione dei restanti oggetti. Per prima cosa, l'implementazione del servizio package it.innove.life.tutorials.spring.ws.services; /** stefano * */ public class HelloService public String hello() return "hello!"; public String helloto(string to) return "hello " + to; Niente da dire. Fa quello che ci si aspetta che faccia. Adesso siamo alla parte centrale: gli endpoint. Questo sono gli autentici punti di comunicazione fra il contratto e l'implementazione del nostro servizio. Parliamo un attimo degli endpoint. Per ogni request deve esistere un endpoint (li potete vedere come handlers). L'implementazione del servizio non sarà mai chiamata direttamente, ma sarà responsabilità degli endpoint di instradare la richiesta al servizio adatto. Inoltre, ogni endpoint è mappato per una particolare request, e quindi la molteplicità fra request e endpoint è 1:1. E' responsabilità di Spring mappare le request sugli endpoint. In generale, quindi, ci dovrebbe essere una classe endpoint per ogni singola request. Ma, visto che usiamo Spring WS con le annotazioni, possiamo rilassare questo vincolo ottenendo che le request hanno una molteplicità 1:1 con i metodi (cosicchè una classe può mappare più endpoint). Diamo innanzitutto uno sguardo al codice che commenteremo poi.

6 package it.innove.life.tutorials.spring.ws.endpoints; import it.innove.life.tutorials.spring.ws.schema.hellorequest; import it.innove.life.tutorials.spring.ws.schema.hellotorequest; import it.innove.life.tutorials.spring.ws.services.helloservice; import it.innove.life.tutorials.spring.ws.types.stringtype; import org.springframework.ws.server.endpoint.annotation.endpoint; import org.springframework.ws.server.endpoint.annotation.payloadroot; /** stefano * public class HelloServiceEndpoint private HelloService service; HelloServiceEndpoint(HelloService service) this.service = namespace="http://www.innove.it/life/spring-ws-annotations") public StringType hello(hellorequest request) return new StringType( service.hello() namespace="http://www.innove.it/life/spring-ws-annotations") public StringType helloto(hellotorequest request) return new StringType( service.helloto(request.getto())); Tre cose importanti da notare: 1. tutti i metodi ritornano dei POJO annotati secondo JAXB 2. La classe è annotata questo dice a Spring che deve guardare all'interno della classe per ricercare gli endpoint 3. I metodi sono annotati I parametri corrispondono rispettivamente ai nomi dei tipi definiti nell'xsd e al targetnamespace sempre dell'xsd. Ci siamo quasi! Abbiamo implementato tutto quello che ci serve (veramente manca una cosa, ma la vedremo dopo in quanto qui non riuscirei a spiegare perchè ci sia l'esigenza di estendere una classe di Spring). Focalizziamoci ora sul servlet context. Quindi ritorniamo al progetto libreria e apriamo il file spring ws servlet.xml. Stiamo per popolare il contesto e il contenitore IoC di Spring, collegando tra loro gli oggetti in modo da costruire il contesto della servlet. Faremo qui un uso pesante degli Spring beans: se non conoscete l'argomento, raccomando che leggiate la documentazione e che facciate qualche test. Questo argomento è troppo importante per

7 poterne parlare qui in poche parole. Procediamo passo passo. La prima cosa da aggiungere è la definizione dell'implementazione del servizio: <bean id="helloservice" class="it.innove.life.tutorials.spring.ws.services.helloservice" /> Niente da dire. Tenete a mente l'id del bean perchè sarà referenziato più sotto. Passo successivo, dobbiamo predisporre il meccanismo di marshalling <bean id="marshaller" class="org.springframework.oxm.jaxb.jaxb2marshaller"> <property name="classestobebound"> <list> <value>it.innove.life.tutorials.spring.ws.schema.hellorequest</value> <value>it.innove.life.tutorials.spring.ws.schema.hellotorequest</value <value>it.innove.life.tutorials.spring.ws.types.stringtype</value> </list> </property> Vale la pena di spendere due parole su questo. Stiamo instanziando un oggetto responsabile del [un]marshalling, basato su Jaxb e lo stiamo istruendo sui tipi di cui deve occuparsi. Dovrete aggiungere qui tutti i tipi che saranno oggetto di marshalling (serializzazione e deserializzazione per essere chiari) Finora abbiamo creato due oggetti che vivono di vita propria. Adesso dobbiamo cominciare a mettere insieme i pezzi. Definiamo l'endpoint (ne abbiamo solo uno) <bean id="helloserviceendpoint" class="it.innove.life.tutorials.spring.ws.endpoints.helloserviceendpoint"> <constructor-arg ref="helloservice" /> Notate che il costruttore è invocato passandogli come parametro l'implementazione del servizio. Andiamo avanti col puzzle <bean id="helloserviceendpointadapter" class="org.springframework.ws.server.endpoint.adapter.genericmarshallingmethode dnpointadapter"> <constructor-arg ref="marshaller" /> This bean calls the methods on the endpoint and needs to know the marshaller to delegate the serialization / deserialization of objects. Questo bean è responsabile delle chiamate agli endpoint, ma ha necessità di conoscere che meccanismo di marshalling utilizzare. Quindi <bean

8 class="org.springframework.ws.server.endpoint.mapping.payloadrootannotationmeth odendpointmapping" /> This object enables Spring to use code annotations (Spring will search the beans to find the classes annotated and he will use them to map requests). Questo oggetto abilita le annotazioni di Spring WS (Spring cercherà all'interno dei bean le classi annotate e le userà per mappare le request). Vedete la luce in fondo al tunnel? Non è né un miraggio né un treno. Un ultimo sforzo. Non abbiamo mai parlato WSDL, avete notato? Questo perchè Spring è in grado di generarlo automaticamente, ma deve essere istruito allo scopo. Dobbiamo definire altri due bean <bean id="schema" class="org.springframework.xml.xsd.simplexsdschema"> <property name="xsd" value="/web-inf/tutorial.xsd" /> <bean id="contract" class="org.springframework.ws.wsdl.wsdl11.defaultwsdl11definition"> <property name="schema" ref="schema" /> <property name="porttypename" value="tutorial" /> <property name="locationuri" value="http://localhost:8080/ [nome_progetto_web]/services/" /> <property name="targetnamespace" value="http://www.innove.it/life/spring-wsannotations/contract" /> Il primo definisce il nostro schema XSD. Il secondo definisce la classe responsabile della generazione del WSDL. Osservate l'id del bean: quello sarà il nome del WSDL. In parole povere, una volta pubblicato il servizio su Tomcat, il WSDL sarà accessibile all'url id].wsdl E' praticamente tutto, ma manca ancora quella cosa che avevo lasciato volutamente indietro. Se provate ad eseguire il progetto così com'è andrete incontro ad un errore a runtime. Il problema sta nella definizione del bean helloserviceendpointadapter. Dopo un bel po' di ricerche su web, ho trovato la soluzione sul forum della SpringCommunity. Sfortunatamente però non riesco più a ritrovarlo e non posso citare come merita l'autore della soluzione. Se per caso lo scoprite, fatemelo sapere. La soluzione è estendere una classe di Spring package it.innove.life.tutorials.spring.ws.marshalling.endpoints.adapters; import org.springframework.oxm.marshaller; import org.springframework.ws.server.endpoint.methodendpoint; import org.springframework.ws.server.endpoint.adapter.marshallingmethodendpointadapter; import org.springframework.ws.server.endpoint.annotation.payloadroot; public class PayloadMarshallingMethodEndpointAdapter extends MarshallingMethodEndpointAdapter public PayloadMarshallingMethodEndpointAdapter(Marshaller marshaller) super(marshaller);

9 @Override protected boolean supportsinternal(methodendpoint methodendpoint) return methodendpoint.getmethod().isannotationpresent(payloadroot.class); e sostituite quindi la classe specificata nel bean helloserviceendpointadapter con questa. Adesso è veramente tutto. Spero vi possa essere utile. Stefano Note Nel codice sorgente allegato, i file e le classi potrebber chiamarsi in maniera differente Infine, voglio sottolineare che questo tutorial nasce dall'esperienza accumulata solo nell'ultima settimana, quando mi sono scontrato con molti tutorial ma tutti davano per contate molte cose e quindi sono stati per difficili da digerire. Voglio dire che sto ancora imparando anch'io e sono solo agli inizi; di conseguenza alcuni concetti potrebbero essere formalmente non del tutto corretti (o non corretti e basta...) nonostante che l'esempio sia funzionante. Qualsiasi correzione, osservazione, precisazione sarà molto gradita. Per maggiori informazioni (e spiegazioni più profonde) su Spring e Spring WS vi rimando al sito ufficiale dal quale è liberamente scaricabile tutta la documentazione

1 EJB e Portal Component Object http://desvino.altervista.org

1 EJB e Portal Component Object http://desvino.altervista.org 1 EJB e Portal Component Object http://desvino.altervista.org In questo tutorial studiamo come sfruttare la tecnologia EJB, Enterprise JavaBean, all interno del SAP Netweaver Portal. In breve, EJB è un

Dettagli

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Scuola Specializzazione Istruzione Superiore Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Michele Batocchi ITC Vittorio Emanuele II Perugia A.S. 2007/2008 Introduzione

Dettagli

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

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

Dettagli

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

1.1.1 ATLAS Postazione Studente : CONFIGURAZIONE DI ATLAS CON CLIENT LINUX

1.1.1 ATLAS Postazione Studente : CONFIGURAZIONE DI ATLAS CON CLIENT LINUX 1.1.1 ATLAS Postazione Studente : CONFIGURAZIONE DI ATLAS CON CLIENT LINUX Configurazione di Atlas con client Linux DESCRIZIONE Di seguito sono descritte le operazioni da effettuare per configurare correttamente

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

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java] Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

Dettagli

Presentazioni multimediali relative al senso del tatto DIMENSIONI LIVELLO INIZIALE LIVELLO INTERMEDIO LIVELLO AVANZATO

Presentazioni multimediali relative al senso del tatto DIMENSIONI LIVELLO INIZIALE LIVELLO INTERMEDIO LIVELLO AVANZATO PERCORSO DI INSEGNAMENTO/APPRENDIMENTO TIPO DI UdP: SEMPLICE (monodisciplinare) ARTICOLATO (pluridisciplinare) Progetto didattico N. 1 Titolo : Let s investigate the world with our touch! Durata: Annuale

Dettagli

Veniamo al dunque, per prima cosa recuperiamo il materiale necessario:

Veniamo al dunque, per prima cosa recuperiamo il materiale necessario: Probabilmente questo problema è stato già affrontato da altri, ma volevo portare la mia esperienza diretta, riguardo alla realizzazione di un alimentatore per il caricabatterie 12 volt, ottenuto trasformando

Dettagli

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

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

Dettagli

Progettazione Orientata agli Oggetti

Progettazione Orientata agli Oggetti Progettazione Orientata agli Oggetti Sviluppo del software Ciclo di vita del software: comprende tutte le attività dall analisi iniziale fino all obsolescenza (sviluppo, aggiornamento, manutenzione) Procedimento

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

Integrazione di servizi: Enterprise Service Bus (ESB) e Business Process Execution Language (BPEL)

Integrazione di servizi: Enterprise Service Bus (ESB) e Business Process Execution Language (BPEL) Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Integrazione di servizi: Enterprise Service Bus (ESB) e Business Process Execution Language (BPEL) Corso di Sistemi Distribuiti Stefano

Dettagli

Cos è un JavaBean. Java. Componenti software

Cos è un JavaBean. Java. Componenti software Java java beans e programmazione visuale G. Prencipe prencipe@di.unipi.it Cos è un JavaBean Un JavaBean (o semplicemente Bean) è un componente software riusabile Analogia con i componenti elettronici I

Dettagli

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

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

Dettagli

e-spare Parts User Manual Peg Perego Service Site Peg Perego [Dicembre 2011]

e-spare Parts User Manual Peg Perego Service Site Peg Perego [Dicembre 2011] Peg Perego Service Site Peg Perego [Dicembre 2011] 2 Esegui il login: ecco la nuova Home page per il portale servizi. Log in: welcome to the new Peg Perego Service site. Scegli il servizio selezionando

Dettagli

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

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

Dettagli

Che Cos'e'? Introduzione

Che Cos'e'? Introduzione Level 3 Che Cos'e'? Introduzione Un oggetto casuale e' disegnato sulla lavagna in modo distorto. Devi indovinare che cos'e' facendo click sull'immagine corretta sotto la lavagna. Piu' veloce sarai piu'

Dettagli

Pila.h versione 6. class Pila { private: int marker; int * contenuto; public:

Pila.h versione 6. class Pila { private: int marker; int * contenuto; public: 1 Pila.h versione 6 struct Pila { private: int size; int defaultgrowthsize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialsize) ; Pila(); ~Pila() ; void copy(pila * to)

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

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it SMS API Documentazione Tecnica YouSMS SOAP API YouSMS Evet Limited 2015 http://www.yousms.it INDICE DEI CONTENUTI Introduzione... 2 Autenticazione & Sicurezza... 2 Username e Password... 2 Connessione

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

Ambienti di sviluppo integrato

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

Dettagli

ITIL v3 e' parte di un processo teso a migliorare le best practices ITIL. In effetti, ITIL predica il "continuous improvement" ed e'

ITIL v3 e' parte di un processo teso a migliorare le best practices ITIL. In effetti, ITIL predica il continuous improvement ed e' ITIL v3 ITIL v3 e' parte di un processo teso a migliorare le best practices ITIL. In effetti, ITIL predica il "continuous improvement" ed e' giusto che lo applichi anche a se' stessa... Naturalmente una

Dettagli

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:!

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:! Scrum descrizione I Principi di Scrum I Valori dal Manifesto Agile Scrum è il framework Agile più noto. E la sorgente di molte delle idee che si trovano oggi nei Principi e nei Valori del Manifesto Agile,

Dettagli

P a s q u a l e t t i V e r o n i c a

P a s q u a l e t t i V e r o n i c a PHP: OOP Pasqualetti Veronica Oggetti Possiamo pensare ad un oggetto come ad un tipo di dato più complesso e personalizzato, non esistente fra i tipi tradizionali di PHP, ma creato da noi. 2 Gli oggetti

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

Visibilità dei Membri di una Classe

Visibilità dei Membri di una Classe Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce

Dettagli

Permutazione degli elementi di una lista

Permutazione degli elementi di una lista Permutazione degli elementi di una lista Luca Padovani padovani@sti.uniurb.it Sommario Prendiamo spunto da un esercizio non banale per fare alcune riflessioni su un approccio strutturato alla risoluzione

Dettagli

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

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

Dettagli

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

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

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

Dettagli

FORM Il sistema informativo di gestione della modulistica elettronica.

FORM Il sistema informativo di gestione della modulistica elettronica. Studio FORM FORM Il sistema informativo di gestione della modulistica elettronica. We believe in what we create This is FORM power La soluzione FORM permette di realizzare qualsiasi documento in formato

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

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

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

più del mercato applicazioni dei processi modificato. Reply www.reply.eu

più del mercato applicazioni dei processi modificato. Reply www.reply.eu SOA IN AMBITO TELCO Al fine di ottimizzare i costi e di migliorare la gestione dell'it, le aziende guardano, sempre più con maggiore interesse, alle problematiche di gestionee ed ottimizzazione dei processi

Dettagli

MANUALE PER LA CONFIGURAZIONE DI MAIL SU ipad E SU iphone

MANUALE PER LA CONFIGURAZIONE DI MAIL SU ipad E SU iphone MANUALE PER LA CONFIGURAZIONE DI MAIL SU ipad E SU iphone PRIMI PASSI Se è la prima volta che aprite l'applicazione MAIL vi verrà chiesto di impostare o creare il vostro account di posta e le gli step

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

WWW.TINYLOC.COM CUSTOMER SERVICE GPS/ RADIOTRACKING DOG COLLAR. T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com

WWW.TINYLOC.COM CUSTOMER SERVICE GPS/ RADIOTRACKING DOG COLLAR. T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com WWW.TINYLOC.COM CUSTOMER SERVICE T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com GPS/ RADIOTRACKING DOG COLLAR MANUALE DI ISTRUZIONI ACCENSIONE / SPEGNERE DEL TAG HOUND Finder GPS Il TAG HOUND

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

Indicizzazione terza parte e modello booleano

Indicizzazione terza parte e modello booleano Reperimento dell informazione (IR) - aa 2014-2015 Indicizzazione terza parte e modello booleano Gruppo di ricerca su Sistemi di Gestione delle Informazioni (IMS) Dipartimento di Ingegneria dell Informazione

Dettagli

Mini manuale di Audacity.

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

Dettagli

IL SENSO DELLA CARITATIVA

IL SENSO DELLA CARITATIVA IL SENSO DELLA CARITATIVA SCOPO I Innanzitutto la natura nostra ci dà l'esigenza di interessarci degli altri. Quando c'è qualcosa di bello in noi, noi ci sentiamo spinti a comunicarlo agli altri. Quando

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

GESTIRE LA BIBLIOGRAFIA

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

Dettagli

DISCIPLINA IVA NEL SUBAPPALTO

DISCIPLINA IVA NEL SUBAPPALTO DISCIPLINA IVA NEL SUBAPPALTO L articolo 35, comma 5, D.L. n. 223/2006 ha aggiunto il seguente comma all articolo 17, D.P.R. n. 633/72: Le disposizioni di cui al comma precedente si applicano anche alle

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

GUIDA alla configurazione di un DVR o Router su dyndns.it. in modalità compatibile www.dyndns.org

GUIDA alla configurazione di un DVR o Router su dyndns.it. in modalità compatibile www.dyndns.org GUIDA alla configurazione di un DVR o Router su dyndns.it in modalità compatibile www.dyndns.org Questa semplice guida fornisce le informazioni necessarie per eseguire la registrazione del proprio DVR

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

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

Rational Asset Manager, versione 7.1

Rational Asset Manager, versione 7.1 Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Note Prima di utilizzare queste informazioni e il prodotto

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Museo&Web CMS Tutorial: installazione di Museo&Web CMS Versione 0.2 del 16/05/11

Museo&Web CMS Tutorial: installazione di Museo&Web CMS Versione 0.2 del 16/05/11 Museo&Web CMS Tutorial: installazione di Museo&Web CMS Versione 0.2 del 16/05/11 Museo & Web CMS v1.5.0 beta (build 260) Sommario Museo&Web CMS... 1 SOMMARIO... 2 PREMESSE... 3 I PASSI PER INSTALLARE MUSEO&WEB

Dettagli

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace:

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace: Overview tecnica Introduzione E un sistema EAI molto flessibile, semplice ed efficace: Introduce un architettura ESB nella realtà del cliente Si basa su standard aperti Utilizza un qualsiasi Application

Dettagli

BPEL: Business Process Execution Language

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

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Codici sorgenti di esempio per l'invio di email da pagine WEB per gli spazi hosting ospitati presso ITESYS SRL.

Codici sorgenti di esempio per l'invio di email da pagine WEB per gli spazi hosting ospitati presso ITESYS SRL. Data: 8 Ottobre 2013 Release: 1.0-15 Feb 2013 - Release: 2.0 - Aggiunta procedura per inviare email da Windows con php Release: 2.1-20 Mar 2013 Release: 2.2-8 Ottobre 2013 - Aggiunta procedura per inviare

Dettagli

TEORIA DEL SÉ E CICLO DEL CONTATTO

TEORIA DEL SÉ E CICLO DEL CONTATTO TEORIA DEL SÉ E CICLO DEL CONTATTO di Sergio Mazzei Direttore dell Istituto Gestalt e Body Work TEORIA DEL SÉ Per organismo nella psicoterapia della Gestalt si intende l individuo che è in relazione con

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

Enterprise Services Infrastructure ESI 2.0

Enterprise Services Infrastructure ESI 2.0 Enterprise Services Infrastructure ESI 2.0 Caratteristiche e Posizionamento ver. 2.1 del 21/01/2013 Cos è ESI - Enterprise Service Infrastructure? Cos è ESI? ESI (Enteprise Service Infrastructure) è una

Dettagli

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

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

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

QUELL ATTIMO INFINITAMENTE SIMMETRICO

QUELL ATTIMO INFINITAMENTE SIMMETRICO QUELL ATTIMO INFINITAMENTE SIMMETRICO Illustrazione di Matteo Pericoli 2002 Lui. Onroignoub! Lei. Come dice, scusi? Lui. Ouroignoub. Ah, mi perdoni. Buongiorno. Credevo che si fosse tutti d accordo a parlare

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

R.Focardi Laboratorio di Ingegneria del Software 6. 1

R.Focardi Laboratorio di Ingegneria del Software 6. 1 Networking Java permette comunicazioni in rete basate sul concetto di socket, che permette di vedere la comunicazione in termini di flusso (stream), in modo analogo all input-output di file, usando Stream

Dettagli

Il Tutorial per BlueJ

Il Tutorial per BlueJ Il Tutorial per BlueJ Versione 1.4 per BlueJ Versione 1.2.x Michael Kölling Mærsk Institute University of Southern Denmark Tradotto in italiano da Vito Di Viggiano, Orlando Demauro, Gianluca Leo, Gianpaolo

Dettagli

Dichiarazioni di import: Introduzione

Dichiarazioni di import: Introduzione Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 10 Import di classi e di metodi statici Dichiarazioni di import:

Dettagli

Creare una applicazione Winsock di base

Creare una applicazione Winsock di base Creare una applicazione Winsock di base Usiamo le API Winsock incluse in Creare un progetto per una Socket Windows (in Dev C++) Selezionare la file New Projects Selezionare Empty Project Salvare

Dettagli

Installare e configurare Easy Peasy (Ubuntu Eee) su Asus Eee PC mini howto

Installare e configurare Easy Peasy (Ubuntu Eee) su Asus Eee PC mini howto Installare e configurare Easy Peasy (Ubuntu Eee) su Asus Eee PC mini howto Augusto Scatolini (webmaster@comunecampagnano.it) Ver. 1.0 (marzo 2009) ultimo aggiornamento aprile 2009 Easy Peasy è una distribuzione

Dettagli

Un oggetto per la lettura dalla tastiera

Un oggetto per la lettura dalla tastiera Fondamenti di informatica Oggetti e Java ottobre 2012 1 Un oggetto per la lettura dalla tastiera Le API di Java hanno un oggetto System.in che rappresenta la tastiera del calcolatore, ma che non è semplice

Dettagli

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme G Pareschi Principio di induzione Il Principio di Induzione (che dovreste anche avere incontrato nel Corso di Analisi I) consente di dimostrare Proposizioni il cui enunciato è in funzione di un numero

Dettagli

esercizi Esercizi / problemi

esercizi Esercizi / problemi Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il

Dettagli

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

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

Dettagli

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

Guida all'uso di StarOffice 5.2

Guida all'uso di StarOffice 5.2 Eraldo Bonavitacola Guida all'uso di StarOffice 5.2 Introduzione Dicembre 2001 Copyright 2001 Eraldo Bonavitacola-CODINF CODINF COordinamento Docenti INFormati(ci) Introduzione Pag. 1 INTRODUZIONE COS'È

Dettagli

RefWorks Guida all utente Versione 4.0

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

Dettagli

FileMaker Server 13. Guida introduttiva

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

Dettagli

Ultimo aggiornamento.: 18/02/2006 Pagina 1 di 25

Ultimo aggiornamento.: 18/02/2006 Pagina 1 di 25 Introduzione al programma POWERPOINT Ultimo aggiornamento.: 18/02/2006 Pagina 1 di 25 Introduzione al programma POWERPOINT 1 1 Introduzione al programma 3 2 La prima volta con Powerpoint 3 3 Visualizzazione

Dettagli

APRS su Linux con Xastir, installazione dai sorgenti

APRS su Linux con Xastir, installazione dai sorgenti APRS su Linux con Xastir Installazione dai sorgenti L installazione di Xastir Per installare Xastir non è richiesto essere un guru di Linux, anche se una conoscenza minima della piattaforma è necessaria.

Dettagli

Ricapitoliamo. Ricapitoliamo

Ricapitoliamo. Ricapitoliamo Ricapitoliamo Finora ci siamo concentrati sui processi computazionali e sul ruolo che giocano le procedure nella progettazione dei programmi In particolare, abbiamo visto: Come usare dati primitivi (numeri)

Dettagli

Finestra.java. static String nomicolonne[] = {"ind.","cognome","nome","telefono","e-mail"}; //nomi delle colonne della tabella

Finestra.java. static String nomicolonne[] = {ind.,cognome,nome,telefono,e-mail}; //nomi delle colonne della tabella import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.windowevent; import java.awt.event.windowlistener; import java.io.*; import java.util.*;

Dettagli

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02

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

Dettagli

Equazioni alle differenze finite (cenni).

Equazioni alle differenze finite (cenni). AL 011. Equazioni alle differenze finite (cenni). Sia a n } n IN una successione di numeri reali. (Qui usiamo la convenzione IN = 0, 1,,...}). Diremo che è una successione ricorsiva o definita per ricorrenza

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

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

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

Dettagli

Le cinque cavolate da evitare quando si fa da sé il proprio e-book

Le cinque cavolate da evitare quando si fa da sé il proprio e-book Il favoloso mondo del self publishing Le cinque cavolate da evitare quando si fa da sé il proprio e-book A cura di Sergio Covelli www.pecorenerecords.com Aprile 2011 1) Basta un click, no? Ricordatelo

Dettagli

Capitolo 9: PROPAGAZIONE DEGLI ERRORI

Capitolo 9: PROPAGAZIONE DEGLI ERRORI Capitolo 9: PROPAGAZIOE DEGLI ERRORI 9.1 Propagazione degli errori massimi ella maggior parte dei casi le grandezze fisiche vengono misurate per via indiretta. Il valore della grandezza viene cioè dedotto

Dettagli

Ultimo aggiornamento sett13

Ultimo aggiornamento sett13 Ultimo aggiornamento sett13 INDICE 1. Invio singolo SMS tramite richiesta POST/GET HTTP...3 1.1 - Messaggi singoli concatenati...4 2. Invio multiplo SMS tramite richiesta POST/GET HTTP...4 2.1 - Messaggi

Dettagli

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ Classi ed oggetti. Classi derivate, ereditarietà e polimorfismo. Template Capitoli 12, 13, 14 Luis Joyannes Aguilar. Fondamenti di Programmazione in C++. Algoritmi,

Dettagli

Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai chiesti, Qual è la via più breve tra tre punti? o tra quattro punti?

Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai chiesti, Qual è la via più breve tra tre punti? o tra quattro punti? Dov'è Moriart? Cerchiamo la via più breve con Mathcad Potete determinare la distanza più breve da tre punti e trovare Moriart? Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai

Dettagli

ISTRUZIONI PER IL SERVIZIO SPCOOP - RICEZIONE

ISTRUZIONI PER IL SERVIZIO SPCOOP - RICEZIONE ISTRUZIONI PER IL SERVIZIO SPCOOP - RICEZIONE Pag. 1 di 14 INDICE 1. Glossario... 3 2. il servizio SPCoop - Ricezione... 5 3. Il web-service RicezioneFatture... 8 3.1 Operazione RiceviFatture... 9 3.1.1

Dettagli

Soluzioni di risparmio

Soluzioni di risparmio Soluzioni di risparmio Alla ricerca delle spese nascoste Visibile Gestita totalmente Aereo Treno Gestita tradizionalmente Servizi generalmente prenotati in anticipo e approvati dal line manager Meno potenziale

Dettagli

Sistemi di gestione dei dati e dei processi aziendali. Information Technology General Controls

Sistemi di gestione dei dati e dei processi aziendali. Information Technology General Controls Information Technology General Controls Indice degli argomenti Introduzione agli ITGC ITGC e altre componenti del COSO Framework Sviluppo e manutenzione degli applicativi Gestione operativa delle infrastrutture

Dettagli