Detecta quien esta conectado a tu Wi fi (red local), gratis, fácil y rápido

Que tal en sábado cibernautas, listos para saber quienes están conectados en su red local?
Quien no se preguntó si hay un intruso en su red local, en su wi-fi? Ese Wi-fi que vamos pagando mes a mes, wi-fi que cuidamos celosamente.
AngryIP Scanner, un software para detectar intrusos en tu wi-fi

Bueno, bueno hoy presentaré a AngryIP un software gratis, fácil y rápido como dice el titulo, hago mención a esto pues para utilizarlo no hay que tener más que 3 cosas:

  • Sistema Operativo, cualquiera sea, pues trabaja en MacOS, Windows y Linux.
  • Tener instalado Java JRE en sus últimas versiones, para que todo ande bien.
  • Tener internet.
Solo eso mis amigos. El link de descarga lo dejo aquí (Click) para los mas atrevidos, arriesgados que no miran las capturas de pantalla antes de usar un software. 
Y para los cautos aquí unas capturas de pantalla del software, en los tres sistemas operativos más usados:
AngryIP, software para detectar intrusos en nuestra Wi fi
Como instalo el software?
Bueno, si eres usuario windows entonces lo tienes fácil, solo es abrir el instalador, y luego click en siguiente, siguiente y ya puedes usarlo. 
En caso seas de MacOS o Linux, entonces primero verifiquen la disposición de java que tienen y por lo demás en MacOS no necesita instalación, y Linux pueden descargarse el paquete *.deb 
Como utilizo el software?
Como puedes ver en las capturas de pantalla que dejo arriba, puedes modificar el rango de Ip en el cual buscará el software o dejarlo pues ya viene pre configurado. Y por último click en Start. 

Bueno eso sería todo por hoy y ya saben si tienen dudas, comentarios háganme saber en la parte de abajo. 
Gracias.

Como compartir archivos entre computadoras?

Compartir archivos entre dos computadoras y no morir en el intento, hubiera sido un titulo más chulo. Sin embargo, nos encontramos en el año 2017, la humanidad se encuentra en camino la cima tecnológica y aun hoy en da caemos en la cuenta de que no podemos compartir archivos fácilmente.
De cuando en cuando nos encontramos con paginas de dudosa procedencia que nos ofrecen software entre comillas gratis para realizar dicha actividad.
No estoy en contra del uso de software de desconocidos, pero si me genera molestia cuando en el día a día conozco personas con virus en sus computadoras a causa de software malicioso.
Bueno, dejo el preambulo y hoy presentare para aquellos que no conocen a: Dukto

Dukto, software para compartir archivos.
Dukto software para compartir archivos

Un software pequeño que les ayudara de manera rápida a compartir archivos entre sus computadoras, eso si de manera local.
Como funciona?
Paso 1, descargar e instalar el software en cada una de las computadoras que compartiras archivos. (Descarga aquí) Esta disponible para Mac, Windows y Linux.
Paso 2, abre el software instalado, este automáticamente buscara las computadoras en red con las cuales puede compartir archivos.
Dukto, lista las maquinas que están conectadas en tu red LAN
Dukto, lista las maquinas que están conectadas en tu red LAN

Paso 3, comparte tus archivos.
Dukto, compartiendo archivos entre windows y mac OSX
Dukto, compartiendo archivos entre windows y mac OSX
Adicionalmente tiene otras opciones que no estaría mal que puedan curiosear un poco, ya que el software es realmente intuitivo. 
Entonces gracias, espero haber ayudado en su afán al compartir archivos entre computadoras, nos vemos en otro articulo cibernautas. 

Transacciones ajax entre dominios, el temido CORS - C#

Buenas noches cybernautas, hace unos días en el mundillo de desarrollo de software me tope con CORS, unas siglas que giran entorno a la data compartida entre dominios.
De acuerdo a wikipedia, nos dice que CORS es un mecanismo para restringir recursos entre dominios.

CORS, presente en el desarrollo de software hace unos días:
Requerimiento: Se tiene una ruta http://aaa.com/ que quiere consumir datos a través de ajax de la ruta http://bbb.com/get/datos. Este trabajo se debe realizar a nivel del Frontend.


Bueno, del lado del dominio A tenemos que realizar una llamada utilizando una función de angular.

 $http.jsonp('http://bbb.com?callback=JSON_CALLBACK&params1=' + 1 + '&params2=' + 2).
 success(function(data) {
                console.log("data >>>", data);
 }).
 error(function (err) {
                console.log("error >>>", err);
 });


