viernes, 30 de octubre de 2015

Hoy, nos llego la mala noticia de que una compañera de trabajo sera operada de un tumor en el cerebro como resultado de una metastasis de un cáncer previo de pulmón.

Esto me motivó a buscar más información sobre la enfermedad dado que soy muy escéptico de los procedimientos modernos para su tratamiento como lo son las quimioterapias, radioterapias, fármacos y terapias que a mi parecer no son nada eficientes en la lucha contra esta enfermedad.

Rápidamente daré una opinión, considero que la industria farmacéutica moderna se ha alejado mucho del bienestar y la salud humana, por razones económicas (son un imperio capital) y sociales (apoyan el hecho de contrarrestar la sobre población en el mundo); siendo más importante un tratamiento excesivamente costoso, manteniendo al enfermo sin una cura definitiva, que el hecho de colaborar ética y profesionalmente con el bienestar de la población mundial.

Los fármacos se componen de elementos químicos y naturales, no son mágicos, en su mayoría contienen propiedades de alguna hierba o planta, cuyos conocimientos curativos van quedando en el pasado, en la mente de nuestros abuelos y antepasados.

--------------------------------------------------------------------------------------------------------------------

Se que en la internet se encuentran informaciones reales y falsas, acertadas y erradas, sin embargo, creo haber encontrado dos sugerencias importantes para el tratamiento del cáncer que me gustaría compartir con ustedes, son las siguientes:



- Aumentar el oxígeno en el cuerpo, dado que actúa como un gran potenciador del sistema inmunológico, haciendo más fuertes a tus combatientes internos.



- Eliminar durante el diagnostico de la enfermedad todos los alimentos cocidos (ya que colaboran con la proliferación de la enfermedad) y adoptar una dieta de alimentos frescos y crudos estricta (alimentos vivos, no muertos en teoría), eliminando todo tipo de carnes, granos y grasas cocidas, como lo sugiere uno de los enlaces en el anexo.

Finalmente, me parece muy oportuno que se amplíen las posibilidades, se investigue y se profundicen las investigaciones de tratamientos alternativos a la enfermedad, dejando entre las últimas opciones las quimioterapias, radioterapias, propuestas por la industria farmacéutica multibillonaria, cuyo resultado es la destrucción del sistema inmunológico. Algunos enlaces sugeridos:
http://www.cancernaturalcure.com/cure.htm

http://noticias.starmedia.com/ciencia-salud/oxigeno-cura-para-enfermos-con-cancer.html

http://www.periodismo.com/2014/01/27/cancer-una-hierba-mata-el-98-de-las-celulas-malignas/

http://www.semana.com/vida-moderna/articulo/se-encontro-una-cura-para-el-cancer/430100-3

domingo, 4 de octubre de 2015



MONGODB INSTALL

Versión Ubuntu local
lsb_release -a

Pasos previos en ubuntu

Importar la llave pública
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

Crear una list file para MongoDB (ubuntu 14.04)

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Reload local package database
sudo apt-get update

Install la última versión estable de MongoDB
sudo apt-get install -y mongodb-org

Mover la instalación de MongoDb a otra ruta en Ubuntu
sudo service mongod stop sudo mv mongodb /new/disk/mongodb/ sudo ln -s /new/disk/mongodb/ /var/lib/mongodb sudo chown mongodb:mongodb /new/disk/mongodb/ sudo service mongod start # test if mongodb user can access new location: sudo -u mongodb -s cd /new/disk/mongodb/ # resolve other permissions issues if necessary sudo usermod -a -G mongodb

Iniciar el servicio de MongoDB
sudo service mongod start

Iniciar el servicio de MongoDB con archivo de configuración
mongod --config /etc/init/mongod.conf (Ejemplo unix server)

Conexión remota a mongo
mongo --host --port 27017

Instalar Nmap en Unix
apt-get install nmap

nmap -sT -O -localhost

Verificar puertos abiertos disponibles con nmap en Unix
nmap -sT -O -localhost

MONGODB COMANDOS RUTINARIOS

Crear Base de datos use Nombre_Base_Datos

Mostrar las bases de datos existentes

show dbs Crear usuario:
use db.createUser( { user:"luiseliberal", pwd:"s1zha8to", roles: [ {role:"userAdminAnyDatabase", db:"admin"}, "readWrite" ] })

