cover tecnologia digitaleII web

Marcello Missiroli
Tecnologia e progettazione per il mondo digitale e per il web II
Digital Index Editore, Modena, 2015 - ISBN 9788899283025

 

 

 

 

Indice dell'opera

  224

Collana Teacher 2.0
Prefazione
Introduzione
Introduzione (per i docenti)
Come usare questo libro
Stili visivi
Work in progress
FIL ROUGE
1 - PARALLELISMO
1.1 Oltre von Neumann
1.1.1 Processi: competizione e cooperazione
1.1.1.1 Concorrenza o parallelismo?
1.1.2 Gestione dei processi nei sistemi operativi
1.1.3 Processi: modello Unix
1.1.2.1 Creazione un un processo
1.1.1.2 Passaggio di parametri al programma
1.1.1.3 Ricezione dei parametri dal genitore
1.1.1.4 Processi particolari
1.1.4 Processi: modello Windows
1.1.2.1 Creazione di processi
1.1.2.2 Lanciare processi come altri utenti
1.1.2.3 Processi speciali
1.1.5 Riassumendo
1.1.6 E ora?
1.1.7 Domande ed esercizi – Oltre Von Neumann
1.2 Comunicazione tra processi(IPC)
1.2.1 Gestione della memoria condivisa
1.2.2 Scambio di messaggi
1.2.3 Scambio di messaggi: segnali
1.2.4 Scambio di messaggi: Mailslots
1.2.5 Scambio di messaggi: pipe e FIFO
1.2.5.1 Pipe
1.2.5.2 Pipe con nome (Unix)
1.2.5.3 Pipe con nome (Windows)
1.2.6 Riassumendo
1.2.7 E ora?
1.2.8 Domande ed Esercizi – comunicazione tra processi
1.3 Usare i thread
1.3.1 Modello Unix
1.3.2 Modello Windows
1.3.3 Modello Java
1.3.4 Riassumendo
1.3.6 Domande e esercizi – programmazione multithread
1.4 Programmazione parallela
1.4.1 Dipendenza dei dati
1.4.2 Pensare parallelo
1.4.2.1 Parallelizzazione “manuale”
1.4.2.2 Parallelismo semiautomatico: MPI
1.4.2.3 Parallelismo automatico
1.4.3 Conviene davvero?
1.4.4 Riassumendo
1.4.5 E ora?
1.4.6 Domande ed esercizi – programmazione parallela
1.5 Risorse condivise
1.5.1 Le risorse
1.5.2 Il “caso Alitalia”
1.5.3 Race condition
1.5.4 Sezioni critiche e loro gestione
1.5.4.1 Implementazione: Linux
1.5.4.2 Implementazione: Windows
1.5.4.3 Implementazione: Java
1.5.5 Riassumendo
1.5.6 Domande e esercizi – risorse condivise
1.6 Stallo
1.6.1 Le condizioni
1.6.2 Grafo allocazione risorse
1.6.3 Gestione del problema
1.6.4 Riassumendo
1.6.5 Domande ed esercizi - stallo
1.7 Facciamo il punto e tracciamo la rotta
1.7.1 Esercizi di ricapitolazione
1.7.2 Mappe mentali
2 – SISTEMI OPERATIVI: AMMINISTRAZIONE
2.1 Gestione dei dispositivi
2.1.1 I dispositivi e i sistema operativo
2.1.1.1 Spazio hardware
2.1.1.2 Spazio kernel
2.1.1.3 Spazio utente
2.1.2 Accesso ai dispositivi
2.1.3 Il buffer
2.1.4 Modalità di trasferimento
2.1.4.1 Polling
2.1.4.2 Interrupt
2.1.4.3 DMA
2.1.5 I/O sincrono ed asincrono
2.1.6 Un caso tipico: il disco rigido.
2.1.6.1 Scheduling
2.1.7 Riassumendo
2.1.8 E ora?
2.1.9 Domande e esercizi - gestione dell'input-output
2.2 Bash
2.2.1 Bash: le basi
2.2.1.1 Navigazione
2.1.1.2 Variabili, caratteri speciali ed espansioni
2.1.1.3 File standard e pipe
2.1.1.4 File di configurazione
2.1.2 Scrivere uno script
2.1.2.1 I test
2.1.2.2 Strutture di controllo
2.1.2.3 Funzioni e parametri
2.1.3 Interfaccia utente
2.1.3.1 Zenity
2.1.3.2 Kdialog
2.1.4 Concludendo
2.1.5 E ora?
2.1.6 Domande e esercizi – programmazione bash
2.3 Windows shell
2.3.1 Le basi
2.3.2 File standard e pipe
2.3.3 Variabili d'ambiente
2.3.4 Scrivere gli script
2.3.5 Controllo di flusso
2.3.6 Concludendo.
2.3.7 E ora?
2.3.8 Domande ed esercizi – Windows shell
2.4 Backup e ripristino
2.4.1 Preparare il backup
2.4.1.1 Che dati salvare?
2.4.1.2 Come fare il backup?
2.4.1.3 Ogni quanto fare il backup?
2.4.1.4 Dove salvare i dati?
2.4.1.5 Come fare per decidere?
2.4.2 Backup manuale di dati personali
2.4.3 Backup automatico di dati personali
2.4.4 Backup automatico sul cloud
2.4.4.1 Sincronizzazione selettiva
2.4.5 Backup e ripristino del sistema
2.4.6 Backup e ripristino di un sistema aziendale
2.4.7 Riassumendo
2.4.8 Domande ed esercizi – backup e ripristino
2.5 Gestione operativa
2.5.1 Gestire i driver
2.5.1.1 Driver non certificati (Windows)
2.5.1.2 Driver non aggiornati o non più funzionanti (Windows)
2.5.1.3 Driver non presenti o proprietari (Linux)
2.5.1.4 Due consigli pratici
2.5.2 Gestione servizi / demoni
2.5.2.1 Servizi Windows
2.5.2.2 Disabilitare servizi Windows non essenziali
2.5.2.3 Demoni Unix
2.5.2.4 Avviare i demoni
2.5.2.5 Modifiche definitive alla configurazione
2.5.3 Il registro di Windows
2.5.3.1 Regole pratiche
2.5.3.2 Esempio pratico
2.5.3.3 Chiavi interessanti
2.5.3.4 Applicazioni
2.5.3.5 Modifiche tramite script
2.5.4 Configurazione utente in Linux
2.5.5 Configurazione di Gnome
2.5.6 Riassumendo
2.5.7 E ora?
2.5.8 Domande ed esercizi – gestione operativa
2.6 Facciamo il punto
2.6.1 Esercizi di ricapitolazione
2.6.2 Mappe mentali
3- SVILUPPO WEB
3.1 Programmare il web
3.1 Web statico
3.2 Web dinamico
3.3 Riassumendo
3.4 Domande ed esercizi
3.2 Dal buon vecchio HTML all' HTML5
3.2.1 Struttura del documento base
3.2.2 Struttura della pagina
3.2.3 Nuovi elementi di marcatura
3.2.4 Browser incompatibili
3.2.5 I form
3.2.5.1 Come funziona, davvero
3.2.5.2 Altri tipi di input
3.2.5.3 Formattare il form
3.2.5.4 Form in salsa HTML5
3.2.6 Riassumendo
3.2.7 E ora?
3.2.8 Domande ed esercizi – le basi di HTML5
3.3 Primi passi in Javascript
3.3.1 Javascript e la sua storia
3.3.2 Setup della workstation di sviluppo
3.3.2.1 Debugger
3.3.3 Come usare gli script
3.3.4 Le basi del linguaggio
3.3.4.1 Il primo programma: “Hello world”
3.4.4.2 Le variabili e le costanti
3.4.4.3 L'assegnazione e gli operatori
3.4.4.4 Controllo del flusso
3.3.5 Array
4.2.5.1 La “rogna” bidimensionale
4.3.5.2 Metodi per gli array
3.3.6 Input / Output elementare
3.3.7 Funzioni
3.3.7.1 Dichiarazione e invocazione
3.3.7.2 Parametri
3.3.7.3 Valore di ritorno
3.3.8 Riassumendo
3.2.9 E ora?
3.2.10 Domande ed esercizi – primi passi in Javascript
3.4 Oggetti ed eventi in Javascript
3.4.1 Oggetti predefiniti
3.4.1.1 L'oggetto String
3.4.1.2 L'oggetto Date
3.4.1.3 Gli oggetti Math e RegExp
3.4.2 Oggetti del browser
3.4.2.1 L'oggetto Navigator
3.4.2.2 L'oggetto Location
3.4.2.3 Gli oggetti Window e Screen
3.4.3 Gli eventi
3.4.3.1 Il modello degli eventi
3.4.3.2 Eventi temporizzati
3.4.3.3 Eventi dovuti ad errori
3.4.3.4 Mouse e Tastiera
3.4.3.5 Nuova gestione degli eventi
3.4.4 Gli oggetti personalizzati.
3.4.4.1 Modificare gli oggetti esistenti
3.4.4.2 Creare nuovi oggetti
3.4.5 Riassumendo
3.4.6 E ora?
3.4.7 Domande ed esercizi – oggetti ed eventi in javascript
3.5 Dominare il DOM
3.5.1 Come funziona il DOM
3.5.2 Il primo DOM (modello base)
3.4.1.1 Controllo dei form
3.5.1.2 Gestione dei dati inviati
3.5.3 Più flessibilità
3.5.3.1 getElementbyId()
3.4.3.2 getElementsByTagName
3.5.3.3 innerHTML
3.5.4 Nodi come liste
3.5.4.1 CreateElement, AppendChild e altri
3.4.4.2 GetAttribute e setAttribute
3.5.5 Funzioni interne e closures
3.5.6 Riassumendo
3.5.7 E ora?
3.5.8 Domande ed esercizi – dominare il DOM
3.6 Introduzione a jQuery
3.6.1 Cos'è jQuery
3.6.2 I vantaggi
3.6.3 Hello, jQuery
3.6.4 Selezione
3.6.4.1 Filtraggio
3.6.5 Stile
3.6.6 Eventi ed effetti
3.6.7 Riassumendo
3.6.8 E ora?
3.6.9 Domande ed esercizi – introduzione a jQuery
3.7 HTML5 Multimedia
3.7.1 La materia prima
3.7.1.1 Aspetto tecnico
3.7.2 Il tag audio
3.7.3 Il tag video
3.7.4 Aspetti avanzati
3.7.4.1 Formati multipli
3.7.4.2 Emergenza
3.7.4.3 Sottotitoli e didascalie
3.7.5 Scripting
3.7.6 Riassumendo
3.7.7 E ora?
3.7.8 Domande ed esercizi – html5 multimedia
3.8 Facciamo il punto
3.8.1 Esercizi di ricapitolazione
3.8.2 Mappe mentali
4- MODERNE METODOLOGIE DI SVILUPPO
4.1 Test-first Programming
4.1.1 La metodologia
4.1.2 Testing automatico
4.1.3 Esperienza Guidata 1: isBisestile()
4.1.3.1 Prima iterazione
4.1.3.2 Seconda iterazione
4.1.3.3 Terza iterazione
4.1.3.4 Fermarsi o continuare?
4.1.4 Esperienza guidata 2: romanizza()
4.1.4.1 Preparazione
4.1.4.2 Prima iterazione.
4.1.4.3 Seconda iterazione
4.1.4.4 Terza iterazione
4.1.4.5 Quarta iterazone.
4.1.4.6 Considerazioni finali
4.1.5 Critiche
4.1.6 Riassumendo
4.1.7 E ora?
4.1.8 Esercizi e domande – Test-first programming
4.2 Pair Programming
4.2.1 L'idea di fondo
4.2.2 Gli strumenti.
4.2.3 Critiche
4.2.4 Riassumendo
4.2.5 Domande ed esercizi – pair programming
4.3 Refactoring
4.3.1 Analisi del codice
4.3.2 Il sintomo peggiore
4.3.3 Rifattorizzare
4.3.3.1 Metodi di composizione
4.3.3.2 Metodi di spostamento
4.3.3.3 Metodi di riorganizzazione
4.3.3.4 Metodi di semplificazione
4.3.3.5 Altri metodi
4.3.4 Applicare il refactoring
4.3.5 Testare
4.3.6 Prova sul campo
4.3.7 Quando e quanto rifattorizzare
4.3.8 Test Driven Development
4.3.8.1 Red-Green-Refactor
4.3.9 Riassumendo
4.3.10 E ora?
4.3.11 Domande ed esercizi - refactoring
4.4 Controllo di versione
4.4.1 Il problema
4.4.2 La soluzione
4.4.3 Breve storia del controllo di versione
4.4.4 I problemi più in dettaglio.
4.4.5 Funzionamento base
4.4.6 Aggiungiamo la rete.
4.4.7 I conflitti
4.4.7 Reset
4.4.8 Le ramificazioni
4.4.9 Uso avanzato
4.4.10 Subversion e git
4.4.10.1 Git-svn: the best of both worlds?
4.4.11 File binari
4.4.12 GUI e integrazione con IDE
4.4.13 Riassumendo
4.4.14 E ora?
4.4.15 Domande ed esercizi – controllo di versione
4.5 Facciamo il punto
4.5.1 Progetti di ricapitolazione
4.5.2 Mappe mentali