Ahora del lado B, trabajamos en el backend para permitir la salida de datos. Para ello primero implementamos la siguiente clase:


 using System.Web.Script.Serialization;
public class JsonpResult : JsonResult
 {
  object data = null;

  public JsonpResult()
  {
  }

  public JsonpResult(object data)
  {
   this.data = data;
  }

  public override void ExecuteResult(ControllerContext controllerContext)
  {
   if (controllerContext != null)
   {
    HttpResponseBase Response = controllerContext.HttpContext.Response;
    HttpRequestBase Request = controllerContext.HttpContext.Request;

    string callbackfunction = Request["callback"];
    if (string.IsNullOrEmpty(callbackfunction))
    {
     throw new Exception("Callback function name must be provided in the request!");
    }
    Response.ContentType = "application/x-javascript";
    if (data != null)
    {
     JavaScriptSerializer serializer = new JavaScriptSerializer();
     Response.Write(string.Format("{0}({1});", callbackfunction, serializer.Serialize(data)));
    }
   }
  }
 }

En nuestro controlador instanciamos la clase antes creada.


 public class equisController : Controller
 {
  public JsonResult getDatos()
  {
                        CodeFirst context = new CodeFirst();
   List q = context.ModelEquis.toList();
   JsonpResult result = new JsonpResult(q);
   return result;
  }
 }

Al final podemos comprobar que la data es transmitida y podemos mostrarlo en un gustoso "console.log"

Comprimir imágenes (*.jpg, *.png) para geeks y usuarios finales

Saludos cybernautas, les cuento que hoy tuve la necesidad de comprimir imágenes *.jpg, *.png de manera que recurrí a googlear un poco, para buscar alguna herramienta, linea comandos o lo que sea.
Así que lo primero que apareció fueron estas herramientas para ubuntu:


Trimage, esta disponible para distintas distribuciones linux: Debian, Ubuntu, Archlinux, etc. Posee una interfaz gráfica desde la cual pueden seleccionar la imagen y a comprimir fácil. 


Jpegoptim, otra herramienta pero en linea de comandos, tambien con soporte para Linux, Solaris, Darwin/OS X. Aqui dejo el repositorio del proyecto Github
Ademas encontré este articulo de un blog muy conocido en el cual explican la instalación y uso.

Bueno hasta el momento, esta son herramientas para los cuales hay que tener cierto conocimiento de informática o almenos usar una plataforma linux, que para ustedes geeks esto va bien. Sin embargo quise evitar la fatiga de comprimir las imágenes y dejarle ese trabajo a la diseñadora. 
Entonces con una búsqueda adicional encontré este sitio web: http://makeitsolutions.com/labs/jic/




Que lo único que tenemos que hacer es arrastrar la imagen que deseamos comprimir, seleccionar el porcentaje de compresión que queremos y listo, podemos descargar la imagen comprimida. 
Con esto me despido, si conocen alguna otra herramienta de compresión para usuarios finales pueden dejarlo en los comentarios. 
Gracias.


Virtualenv, Rvm, Nvm configurando nuestro entorno de programación

Acabo de instalar Ubuntu 14.04.4 LTS, y ahora que?
Apuesto a que esta pregunta fue una de las primeras que siempre solían hacerse cuando aun iniciaban a utilizar la plataforma. Ubuntu para empezar, fedora para otros gustos, redhat, etc.

A medida que el tiempo transcurría el ser nato programador que llevaban dentro empezó a asomar, y es así como poco a poco dejaban de instalar herramientas de ocio y se inclinaban mas por instalar frameworks, librerías.

Recuerdo la primera vez que instale Django 1.3, fue en una clase de programación, 6 meses después salía Django 1.4, entonces algunos problemas se hacian notorios. Como iva a instalar Django.14, si ya tenia la versión anterior?
... esperen, esperen ahora viene la versión 1.9.

La solución: Virtualenv, una herramienta que permite crear entornos aislados para asi poder instalar las versiones que querramos sin perjudicar en lo mas minimo a toda la plataforma.

La instalación no es tan complicada, al menos en ubuntu no.

sudo apt-get update
sudo apt-get install python-setuptools
sudo easy_install pip
sudo pip install virtualenv
cd ~/ # nos dirigimos a nuestra carpeta home
virtualenv --no-site-packages --distribute venv # creamos un entorno donde instalaremos una versión de Django
source venv/bin/activate # activamos el entorno, solo sirve para la sesion actual
pip install django==1.5

