SlideShare a Scribd company logo
1 of 11
Download to read offline
NodeJS
Milestones
● Server-side Javascript based on Google V8
● Non-blocking Input/Output event model
● 100% CPU using: one process - one thread -
one core
Google V8
● V8 JavaScript VM is used in Google Chrome
● No JIT, all JavaScript is compiled to
assembler
● Hidden classes optimization from Self (V8 does not
dynamically lookup access properties, instead it uses hidden classes that are created behind the
scene)
● Improved garbage collector
Non-blocking I/O
The non-blocking nature makes node.js a good
fit for comet and next generation realtime web-
applications
nginx: non-blocking
apache: threaded
non-blocking can handle more requests-per-second and uses a lot less memory
NodeJS Perks: front- and backend
● One Javascript - different approaches
● Common libs
● Unit-tests for both sides
NodeJS Perks: Frameworks
Native example:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {
'Content-Type': 'text/plain'
});
res.end('Hello Worldn');
}).listen(3000, '127.0.0.1');
ExpressJS:
var app = express.createServer();
app.get('/', function(req, res){
res.send('Hello World');
});
app.listen(3000);
NodeJS Perks: Comet
Comet is a web application model in which a long-held HTTP request allows
a web server to push data to a browser, without the browser explicitly
requesting it.
● Comet servers need to have a lot of open connections
● One thread-per-connection does not scale
● The solution is to use event based servers
● It’s only possible to create event based servers in
node.js
NodeJS Weaknesses
● Due to Javascript flexible nature it's hard to
locate mistakes
● Strict convention rules are highly
recommended
● One process serve plenty requests: so,
mistake in one request may "freeze" other.
● Non-trivial garbage collector (closures, long-term
processes)
● Strange open-source community (no standards)
● No backward compatibility
NodeJS Scalability
NodeJS Scalability
Resources
1. http://nodejs.org
2. www.nodebeginner.ru
3. http://pacemaker.pp.ua/presentations/Yura_Bogdanov-nodejs_inside_tactoom.ppt
4. http://code.google.com/p/v8/

More Related Content

What's hot

What's hot (20)

Node js for beginners
Node js for beginnersNode js for beginners
Node js for beginners
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Node.js scaling in highload
Node.js scaling in highloadNode.js scaling in highload
Node.js scaling in highload
 
NodeJS
NodeJSNodeJS
NodeJS
 
3 Things Everyone Knows About Node JS That You Don't
3 Things Everyone Knows About Node JS That You Don't3 Things Everyone Knows About Node JS That You Don't
3 Things Everyone Knows About Node JS That You Don't
 
JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka
JavaScript as a Server side language (NodeJS): JSConf 2011, DhakaJavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka
JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka
 
NodeJS - Server Side JS
NodeJS - Server Side JS NodeJS - Server Side JS
NodeJS - Server Side JS
 
Nodejs presentation
Nodejs presentationNodejs presentation
Nodejs presentation
 
Node js
Node jsNode js
Node js
 
Nodejs intro
Nodejs introNodejs intro
Nodejs intro
 
Node js Introduction
Node js IntroductionNode js Introduction
Node js Introduction
 
(C)NodeJS
(C)NodeJS(C)NodeJS
(C)NodeJS
 
Complete MVC on NodeJS
Complete MVC on NodeJSComplete MVC on NodeJS
Complete MVC on NodeJS
 
Node js (runtime environment + js library) platform
Node js (runtime environment + js library) platformNode js (runtime environment + js library) platform
Node js (runtime environment + js library) platform
 
Nodejs
NodejsNodejs
Nodejs
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
Node ppt
Node pptNode ppt
Node ppt
 
Node.js In The Enterprise - A Primer
Node.js In The Enterprise - A PrimerNode.js In The Enterprise - A Primer
Node.js In The Enterprise - A Primer
 
Node js Global Packages
Node js Global PackagesNode js Global Packages
Node js Global Packages
 
Best node js course
Best node js courseBest node js course
Best node js course
 

Similar to NodeJS overview

Node.js Presentation
Node.js PresentationNode.js Presentation
Node.js PresentationExist
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.jsDinesh U
 
Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6Ganesh Kondal
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJSUttam Aaseri
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS drupalcampest
 
