Archive for the '17382' Category

Node.js en Rosario, Argentina

Friday, January 4th, 2013

Sigo dando seminarios sobre Node.js (arancelados=, de un día, gracias a la gente del MUG de argentina. El próximo será en la ciudad de Rosario, en Febrero:

http://www.mug.org.ar/Eventos/3858.aspx

Leo ahí:

Fechas y horario:Viernes 22 de Febrero de 2013, en el horario de 09:00 a 18:00 hs.

Se recomienda tener conocimientos previos HTML y nociones de JavaScript.

Requisitos: Traer notebook con Node y Git instalados.
El instalador de Node (para Windows y otros) está en
http://nodejs.org/download/
Git se puede bajar de http://git-scm.com/

Contenidos:

1. Introducción a Node.js
1.1. Programación Javascript desde Node sobre el motor V8
1.2. Entrada/Salida asincrónica
1.3. Módulos
1.4. Manejador de paquetes npm
1.5. Elementos de Test-Driven Development

2. Programación Web con Node.js
2.1. Módulo HTTP
2.2. Manejo asincrónico
2.3. Frameworks web con middleware
2.4. Framework MVC: Express
2.5. Acceso a Base de datos

3. Socket.IO
3.1. Comunicación con el browser
3.2. WebSockets y alternativas
3.3. Ejemplo multiusuario en tiempo real
3.4. Usando HTML5 y canvas
3.5. Chat simple
3.6. Juego simple
3.7. Ejemplo distribuido: varios servidores, varios clientes

La idea es que si alguien no vió Node.js, pero sabe programar, y tienen nociones de JavaScript, venga y vea cómo son los primeros pasos en Node.js, y luego levantar y ejecutar ejemplos más complejos. Luego quedará en cada uno ir profundizando cada tema. Pero de esta manera tendrán los elementos para poder explotar el ecosistema de Node.js, que es tal vez el punto más fuerte que tiene. Por un lado, JavaScript es “una manteca”, de tan flexible. Lo que nos puede llevar líneas y íneas de código en .NET o en Java, en JavaScript es tan simple que nos lleva a pensar: ¿Cómo podíamos programar antes con otros lenguajes? Pero esa flexibilidad nos recuerda a Peter Parker: un gran poder conlleva una gran responsabilidad. De ahí mi recomendación de usar TDD para el desarrollo con una tecnología tan flexible.

Espero que pueda transmitir todo eso en un solo día. Me va a servir de excusa para visitar Rosario, en la provincia de Santa Fe, a la que no voy desde Abril de 2009 (a dar un curso de Scrum,  de nuevo gracias al MUG).

Nos leemos!

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

Nueva Reunión de Node.js Argentina en Buenos Aires: Node.js, MongoDB y Socket.io

Tuesday, November 13th, 2012

Se viene una nueva reunión del grupo Node.js Argentina, en Buenos Aires, el próximo viernes 23 de Noviembre, de 19 a 22 hs. Más detalles en:

http://www.meetup.com/NodeJS-Argentina/events/87806192/

Leo ahí:

Charla "Node, Mongo y Socket van al espacio" por Leonardo Otero

Es común ver pequeños ejemplos y proyectos mostrando el uso de diversos módulos de tecnología Node.js, pero no abundan todavía
ejemplos de integración de múltiples módulos aplicando buenas prácticas que nos ayuden a estructurar mejor nuestros proyectos, algo
tan necesario a la hora de afrontar la construcción de una aplicación real. Resulta aun mas complicado encontrar buenos ejemplos que
integren la potencia de Node.js con técnicas de animación gráfica en el browser. Es por eso que Leonardo Otero nos dará una charla sobre un
proyecto abierto y público con el que podremos experimentar, participar y entretenernos intentando completar una misión en Marte utilizando Raphael.js, Socket.io, Express.js, Mongoose.js y MongoDB.
A lo largo de la charla abordaremos los beneficios de la persistencia en un modelo no relacional y algunas de sus dificultades. También veremos como comunicar en forma eficiente nuestro servidor Node.js con el browser donde presentaremos contenido gráfico, interactivo y escalable. La última parte de la charla estará destinada a desafiar a los participantes invitándolos a opinar sobre la arquitectura empleada, proponer mejoras, alternativas a la misma e incluso poniendo manos a la obra para agregar nuevas funcionalidades.

El proyecto estará en un repo publico de Github el día de la charla.

Tertulia (dudas, consultas, conocernos, etc)

El disertante será el bueno de @leonardo_otero que ya apareció en este blog en Reunión de Emprendedores Informáticos.

Post relacionados:

Primer Meetup de Node.JS Argentina en Buenos Aires
Presentando Node.js
Nueva Meetup de Node.Js Argentina en Buenos Aires
Presentación de Express en Node.js Argentina Meetup por @dzajdband

Yo, mientras, estoy preparando el tema de aplicaciones distribuidas en Node.js (no sé donde darlo todavía, pero ya va a aparecer ;-). También espero dar un seminario de un día en el Microsoft User Group de Argentina, sede Buenos Aires, sobre Node.js desde 0.

Nos leemos!

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

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

Thursday, November 1st, 2012

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