Alta disponibilidad de Internet con Linux (i)

En unos firewalls con Linux hay infinitas maneras de intentar conseguir alta disponibilidad de salida a Internet, aunque todas tienen sus inconvenientes. Voy a contar un ejemplo combinando Conntrack, Iptables, Corosync, Pacemaker y un script inspirado en la solución de amperis.

Una de las soluciones que primero se vienen a la cabeza es utilizar un algoritmo de pesos con ip route según la relación de velocidad de los proveedores contratados o nuestras preferencias, configurando una ruta por defecto multicamino. Pero esto pronto empezará a dar problemas en según qué conexiones o aplicaciones al encontrarse que según qué paquetes les llegan por distintas IP públicas, como las páginas de los bancos. Y aunque la lógica de dividir el tráfico entre proveedores también puede hacerse con iptables y el módulo statistic, no se evita el problema del multicamino.

Justo acabo de mencionar a iptables […] (continuar leyendo)

Recargando un servidor de Node.js con WebSocket

Un sencillo servidor corriendo sobre Node.js puede permitir la recarga sin interrupciones, de manera amistosa, algo parecido al reload de Apache u otros demonios en Linux. Para ello sólo es necesario que haya un proceso padre que lance hijos y les envíe señales según sea necesario. Sin embargo el cierre de las conexiones esperando a que estas terminen puede dar algunas complicaciones cuando hay un WebSocket.

La gestión de padre e hijos se puede hacer con el módulo cluster. En este ejemplo el script a lanzar manualmente es master.js. Él a su vez lanzará al script server.js y le pasará las señales SIGHUP para recargar el servidor (terminar amistosamente) o SIGTERM para terminar sin piedad.

master.js:

'use strict';
var cluster = require('cluster');
const path = require('path');
cluster.setupMaster({
exec: path.join(__dirname, 'server.js')
});
//fork the first process
cluster.fork();
process.on('SIGHUP', function () {
var new_worker = cluster.fork();
new_worker.once('listening', function () {
//stop all other workersS
for (var id in cluster.workers) {
if (id === new_worker.id.toString()) continue;
cluster.workers[id].process.kill('SIGHUP');
}
});
}).on('SIGTERM', function () {
for (var id in cluster.workers) {
cluster.workers[id].process.kill('SIGTERM');
}
});

[…] (continuar leyendo)

Actualizar DNS de cPanel desde Bash

Hoy Dyn ha dejado de prestar de manera gratuita su servicio de DNS dinámico. Avisaron con un mes de antelación y yo que ya llevaba tiempo dándole vueltas a cómo poder utilizar un dominio y un hosting propio para eso, me puse a investigar y tuve suerte.

En los foros de cPanel encontré un mensaje con un script en Bash para actualizar desde consola nuestros registros DNS —que por motivos de licencias no puedo reproducir aquí—. Utiliza la api de cPanel para gestionar los dominios y es ideal por ejemplo para crearnos un subdominio y llamar al script periódicamente desde el cron de una máquina con Linux. Incluso una Raspberry Pi con una distribución a medida, al no necesitar de librerías extrañas. Está bien pensado, comprobando en cada ejecución si la IP actual es la misma que la anterior para ahorrar actualizaciones innecesarias y hasta puede mandar un correo electrónico en caso de errores.

La configuración para un ejemplo podría ser:

CONTACT_EMAIL="perico@delospalotes.com"
DOMAIN="delospalotes.com"
SUBDOMAIN="micasa"
CPANEL_SERVER="cpanel.delospalotes.com"
CPANEL_USER="usuario de cpanel"
CPANEL_PASS="contraseña de cpanel"

Y fuera dependencias de servicios de terceros.

Bandadas de Twitter

A veces lo llamo el pajarito azul y otras el pajarraco azul. Según los motivos que me dé. Prefiero ser neutral y dejarlo en pájaro o sencillamente en el nombre comercial del que dicho pájaro es logotipo: Twitter.

