Permalink

0

Batalla BLUEMIX & NODE.JS

600x315 - web banner+

Seis semanas, seis desafíos y un gran premio en efectivo de €1,000  en la Batalla Bluemix y Node.js, únete inmediatamente y demuestra al Mundo tus conocimientos de Node.

Seis semanas, seis retos para manipular el IBM Bluemix SDL en la Batalla Bluemix y Node.js. Cada miércoles un Nuevo reto te permitirán mostrar tus conocimientos y te llevará mas cerca al liderazgo global.

Un SmartPlane es ofrecido cada semana. Si tu eres ese guerrero, únete a nosotros.

Permalink

0

Concurso Javascript para adictos a Node.js

Concurso JavaScriptGana 2000 € en CoderPower

Comienza la nueva temporada del Concurso Javascript en CoderPower. Para su 3ª colaboración con IBM, CoderPower te propone crear, función a función, un motor de búsqueda predictivo en entorno Node.js. Desarrolladores, tenéis hasta el 28 de octubre para remangaros y lanzaros a esta competición de “speed-coding” con 6 desafíos cronometrados. El participante con más talento ganará 2200 USD (o sea, ¡2000 €!).

Estad atentos: los resultados se publicarán en la clausura del concurso.

¡Si estás listo para competir, es aquí!

Permalink

0

Introducción a Fly JS

fly

En esta oportunidad vamos a introducir Fly JS, una nueva herramienta de automatización en la misma vena de gulp, Grunt, etc., es ES6 y una interfaz más moderna.

Fly fue diseñada desde el primer día con la misión de aprovechar las nuevas características de ES6 y ofrecer una alternativa fácil de aprender con una API para plugins más simple.

Fly soporta cualquier versión de node, pero necesita polyfills para promesas y generadores si tu node es inferior a 0.12. Fly corre en Windows, Linux y OS X.

Similar a gulp, Fly favorece código sobre configuración, y te permite expresar tareas metafóricamente como un flujo de datos que tiene un origen y un destino compuesto por filtros, pero la implementación esta basada en promesas.

Fly puede ejecutar tareas en serie o paralelo.

También puedes saltar al ScreenCast.

Para empezar, vamos a proceder a instalar Fly y ejecutar una tarea sencilla:

1. Primero creamos un directorio de ejemplo:

mkdir try_fly
cd try_fly/

2. Iniciar un nuevo proyecto de node e instalamos Fly:

npm init 
...
npm i fly

3. Comprobamos que la instalación ha sido un éxito:

fly -h

Si no tienes acceso al comando fly es debido a que node_modules/.bin no se halla en tu $PATH. Puedes entonces añadir en POSIX shell PATH=$PATH:node_modules/.bin o fish set PATH $PATH node_modules/.bin o simplemente instalar fly globalmente con npm i -g fly.

4. Procedemos a escribir una tarea sencilla, por ejemplo crear una copia de un directorio:

$EDITOR flyfile.js

Puedes escribir Flyfiles en ES5/6/7 así como otros derivados de JavaScript.

ES5

exports.default = function* () {
  yield this
    .source("secret")
    .target("backup")
}

ES6

export default function* () {
  yield this
    .source("secret")
    .target("backup")
}

5. No olvidemos crear el archivo secret que queremos copiar:

echo 42 > secret

6. Chequea que todo está en orden y Fly puede leer nuestras tareas correctamente:

fly -l

Available Tasks
  default

7. Corre Fly:

fly
[23:51:52] Flying with /Users/$USER/.../try_fly/Flyfile.babel.js...
[23:51:52] Starting "default"
[23:51:52] Finished "default" in 14 ms

8. Confirma que el archivo fue copiado al directorio backup:

cat backup/secret
42

9. Fin. Mira la documentación / wiki para aprender como escribir Flyfiles más complejos :)

En la próxima entrega, vamos a explorar Fly con más profundidad e introducir el API para plugins.

Acerca de Generadores y Tareas

Tareas en Fly se describen como generadores, de la forma function*. Igual que otras funciones, una función generador corre de arriba hacia abajo, pero se pueden pausar, ceder control a otra función y posteriormente continuar.

Esta cualidad es manipulada utilizando yield y el objeto iterator que cualquier generador retorna la primera vez que es ejecutado. De modo que en escencia, un generador es un constructor de iteradores.

En Fly no es necesario utilizar estos complejos objetos iteradores, pero si utilizamos yield para ceder control a Fly y asi ejecutar tareas asíncronas sin bloquear al node. La ventaja de utilizar esta sintaxis es que podemos escribir código que parece síncrono, pero en realidad es asíncrono y también nos permite escapar del llamado callback hell.

Screencast


Autor del articulo:

Jorge Bucaran