0

Mis números del 2014

Los duendes de las estadísticas de WordPress.com prepararon un informe sobre el año 2014 de este blog.

Aquí hay un extracto:

La sala de conciertos de la Ópera de Sydney contiene 2.700 personas. Este blog ha sido visto cerca de 8.200 veces en 2014. Si fuera un concierto en el Sydney Opera House, se se necesitarían alrededor de 3 presentaciones con entradas agotadas para que todos lo vean.

Haz click para ver el reporte completo.

Anuncios
2

Script para escanear una red local

Ayer en la noche detecte un intruso en mi red local, lo más usual fue restringir el acceso por MAC address, que fue lo que hice. Pero que hubiera pasado si no hubiera revisado la lista de accesos, seguramente no me hubiera dado cuenta. Es por eso que me tome el tiempo para hacer un pequeño script que te notificara cuando hay una nueva conexión en tu red local.

Basicamente para el script use Python como lenguaje, y un herramienta para escaneo ARP-SCAN, todo esto para un sistema operativo GNU/Linux (Ubuntu o ElementaryOS).

Instalamos el arp-scan:

sudo apt-get install arp-scan

Con esta herramienta escanearemos las red en la cual esta conectada la PC, en este caso específico en la interface wlan0, con el siguiente comando:

sudo arp-scan --interface=wlan0 --localnet

Lo que nos retorna lo siguiente:

Interface: wlan0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.0.1	f0:7b:cb:89:ca:36	Hon Hai Precision Ind. Co.,Ltd.
192.168.0.10	ac:22:0b:84:e8:42	(Unknown)
192.168.0.11	5c:f9:38:a8:d9:32	(Unknown)
192.168.0.13	a8:16:b2:f8:04:5b	(Unknown)
192.168.0.19	00:c0:ca:75:70:98	ALFA, INC.

La primera ip, es del router (192.168.0.1) y las siguientes son de los hosts conectados a la red local (obviando la IP de la PC donde se realiza el escaneo), en este caso tenemos 5 hosts conectados a la red local (4 detectados + 1 de la PC)

Otra funcionalidad que use, son las notificaciones de Ubuntu, ese mensaje que aparece cuando se detecta una red wifi nueva, o cuando la batería de la laptop debe cargarse.

Para esto use el siguiente código:

#!/usr/bin/python
from gi.repository import Notify
Notify.init ("Hello world")
Hello=Notify.Notification.new ("Nueva notificacion","Hola, esta es una nueva notificacion","dialog-information")
Hello.show ()

Lo que nos muestra:

example_extension

Con estas herramientas procedemos a desarrollar el script:

#!/usr/bin/python
from gi.repository import Notify
import subprocess, re, os

path = os.path.dirname(__file__)
with open(os.path.join(path, 'ips')) as i:
    ipOrigin = i.read().splitlines()
f = open(os.path.join(path, 'ips'), 'rw+')
arpScan = "arp-scan --interface=wlan0 --localnet"
process = subprocess.Popen(arpScan.split(), stdout=subprocess.PIPE)
output = process.communicate()[0]
for line in  output.split("\n") :
    ips = re.findall( r'[0-9]+(?:\.[0-9]+){3}', line)
    for ip in ips:
        if ip not in ipOrigin:
            Notify.init ("Hello world")
            Hello=Notify.Notification.new ("Nueva conexion",ip,"dialog-information")
            Hello.show ()
        f.write(ip+'\n')
f.close()

Ese es el codigo inicial, que seguramente ire mejorando, pero la idea es almacenar las ip’s de los host’s en un archivo (llamado ips) para luego realizar un nuevo escaneo y buscar nuevas conexiones.

El codigo lo puse en github, para futuros cambios y versiones: https://github.com/jfabian/scan-lan

Antes de poder usarlo le damos permisos de ejecución (chmod +x), creamos el archivo ips y luego:

$ sudo ./scan

Y notificara una nueva conexión:

test_scan_lan

Lo último sería colocarlo en el crontab del sistema operativo, para que se ejecute cada cierto tiempo.

Abrimos el editor del crontab:

sudo crontab -e

Y agregamos la siguiente linea (el cron se ejecutara cada minuto):

*/1 * * * * env DISPLAY=:0 /usr/bin/python /opt/scan-lan/scan > /tmp/scan-lan.log

Previamente hemos colocado nuestro script scan y el archivo ips en una carpeta de nombre scan-lan dentro de /opt.

Reiniciamos el cron:

sudo service cron restart

Y listo, tenemos nuestro script funcionando.

El siguiente paso será empaquetarlo y colocarlo en un repo de Ubuntu 😀

0

Empezando con Play Framework

Estuve chequeando algunos frameworks en Java, y el que me llamo la atención fue Play Framework, más que todo por su patrón MVC y al parecer hace las cosas un poco más sencillo (aunque esto es relativo).

Play Framework

La instalación es sencilla, ya en Ubuntu necesitamos tener el JRE y Scala:

$ sudo apt-get install default-jre scala sbt

Luego descargamos el código de fuente, y lo descomprimimos en la carpeta /opt

$ wget http://downloads.typesafe.com/play/2.2.3/play-2.2.3.zip
$ unzip -d /opt play-2.2.3.zip

Play Framework tiene una consola que se parece a Maven, pero es más sencilla, así que para que el comando este disponible en el sistema debemos hacer un link simbólico, previamente le doy permisos de ejecución:

$ sudo chmod +x /opt/play-2.2.3/play
$ sudo ln -s /opt/play-2.2.3/play /usr/local/bin/play

