miércoles, 18 de marzo de 2009

Fase local

Hoy 18 de marzo he presentado a AVBOT en las Jornadas de Software Libre y Conocimiento Abierto de la UCA, como participante en el Concurso Universitario de Software Libre. Para mi sorpresa he resultado ganador. Hay que decir mucho a favor de los otros proyectos presentados, en concreto de Libgann y Free padel. Aunténticas virguerías.

viernes, 6 de marzo de 2009

Logros alcanzados

Se detallan a continuación algunos de los logros alcanzados:
  • Más de 5000 horas de trabajo.
  • Funcionamiento ininterrumpido comprobado durante más de 7 días (del 26 de noviembre al 2 de diciembre). Lo que dice mucho de su estabilidad.
  • Más de 200 mil ediciones hasta la fecha. En torno a la mitad de ellas han sido reparaciones a páginas, el resto avisos a usuarios.
  • Tasa de acierto del 99,5% según datos de diciembre de 2008. Primero fue mejorado con las puntuaciones, posteriormente con los contrapesos.
  • Ningún bloqueo por malfuncionamiento.
Algunos de los usuarios de Wikipedia también han expresado su satisfacción con el trabajo del bot. También pasó la autorización para poder ejecutarse con 19 votos a favor y 0 en contra. Un signo de que la comunidad quiere que el bot continue trabajando lo constrituye la página de sugerencias, desde donde se pueden pedir nuevas funcionalidades para el programa.

Dificultades superadas

En un principio el programa analizaba una edición tras otra, de forma secuencial. Este sistema era bastante lento, pues había que esperar a que se terminara de comprobar una edición para saltar a la siguiente y en Wikipedia en español el ritmo de modicaciones a veces superaba al ritmo de análisis. Para evitar esto se introdujo el uso de hilos, mediante la librería thread. Con esta solución, cada vez que llegan los datos de un cambio, se llama a la función de análisis. Si llegan varias modificaciones a la vez, no se espera a que termine una para empezar con la siguiente, ya que son independientes.

Otro aspecto relevante es el precompilado de expresiones. Cada vez que era analizada una edición, había que pasar la lista de expresiones (varios cientos de ellas) sobre un texto que en algunas ocasiones era bastante extenso. Este proceso requería los siguientes pasos:
  1. Leer la expresión regular.
  2. Compilar la expresión regular.
  3. Pasar la expresión regular compilada al texto objetivo.
  4. Volver al paso 1 con la siguiente expresión.
Se puede evitar la compilación continua de una misma expresión si guardamos el resultado de dicha compilación. Por ello, se implentó una mejora en el cargador de expresiones, que en vez de guardar sólamente la expresión en cruda, guarda su compilación. La mejora fue drástica. De tener que compilar entorno a 600 expresiones por cada página analizada, lo que hacía que el proceso de análisis consumiera unos 10 segundos, se pasó a menos de una milésima de segundo por análisis. Denitivamente esta fue una mejora crucial en el programa.

miércoles, 4 de marzo de 2009

Proyecto Fin de Carrera

Hoy miércoles 4 de marzo presenté a AVBOT como Proyecto Fin de Carrera. El nombre completo es "Detector y corrector automático de ediciones maliciosas en Wikipedia".
Calificación: Matrícula de honor.