Primera aplicación web en RaspberryPi con NodeJS + CylonJS. Controlando LEDs desde el móvil

raspi-cylon-nodeEn este tutorial vamos a implementar una WebApp que controle 3 LEDs de colores conectados a los pines GPIO de la RaspberryPi. Utilizando para ello JavaScript a troche y moche.

Necesitaremos una RaspberryPi, con Raspbian instalado, la red configurada y con el framework CylonJS y los pines GPIO activados. Esto lo podéis consultar en la anterior entrada. Como materiales adicionales necesitaremos 3 LEDs de colores (Rojo, amarillo y verde por ejemplo) y 3 resistencias (por ej. de 470 ohms) para protegerlos. También unos cables para conectar los Leds a los pines GPIO.

Continue reading…

Programando en Node.js con RaspberryPi. Primeros pasos

Hace unos días me llegó al fin el micro-controlador Tessel.io en el que puedes programar en JavasScript de forma nativa y del que ya os hablaré más adelante. Esto hizo que me entraran ganas de desempolvar la Raspberry Pi que tengo desde hace año y medio e investigar si podría hacer algo con Node.js en esta plataforma.

cylonjsNavegando di con una fantástica librería OpenSource llamada CylonJS que está diseñada para prácticamente todas las placas y micro-controladores del mercado (RaspberryPi, el propio Tessel, Arduino, BeagleBoard, etc…) y nos permite programar en JavaScript en todas estas plataformas y utilizar diversos drivers (LEDs, Servomotores, etc…) de una forma sencilla.

Me propuse el reto de crear una API que permitiera encender/apagar 3 LEDs de colores conectados a los pines GPIO de la RaspberryPi, utilizando el framework CylonJS para acceder a esos puertos y ExpressJS para crear el servidor web y poder controlarlos desde una webapp.

A continuación muestro los pasos a seguir para configurar nuestras RaspberryPi para trabajar con Node.js y CylonJS desde la instalación del sistema operativo hasta las dependencias de Node.js via NPM. Vamos allá. Continue reading…

Cómo instalar un Servidor HTTPS en Nginx desde cero

nginx https sslCuando en nuestra web o aplicación necesitamos tratar con datos sensibles como pueden ser tarjetas de crédito, cuentas de usuario, etc, es recomendable disponer de un certificado SSL en nuestro servidor para utilizar el protocolo HTTPS (Http Seguro) en lugar del HTTP normal. De esta manera, nuestros datos viajan encriptados en la aplicación y es mas difícil que sean “escuchados” por otros.

Para el proyecto que estamos llevando a cabo mi compañera Paola y yo, Chefly (Del que pronto empezaréis a oir) necesitamos disponer de HTTPS y tras pelearme un rato con su configuración conseguí ponerlo en marcha. Este tutorial espero que os ayude y os ahorre tiempo a la hora de implementarlo en vuestros servidores.

Continue reading…

Cursos Online interesantes para 2014

small-icon.hover

Con la llegada de la primavera comienzan nuevos cursos online (MOOCs) y nuevas versiones de otras ediciones. He estado paseandome por Coursera, Mejorando.la, Udacity, EdX, etc.. y he hecho una recopilación de los que me parecen más interesantes de cara a reforzar conocimientos y aprender nuevas habilidades. No se si me dará tiempo a aprovecharlos al 100% pero espero que si ;)

En Español

Curso Profesional de Frontend (Mejorando.la) - 3a Edición

  • Comienzo: 18 de Marzo
  • Duración: (2 semanas/ 3 días a la semana)
  • Precio: $29/mes

Curso Profesional de Backend (Mejorando.la) – 2a Edición

  • Comienzo: 1 de Abril
  • Duración: (2 semanas / 3 días a la semana)
  • Precio: 29$/mes

En Inglés

Entrepreunership 101: Who is your customer? - EdX / MITx

  • Comienzo: 18 de Marzo
  • Duración: 6 semanas
  • Precio: Free

Web Application Architectures – Coursera / University of New Mexico

  • Comienzo: 24 de Marzo
  • Duración: 6 semanas
  • Precio: Free

