Docker y la revolución de los containers

Docker es una plataforma open source para desarrolladores y sysadmin que permite crear, distriubuir y correr aplicaciones de forma consistente independiente de la configuración del OS y el harware que lo contenga. El proyecto Docker consiste de dos partes “Docker Engine” que es un runtime ligero y portable (lo que instalamos en nuestro servidor) con un conjunto de herramientas que nos permiten crear, iniciar y detener los contenedores. La otra parte del proyecto es “Docker Hub”, que es un repositorio en la nube a través del cual podemos compartir los contenedores que hemos creado, si es que así lo queremos. [Leer más]

¿Qué lenguaje aprender primero?

Esta es la eterna pregunta de todo novato y cuando es dicha en foros públicos por lo general es seguida por un largo debate entre “fundamentalistas” que parecen estar hablando más de religión que de una herramienta tecnológica. Desde que las computadoras comenzaron a llegar a las aulas universitarias se han probado diferente paradigmas de programación y con ellos diferentes implementaciones de dichos paradigmas en la forma de lenguajes de programación concretos. [Leer más]

Usando CouchDB en nuestro VPS

CouchDBes un sistema gestor de bases de datos orientado a documentos, similar a MongoDB y es una de las muchas alternativas NoSQLexitentes en el mercado. Es decir, los datos no están guardados en tablas y tuplas. Pongamos un ejemplo para entenderlo, imaginen que quieres tener un registro de usuarios, donde cada usuario tiene un nombre, un correo y su edad, cada “registro” (conjunto de nombre + correo + edad) pasaría a ser un documento diferente en una gran repositorio de documentos, independiente de todos los demás. [Leer más]

iftop el «top» para interfaces de red

iftop es una herramienta que hace con el tráfico de una interface de red, lo que “top” hace con el uso de un procesador. Esta herramienta escucha todo el tráfico de red a una interface determinada y nos muestra una tabla que resume el uso de ancho de banda usado por cada par de host o IPs connectadas (servidor/cliente), es muy útil para identificar si estamos recibiendo un ataque desde una IP en particular. [Leer más]

node-twitter un clone de twitter en node.js

Revisando los repositorios de Github por proyectos interesantes escritos en node.js, he encontrado uno llamado node-twitter de Vinit Kumar. El código se ve limpio y sólo requiere la intalación de MongoDB como motor de base de datos, que afortunadamente ya hemos descrito en este blog como instalarlo localmente. Una version operativa del proyecto se puede visitar en este URL: http://ntwitter.nodejitsu.com/login. En este post voy a describir brevemente como hacer para tener una versión similar corriendo en tu VPS o servidor físico si es que deseas iniciar un proyecto similar. [Leer más]

Cómo instalar Ghost (plataforma de blog en node.js)

Aunque WordPress es la plataforma de blog dominante en nuestros días, John O’Nolan inició un proyecto kickstarted para crear un sistema de blogging en node.js. Ghost se puso como meta recaudar £ 25,000 (U.S.$ 40,000) para financiar el desarrollo del proyecto y en 29 días recibió £ 196,362 (U.S.$ 314,000), debido a esta gran acogida es que decidió extender el proyecto y no sólo desarrollar un software para blogear escrito en node. [Leer más]

Asegurando tu server Ubuntu

La seguridad es uno de los puntos a los que debemos prestar mucha atención cuando ponemos un servidor en producción (es decir accesible a través de Internet), aunque no existe una receta mágina que vuelva invulnerable nuestro servidor, existen una serie de medidas básicas de seguridad que deberíamos tener en nuestro servidor para evitar los ataques más comunes y detectar algún intento de intrusión. En este post detallo una serie de medidas básicas para asegurar un servidor Ubuntu 12. [Leer más]

node.js con Twitter Bootstrap

No hay duda que uno de los frameworks/templates para diseño de websites HTML5/CSS3 más usados en la actualidad es Bootstrap (un proyecto Open Source inciado por Twitter), una de las razones de su popularidad es que este template por defecto nos ofrece un diseño responsive y mobile first, lo cual convierte a esta herramienta en ideal para el desarrollo de websites que se vean bien no importa si se accede a ellos desde un smartphone, una tablet o un PC. [Leer más]

Implementando un chat con node.js

Una de las ventajas que ofrece node.js es su naturaleza asíncrona y por lo tanto permite escalar fácilmente sin preocuparnos por sincrónizar procesos entre sí ya que no existen procesos una aplicación node.js consiste de un único hilo de ejecución. Una de las aplicaciones que más se beneficia de esta característica es justamente un chat y ha sido uno de los selling points favoritos de los evangelistas de node.js. Pero qué tan sincillo es programar un chat en node. [Leer más]

