Mi nombre es Fernando Briano y soy programador.

Uma: La bot voladora de IRC de MontevideoLibre

Uma es una bot voladora hecha inicialmente por fcr en Tcl. La conocí en IRC, en el canal de #montevideolibre. Ahí Uma modera el canal, y mantiene un poco el orden, entre otras cosas.
Uma es un bot de IRC:
Un bot de IRC es un conjunto de scripts o un programa independiente que se conecta a IRC como cliente, de forma que se vea como un usuario más.

Hay bots en python, perl, y más. En cuanto al diseño de Uma, en la wiki de MontevideoLibre describen:

Uma tiene un diseño claramente modular, y como está programada enteramente en Tcl tiene también mucho dinamismo, permitiendo entre otras cosas cargar y descargar módulos dinámicamente, sin tener que reiniciarla.

El API para los módulos es muy simple, y con el paso del tiempo fue mejorando progresivamente, pasando ahora por un período de estabilidad relativa.

No me había cruzado con Tcl hasta que supe de Uma. Es un lenguaje de scripting que “ha ganado popularidad ya que se lo conoce por ser fácil de aprender, pero poderoso en manos competentes”. La verdad que sí es bastante fácil de aprender. Cuando supe de Uma me bajé el código fuente, y empecé a aprender algo de Tcl. Todavía tengo guardado mi “Hola mundo”, que hice con la ayuda de fcr y andresambrois – holamundo.tcl:

#!/bin/sh
#\
exec tclsh "$0" "$@"
puts "Hola Mundo"

Uma es AGPLv3 y por lo tanto su código está disponible en internet:

svn co http://svn.montevideolibre.org/uma

La lista de correo de desarrollo de uma se encuentra aquí: Lista de desarrollo de Uma

Desde entonces, (cuando estoy en IRC) alojo dos bots para IRC basados en el código de Uma. Uno de ellos es “Umatronic“, en el canal #linuxuruguay.org, y el otro es “nicatron” en #picandocodigo. Ambos en irc.freenode.net. Si llegan a entrar en #picandocodigo, saluden a nicatron, que les va a responder. Y con el comando !changes, les muestra los últimos posts del blog.

Programar un módulo nuevo no es nada complicado (lo digo a pesar de no haber podido terminar el único módulo que empecé…), prometo subir uno en breve.

La página de Uma:
http://montevideolibre.org/chatirc:uma
Pueden encontrar documentación para instalar y configurar su propio bot Uma. Además, los comandos que pueden usar con Uma para obtener una respuesta. Algunos comandos básicos: !ayuda, !ping, != (para hacer cuentas).

Es muy divertido, cuando no tienen nada mejor que hacer, ponerse a conversar con su bot en IRC. En serio, pruébenlo. Antes de publicar este post, tuve la siguiente charla con nicatron:

[11:43] <fbt> !ping
[11:43] <nicatron> Pong!
[11:43] <fbt> !changes
[11:44] <nicatron> Estimados canalistas, he aquí los últimos 3 posts en http://picandocodigo.net :
[11:44] <nicatron> 1- Post: Probando KDE 4.1 en Debian Lenny - Aplicaciones Url: http://picandocodigo.net/2008/08/probando-kde-41-en-debian-lenny-aplicaciones/
[11:44] <nicatron> 2- Post: Nueva página en PicandoCódigo: Programación Url: http://picandocodigo.net/2008/08/nueva-pagina-en-picandocodigo-programacion/
[11:44] <nicatron> 3- Post: Cambiando el diseño del blog Url: http://picandocodigo.net/2008/08/cambiando-el-diseno-del-blog/
[11:47] <fbt> hola nicatron
[11:47] <nicatron> Hola fbt!
[11:47] <fbt> nicatron: todo bien?
[11:48] <fbt> nicatron:
[11:48] <nicatron> ¿qué querés fbt?

A veces son temperamentales, los bots también pueden tener un mal día. En el siguiente enlace, pueden encontrar algunas conversaciones célebres de Uma.

Feed de comentarios | Url para Trackbacks | Suscribirse a los posts por correo electrónico

9 comentarios en este post

  1. Avatar Juan Funez | One Frag Left! 12 Agosto. 2008 - 1:39 pm Firefox 1.5.0.7 Fedora 64 bits

    Te falto agregar el link a las UMA quotes [0]
    No tiene desperdicio.

    0:
    http://montevideolibre.org/chatirc:uma:quotes

  2. Avatar fernando 12 Agosto. 2008 - 1:50 pm Debian IceWeasel 3.0.1 Debian GNU/Linux

    No, de hecho lo publiqué al final del post 😛

    La verdad que Uma es una grande.
    Saludos!

  3. Avatar Juan Funez | One Frag Left! 12 Agosto. 2008 - 1:54 pm Firefox 1.5.0.7 Fedora 64 bits

    Ups!
    Mal yo.
    Que grande Uma!
    Saludos.

  4. Avatar Bernabé García 12 Agosto. 2008 - 5:53 pm Konqueror 3.5 Debian GNU/Linux

    Una pequeña corrección: no es correcta la inferencia sobre que UMA está publicada porque es GPL. Muchos programas GPL no publican su código fuente. De hecho la GPL dice que hay que disponibilizar el código sólo cuando se distribuye la aplicación.

    Por lo tanto sería más bien una suma: Uma es GPL y su código está disponible en Internet.

  5. Avatar fernando 12 Agosto. 2008 - 10:55 pm Debian IceWeasel 3.0.1 Debian GNU/Linux

    Listo, corregido acá y en la wiki.

  6. Avatar Andrés Ambrois 13 Agosto. 2008 - 12:23 am Konqueror 4.1 GNU/Linux

    De hecho hace algún tiempo decidimos con fcr y luar que la licencia de Uma es la Affero General Public Licence versión 3. La AGPL agrega una cláusula que obliga al software que corre sobre una red a tener su código disponible en esa misma red. Es una licencia que proteje nuestras libertades sobre software que corre como servicio.
    Por este motivo creo que la van a ver seguido apareciendo sobre MVDL 🙂

  7. Avatar Donpiluso 13 Agosto. 2008 - 1:21 am Opera 9.50 Windows XP

    Algunas conversaciones con Uma, son sencillamente maravillosas. Me hizo descostillar de risa.

    Lo que no entiendo Fernando, es como toleras que tu bot te conteste mal. Un pequeño ban para que aprenda no vendría mal.

  8. Avatar fernando 13 Agosto. 2008 - 1:56 am Debian IceWeasel 3.0.1 Debian GNU/Linux

    Quedó corregido doble A. Es LA licencia para MontevideoLibre, ¿no?

    Donpiluso, los bots también tienen su carácter, hay que tratarlos con cariño. Por una vez que me hable mal, se le perdona…

  1. WordPress Primer jornada de la RubyConf Uruguay 2010 | Picando Código | 1 Noviembre. 2010 - 1:31 am

    […] Olga dió una charla sobre IRC y Ruby, para aquellos que hemos usado bots de IRC (me hizo acordar a Uma la bot de Montevideolibre). También hubo charla de diseño por Nicolás Barrera y un par más que en este momento no […]

Dejar un comentario

Toasty!