SlideShare a Scribd company logo
Conquering the Server Side with Node.JS

      StartTechConf 2011         Caridy Patiño
                                 Search Direct Team
                                 YUI Evangelist
                                 YUI Contributor

                                 caridy@yahoo-inc.com
                                 @caridy




Saturday, November 5, 2011
Saturday, November 5, 2011
La industria esta cambiando
                                muy rápido




Saturday, November 5, 2011
Chrome + V8




Saturday, November 5, 2011
Internet de alta velocidad




Saturday, November 5, 2011
Coulds / Nubes




Saturday, November 5, 2011
WebApps & Apps




Saturday, November 5, 2011
Almazenamiento Másivo




Saturday, November 5, 2011
La web en tiempo real




Saturday, November 5, 2011
Y esto se traduce en...




Saturday, November 5, 2011
Peaks / Picos




Saturday, November 5, 2011
Concurrencia




Saturday, November 5, 2011
Concurrencia




Saturday, November 5, 2011
Saturday, November 5, 2011
ut
                                  O
                              old
                             S


   Microsoft VBScript compilation error ‘800a03e9′
   Out of memory
   /LM/W3SVC/600510919/Root/dStore/http://global.asa, line 0



Saturday, November 5, 2011
Desempeño




Saturday, November 5, 2011
Soluciones...




Saturday, November 5, 2011
Más servidores




Saturday, November 5, 2011
Más servidores




                                 $$$$$

Saturday, November 5, 2011
Nubes Elásticas




Saturday, November 5, 2011
Wow Amazon EC2 Is Expensive For Start Ups

                 “With EC2, I would pay 30 days * 24 hours * $0.1 * 1.19 (tax) = $85.
                        And that does not take into account backup space (S3),
                              traffic and true persistent storage (EBS) yet.”




Saturday, November 5, 2011
Delegar procesos hacia el cliente




Saturday, November 5, 2011
Saturday, November 5, 2011
Node.JS




Saturday, November 5, 2011
Server Side JavaScript
                                     (SSJS)




Saturday, November 5, 2011
NarwhalJS           RingoJS




                       Wakanda
                                  Rhino   Akshell




Saturday, November 5, 2011
Nuestros sistemas operativos y lenguajes derivan de los
               sistemas diseñados para teletipos.




Saturday, November 5, 2011
Las plataformas modernas de software siguen imitando
                     estas interfaces antiguas.




Saturday, November 5, 2011
“Blocking system call” is a call into the kernel which waits for
          some I/O to complete before before returning. Blocking syscalls
               introduce unbounded latency into the current thread.




Saturday, November 5, 2011
Los procesos son buenos para mantener unidades
           aisladas. Sin embargo, son demasiado pesados como
                  para dedicarle una conexión completa.




Saturday, November 5, 2011
Uno de los objetivos principales de Node es hacer
          accesible la programación sin bloqueo para aquellos
                      usuario que no son expertos.
Saturday, November 5, 2011
Node ha tenido éxito en poner
                             servidor de alto desempeño al
                             alcance de los programadores
                             utilizando una API sin bloqueos




Saturday, November 5, 2011
Un solo stack por cada proceso




Saturday, November 5, 2011
Node.JS solo tiene 2.5
                             años de edad.

                             La version 0.6 es la 3ra
                             iteración estable.




Saturday, November 5, 2011
Saturday, November 5, 2011
HTTP benchmark con 100 clientes concurrentes
                             en OSX 10.6



             - v0.2.6 5330 req/sec
             - v0.4.12 5552 req/sec
             - v0.5.10 5803 req/se




Saturday, November 5, 2011
Por qué Javascript?




Saturday, November 5, 2011
Javascript es el lenguaje
                                  del navegador




Saturday, November 5, 2011
Javascript es un lenguaje
                                     dinámico




Saturday, November 5, 2011
Closures y programación asincrónica
                    por naturaleza




Saturday, November 5, 2011
Comunidad creciente, activa y diversa




Saturday, November 5, 2011
http://github.com/languages

Saturday, November 5, 2011
No existe otro lenguaje que pueda
               destronar a javascript en un
                      future cercano




Saturday, November 5, 2011
Node Event Loop




Saturday, November 5, 2011
var result = db.query("select * from T");
   // use result




Saturday, November 5, 2011
var result = db.query("select * from T");
   // use result

                             Qué esta haciendo el software
                             mientras se ejecuta la query?




Saturday, November 5, 2011
db.query("select * from T", function (result) {
       // use result
   });




