Programmazione web avanzata per la fisica sperimentale<br><small>Strumenti per il trattamento dati client-side al tempo di HTML5 </small>

Europe/Rome
Laboratorio 521 (INFN Milano-Bicocca)

Laboratorio 521

INFN Milano-Bicocca

Dipartimento di Matematica, Edificio U5, Via R. Cozzi 53, 20125 Milano
Dario Menasce (INFN Milano Bicocca), Francesco Prelz (INFN Milano)
Description
I sistemi di accesso al calcolo si stanno evolvendo in una direzione nella quale gli utenti interagiscono con programmi o sensori tramite interfacce WEB che eliminano la necessità di login su una macchina remota. Queste interfacce sono in genere gestite da un browser che può agire sia in un ambito desktop o mobile (tablet e smartphone). Nell'ambiente della fisica sperimentale non è infrequente la necessità di dover monitorare un sistema di acquisizione dati (o anche un semplice rivelatore) in maniera continuativa da parte di persone spesso localizzate in luoghi anche molto lontani dal rivelatore. La possibilità di esporre la funzionalità ed i controlli di questi sistemi in un browser rende possibile la partecipazione collettiva di più persone, ma richiede conoscenze specifiche ed approfondite sulle tecniche necessarie a disegnare ed implementare qusto tipo di programmi e relative interfacce. Una necessità analoga si ha anche in campi differenti, come l'amministrazione di sistemi o la gestione di database remoti, non necessariamente legati alla fisica sperimentale ma anche ai sistemi informativi in generale.

