SlideShare a Scribd company logo
1 of 77
JavaScript as a Platform
Node.js, NPM and Grunt
About
{
"firstName" : "Bertrand",
"lastName" : "Chevrier",
"online" : {
"twitter" : "@kramp",
"github" : "github.com/krampstudio",
"blog" : "krampstudio.com"
},
"pro" : {
"employer" : "CGI",
"position" : "Technical expert"
},
"loves" : ["JavaScript", "Linux", "Java", "PHP"]
}
JS, OSS & me
Follow the dealer
krampstudio.com github.com/krampstudio
Jaap : node, npm & grunt
Jaap : node, npm & grunt
Why Node.js
1. Buzzword ?
2. JS.everywhere(2013);
3. JIFSNIF
4. Huge community
Platform Repo Total
packages
Platform
years old
Avg/year since
platform
Repo
years
old
Avg/year
since repo
Python PyPI 31 066 22 1 412 10 3 106
Java Maven
central
58 272 18 3 237 9 6 474
Ruby Gems.org 56 869 18 3 159 5 11 373
Node Npm 30471 4 7617 3 10 157
stats polled the 21st of May 2013
JavaScript is fun so node is funnier
WTF is node.js ?
The illegitimate child of Google and Netscape !
Jaap : node, npm & grunt
Jaap : node, npm & grunt
Jaap : node, npm & grunt
Jaap : node, npm & grunt
2008, Ryan Dahl
How to build scalable real-time web app with simplicity ?
Architecture
node.js isn't
- A programming language
- A web framework
node.js is
- A low level lib for I/O programming
node.js design
- Non blocking I/O
- Event driven model
- JavaScript
- Unix philosophy
Inspiration
- Twisted (Python)
- Tornado (Python)
- EventMachine (Ruby)
- libevent (C)
- Nginx
Non blocking I/O
for scalability
Cost of I/O
I/O cycles
L1-cache 3
L2-cache 14
RAM 250
Disk 41 000 000
Network 240 000 000
http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop
Threaded server
Non blocking server
memory usage / concurrent connections
request p. sec. / concurrent connections
- Event driven model
- Low levels I/O APIs rewritten
- Fat process
Node is designed to be non blocking from top to bottom.
JavaScript
for simplicity
Why JS?
The good parts for node
- Functionnal language : fits the event model
- Easily extensible : redesign of non blocking APIs,
DSLable
- Becomes popular : the language of the web
Unix philosophy
KISS & Battery not included
Node provides only low level APIs
Nothing superfluous.
EcmaScript 5 + CommonJs + APIs:
- Cluster, Child_Process and Process
- Crypto
- Module, Domain, Events, Timers
- Assert, Utilities
- File System, Path, OS, VM
- HTTP, Net, URL, QueryString, etc.
- Net, DNS, UDP
- Buffer, Stream, STDIO, Readline, TTY
- REPL
nodejs.org/api
JavaScript (ES5) file import ?
Modules
Require
module.exports = {
//your object
};
var fs = require('fs');
Jaap : node, npm & grunt
Diving into node
Coding with node
Discovering the patterns
Required Hello Node.js world
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8888);
$ node hello_node_world.js
Demo : node-htop
Polling system stats
Real time
Callbacks, Errorbacks
demo:lib/poller/mem.js#32
function async(data, callback) {
if (!data) {
callback(new Error('Empty data'));
}
//do something and then
callback(null, true);
};
async({data: 'test'}, function(err, valid){
console.log("finished");
});
Callback tree
demo:lib/poller/mem.js#32
http.createServer(function processRequest(request, response){
fs.exists("/tmp/test", function(exists){
if(exists === true){
fs.stat(file, function(err, stat){
fs.appendFile(file, log, 'utf8', function(err){
db.query(function(err, data){
//etc ...
});
});
});
}
});
}
Async management
demo:lib/statpoller.js#124
var async = require('async');
var fs = require('fs');
async.filter(['file1','file2','file3'], fs.exists, function(results){
//results => [true, false, true]
});
function f1(cb){
fs.exists('dir1', function(result){
if(result === true){
cb(null, true);
} else {
cb(new Error('Oh crap!');
}
});
}
async.series([f1, f2], function(err, results){
// results => [true, true] or null
});
Futures and promises
var q = require('q'),
fs = require('fs');
var readFile = q.node(fs.readFile);
readFile('test.txt').then(function (data) {
console.log("finished");
}).then(function(){
console.log("do something else");
});
Events
demo:lib/statpoller.js#1
var events = require('events');
var Test = function(){
events.EventEmitter.call(this);
};
util.inherits(Test, events.EventEmitter);
Test.prototype.start = function(){
this.emit('started', { 'when' : new Date() });
};
var myTest = new Test();
myTest.on('started', function(data){
console.log("test started");
});
myTest.start();
Middleware
var app = {
stack : [],
use : function(middleware){
var fn = middleware;
if('function' === typeof middleware.handle){
fn = middleware.handle;
}
if('function' === typeof fn){
this.stack.push(fn);
}
},
handle : function(data){
var i = 0, layer;
for(i in this.stack){
layer = this.stack[i];
if(!layer(data)){
break;
}
}
}
};
app.use(function(data){
console.log("Hello %s", data);
return true;
});
app.use(function(data){
console.error("Goodbye %s", data);
return false;
});
app.handle('middleware');
Connect : HTTP middlewares
demo:app.js#20
var app = connect()
.use(connect.logger('dev'))
.use(connect.static('public'))
.use(function(req, res){
res.end('hello worldn');
})
.listen(3000);
Errors
try {
//something that crash
} catch(e) {
console.error(e);
};
function(cb){
if(error)
cb(new Error("Sorry..."));
} else {
cb(null, theData);
}
}
demo:lib/statpoller.js#63
myEmitter.on('error', function(e){
console.error(e.stack);
});
var aDomain = domain.create();
aDomain.on('error', function(err){
//do wafyw with the err
});
aDomain.run(function(){
//do some errorable stuffs (throws, errbacks, etc. are catched)
});
Scaling node.js
But, wait, I've only one process...
Scale Up
Use your CPUs !
Cluster
demo:server.js
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
for (var i = 0; i > numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
//manage worker stop
});
} else {
//I'm in a fork
}
Scale out
Load balance and share the events
Jaap : node, npm & grunt
Node Package Manager
NPM do :
packages as CommonJS modules
How ?
- Simple CLI tools
- Registry
- Web site
- Included in node.js since 0.6
- Git friendly
$ npm --help
registry.npmjs.org
npmjs.org
Module Metas
package.json
{
"name": "node-htop",
"version": "0.1.0",
"description": "Web htop like",
"main": "app.js",
"scripts": {
"test": "grunt test"
},
"dependencies": {
"express": "3.2.x",
"socket.io": "0.9.x",
"underscore": "~1.4.0"
}
}
demo package.json
Usage
$ npm search bower
$ npm info bower
$ npm install -g bower
$ npm install --save socket.io
$ npm update
$ npm publish
Scopes
global -> user -> project
Transitive dependencies
A-0.1 -> B-0.1, C-0.1
B-01 -> C-0.2
A-0.1
├── node_modules
│ ├── B-0.1
│ │ └── node_modules
│ │ └── C-0.2
│ └── C-0.1
└── package.json
npm is not capable of hatred. It loves everyone, especially you.
source
Why does npm hate me?
npm faq
Node.js is fun but...
Defects
- Young project
- Libraries hell
- Error management
- Monoculture
- Noob friendly
- Devops required
Node is a cancer
Ted Dzubia
Coffescript invokes the :
JavaScript is a Toy!
beard theory
Uncle Ben, Spiderman
With great power, comes great responsibility
Grunt, the task runner
Automate your projects
- Task based
- By configuration Gruntfile.js
- NPM friendly
- Extensible by nature
Let's do some Grrrrunt
Why Grunt?
- Wide numbers of plugins
- Simple to use
- Easy to customize
- 0.5 : will use the node-taskformat
Grunt in your stack
=
Merci
Play at home
demo source slide decks

