RELAZIONE TECNICA
RELATIVA ALL'ATTIVITA` DI STAGE PRESSO I Laboratori Nazionali di Frascati-INFN
PERIODO: 10/06 - 5/07/2002

STAGISTA: Chiara Giordani
TUTOR: Igor Sfiligoi


OSSERVAZIONI E SVILUPPO RIGUARDANTI I PUNTI FONDAMENTALI DI QUESTA ATTIVITA`LAVORATIVA:


SCOPO DELL'ESPERIENZA


Questo stage formartivo permette innanzitutto al singolo studente di inserirsi in una vera e propria attivita` lavorativa collaborando con un valido personale in un ambiente rigoroso e comtemporaneamente piacevole.
Nel settore informatico, in particolare, lo scopo iniziale e` stato quello di apprendere nuovi linguaggi, formati e interfacce di programmazione per poter realizzare documenti di vario genere, sviluppati ancor meglio nella seconda parte dell'attivita` grazie alla costruzione di lavori specifici per la consultazione di database molto articolati.


STRUMENTAZIONE USATA

TITOLOAUTORE
HTML
SOURCE BOOK
Ian S.Graham
HTML
The definitive Guide
Chuck Musciano
Bill Kennedy
Little Language
and Tools
Peter H.Salus

Sono state prese in considerazione anche guide di HTML, Python, CGI e di realizzazione grafici, consultate da Internet in particolare dal browser "NETSCAPE".

Riferimenti:

SISTEMA OPERATIVOUNIX
LINGUAGGI
DI PROGRAMMAZIONE
PYTHON
HTML
INTERFACCIA
DI PROGRAMMAZIONE
CGI


Esposizione della fase preliminare,teorica e di alfabetizzazione dei concetti non noti:


FASE DI PREPARAZIONE
E DI STUDIO


HTML

HTML, o Hyper Text Markup Language e` un linguaggio che permette ad un web browser di visualizzare i suoi documenti multimediali, file di testo, grazie all'ausilio di particolari codici speciali, chiamati "TAG", contrassegnati dai simboli "<" e ">".
Il formato generale per un tag HTML e`:
<"NOME_TAG">Stringa di testo<"/NOME_TAG">
N.B:Il tag di chiusura contiene il carattere "/".
I tag sono fondamentali poiche` determinano il formato, il colore e in generale l'aspetto del documento.
Ad esempio, possono dire al web browser di rendere il testo in grassetto, in corsivo, trasformarlo in un'intestazione, o farlo diventare un link ipertestuale ad un'altra pagina web.
Un documento HTML, e` costituito da due parti distinte: il corpo e la testa (Head,Body).
Nella TESTA sono contenute le informazioni riguardo il documento che non vengono visualizzate sullo schermo.
Il CORPO e` costituito da tutto quello che e` visualizzato come parte della pagina.

Struttura base di un documneto HTML:

<"html">
<"head">
<"title">TITOLO<"/title">
<"!--COMMENTI per fornire maggiori informazioni--">
<"/head">
<"body">
<"!--Tutto l'HTML da visualizzare--">
<"/body">
<"/html">

FORM

I FORM in HTML, costituiscono un mezzo efficace per sviluppare e migliorare l'architettura "client/server" in Internet.
Permettono di rendere interattivi i documenti HTML, facilitando il passaggio di parametri e in generale di dati via CGI.
Tutto questo puo` trovare interessanti applicazioni pratiche, come la possibilita` di modificare o aggiornare basi di dati e la gestione di una posta elettronica.
L'insieme di queste operazioni, sono rese dai FORM estremamente semplici ed immediate per l'utente, che si trova a lavorare con documenti ipertestuali, e non deve far ricorso a comandi del sistema operativo o ad altri programmi.

PYTHON