otro ejemplo de creación de usuario:

use db.createUser( { "user" : "luiseliberal", "pwd": "xxxxxxx", "roles" : [ { role: "clusterAdmin", db: "admin" }, { role: "readAnyDatabase", db: "admin" }, "readWrite" ] }, { w: "majority" , wtimeout: 5000 } )

Ver usuarios existentes:
show users

Otorgar autorizaciones
use db db.auth({user:"usuario",pwd:"password"})

Remover Usuarios
use db , db.dropUser("usuario")

Crear tabla e Insertar Datos
use db
use table
db.table.insert({id:1, nombre:"cualquier", propiedades:["uno", "dos"], arreglo:[{a:"", b:"", c:90}] })

Buscar (queries de consulta)
Traer todos los objetos: db.[NOMBRE_BASE_DATOS].find()

Búsqueda por criterio: db.products.find( { qty: { $gt: 25 } } )

Búsqueda por equivalencia: db.bios.find( { _id: 5 } )

Búsqueda usando operadores retornando si el id es 5 o se encuentra el object id en este caso: db.bios.find( { _id: { $in: [ 5, ObjectId("507c35dd8fada716c89d0013") ] } } ) Búsqueda por rango: db.collection.find( { field: { $gt: value1, $lt: value2 } } );





Remover la instalación de MongoDB en Ubuntu
sudo apt-get autoremove mongodb-*


jueves, 11 de junio de 2015



PUBLICACIÓN DE MODULOS EN NODE

npm login
npm publish



APP DE EJEMPLO NODE EXPRESS - CONNECT - MONGO


Requerimientos:
- Tener instalado nodejs/npm.


PRIMER PASO - EXPRESS:
- Ejecutar comando siguiente: npm i -g express
- Ubicarse en la carpeta destino y ejecutar el comando: express default (este crea un esqueleto de carpetas y archivos predefinidos para una app).
- Ejecutar el siguiente comando: express -c stylus -e exp-styl-ejs (instala el preprocesador de css)


EJEMPLO DE AUTENTICACION EN NODE JS

/** MIDDLEWARE LOGIN
TIP: Iniciar el servidor de autenticador con NODE_ENV='ambiente(desa,prod)' node Autenticador **/


var connect = require('connect');
var app = connect();

function loggerHello(req, res, next){
foo();
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World Pana');
}

function logger(req, res, next){
//res.setHeader('Content-Type', 'text/plain');
//res.end('Este es el logger');
console.log('#logger en acción', req.method, req.url); next(); } function logger(req, res, next){ console.log('Iniciando... ', req.method, req.url); next(); } function authWithDB(user, pass, cb){ if(pass !== 'luis15'){ return cb('Credenciales incorrectas.');
}
cb();
}

function restrict(req, res, next){
var authorization = req.headers.authorization;
if(!authorization){
return next(new Error('No autorizado'));
}

var parts = authorization.split(' ');
var scheme = parts[0];
var auth = new Buffer(parts[1], 'base64').toString().split(':');
var user = auth[0];
var pass = auth[1];

authWithDB(user, pass, function (err) {
if(err){
return next(err);
}
next();
});
}

function admin(req, res, next){

console.log('ACCEDIENDO A: ',req.url);

switch(req.url){

case '/':
res.end('try /users');
break;

case '/users':
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(['Luis', 'JoseLuis', 'Jp']));
break;
}
}

function errorHandler() {

var env = process.env.NODE_ENV || 'desarrollo';
return function (err, req, res, next){
res.statusCode = 500;

switch (env){

case 'desarrollo':
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(err));
break;
default:
res.end('Server error');
}
};
}

app
.use(logger)
.use('/admin', restrict)
.use('/admin', admin)
.use(loggerHello)
.listen(3000);



EJEMPLO DE ORDENAMIENTO DE CALL BACKS EN NODE JS CON LA LIBRERIA ASYNC

var async = require('async');