Sfd hanoi2012 nguyen ha duong yang node.js-intro
Sfd hanoi2012 nguyen ha duong yang   node.js-introSfd hanoi2012 nguyen ha duong yang   node.js-intro
Sfd hanoi2012 nguyen ha duong yang node.js-introVu Hung Nguyen
 
Sfd2012Hanoi Nguyễn Hà Dương - Introduction to Node.js
Sfd2012Hanoi Nguyễn Hà Dương - Introduction to Node.jsSfd2012Hanoi Nguyễn Hà Dương - Introduction to Node.js
Sfd2012Hanoi Nguyễn Hà Dương - Introduction to Node.jsVu Hung Nguyen
 
Cloud Native Java Development Patterns
Cloud Native Java Development PatternsCloud Native Java Development Patterns
Cloud Native Java Development PatternsBilgin Ibryam
 
Introduction to Node JS.pdf
Introduction to Node JS.pdfIntroduction to Node JS.pdf
Introduction to Node JS.pdfBareen Shaikh
 
Advantages of using Node.js web hosting | Navicosoft
Advantages of using Node.js web hosting | NavicosoftAdvantages of using Node.js web hosting | Navicosoft
Advantages of using Node.js web hosting | NavicosoftJoseBradford
 
JavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkJavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkAlive Kuo
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.jsorkaplan
 

Similar to NodeJS overview (20)

Node.js Presentation
Node.js PresentationNode.js Presentation
Node.js Presentation
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6
 
Nodejs
NodejsNodejs
Nodejs
 
Node.js Test
Node.js TestNode.js Test
Node.js Test
 
Node js
Node jsNode js
Node js
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJS
 
Beginners Node.js
Beginners Node.jsBeginners Node.js
Beginners Node.js
 
Gwt Presentation1
Gwt Presentation1Gwt Presentation1
Gwt Presentation1
 
The Java alternative to Javascript
The Java alternative to JavascriptThe Java alternative to Javascript
The Java alternative to Javascript
 
Nodejs
NodejsNodejs
Nodejs
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS
 
Sfd hanoi2012 nguyen ha duong yang node.js-intro
Sfd hanoi2012 nguyen ha duong yang   node.js-introSfd hanoi2012 nguyen ha duong yang   node.js-intro
Sfd hanoi2012 nguyen ha duong yang node.js-intro
 
Sfd2012Hanoi Nguyễn Hà Dương - Introduction to Node.js
Sfd2012Hanoi Nguyễn Hà Dương - Introduction to Node.jsSfd2012Hanoi Nguyễn Hà Dương - Introduction to Node.js
Sfd2012Hanoi Nguyễn Hà Dương - Introduction to Node.js
 
Treinamento frontend
Treinamento frontendTreinamento frontend
Treinamento frontend
 
Cloud Native Java Development Patterns
Cloud Native Java Development PatternsCloud Native Java Development Patterns
Cloud Native Java Development Patterns
 
Introduction to Node JS.pdf
Introduction to Node JS.pdfIntroduction to Node JS.pdf
Introduction to Node JS.pdf
 
Advantages of using Node.js web hosting | Navicosoft
Advantages of using Node.js web hosting | NavicosoftAdvantages of using Node.js web hosting | Navicosoft
Advantages of using Node.js web hosting | Navicosoft
 
JavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkJavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web framework
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
 

More from Roman Trukhin

Culture map - Book Review
Culture map - Book Review Culture map - Book Review
Culture map - Book Review Roman Trukhin
 
Ethics and technologies - Cybersecurity landscape
Ethics and technologies - Cybersecurity landscapeEthics and technologies - Cybersecurity landscape
Ethics and technologies - Cybersecurity landscapeRoman Trukhin
 
Security awareness for Applied Science Faculty of Ukrainian Catholic University
Security awareness for Applied Science Faculty of Ukrainian Catholic UniversitySecurity awareness for Applied Science Faculty of Ukrainian Catholic University
Security awareness for Applied Science Faculty of Ukrainian Catholic UniversityRoman Trukhin
 
Web design crash course
Web design crash courseWeb design crash course
Web design crash courseRoman Trukhin
 
