Node.Js, Express y Socket.IO en UdADev 2012, Cuenca, Ecuador

Como adelanté en el post Node.Js en UDA Developers Challenge 2012 participé del los seminarios dictados para el UdADev 2012 de la Universidad de Azuay, en Cuenca, Ecuador. Fue un excelente viaje, me recibieron muy bien, disfruté mucho el viaje, tienen un buen clima, un hermoso parque nacional a minutos de la ciudad, actividades de todo tipo… y podría seguir escribiendo, pero ya lo haré en algún post de mi blog no técnico. Agradezco a todos los que hicieron esto posible!

Ahora, quiero pasar en limpio lo que mostré. Mi tema era Node.Js, Express y Socket.IO, orientado todo para el concurso que están organizando sobre aplicaciones en tiempo real para dispositivos móviles (vean el tema y expositores completos en la página del evento).

Mi presentación la puede ver (y bajar) de: http://t.co/UUoFooL2

Usamos durante todo el día varios varios ejemplos de: https://github.com/ajlopez/NodeSamples

Al comienzo, vimos de esos ejemplos, los de https://github.com/ajlopez/NodeSamples/tree/master/Simple, como hello.js, helloasync.js, http.js.

Pasamos a ver un ejemplo de módulo, hecho en el momento. Y usamos el npm para buscar un paquete, ejecutando:

npm search serial

porque me habían preguntado en el primer intervalo sobre módulos que manejen puertos seriales. De ahí, instalamos uno usando

npm install <nombre>

Mostré como ejemplo de paquete publicado, como proyecto GitHub a lo que estuve programando de autómatas celulares:

https://github.com/ajlopez/Cellular

donde ejecutamos los ejemplos https://github.com/ajlopez/Cellular/tree/master/samples/linear pasando un número de regla como parámetro. Pueden probar:

node linear 110

Exploramos algo del módulo http. Ejecutamos el ejemplo https://github.com/ajlopez/NodeSamples/tree/master/HttpRequest ejecutando ahí:

node app.js http://www.google.com

bajando el contenido de la página. Escribimos un pequeño servidor, para ver qué temas hay que resolver para tener un sitio más completo (como routing de los pedidos externos). Ahí mostre Geddy:

http://geddyjs.org/

y nos fuimos a almorzar.

A la vuelta, nos dedicamos a Express:

http://expressjs.com/

Vimos de instalarlo globalmente con

npm install –g express

y armamos una aplicación desde la línea de comando con

express –sessions –css stylus MyApp
cd MyApp
npm install
node app

Lo pueden ver el resultado en: https://github.com/ajlopez/NodeSamples/tree/master/Express/MyApp 

Instalamos y lanzamos mongodb bajándolo desde http://www.mongodb.org/downloads (el día anterior ya Carlos Barroeta @carlosdbm había dictado el seminario/taller de NoSQL).

Levantamos y probamos el ejemplo https://github.com/ajlopez/NodeSamples/tree/master/Express/Blog basado (actualizado a Express 3) del:

http://howtonode.org/express-mongodb

Hacia el final del “track” Express, vimos de bajar y levantar:

https://github.com/ccoenraets/nodecellar
http://coenraets.org/blog/2012/10/nodecellar-sample-application-with-backbone-js-twitter-bootstrap-node-js-express-and-mongodb/

En el “track” final, sobre Socket.IO, vimos ejemplos de:

https://github.com/ajlopez/NodeSamples/tree/master/SocketIO

Como ejemplo en el browser, en el browser y servidor, o en el browser, servidor y varios nodos distribuidos, vimos los ejemplos de:

https://github.com/ajlopez/SimpleGA

Ver algo de explicación en SimpleGA (1) Algoritmos Genéticos en Javascript/Node.js

Luego, hacia el final, vimos de nuevo nodecellar, y lo activamos para tener en tiempo real un análisis de

http://coenraets.org/blog/2012/10/real-time-web-analytics-with-node-js-and-socket-io/

(ver de descomentar un texto que está en el index.html de ese ejemplo). No llegamos a verlo, pero les recomendaría también de ese autor:

http://coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb/

Si quieren ejecutar los ejemplos de NodeSamples, vean de hacer

npm install

cuando en el directorio hay un archivo package.json. O de instalar con

npm install <nombremódulo>

el módulo que requiera el ejemplo.

Para preparar la presentación consulté varios de mis enlaces de Node.js, Express y Socket.IO:

http://delicious.com/ajlopez/nodejs
http://delicious.com/ajlopez/nodejs+tutorial
http://delicious.com/ajlopez/express
http://delicious.com/ajlopez/express+tutorial
http://delicious.com/ajlopez/socketio
http://delicious.com/ajlopez/socketio+tutorial

Por ejemplo, entre tantos para ver, pueden visitar:

Node.js and Socket.io part 1 Building a HTML5 game part 6

Más sobre desarrollo Node.js y juegos:

http://delicious.com/ajlopez/nodejs+gamedevelopment

Sobre Node.js y móvil:

http://delicious.com/ajlopez/nodejs+mobile

Por ejemplo, en el seminario/taller mencioné:

Stream a webcam using Javascript, NodeJS, Android, Opera Mobile, Web Sockets and HTML5

Ahora agregaría:

Build a Phone-controlled Robot Using Node.js, RN-XV WiFly, Arduino and Twilio

También consulté estas presentaciones:

http://www.slideshare.net/iloire/building-web-apps-with-nodejs-socketio-knockoutjs-and-zombiejs-codemotion-2012
http://www.slideshare.net/openforce/nodejs-fast-event-based-web-application-development
http://www.slideshare.net/vikasing/introduction-to-nodejs-11730771
https://speakerdeck.com/danzajdband/introduccion-a-express-meetup-node-dot-js-argentina
http://www.youtube.com/watch?v=pQN5U0EQoUo&feature=youtu.be
http://magnetik.github.com/node-webid-report/
http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/
http://www.slideshare.net/3rdEden/going-real-time-with-socketio
http://www.slideshare.net/Jxck/real-time-app-with-nodejs
http://www.slideshare.net/dbloete/expressjs
https://speakerdeck.com/spopp/nodejs-npm-express-quick-start

Para lista de correo de consultas, en español, recomendaría:

https://groups.google.com/group/nodejs-es?pli=1

Una explicación detallada de Express:

http://youtu.be/Uw46_Mub6t8 por @dzajband

Una charla sobre Socket.IO del propio autor @rauchg:

http://jshangouts.org/2012/08/18/Socket-IO-Engine-IO-Guillermo-Rauch.html

Hay mucho para investigar de Node.js, y todo es divertido! ;-)

Actualización: otro tema para explorar para el concurso, Kinect desde Node.js https://github.com/pgte/node-kinect

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 14005, 15550, 17382. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>