Cómo configurar tu servidor cloud en DigitalOcean

digitalocean-IaasDigitalOcean es un IaaS (Infraestructura como Servicio) como pueden ser los servidores EC2 de Amazon Web Services, aunque a mi parecer son más sencillos de usar y la interfaz es mucho más limpia y clara.

También es mejor el precio, puedes tener un “droplet” que es como llaman aquí a las maquinas virtuales, igual que la estancia micro que te da gratis un año Amazon(luego cuesta alrededor de 16$ al mes), por 5$ al mes, y por 10$ al mes un “pepino” ;) Además son discos SSD, es decir, miel de romero!

En este tutorial voy a explicar como registrarse en DigitalOcean y configurar nuestro primer servidor Linux en el que poder desplegar nuestras aplicaciones Web. Continue reading…

Cómo implementar una API REST con MongoDB + Node.js usando Express v4

nodejs-mongodb-api

Hace algún tiempo publiqué un tutorial de como desarollar una API Rest en Node.js con el framework Express. Ese tutorial funciona perfectamente si usas la versión 3.x del framework, pero si vas a cambiar a la versión 4, hay algunas cosas que han cambiado. Es por ello que voy a explicar a continuación como hacer una API REST para vuestras aplicaciones web desde cero, utilizando para ello la versión 4 del framework más usado de Node.js, Express. Continue reading…

Automatizando tu flujo de trabajo en el Frontend con GulpJS

gulp-jsGulpJS es un automatizador de tareas escrito en JavaScript y que corre bajo Node.js que sigue la misma filosofía que Grunt. GulpJS mejora en cuanto facilidad de programación y rapidez a la hora de ejecutar las tareas. Si has usado Grunt, creo que verás que la sintaxis para declarar tareas es mucho más entendible que la del propio Grunt.

En este artículo mostraré un Gulpfile básico en el que declararemos varias tareas habituales que solemos hacer en el Frontend (minificar CSS, JS, etc…) que nos solucionarán la vida. Si aún no has probamos un automatizador de tareas, prepárate para descubrir un mundo nuevo :D Continue reading…

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…