Corrections to the italian version

This commit is contained in:
Claudio Maggioni 2018-06-13 14:32:49 +02:00
parent ddabf04fa0
commit 0ed18a59f8
1 changed files with 79 additions and 76 deletions

155
main.tex
View File

@ -75,16 +75,18 @@
\begin{titlepage}
\pagenumbering{gobble}
\centering
\includesvg[width=0.3\textwidth]{images/logo}\par\vspace{1.5cm}
\includesvg[width=0.3\textwidth]{images/logo}\par\vspace{1cm}
{\scshape\LARGE Istituto di Istruzione Superiore \mbox{``A. Badoni''}\par}
\vspace{1cm}
{\scshape\Large Tesi di maturità\par}
\vspace{1.5cm}
{\scshape\Large Indirizzo ``Informatica e Telecomunicazioni''\par}
\vspace{2cm}
{\huge\bfseries\mdtitle\par}
\vspace{0.75cm}
{\Large\bfseries\mdsubtitle\par}
\vspace{2cm}
{\Large\itshape\mdauthor\par}
{\Large Tesi di maturità di\par}
{\vspace{0.5cm}}
{\Large\itshape\mdauthor\par}
\vfill
% Bottom of the page
{\large\mddate\par}
@ -157,14 +159,15 @@
In generale sviluppo i progetti da solo. Collaboro con il collega Daniele
Crippa per l'interfacciamento con i software aziendali esistenti e per
l'organizzazione di nuovi progetti, nonché per consigli vari.
l'organizzazione di nuovi progetti, nonché per ricevere da lui consigli utili
per migliorare le mie competenze.
Nonostante non abbia controllo totale \`e comunque mia responsabilità fare
stime orarie sul lavoro da svolgere nonché definire passi e \textit{milestone}
per i vari progetti.
Per aumentare la forza lavoro per lo sviluppo di applicazioni \textit{mobile}
ho coordinato momenti di formazione ad alcuni dipendenti nei quali ho mostrato
ho coordinato momenti di formazione per alcuni dipendenti nei quali ho mostrato
il principale funzionamento delle tecnologie che uso.
\end{it}
\begin{en}
@ -177,8 +180,8 @@
In general, I work on the tasks assigned to me alone. I sometimes work with my
colleague Daniele Crippa in order to interface my projects' code with the
existing products from the company, to plan new projects, and for suggestions
in general.
existing products from the company, to plan new projects, and for recieving
suggestions aimed to increase my skills.
Even though I do not have total control on the projects I work on, I
am still responsible for defining development milestones and making
@ -199,11 +202,11 @@
alle seguenti sezioni:
\begin{description}
\item[Ordini cliente] per registrare ordini di prodotti a clienti;
\item[Soggetti] per consultare informazioni anagrafiche di clienti e fornitori;
\item[Agenda] per consultare e aggiungere eventi nel calendario presente
\item[Ordini cliente{\normalfont,}] per registrare ordini di prodotti a clienti;
\item[Soggetti{\normalfont,}] per consultare informazioni anagrafiche di clienti e fornitori;
\item[Agenda{\normalfont,}] per consultare e aggiungere eventi nel calendario presente
nell'ERP, il quale si pu\`o integrare con \textit{Outlook};
\item[Magazzini] gestire e inventariare scorte in magazzino.
\item[Magazzini{\normalfont,}] gestire e inventariare scorte in magazzino.
\end{description}
In aggiunta, sarà possibile anche registrare le ore per interventi in
@ -226,12 +229,12 @@
within the following areas:
\begin{description}
\item[Customers' orders] for registering the products customers may order;
\item[Customers and suppliers] for looking up data record of customers and
\item[Customers' orders{\normalfont,}] for registering the products customers may order;
\item[Customers and suppliers{\normalfont,}] for looking up data record of customers and
suppliers;
\item[Calendar] for viewing and editing events on the ERP calendar, synchronizable
\item[Calendar{\normalfont,}] for viewing and editing events on the ERP calendar, synchronizable
with \textit{Outlook};
\item[Warehouses] for managing warehouses and inventories.
\item[Warehouses{\normalfont,}] for managing warehouses and inventories.
\end{description}
In addition to what specified above, users will be able to register working
@ -347,12 +350,12 @@
gioco di parole sull'acronimo REST.} viene importata
come una normale dipendenza Maven\cite{maven:website}. Essa dipende da:
\begin{description}
\item[Hibernate ORM\cite{hibernate:website}] un famoso Object/Relation
\item[Hibernate ORM\cite{hibernate:website}{\normalfont,}] un famoso Object-Relation
Mapper\cite{wiki:orm} per Java, utile ad interrogare il database
\textit{PostgreSQL} con facilità;
\item[GSON\cite{gson:website}] una libreria di Google per serializzare
\item[GSON\cite{gson:website}{\normalfont,}] una libreria di Google per serializzare
e deserializzare oggetti Java in JSON;
\item[Jersey\cite{jersey:website}] un'implementazione dell'API JAX-RS
\item[Jersey\cite{jersey:website}{\normalfont,}] un'implementazione dell'API JAX-RS
per realizzare gli endpoint REST. Ciò avviene senza servlet ma tramite
semplici metodi contenuti in classi senza ``padre'' dette \textit{controller},
opportunamente decorati con le annotazioni nel package
@ -363,7 +366,7 @@
semplificate dal codice contenuto in \textit{restaurant} su due livelli:
\begin{itemize}
\item È possibile eseguire normali operazioni di CRUD\cite{wiki:crud}
nonchè costruire manualmente query tramite i metodi statici della classe
nonch\'e costruire manualmente query tramite i metodi statici della classe
\textit{CRUDUtils}, che lavorano in input e in output con istanze delle
classi ``entità'' registrate nell'ORM;
\item Inoltre, è possibile creare nuovi \textit{controller} con facilità
@ -387,12 +390,12 @@
as a normal Maven\cite{maven:website} dependency. It requires the
following dependencies:
\begin{description}
\item[Hibernate ORM\cite{hibernate:website}] a famous Java Object/Relation
\item[Hibernate ORM\cite{hibernate:website}{\normalfont,}] a famous Java Object/Relation
Mapper\cite{wiki:orm}, used to query the \textit{PostgreSQL} database
with ease;
\item[GSON\cite{gson:website}] a library from Google for serializing and
\item[GSON\cite{gson:website}{\normalfont,}] a library from Google for serializing and
deserializing Java object in JSON;
\item[Jersey\cite{jersey:website}] an implementation of the API JAX-RS
\item[Jersey\cite{jersey:website}{\normalfont,}] an implementation of the API JAX-RS
for creating REST endpoints, not through servlets but using
simple methods contained in plain classes, called \textit{controllers},
decorated with the annotations contained in the package \texttt{javax.ws.rs}.
@ -480,7 +483,7 @@ public abstract class JsonProducer {
\end{lstlisting}
\begin{it}
Per una migliore lettura del listato \ref{lst:jsonprd-java}, si precisa che la
classe \textit{Error} è una enumerazione Java contenente messaggi di errore
classe \textit{Error} è un'enumerazione Java contenente messaggi di errore
standard. La classe \textit{ErrorDetails}, invece, permette al codice esterno
di realizzare messaggi di errore personalizzati. Inoltre, l'oggetto statico
\texttt{GSON} di classe \textit{Gson} è il serializzatore a JSON offerto dalla
@ -672,7 +675,7 @@ public abstract class CRUDRESTController<T extends CRUDable, U extends
\end{lstlisting}
\begin{it}
Si precisa che la classe \textit{CRUDable} è un estensione della classe
Si precisa che la classe \textit{CRUDable} è un'estensione della classe
\textit{Readable} che contiene metodi per l'inizializzazione dell'oggetto
sulla base di dati in input, contenuti in \textit{MultivaluedMap<String,
String>}. Di conseguenza, le classi ``entità'' che estendono \textit{CRUDable}
@ -829,10 +832,10 @@ public abstract class CRUDUtils {
\begin{it}
\subsubsection{\textit{restaurant} -- lato client}
La parte client della libreria \textit{restaurant} è implementata con il
La parte \textit{client} della libreria \textit{restaurant} è implementata con il
linguaggio \textit{TypeScript}, un'estensione di \textit{Javascript}
che aggiunge tipizzazione statica, i classici costrutti della programmazione
ad oggetti, nonchè il supporto alle generiche. Segue il listato dell'interfaccia della
che aggiunge tipizzazione statica, costrutti classici della programmazione
ad oggetti, nonch\'e supporto alle generiche. Segue il listato dell'interfaccia della
classe \textit{RESTService}, la quale contiene metodi statici per comunicare
con il server asincronamente tramite istanze di classi ``entità'', cioè classi
figlie della classe astratta \textit{Table}.
@ -1085,15 +1088,15 @@ export class RESTService {
\begin{description}
\item[Progettazione] delineazione delle funzionalità da implementare
\item[Progettazione{\normalfont,}] delineazione delle funzionalità da implementare
nell'applicazione e prime bozze dell'interfaccia utente;
\item[Implementazione \textit{restaurant}] implementazione della libreria su
\item[Implementazione \textit{restaurant}{\normalfont,}] implementazione della libreria su
cui si basano tutte le sezioni del programma. Vista l'importanza di questo
componente, gli sviluppi vengono continuati in parallelo con
l'implementazione delle sezioni;
\item[Implementazione sezioni] creazione di interfaccia e logica per le
\item[Implementazione sezioni{\normalfont,}] creazione di interfaccia e logica per le
funzionalit\'a previste, cio\'e:
\begin{itemize}
\item Magazzini;
@ -1102,19 +1105,19 @@ export class RESTService {
\item Ordini cliente;
\end{itemize}
\item[Test per le sezioni] collaudo degli algoritmi e della UI per
\item[Test per le sezioni{\normalfont,}] collaudo degli algoritmi e della UI per
efficacia ed efficienza, nonch\'e eventuali correzioni;
\item[Rifinimento \textit{restaurant}] collaudo delle scelte
\item[Rifinimento \textit{restaurant}{\normalfont,}] collaudo delle scelte
architetturali e algoritmi usati nella libreria e rifinimento di essi;
Fase divisa in:
\begin{description}
\item[Miglioramento architettura] analisi del protocollo per individuare
\item[Miglioramento architettura{\normalfont,}] analisi del protocollo per individuare
punti di debolezza e possibili ottimizzazioni;
\item[Test per \textit{restaurant}] messa alla prova dei cambiamenti fatti;
\item[Test per \textit{restaurant}{\normalfont,}] messa alla prova dei cambiamenti fatti;
\end{description}
\item[Finalizzazione] task finali del progetto, tra cui branding, operazioni
\item[Finalizzazione{\normalfont,}] task finali del progetto, tra cui branding, operazioni
pre-rilascio, e gestione di eventuali personalizzazioni richieste dai clienti.
\end{description}
@ -1127,13 +1130,13 @@ export class RESTService {
\begin{description}
\item[Planning] features definition and first drafts of the user interface;
\item[Planning{\normalfont,}] features definition and first drafts of the user interface;
\item[\textit{restaurant} implementation] implementation of the library on
\item[\textit{restaurant} implementation{\normalfont,}] implementation of the library on
which all the sections are based. Given the importance of this component,
it is developed concurrently with the sections;
\item[Sections implementation] creation of user interface and business logic
\item[Sections implementation{\normalfont,}] creation of user interface and business logic
for all the features planned, which are:
\begin{itemize}
\item Warehouses;
@ -1142,19 +1145,19 @@ export class RESTService {
\item Customers' orders;
\end{itemize}
\item[Sections testing] trial of algorithms and UI to achieve effectiveness
\item[Sections testing{\normalfont,}] trial of algorithms and UI to achieve effectiveness
and efficiency and possible adjustments;
\item[\textit{restaurant} improvement] trial of architectural choices and
\item[\textit{restaurant} improvement{\normalfont,}] trial of architectural choices and
algorithms used inside the library, with improvement of the last ones.
This phase is divided in:
\begin{description}
\item[Architecture revising] analisys of the protocol aimed to find weak
\item[Architecture revising{\normalfont,}] analisys of the protocol aimed to find weak
points and possible optimisations;
\item[\textit{restaurant} testing] trial of the changes implemented before;
\item[\textit{restaurant} testing{\normalfont,}] trial of the changes implemented before;
\end{description}
\item[Finalisation] collection of final tasks, including branding, pre-release
\item[Finalisation{\normalfont,}] collection of final tasks, including branding, pre-release
operations and possible development of per-customer customizations.
\end{description}
@ -1210,23 +1213,23 @@ Since this project was urgent for the customer, development on \textit{InteGRa
\end{figure}
\begin{it}
\textit{Guac Remote} è basata su un'applicativo e libreria per la connessione
\textit{Guac Remote} è basata su un applicativo e libreria per la connessione
a computer remoto chiamato \textit{Apache Guacamole}\cite{guacamole:website}.
Tale software è costituito da due parti:\cite{guacdoc:arch}
\begin{description}
\item[\textit{guacamole-server} (o \textit{guacd})] un servizio scritto
\item[\textit{guacamole-server} (o \textit{guacd}){\normalfont,}] un servizio scritto
in C che funge da adattatore tra il protocollo \textit{guacamole} e i
protocolli VNC, RDP o SSH, utilizzando questi ultimi per stabilire connessioni
con gli host remoti;
\item[\textit{guacamole-client}] una WebApplication scritta tramite
\item[\textit{guacamole-client}{\normalfont,}] una WebApplication scritta tramite
\textit{Java servlet} che fornisce un'interfaccia web per interagire con
\textit{guacamole-server} e connettersi ai PC remoti.
\end{description}
Data la natura open-source del progetto, sia \textit{guacamole-server} che
\textit{guacamole-client} possono essere usati come libreria per la
realizzazione di software derivati. In particolare, \textit{guacamole-client}
può essere scomposto nelle librerie \textit{guacamole-common-js}, che contiene
il codice Javascript per il client, e \textit{guacamole-common}, che fornisce
può essere scomposto nella libreria \textit{guacamole-common-js}, che contiene
il codice Javascript per il client, e in quella \textit{guacamole-common}, che fornisce
classi Java per la connessione con \textit{guacamole-server}\cite{guacdoc:api}.
In \textit{Guac Remote}, \textit{Apache Guacamole} è usato per fornire accesso
@ -1247,11 +1250,11 @@ Since this project was urgent for the customer, development on \textit{InteGRa
connectivity named \textit{Apache Guacamole}\cite{guacamole:website}. This
software is a combination of two components:\cite{guacdoc:arch}
\begin{description}
\item[\textit{guacamole-server} (a.k.a. \textit{guacd})] a daemon written
\item[\textit{guacamole-server} (a.k.a. \textit{guacd}){\normalfont,}] a daemon written
in C which takes the role of an adapter between the \textit{guacamole}
protocol and the VNC, RDP and SSH protocols, using the last ones to connect
to the remote hosts;
\item[\textit{guacamole-client}] a Web Application written with \textit{Java
\item[\textit{guacamole-client}{\normalfont,}] a Web Application written with \textit{Java
Servlets} that offers a web interface for interacting with
\end{description}
\textit{guacamole-server} and to connect with remote PCs.
@ -1351,7 +1354,7 @@ Since this project was urgent for the customer, development on \textit{InteGRa
\end{figure}
\begin{it}
Questo progetto non ha avuto ritardi. L'applicazione \'e stata
Questo progetto non ha avuto ritardi: l'applicazione è stata
mostrata in demo il giorno 29/03 e consegnata il giorno 1/6.
Il cliente si ritiene soddisfatto del lavoro fatto.
\end{it}
@ -1372,29 +1375,29 @@ Since this project was urgent for the customer, development on \textit{InteGRa
diagramma della figura \ref{fig:ganttargos}, sono:
\begin{description}
\item[Incontro con il cliente] primo scambio di informazioni per capire gli
\item[Incontro con il cliente{\normalfont,}] primo scambio di informazioni per capire gli
obiettivi del progetto;
\item[Realizzazione primo prototipo] dimostrazione dell'efficacia del protocollo
\item[Realizzazione primo prototipo{\normalfont,}] dimostrazione dell'efficacia del protocollo
\textit{guacamole} tramite un prototipo del prodotto;
\item[Prima demo al cliente] demo del prototipo al cliente;
\item[Stime orarie per sviluppi futuri] delineazione della tabella di marcia per
\item[Prima demo al cliente{\normalfont,}] demo del prototipo al cliente;
\item[Stime orarie per sviluppi futuri{\normalfont,}] delineazione della tabella di marcia per
gli sviluppi futuri;
\item[Implementazione richieste del cliente] sviluppo delle estensioni al
\item[Implementazione richieste del cliente{\normalfont,}] sviluppo delle estensioni al
protocollo richieste. Nel dettaglio, esse sono:
\begin{description}
\item[Apertura tastiera e zoom al ``focus'' di un input] alla pressione di un
\item[Apertura tastiera e zoom al ``focus'' di un input{\normalfont,}] alla pressione di un
campo di testo, l'applicazione \textit{mobile} deve automaticamente ingrandire
l'area selezionata e mostrare una tastiera;
\item[Input tramite tastiera nativa Android o iOS] sostituzione della tastiera
\item[Input tramite tastiera nativa Android o iOS{\normalfont,}] sostituzione della tastiera
su schermo di \textit{guacamole-common-js} con quella nativa;
\item[Scroll a due dita] supporto della gesture di scroll verticale a due dita;
\item[Interfaccia di configurazione] creazione di una piccola finestra di
\item[Scroll a due dita{\normalfont,}] supporto della gesture di scroll verticale a due dita;
\item[Interfaccia di configurazione{\normalfont,}] creazione di una piccola finestra di
configurazione, in cui inserire IP e porta del PC;
\end{description}
\item[Demo al cliente] dimostrazione degli sviluppi fatti al cliente e eventuale
\item[Demo al cliente{\normalfont,}] dimostrazione degli sviluppi fatti al cliente ed eventuale
definizione di richieste aggiuntive;
\item[Implementazione delle richieste aggiuntive del cliente]
\item[Consegna] operazioni finali del progetto, tra cui branding e compilazione
\item[Implementazione delle richieste aggiuntive del cliente{\normalfont,}]
\item[Consegna{\normalfont,}] operazioni finali del progetto, tra cui \textit{branding} e compilazione
per rilascio.
\end{description}
\end{it}
@ -1403,29 +1406,29 @@ Since this project was urgent for the customer, development on \textit{InteGRa
figure \ref{fig:ganttargos}, are listed below.
\begin{description}
\item[Meeting with the customer] first information exchange aimed to
\item[Meeting with the customer{\normalfont,}] first information exchange aimed to
establish the project targets;
\item[Development of the first prototype] demonstration of
\item[Development of the first prototype{\normalfont,}] demonstration of
\textit{guacamole} as an effective protocol through a prototype;
\item[First demo to the customer] prototype demo with the customer;
\item[Time estimates for future development] creation of the future development
\item[First demo to the customer{\normalfont,}] prototype demo with the customer;
\item[Time estimates for future development{\normalfont,}] creation of the future development
schedule;
\item[Implementation of the features required by the customer] development
\item[Implementation of the features required by the customer{\normalfont,}] development
of the requested protocol extensions, which are listed below.
\begin{description}
\item[Keyboard opening with zoom on input focus] when an input field is
\item[Keyboard opening with zoom on input focus{\normalfont,}] when an input field is
pressed, the mobile app must automatically zoom on the selected area and
open a keyboard;
\item[Input through native iOS or Android keyboard] substitution of the
\item[Input through native iOS or Android keyboard{\normalfont,}] substitution of the
keyboard included with \textit{guacamole-common-js} with the native one;
\item[Two-finger scroll] support for vertical two-finger scrolling;
\item[Settings page] creation of a small configuration panel, needed to
\item[Two-finger scroll{\normalfont,}] support for vertical two-finger scrolling;
\item[Settings page{\normalfont,}] creation of a small configuration panel, needed to
enter the PC's IP address and port number;
\end{description}
\item[Demo to the customer] meeting aimed to show the work done and to
\item[Demo to the customer{\normalfont,}] meeting aimed to show the work done and to
establish possible additional requests;
\item[Implementation of additional requests from the customer]
\item[Delivery] final operations for the project, including branding and
\item[Implementation of additional requests from the customer{\normalfont,}]
\item[Delivery{\normalfont,}] final operations for the project, including branding and
release compilation.
\end{description}
\end{en}