Usando MySQL con node.js

Imaginémonos que deseamos usar MySQL en un proyecto con node.js, después de todo MySQL es de lejos la DB relacional más usada ¿cómo hacerlo?. Pues bien aquí les dejo un pequeño tutorial que describe como usar la base de datos MySQL en un proyecto node.js usando el framework express. Este tutorial asume que ya tiene instalado node.js y MySQL ya sea localmente o en su servidor de desarrollo, no interesa el sistema operativo en teoría. [Leer más]

MongoDB es fácil

MongoDB es una base de datos NoSQL orientada a documentos que son guardados en una estructura JSON dinámica que es denominada BSON (Binary JSON). Debido a que JSON es un formato de datos familiar para los programodores JavaScript, es que muchos desarrolladores node.js usan esta base de datos para sus proyectos. Otra gran ventaja de MongoDB es que es un proyecto Open Source y por lo tanto es posible de ser necesario modificar el códio. [Leer más]

Cómo usar node.js en producción

node.js es una de las muchas herramienta que trata de dar una solución al clásico problema C10K que aqueja al popular servidor web Apache. Para ello node.js ofrece un modelo de eventos asíncronos, de un sólo hijo de ejecución. Sin embargo la parte del non-blocking que tanto promocionan en el website oficial de node.js asume que lo único que ejecutará node.js seran queries contra un servicio RESTful. Sin embargo en el mundo real una aplicación web es más que queries contra un servicio RESTful y es por ello que si dejamos que node. [Leer más]

Single Page Application (SPA) una tendencia creciente

Singla Page Application (SPA) o Single Page Interface (SPI) es una aplicación web (web app) o sitio web que sólo carga la página web una sóla vez y desde alli renderiza los objetos que contituyen la página basado en las acciones del usuario, es decir el único flujo entre el servidor y la página web son datos. La llegada de tecnologías que permiten enviar datos directamente al navegador como AJAX hicieron posible el nacimiento de las SPA, pero ha sido la llegada de node. [Leer más]

¿Es la web en tiempo real el futuro?

La web en tiempo real es algo que millones de personas ven todos los días en sus aplicaciones favoritas, pero que la mayoría no se da cuenta de dicha funcionalidad. Empresas como Facebook y Twitter usan los datos en tiempo real para actualizar los flujos de actividad sus usuario, lo que resulta en una experiencia que se siente menos estática y más como la mensajería instantánea. Este nuevo paradigma implica enviar datos a los usuarios en lugar de que sea sean las aplicaciones las que busquen actualizaciones periódicamente. [Leer más]

Comandos básicos para controlar Exim

Exim es el servidor de correo usado por defecto en Debian, la distribución que uso en la mayoría de mis proyectos. Exim no es tan popular como Postfix o Sendmail, pero desde mi punto de vista resulta mucho más robusto y escalable que los dos anteriores, pero como dice el refran en gustos y colores no han escrito los autores. Este post contiene los comando básicos que se pueden usar para gestionar la cola de correos de Exim en las operaciones, espero que les sea de utilidad en caso de que les toque lidiar con un VPS debian. [Leer más]

Usando PHP en Heroku

Aunque muchos no lo saben y Heroku no lo publicita es posible desplegar aplicaciones PHP o Perl en el servicio PaaS de Heroku. Claro que hay algunas limitaciones, la primera es que MySQL no es la base de datos relacional que ofrece la plataforma, sino que los es PostgreSQL. Esto hace que algunas muy populares webapps como WordPress por ejemplo no puedan ser deplegadas directamente en Heroku y tal vez es la razón por la cual no se publicita mucho el soporte a PHP. [Leer más]

Una introducción a la virtualización

Todo lo que conocemos hoy como Cloud Computing (la tan famosa “nube"), no existiría si no se hubiera creado la “virtualización”. La virtualización, es la creación de una computadora a través de software, en otras palabras en vez de usar chips y ponerlos juntos para crear una aquitectura de computacional, se crean un programa que simula/emula esos chips. De alli que la virtualización comenzara con la emulación de arquitecturas antiguas a través de una solución software que nos permite correr todos los programas existentes para la arquitectura que emulamos. [Leer más]

Bienvenidos a Websistente

Hola a todos. Mi nombre es Volkan Rivera, vivo en la ciudad de New York desde hace 11 años y me dedico a la administración de sistemas, este es mi blog técnico que es diferente de mi blog personal que también es o mejor dicho pretendía ser en cierta forma un blog técnico, pero que incluía temas más diversos como mi opinion personal sobre algunos hechos políticos y económicos; consejos sobre emprendimientos digitales y recuerdos personales. [Leer más]