Ecco le mie slide su NodeJS al Napoli DevDay . Vedrete praticamente, con l'ausilio di snippet di codice, alcuni dei punti chiave di questo linguaggio.
Per vedere le slide con le gif funzionanti:
https://docs.google.com/presentation/d/1EDsvR99WUDx3IBhygYt51YKM1sA5UA_PJmaRFh9HTa4/edit?usp=sharing
A questo repository troverete gli esempi fatti durante il talk:
https://github.com/musikele/nodeJsExamples
Per testare le API rest io uso Advanced Rest Client, estensione di Chrome. Ricordatevi di settare l'encoding a application/json .
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/)
Ecco le mie slide su NodeJS al Napoli DevDay . Vedrete praticamente, con l'ausilio di snippet di codice, alcuni dei punti chiave di questo linguaggio.
Per vedere le slide con le gif funzionanti:
https://docs.google.com/presentation/d/1EDsvR99WUDx3IBhygYt51YKM1sA5UA_PJmaRFh9HTa4/edit?usp=sharing
A questo repository troverete gli esempi fatti durante il talk:
https://github.com/musikele/nodeJsExamples
Per testare le API rest io uso Advanced Rest Client, estensione di Chrome. Ricordatevi di settare l'encoding a application/json .
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/)
HTML5 Single Page Application è il nuovo hype tecnologico: tutti ne parlano, il web ne è pervaso, da GMail a Facebook e Twitter, dal desktop al mobile, dagli Appennini alle Ande.
In questa sessione ci occuperemo di tutti quegli aspetti di organizzazione di una solution in termini di codebase, unit testing e processo di build, presentando alcuni strumenti che stanno emergendo fra quelli disponibili.
Demo: http://www.communitydays.it/events/2014-Roma/web02/
Da un po' di tempo a questa parte quando uno sviluppatore software sente la parola "Clouds" non pensa più alle nuovole, ma a...? Durante l'intervento risponderò a questa domanda e mostrerò come una applicazione web sviluppata con Spring Framework, Apache Maven e OpenJPA può essere installata facilmente e (quasi)gratuitamente sulla piattaforma per il cloud computing messa a disposizione da Google.
Il codice di esempio della presentazione lo trovate su: http://code.google.com/p/gae-javaday10/
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...Marco Parenzan
Windows Azure e Team Foundation Server hanno cominciato a cambiare in una maniera incredibile il modo di gestire i progetti software e tutta l'attività professionale dello sviluppatore. Ora il passaggio ulteriore: un Visual Studio, al momento ancora agli inizi, ma molto promettenti, completamente Web che gira nel browser. Vediamo cosa possiamo farci, tra sviluppo software, scelte tecnologiche, gestione del progetto e deployment.
"Making chatbots: a day in the life", Ing. Diego Viganò, Lead SW Engineer di Vidiemme Consulting. Cosa vuol dire "fare un chatbot" non solo dal punto di vista del codice, ma anche del processo che parte dalla consulenza, passa dal design, dalle stime, fino alla realizzazione e al testing.
Utilizzando alcuni degli standard web più moderni, Microsoft ha realizzato Blazor: una soluzione che permette ai programmatori .NET di riutilizzare le proprie conoscenze per la realizzazione della user interface delle proprie applicazioni.
Già disponibile per l’uso in produzione con una versione server-side, verrà rilasciata a Maggio una versione client-side basata su WebAssembly, che permetterà lo sviluppo di una Single Page Application in C# eseguita interamente nel browser.
Ma la roadmap non si ferma qui, perchè sono già disponibili le prime versioni sperimentali per l’utilizzo di questa tecnologia anche su Desktop e Mobile!
WordPress lento? Guida per un sito web veloce e performante. Autore Emilio Pe...Petrozzi Emilio
Tutorial che descrive come rendere più veloce e performante un sito web che gira su piattaforma WordPress. Descrizione degli errori più comuni e soluzioni che renderanno molto più veloce il caricamento delle pagine web.
Creare API pubbliche, come evitare gli errori comuniAndrea Dottor
Cerchiamo di capire cosa vuol dire creare delle API pubbliche. Cerchiamo di capire cosa offre ad oggi ASP.NET, e come utilizzare al meglio la tecnologia. L'intenzione è di andare in dettaglio su problematiche spesso sottovalutate: serve sempre ASP.NET Web API? E' meglio WCF? Quali problematiche possono capitare? Come faccio il versionamento? Quali oggetti/classi espongo? E la documentazione?
O documento discute vários comandos de linha de comando no Linux utilizados para manipular texto, como cat, cut, fmt, head, join, nl, tac, tail e wc. O documento também discute brevemente sobre permissões de arquivos e diretórios e os comandos chmod e gzip para compactar arquivos.
Este documento es una liquidación de viáticos que incluye la información del comisionado, los gastos efectuados durante la comisión como hotel y alimentos, y el total de los viáticos devengados. Se proporcionan datos como el nombre del comisionado, su puesto, categoría y clave presupuestal, así como el periodo y lugar de la comisión.
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.
HTML5 Single Page Application è il nuovo hype tecnologico: tutti ne parlano, il web ne è pervaso, da GMail a Facebook e Twitter, dal desktop al mobile, dagli Appennini alle Ande.
In questa sessione ci occuperemo di tutti quegli aspetti di organizzazione di una solution in termini di codebase, unit testing e processo di build, presentando alcuni strumenti che stanno emergendo fra quelli disponibili.
Demo: http://www.communitydays.it/events/2014-Roma/web02/
Da un po' di tempo a questa parte quando uno sviluppatore software sente la parola "Clouds" non pensa più alle nuovole, ma a...? Durante l'intervento risponderò a questa domanda e mostrerò come una applicazione web sviluppata con Spring Framework, Apache Maven e OpenJPA può essere installata facilmente e (quasi)gratuitamente sulla piattaforma per il cloud computing messa a disposizione da Google.
Il codice di esempio della presentazione lo trovate su: http://code.google.com/p/gae-javaday10/
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...Marco Parenzan
Windows Azure e Team Foundation Server hanno cominciato a cambiare in una maniera incredibile il modo di gestire i progetti software e tutta l'attività professionale dello sviluppatore. Ora il passaggio ulteriore: un Visual Studio, al momento ancora agli inizi, ma molto promettenti, completamente Web che gira nel browser. Vediamo cosa possiamo farci, tra sviluppo software, scelte tecnologiche, gestione del progetto e deployment.
"Making chatbots: a day in the life", Ing. Diego Viganò, Lead SW Engineer di Vidiemme Consulting. Cosa vuol dire "fare un chatbot" non solo dal punto di vista del codice, ma anche del processo che parte dalla consulenza, passa dal design, dalle stime, fino alla realizzazione e al testing.
Utilizzando alcuni degli standard web più moderni, Microsoft ha realizzato Blazor: una soluzione che permette ai programmatori .NET di riutilizzare le proprie conoscenze per la realizzazione della user interface delle proprie applicazioni.
Già disponibile per l’uso in produzione con una versione server-side, verrà rilasciata a Maggio una versione client-side basata su WebAssembly, che permetterà lo sviluppo di una Single Page Application in C# eseguita interamente nel browser.
Ma la roadmap non si ferma qui, perchè sono già disponibili le prime versioni sperimentali per l’utilizzo di questa tecnologia anche su Desktop e Mobile!
WordPress lento? Guida per un sito web veloce e performante. Autore Emilio Pe...Petrozzi Emilio
Tutorial che descrive come rendere più veloce e performante un sito web che gira su piattaforma WordPress. Descrizione degli errori più comuni e soluzioni che renderanno molto più veloce il caricamento delle pagine web.
Creare API pubbliche, come evitare gli errori comuniAndrea Dottor
Cerchiamo di capire cosa vuol dire creare delle API pubbliche. Cerchiamo di capire cosa offre ad oggi ASP.NET, e come utilizzare al meglio la tecnologia. L'intenzione è di andare in dettaglio su problematiche spesso sottovalutate: serve sempre ASP.NET Web API? E' meglio WCF? Quali problematiche possono capitare? Come faccio il versionamento? Quali oggetti/classi espongo? E la documentazione?
O documento discute vários comandos de linha de comando no Linux utilizados para manipular texto, como cat, cut, fmt, head, join, nl, tac, tail e wc. O documento também discute brevemente sobre permissões de arquivos e diretórios e os comandos chmod e gzip para compactar arquivos.
Este documento es una liquidación de viáticos que incluye la información del comisionado, los gastos efectuados durante la comisión como hotel y alimentos, y el total de los viáticos devengados. Se proporcionan datos como el nombre del comisionado, su puesto, categoría y clave presupuestal, así como el periodo y lugar de la comisión.
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.
Design for Developers: Introduction to Bootstrap 3John Bertucci
As web developers, we might not always have experience or training with principles of design. This presentation's goal is introduce some basic design principles and provide some resources to help developers create better designs or at least become more aware of design. Finally, the end of the presentation will introduce Bootstrap 3 in more of a workshop format. I'll show people who to add Bootstrap to their project and how easy it is to apply some basic design.
This presentation provides a brief overview on becoming a member of the Node.js Foundation. For more information, visit https://nodejs.org/en/foundation/members/.
This document provides an introduction to Bootstrap, an open-source front-end framework for building responsive mobile-first websites and web applications. It discusses the basics of web development using HTML, CSS, and JavaScript. It then explains what Bootstrap is, how to add it to a website, and how to use its grid system, forms, buttons, and other common elements. Resources for using, customizing and finding additional components for Bootstrap are also provided.
A talk overviewing Groovy related technologies and tools which introduction has been favorited by the dynamic nature of the language.
Milan Java User Group, November 2013
Working between the clouds (versione completa)Davide Cerbo
Da un po' di tempo a questa parte quando uno sviluppatore software sente la parola "Clouds" non pensa più alle nuovole, ma a...? Durante l'intervento risponderò a questa domanda e mostrerò come una applicazione web sviluppata con Spring Framework, Apache Maven e JPA può essere installata facilmente e (quasi) gratuitamente sulla piattaforma per il cloud computing messa a disposizione da Google. Vedremo poi come applicare i principali pattern relativi alla scalabilità utilizzando gli strumenti messi a disposizione dalla piattaforma di Google.
Accessibilità (e Plone) - le norme ma con buon senso - 2015Jacopo Deyla
Come i nuovi requisiti di accessibilità italiani impattano sul Web, in particolare sul CMS Plone e i suoi prodotti. Le strategie per affrontare l'accessiblità dei prodotti open-source dell aRegione Emilia-Romagna.
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiwalk2talk srl
Grazie al Azure, oggigiorno è possibile disegnare soluzioni di Disaster Recovery affidabili e di facile implementazione anche per la media e piccola impresa.
Vediamo insieme quali sono le soluzioni suggerite da Microsoft, confrontandone pregi e difetti.
By Marco Obinu
Dream è un nodo ROS che punta ad integrare le funzionalità di Roboearth sul popolare framework, offrendo il semplice accesso a due topic: action_request e action_response.
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureMarco Obinu
Slides presented at SQL Saturday 871, regarding DR technologies for SQL Server using Azure as a secondary datacenter. Slides includes demo videos on how to extend an existing SQL FCI to Azure with Basic Availabity Groups.
Demo scripts available at https://github.com/OmegaMadLab/FCI_and_AG
Full session recording available at https://www.youtube.com/watch?v=s8TmM-0E9sQ
3. INDICE DEL CORSO
CORE
• Introduzione su node
• Installazione
• Struttura base di un progetto
• npm
• Hands on: Esempi di funzionalita’ di base
• Hands on: Esempi di piccole applicazioni
Wednesday, May 22, 13
4. INDICE DEL CORSO
EXPRESS
• Installazione
• Generazione di un progetto
• Routes
• Views
• Middle wares
• Sessions and Error Handling
Wednesday, May 22, 13
6. INDEX
• Cos’e’ Node.js
• Come e perche’ nasce
• Async e NextTick
• Esempi di architettura in cui usarlo
Wednesday, May 22, 13
7. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network
applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and
efficient, perfect for data-intensive real-time applications that run across distributed devices.
CurrentVersion: v0.8.21
Wednesday, May 22, 13
9. RYAN DAHL
Studente in Matematica
Si trasferisce in Sud America
Incontra un programmatore php
Inizia a sviluppare siti ed “applicazioni” web
Incontra ROR
Si accorge che il Web e’ lento!
Wednesday, May 22, 13
10. Il Web e’ lento!
Per via di Java ;)
Wednesday, May 22, 13
11. Il Web e’ lento!
Per via di Java ;)
Alcuni cominciano a lavorare per velocizzare ROR
Wednesday, May 22, 13
12. Il Web e’ lento!
Per via di Java ;)
Alcuni cominciano a lavorare per velocizzare ROR
Ma il problema risiede nell’intero stack
Wednesday, May 22, 13
13. Il Web e’ lento!
Per via di Java ;)
Alcuni cominciano a lavorare per velocizzare ROR
Ma il problema risiede nell’intero stack
Il lavoro di Zed Shaw da vita a Mongel
Wednesday, May 22, 13
15. Mongrel
Per via di Java ;)
E’ sia una libreria http, sia un webserver!
Wednesday, May 22, 13
16. Mongrel
Per via di Java ;)
E’ sia una libreria http, sia un webserver!
Il web server non e’ piu’ solo “una directory “
Wednesday, May 22, 13
17. Mongrel
Per via di Java ;)
E’ sia una libreria http, sia un webserver!
Il web server non e’ piu’ solo “una directory “
Puo’ racchiudere direttamente la logica
Wednesday, May 22, 13
19. Il Web Server
Per via di Java ;)
Distillato, e’ fatto per gestire richieste e risposte
Wednesday, May 22, 13
20. Il Web Server
Per via di Java ;)
Distillato, e’ fatto per gestire richieste e risposte
Servire files e’ una parte ma non e’ obbligatoria
Wednesday, May 22, 13
22. THE FILE UPLOAD PROBLEM
Caricare files via http non era poi cosi’ comune
Wednesday, May 22, 13
23. THE FILE UPLOAD PROBLEM
Caricare files via http non era poi cosi’ comune
Con la nascita di Ajax si cominciavano a caricareVIDEO!
Wednesday, May 22, 13
24. THE FILE UPLOAD PROBLEM
Caricare files via http non era poi cosi’ comune
Con la nascita di Ajax si cominciavano a caricareVIDEO!
Ed ecco un nuovo problema da affrontare:
Wednesday, May 22, 13
26. LA PROGRESS BAR
Il DOM non dava alcuna informazione sul file
Wednesday, May 22, 13
27. LA PROGRESS BAR
Il DOM non dava alcuna informazione sul file
Il trucco era controllare lo stato del file lato server in batch.
Wednesday, May 22, 13
28. LA PROGRESS BAR
Il DOM non dava alcuna informazione sul file
Il trucco era controllare lo stato del file lato server in batch.
Ma l’http 1.1 ci da connessioni che possono restare aperte!
Wednesday, May 22, 13
29. LA PROGRESS BAR
Il DOM non dava alcuna informazione sul file
Il trucco era controllare lo stato del file lato server in batch.
Ma l’http 1.1 ci da connessioni che possono restare aperte!
Nasce un interessante plugin per Mongrel
Wednesday, May 22, 13
31. IL LONG POLLING
Non piu’ continue richieste Ajax temporizzate
Wednesday, May 22, 13
32. IL LONG POLLING
Non piu’ continue richieste Ajax temporizzate
Il Web Server non risponde e chiude subito la connessione
Wednesday, May 22, 13
33. IL LONG POLLING
Non piu’ continue richieste Ajax temporizzate
Il Web Server non risponde e chiude subito la connessione
La connessione resta aperta finche’ la si puo’ usare
Wednesday, May 22, 13
34. IL LONG POLLING
Non piu’ continue richieste Ajax temporizzate
Il Web Server non risponde e chiude subito la connessione
La connessione resta aperta finche’ la si puo’ usare
Il Server continua a spedire lo stato del file fino al termine
Wednesday, May 22, 13
35. IL WEB SERVER E’APPENA
DIVENTATO MOLTO PIU’
INTELLIGENTE! :)
Wednesday, May 22, 13
38. IL WEB E’ANCORA LENTO!
Ruby, Python, ecc sono troppo lenti by design
Wednesday, May 22, 13
39. IL WEB E’ANCORA LENTO!
Ruby, Python, ecc sono troppo lenti by design
Gli interpreti sono singoli thread bloccanti
Wednesday, May 22, 13
40. IL WEB E’ANCORA LENTO!
Ruby, Python, ecc sono troppo lenti by design
Gli interpreti sono singoli thread bloccanti
Il C e’ veloce ma uno sconosciuto per troppi webdev
Wednesday, May 22, 13
50. LA RISPOSTA:
Tutto in un solo thread
Migliora?
SI! Si possono evitare tutti i problemi derivanti dai lock!
Wednesday, May 22, 13
51. LA RISPOSTA:
Tutto in un solo thread
Migliora?
SI! Si possono evitare tutti i problemi derivanti dai lock!
C’e’ un linguaggio che tutto cio’ lo fa di natura:
Wednesday, May 22, 13
54. JAVASCRIPT
Negli ultimi anni ha preso sempre piu’ piede
Tutti i maggiori browser stavano gia’ “combattendo su js”
Wednesday, May 22, 13
55. JAVASCRIPT
Negli ultimi anni ha preso sempre piu’ piede
Tutti i maggiori browser stavano gia’ “combattendo su js”
Nel 2008 era stato rilasciatoV8
Wednesday, May 22, 13
56. JAVASCRIPT
Negli ultimi anni ha preso sempre piu’ piede
Tutti i maggiori browser stavano gia’ “combattendo su js”
Nel 2008 era stato rilasciatoV8
Ha le caratteristiche adatte:
Wednesday, May 22, 13
57. JAVASCRIPT
Negli ultimi anni ha preso sempre piu’ piede
Tutti i maggiori browser stavano gia’ “combattendo su js”
Nel 2008 era stato rilasciatoV8
Ha le caratteristiche adatte:
Closures
Wednesday, May 22, 13
58. JAVASCRIPT
Negli ultimi anni ha preso sempre piu’ piede
Tutti i maggiori browser stavano gia’ “combattendo su js”
Nel 2008 era stato rilasciatoV8
Ha le caratteristiche adatte:
Closures
Funzioni anonime
Wednesday, May 22, 13
59. JAVASCRIPT
Negli ultimi anni ha preso sempre piu’ piede
Tutti i maggiori browser stavano gia’ “combattendo su js”
Nel 2008 era stato rilasciatoV8
Ha le caratteristiche adatte:
Closures
Funzioni anonime
Non e’ usato al di fuori dei browser
Wednesday, May 22, 13
60. JAVASCRIPT
Negli ultimi anni ha preso sempre piu’ piede
Tutti i maggiori browser stavano gia’ “combattendo su js”
Nel 2008 era stato rilasciatoV8
Ha le caratteristiche adatte:
Closures
Funzioni anonime
Non e’ usato al di fuori dei browser
Quindi non ha preconcetti su come fare le cose.
Wednesday, May 22, 13
63. NASCE NODE.JS
Viene presentato alla javascript conf di Berlino
La prima app di demo: un IRC Server, 400 linee di codice!
Wednesday, May 22, 13
64. NASCE NODE.JS
Viene presentato alla javascript conf di Berlino
La prima app di demo: un IRC Server, 400 linee di codice!
Ed e’ fatto per costruire network servers!
Wednesday, May 22, 13
65. NASCE NODE.JS
Viene presentato alla javascript conf di Berlino
La prima app di demo: un IRC Server, 400 linee di codice!
Ed e’ fatto per costruire network servers!
Il suo nome indica che e’ fatto per essere un nodo tra molti
Wednesday, May 22, 13
66. NASCE NODE.JS
Viene presentato alla javascript conf di Berlino
La prima app di demo: un IRC Server, 400 linee di codice!
Ed e’ fatto per costruire network servers!
Il suo nome indica che e’ fatto per essere un nodo tra molti
E’ adatto alla Cloud* per sua natura.
*Una volta si chiamava internet
Wednesday, May 22, 13
69. ASYNC E NEXTTICK
le applicazioni node girano in un singolo thread
Wednesday, May 22, 13
70. ASYNC E NEXTTICK
Le applicazioni node girano in un singolo thread
Questo comporta che ad ogni dato momento viene eseguito
solo un task nell’event loop
Wednesday, May 22, 13
71. ASYNC E NEXTTICK
Le applicazioni node girano in un singolo thread
Questo comporta che ad ogni dato momento viene eseguito
solo un task nell’event loop
Possiamo immaginare l’event loop come una coda di callback
Wednesday, May 22, 13
72. ASYNC E NEXTTICK
Le applicazioni node girano in un singolo thread
Questo comporta che ad ogni dato momento viene eseguito
solo un task nell’event loop
Possiamo immaginare l’event loop come una coda di callback
Ad ogni tick dell’event loop viene eseguida una delle callback
nella coda
Wednesday, May 22, 13
73. ASYNC E NEXTTICK
Le applicazioni node girano in un singolo thread
Questo comporta che ad ogni dato momento viene eseguito
solo un task nell’event loop
Possiamo immaginare l’event loop come una coda di callback
Ad ogni tick dell’event loop viene eseguida una delle callback
nella coda
Non c’e’ concorrenza ne’ multicore
Wednesday, May 22, 13
74. User NODE
NODE
Client Web Engine
Database
Logging facility
Mass storage
(big slow disk)
DB
Disk
ESEMPIO DI ARCHITETTURA
In questo modo i logs non rallentano piu’ i processi critici
Wednesday, May 22, 13
76. UN CASO COMPLESSO
Il backend di SaveThe Mom e’ tutto in node.js e ne sfrutta
pesantemente il modello asincrono con l’aiuto di bus e code
Wednesday, May 22, 13