async.waterfall([

function (cb){
artist.findEvents('Miley', cb);
},
function (concert, cb){
concert.findTickets({price: {$lt: 100}}, cb);
},
function (tickets, cb){
tickets.purchase({cc: 424242424242}, cb);
},
function (transaction, cb) {
email.confirm(customer, transaction, cb);
}
],

//FUNCTION RETORNO
function (null, status){
if(err){
res.send(err);
return false;
}

res.send({
tickets: 'purchased'
});
}
);//FIN WATERFALL

//PATRON PROMISES DE COMMONJS - promises-aplus.github.io/promises-spec/
artist.find('Miley')
.findEvents({city: 'Bogota'})
.findTickets({price: {$lt: 100}}, cb);
.purchase({cc: 424242424242}, cb);

.then (function(transaction) {
customer.transaction = transaction;
return customer.save();
})

.then (function (customer, transaction) {
return email.confirm(customer, transaction);
})

.then function(){
res.send({
tickets: 'purchased'
});
},

function (err) {
console.log('Ha habido un error', err);
}
);

EJEMPLO DE CALL BACKS DESORDENADOS

function startExecution() {
doSomethingAsync(function(error, result) {
doSomethingElseAsync(function(error, result) {
moreAsync(function(error, result) {
evenMoreAsync(function(error, result) {
// ... I think you got it
});
});
});
});
};

miércoles, 10 de junio de 2015



Librerías Clave en Node.js

Las librerías a continuación no son las únicas que existen, y no son camisa de fuerza; tu puedes usar las librerías que quieras y que se ajustan más a tus necesidades en https://npmjs.org/ encontraras muchos paquetes que puedes usar con su respectiva información.

Librerías globales SUPERVISOR https://github.com/isaacs/node-supervisor

$ npm install -g supervisor

Cuando estamos trabajando en Node es necesario tener que compilar el código cada vez que hacemos un cambio.

SUPERVISOR reinicia la aplicación ante cualquier cambio, con la ventaja de que al ocurrir cualquier error en nuestro código, el servidor continúa su ejecución; al producirse un error, “supervisor“ avisará en la consola y mantendrá el servidor siempre despierto.

NODE-INSPECTOR
https://github.com/node-inspector/node-inspector

$ npm install -g node-inspector

Node-Inspector es una interfaz de depuración de Node.js utilizando las herramientas de desarrollo Blink (ex WebKit Web Inspector).

El depurador Blink es una gran interfaz depuradora de javascript, que funciona igual de bien para Node. Nodo Inspector es compatible con casi todas las características de depuración de DevTools.

- Navegar en los archivos de origen
- Establecer puntos de interrupción
- Interrumpir en excepciones
- Continuar a la ubicación
- Desactivar / activar todos los puntos de interrupción
- Inspeccione ámbitos, variables, propiedades de objeto
- Editar las variables y propiedades de objeto


Debugging con node-inspector

1. En la terminal escribimos
$ node —debug ruta/a/tuprogram.js
2. Vamos a http://127.0.0.1:8080/debug?port=5858 en Chrome
Listo debería poder verse la fuente javascript de Node.

FOREVER

https://github.com/nodejitsu/forever

Este la forma de correr demonios en Node, es una herramienta CLI para asegurar que un paquete determinado de node se ejecuta continuamente.

$ npm install -g forever

Nota: Para instalar forever se debe ser el administrador (sudo)

Hay dos formas distintas de utilizarlo siempre: a través de la interfaz de línea de comandos, o exigir el módulo para siempre se ejecute en su propio código.

Nota: Con FOREVER podemos mantener en constante ejecución a node-inspector, y si queremos cambiarlo de puerto.

Librerías locales UNDERSCORE
http://underscorejs.org/

$ npm install underscore --save

Underscore.js es una biblioteca de utilidades para JavaScript que proporciona apoyo a los sospechosos habituales funcionales (each, mapa, reducir, filtros ...) sin extender cualquier objeto de JavaScript.

SWIG
http://paularmstrong.github.io/swig/

$ npm install swig --save

Es un motor de plantillas basado en Node y Javascript; al igual que en Django en los templates se trabaja con Tags {% %} y Filtros {{ }} para construir las plantillas.
Ej.
{% block title %}Backend pro{% endblock %} {% block head %} {% endblock %} {% block content %}{% endblock %} Luego de construir la plantilla se renderiza en el server.

