SlideShare ist ein Scribd-Unternehmen logo
1 von 102
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Kürzlich hochgeladen (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Conquistando el Servidor con Node.JS