Node js dev day napoli 2016Michele NastiEcco 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?Flavius-Florin HaraborNode 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/)
Working between the cloudsDavide CerboDa 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/
WPO: Ottimizzazione step-by-step del front-end di un e-commerceFrancesco TerenzaniIntervento del 10 maggio 2019 al Serious Monkey e dedicato all'Ottimizzazione della velocità di caricamento di un e-commerce.
Making ChatbotsPaolo Montrasio "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.
Blazor ha vinto? Storie di casi realiAndrea DottorIn questa serata cercheremo di capire perchè Blazor ha riscosso così tanto successo, e lo faremo analizzando casi presi da applicazioni reali dove questa tecnologia è stata introdotta, così da capirne meglio le potenzialità (ma anche le eventuali criticità).
Come di consuetudine, faremo poi un confronto, così da condividere i vari punti di vista.
Agileday2013 pratiche agili applicate all'infrastrutturaXPeppersGestire l’infrastruttura come se fosse codice, ha degli indubbi vantaggi, soprattutto in un team agile che ha più esperienze Dev piuttosto che Ops.
In questa sessione vi racconteremo la nostra esperienza, problemi, vantaggi e cosa abbiamo imparato.
Lo unified tooling è l’area di interesse DevOps che fonde pratiche di software development a quelle di system administration, con lo scopo di semplificare il processo di deployment di ambienti complessi. In questo talk vengono esposte le esperienze di un team di dev che è riuscito a gestire e replicare ambienti complessi, ricorrendo a strumenti e pratiche delle metodologie agili. Saranno evidenziati i vantaggi ottenuti e le problematiche riscontrate.
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieriݺߣ del seminario sull'uso di React con Delphi e confronto con altre tecnologie (es. ExtJS) per lo sviluppo Web, tenuto al Delphi Day 2016 a Piacenza.
I sorgenti sono disponibili qui:
https://github.com/marcobreveglieri/conferences/tree/master/2016/delphi_day_2016
Applicazioni Web ultra-performanti con Vue.js e DelphiMarco BreveglieriVue.js è un framework per creare interfacce utente estremamente performanti e che può essere introdotto progressivamente nelle vostre applicazioni Web, nel modo meno invasivo possibile. In questo talk scoprirete come utilizzarlo con Delphi creando una soluzione frontend e backend ad elevate prestazioni.
Delphi & Dintorni Webinar - Diventa un mago del TestingMarco BreveglieriIl Testing è una pratica sempre più preziosa e fondamentale nell'ambito dello sviluppo del software: si tratta di un passaggio fondamentale per ridurre il numero dei bug nel software e abilitare automatismi come la Continuous Integration e la Continuous Delivery. Se utilizzati in modo errato però, i test possono causare più problemi di quanti ne prevengano: è importante quindi conoscere le differenze tra le varie tipologie di test, quali sono le loro caratteristiche ideali e padroneggiarli al meglio. In questo webinar faremo luce sul Testing, chiariremo bene i concetti di Unit e Integration Test, vedremo come scriverli nel modo corretto e quali tool ci vengono in aiuto... alla fine il Testing non avrà più segreti!
Javascript task automationAntonio LiccardiSessione per NetCampus 2015. La diffusione sempre più ampia di applicazioni sviluppate interamente in HTML5 e JS richiede l'adozione di processi di automazione per la fase di build, testing e rilascio. In questa sessione vedremo quali sono i principali strumenti a nostra disposizione per semplificare queste fasi dello sviluppo.
MongoDB User Group Padova - Overviews iniziale su MongoDBStefano DindoMongoDB è un database non relazionale, orientato ai documenti. Classificato come un database di tipo NoSQL, MongoDB si allontana dalla struttura tradizionale basata su tabelle dei database relazionali in favore di documenti in stile JSON con schema dinamico (MongoDB chiama il formato BSON), rendendo l'integrazione di dati di alcuni tipi di applicazioni più facile e veloce.
Lo scopo del MongoDB User Group Padova è quello di condividere esperienze sulla tecnologia MongoDB.
Questa presentazione, usata durante il primo evento dello User Group, è stata usata per introdurre i partecipanti sulle procedure di installazione ed i concetti di base su MongoDB.
#dd12 grillo daniele_xpages_tips_tricks_rev2Dominopoint - Italian Lotus User GroupXPages, trucchi e soluzioni sullo sviluppo applicativo IBM Lotus Notes
#dd12 Applicazioni a tre voci (Android e Domino)Dominopoint - Italian Lotus User GroupDi androidi, mele morsicate e more (realizzare applicazioni Domino su Android con Titaniun)
Node.js - Server Side JavascriptMatteo NapolitanoAn overview of technologies and best practices for the development of a full-stack web application using JavaScript. How to realize an entire Application Server with a single programming language, the use of event-driven logic and the potential of Node.js.
Working between the clouds (versione completa)Davide CerboDa 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.
WPO: Ottimizzazione step-by-step del front-end di un e-commerceFrancesco TerenzaniIntervento del 10 maggio 2019 al Serious Monkey e dedicato all'Ottimizzazione della velocità di caricamento di un e-commerce.
Making ChatbotsPaolo Montrasio "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.
Blazor ha vinto? Storie di casi realiAndrea DottorIn questa serata cercheremo di capire perchè Blazor ha riscosso così tanto successo, e lo faremo analizzando casi presi da applicazioni reali dove questa tecnologia è stata introdotta, così da capirne meglio le potenzialità (ma anche le eventuali criticità).
Come di consuetudine, faremo poi un confronto, così da condividere i vari punti di vista.
Agileday2013 pratiche agili applicate all'infrastrutturaXPeppersGestire l’infrastruttura come se fosse codice, ha degli indubbi vantaggi, soprattutto in un team agile che ha più esperienze Dev piuttosto che Ops.
In questa sessione vi racconteremo la nostra esperienza, problemi, vantaggi e cosa abbiamo imparato.
Lo unified tooling è l’area di interesse DevOps che fonde pratiche di software development a quelle di system administration, con lo scopo di semplificare il processo di deployment di ambienti complessi. In questo talk vengono esposte le esperienze di un team di dev che è riuscito a gestire e replicare ambienti complessi, ricorrendo a strumenti e pratiche delle metodologie agili. Saranno evidenziati i vantaggi ottenuti e le problematiche riscontrate.
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieriݺߣ del seminario sull'uso di React con Delphi e confronto con altre tecnologie (es. ExtJS) per lo sviluppo Web, tenuto al Delphi Day 2016 a Piacenza.
I sorgenti sono disponibili qui:
https://github.com/marcobreveglieri/conferences/tree/master/2016/delphi_day_2016
Applicazioni Web ultra-performanti con Vue.js e DelphiMarco BreveglieriVue.js è un framework per creare interfacce utente estremamente performanti e che può essere introdotto progressivamente nelle vostre applicazioni Web, nel modo meno invasivo possibile. In questo talk scoprirete come utilizzarlo con Delphi creando una soluzione frontend e backend ad elevate prestazioni.
Delphi & Dintorni Webinar - Diventa un mago del TestingMarco BreveglieriIl Testing è una pratica sempre più preziosa e fondamentale nell'ambito dello sviluppo del software: si tratta di un passaggio fondamentale per ridurre il numero dei bug nel software e abilitare automatismi come la Continuous Integration e la Continuous Delivery. Se utilizzati in modo errato però, i test possono causare più problemi di quanti ne prevengano: è importante quindi conoscere le differenze tra le varie tipologie di test, quali sono le loro caratteristiche ideali e padroneggiarli al meglio. In questo webinar faremo luce sul Testing, chiariremo bene i concetti di Unit e Integration Test, vedremo come scriverli nel modo corretto e quali tool ci vengono in aiuto... alla fine il Testing non avrà più segreti!
Javascript task automationAntonio LiccardiSessione per NetCampus 2015. La diffusione sempre più ampia di applicazioni sviluppate interamente in HTML5 e JS richiede l'adozione di processi di automazione per la fase di build, testing e rilascio. In questa sessione vedremo quali sono i principali strumenti a nostra disposizione per semplificare queste fasi dello sviluppo.
MongoDB User Group Padova - Overviews iniziale su MongoDBStefano DindoMongoDB è un database non relazionale, orientato ai documenti. Classificato come un database di tipo NoSQL, MongoDB si allontana dalla struttura tradizionale basata su tabelle dei database relazionali in favore di documenti in stile JSON con schema dinamico (MongoDB chiama il formato BSON), rendendo l'integrazione di dati di alcuni tipi di applicazioni più facile e veloce.
Lo scopo del MongoDB User Group Padova è quello di condividere esperienze sulla tecnologia MongoDB.
Questa presentazione, usata durante il primo evento dello User Group, è stata usata per introdurre i partecipanti sulle procedure di installazione ed i concetti di base su MongoDB.
#dd12 grillo daniele_xpages_tips_tricks_rev2Dominopoint - Italian Lotus User GroupXPages, trucchi e soluzioni sullo sviluppo applicativo IBM Lotus Notes
#dd12 Applicazioni a tre voci (Android e Domino)Dominopoint - Italian Lotus User GroupDi androidi, mele morsicate e more (realizzare applicazioni Domino su Android con Titaniun)
Node.js - Server Side JavascriptMatteo NapolitanoAn overview of technologies and best practices for the development of a full-stack web application using JavaScript. How to realize an entire Application Server with a single programming language, the use of event-driven logic and the potential of Node.js.
Working between the clouds (versione completa)Davide CerboDa 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.
Many Designs ElementsGiampiero GranatellaGenova JUG Meeting, 02/02/2010.
Elements is an open source library of web UI components for high productivity in small to large projects.
Yagwtomaraexceptionby Davide Cerbo e Stefano Linguerri
La programmazione web sta facendo passi da gigante e oggi l’utente si aspetta che l’esperienza di utilizzo si avvicini sempre di più a quella a cui è abituato nei classici applicativi desktop. Il mondo degli sviluppatori ha risposto inventanto una nuova sigla: RIA, cioè Rich Internet Application. Google non è stata a guardare e ha fornito la sua risposta a questa esigenza donando alla community Google Web Toolkit. Questo nuovo framework permette di sviluppare in Java tutta l’interfaccia utente per poi ottenere un codice javascript che funzionerà su qualsiasi browser web senza l’installazione di plugin aggiuntivi. In questa presentazione vedremo:
* perchè sviluppare applicazioni RIA
* perchè usare GWT
* come GWT utilizza AJAX per comunicare con il server
* le ottimizzazione che avremo utilizzando GWT
* come uscire dal browser con Google Gear e Mozilla Prism
* e non solo…
Drupal Day 2011 - Node.js e DrupalDrupalDayTalk di Luca Lusso | Drupal Day Roma 2011
Snellire il carico del server per generare e restituire un json da usare per un autocompletamento. Notificare che un nodo è stato appena creato a tutti gli utenti che stanno visitando il sito in questo momento. Oppure ancora mettere a disposizione degli utenti una chat in tempo reale. Tutto questo (e molto altro) si può delegare ad un processo esterno a Drupal per aumentare velocità di interazione e diminuire il carico del server.
Durante il talk si vedrà come installare e usare node.js e come integrarlo con Drupal. Verrà mostrato il modulo nodejs presente nel repository di drupal.org
Twcrashcourserik0Simple presentation on Twisted fundamentals.
Originally part 4 of a 4 lectures seminar for the Networking class of the Computer Science course at the University of Parma
2. Chi siamo
Luciano Colosio
SA & Dev @ Save The Mom
@unlucio
Michele Capra
Dev @ OrangeCode
@piccoloaiutante
3. Cosa vedremo oggi
Che cos’è Node.JS
Dove nasce
ContesB in cui usarlo
Il mondo asincrono
Demo Live
Deploy su un servizio free (Heroku)
4. Che cos’è Node.JS
Javascirpt runBme basato su V8
Event Driven I/O server-‐side
5. Da dove nasce
Riprodurre il comportamento in “push” mostrato da gmail
Superare i limit del one-‐way
BONUS DERIVATO
Le caraUerisBche asincrone di JS permeUono una gesBone piu’
comoda dell’I/O che costa molto
6. Da dove nasce
Costo dell’ I/O
L1-‐cache 3 cicli
L2-‐cache 14 cicli
RAM 250 cicli
Disco 41x10^6 cicli
Network 240x10^6 cicli
7. Gestire le richieste
Sincrono: gesBsco una richiesta alla volta
Contro: ogni richiesta può (e fa!) da tappo alle altre
8. Gestire le richieste
Fork del processo
Un processo nuovo per ogni richiesta
Contro: non scala su migliaia di connessioni
(ameno di non usare migliaia di servers ;))
9. Gestire le richieste
Un Thread nuovo per ogni richiesta
Contro: la macchina potrebbe non avere
abbastanza thread disponibili,
programmazione concorrente è complessa,
problemi di memoria
10. Gestire le richieste
La scelta di node:
Singolo Thread
Niente parallelizzazione del codice
11. Event Loop
La logica nell’eventloop risulta bloccante:
Devo aUendere che i task terminino
12. Soluzione:
NON fare nulla nel maintherad
Tutte le chiamate di I/O sono gestite
come eventi asincroni, quindi non
bloccanti.
Utilizzare event driven development
13. Event loop
non e' necessario pre carrozzarsi per le
perfomarnces
(es: pre allocare thread per rispondere piu'
velocemente).
Minor spreco di memoria/risorse
Minor rischio che il server vada in oveload
14. Importante!
Rispondere velocemente al client delegando a task
attività che richiedono risorse ed i/o ad alta latenza
Il focus è sulla risposta nel minor tempo
possibile
15. Async VS Sync
// Good: write files asynchronously
fs.writeFile('message.txt', 'Hello Node', funcBon (err) {
console.log("It's saved and the server remains responsive!");
});
// BAD: write files synchronously
fs.writeFileSync('message.txt', 'Hello Node');
console.log("It's saved, but you just blocked ALL requests!");
16. Esempio Architettura
Database
Client Web Engine DB
User NODE
NODE
Disk
Mass storage
Logging facility
(big slow disk)
Le scritture dei logs non sono piu’ un problema!
18. Chi lo usa:
37signals
Ajax.org - Cloud9 IDE
eBay
Trello
Klout
Linkedin
Microsoft
Voxer
Yahoo!
https://github.com/joyent/node/wiki/Projects,-
Applications,-and-Companies-Using-Node
19. JS: V8 in Node
Stesso motore del browser ma:
tutto gira nell’Event Loop
non c’è DOM
non c’è JQuery che tenga
programmazione asincrona
36. Dove lo usano?
Linkedin usa node come middle layer tra i server di backend ed i
client mobile
Mobile client
NodeJs backend
instances server
Mobile Client
37. I 10 consigli per node.js
Evitare il codice sincorono
No socket polling!
Non usare node.js per servire asset staBci
Delegare il rendering al client
Usare gzip tra i vari componenB
Parallelizzare al piu’ possibile!
Se possibile: NO SESSIONS
Usare moduli binari anzicche’ in javascript
Usare javascript standard anzicche’ librerie faUe per i client
Tenere il codice piccolo e compaUo
39. Un po’ di spam ;)
hUp://nodejsconf.it
hUp://www.webdebs.org/
40. Cerco Dev
Save the Mom cerca sviluppatori da integrare nel
nostro team! :)
Skills:
Web
MobileWeb
Mobile applications
(iOS, wp7, android, balckberry)
Scrivi a:
lucio@savethemom.com