Saturday, November 5, 2011
db.query("select * from T", function (result) {
       // use result
   });
                             Este código le permite al programa
                                    retornar al event loop
                                       inmediatamente




Saturday, November 5, 2011
Node maneja todas los IO de la misma manera




Saturday, November 5, 2011
Saturday, November 5, 2011
Menos memoria necesita ser usada, y un mayor
         rendimiento debido al menor número de cambios de
                             contexto.




Saturday, November 5, 2011
El uso de los closures para capturar el estado entre
                            diferentes eventos




Saturday, November 5, 2011
function adicionar(callback) {
      http.get(url1, function(respuesta1) {
          var parte1 = respuesta1.data;
          http.get(url2, function(respuesta2) {
              var parte2 = respuesta2.data;
              callback(parte1 + parte2);
          });
      });
  }




Saturday, November 5, 2011
Node Stack




Saturday, November 5, 2011
Como usar Node




Saturday, November 5, 2011
Download, configure, compile, and
                       make install it:

                             http://nodejs.org/



Saturday, November 5, 2011
Windows Build (Node v0.6.0):

        http://nodejs.org/dist/v0.6.0/node.exe




Saturday, November 5, 2011
NPM



                             http://npm.org/

Saturday, November 5, 2011
curl http://npmjs.org/install.sh | sh




Saturday, November 5, 2011
NPM 101

                              $ npm help

                              $ npm install <pkgName>
                              $ npm uninstall <pkgName>
                              $ npm publish
                              $ npm list
                              $ npm update


                       http://howtonode.org/introduction-to-npm
Saturday, November 5, 2011
$	
  npm	
  list
                             app@0.1.0	
  /Users/caridy/node/app
                                          	
  connect@1.7.1	
  
                               	
         	
  mime@1.2.4	
  
                               	
         	
  qs@0.3.1	
  
                                      	
  express@2.4.7	
  
                               	
         	
  mime@1.2.4	
  
                               	
         	
  mkdirp@0.0.7	
  
                               	
         	
  qs@0.3.1	
  
                                      	
  micro<me@0.1.3-­‐1	
  
                                      	
  mime@1.2.4	
  
                                      	
  yui3@0.7.4
                               	
         	
  htmlparser@1.7.3	
  
                               	
         	
  yui3-­‐core@3.4.0	
  
                               	
         	
  yuitest@0.6.9	
  
                                      	
  yui3-­‐core@3.4.0

Saturday, November 5, 2011
Express




                             http://expressjs.com/
Saturday, November 5, 2011
$ cd my/node/app/
                             $ npm install express




Saturday, November 5, 2011
Requiriendo Express NPM Module



                       var app = require('express').createServer();

                       app.get('/usuario/:id', function(req, res){
                         res.send('Bienvenido ' + req.params.id);
                       });

                       app.listen(3000);




Saturday, November 5, 2011
$ node app.js




Saturday, November 5, 2011
http://localhost:3000/usuario/caridy




Saturday, November 5, 2011
Express Boilerplate

                             $ npm install -g express
                             $ cd my/node/app/
                             $ express ./
                             $ npm install -d
                             $ node app.js




Saturday, November 5, 2011
YUI




Saturday, November 5, 2011
Saturday, November 5, 2011
$ npm install yui3




Saturday, November 5, 2011
var YUI = require("yui3").YUI;               Requiriendo YUI NPM Module


       YUI().use('json', 'io', function(Y) {

             Y.io('http://yuilibrary.com/gallery/api/user/caridy', {
                 on: {
                    success: function(id, o) {
                       Y.log(Y.JSON.parse(o.responseText), 'info', 'demo');
                    }
                 }
             });

       });




Saturday, November 5, 2011
var YUI = require("yui3").YUI;                           Requiriendo YUI NPM Module


            YUI().use('yql', function(Y) {

                var query = ' select * from geo.states where place="Chile" and lang="es-CL" ';

                 Y.YQL(query, function(result) {
                    // =result= now contains the result of the YQL Query
                    // use the YQL Developer console to learn
                    // what data is coming back in this object
                    // and how that data is structured.
                       Y.log(result, 'info', 'demo');
                 });

           });


                        http://developer.yahoo.com/yql/console/#h=select%20*%20from%20geo.states%20where
                                     %20place%3D%22Chile%22%20and%20lang%3D%22es-CL%22

