Interzonas es un paraguas donde se da cabida a proyectos y personas diversas
Distintos ritmos e implicaciones, como la vida misma
(Algunos no saben ni que son de Interzonas)
15 años desarrollando y gestionando proyectos web
El objetivo de Node.js es proporcionar una manera fácil de construir programas de red escalables
Node.js es inventado por Ryan Dahl en el verano del 2009 trabajando en Joyent. Ahora el proyecto lo lidera TJ
Stable is "stable" Untable moves fast
El resultado es que la mayoría de bibliotecas Node.js funcionan con esta filosofía. Puedes elegir las bibliotecas Node.js arbitrarias y combinarlas en el mismo programa sin ni siquiera tener que preocuparte en lo que estás haciendo
"¿Por qué ir a Facebook y hacer PHP cuando se puede ir a PayPal y hacer Node.js" - Bill Scott - Dir UX PayPal
// E/S Bloqueante
var urls = db.query("select * from urls"); //esperar
urls.each(function(url){
var page = http.get(url); //esperar
save(page); //esperar
});
// E/s No bloqueante, petición asincrona
db.query("slect * from urls", function(urls){
url.each(function(url){
http.get(url, function(page){
save(page);
});
});
});
Imprescindible charla de Jeff Miccolis que con ejemplos explica por qué php y drupal es un infierno en según qué ciscunstancias y en node.js es fácil
$addresses = array(
'jeff@mapbox.com',
'alex@mapbox.com',
'eric@mapbox.com'
);
$message = 'I am writing to inform you of a...';
$count = 0;
foreach($addresses as $sucker) {
if (mail($sucker, 'New opportunity', $message)) {
$count++;
};
}
echo "$count messages sent";
var mail = require('mail');
var addresses = [
'jeff@mapbox.com',
'alex@mapbox.com',
'eric@mapbox.com'
];
var message = 'I am writing to inform you of a...';
var count = 0;
addresses.forEach(function(sucker, i) {
mail(sucker, 'New opportunity', message, function(err) {
if (!err) { count++; }
if (i == addresses.length - 1) {
console.log(count +" messages sent");
}
});
});
// Attempt to send email.
if (mail($sucker, 'New opportunity', $message)) {
$count++
};
// Once email is sent, get the next address.
echo 'next';
// Attempt to send email.
mail(sucker, 'New opportunity', message, function(err) {
if (!err) { count++; }
});
// Don't wait, get the next address NOW.
console.log('next');
var fs = require('fs');
fs.readFile('/etc/passwd', function (err, data) {
if (err) throw err;
console.log(data);
});
var request = require('request');
request('http://example.com', function (err, resp, body) {
if (!err && resp.statusCode == 200) {
console.log(body);
}
});
How-to: Este tweet va a sonar @ Summer of Labs (ZAWP - Bilbao) from Tabakalera on Vimeo.
var twitter = require('ntwitter');
osc = require('omgosc');
var twit = new twitter({
consumer_key: "",
consumer_secret: "",
});
movida['broadcast'] = true;
var sender = new osc.UdpSender('10.51.51.255', 7777, movida);
twit.stream('statuses/filter', {track:'mod8'}, function(stream) {
stream.on('data', function (data) {
var palabras = text.split("");
for (var i = 0; i palabras.length; i++) {
var text = data.text;
var palabras = text.split(" ")
for (var i = 0 i text.length i++) {
sender.send("/osc_data", "s", [text[i]]);
};
sender.send("/numero", "i", [text.length]);
};
});
stream.on("error", function (response) {
console.log(response);
});
});
npm install mundo
Npm es la herramienta fundamental para el manejo de dependencias o módulos en Node.js
npm init //Mediante un asistente crea el fichero package.json
npm search //busca en registro search.npmjs.org
npm info //obtener info del paquete
npm outdated //busca si hay versiones instalados en el directorio actual
npm help //Para el resto
{
"author": "Dean McNamee ",
"name": "omgosc",
"version": "0.1.0",
"repository": {
"type": "git",
"url": "git://github.com/deanm/omgosc.git"
},
"contributors": [
{
"name": "Oier Bravo Urtasun",
"email": "oierbravo@gmail.com"
}
],
"main": "./omgosc"
}
//Crear usuario
npm adduser username pass email
//Publicar paquete
npm publish
Paquetes totales: 64.682
8.235.185 descargados en el último día
33.419.745 descargados en la última semana