Iniciar Sesion

Planet

Algoritmo Predator — OpenTLD

Hace unos días leía en el Grupo de discusión de OpenKinect sobre un algoritmo de tracking(rastreo o seguimiento) revolucionario conocido como Predator Algorithm. Predator usa una combinación de tracking + detección + ROI (Region Of Interest), y como sus autores comentan, el algoritmo aprende sobre la marcha. En primer lugar debemos tener una captura del [...]

Cliente web para el Club .NET de Sevilla

Hace poco hice un cliente de Predesys de escritorio para la asociación Club .NET de Sevilla. Ahora, en la asociación, he creado e instalado un cliente web (una página web) en uno de sus servidores web que nos dice quién está en el aula de la asociación en cada momento.
La máquina donde está instalado tiene pocos recursos, por lo que se viene abajo muy fácilmente si se hacen muchas peticiones HTTP, pero para ilustrar que el proyecto funciona, está bastante bien. Para ser detectado en el aula de la asociación, tan sólo hay que estar registrado como usuario en el servidor de Predesys y conectarse con el ordenador a su red local, por cable o por WiFi.
Lo que tenemos montado en la asociación es un servidor de Predesys, el servicio de Predesys “People Presence” instalado en dicho servidor y un cliente web que ejecuta dicho servicio de Predesys. “People Presence” tan sólo devuelve una lista de nombres de persona, que es lo que finalmente se muestra en el cliente web (la página web).
Ésta es la página web donde se puede mirar qué personas están en el aula de la asociación:
http://dnc.eii.us.es:81/gente

Trabajando en la documentación

Ahora que ya he hecho el Radar LAN, estoy dedicándome a añadir contenido a la documentación del proyecto. Mi objetivo es liberar dentro de unos días una nueva versión de la documentación, en formato PDF. Recuerde que siempre puede descargarse del repositorio la versión provisional actual en formato LaTeX, que es el formato de la fuente de la que se genera luego el documento PDF cuando se libera una versión.
También, voy a empezar a añadir comentarios en el código fuente, que, de momento, a penas tiene, para luego generar un documento con la documentación del código, es decir, con información sobre los distintos módulos, clases, funciones…

Description of vLearnie in detail

I have uploaded a new document in Spanish where I explain what is the main purpose of this project and what we have planned to do. A brief resume: Building a web app integrated within the Moodle domain. Creation of … Continue reading →

Mejorado el Radar LAN

Hoy he descubierto los pings ARP, que son parecidos a los pings normales, pero tienen la ventaja de que se usan a nivel de la tarjeta de red y todas las tarjetas de red están obligadas a contestar a ellos, independientemente de la existencia de firewalls.
Ahora, en el reciente Radar LAN, en lugar de usar NMap y consultar la caché ARP, uso el comando arp-scan (que se basa en pings ARP), que devuelve el par IP-MAC de todos los equipos de una misma red local (cosa que hace de forma muy rápida). Esto significa una mejora en la eficiencia bastante grande y además evita los problemas derivados de los posibles firewalls que pueda haber en las redes.
He incluído esta mejora en una nueva versión del Radar LAN (0.2.0) que acabo de publicar. Como consecuencia de esto, también he publicado una nueva versión del servicio People Presence (0.1.2), con un cambio mínimo pero que mejora su eficiencia.
Ambas nuevas versiones están disponibles, como siempre, en la sección Descargar. Pueden descargarse en formato tarball o en formato paquete Debian.

JavaDiKt 1.1.4beta resubido

Apunte rápido, he tenido que resubir la última versión de JavaDiKt, trasteando con el programa he descubierto un error de programación bastante grave que hace imposible hacer búsquedas usando criterios de conjunción “Ò”. Recomiendo a todo aquel que se haya descargado la última versión que lo haga de nuevo.

JavaDiKt 1.1.4beta resubido

Apunte rápido, he tenido que resubir la última versión de JavaDiKt, trasteando con el programa he descubierto un error de programación bastante grave que hace imposible hacer búsquedas usando criterios de conjunción “Ò”. Recomiendo a todo aquel que se haya descargado la última versión que lo haga de nuevo.

Creando tags y branches

