Despliege continuo en máquina virtual de Azure con Codeship


En esta entrada se hará despliegue continuo o Continous Deployment en Codeship hacia una máquina virtual en Microsoft Azure mediante SSH para desplegar una aplicación en Node.js.

Suponiendo que ya tienes una cuenta en CodeShip y tienes un proyecto nuevo recién configurado desde Git (yo lo hice desde GitHub) nos encontraremos en una vista parecida a la siguiente:

En esta vista podremos ver si fue correctamente configurado el repositorio en Codeship, ahora si a hacer el despliegue continuo (Continous Deployment).

1. Microsoft Azure

Aquí vamos a crear una máquina virtual Ubuntu Server 16.04 LTS, vamos a clonar el proyecto y lo vamos a ejecutar, no me detendré en este punto ya que no es el objetivo de esta entrada.

2. Conoce tu llave de SSH en Codeship

En la parte superior derecha encontrarás todas las configuraciones del proyecto, ahí vas a ingresar en la opción “General“:

Seguir leyendo “Despliege continuo en máquina virtual de Azure con Codeship”

Cómo generar APK con Xamarin


Luego de que hayas creado tu aplicación en Xamarin necesitas probar la app en distintos dispositivos o publicarla en el Play Store, sin embargo, para generar el apk debe estar firmado digitalmente. La ventaja es que no se necesita una cuenta de desarrollador para generar dicho apk.

Con Xamarin se puede llevar a cabo con unos cuantos pasos.

Generar el Keystore

Lo primero que debemos hacer es localizar la herramienta keytool, que está en nuestro JDK (Java Development Kit) que debemos tener previamente instalado, en mi caso C:\Program Files (x86)\Java\jdk1.7.0_71\bin

  1. Abrir una consola de comandos con permisos de administrador
  2. Cambiar a la ruta a nuestro JDK (cd “RUTA_DEL_JDK”)
  3. Generar el Keystore con el siguiente comando
keytool -genkeypair -v -keystore <filename>.keystore -alias <key-name> -keyalg RSA -keysize 2048 -validity 10000

Seguir leyendo “Cómo generar APK con Xamarin”

Cómo hacer namespaces dinámicos en Socket.io


Socket.io es una librería para hacer comunicaciones en tiempo real con Node.js utilizando Websockets y en este blog he dedicado varios artículos al respecto.

Sin embargo, una necesidad muy común al usar todas las funcionalidades de esta librería es usar correctamente los Namespace y los Rooms, el cual nacen para tener extensiones y una mejor organización de nuestros canales, pero este no es el post para explicar cada uno (http://socket.io/docs/rooms-and-namespaces/) si no para crear namespaces dinámicos y que por su implementación normal no es posible.

A continuación, un ejemplo donde se puede crear namespaces y unirse a ellos dinámicamente.

Servidor

  • Declaración de variables
	var MAX_CLIENTS = 5;
	var namespace_queue = [];
  • Funciones locales

Seguir leyendo “Cómo hacer namespaces dinámicos en Socket.io”

Cómo crear una máquina virtual de Microsoft Azure con Powershell


En el día a día cada vez se ven más las necesidades de automatizar tareas, tanto de desarrollo como en infraestructura; si bien ya existen distintas plataformas para hacer DevOps tales como Chef, Puppet Labs, entre otras, no está de más crear nuestra propia plataforma. En mi caso personal, estoy desarrollando varios proyectos donde requieren automatizar procesos que siempre son tediosos y que se pueden ahorrar tiempos en administración, entre esas cosas que tenía que hacer era automatizar la creación de máquinas virtuales con Ubuntu 14.04.

Este es un ejemplo básico, pero para fines prácticos está muy bien. Seguir leyendo “Cómo crear una máquina virtual de Microsoft Azure con Powershell”

Cómo habilitar acceso remoto en Raspberry Pi


Si bien Raspberry Pi nació como un proyecto para llevar computadores a los niños de bajos recursos y se pudiera conectar cualquier periférico para poder hacer que este fuera más asequible pero muchas veces resulta que no tenemos todo de primera mano.

Como este proyecto ha tomado tanta popularidad y tantos propósitos distintos a veces es difícil tener un teclado, mouse y pantalla extra para poder administrar cada Raspberry Pi, por lo cual hoy en día es posible hacerlo por distintos medios que veremos durante este artículo.

Comenzaré con el más amigable; cabe aclarar que ambos métodos solo sirven en Raspbian y que nuestra Raspberry debe estar en nuestra red local, a no ser que tenga una IP dedicada.

Escritorio remoto

  • Instalar XRDP que simplemente habilita un protocolo de escritorio remoto (RDP)

Seguir leyendo “Cómo habilitar acceso remoto en Raspberry Pi”

Capturar credenciales de Facebook con una extensión de Google Chrome


Hace unos días comencé a revisar las API de Google Chrome que ofrece para crear extensiones y decidí crear una sencilla extensión que captura el email y la contraseña de Facebook al momento de hacer login (hay gente que le llama hackear Facebook), esto lo logro al hacer un hook en el evento “submit” del formulario de login.

En términos más técnicos lo que estoy haciendo es un event listener al documento y bajo ciertos parámetros solo opero en el login de Facebook.

También me pareció interesante tomar pantallazos de Facebook cada determinado tiempo, para ello se cuenta con un botón que habilita esta opción.

Sin embargo la idea es que esta información salga del navegador de la víctima y vaya a nuestras manos, para ello configuré la aplicación para que responda a un servidor hecho con Node.js y Socket.io, de ahí para adelante es historia. Seguir leyendo “Capturar credenciales de Facebook con una extensión de Google Chrome”