[IRC-DEV] La comunidad de desarrolladores hispanos
Manuel Villaverde (Souman)
cyberodin at cyberodin.com
Fri Apr 1 20:24:36 CEST 2005
ryden cual es el directorio para el cvs?
un saludo
----- Original Message -----
From: <ryden at chathispano.org>
To: "Desarrollo de/en IRC" <irc-dev at argo.es>
Sent: Monday, March 28, 2005 2:03 AM
Subject: Re: [IRC-DEV] La comunidad de desarrolladores hispanos
>> PD: Y ya de paso si eres tan amable Ryden, podrias comentar algo sobre
> tus Bases de datos?
> Bueno, aprovecharé la pregunta para comentar un poco por encima mis
> proyectos de IRC actuales (que espero poder librarme pronto de ellos de
> una vez):
> El primero es el ircuCH, un ircd basado en el ircu de undernet de hace dos
> años. Este tiene muchas mejoras respecto al ircd de irc-hispano: sólo hay
> que tener en cuenta que la base de irc-hispano es bastante antigua. Por
> ejemplo, una mejora remarcable y muy importante es que está dotado del
> sistema epoll para GNU/Linux, lo cual reduce considerablemente el consumo
> de CPU. El sistema de epoll fue implementado por mount en este ircd a
> partir de un parche de undernet. El sistema de bases de datos podeis verlo
> en http://cvs.chathispano.org/viewcvs.cgi/ircd/ircd/s_bdd.c?view=markup.
> El protocolo es parecido al de IRC-Hispano, aunque no igual. Entre otras
> cosas, la comunicación entre servidores es distinta, ya que desde que se
> creó la DB2 (que explicaré a continuación) se podían confundir los
> comandos de la DB con las tablas. Esto es porque las tablas DB2 se
> distinguen por ser letras en mayúsculas. Por tanto, si para hacer un JOIN
> a una tabla era:
> <numerico> DB * 0 J 0 <tabla>,
> y para introducir un registro en la tabla 'J' era:
> <numerico> DB * 0 J 1 registro :valor,
> claramente podía generar confusión. Por tanto los comandos van siempre
> después del servidor de destino:
> <numerico> DB * J 0 0 <tabla>.
> Otra cosa que puedo citar es la comprobación de corrupción en las tablas
> nada más enlazar dos servidores. Nada más finalizar la sincronización
> entre dos servidores se envían el hash de dicha tabla entre ellos, y si
> este no coincide se resincroniza la tabla. Es importante anotar que los
> leaf jamás envían una comprobación de hash, al igual que los hub nunca
> aceptan dicha comprobación ya que los servidores que deberían tener "bien"
> la tabla son los hub. Además, si en un enlace no coinciden hashes, tampoco
> coincidirían en el hub y acabaríamos con un borrado completo total de
> dicha tabla en toda la red, una catástrofe :).
> Otro apunte importante es que el borrado de una tabla (intencionado con el
> comando DELETE 'D') sí que funciona, se borra en toda la red
> perfectamente. En el ircd de irc-hispano ocurren "cosas raras" que
> consiguen que tras el borrado algún hub se queda con la tabla intacta y la
> resincroniza, haciendo imposible el borrado no manual.
> La DB2 se basa en una ampliación de la DB1 de ChatHispano. Mientras que la
> DB1 tenía la siguiente síntaxis:
> tabla -> { clave1 = valor; clave2 = valor; clave3 = valor }
> la DB2 tiene la siguiente síntaxis:
> tabla -> { clave1 -> { subclave1 = valor; subclave2 = valor }; clave2 -> {
> subclave1 = valor; subclave2 = valor } }
> De momento el ircd sólo soporta la tabla 'C' de canales. Su síntaxis sería
> la siguiente:
> Tabla 'C':
> - #opers -> { founder = "ryden"; modos=5; successor = "arima"; entrymsg =
> "Bienvenidos" }
> La tabla 'o' de IRC-Hispano no existe en el ircd de chathispano, sino que
> tenemos la tabla 'f', en la cuál se definen qué modos puede tener cada
> usuario mediante una serie de flag, así pues:
> +X = 1
> +k = 2
> +h = 8
> Entonces, un usuario con acceso a los modos +Xkh tendría en dicha tabla el
> valor 8+2+1 = 11.
> También disponemos de la tabla 's' de "spam", es una tabla donde se
> introducen una serie de badwords que el ircd procesará. Así, tienes
> protección anti-spam en cualquier canal del ircd por muy oculto que esté,
> e incluso protección en privados. Los badwords se sustituyen por defecto
> por la palabra "(censurado)", aunque puedes modificar dicha palabra
> mediante el registro especial "." de la tabla 's'. La tabla funciona de la
> siguiente manera:
> Tabla 's':
> palabraprohibida -> flags
> Los flags, al igual que como se hacía en la tabla 'f', aquí también se
> suman, y la lista es la siguiente:
> - 1 -> Procesa en canales con modo +B
> - 2 -> Procesa en privados
> - 4 -> Procesa en TODOS los canales tengan +B o no
> - 8 -> Procesa en los quit.
> Por tanto, si quieres cargarte cierto spam en cualquier parte, deberías
> ponerle un 15 a dicha palabra :).
> Bueno, no me extiendo más con esto, aunque hay para rato :).
>
>
> Otro proyecto (el cuál es mi favorito), es la base de servicios modular y
> escalar 'distant'. Ha sufrido varias etapas y ahora mismo el desarrollo
> está congelado por falta de tiempo/ganas. Podéis encontrar el código
> fuente en http://cvs.chathispano.org/viewcvs.cgi/distant/?root=services y
> tiene licencia GPL (aunque estoy pensando en cambiarla a BSD). Es un
> proyecto ambicioso en el que he pretendido en todo momento que no se
> limiten al IRC, sino que sean compatibles los servicios con cualquier
> protocolo de charla en internet, sea irc, xmpp o msn messenger. Dicha base
> no incluye ningún servicio, pero le da al programador la posibilidad de
> programar unos servicios de una forma muy sencilla y sin tener que
> preocuparse de qué protocolo será utilizado, ya que la base se encarga de
> traducir todos los comandos del protocolo a comandos "unificados", es
> decir, que conectes a donde conectes distant, los servicios cargados
> siempre recibirán lo mismo (idem con los modos, por cierto). La verdad es
> que el proyecto ya está prácticamente terminado, debería ponerme a ello de
> una puta vez xD. Tan sólo le queda el sistema de bases de datos (que
> también será modular :)), la comunicación de los bots con la base (a día
> de hoy sólo hay comunicación de la base con los bots), y terminar el
> sistema de idiomas (le faltan pocas líneas a esto :P). El módulo de
> protocolo con el que he ido programandolo ha sido P10-full, compatible con
> el ircd de chathispano, pero cuando lo termine supongo que me pondré con
> P10-irchispano y UnrealIRCD :). Pues nada, todas las críticas
> CONSTRUCTIVAS son bienvenidas (así que ya sabe quién ya sabe que es que no
> es bienvenido).
>
> Saludos, RyDeN. (Perdonad por el tostón de email que vais a recibir xD).
>
>
>
> _______________________________________________
> IRC-Dev mailing list Canal Oficial: #irc-dev en IRC-Hispano
> IRC-Dev at argo.es http://www.argo.es/~jcea/wikis/irc-dev/
> http://mailman.argo.es/listinfo/irc-dev http://www.irc-dev.net/
> http://www.sindominio.net/ayuda/preguntas-inteligentes.html
>
More information about the IRC-Dev
mailing list