More Related Content

What's hot

Node.JS and WebSockets with Faye
Node.JS and WebSockets with FayeNode.JS and WebSockets with Faye
Node.JS and WebSockets with FayeMatjaž Lipuš
 
The New Frontend Toolchain
The New Frontend ToolchainThe New Frontend Toolchain
The New Frontend ToolchainBruno Abrantes
 
Understand How Node.js and Core Features Works
Understand How Node.js and Core Features WorksUnderstand How Node.js and Core Features Works
Understand How Node.js and Core Features WorksHengki Sihombing
 
10 things you should know about django
10 things you should know about django10 things you should know about django
10 things you should know about djangoAdieu
 
Splunk user group - automating Splunk with Ansible
Splunk user group - automating Splunk with AnsibleSplunk user group - automating Splunk with Ansible
Splunk user group - automating Splunk with AnsibleMark Phillips
 
Deploy Node.js application in Heroku using Eclipse
Deploy Node.js application in Heroku using EclipseDeploy Node.js application in Heroku using Eclipse
Deploy Node.js application in Heroku using EclipseJitendra Zaa
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJSZahid Mahir
 
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native Codemotion
 
Tool it Up! - Session #1 - Xhprof
Tool it Up! - Session #1 - XhprofTool it Up! - Session #1 - Xhprof
Tool it Up! - Session #1 - Xhproftoolitup
 
Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014Justin Ryan
 
