Alessandro Ceruso - 0510200978

Tesi di Laurea Triennale

Per la mia tesi ho sviluppato una nuova versione della web application CloudBeamer, creata dai colleghi Giovanni Cimmino e Antonio Giordano, puntando a sperimentare l'utilizzo dei futuri standard HTML5 e CSS3, nonché dei servizi di storage web-based.

CloudBeamer

L'applicazione fornisce un editor per sviluppare presentazioni di alta qualità mediante la classe Beamer di Latex. L'enfasi di CloudBeamer è posta sul fornire un editor che segua il più possibile il paradigma WYSIWYG (what you see is what you get), in un settore, quello dell'editing Latex, da sempre imperniato sul WYSIWYM (What you see is what you mean).

Più nello specifico l'applicazione fornisce, oltre all'area di editing, una Table of Contents (che permette di manipolare la struttura della presentazione graficamente) ma soprattutto un'anteprima della slide visualizzata (con il grande vantaggio di non dover ricompilare l'intero documento per visualizzare l'output di una singola slide e di isolare efficacemente gli errori presenti all'interno della stessa).

Infine l'export in HTML5 e l'area di preview delle slide presentano un effetto grafico di rotazione di un cubo come transizione tra una slide e l'altra, ottenuto tramite l'oggetto canvas di HTML5 e l'utilizzo delle librerie Web-gl e Three.js.

Il mio contributo a Cloudbeamer

Inizialmente il mio lavoro è consistito nell'analizzare tre obiettivi:

  • Alleggerimento del carico lato server
  • Miglioramento dell'usabilità
  • Introduzione di nuove transizioni per l'export in HTML5

Nell'ambito del tirocinio ho infatti approfondito:

  • lo standard HTML5 per quanto riguarda l'ottimizzazione del carico tramite il Local Storage e l'Offline Caching e la visualizzazione di oggetti 3D animati sfruttando l'oggetto Canvas
  • le API di Dropbox e Google Docs allo scopo di fornire le presentazioni su servizi di web-storage in modo tale da facilitarne e se possibile automatizzarne la pubblicazione online
  • lo standard CSS3 e le librerie grafiche Web-gl per sviluppare le transizioni per l'HTML5 rispettivamente sugli elementi stessi della pagina o sull'oggetto Canvas di HTML5

Ho inoltre dovuto espandere la mia conoscenza su:

  • Linguaggi di markup (HTML, CSS)
  • Linguaggi di scripting (javascript, jQuery, PHP)

Ciò che ne è risultato è la versione 2.0 di CloudBeamer, che presenta modifiche a livello di grafica dell'interfaccia, un leggero bugfix rispetto alla versione 1.0 e incorpora

  • un servizio di esportazione dei progetti sull'account Dropbox dell'utente
  • un servizio di importazione di immagini (da usare nella presentazione) dall'account Dropbox dell'utente.

Tali servizi sono debolmente accoppiati al sistema e ciò comporta due vantaggi:

  • l'applicazione può funzionare senza che l'utente abbia un account Dropbox
  • è possibile estendere la funzionalità di esportazione online ad altri servizi di web-storage (come ad esempio Google Docs) in maniera relativamente semplice sfruttando la struttura implementata per Dropbox

Lo scopo di questi servizi di esportazione è quello di fornire all'utente un'esperienza quanto più simile a quella di un ambiente di lavoro Cloud nell'ambito di una web-application. Ad esempio, se l'utente accedesse al sistema da una macchina di cui non è né proprietario né amministratore, potrebbe sfruttare il servizio di web-storage per importare immagini in Cloudbeamer e per esportare presentazioni, senza quindi impegnare risorse in locale al di fuori del browser.

Contatti

aceruso [AT] gmail [DOT] com