Engineering Software as a Service - EdX / UC BerkeleyX

  • Comienzo: 18 de Abril
  • Duración: 8 semanas
  • Precio: Free

Functional Programming Principles in Scala – Coursera / École Polytechnique Fédérale de Lausanne

  • Comienzo: 25 de Abril
  • Duración: 7 semanas
  • Precio: Free

Introduction to Computer Programming (Part I & II) – EdX / ITTBombayX

  • Comienzo: (Parte 1, 29 de Julio) (Parte 2, 23 de Septiembre)
  • Duración: 6 semanas cada parte
  • Precio: Free

Mobile Web Development – Udacity / Google

  • Comienzo: Acceso libre a Courseware
  • Duración: 12 lecciones
  • Precio: Free

User Experience for the Web - Open2Study

  • Comienzo: Acceso libre desde ya
  • Duración: 4 módulos
  • Precio: Free

¿Cuáles te parecen más interesantes? ¿Conoces alguno más?

LANNN el Stack en entornos de producción

box-01Anteriormente he hablado del Stack MEAN para el desarrollo de aplicaciones web, sustituyendo al clásico LAMP.

Hoy quiero hablaros de otro stack, más enfocado a entornos de producción, el llamado stack LANNN ¿Y qué significa esta palabrota? Es el acrónimo de Linux en AWS (Amazon Web Services) configurado con Nginx, Node.js y una base de datos NoSQL.

Continue reading…

Cómo configurar Nginx con Node.js en Producción

nodenginx¿Qué pasa si tienes un VPS o una instancia EC2 en Amazon Web Services y quieres tener varios procesos de Node ejecutándose?

¿Y si quieres servir la parte pública de una aplicación web por un lado y la parte Backend por otro?

Si corremos nuestra app Node en el puerto 80 para que sea accesible desde una IP o dominio, no podemos usar el mismo puerto con otro proceso. ¿Cómo podemos solucionar esto? con Nginx.

Nginx es un servidor web, al estilo de Apache pero orientado a eventos (como Node) y actúa como un proxy lo que nos permite redireccionar el tráfico entrante en función del dominio de donde vienen, hacia el proceso  y puerto que nos interese.

nginx como reverse proxy

En este tutorial veremos como configurarlo en una instancia Amazon de una manera muy sencilla. Vamos a ello!

Continue reading…

Cómo configurar un entorno de desarrollo virtual con Vagrant

VagrantSi desarrollas proyectos web, ya sea para ti solo o con un equipo de varias personas, te habrás dado cuenta que cada desarrollador tiene un entorno y hardware distinto, Unos son usan Windows, otros son más Linux, otros programan en un Macbook… Y entonces surgen las preguntas ¿Cómo instalo Node.js en Windows? ¿Como se instala MongoDB en Mac? Lo ideal sería que todos tuviesemos el mismo Sistema Operativo y con todo lo necesario instalado ¿Verdad? Pues eso y mucho más es posible con Vagrant, veamos como. Continue reading…

Desarrollo Full Stack JavaScript, también conocido como MEAN

mean_small_verticalCon el auge de AngularJS, una nueva corriente está surgiendo en el desarrollo en JavaScript de principio a fin. El llamado stack MEAN. Con desarrollo end-to-end nos referimos a utilizar JS en todas las partes que componen una aplicación web actual: Frontend, Backend y Base de Datos.

El acrónimo MEAN viene de (M)ongo + (E)xpress + (A)ngular + (N)ode Continue reading…

Videotutorial: Creación de una API REST con Node y MongoDB

Primer videotutorial que hago explicando y programando una API REST empleando Node.js en el servidor y MongoDB como base de datos. Este videotutorial se corresponde con el tutorial que publiqué hace unos meses en el blog sobre como crear una API Rest con Node. Espero que os sirva y os guste.

Os invito a subscribiros a mi canal de youtube, donde poco a poco iré colgando nuevos videotutoriales:

Se admiten comentarios para mejorar :)