SF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSSSF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSSJustin Ryan
 
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
Brief Intro to Phoenix - Elixir Meetup at BukaLapakBrief Intro to Phoenix - Elixir Meetup at BukaLapak
Brief Intro to Phoenix - Elixir Meetup at BukaLapakRiza Fahmi
 
Nuxt로 사내서비스 구현하면서 얻은 경험 공유
Nuxt로 사내서비스 구현하면서 얻은 경험 공유Nuxt로 사내서비스 구현하면서 얻은 경험 공유
Nuxt로 사내서비스 구현하면서 얻은 경험 공유민환 조
 
AWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverythingAWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverythingAmazon Web Services
 
Improving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP ProfilingImproving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP ProfilingOtto Kekäläinen
 
MongoDB on CloudFoundry
MongoDB on CloudFoundryMongoDB on CloudFoundry
MongoDB on CloudFoundryYohei Sasaki
 
MVC way to introduce Sails.js - node.js framework
MVC way to introduce Sails.js - node.js frameworkMVC way to introduce Sails.js - node.js framework
MVC way to introduce Sails.js - node.js frameworkCaesar Chi
 
Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)Justin Ryan
 

What's hot (20)

Node.JS and WebSockets with Faye
Node.JS and WebSockets with FayeNode.JS and WebSockets with Faye
Node.JS and WebSockets with Faye
 
The New Frontend Toolchain
The New Frontend ToolchainThe New Frontend Toolchain
The New Frontend Toolchain
 
Understand How Node.js and Core Features Works
Understand How Node.js and Core Features WorksUnderstand How Node.js and Core Features Works
Understand How Node.js and Core Features Works
 
10 things you should know about django
10 things you should know about django10 things you should know about django
10 things you should know about django
 
Splunk user group - automating Splunk with Ansible
Splunk user group - automating Splunk with AnsibleSplunk user group - automating Splunk with Ansible
Splunk user group - automating Splunk with Ansible
 
Deploy Node.js application in Heroku using Eclipse
Deploy Node.js application in Heroku using EclipseDeploy Node.js application in Heroku using Eclipse
Deploy Node.js application in Heroku using Eclipse
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJS
 
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
 
Tool it Up! - Session #1 - Xhprof
Tool it Up! - Session #1 - XhprofTool it Up! - Session #1 - Xhprof
Tool it Up! - Session #1 - Xhprof
 
Version Controlling
Version ControllingVersion Controlling
Version Controlling
 
Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014
 
SF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSSSF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSS
 
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
Brief Intro to Phoenix - Elixir Meetup at BukaLapakBrief Intro to Phoenix - Elixir Meetup at BukaLapak
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
 