Three-Way-Ballot system
Three-Way-Ballot systemThree-Way-Ballot system
Three-Way-Ballot systemRoman Trukhin
 
Great Pacific Garbage
Great Pacific GarbageGreat Pacific Garbage
Great Pacific GarbageRoman Trukhin
 
Future of images in the web
Future of images in the webFuture of images in the web
Future of images in the webRoman Trukhin
 
Fonts: how it's made?
Fonts: how it's made?Fonts: how it's made?
Fonts: how it's made?Roman Trukhin
 

More from Roman Trukhin (15)

Culture map - Book Review
Culture map - Book Review Culture map - Book Review
Culture map - Book Review
 
Ethics and technologies - Cybersecurity landscape
Ethics and technologies - Cybersecurity landscapeEthics and technologies - Cybersecurity landscape
Ethics and technologies - Cybersecurity landscape
 
Security awareness for Applied Science Faculty of Ukrainian Catholic University
Security awareness for Applied Science Faculty of Ukrainian Catholic UniversitySecurity awareness for Applied Science Faculty of Ukrainian Catholic University
Security awareness for Applied Science Faculty of Ukrainian Catholic University
 
How people behave
How people behave How people behave
How people behave
 
Estimation
EstimationEstimation
Estimation
 
Web design crash course
Web design crash courseWeb design crash course
Web design crash course
 
Three-Way-Ballot system
Three-Way-Ballot systemThree-Way-Ballot system
Three-Way-Ballot system
 
Nobel Prize
Nobel PrizeNobel Prize
Nobel Prize
 
MacOS Philosophy
MacOS PhilosophyMacOS Philosophy
MacOS Philosophy
 
Great Pacific Garbage
Great Pacific GarbageGreat Pacific Garbage
Great Pacific Garbage
 
Future of images in the web
Future of images in the webFuture of images in the web
Future of images in the web
 
Fonts: how it's made?
Fonts: how it's made?Fonts: how it's made?
Fonts: how it's made?
 
CSS3.0
CSS3.0CSS3.0
CSS3.0
 
Bitcoin p2p money
Bitcoin p2p moneyBitcoin p2p money
Bitcoin p2p money
 
Scrum in 15 minutes
Scrum in 15 minutesScrum in 15 minutes
Scrum in 15 minutes
 

Recently uploaded

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 

NodeJS overview

  • 2. Milestones ● Server-side Javascript based on Google V8 ● Non-blocking Input/Output event model ● 100% CPU using: one process - one thread - one core
  • 3. Google V8 ● V8 JavaScript VM is used in Google Chrome ● No JIT, all JavaScript is compiled to assembler ● Hidden classes optimization from Self (V8 does not dynamically lookup access properties, instead it uses hidden classes that are created behind the scene) ● Improved garbage collector
  • 4. Non-blocking I/O The non-blocking nature makes node.js a good fit for comet and next generation realtime web- applications nginx: non-blocking apache: threaded non-blocking can handle more requests-per-second and uses a lot less memory
  • 5. NodeJS Perks: front- and backend ● One Javascript - different approaches ● Common libs ● Unit-tests for both sides
  • 6. NodeJS Perks: Frameworks Native example: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello Worldn'); }).listen(3000, '127.0.0.1'); ExpressJS: var app = express.createServer(); app.get('/', function(req, res){ res.send('Hello World'); }); app.listen(3000);
  • 7. NodeJS Perks: Comet Comet is a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it. ● Comet servers need to have a lot of open connections ● One thread-per-connection does not scale ● The solution is to use event based servers ● It’s only possible to create event based servers in node.js
  • 8. NodeJS Weaknesses ● Due to Javascript flexible nature it's hard to locate mistakes ● Strict convention rules are highly recommended ● One process serve plenty requests: so, mistake in one request may "freeze" other. ● Non-trivial garbage collector (closures, long-term processes) ● Strange open-source community (no standards) ● No backward compatibility
  • 11. Resources 1. http://nodejs.org 2. www.nodebeginner.ru 3. http://pacemaker.pp.ua/presentations/Yura_Bogdanov-nodejs_inside_tactoom.ppt 4. http://code.google.com/p/v8/