Python e` un linguaggio di programmazione ad altissimo livello, ha tipi di dato primitivi di alto livello, come array dinamici e dizionari.
Permette di suddividere i programmi realizzati dall'utente in moduli che possono essere riutilizzati in altri programmi Python.
E` accompagnato da un'ampia raccolta di moduli standard utilizzabili come basi per programmi o come esempi utili nell'apprendimento della programmazione in Python.
E` un linguaggio interpretato, e questo puo` far risparmiare molto tempo durante lo sviluppo del programma, poiche` non sono necessari compilazione e linking.
Consente di scrivere programmi molto compatti e di facile lettura.

Diversi usi di Python:

PROGRAMMAZIONE CGI

CGI significa Common Gateway Interface.
Con la parola "Common" si intende che CGI puo` essere usato da molti linguaggi di programmazione e puo` interagire con molti tipi diversi di sistemi operativi e macchine.
La parola "Gateway" suggerisce che la forza di CGI non sta in quello che puo` fare in se e per se ma nell'accesso potenziale che offre ad altri sistemi, che possono essere magari database o generatori grafici.
"Interface" significa semplicemente che CGI fornisce un mezzo ben definito per richiamare le sue caratteristiche, in altre parole, che si possono scrivere programmi che lo usano.
Nell'utilizzo di CGI sono necessarie due sezioni separate da una "blank line".
La prima, standard, e` rappresentata da due istuzioni:
Content-type: text/html
(si lascia una riga vuota)

La seconda e` costituita dal corpo, essenzialmente in HTML.


PROVE REALIZZATE IN FUNZIONE
DELL'ESPERIENZA


Conclusa la fase di preparazione e di studio, sono stati realizzati diversi documenti.
Una prima parte utilizzando solo HTML, comprende la realizzazione di testi particolari , costituiti in gran parte da liste ordinate (da lettere o numeri), e non; e diversi formati.
Sorgente HTML Vedi un ESEMPIO!

Vari tipi di tabelle di diversa organizzazione, sviluppate ampiamente nella seconda parte con l'ausilio di sfondi colorati e la possibilita` di passare parametri rendendole "generali", grazie all'utilizzo di Python e CGI.
Sorgente HTML Vedi una TABELLA!

Infine sono stati realizzati documenti con FORM particolari, con grafica di vario genere specifica per la selezione di dati da parte dell'utente.
Sorgente HTML Vedi un esempio di FORM!


EPOSIZIONE DEL LAVORO


OBIETTIVI PRINCIPALI


Nella seconda parte del lavoro lo scopo principale e` stato quello di riuscire a permettere ad un qualsiasi utente la consultazione di un database e fornirne quindi una descrizione dettagliata (in questo caso il database di kloe).
Cio` include: prelevare i dati da esso, elabolarli e fornirli all'utente che li ha richiesti in modo chiaro e preciso.
Un secondo, ma altrettanto importante, obiettivo e` stato comunque quello di realizzare un interfaccia amichevole in modo che l'utente nel ricercare o consultare le informazioni desiderate, non incontri alcun tipo di difficolta'.


FASE APPLICATIVA


La seconda parte del lavoro ha permesso, una volta conclusa la fase di preparazione e di studio, la realizzazione, tramite HTML, Python e CGI, di documenti in grado di fornire una descrizione dettagliata dell'organizzazione del database di Kloe.
Il database di Kloe e` composto da tabelle raggruppate in schemi.
Ogni tabella, primaria o secondaria, a sua volta ha un numero fisso di colonne, ognuna avente: un nome e un tipo associato; e un numero arbitrario di righe, invece generali.
Un sottinsieme delle colonne puo` far parte o di un indice o di un foreign keys.
Attraverso una serie di documenti prova, in cui sono state verificate determinate funzioni, si e` giunti al risultato finale.
(In questo caso sono state verificate le funzioni: schemas e tables.La prima fornisce una lista contenente i nomi degli schemi; la seconda, invece, una lista di nomi di tabelle, relative ad uno schema.
Cio` e` stato poi migliorato successivamente.)

Osserva una delle prove!


A lavoro ultimato:


In questo modo e` fornita all'utente una descrizione chiara di cio` selezionato.


Alcune difficolta` sono nate nella fase di elaborazione dati,
in particolare sono state di ordine logico nella parte di programmazione.

Considerazioni personali

Questo stage e` stato sicuramente un'opportunita` molto interessante, che ha permesso a me, semplice studentessa, con la guida di un personale fidato e attento, di avere un primo contatto con il mondo del lavoro e di acquisire nuove conoscenze utili per il futuro.
Ringraziamenti particolari al tutor che ci ha accompagnato in questa bella avventura!