Facil verdad? bueno con el paso de los meses me interese por NodeJS, y esta vez con lo aprendido busque inmediatamente algo parecido a Virtualenv, y adivinen que ... encontré NVM (Node virtual machine) con el cual podemos instalar multiples versiones de NodeJS.



La instalación es sencilla, en ubuntu :)

sudo apt-get update
sudo apt-get install build-essential libssl-dev
curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh
source ~/.profile # para que tu perfil tome la configuración de nvm
nvm install 0.11.13 # instalas una versión de nodejs
nvm use 0.11.13 # seleccionas la versión que deseas usar
node -v # mostrar la versión de nodejs que estas usando
nvm ls # mostrar las versiones que tienes instalado en tu pc

Ok, esto va bien, poco a poco mi Pc va quedando limpia de instalaciones, y aun asi sigo desarrollando en diferentes versiones. Derrepente ...  vi pasar delante de mis ojos Ruby, no es broma, pues ya había tratado de hecharle mano hace un par de años pero no me animaba del todo.
Pero como todo en la vida, las cosas llegan y esta vez me encuentro programando en ruby.
Y una vez el conocimiento antes adquirido me llevo a realizar una pequeña busqueda topandome asi con RVM (Ruby virtual machine) ya saben cybertnautas la historia es la misma, ambientes separados para no llenar de basura el sistema operativo.



sudo apt-get install build-essential libssl-dev
sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable --ruby
source ~/.profile # tambien puede ser source ~/.bash_profile
rvm gemset list # muestra lista de entornos que tienes
rvm use 2.2.1@teddy --create # crea un entorno con la version de ruby 2.2.1
rvm gem list # muestra las gemas que tienes instalado en tu entorno actual

Ya compartido esto, es hora de programar.
Estoy relajado :)
Chao.

Documentación de software con Markdown

Dentro del desarrollo de software, existe un punto en el cual debemos realizar documentación técnica. Esto puede ser redactado simplemente en un archivo de texto plano, sin formato alguno, o en otros casos con la ayuda de herramientas como Microsoft Office, para los espíritus libres Libre office.

Es así como dentro del equipo de desarrollo de software se encuentran presente los analistas de software, o un personal correspondiente que se encarga de estas actividades. Que por su naturaleza es un ser que no gusta de lidiar con lenguajes de programación, de manera que al realizar la documentación optara por usar herramientas de oficina comunes.

Pero si, es por falta de presupuesto, personal o asares del destino que como programador te ha tocado documentar. No aumentes tu ira en contra de las herramientas de oficina, pues para esas actividades existe un lenguaje: "Markdown".

Un lenguaje de documentación orientado al programador, ese ser que comprende códigos, sintaxis y símbolos que al ser interpretados resultan en un documento bonito, ordenado y estilizado.



Habiendo dado a conocer este lenguaje, paso a dejar enlaces de herramientas que ayudaran a utilizar Markdown.



Si conocen otros editores de markdown o herramientas que ayudan a su uso pueden dejarlo en los comentarios. 

Google Keep, guardar y compartir notas rápidas

Llevo aproximadamente 6 meses usando Keep, un servicio del conjunto de aplicaciones de Google. La propuesta de Keep es que no perdamos ninguna idea, pensamiento, recordatorio, imagen que se nos presenta en el día a día.
Mi apreciación las primeras semanas al usarlo fueron que el servicio era bueno para almacenar cualquier  idea en cualquier momento, ya que también lo instale en mi móvil con android.
Con el paso del tiempo sentí la necesidad de compartir alguna de las ideas entre amigos dentro de la red Gmail. Sin embargo esta funcionalidad aun no estaba implementada.


Han pasado algunos meses y veo como Keep ya puede compartir notas entre compañeros, aunque no exista los niveles de permisos Read, Write, Delete es una función que anima a seguir usandolo.
Para los interesados en utilizar el servicio las funciones en la actualidad, fecha que escribo este articulo, son:

  • Agregar recordatorio a una nota.
  • Compartir una nota entre personas.
  • Clasificar una nota con un color determinado.
  • Archivar una nota.
  • Eliminar una nota.
  • Hacer copia de notas.
  • Agregar listas de tareas.
  • Agregar imágenes.
  • También tiene una sección donde podemos agregar sugerencias y así mejoren el servicio.