Nuxt로 사내서비스 구현하면서 얻은 경험 공유
Nuxt로 사내서비스 구현하면서 얻은 경험 공유Nuxt로 사내서비스 구현하면서 얻은 경험 공유
Nuxt로 사내서비스 구현하면서 얻은 경험 공유
 
Grunt and Bower
Grunt and BowerGrunt and Bower
Grunt and Bower
 
AWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverythingAWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverything
 
Improving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP ProfilingImproving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP Profiling
 
MongoDB on CloudFoundry
MongoDB on CloudFoundryMongoDB on CloudFoundry
MongoDB on CloudFoundry
 
MVC way to introduce Sails.js - node.js framework
MVC way to introduce Sails.js - node.js frameworkMVC way to introduce Sails.js - node.js framework
MVC way to introduce Sails.js - node.js framework
 
Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)
 

Viewers also liked

Introduction to node.js, npm and grunt
Introduction to node.js, npm and gruntIntroduction to node.js, npm and grunt
Introduction to node.js, npm and gruntJaecheol Lee
 
Javascript as a Platform
Javascript as a PlatformJavascript as a Platform
Javascript as a PlatformVlad Mysla
 
Startup JavaScript 8 - NPM, Express.JS
Startup JavaScript 8 - NPM, Express.JSStartup JavaScript 8 - NPM, Express.JS
Startup JavaScript 8 - NPM, Express.JSCirculus
 
Node.js & Twitter Bootstrap Crash Course
Node.js & Twitter Bootstrap Crash CourseNode.js & Twitter Bootstrap Crash Course
Node.js & Twitter Bootstrap Crash CourseAaron Silverman
 
NodeJS guide for beginners
NodeJS guide for beginnersNodeJS guide for beginners
NodeJS guide for beginnersEnoch Joshua
 
Getting started with AWS Lambda and the Serverless Cloud
Getting started with AWS Lambda and the Serverless CloudGetting started with AWS Lambda and the Serverless Cloud
Getting started with AWS Lambda and the Serverless CloudIan Massingham
 
The 7 Principles of Website Optimization
The 7 Principles of Website OptimizationThe 7 Principles of Website Optimization
The 7 Principles of Website OptimizationWishpond
 
Designing Websites With a Mobile First Approach
Designing Websites With a Mobile First ApproachDesigning Websites With a Mobile First Approach
Designing Websites With a Mobile First ApproachDan Moriarty
 
AWS Lambda and the Serverless Cloud
AWS Lambda and the Serverless CloudAWS Lambda and the Serverless Cloud
AWS Lambda and the Serverless CloudAmazon Web Services
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - CoreDzmitry Naskou
 
The 7 Principles of Conversion Centered Design
The 7 Principles of Conversion Centered DesignThe 7 Principles of Conversion Centered Design
The 7 Principles of Conversion Centered DesignKissmetrics on SlideShare
 
Containerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaContainerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaRyan Cuprak
 

Viewers also liked (19)

Understanding of node
Understanding of nodeUnderstanding of node
Understanding of node
 
Introduction to node.js, npm and grunt
Introduction to node.js, npm and gruntIntroduction to node.js, npm and grunt
Introduction to node.js, npm and grunt
 
Difference between-angular js-nodejs
Difference between-angular js-nodejsDifference between-angular js-nodejs
Difference between-angular js-nodejs
 
Javascript as a Platform
Javascript as a PlatformJavascript as a Platform
Javascript as a Platform
 
Npm: beyond 'npm i'
Npm: beyond 'npm i'Npm: beyond 'npm i'
Npm: beyond 'npm i'
 
Npm scripts
Npm scriptsNpm scripts
Npm scripts
 
Startup JavaScript 8 - NPM, Express.JS
Startup JavaScript 8 - NPM, Express.JSStartup JavaScript 8 - NPM, Express.JS
Startup JavaScript 8 - NPM, Express.JS
 
Node.js & Twitter Bootstrap Crash Course
Node.js & Twitter Bootstrap Crash CourseNode.js & Twitter Bootstrap Crash Course
Node.js & Twitter Bootstrap Crash Course
 
NodeJS guide for beginners
NodeJS guide for beginnersNodeJS guide for beginners
NodeJS guide for beginners
 