Ya tenemos disponible la consola de Play Framework. Para ingresar sólo basta con:

$ play

Bonnus
En el sistema operativo OSX, la instalación se hace mediante el hombebrew, con el siguiente comando:

$ brew install play
0

Robomongo

Hace un tiempo que buscaba una herramienta visual para administrar las colecciones de una base de datos MongoDB, hasta que finalmente encontré una muy buena.

Robomongo

La herramienta es Robomongo es muy útil y muy visual ayuda mucho para la creación, modificación y eliminación de las colecciones de nuestra base de datos MongoDB.

Existen empaquetados para Debian (Ubuntu), Fedora/Open Suse y el código fuente.

La instalación en el caso de una distribución Debian(Ubuntu) solo basta con:

sudo dpkg -i robomongo-0.8.4-x86_64.deb

Y en caso de una distribución Fedora/Open Suse:

sudo rpm -ivh robomongo-0.8.4-x86_64.rpm
1

Instalando Laravel en Ubuntu

Cada vez se hace mas conocido el framework Laravel, incluso algunos mencionan que es el “unico PHP que debe usarse”, decidí probarlo y obviamente lo primero es instalarlo.

Estamos trabajando en OS GNU/Linux, y lo primero que necesitamos es composer. Procedemos a instalarlo:

curl -s http://getcomposer.org/installer | php

Luego lo movemos dentro de nuestra carpeta /usr/local/bin/

sudo mv composer.phar /usr/local/bin/composer

Una vez instalado el composer nos ubicamos a la carpeta donde apunta nuestro localhost y creamos el proyecto:

$ composer create-project laravel/laravel proyecto-laravel --prefer-dist

Por ultimo es necesario darle permisos a la carpeta app/storage

chmod -R 777 proyecto-laravel/app/storage

Una vez culminado ingresamos por el browser http://localhost/proyecto-laravel/public/ y debe verse algo así:

Laravel

Laravel

Les contare como me va con este framework.

0

Experiencias con ElementaryOS

Hace varios dias escucho hablar de ElementaryOS, una distro basada en Linux (específicamente en Ubuntu) que se ve recontra amigable y muy simple.

Logo ElementaryOS

Su instalación es muy parecida a Ubuntu (por no decir idéntica) y el resultado me gusto mas aun, es muy ligera. Me gusto mucho la distribución y la estoy usando a partir de ahora.

El escritorio se ve muy amigable:

Captura de pantalla de 2013-11-20 20:57:48

Y como comente, el consumo de recursos es poco:

Captura de pantalla de 2013-11-20 20:58:16

Distro recomendada 😀

0

Nuevo Juguete

No, no es un nuevo gadget. Es un objeto que planee comprarlo hace mucho tiempo, postergando de manera olímpica pero ya por fin entre mis manos:

Es una Mapex Vogager, color gris espejo ademas de 2 tom de aire, uno de piso, redoblante, hihat y un crash (estos últimos de practica).

Algo simple, pero que me ayudara mucho a despejar la mente. Veremos que nuevas cosas salen.

9

Instalando Arduino en Arch Linux y Manjaro

Instalar el IDE de Arduino en un sistema operativo Arch Linux (incluso Manjaro) no es una tarea muy complicada. Solo basta descargar e instalar el paquete desde el AUR e instalarlo.

 

Luego es necesario agregar el usuario que estamos usando al grupo uucp con el siguiente comando

gpasswd -a user uucp

Si intentamos correr el Arduino y nos muestra este error:

please see: How can I use Lock Files with rxtx? in INSTALL
check_group_uucp(): error testing lock file creation Error details:Permiso denegadocheck_lock_status: No permission to create lock file.
please see: How can I use Lock Files with rxtx? in INSTALL
check_group_uucp(): error testing lock file creation Error details:Permiso denegadocheck_lock_status: No permission to create lock file.
please see: How can I use Lock Files with rxtx? in INSTALL
check_group_uucp(): error testing lock file creation Error details:Permiso denegadocheck_lock_status: No permission to create lock file.
please see: How can I use Lock Files with rxtx? in INSTALL
check_group_uucp(): error testing lock file creation Error details:Permiso denegadocheck_lock_status: No permission to create lock file.
please see: How can I use Lock Files with rxtx? in INSTALL
check_group_uucp(): error testing lock file creation Error details:Permiso denegadocheck_lock_status: No permission to create lock file.
please see: How can I use Lock Files with rxtx? in INSTALL
check_group_uucp(): error testing lock file creation Error details:Permiso denegadocheck_lock_status: No permission to create lock file.
please see: How can I use Lock Files with rxtx? in INSTALL
check_group_uucp(): error testing lock file creation Error details:Permiso denegadocheck_lock_status: No permission to create lock file.
please see: How can I use Lock Files with rxtx? in INSTALL

Es por que hay que asignarle permisos a una carpeta:

chmod 777 /run/lock

Espero que sea de ayuda para empezar con el Arduino.
 

0

Arduino

Hace un tiempo ingrese al mundo del Arduino, una tecnología que me parece muy interesante y con mucho potencial. Pone a la electrónica mas cerca, sin necesidad de elaborar placas ni sensores, para solamente concentrarse en el desarrollo de “aplicaciones” o prototipos.

A continuación pongo algunas imágenes:

Arduino UNO

Interactuando con un LED

Potencionmetro

Leyendo datos desde la Computadora

Enviando y recibiendo SMS vía GSM