Hola,
hoy vengo a explicar como crear un tags o branches [+info], ya que al haber llegado a la versión 0.2 (que más o menos funciona), nos venía bien crear un tags. Bueno, no me enrollo más, vamos al lio:
Para crear un tags o un branches lo hacemos de la siguiente manera:
$ svn copy  http://forja.rediris.es/svn/cusl5-tablerogo/trunk http://forja.rediris.es/svn/cusl5-tablerogo/tags/tablerogo-0.2  -m “Tags de la versión 0.2 de tablerogo”
Ejecutado esto ya tenemos creado nuestro tags o branches (para crear un branches solo tienes que cambiar tags por branches y listo). Hecho esto, lo primero que solemos hacer es ir al directorio a comprobar si lo hemos hecho bien, pero nos encontramos que el directorio tags o branches está vacio. Lo único que nos queda por hacer es un:
$ svn update
Y listo, ya tenemos creado nuestro tags o branches, y lo tenemos en nuestro ordenador a parte de en el servidor.
Un saludo, espero que os sirva !!
[+info] http://tablerogo.wordpress.com/2010/12/11/estructurando-un-poco-el-lugar-de-trabajo/

The Ruby programmer stack 4: Pow

Summary

  • What is Pow.
  • Installing Pow.

What is Pow
I admit it. I have an addiction. I am addicted to updating all the applications of my system to the last version. Always. Every single day I check if there is something new. Now, this is not really a burden. Just brew update and rvm @global gem update. Pretty automatic.
The problem is…I use Passenger and Nginx, exactly as stated in The Ruby Programmer Stack 2 so every time there is an update to either Nginx or Passenger I have to go through a 10 min upgrade process.
Today Nginx released version 1.0.0. Also Passenger has an update too. But I decided that I have had enough. My time is way too valuable to waste it in no-value things.
Enter Pow, by 37 Signals.
Installing Pow
Install Pow. Make sure it shows the four steps. As there could be errors.
$ curl get.pow.cx | sh
*** Installing Pow 0.2.2...
*** Installing local configuration files...
*** Starting the Pow server...
*** Installed

If everything is correctly installed, add your Rails app – any Rack app would do – to Pow.
$ cd ~/.pow
$ ln -s /path/to/myapp

It currently do not handle well names with upper case letter. So if you destination folder has upper case letter make sure that you rename the link file to lower case. It will work that way.
$ ls
DaVinci@ resque@
$ mv DaVinci davinci

If there was any error, try this:

$ launchctl load -Fw ~/Library/LaunchAgents/cx.pow.powd.plist
$ chmod 644 ~/Library/LaunchAgents/cx.pow.powd.plist
$ curl get.pow.cx | sh

Links
http://pow.cx/

Cómo colaborar con el proyecto

Para colaborar con Predesys, una buena aportación puede ser la creación de algún servicio de Predesys.
Un servicio de Predesys no es más que un script de Python que debe implementar una función con unos parámetros de entrada y tipo de salida concretos. Esta función varía en función del tipo de servicio que quiera implementar (ver sección Arquitectura). Veamos cómo tiene que ser esta función en cada caso:

  • Para servicios automáticos y servicios de usuario sin autentificación:
    def run(args)
    Donde args es una lista (de cadenas de texto) de las direcciones MAC detectadas.
  • Para servicios de usuario con autentificación:
    def run(userId, args)
    Donde userId es el usuario que ha solicitado ejecutar el servicio (una cadena de texto) y args es una lista de (de cadenas de texto) las direcciones MAC detectadas

Todos los servicios tienen acceso a la API de Servicios de Predesys (un módulo de Python), que ofrece un acceso limitado al Núcleo del Servidor. Con esta API, se pueden obtener los usuarios registrados en el sistema, formatear un mensaje para que se envíe por bluetooth a alguno de los dispositivos detectados (si se tratan de dispositivos bluetooth detectados por el Radar Bluetooth), obtener las direcciones MAC que están registradas en el sistema… De momento, la API de Servicios ofrece muy poca funcionalidad, pero se le irán añadiendo nuevas características en el futuro.
Una vez terminado el servicio, para añadirlo al Servidor hay que ejecutar como administrador la siguiente orden:

  • “predesys-server services add -id -v -tid -a -e -p -n -au ”
    Donde:
    -a -> 0 = Servicio sin autentificación del usuario, 1 = servicio con autentificación del usuario
    -e -> 0 = Servicio deshabilitado inicialmente, 1 = servicio habilitado inicialmente
    -v, -n, -au -> Opcionales
  • O bien, podemos ejecutar esta otra orden (también como administrador) e ir dando valores a las mismas propiedades según nos lo vaya pidiendo la interfaz de usuario de terminal:
    “predesys-server services add”

Distribuir contenido

Colabora