Me hice una cuenta a finales de 2008, motivado por una promoción del registrador de dominios NameCheap. A pesar de que a comienzos de ese año le estuve dando vueltas pero no acaba de encontrarlo útil —nunca he sido un visionario—, en estos más de tres años he acabado por encontrarle provecho. Sobre todo a raíz de venirme a Madrid. Ciudad de la que a través de Twitter he recibido buenos consejos, ideas, alguna amistad y hasta gente interesada o maleducada. Porque en Twitter, como en todos sitios, en Badoo, y en lo que fue el messenger «hay gente pa tó» —sea de quién sea la expresión.

El fuerte crecimiento de Twitter vino gracias al uso por parte de los famosos. Una vía sencilla y directa de comunicación con su público. Normalmente sólo en vía descendente, de famoso a fan. Unas veces tan bien usada para hacer publicidad y otras tan desafortunada para meter la pata, o bien hacer una campaña publicitaria sin importar el honor ni el qué dirán mientras se hable de ello. […] (continuar leyendo)

Red social con memoria

Nos contaba un amigo que ha vuelto a Tuenti. Hacía dos años que eliminó su cuenta pero algún ataque de nostalgia o cotilleo repentino de alguna le debe de haber dado. No se acuerda de la contraseña, hace el proceso de cambiar la contraseña, indica una nueva, accede y ¡sorpresa! Tuenti se acuerda de su nombre, sus mensajes, sus amigos. Y tampoco se ha olvidado de sus fotos. Con el «su» no sé si referirme a mi amigo o a Tuenti.

Con esto he sentido curiosidad por un lado de ver qué pasaría en mi excuenta. Pero soy un cobarde. Lo reconozco. Tanto casi como esa gente que dice que pasa de redes sociales pero sin saberlo también está engancha. Sin embargo me he prometido que para la próxima red social de la que me eliminase tomaría antes unas medidas aunque posiblemente inútiles. Lo borraría todo y rellenaría los datos con algo diferente. Con los mismos detalles que para la siguiente en la que osase inscribirme tuviera. Estos los puedo resumir en una imagen de perfil de un muñeco dibujado por mi con cuatro trazos y el nombre de Benito Camelos.

Google homenajea y nos recuerda (para España) a Santiago Ramón y Cajal

Doodle de Google sobre Santiago Ramón y Cajal

Doodle de Google sobre Santiago Ramón y Cajal

Hoy 1 de mayo los de Google rinden homenaje al nacimiento hace 160 años de Santiago Ramón y Cajal con un doodle. Quien no sepa quién fue este hombre que se lo haga mirar.

El caso es que este movimiento de Google tiene dos curiosidades desde mi particular y enrevesado punto de vista. Me parecen estupendos estos homenajes, pero por una parte parece que sólo los usuarios de Google España vemos este tributo en el logotipo, a diferencia de cómo habitualmente Google nos pone doodles en honor a personas que ni nos van ni nos vienen en España. Y por otra parte que si no fuera por lo que ha puesto hoy Google mucha gente sólo estaría hablando de manifestaciones ignorando tal nacimiento.

 

Lado del cliente

Cuando me preguntan acerca de mi preferencia personal por las aplicaciones programadas en su mayoría en el lado del servidor sigo sin saber dar una respuesta. Puedo dar un capazo de razones sobre accesibilidad, confiabilidad, consistencia, estandarización, seguridad y demás, pero el motivo por el que un día la balanza del aprender se volcó hacia el lado del servidor no lo tengo muy claro.

Estos días me lo he estado preguntando a diario, ahora que como algún día temía, he llegado a la situación de que sobre lenguajes en el lado del cliente apenas tengo idea y parezco un papanatas en el desarrollo de aplicaciones web. Casi no recuerdo nada de JavaScript y cuando me encuentro AJAX, jQuery o Mootools siento un escalofrío porque no tengo ni idea de cómo se programa en ellos.

La ignorancia en el asunto […] (continuar leyendo)