El documento presenta una introducción a Node.js, incluyendo una descripción de su arquitectura basada en eventos y entrada/salida no bloqueante, así como ejemplos de uso de su API y módulos populares como Express.js. También discute críticas comunes a Node.js y sugiere formas de integrarlo con Drupal para aplicaciones que requieran tiempo real.
Charla para la #PEUMConf2018.
Introducción a docker, cómo hemos evolucionado los entornos de desarrollo, desde la instalación de soluciones manualmente, uso de servidores, vagrant...
Realización de una demo práctica usando docker-compose para montar un entorno de desarrollo de algo tipo Php, Wordpress, Node...
PDO: Capa de abstracción de base de datos con PHPArsys
Qué es PDO y primeros pasos para usar la capa de abstracción de bases de datos incorporada en PHP, que permite trabajar con una interfaz de alto nivel, independiente de la base de datos usada.
Breve introducción a Vagrant y definición de la gestión de configuración de los entornos desarrollo y producción, y del proceso de automatización de las infraestructuras localmente en VirtualBox y en un servidor VMware vSphere.
Docker meetup :: Kubernetes en RestorandoRestorando
Presentamos en la meetup de docker nuestra experiencia (hasta ahora, junio 2016) con kubernetes. Al principio se introduce los conceptos básicos de kubernetes y luego contamos nuestra experiencia y workaround para obtener alguna funcionalidad.
Uso básico de Vagrant para la creación de entornos de desarrollo.
- Introducción a Vagrant
- Accesso a las máquinas virtuales
- Varias máquinas virtuales con Vagrant
- Compartición de datos entre anfitrión y máquinas virtuales
- Empaquetado de máquinas virtuales
- Provisión de máquinas con Ansible
DevOps & Infraestructura como código: Promesas RotasRicard Clau
Streaming en Youtube at https://www.youtube.com/watch?v=pm7DzYLVgkw hasta el minuto 48
Las metodologías DevOps y herramientas de infraestructura como código prometían simplificar el manejo de nuestros servidores, aumentar nuestro valor a negocio y en general, mejorar nuestra vida como ingenieros.
Pero la realidad es que la complejidad parece seguir en aumento, es cada vez más difícil testear todo correctamente y a veces parece que haciendo las cosas a mano vivíamos mejor.
En esta charla haremos un repaso de estos temas, plantearemos posibles soluciones, comentaremos algunos retos que todavía nos quedan y desde luego espero convencer a la audiencia de que volver atrás no sería una buena solución
ASP.NET 5 en Linux y Mac OS X: herramientas e integraciónLuis Ruiz Pavón
Con ASP.NET 5, Microsoft no solamente nos proporciona un despliegue multiplataforma, sino que también nos va a permitir desarrollar en plataformas como Linux y OS X. En esta charla veremos cómo montar nuestro entorno de desarrollo en MAC y Linux además de las diferentes utilidades (Vs Code, OmniSharp, Sublime, Yeoman, …) que tendremos a nuestra disposición tanto para el desarrollo como el despliegue de nuestras apps.
#Dean document db + express + angularjs + nodejs running on azureLuis Ruiz Pavón
Basándonos en el stack MEAN , hemos dado una vuelta de tuerca y hemos desarrollado una aplicación SPA haciendo uso de tecnologías como Express, NodeJS y DocumentDB (La nueva base de datos PaaS de Microsoft) para el backend y AngularJS para el front-end. Todo el desarrollo se hizo aprovechando al máximo las funcionalidades de Visual Studio y de las NodeJs Tools para Visual Studio.
DocumentDB - http://azure.microsoft.com/es-es/services/documentdb/
Node.js Tools for Visual Studio - https://nodejstools.codeplex.com/
AngularJS - https://angularjs.org/
Node.js - https://nodejs.org/
ExpressJS - http://expressjs.com/
Charla para la #PEUMConf2018.
Introducción a docker, cómo hemos evolucionado los entornos de desarrollo, desde la instalación de soluciones manualmente, uso de servidores, vagrant...
Realización de una demo práctica usando docker-compose para montar un entorno de desarrollo de algo tipo Php, Wordpress, Node...
PDO: Capa de abstracción de base de datos con PHPArsys
Qué es PDO y primeros pasos para usar la capa de abstracción de bases de datos incorporada en PHP, que permite trabajar con una interfaz de alto nivel, independiente de la base de datos usada.
Breve introducción a Vagrant y definición de la gestión de configuración de los entornos desarrollo y producción, y del proceso de automatización de las infraestructuras localmente en VirtualBox y en un servidor VMware vSphere.
Docker meetup :: Kubernetes en RestorandoRestorando
Presentamos en la meetup de docker nuestra experiencia (hasta ahora, junio 2016) con kubernetes. Al principio se introduce los conceptos básicos de kubernetes y luego contamos nuestra experiencia y workaround para obtener alguna funcionalidad.
Uso básico de Vagrant para la creación de entornos de desarrollo.
- Introducción a Vagrant
- Accesso a las máquinas virtuales
- Varias máquinas virtuales con Vagrant
- Compartición de datos entre anfitrión y máquinas virtuales
- Empaquetado de máquinas virtuales
- Provisión de máquinas con Ansible
DevOps & Infraestructura como código: Promesas RotasRicard Clau
Streaming en Youtube at https://www.youtube.com/watch?v=pm7DzYLVgkw hasta el minuto 48
Las metodologías DevOps y herramientas de infraestructura como código prometían simplificar el manejo de nuestros servidores, aumentar nuestro valor a negocio y en general, mejorar nuestra vida como ingenieros.
Pero la realidad es que la complejidad parece seguir en aumento, es cada vez más difícil testear todo correctamente y a veces parece que haciendo las cosas a mano vivíamos mejor.
En esta charla haremos un repaso de estos temas, plantearemos posibles soluciones, comentaremos algunos retos que todavía nos quedan y desde luego espero convencer a la audiencia de que volver atrás no sería una buena solución
ASP.NET 5 en Linux y Mac OS X: herramientas e integraciónLuis Ruiz Pavón
Con ASP.NET 5, Microsoft no solamente nos proporciona un despliegue multiplataforma, sino que también nos va a permitir desarrollar en plataformas como Linux y OS X. En esta charla veremos cómo montar nuestro entorno de desarrollo en MAC y Linux además de las diferentes utilidades (Vs Code, OmniSharp, Sublime, Yeoman, …) que tendremos a nuestra disposición tanto para el desarrollo como el despliegue de nuestras apps.
#Dean document db + express + angularjs + nodejs running on azureLuis Ruiz Pavón
Basándonos en el stack MEAN , hemos dado una vuelta de tuerca y hemos desarrollado una aplicación SPA haciendo uso de tecnologías como Express, NodeJS y DocumentDB (La nueva base de datos PaaS de Microsoft) para el backend y AngularJS para el front-end. Todo el desarrollo se hizo aprovechando al máximo las funcionalidades de Visual Studio y de las NodeJs Tools para Visual Studio.
DocumentDB - http://azure.microsoft.com/es-es/services/documentdb/
Node.js Tools for Visual Studio - https://nodejstools.codeplex.com/
AngularJS - https://angularjs.org/
Node.js - https://nodejs.org/
ExpressJS - http://expressjs.com/
Libri virtual que te va a enseñar como es el flujo del dinero y como estar en la sinergia correcta para dejar de corretear el dinero, y aprender a como hacer que el dinero trabaje para tí
Ignacio Biencinto, Frontend developer, nos comparte en esta la primer charla de dos, los principios que componen el Frontend Development, repasando en ella 6 aspectos clave para tener un frontend bien diseñado, optimizado y mantenible. Navegando por nuestro JS, CSS, UX y revisando nuestro Performance, Cross Browsing y Testing.
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...SpanishPASSVC
En esta sesión veremos dos novedades que ofrece SQL Server 2014 para gestionar la concurrencia de las cargas transaccionales de los sistemas OLTP de forma muy transparente. La durabilidad diferida de transacciones permite "aligerar" el acceso al archivo de transacciones penalizando ligeramente la "transaccionalidad completa" de la operacion: Veremos pros y contras de esta operación. Las mejoras en gestión de bloqueos permitirán que operaciones de mantenimiento no se vean bloqueadas (o bloqueen) las operaciones del día a día del sistema transaccional.
Página oficial del SolidQ Summit: http://summit.solidq.com/madrid/2013/
Con la llegada de SQL Server 2012, aparecen muchas mejoras a nivel de lenguaje T-SQL. En esta sesión, daremos un repaso de todas las novedades a nivel desarrollo que nos aporta la nueva expresividad T-SQL.
Node.js es una tecnología cada vez más popular para el desarrollo de servicios web. Grandes abanderados de Java como Netflix están usando cada vez más JavaScript para implementar parte de su backend. Pese a esta realidad, muchos javeros como yo no quieren tocar JavaScript ni con un palo, y cuando hay que hacerlo, sólo en el browser.
Si eres javero y no te gusta JavaScript, en esta presentación tendrás una visión general sobre cómo desarrollar servicios web con Node.js. Verás cómo con TypeScript, async/await y frameworks como Nest y TypeORM no echarás de menos a Spring y JPA. Pero lo mismo pasa al revés, verás cómo en Java también puedes implementar apps con los mismos principios reactivos y funcionales tan comunes en Node.js.
Node.js on Windows talk @ jsconf Argentina 2012
Notes taken during the talk by @alexjota:
https://docs.google.com/document/d/1BBm62-MgIsYprugGtfCltfBSTIvIdB1FTqOSiNlguig/edit
Demo code:
https://github.com/woloski/notepadr/blob/master/apps/testjsconf/
Me complace presentarles este PDF que ofrece una perspectiva profunda sobre algunas de mis experiencias, habilidades y enfoque en el mundo del desarrollo.
Este PDF adopta un enfoque de Entrevista Exclusiva, destinado a descubrir detalles clave de mi trayectoria profesional.
Slides para la charla sobre Action-Domain-Responder del VLCTechFest 2018.
Action-Domain-Responder (ADR) es un patrón de arquitectura propuesto por Paul M. Jones pensado para sustituir MVC en el desarrollo backend.
Analizaremos MVC a fondo y veremos por qué no es un buen patrón para aplicaciones web y cómo ADR está pensado para suplir todas sus carencias.
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+DinLabFIB
Workshop realitzat per l'equip uLab UPC de l'inLab FIB, després de realitzar una prova de concepte de la tecnologia. Més informació:
http://inlab.fib.upc.edu/ca/blog/meteorjs-getting-started
Node.js
Code Blast 2012 en el marco de charlas de por la Semana de la Ingeniería de la Universidad Tecnológica Nacional, Facultad Regional Tucumán.
Juan Maria Martinez Arce compartió un poco de sus investigaciones en el uso de node.js para la creación de aplicaciones de red de alta concurrencia.
Programación de apps multiplataforma con Apache Cordova
(parte 2 de 2).
Explicación de qué es y cómo desarrollar aplicaciones con AngularJS e Ionic Framework. Controllers, services, filters, directives, etc.
Es un framework o conjunto de subsistemas de software para el desarrollo de aplicaciones, y páginas web dinámicas, que están basadas, cada una de estas en el popular lenguaje de programación conocido como JavaScript. Gracias a esta característica el conjunto se integra exitosamente en una plataforma auto-suficiente.
Cada subsistema del Mean stack es de código abierto y de uso gratuito.
Frameworks y herramientas para la web del futuroBBVA API Market
El futuro de la web está más vivo que nunca. Si quieres conocer las librerías y herramientas esenciales para crear la web del futuro, descárgate este ebook. Más información en http://bbva.info/2t1NEv7
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.betabeers
Pesado, lento, antiguo, complicado y complejo son los calificativos que suelen venir a la mente cuando pensamos en aplicaciones web con Java. Y en verdad es así si utilizamos frameworks tradicionales (JSF, Struts, Spring, etc.), enfocados a desarrollar grandes aplicaciones empresariales o corporativas. Pero si necesitamos hacer una aplicación web pequeñas y simples, ¿no hay ningún framework que nos ayude sin toda la complejidad de los tradicionales? Pues sí que lo hay y se llama Spark Java.
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
Presentación enfocada a mostrar las funcionalidades más importante de los micro framework Spark y Ratpack. Dando una inducción a los conceptos básicos en su utilización del protocolo HTTP y los servicios REST.
Impartida en la segunda edición en el Barcamp 2014, Pontificia Universidad Católica Madre y Maestra (PUCMM), Santiago de los Caballeros, República Dominicana.
Motivación y causas del cambio de arquitectura en Drupal versión 8 y por que se ha escogido a Symfony 2 como principal socio tecnológico en el proyecto. Sustitución de partes de Drupal 8 por componentes de Symfony 2.
Extracto de la descripción original del Codemotion:
Drupal es actualmente uno de los proyectos OpenSource más exitosos gracias a su numerosa comunidad y a lo increíblemente sencillo que es ampliar y personalizar la funcionalidad de la plataforma a traves de su sistema de módulos. Esta charla se plantea como una introducción a la arquitectura de Drupal y la creación de módulos exponiendo los recursos disponibles para hacerlo:
- Arquitectura Drupal.
- Drupal como sistema de Hooks y su manera de entender la "Inversión de Control"
- La documentación del desarrollador Drupal
- La API de Drupal
- Crear módulos a partir de "Examples module"
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...espinozaernesto427
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta intensidad son un tipo de lámpara eléctrica de descarga de gas que produce luz por medio de un arco eléctrico entre electrodos de tungsteno alojados dentro de un tubo de alúmina o cuarzo moldeado translúcido o transparente.
lámparas más eficientes del mercado, debido a su menor consumo y por la cantidad de luz que emiten. Adquieren una vida útil de hasta 50.000 horas y no generan calor alguna. Si quieres cambiar la iluminación de tu hogar para hacerla mucho más eficiente, ¡esta es tu mejor opción!
Las nuevas lámparas de descarga de alta intensidad producen más luz visible por unidad de energía eléctrica consumida que las lámparas fluorescentes e incandescentes, ya que una mayor proporción de su radiación es luz visible, en contraste con la infrarroja. Sin embargo, la salida de lúmenes de la iluminación HID puede deteriorarse hasta en un 70% durante 10,000 horas de funcionamiento.
Muchos vehículos modernos usan bombillas HID para los principales sistemas de iluminación, aunque algunas aplicaciones ahora están pasando de bombillas HID a tecnología LED y láser.1 Modelos de lámparas van desde las típicas lámparas de 35 a 100 W de los autos, a las de más de 15 kW que se utilizan en los proyectores de cines IMAX.
Esta tecnología HID no es nueva y fue demostrada por primera vez por Francis Hauksbee en 1705. Lámpara de Nernst.
Lámpara incandescente.
Lámpara de descarga. Lámpara fluorescente. Lámpara fluorescente compacta. Lámpara de haluro metálico. Lámpara de vapor de sodio. Lámpara de vapor de mercurio. Lámpara de neón. Lámpara de deuterio. Lámpara xenón.
Lámpara LED.
Lámpara de plasma.
Flash (fotografía) Las lámparas de descarga de alta intensidad (HID) son un tipo de lámparas de descarga de gas muy utilizadas en la industria de la iluminación. Estas lámparas producen luz creando un arco eléctrico entre dos electrodos a través de un gas ionizado. Las lámparas HID son conocidas por su gran eficacia a la hora de convertir la electricidad en luz y por su larga vida útil.
A diferencia de las luces fluorescentes, que necesitan un recubrimiento de fósforo para emitir luz visible, las lámparas HID no necesitan ningún recubrimiento en el interior de sus tubos. El propio arco eléctrico emite luz visible. Sin embargo, algunas lámparas de halogenuros metálicos y muchas lámparas de vapor de mercurio tienen un recubrimiento de fósforo en el interior de la bombilla para mejorar el espectro luminoso y reproducción cromática. Las lámparas HID están disponibles en varias potencias, que van desde los 25 vatios de las lámparas de halogenuros metálicos autobalastradas y los 35 vatios de las lámparas de vapor de sodio de alta intensidad hasta los 1.000 vatios de las lámparas de vapor de mercurio y vapor de sodio de alta intensidad, e incluso hasta los 1.500 vatios de las lámparas de halogenuros metálicos.
Las lámparas HID requieren un equipo de control especial llamado balasto para funcionar
Estructuras básicas_ conceptos básicos de programación.pdf
Introducción a Node.js
1. Introducción a Node.js
Grupo de usuarios Drupal Alicante + @tucamon
07/11/2012
http://vimeo.com/53137688
Alessandro Mascherpa
@AlessMascherpa
2. Introducción a NodeJS @tucamon, 07Nov2012
Personal
● Desarrollador web freelance
http://es.linkedin.com/in/alessmascherpa
● Miembro de la Asociación
Española de Drupal,
http://asociaciondrupal.es/
http://drupal.org/user/395031
● Miembro de la Drupal Association,
https://association.drupal.org/
● Grupo de usuarios de Drupal de
Castellón: @DrupalCS,
http://groups.drupal.org/castellon
Alessandro Mascherpa, @AlessMascherpa 2/ 42
3. Introducción a NodeJS @tucamon, 07Nov2012
Intro
Arquitectura
API
NPM y módulos destacados
Críticas y problemas
Casos de uso
Referencias
Alessandro Mascherpa, @AlessMascherpa 3/ 42
4. Introducción a NodeJS @tucamon, 07Nov2012
Intro
Arquitectura
API
NPM y módulos destacados
Críticas y problemas
Casos de uso
Referencias
Alessandro Mascherpa, @AlessMascherpa 4/ 42
5. Introducción a NodeJS @tucamon, 07Nov2012
¿Qué es Node.js?
● Single threaded, event-
loop, non-blocking I/O
● Centrado en la
eficiencia
● SSJS: Server-Side
JavaScript. Google V8.
JavaScript es funcional
y event-driven Ref: http://nodejs.org/
● Super “cool”
Alessandro Mascherpa, @AlessMascherpa 5/ 42
6. Introducción a NodeJS @tucamon, 07Nov2012
¿Qué NO es Node.js?
● No es un fullstack
Web-framework
● No es un servidor
web (ni de otro tipo)
● No es web en tiempo
real
● Pero se puede construir cualquiera de los
anteriores con él
Alessandro Mascherpa, @AlessMascherpa 6/ 42
7. Introducción a NodeJS @tucamon, 07Nov2012
Intro
Arquitectura
API
NPM y módulos destacados
Críticas y problemas
Casos de uso
Referencias
Alessandro Mascherpa, @AlessMascherpa 7/ 42
10. Introducción a NodeJS @tucamon, 07Nov2012
Blocking
<?php
<?php
result = query("select...");
result = query("select...");
// esperar y usar result
// esperar y usar result
?>
?>
Ref:
http://magnetik.github.com/node-webid-report/
Alessandro Mascherpa, @AlessMascherpa 10 / 42
12. Introducción a NodeJS @tucamon, 07Nov2012
NonBlocking
query("select...", function (result) {
query("select...", function (result) {
// usa result
// usa result
});
});
//haz otra cosa
//haz otra cosa
Ref:
http://magnetik.github.com/node-webid-report/
Alessandro Mascherpa, @AlessMascherpa 12 / 42
14. Introducción a NodeJS @tucamon, 07Nov2012
Blocking vs NonBlocking
Alessandro Mascherpa, @AlessMascherpa 14 / 42
15. Introducción a NodeJS @tucamon, 07Nov2012
Blocking vs NonBlocking
Alessandro Mascherpa, @AlessMascherpa 15 / 42
16. Introducción a NodeJS @tucamon, 07Nov2012
Intro
Arquitectura
API
NPM y módulos destacados
Críticas y problemas
Casos de uso
Referencias
Alessandro Mascherpa, @AlessMascherpa 16 / 42
17. Introducción a NodeJS @tucamon, 07Nov2012
La API de Node.js: extendiendo JS
● Procesos
● Filesystem
● Networking
● Utilidades
http://nodejs.org/api/
Ref: http://blog.zenika.com/index.php?post/2011/04/10/NodeJS
Alessandro Mascherpa, @AlessMascherpa 17 / 42
19. Introducción a NodeJS @tucamon, 07Nov2012
Intro
Arquitectura
API
NPM y módulos destacados
Críticas y problemas
Casos de uso
Referencias
Alessandro Mascherpa, @AlessMascherpa 19 / 42
20. Introducción a NodeJS @tucamon, 07Nov2012
Node Package Manager: npm
● Repositorio de módulos
$ npm list
Node.js
● Gestiona instalación, connect@1.7.0
actualización ... de qs@0.3.1
módulos Node.js mime@1.2.3
● Node.js permite la express@1.0.7
coexistencia de diferentes connect@1.7.0
versiones de un módulo en qs@0.3.1
el sistema. mime@1.2.2
qs@0.3.1
● NPM incluido en Node.js
desde la versión 0.6.x Ref: http://npmjs.org/
Alessandro Mascherpa, @AlessMascherpa 20 / 42
21. Introducción a NodeJS @tucamon, 07Nov2012
Connect y Express.js
● Connect es un HTTP server framework creado por
Sencha: https://github.com/senchalabs/connect#readme
● Express.js es un sencillo web-framework inspirado en
Sinatra y basado en Connect: http://expressjs.com/
var app = require('express').createServer();
app.get('/', function(req, res){
res.send('hello world');
});
app.listen(3000);
Alessandro Mascherpa, @AlessMascherpa 21 / 42
24. Introducción a NodeJS @tucamon, 07Nov2012
Intro
Arquitectura
API
NPM y módulos destacados
Críticas y problemas
Casos de uso
Referencias
Alessandro Mascherpa, @AlessMascherpa 24 / 42
25. Introducción a NodeJS @tucamon, 07Nov2012
Críticas vs Visionarios
● Que si el código es ● Hay voces (o más bien
ilegible e inmantenible.. rumores) que piden que
desaparezca PHP por
● Que si tenemos que
que ya no hace falta.
volver a la edad de
Node.js + JavaScript es
piedra de internet y
mucho mejor y mucho
programar el servidor
más elegante...
para cada webapp que
hagamos...
● … cada herramienta tiene su ámbito de
aplicación donde destaca. Suerte que
tenemos opciones.
Alessandro Mascherpa, @AlessMascherpa 25 / 42
26. Introducción a NodeJS @tucamon, 07Nov2012
Problemas con Node.js
● Procesos largos de cálculo. Soluciones:
● Refactorizar el algoritmo:
– process.nextTick(callback(){ … });
● Crear un servicio de backend y desviar el cálculo.
● Matriosca-style-coding, Boomerang-shape-code
o Callback-hell
Alessandro Mascherpa, @AlessMascherpa 26 / 42
27. Introducción a NodeJS @tucamon, 07Nov2012
Callback Hell
database.find('foo', function (err, data) {
database.update('foo', 'bar', function (err, data) {
database.delete('bar', function (err, data) {
console.log(data);
});
});
});
Alessandro Mascherpa, @AlessMascherpa 27 / 42
28. Introducción a NodeJS @tucamon, 07Nov2012
Solucionando el CallBack Hell
● Código orientado a var onDelete = function (err,
eventos y funciones data) {console.log(data);},
con nombre en lugar onUpdate = function (err, data)
de funciones {database.delete('bar',
anónimas onDelete);},
● Usando módulos que onFind = function (err, data)
abstraigan la {database.update('foo', 'bar',
onUpdate);};
serialización y
concurrencia de la database.find('foo', onFind);
ejecución de callbacks
Ref: http://stackoverflow.com/questions/5366424/writing-blocking-code-in-nodejs
http://stackoverflow.com/questions/5265743/node-js-what-techniques-are-there-for-w
Alessandro Mascherpa, @AlessMascherpa 28 / 42
29. Introducción a NodeJS @tucamon, 07Nov2012
Intro
Arquitectura
API
NPM y módulos destacados
Críticas y problemas
Casos de uso
Referencias
Alessandro Mascherpa, @AlessMascherpa 29 / 42
30. Introducción a NodeJS @tucamon, 07Nov2012
Casos de uso de Node.js en la web
● Comunicaciones
● Streaming
● Colaboración
● Juegos online
● Monitorización
… en definitiva aplicaciones de red tiempo real,
pero también...
● Servidores web eficientes
● Aplicaciones de escritorio y de consola
Alessandro Mascherpa, @AlessMascherpa 30 / 42
31. Introducción a NodeJS @tucamon, 07Nov2012
¿Qué tiene que ver Node.js con Drupal?
● Drupal es una gran plataforma de desarrollo
web.
● Pero Drupal es pesado a nivel de proceso y
recursos.
● Drupal se integra con Node.js para evitar esos
handicaps con aplicaciones que requieran
tiempo real.
Alessandro Mascherpa, @AlessMascherpa 31 / 42
32. Introducción a NodeJS @tucamon, 07Nov2012
Casos de uso Node.js en Drupal
● Node.js Integration by beejeebus (Justin
Randell): Drupal gestiona los datos y Node.js
las comunicaciones entre clientes.
http://drupal.org/project/nodejs
http://2011.badcamp.net/program/sessions/drupal-and-nodejs
● Nodepal by synodinos (Dionysios G.
Synodinos): aplicación Node.js con acceso de
lectura a la base de datos Drupal (sin pasar por
Drupal) https://github.com/synodinos/nodepal
● Tareas repetitivas y frequentes:
http://fourkitchens.com/blog/2012/02/07/nodejs-drupal
Alessandro Mascherpa, @AlessMascherpa 32 / 42
33. Introducción a NodeJS @tucamon, 07Nov2012
Demo
1.Instalar NodeJS (que ya incluye npm)
2.Instalar Drupal
3.Instalar nodejs module
4.Instalar drupalchat module (que usaremos como
ejemplo) http://drupal.org/project/drupalchat
5.Instalar dependencias de nodejs module (si se diese el
caso tambien tendríamos que instalar las de nuestro
módulo)
Ref: http://drupal.org/node/1713530
Alessandro Mascherpa, @AlessMascherpa 33 / 42
34. Introducción a NodeJS @tucamon, 07Nov2012
Demo 2
6.Copiar nodejs.config.js y
drupalchat_nodejs.server.extension.js de drupalchat a
nodejs, para que esté en el mismo directorio que
server.js
7.Añadir a nodejs.config.js datos de nuestro sistema
Alessandro Mascherpa, @AlessMascherpa 34 / 42
38. Introducción a NodeJS @tucamon, 07Nov2012
Demo 6: NodeJS module API
path_to_modules/nodejs/server.js
391 /**
392 * Publish a message to a specific client.
393 */
394 var publishMessageToClient = function (sessionId, message) {
395 if (io.sockets.sockets[sessionId]) {
396 io.sockets.socket(sessionId).json.send(message);
397 if (settings.debug) {
398 console.log('Sent message to client ' + sessionId);
399 }
400 return true;
401 }
402 else {
403 console.log('publishMessageToClient: Failed to find client ' + sessionId);
404 }
405 };
Alessandro Mascherpa, @AlessMascherpa 38 / 42
39. Introducción a NodeJS @tucamon, 07Nov2012
Intro
Arquitectura
API
NPM y módulos destacados
Críticas y problemas
Casos de uso
Referencias
Alessandro Mascherpa, @AlessMascherpa 39 / 42