1. Requiere el paquete swig en el servidor.
swig = require('swig'); 2. Construir la vista del motor, para renderizar tu plantilla
server.engine('html', swig.renderFile ); 3. Renderizar los templates
server.set('views', './app/views');

Nota: Se esta usando Swig con Express.

CONNECT-REDIS
https://github.com/visionmedia/connect-redis

$ npm install connect-redis –save
Es un paquete de Node que sirve para almacenar sesiones de Redis soportado por node_redis y es increíblemente rápido.

lunes, 8 de junio de 2015



INTRODUCCIÓN A NODEJS

Node debe ser utilizado para aplicaciones en tiempo real básicamente.

Requerimientos:

- NodeJs Descargar - Sublime Text (opcional) Descargar

INSTALACIÓN DE NODE JS

Instalación de Nodejs en Windows, Mac y Linux

Windows
Paso 1: Ir a http://nodejs.org
Paso 2: Descargar el archivo
Paso 3: Instalar NodeJs
Paso 4: Buscar en sus programas instalados: "Node.js Command Prompt"
Paso 5: Teclear node -v para comprobar que se instalo

Deberan tener v0.8.x

Mac

Paso 1: Ir a http://nodejs.org
Paso 2: Descargar el archivo
Paso 3: Instalar NodeJs
Paso 4: Abrir el programa "Terminal"
Paso 5: Teclear node -v para comprobar que se instalo

Deberan tener v0.8.x

Ubuntu

Paso 1: Abrir la terminal
Paso 2: Instalar dependencias así:
> sudo apt-get install build-essential git-core libssl-dev libssl0.9.8Paso 3: Descargar Node
> git clone git://github.com/joyent/nodeDespués entra al folder que acabas de descargar con:
> cd node
Paso 4: Pasar a NodeJs 0.8.4
> git checkout v0.8.4 Paso 5: Compilar e instalar NodeJs
> ./configure
> make
> sudo make installPaso 6: Teclear node -v para comprobar que se instalo

Deberan tener v0.8.x

Node puede estar presente en cualquier carpeta de tu ordenador, como contenedor de apps, solo necesitas un archivo .js y un package.json con la información de la app, ejemplo:

{ "name": "NombreDeTuApp", "version": "0.0.1", "dependencies": { "express" : "3.0.3", "jade" : "0.27.7", "consolidate" : "0.5.0", "socket.io" : "0.9.11" } }

Posteriormente, ejecutar comando: npm install y node instalará las dependencias(librerías) automáticamente...


Imagen 1: Uso de depedendencia xpress, como servidor.

PRIMER ARCHIVO - INICIO DE CONTENEDOR DE APLICACION NODE

EJECUTAR COMANDO DE CONSOLA: node + nombre de archivo

/**EJEMPLO 1 FIRST.JS **/

var http = require('http'); var fs = require('fs'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'image/png'}); fs.createReadStream('../assets/nodejs.png').pipe(res); }).listen(3000); console.log('Server running at http://127.0.0.1:3000');

--------------------------------------------------------------------------------

/** EJEMPLO MODULO PPAL **/

var luis = require('./myModule'); var info2 = require('./info2'); module.exports = { luis : luis, john: { name: 'John Liberal', songs: ['Jeremy', 'Black Hole Sun'], events: ['Beijing', 'Caracas'] }, pam: pam };
/** EJEMPLO INFO2 QUE CONSUME MODULO PPAL **/
var edad = 20; var estado = 'soltera'; function sing(){ console.log('lalalalalal'); } function cry(){ console.log('boo boo boo'); } function getArrested(){ console.log('arrestada'); } module.exports = { sing: sing, cry: cry, getArrested: getArrested, estado: estado };

-----------------------------------------------------------------

/** EJEMPLO LECTURA DE ARCHIVOS **/

/** SECOND.JS **/

var fs = require('fs'); var stream = fs.createReadStream('../assets/events.json'); //CODIFICANDO LOS CARACTERES DEL ARCHIVO A LEGIBLES stream.setEnconding('utf8'); //INICIANDO STREAM stream.on('data', function (chunk) { console.log(chunk); }); //FINALIZANDO STREAM stream.on('end', function () { console.log('finished'); });

-------------------------------------------------------------------

/** EVENTS.JSON **/

{"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }}
Subscribe to RSS Feed Sígueme en twitter!