Saturday, November 5, 2011
{
                              "query": {
                               "count": 15,
                               "created": "2011-10-31T15:38:44Z",
                               "results": {
                                "place": [
                                 {
                                  "lang": "es-CL",
                                  "uri": "http://where.yahooapis.com/v1/place/2345028",
                                  "woeid": "2345028",
                                  "placeTypeName": { "code": "8", "content": "Región" },
                                  "name": "Maule"
                                 },
                                 {
                                  "lang": "es-CL",
                                  "uri": "http://where.yahooapis.com/v1/place/2345025",
                                  "woeid": "2345025",
                                  "placeTypeName": { "code": "8", "content": "Región" },
                                  "name": "Libertador General Bernardo O'Higgins"
                                 },
                                 {
                                  "lang": "es-CL",
                                  "uri": "http://where.yahooapis.com/v1/place/2345029",
                                  "woeid": "2345029",
                                  "placeTypeName": { "code": "8", "content": "Región" },
                                  "name": "Santiago"
                                 }
                                ]
                               }
                              }
                             }

Saturday, November 5, 2011
YUI Library          Who contributes?
                               Everyone, with committer review.




                 YUI Gallery         Who contributes?
                                 Everyone, with little review.




                 YUI Test         Comprehensive unit testing
                                   solution for any JS code




                 YETI            YUI Easy Testing Interface: run
                               browser JS unit tests from console



Saturday, November 5, 2011
Yahoo! Cocktails



Saturday, November 5, 2011
Saturday, November 5, 2011
Cocktails: Mojito




Saturday, November 5, 2011
Mojito es un
                             Web Application Framework




Saturday, November 5, 2011
Mojits MVC


                                      Controller




                       Model
                                            View




Saturday, November 5, 2011
Tres tipos de scripts:

                             - foo.server.js
                             - foo.common.js
                             - foo.client.js


Saturday, November 5, 2011
Multiples Runtimes


             Javascript on the   Native Bridges   Javascript on the
                 browser         iOS   Android         server




Saturday, November 5, 2011
Mojito Command 101

                               $ mojito help

                               $ mojito create app ./myApp
                               $ mojito create mojit Foo
                               $ mojito test
                               $ mojito compile
                               $ mojito start




Saturday, November 5, 2011
Mojito Application Folder

                              ./myApp
                              - application.json
                              - assets
                              - autoload
                              - index.js
                              - mojits
                                - Foo
                                - Bar
                              - package.json
                              - server.js

Saturday, November 5, 2011
Open Source a inicios del 2012




Saturday, November 5, 2011
Cocktails: Manhattan




Saturday, November 5, 2011
Yahoo! Manhattan es un ambiente de hosting para
            aplicaciones basadas en Mojito que utiliza la nube de
                    Yahoo! para correr esas aplicaciones.




Saturday, November 5, 2011
Server Side: Technology Stack


                                                                Mojito App




                                                                  Mojito




                             YUI                      Express       Mustache         Connect




                                                                                                 Cocktails Abstractions
                                                 Node.JS                       V8




                                                                Manhattan




                                   Security Filters              Tracking           Monitoring




Saturday, November 5, 2011
Yahoo! Manhattan extiende Node.JS para proveer fault-
      isolation & fault-tolerance, escalabilidad, disponibilidad,
                      seguridad y desempeño.




Saturday, November 5, 2011
Saturday, November 5, 2011
Manhattan provides a simple interface for developers to
        deploy, un-deploy and manage their Mojito-based
      applications, leveraging the scale and performance of
               Yahoo!’s technology infrastructure.




Saturday, November 5, 2011
Desempeño




Saturday, November 5, 2011
Saturday, November 5, 2011
Saturday, November 5, 2011
node.js 0.4 + express + yui + mustache




Saturday, November 5, 2011
Apache + PHP




                             Node + Express + YUI + Mustache




Saturday, November 5, 2011
Saturday, November 5, 2011
Apache + PHP no crece




Saturday, November 5, 2011
Saturday, November 5, 2011
Thank you
                             caridy@yahoo-inc.com
                             @caridy




Saturday, November 5, 2011
Links

            • nodejs.org
            • npm.org
            • expressjs.com
            • yuilibrary.com/projects/nodejs-yui3/

Saturday, November 5, 2011
Más sobre Yahoo! Mojito:

                             http://www.slideshare.net/rhyolight/mojito-sl-2011




Saturday, November 5, 2011
Más sobre Yahoo! Manhattan:

                  http://video.yahoo.com/yahoonet-24189541/yodel-24697328/
                  cocktails-in-action-27127763.html

                 http://video.yahoo.com/yahoonet-24189541/yodel-24697328/
                 introducing-cocktails-from-yahoo-27127762.html




