Merge branch 'master' of ssh://maggioni.xyz:2222/praticamentetilde/tesiMaturita
This commit is contained in:
commit
6b8541bc8e
1 changed files with 79 additions and 76 deletions
155
main.tex
155
main.tex
|
@ -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}
|
||||
|
|
Reference in a new issue