SlideShare uma empresa Scribd logo
1 de 102
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Deploying large payloads at scale
Deploying large payloads at scaleDeploying large payloads at scale
Deploying large payloads at scaleramonvanalteren
 
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 ProgrammerJohn 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 EC2Jazkarta, 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 TomcatTomitribe
 
Puppet camp europe 2011 hackability
Puppet camp europe 2011   hackabilityPuppet camp europe 2011   hackability
Puppet camp europe 2011 hackabilityPuppet
 
HootSuite Dev 2
HootSuite Dev 2HootSuite Dev 2
HootSuite Dev 2ujihisa
 
Building MapAttack
Building MapAttackBuilding MapAttack
Building MapAttackKyle Drake
 
CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011Graham Weldon
 
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 platformKaliop-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 ProgrammerJohn Anderson
 
CakePHP - The Path to 2.0
CakePHP - The Path to 2.0CakePHP - The Path to 2.0
CakePHP - The Path to 2.0Graham 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::SynchronyKyle Drake
 
A Brief History of OWIN
A Brief History of OWINA Brief History of OWIN
A Brief History of OWINRyan Riley
 

Mais procurados (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
 

Semelhante a 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 partsMikko Ohtamaa
 
node.js for front-end developers
node.js for front-end developersnode.js for front-end developers
node.js for front-end developersGarann 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 PHPsmueller_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.0Sencha
 
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 RubyBruno Oliveira
 
Deploying on the cutting edge
Deploying on the cutting edgeDeploying on the cutting edge
Deploying on the cutting edgeericholscher
 
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: XeroSencha
 
Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011) Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011) Leonardo Borges
 
Practical Cloud Security
Practical Cloud SecurityPractical Cloud Security
Practical Cloud SecurityJason Chan
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forwardeug3n_cojocaru
 
Community Code: The TouchForums App
Community Code: The TouchForums AppCommunity Code: The TouchForums App
Community Code: The TouchForums AppSencha
 
WebGL Fundamentals
WebGL FundamentalsWebGL Fundamentals
WebGL FundamentalsSencha
 

Semelhante a 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
 

Mais de Caridy Patino

MiamiJS - The Future of JavaScript
MiamiJS - The Future of JavaScriptMiamiJS - The Future of JavaScript
MiamiJS - The Future of JavaScriptCaridy 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 WebCaridy Patino
 
The rise of single-page applications
The rise of single-page applicationsThe rise of single-page applications
The rise of single-page applicationsCaridy Patino
 
YUIConf2013: Introducing The "Modown" Project
YUIConf2013: Introducing The "Modown" ProjectYUIConf2013: Introducing The "Modown" Project
YUIConf2013: Introducing The "Modown" ProjectCaridy 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 applicationsCaridy Patino
 
FEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoFEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoCaridy 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 - RecifeCaridy Patino
 
YUIConf2012: Mojito for YUI Developers
YUIConf2012: Mojito for YUI DevelopersYUIConf2012: Mojito for YUI Developers
YUIConf2012: Mojito for YUI DevelopersCaridy 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 screensCaridy 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, 2012Caridy Patino
 
JS Loading strategies
JS Loading strategiesJS Loading strategies
JS Loading strategiesCaridy Patino
 
YUI 3 Loading Strategies - YUIConf2010
YUI 3 Loading Strategies - YUIConf2010YUI 3 Loading Strategies - YUIConf2010
YUI 3 Loading Strategies - YUIConf2010Caridy Patino
 

Mais de 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
 

Último

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Último (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

Conquistando el Servidor con Node.JS