Saturday, November 5, 2011

More Related Content

What's hot

Symfony and eZ Publish
Symfony and eZ PublishSymfony and eZ Publish
Symfony and eZ Publish
Jérôme Vieilledent
 
Deploying large payloads at scale
Deploying large payloads at scaleDeploying large payloads at scale
Deploying large payloads at scale
ramonvanalteren
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
John Anderson
 
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2Plone in the Cloud - an on-demand CMS hosted on Amazon EC2
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2
Jazkarta, Inc.
 
Apache TomEE, Java EE 6 Web Profile {and more} on Tomcat
Apache TomEE, Java EE 6 Web Profile {and more} on TomcatApache TomEE, Java EE 6 Web Profile {and more} on Tomcat
Apache TomEE, Java EE 6 Web Profile {and more} on Tomcat
Tomitribe
 
Plone on Amazon EC2
Plone on Amazon EC2Plone on Amazon EC2
Plone on Amazon EC2
Jazkarta, Inc.
 
Puppet camp europe 2011 hackability
Puppet camp europe 2011   hackabilityPuppet camp europe 2011   hackability
Puppet camp europe 2011 hackability
Puppet
 
HootSuite Dev 2
HootSuite Dev 2HootSuite Dev 2
HootSuite Dev 2
ujihisa
 
Building MapAttack
Building MapAttackBuilding MapAttack
Building MapAttack
Kyle Drake
 
CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011
Graham Weldon
 
Exceptable
ExceptableExceptable
Exceptable
Aurynn Shaw
 
Web performances : Is It not the right time to (re)consider CMS ?
Web performances : Is It not the right time to (re)consider CMS ?Web performances : Is It not the right time to (re)consider CMS ?
Web performances : Is It not the right time to (re)consider CMS ?
Kaliop-slide
 
eZ Publish & Deployment of a multi-site platform
eZ Publish & Deployment of a multi-site platformeZ Publish & Deployment of a multi-site platform
eZ Publish & Deployment of a multi-site platform
Kaliop-slide
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic  Perl ProgrammerModern Perl for the Unfrozen Paleolithic  Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
John Anderson
 
CakePHP - The Path to 2.0
CakePHP - The Path to 2.0CakePHP - The Path to 2.0
CakePHP - The Path to 2.0
Graham Weldon
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Kyle Drake
 
A Brief History of OWIN
A Brief History of OWINA Brief History of OWIN
A Brief History of OWIN
Ryan Riley
 

What's hot (17)

Symfony and eZ Publish
Symfony and eZ PublishSymfony and eZ Publish
Symfony and eZ Publish
 
Deploying large payloads at scale
Deploying large payloads at scaleDeploying large payloads at scale
Deploying large payloads at scale
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
 
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2Plone in the Cloud - an on-demand CMS hosted on Amazon EC2
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2
 
Apache TomEE, Java EE 6 Web Profile {and more} on Tomcat
Apache TomEE, Java EE 6 Web Profile {and more} on TomcatApache TomEE, Java EE 6 Web Profile {and more} on Tomcat
Apache TomEE, Java EE 6 Web Profile {and more} on Tomcat
 
Plone on Amazon EC2
Plone on Amazon EC2Plone on Amazon EC2
Plone on Amazon EC2
 
Puppet camp europe 2011 hackability
Puppet camp europe 2011   hackabilityPuppet camp europe 2011   hackability
Puppet camp europe 2011 hackability
 
HootSuite Dev 2
HootSuite Dev 2HootSuite Dev 2
HootSuite Dev 2
 
Building MapAttack
Building MapAttackBuilding MapAttack
Building MapAttack
 
CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011
 
Exceptable
ExceptableExceptable
Exceptable
 
Web performances : Is It not the right time to (re)consider CMS ?
Web performances : Is It not the right time to (re)consider CMS ?Web performances : Is It not the right time to (re)consider CMS ?
Web performances : Is It not the right time to (re)consider CMS ?
 
eZ Publish & Deployment of a multi-site platform
eZ Publish & Deployment of a multi-site platformeZ Publish & Deployment of a multi-site platform
eZ Publish & Deployment of a multi-site platform
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic  Perl ProgrammerModern Perl for the Unfrozen Paleolithic  Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
 
CakePHP - The Path to 2.0
CakePHP - The Path to 2.0CakePHP - The Path to 2.0
CakePHP - The Path to 2.0
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
 