Getting started with AWS Lambda and the Serverless Cloud
Getting started with AWS Lambda and the Serverless CloudGetting started with AWS Lambda and the Serverless Cloud
Getting started with AWS Lambda and the Serverless Cloud
 
The 7 Principles of Website Optimization
The 7 Principles of Website OptimizationThe 7 Principles of Website Optimization
The 7 Principles of Website Optimization
 
Designing Websites With a Mobile First Approach
Designing Websites With a Mobile First ApproachDesigning Websites With a Mobile First Approach
Designing Websites With a Mobile First Approach
 
AWS Lambda and the Serverless Cloud
AWS Lambda and the Serverless CloudAWS Lambda and the Serverless Cloud
AWS Lambda and the Serverless Cloud
 
NodeJS for Beginner
NodeJS for BeginnerNodeJS for Beginner
NodeJS for Beginner
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
 
The 7 Principles of Conversion Centered Design
The 7 Principles of Conversion Centered DesignThe 7 Principles of Conversion Centered Design
The 7 Principles of Conversion Centered Design
 
Containerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaContainerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS Lambda
 
AWS Lambda
AWS LambdaAWS Lambda
AWS Lambda
 
AWS Lambda
AWS LambdaAWS Lambda
AWS Lambda
 

Similar to Jaap : node, npm & grunt

introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.jsorkaplan
 
Node.js - async for the rest of us.
Node.js - async for the rest of us.Node.js - async for the rest of us.
Node.js - async for the rest of us.Mike Brevoort
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch
 
Node js introduction
Node js introductionNode js introduction
Node js introductionAlex Su
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkAarti Parikh
 
Building and Scaling Node.js Applications
Building and Scaling Node.js ApplicationsBuilding and Scaling Node.js Applications
Building and Scaling Node.js ApplicationsOhad Kravchick
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineRicardo Silva
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applicationsTom Croucher
 
Nodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevNodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevFelix Geisendörfer
 
How Secure Are Docker Containers?
How Secure Are Docker Containers?How Secure Are Docker Containers?
How Secure Are Docker Containers?Ben Hall
 
Introduce about Nodejs - duyetdev.com
Introduce about Nodejs - duyetdev.comIntroduce about Nodejs - duyetdev.com
Introduce about Nodejs - duyetdev.comVan-Duyet Le
 
Intro To Node.js
Intro To Node.jsIntro To Node.js
Intro To Node.jsChris Cowan
 
Practical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsasync_io
 

Similar to Jaap : node, npm & grunt (20)

introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
 
Node.js - async for the rest of us.
Node.js - async for the rest of us.Node.js - async for the rest of us.
Node.js - async for the rest of us.
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
 
Node js introduction
Node js introductionNode js introduction
Node js introduction
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talk
 
Building and Scaling Node.js Applications
Building and Scaling Node.js ApplicationsBuilding and Scaling Node.js Applications
Building and Scaling Node.js Applications
 
NodeJS
NodeJSNodeJS
NodeJS
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 Engine
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
 
Nodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevNodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredev
 
How Secure Are Docker Containers?
How Secure Are Docker Containers?How Secure Are Docker Containers?
How Secure Are Docker Containers?
 
Node.js
Node.jsNode.js
Node.js
 
Introduce about Nodejs - duyetdev.com
Introduce about Nodejs - duyetdev.comIntroduce about Nodejs - duyetdev.com
Introduce about Nodejs - duyetdev.com
 
Intro To Node.js
Intro To Node.jsIntro To Node.js
Intro To Node.js
 
JS everywhere 2011
JS everywhere 2011JS everywhere 2011
JS everywhere 2011
 
JavaScript Event Loop
JavaScript Event LoopJavaScript Event Loop
JavaScript Event Loop
 
Node azure
Node azureNode azure
Node azure
 
Practical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.js
 
Node js beginner
Node js beginnerNode js beginner
Node js beginner
 
Logstash
LogstashLogstash
Logstash
 

Recently uploaded

UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 

Recently uploaded (20)

UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 

Jaap : node, npm & grunt