Il corso è indirizzato a ricercatori, tecnici e studenti che abbiano necessità di costruire questi tipi di interfacce WEB a database, programmi o rivelatori acceduti su sistemi remoti. Non si presuppone alcuna conoscenza pregressa di HTML, di JavaScript o di scripting languages in generale, ma certamente si richiede una moderata capacità di programmazione in qualche linguaggio quale C++ o Perl: il corso si basa sullo sviluppo di esempi progressivamente sempre più complessi, partendo da esercizi molto semplici. Il corso si articola in mattinate con presentazioni frontali ed il pomeriggio con la proposta di esercizi da svolgere su macchine dedicate allo scopo e a disposizione degli iscritti.
Participants
  • Aldo Andriani
  • Andrea Passerini
  • Antonio Silvestri
  • Concettina Maiolino
  • Davide Rebatto
  • Domenico D'Urso
  • Domenico Diacono
  • Elio De Marinis
  • Francesco Ferrera
  • Germano Russo
  • Mario Zannoni
  • Maurizio Monticelli
  • Mauro Emanuele Dinardo
  • Michele Bensi
  • Mirko Brianzi
  • Natalia Deniskina
  • Roberto Bertoni
  • Sergio Brambilla
  • Stefano Della Torre
  • Stefano Maria Barberis
    • 10:30 AM 11:00 AM
      Introduzione ai protocolli HTTP ed HTML

      Una rapida introduzione ai protocolli fondamentali del WEB per la creazione di pagine WEB statiche. Prima parte

      Convener: Dario Livio Menasce (MIB)
      slides
    • 11:00 AM 11:30 AM
      Coffee break 30m

      Pausa

    • 11:30 AM 12:00 PM
      Introduzione ai protocolli HTTP ed HTML

      Una rapida introduzione ai protocolli fondamentali del WEB per la creazione di pagine WEB statiche. Seconda parte

      Convener: Dario Livio Menasce (MIB)
    • 12:00 PM 12:30 PM
      La sintassi di HTML 30m
      Gli elementi fondamentali della sintassi di HTML - una pagina 'HTML5'.
      Speaker: Francesco Piero Lorenzo Prelz (MI)
      Slides
    • 12:30 PM 2:00 PM
      Lunch break 1h 30m

      Pausa

    • 2:00 PM 2:30 PM
      Introduzione ai CSS e al linguaggio corrispondente 30m
      Speaker: Francesco Piero Lorenzo Prelz (MI)
      Slides
    • 2:30 PM 3:15 PM
      La configurazione del server HTTP Apache 45m
      Vengono mostrati i passi di configurazione necessari per aggiungere ad una installazione vergine di Apache su Scientific Linux le funzioni necessarie per il prosieguo del corso.
      Speaker: Francesco Piero Lorenzo Prelz (MI)
    • 3:15 PM 5:30 PM
      Esercitazioni

      Esercitazione hands-on per istanziare un servizio web mediante un'opportuna configurazione di httpd. Lo scopo è quello di permettere agli utenti di istanziare un sito web con capacità CGI

      Conveners: Dario Livio Menasce (MIB), Francesco Piero Lorenzo Prelz (MI)
    • 9:00 AM 10:30 AM
      Creazione di forms e introduzione a JavaScript e CGI protocol

      Si introduce la tecnica di creazione di pagine web contenenti dei forms di input per l'esecuzione di funzioni: in questa prima parte si discutono le funzioni eseguite unicamente client-side mediante script (JavaScript), senza richieste ulteriori al server.

      Convener: Dario Livio Menasce (MIB)
      slides
    • 10:30 AM 11:00 AM
      Coffe break 30m

      Pausa

    • 11:00 AM 12:00 PM
      Elementi di sintassi di Javascript. 1h
      Definito il _cervello_ delle applicazioni web, la sintassi permissiva e semplice di Javascript gli sta facendo incontrare successi in numerose altre applicazioni. Vengono qui coperti i principali elementi sintattici del linguaggio e le principali applicazioni all'interno del browser.
      Speaker: Francesco Piero Lorenzo Prelz (MI)
      Slides
    • 12:00 PM 1:00 PM
      Forms piu' complessi: esecuzione di funzioni server-side

      Si introduce la tecnica CGI che permette l'esecuzione di programmi sul server il cui input viene fornito dall'utente mediante un form in una pagina web e l'output viene restituito dal programma remoto per essere visualizzato sul browser in una nuova pagina web o modificando solo una parte della pagine corrente.

      Convener: Dario Livio Menasce (MIB)
    • 1:00 PM 2:30 PM
      Lunch Break 1h 30m

      Pausa

    • 2:30 PM 5:30 PM
      Esercitazioni

      GLi esercizi della giornata prevedono semplici applicazioni in JavaScript, puramente client-side, e qualche primo esempio di script eseguito server-side tramite il protocollo CGI

      Conveners: Dario Livio Menasce (MIB), Francesco Piero Lorenzo Prelz (MI)
    • 9:00 AM 10:30 AM
      Approfondimenti su JavaScript

      Verranno presentati alcuni esempi per illustrare il modello OO di JavaScript e dove reprire informazioni e documentazione

      Convener: Dario Livio Menasce (MIB)
      slides
    • 10:30 AM 10:50 AM
      Coffee Break 20m

      Pausa

    • 10:50 AM 11:30 AM
      JavaScript non solo come scripting language dei Browser

      Un breve excursus su JavaScript come piattaforma di sviluppo in ambienti quali Android ed iOS. Un esempio di applicazione per smartphone capace di trasmettere dati del proprio sistema di sensori ad un server tramite pacchetti UDP. L'idea, in seguito, è quella di scrivere un'applicazione WEB capace di intercettare questi dati e rappresentarli graficamente ed in real time su un Browser.

      Convener: Francesco Piero Lorenzo Prelz (MI)
      slides
    • 11:30 AM 1:00 PM
      Strumenti per lo sviluppo ed il troubleshooting di codice Javascript

      Verranno discussi Web Developer e Firebug, plug-ins di Firefox, estremamente utili per gli sviluppatori di codice. In particolare verranno esaminate le principali funzionalità di Firebug, un debugger per Firefox (ma non solo)

      Convener: Dario Livio Menasce (MIB)
    • 1:00 PM 2:30 PM
      Lunch Break 1h 30m

      Pausa

    • 2:30 PM 5:30 PM
      Esercitazioni

      Da definire

      Conveners: Dario Livio Menasce (MIB), Francesco Piero Lorenzo Prelz (MI)
    • 9:00 AM 10:30 AM
      Librerie Javascript di uso generale - Ext JS

      Una panoramica dei protocolli, oltre ad HTTP ed HTML, di cui è necessario essere a conoscenza per creare applicazioni web in modo efficiente: XML, DOM, SVG, WebGL ed altri.

      Convener: Dario Livio Menasce (MIB)
    • 10:30 AM 11:00 AM
      Coffee Break 30m

      Pausa

    • 11:00 AM 12:00 PM
      Librerie Javascript di uso generale - JSRootIO

      Da definire

      Convener: Francesco Piero Lorenzo Prelz (MI)
    • 12:00 PM 1:00 PM
      Applicazioni dei framework di JavaScript

      Cosa sono i framework, come si usano e perchè sono indispensabili.

      Convener: Dario Livio Menasce (MIB)
    • 1:00 PM 2:30 PM
      Lunch Break 1h 30m

      Pausa

    • 2:30 PM 5:30 PM
      Esercitazioni

      Da definire

      Conveners: Dario Livio Menasce (MIB), Francesco Piero Lorenzo Prelz (MI)
    • 9:00 AM 10:30 AM
      Un esempio completo. Prima parte

      Si presenta un esempio di applicazione WEB, interattiva, consistente in un'interfaccia ad uno smartphone. Lo smartphone comunica i dati del proprio sensore ad un server tramite pacchetti UDP tramsessi via rete (TCP/IP). Il server li riceve e li memorizza in una memoria condivisa (un buffer circolare). Il browser preleva dati dal server, con una certa periodicità, e li rappresenta graficamente nella propria viewport.

      Convener: Dario Livio Menasce (MIB)
      slides
    • 10:30 AM 10:50 AM
      Coffe Break 20m

      Pausa

    • 10:50 AM 12:00 PM
      Un esempio completo. Seconda parte

      Si presenta un esempio di applicazione WEB, interattiva, consistente in un'interfaccia ad uno smartphone. Lo smartphone comunica i dati del proprio sensore ad un server tramite pacchetti UDP tramsessi via rete (TCP/IP). Il server li riceve e li memorizza in una memoria condivisa (un buffer circolare). Il browser preleva dati dal server, con una certa periodicità, e li rappresenta graficamente nella propria viewport.