Introduzione al concetto di oggetto nel modello della memoria del C++ e ai suoi possibile tempi di vita (temporaneo, automatico, dinamico, ...). Relazione tra il tempo di vita e la visibilità (scope) di un oggetto. Gestione degli oggetti dinamici per tipi primitivi, strutture e array mediante l'utilizzo di puntatori (raw pointers).
Introduzione al concetto di oggetto nel modello della memoria del C++ e ai suoi possibile tempi di vita (temporaneo, automatico, dinamico, ...). Relazione tra il tempo di vita e la visibilità (scope) di un oggetto. Gestione degli oggetti dinamici per tipi primitivi, strutture e array mediante l'utilizzo di puntatori (raw pointers).
Introduzione agli Array in C++. Argomenti trattati: decadimento a puntatore di un array; conseguenze del meccanismo di decadimento sul passaggio di array a funzioni; array multidimensionali e il concetto di puntatore ad array; come passare array multidimensionali a funzioni; gli iteratori come generalizzazione di un puntatore ad elemento di un array ed una breve scorsa di come usare gli iteratori con gli algoritmi standard (e.g., std::copy) del C++.
With Visual Studio 2017, we have a new C # language update. After a brief review of Update 6.0, we'll see what's new. The themes of Update 7 are: Working with Data, Improved Perfomances, and Code Simplification.
Introduzione ai puntatori e ai riferimenti in C++. Viene presentato il problema dello swap, come esempio motivante per l'introduzione della semantica di riferimento. Si procede con l'introduzione del concetto di puntatore, a cui segue una spiegazione dei basilare operatori di referenziazione e dereferenziazione. Il problema dello swap viene risolto mediante puntatori. Si procede con l'introduzione dei riferimenti, come alias di variabili esistenti. Il problema dello swap viene in ultimo risolto mediante riferimenti.
Enrico Zimuel - PUG Milano meetup - Codemotion Milan 2017Codemotion
Meetup del PHP User Group Milano con presentazione delle attività del gruppo e dell'associazione GrUSP per la diffusione delle buone pratiche nel mondo dello sviluppo web. Durante il meetup ci sarà anche un intervento di Enrico Zimuel sulle novità del PHP 7.1 (e 7.2), con la presentazione del suo nuovo libro "Sviluppare in PHP 7. Realizzare applicazioni web e API professionali" edito da Tecniche Nuove.
Introduzione agli Array in C++. Argomenti trattati: decadimento a puntatore di un array; conseguenze del meccanismo di decadimento sul passaggio di array a funzioni; array multidimensionali e il concetto di puntatore ad array; come passare array multidimensionali a funzioni; gli iteratori come generalizzazione di un puntatore ad elemento di un array ed una breve scorsa di come usare gli iteratori con gli algoritmi standard (e.g., std::copy) del C++.
With Visual Studio 2017, we have a new C # language update. After a brief review of Update 6.0, we'll see what's new. The themes of Update 7 are: Working with Data, Improved Perfomances, and Code Simplification.
Introduzione ai puntatori e ai riferimenti in C++. Viene presentato il problema dello swap, come esempio motivante per l'introduzione della semantica di riferimento. Si procede con l'introduzione del concetto di puntatore, a cui segue una spiegazione dei basilare operatori di referenziazione e dereferenziazione. Il problema dello swap viene risolto mediante puntatori. Si procede con l'introduzione dei riferimenti, come alias di variabili esistenti. Il problema dello swap viene in ultimo risolto mediante riferimenti.
Enrico Zimuel - PUG Milano meetup - Codemotion Milan 2017Codemotion
Meetup del PHP User Group Milano con presentazione delle attività del gruppo e dell'associazione GrUSP per la diffusione delle buone pratiche nel mondo dello sviluppo web. Durante il meetup ci sarà anche un intervento di Enrico Zimuel sulle novità del PHP 7.1 (e 7.2), con la presentazione del suo nuovo libro "Sviluppare in PHP 7. Realizzare applicazioni web e API professionali" edito da Tecniche Nuove.
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoGabriele Gaggi
Cordova è la chiave di volta che consente agli sviluppatori web un ingresso rapido ed indolore negli store delle diverse piattaforme mobili. Vediamo come utilizzare questa chiave di volta sfruttando la potenza e semplicità del framework MVC di Google AngularJs ed utilizzando come collante il framework Ionic per ottenere rapidamente applicazioni performanti con un look and feel analogo alle app native.
Node js: che cos'è e a che cosa serve?
oppure
Node.js
Dimmi con quale contorno ti posso mangiare?
All'interno di queste slide, 25 di numero e per essere esatti, cerco di rispondere ad alcune domande che ho ricevuto e riguardavano NodeJS. Mi auguro che siano di vostro gradimento e spero che vi siano utili.
Aspetto i vostri commenti qui sotto, in più potete trovare anche altre informazioni all'interno delle pagine di InsiDevCode (http://www.insidevcode.eu/)
Twig is the template engine used by Drupal 8 and other modern PHP applications. Twig's expressiveness, consistency and secure-by-default policy are still unparalleled among PHP's template engines.
In this session you'll learn advanced techniques, tips and tricks useful for real-world applications and uncommonly used features that will allow you to master Twig.
Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa
Come poter scegliere un framework da utilizzare in un progetto per una web applications? Durante questo workshop analizzeremo le parti fondamentali di AngularJs e React, in modo da capire pregi e difetti di ognungo dei due principali strumenti di sviluppo.
Il Corso Programmazione Java Base di K-Tech (http://www.k-tech.it) ha come obiettivo quello di far comprendere le tecniche di programmazione orientata agli oggetti, cioè di modellare e “pensare” a oggetti, di trasmettere i concetti base del linguaggio e le basi per sviluppare piccole applicazioni in modo autonomo.
Il corso Programmazione Java Base è composto da dodici moduli:
1. Introduzione
2. Ciclo di sviluppo
3. Sintassi Elementare
4. Principi OOP
5. Classi e Oggetti
6. Concetti Object Oriented
7. Collections
8. Eccezioni
9. Input Output
10. Serialization
11. Unit Testing
12. Threads
Leggi il programma completo: http://www.k-tech.it/formazione/catalogo/programmazione_java_base
Slide introduttive al linguaggio Java 8 in preparazione alla certificazione OCA 1Z0-808.
Lezione del 12-10-2017 tenuta da Valerio Radice presso Nextre Engeneering
https://www.nextre.it/corso/corso-java-oca/
Concetti base su Ruby, in particolare Classi, Oggetti e Metodi che vi permetteranno di iniziare ad usare facilmente Ruby.
Slide usate per uno degli incontri del seminario su Ruby On Rails chiamato Rubynetto, organizzato dal Catania Ruby User Group.
Come aggiornare i dati di una tabella relazionale prima di chiavi straniere. Le quattro operazioni fondamentali. CRUD. Visualizzare una lista di righe della tabella relazionale, inserire una nuova riga, ricercare un record conoscendo la sua chiave primaria. Modificare e annullare
Angular 4 - convertire o migrare un'applicazione AngularjsGiovanni Buffa
Seminario renuto all'IRES di Udine sulla migrazione, attraverso UpgradeModule, o la riscrittura di un'applicazione AngularJs in una applicazione Angular 2/4
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSGiovanni Buffa
Gli argomenti trattati durante il Workshop gratuito sull'ideazione e creazione di Web Applications con AngularJS:
- Metodologie innovative di ideazione e creazione di Web Applications;
- Sfide e problemi del lavoro in team;
- Introduzione ad AngularJS e alle sue componenti principali;
- Dimostrazione pratica di una WebApp
Developing for Performances - Laboratorio di Web Design 2014/15Giovanni Buffa
Developing for Permfances: quali sono le cose che veramente contano nella realizzazione di un sito internet. Come poter velocizzare il caricamento di un sito internet.
Introduction to SEO, based on the official document provided by Google: https://static.googleusercontent.com/media/www.google.com/it//intl/it/webmasters/docs/search-engine-optimization-starter-guide-it.pdf
Laboratorio di Web Design Base - 2014/15 - HTML/5Giovanni Buffa
All must used and usefull HTML and HTML5 tags. Thi presentation is used in my course "Laboratorio di Web Design Base" @ Centro Giovani di Monfalcone in 2014/15
2. JavaScript è un linguaggio di scripting, il quale
viene interpretato ed eseguito dal client
(browser).
3. Tutte le istruzioni JavaScript, per poter essere
eseguite, necessitano di essere scritte all’interno
del tag HTML:
<script>…</script>
4. Il tag <script> va sempre inserito prima della
chiusura di <body>.
Solo rari e specifici casi prevedono l’uso di
<script> all’interno di <head>.
5. A differenza di altri linguaggi di programmazione
veri e propri, JavaScript non è orientato agli
oggetti, come ObjectiveC o C#, ma si basa sugli
oggetti.
9. Le variabili sono delle “scatole” che possono
contenere un qualsivoglia valore, numerico
testuale o strutturale.
Le variabili, per definizione, possono variare
durante l’esecuzione dell’applicazione.
10. Le variabili in JavaScript si scrivono anteponendo
al nome della variabile la parola riservata var.
var first = 1;
var second = “Text”;
Non è sempre necessario inizializzare le variabili.
var first;
var second, third, fourth;
12. Le tipologie di dati in JavaScript sono:
• Boolean (valori booleani)
• Number (numeri interi o reali)
• String (caratteri e stringhe)
• Undefined o Null (non difiniti o nulli)
16. Il tipo integer accetta valori numerici interi
compresi tra -infinito a +infinito:
var first = 10;
var second = 1540;
var third = -230;
var fourth = 5*3;
17. Il tipo float accetta valori numerici reali compresi
tra -infinito a +infinito:
var first = 4.153; // 4,153
var second = 3.2e5; //3,2 * 10^5
19. Il tipo string accetta qualsiasi tipologia di
carattere compreso tra singoli o doppi apici:
var first = “This is a string”;
var second = ‘This is another string’;
var third = ‘This is “the last” string’;
21. Il tipo undefined è il valore di una variabile che
non ha valore. Viceversa, il tipo null è una
variabile vuota:
var first;
console.log(first); // undefined
var second = null;
console.log(second); //null
23. Gli operatori aritmetici seguono la stessa logica
degli operatori aritmetici a cui siamo abituati; +, -,
*, /, % (modulo)
24. Gli operatori di assegnazione servono per
assegnare un valore ad una variabile.
• = (assegnazione)
• += (somma per assegnamento)
• -= (sottrazione per assegnamento)
• *= (moltiplicazione per assegnamento)
• /= (divisione per assegnamento)
• %= (modulo per assegnamento)
25. Gli operatori booleani seguono la logica del suo
creatore, George Bool. Si basano su una
matematica che accetta solo due possibili valori:
true e false.
• && (AND logico)
• || (OR logico)
• ! (NOT logico)
26. A B X
0 0 0
0 1 0
1 0 0
1 1 1
A B X
0 0 0
0 1 1
1 0 1
1 1 1
A X
0 1
1 0
AND OR NOT
27. Gli operatori di controllo matematici verificano se
la condizione può essere vera.
• == (uguaglianza)
• === (uguaglianza di
valore e di tipo)
• < (minore)
• <= (minore e uguale)
• > (maggiore)
• >= (maggiore e
uguale)
• != (diverso)
• !== (differente valore e
tipo)
28. Gli operatori di incremento servono ad
incrementare o decrementare di 1 una variabile.
• ++ (incremento - prefisso e postfisso)
• -- (decremento - prefisso e postfisso)
30. Le strutture condizionali permettono di eseguire
un blocco di codice se la sua condizione è vera.
if(condition)
statement
if(condition)
statement
else
statement
if(condition)
statement
elseif
statement
else
statement
31. switch permette in modo più chiaro e pulito
l’esecuzione di più if in cascata, a patto che la
condizione rimanga sempre la medesima.
switch(condition)
case statement
break
32. L’istruzione all’interno di while viene eseguita
fintantoché la condizione risulterà essere vera.
while(condition)
statement
increment
33. Il comportamento è analogo a while, con l’unica
differenza che l’incremento del valore avviene
prima dell’esecuzione dello statement.
for(instance; expression; increment)
statement
34. Grazie a try è possibile “catturare” i possibili errori
derivanti dal nostro codice ed eseguire delle
azioni adeguate.
try
statement
catch(error)
error statement
38. Un array è un’insieme di valori (stringhe, numeri o
array) accomunati da un indice.
39. Un array può essere definito come una collezione
organizzata di oggetti.
Per collezione, si intende che gli oggetti che ne
fanno parte siano dello stesso tipo (in JavaScript,
e in molti altri linguaggi, possono anche non
esserlo).
Per organizzata, implica che sia possibile
identificare univocamente tutti gli oggetti
dell’array in modo sistematico.
40. 2 3 5 7 11 13 17 19
0 1 2 3 4 5 6 7
Ad esempio: array di numeri primi
var numeriPrimi = new Array(2,3,5,7,11,13,17,19);
41. Gli array possono anche essere definiti nel
seguente modo:
var numeriPrimi = new Array();
numeriPrimi[0] = 2;
numeriPrimi[1] = 3;
numeriPrimi[2] = 5;
42. Gli array possono anche essere utilizzati in modo
literal (array literal) senza per forza di cose
istanziare una nuova istanza della classe Array.
var numeriPrimi = [2,3,5,7,11,13,17,19];
console.log(numeriPrimi[2]); // 5
44. Una funzione permette di creare un blocco di
codice in modo da poter essere richiamato ed
eseguito successivamente, anche in molteplici
punti diversi della nostra applicazione.
45. Oltre alle numerose funzioni che JavaScript ci
mette a disposizione, abbiamo la possibilità di
creare noi stessi delle funzioni personalizzate atte
a svolgere determinati compiti all’interno del
nostro codice; richiamando semplicemente la
porzione di codice relativa, alla quale avremo
attribuito un nome che identifichi la funzione.
47. L’istruzione return, seguita dal valore che deve
ritornare, è un metodo più semplice ed efficace
per poter gestire il risultato dei calcoli che
vengono effettuati all’interno della funzione.
console.log(nomeFunzione());
var first = nomeFunzione();
48. Alla funzione, inoltre, possiamo attribuire tutta
una serie di parametri aggiuntivi che possono
variare all’interno dell’esecuzione del nostro
programma, attuando il concetto di riusabilità del
codice.
var nomeFunzione = function(arg1, arg2, argn){
statement
return
}
49. Gli argomenti, infine, possono avere dei valori di
default che, nel caso non vengano definiti nel
richiamare la funzione, vengono utilizzati
comunque prendendo il valore di default che gli
è stato attribuito.
var nomeFunzione = function(arg1, arg2, argn = 0){
statement
return
}
nomeFunzione(1,2);
50. Gli argomenti sono dei segnaposto all’interno
della nostra funzione. Se il nome dell’argomento
è uguale al nome di una variabile all’esterno della
funzione, i calcoli fatti su entrambe sono
individuali e non vanno ad incidere l’uno sull’altro
(scoping).
var arg1 = ‘argument 1’;
var nomeFunzione = function(arg1, arg2, argn){
statement
return
}
52. Gli oggetti sono i principali tipi di dato in
JavaScript: qualsiasi cosa è, in realtà, un oggetto.
Un oggetto non è altro che una struttura con delle
proprietà e dei metodi.
var first = new Array(“abc”, 234);
console.log(first.length); //proprietà
first.push(12); // metodo
53. È possibile, tuttavia, costruire degli oggetti
personalizzati, anche abbastanza complessi,
attraverso le funzioni costruttrici.
Si può ad esempio creare un oggetto cane, con
delle proprietà come razza e taglia, e delle istanze
riferite all'oggetto cane, come Pastore Tedesco o
Barboncino.
54. Inoltre, essendo JavaScript basato sul DOM, gli
elementi stessi del DOM costituiscono degli
oggetti lato client, ovvero degli elementi presenti
nella pagina HTML che hanno delle proprietà e
dei metodi predefiniti.
Ad esempio, la finestra nella quale è descritta una
pagina HTML è rappresentata da un oggetto
window, che può essere chiusa o aperta,
attraverso i metodi close() e open().
55. Così come succede per gli array, anche gli oggetti
possono essere creati con la direttiva new:
var obj = new Object();
obj.name = “Pippo”;
obj.surname = “Pluto”;
obj.walk = function(step){};
console.log(obj.name); // Pippo
56. Tuttavia, anche per gli oggetti, si preferisce
utilizzare la sua forma literal (object literal):
var obj = {
name:“Pippo”,
surname:“Pluto”,
walk:function(step){}
};
console.log(obj.name); // Pippo