A Brief History of OWIN
A Brief History of OWINA Brief History of OWIN
A Brief History of OWIN
 

Similar to Conquistando el Servidor con Node.JS

Javascript - How to avoid the bad parts
Javascript - How to avoid the bad partsJavascript - How to avoid the bad parts
Javascript - How to avoid the bad parts
Mikko Ohtamaa
 
node.js for front-end developers
node.js for front-end developersnode.js for front-end developers
node.js for front-end developers
Garann Means
 
international PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHPinternational PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHP
smueller_sandsmedia
 
잘 알려지지 않은 Php 코드 활용하기
잘 알려지지 않은 Php 코드 활용하기잘 알려지지 않은 Php 코드 활용하기
잘 알려지지 않은 Php 코드 활용하기
형우 안
 
Performance Optimization for Ext GWT 3.0
Performance Optimization for Ext GWT 3.0Performance Optimization for Ext GWT 3.0
Performance Optimization for Ext GWT 3.0
Sencha
 
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e RubyTorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
Bruno Oliveira
 
Deploying on the cutting edge
Deploying on the cutting edgeDeploying on the cutting edge
Deploying on the cutting edge
ericholscher
 
3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time 3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time
Pascal Rettig
 
Community Code: Xero
Community Code: XeroCommunity Code: Xero
Community Code: Xero
Sencha
 
CSS Power Tools
CSS Power ToolsCSS Power Tools
CSS Power Tools
Nicole Sullivan
 
Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011) Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011)
Leonardo Borges
 
CommonJS Frameworks
CommonJS FrameworksCommonJS Frameworks
CommonJS Frameworks
Janne Kuuskeri
 
Practical Cloud Security
Practical Cloud SecurityPractical Cloud Security
Practical Cloud Security
Jason Chan
 
Groke
GrokeGroke
RunDeck
RunDeckRunDeck
RunDeck
Bruno Bonfils
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
eug3n_cojocaru
 
Extending rails
Extending railsExtending rails
Extending rails
Blazing Cloud
 
Node at artsy
Node at artsyNode at artsy
Node at artsy
Craig Spaeth
 
Community Code: The TouchForums App
Community Code: The TouchForums AppCommunity Code: The TouchForums App
Community Code: The TouchForums App
Sencha
 
WebGL Fundamentals
WebGL FundamentalsWebGL Fundamentals
WebGL Fundamentals
Sencha
 

Similar to Conquistando el Servidor con Node.JS (20)

Javascript - How to avoid the bad parts
Javascript - How to avoid the bad partsJavascript - How to avoid the bad parts
Javascript - How to avoid the bad parts
 
node.js for front-end developers
node.js for front-end developersnode.js for front-end developers
node.js for front-end developers
 
international PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHPinternational PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHP
 
잘 알려지지 않은 Php 코드 활용하기
잘 알려지지 않은 Php 코드 활용하기잘 알려지지 않은 Php 코드 활용하기
잘 알려지지 않은 Php 코드 활용하기
 
Performance Optimization for Ext GWT 3.0
Performance Optimization for Ext GWT 3.0Performance Optimization for Ext GWT 3.0
Performance Optimization for Ext GWT 3.0
 
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e RubyTorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
 
Deploying on the cutting edge
Deploying on the cutting edgeDeploying on the cutting edge
Deploying on the cutting edge
 
3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time 3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time
 
Community Code: Xero
Community Code: XeroCommunity Code: Xero
Community Code: Xero
 
CSS Power Tools
CSS Power ToolsCSS Power Tools
CSS Power Tools
 
Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011) Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011)
 
CommonJS Frameworks
CommonJS FrameworksCommonJS Frameworks
CommonJS Frameworks
 
Practical Cloud Security
Practical Cloud SecurityPractical Cloud Security
Practical Cloud Security
 
Groke
GrokeGroke
Groke
 
RunDeck
RunDeckRunDeck
RunDeck
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
 
Extending rails
Extending railsExtending rails
Extending rails
 
Node at artsy
Node at artsyNode at artsy
Node at artsy
 
Community Code: The TouchForums App
Community Code: The TouchForums AppCommunity Code: The TouchForums App
Community Code: The TouchForums App
 
WebGL Fundamentals
WebGL FundamentalsWebGL Fundamentals
WebGL Fundamentals
 

More from Caridy Patino

MiamiJS - The Future of JavaScript
MiamiJS - The Future of JavaScriptMiamiJS - The Future of JavaScript
MiamiJS - The Future of JavaScript
Caridy Patino
 
