Il racconto a posteriori (questa presentazione fa seguito a quella tenuta poco più di un anno fa, sempre in occasione della UGIALT.net Conference) di quello che è stato effettivamente lo sviluppo e l'adozione di questo linguaggio, che ormai molti indicano come la vera piattaforma di sviluppo del futuro, il rischio che si intravede di una nuova buzzword stile "web 2.0", alcune esperienze dirette e le lezioni che ne ho potuto trarre.
Seminar personally led on the front end CSS framework of Twitter, during a lesson of the course “Web Technologies” of Professor Ruffo in the Department of Computer Science of Turin. Year: 2014
Il racconto a posteriori (questa presentazione fa seguito a quella tenuta poco più di un anno fa, sempre in occasione della UGIALT.net Conference) di quello che è stato effettivamente lo sviluppo e l'adozione di questo linguaggio, che ormai molti indicano come la vera piattaforma di sviluppo del futuro, il rischio che si intravede di una nuova buzzword stile "web 2.0", alcune esperienze dirette e le lezioni che ne ho potuto trarre.
Seminar personally led on the front end CSS framework of Twitter, during a lesson of the course “Web Technologies” of Professor Ruffo in the Department of Computer Science of Turin. Year: 2014
Progettare siti da fruire su dispositivi diversi è imprescindibile nel Web design attuale. Scopriamo le tecniche fondamentali per ottenere risultati ottimi su tutti gli schermi
L'Arte del Templating: Typoscript, Fluid e Grid ElementsElena Bartolotti
L’integrazione tra Fluid e Grid Elements permette la gestione di molteplici layout FrontEnd e BackEnd in grado di realizzare le più fantasiose richieste grafiche, senza complicare la vita ai content editors.
Nella presentazione vediamo insieme come realizzare un sito utilizzando FLUID e l'estensione GridElements, creando BackEnd Layout in base al risultato FrontEnd da ottenere.
Sito demo con codici sorgenti: t3campitalia.intera.it/elena/t3camp14
Progettare siti da fruire su dispositivi diversi è imprescindibile nel Web design attuale. Scopriamo le tecniche fondamentali per ottenere risultati ottimi su tutti gli schermi
L'Arte del Templating: Typoscript, Fluid e Grid ElementsElena Bartolotti
L’integrazione tra Fluid e Grid Elements permette la gestione di molteplici layout FrontEnd e BackEnd in grado di realizzare le più fantasiose richieste grafiche, senza complicare la vita ai content editors.
Nella presentazione vediamo insieme come realizzare un sito utilizzando FLUID e l'estensione GridElements, creando BackEnd Layout in base al risultato FrontEnd da ottenere.
Sito demo con codici sorgenti: t3campitalia.intera.it/elena/t3camp14
Javascript per applicazioni complesse - Lo Stretto digitaleGiuseppe Pizzimenti
Mentre ogni giorno di più crescono e si fanno sempre più complessi gli ambiti nei quali Javascript si propone (e spesso impone) come strumento di sviluppo, viene da chiedersi se (e quando) si avvererà la legge di Atwood per la quale "ogni applicazione che può essere scritta in Javascript, sarà necessariamente scritta in Javascript".
Nell'attesa di scoprirlo meglio prepararsi con vecchi e nuovi patterns e best practices che ci consentono di realizzare software di qualità con uno dei linguaggi più duttili e trasversali di sempre.
Presentazione realizzata nell'ambito del progetto "Lo Stretto Digitale"
8. <HTML>
<HEAD>
<TITLE>Your Title Here</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<CENTER><IMG SRC="clouds.jpg" ALIGN="BOTTOM"> </CENTER>
<HR>
<a href="http://somegreatsite.com">Link Name</a>
<H1>This is a Header</H1>
<H2>This is a Medium Header</H2>
<P> This is a new paragraph!
<P> <B>This is a new paragraph!</B> </P>
</BODY>
</HTML>
21. “...è un linguaggio usato per definire la formattazione didocumenti
HTML, XHTML e XML ad esempio i siti web e relative pagine web...”
https://it.wikipedia.org/wiki/CSS
Cos’è il (i) CSS ?Cos’è il (i) CSS ?
47. Block elementsBlock elements
● div, p, h1 { display: block; }
●
Unelemento block-level è un elemento che forma un blocco separato, può contenere
elementi block-levele elementi inline e gli si possono attribuire delle dimensioni.
●
Glielementiblock-level vengono disposti verticalmente, formando unanuovariga.
●
Unelemento block level di dimensioni non specificate occupatra margini, bordi,
paddinge contenuto, tutta la larghezza messa a disposizionedelsuo box contenitore.
●
In verticale occuperà l’altezza necessaria al suo contenuto.
48. Inline elementsInline elements
● span, a, em { display: inline; }
●
Un elemento in linea è un elemento che rimane in linea conilresto del contenuto:può
contenere solo altri elementi inline
●
Ad un elemento inline, a meno che questo non venga dichiarato float, posizionato o
modificandone lasua natura con la proprietà display, non si possono attribuire delle
dimensioni
●
Elementiinline adiacenti vengono disposti orizzontalmente.
●
Un elemento inline occuperà sia in orizzontale che in verticale l’ altezzanecessaria al
suo contenuto.
50. PositioningPositioning
.positioned { position: static; }
●
STATIC : (default)l'elemento viene posizionato seguendo il normale flusso delcodiceHTML
●
RELATIVE : l'elemento viene posizionato in relazione al suo contenitore naturale conle proprietà
top,left,bottom,right
●
ABSOLUTE : l'elemento viene estratto dal normale flusso della pagina e viene posizionato in
relazione a primo contenitore con valore diverso da staticcon le proprietà top,left,bottom,right
●
FIXED : l'elemento viene estratto dal normale flusso della paginae viene posizionato in relazione
alla paginacon le proprietà top,bottom,lefteright; senza però scrollarecon essa
52. Floating & ClearingFloating & Clearing
.floating { float: left; } /* right, none */
Laproprietà FLOAT estrae un elemento dal normale flusso deldocumento per spostarlo suuno
dei latidel suo contenitore, facendo scorrere tutti gli elementi verso il lato opposto;
.cleared { clear: both; } /* right, left */
Laproprietà CLEAR impedisce che ad un dato elemento si affianchino elementi flottantisu un
lato o entrambi.
68. Vantaggi del PreprocessingVantaggi del Preprocessing
●
Le variabili
●
Le operazioni
●
Le regole annidate
●
Le funzioni (mixins) e le estensioni (extends)
●
Le importazioni di file e librerie
83. Java..che?Java..che?
●
Sviluppato da una sola persona ( @BrendanEich)in 10
giorni
●
Sintassi come il C
●
Interpretato come Basic
●
Dinamico come Python
●
Funzionalecome Scheme
●
Ad oggetti ...ma senza classi! (come Perl)
●
...ed ha Java nel nome!
93. “Any application that can be written in JavaScript, will eventually be
written in JavaScript”
https://blog.codinghorror.com/the-principle-of-least-power/
Legge di AtwoodLegge di Atwood
111. FunctionsFunctions
function calcolaIVA(prezzo,aliquota){
var iva = (prezzo/100)*aliquota;
return iva;
}
function mostraIVA(){
var ivaDaMostrare = calcolaIVA(100,22);
alert(ivaDaMostrare);
}
<button onclick="mostraIVA()">
clicca qui per visualizzare l'IVA
</button>
115. DOMDOM
“...ilDocument Object Model(spesso abbreviato come DOM),
letteralmente “modello a oggettideldocumento”, è una forma di
rappresentazione dei documenti strutturati come modello orientato
agli oggetti....”
https://it.wikipedia.org/wiki/Document_Object_Model
116. DOMDOM
<!-- My document -->
<HTML>
<HEAD>
<TITLE>
My Document
</TITLE>
</HEAD>
<BODY>
<H1>Header</H1>
<P>
Paragraph
</P>
</BODY>
</HTML>
117. Selezionare elementi del DOMSelezionare elementi del DOM
● document.getElementByID()
● <element>.getElementByTagName()
● <element>.getElementByClassName()
● <element>.querySelector();
● <element>.querySelectorAll();
118. Navigare il DOMNavigare il DOM
● document.documentElement;
● <element>.parentNode
● <element>.childNodes[indice]
● <element>.firstChild
● <element>.lastChild
● <element>.nextSibling
● <element>.previousSibling
119. Modificare il DOMModificare il DOM
● <element>.firstChild.nodeValue
● <element>.innerHTML
● <element>.innerHTML=“<p>Testo</p>”
120. Modificare il DOMModificare il DOM
● document.createElement(tagname)
● <element>.createTextNode(text)
● <element>.appendChild(element)
● <element>.insertBefore(new,previous)
● <element>.removeChild(element)
121. WEB APIWEB API
● FILE
● VIDEO
● AUDIO
● 2D/3D/Vector
● GEOLOCATION
● Web workers
● Web sockets
● Local Storage
● Service workers
● ...
122. EventsEvents
function calcolaIVA(prezzo,aliquota){
var iva = (prezzo/100)*aliquota;
return iva;
}
function mostraIVA(){
var ivaDaMostrare = calcolaIVA(100,22);
alert(ivaDaMostrare);
}
var btn = document.querySelector('button');
btn.addEventListener('click', mostraIVA);
123. Synthetic EventsSynthetic Events
function calcoloMoltoMoltoLungo(){
var eventStart = new Event('startCalcolo'),
eventStop = new Event('stopCalcolo');
document.dispatchEvent(eventStart);
...
document.dispatchEvent(eventStop);
}
document.addEventListener('startCalcolo', function (e)
{ alert(“Iniziato!”); }, false);
document.addEventListener('stopCalcolo', function (e)
{ alert(“Finito!”); }, false);
124. Custom EventsCustom Events
function calcoloMoltoMoltoLungo(){
var eventStart = new CustomEvent('startCalcolo', { startTime: new Date() } );
var eventStop = new CustomEvent('stopCalcolo', { stopTime: new Date() } );
document.dispatchEvent(eventStart);
...
document.dispatchEvent(eventStop);
}
document.addEventListener('startCalcolo', function (e)
{ alert(“Iniziato il “ + e.startTime + ”!”); }, false);
document.addEventListener('stopCalcolo', function (e)
{ alert(“Finito il “ + e.stopTime + ”!”); }, false);