CSP Level 2: Defensa en profundidad para aplicaciones Web
CSP Level 2: Defensa en profundidad para aplicaciones WebCSP Level 2: Defensa en profundidad para aplicaciones Web
CSP Level 2: Defensa en profundidad para aplicaciones Web
Caridy Patino
 
The rise of single-page applications
The rise of single-page applicationsThe rise of single-page applications
The rise of single-page applications
Caridy Patino
 
YUIConf2013: Introducing The "Modown" Project
YUIConf2013: Introducing The "Modown" ProjectYUIConf2013: Introducing The "Modown" Project
YUIConf2013: Introducing The "Modown" Project
Caridy Patino
 
FOWA2013: The rise of single page applications
FOWA2013: The rise of single page applicationsFOWA2013: The rise of single page applications
FOWA2013: The rise of single page applications
Caridy Patino
 
FEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoFEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing Mojito
Caridy Patino
 
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - RecifeThe challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
Caridy Patino
 
YUIConf2012: Mojito for YUI Developers
YUIConf2012: Mojito for YUI DevelopersYUIConf2012: Mojito for YUI Developers
YUIConf2012: Mojito for YUI Developers
Caridy Patino
 
BayJax: Expanding Yahoo! Axis across 3 screens
BayJax: Expanding Yahoo! Axis across 3 screensBayJax: Expanding Yahoo! Axis across 3 screens
BayJax: Expanding Yahoo! Axis across 3 screens
Caridy Patino
 
HTML5 summit - DevCon5 - Miami - Feb 2, 2012
HTML5 summit - DevCon5 - Miami - Feb 2, 2012HTML5 summit - DevCon5 - Miami - Feb 2, 2012
HTML5 summit - DevCon5 - Miami - Feb 2, 2012
Caridy Patino
 
JS Loading strategies
JS Loading strategiesJS Loading strategies
JS Loading strategies
Caridy Patino
 
YUI 3 Loading Strategies - YUIConf2010
YUI 3 Loading Strategies - YUIConf2010YUI 3 Loading Strategies - YUIConf2010
YUI 3 Loading Strategies - YUIConf2010
Caridy Patino
 

More from Caridy Patino (12)

MiamiJS - The Future of JavaScript
MiamiJS - The Future of JavaScriptMiamiJS - The Future of JavaScript
MiamiJS - The Future of JavaScript
 
CSP Level 2: Defensa en profundidad para aplicaciones Web
CSP Level 2: Defensa en profundidad para aplicaciones WebCSP Level 2: Defensa en profundidad para aplicaciones Web
CSP Level 2: Defensa en profundidad para aplicaciones Web
 
The rise of single-page applications
The rise of single-page applicationsThe rise of single-page applications
The rise of single-page applications
 
YUIConf2013: Introducing The "Modown" Project
YUIConf2013: Introducing The "Modown" ProjectYUIConf2013: Introducing The "Modown" Project
YUIConf2013: Introducing The "Modown" Project
 
FOWA2013: The rise of single page applications
FOWA2013: The rise of single page applicationsFOWA2013: The rise of single page applications
FOWA2013: The rise of single page applications
 
FEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoFEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing Mojito
 
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - RecifeThe challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
 
YUIConf2012: Mojito for YUI Developers
YUIConf2012: Mojito for YUI DevelopersYUIConf2012: Mojito for YUI Developers
YUIConf2012: Mojito for YUI Developers
 
BayJax: Expanding Yahoo! Axis across 3 screens
BayJax: Expanding Yahoo! Axis across 3 screensBayJax: Expanding Yahoo! Axis across 3 screens
BayJax: Expanding Yahoo! Axis across 3 screens
 
HTML5 summit - DevCon5 - Miami - Feb 2, 2012
HTML5 summit - DevCon5 - Miami - Feb 2, 2012HTML5 summit - DevCon5 - Miami - Feb 2, 2012
HTML5 summit - DevCon5 - Miami - Feb 2, 2012
 
JS Loading strategies
JS Loading strategiesJS Loading strategies
JS Loading strategies
 
YUI 3 Loading Strategies - YUIConf2010
YUI 3 Loading Strategies - YUIConf2010YUI 3 Loading Strategies - YUIConf2010
YUI 3 Loading Strategies - YUIConf2010
 

Recently uploaded

Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 

Recently uploaded (20)

Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 

Conquistando el Servidor con Node.JS