V0.7 09-01-98 Manuel de Vega Barreiro. mbarreiro@red.madritel.es

Ideas para crear un conjunto descentralizado de paginas web Linux

1 - Introducción

De todos es conocida la dificultad de localizar información sobre Linux en el MMM (Léase Mundo Mundo Mundial, WWW), la cantidad de paginas con información duplicada, y el caos de organización. Durante un tiempo he visto distintas iniciativas para crear un directorio ordenado sobre Linux,a entre ellas la mía de Linux Landia, con resultados más o menos conseguidos. Lo que acaba quedando claro despues de mantener una página de este tipo, es que genera demasiado trabajo para una sola persona, y que por otro lado coordinar un grupo para mantenerla organizada es bastante complejo.

2 - Objetivos

Este documento pretende describir una estructura que permita descentralizar el mantenimiento del directorio, distribuir las paginas a lo largo de diferentes servidores de Web y mantener los enlaces al día de una forma automática.

De esta forma se conseguiría reutilizar las paginas existentes en la actualidad, aportar coherencia a la estructura del directorio, distribuir el mantenimiento entre todas la personas posibles y evitar la duplicidad de esfuerzos.

Las paginas no deben tener una imagen comun, solo deberan incluir en un lugar visible el logotipo del Directorio Linux Disperso (DLD). Este Logotipo sera el vinculo entre todas las paginas del directorio.

Se trata en definitiva conseguir que la información existente sobre Linux se aproveche y sea de utilidad al mayor numero posible de usuarios.

3 - Las bases.

El sistema seguirá la misma filosofía que DNS, dividiéndose el directorio en dominios jerárquicos. Cada dominio o grupo de dominios (zona) tendrá un administrador encargado de su mantenimiento, aunque podrá dividirlo y ceder la administración de los subdominios generados a terceras personas. Cada enlace se conocera por su FQDN (Full Qualified Directory Name), que definira de una forma unica la posicion de un enlace en el arbol del directorio.

4 - descripción de la estructura.

La estructura empieza en la pagina Raíz:

disperso.linux

debajo se creara un primer nivel de ordenación por temas que deberán ser decididos al principio para estabilidad al sistema. Por supuesto siempre se podrían crear nuevas entradas en este nivel. (Aquí un dibujo vendría de perlas).

disperso.linux.distribuciones
disperso.linux.documentacion
disperso.linux.ayudas
disperso.linux.comunicaciones
disperso.linux.grupos
disperso.linux.aplicaciones
disperso.linux....

Cada nivel puede a su vez dividirse en nuevos niveles para crear la estructura de directorio. Un administrador (o grupo de administradores) se ocupara de mantener este primer nivel, e ira delegando la administración de los niveles inferiores cuando surjan linuxeros dispuestos a hacerse cargo de una rama del árbol.

La persona que se haga cargo de una rama puede a su vez delegar el mantenimiento de zonas bajo su responsabilidad a otras personas.

4.1 Descripcion de la base de datos.

La base de datos usa la libreria DB_File basada en Berkeley DB, para crear una base de tipo hash.

La clave de cada registro es FQDN, y cada registro contiene los siguientes campos:

(*1). 1 indica un acceso correcto, 0 un fallo en el enlace. El valor se ira decrementando despues de cada comprobacion fallada. De esta forma se podria notificar los errores despues de un numero determinado de fallos, o incluso eliminar automaticamente los enlaces rotos.

(*2). Dado que los distintos servidories de paginas Web devuelven la fecha de modificacion de la pagina en formatos diferentes, he optado por esta solucion de compromiso: almacenar el string tal cual y compararlo en cada comprobacion para ver si ha variado.

5 - Automatización del mantenimiento

Cada administrador dotara a los ficheros index.html de entrada en los servidores (puede haber varios en un mismo servidor) de una cabecera que permitirá localizar la situación de la pagina en la estructura, los niveles inferiores que derivan del servidor y las paginas quiera anunciar como enlaces (paginas bien conocidas 'PBC').

Un usuario que quiera automatizar la actualización de las paginas PBC que incluya en sus paginas, tendrá a su vez que incluir una cabecera en sus paginas. Si quiere ofertar parte de su pagina e integrarla en el directorio sin colaborar directamente en la administración, deberá informar al administración de su zona para que la incluya como pagina bien conocida.

6 - Elementos de la cabecera

Las cabeceras hacen uso del campo tipo META previsto en la especificación de html.

<META NAME="" CONTENT="">

NAME		CONTENT
RP_FQDN		FQDN de la Pagina raíz del directorio
RP_URL		URL de la pagina raíz del directorio
RP_MAIL		Dirección de correo del administrador
RP_DES		descripción de la pagina.
	
MP_FQDN		FQDN de la Pagina Maestra de la zona
MP_URL		URL de la pagina 
MP_MAIL		Dirección de correo del administradora de la zona
MP_DES		descripción de la pagina.

AP_FQDN		FQDN de una pagina administrada
AP_URL		URL de una pagina administrada
AP_MAIL		Dirección del administrador de la zona
AP_DES		descripción de la pagina.

DP_FQDN		FQDN de una pagina delegada
DP_URL		URL de una pagina delegada
DP_MAIL		Dirección del administrador de la zona delegada
DP_DES		descripción de la pagina.

PP_FQDN		Pagina bien conocida.
PP_URL		URL de la pagina
PP_MAIL		propietario
PP_DES		descripción.

BB_FQDN		Forzar Borrado de Registro
BB_URL		URL de la pagina
BB_MAIL		propietario
BB_DES		descripción.

El tipo AP existe para preparar el terreno a las futuras paginas delegadas DP.

La primera idea era incluir las cabeceras en el fichero de entrada de cada zona, pero estoy pensando que seria mejor ponerla en una pagina independiente (ej. disperso.html).

La primera opcion tiene la ventaja de que al pagina de entrada es normalmente la que recibe mas atencion por parte del adminsitador de una Web, sin embargo puede incrementar notablemente su tamaño.

La segunda tiene el inconveniente de que el administrador tiene que actualizar una pagina adicional.

6.1 - ejemplos

6.1.1 - Ejemplo de cabecera para el Raíz

<!-- descripción del raíz del directorio -->
<META NAME="RP_FQDN" CONTENT="disperso.linux">
<META NAME="RP_URL" CONTENT="http://www.linuxlots.com/~barreiro/MMM/index.html">
<META NAME="RP_MAIL" CONTENT="mbarreiro@red.madritel.es">
<META NAME="RP_DES" CONTENT="Directorio Disperso Linux Castellano">
  <!-- descripcion de la pagina maestra -->
<META NAME="MP_FQDN" CONTENT="disperso.linux">
<META NAME="MP_URL" CONTENT="http://www.linuxlots.com/~barreiro/MMM/index.html">
<META NAME="MP_MAIL" CONTENT="mbarreiro@red.madritel.es">
<META NAME="MP_DES" CONTENT="Directorio Disperso Linux Castellano">
    <!-- Paginas Bien Conocidas de disperso.linux -->
<META NAME="PP_FQDN" CONTENT="disperso.linux.presentacion">
<META NAME="PP_URL" CONTENT="http://www.linuxlots.com/~barreiro/presentacion.html">
<META NAME="PP_MAIL" CONTENT="mbarreiro@red.madritel.es">
<META NAME="PP_DES" CONTENT="Presentacion del directorio Linux disperso">
<META NAME="PP_FQDN" CONTENT="disperso.linux.indice">
<META NAME="PP_URL" CONTENT="http://www.linuxlots.com/~barreiro/indice.html">
<META NAME="PP_MAIL" CONTENT="mbarreiro@red.madritel.es">
<META NAME="PP_DES" CONTENT="Indice del directorio Linux disperso">
<!-- dominios que forman parte de la zona raiz y administrados por ella -->
<META NAME="AP_FQDN" CONTENT="disperso.linux.ayudas">
<META NAME="AP_URL" CONTENT="http://www.linuxlots.com/~barreiro/ayudas/index.html">
<META NAME="AP_MAIL" CONTENT="pbar@arrakis.es">
<META NAME="AP_DES" CONTENT="Ayudas para usuarios de Linux">
  <!-- Paginas Bien Conocidas de ayudas-->
<META NAME="PP_FQDN" CONTENT="disperso.linux.ayudas.listas">
<META NAME="PP_URL" CONTENT="http://www.linuxlots.com/~barreiro/ayudas/listas.html">
<META NAME="PP_MAIL" CONTENT="pbar@arrakis.es">
<META NAME="PP_DES" CONTENT="Listas de ayudas para usuarios de Linux">
<META NAME="PP_FQDN" CONTENT="disperso.linux.ayudas.news">
<META NAME="PP_URL" CONTENT="http://www.linuxlots.com/~barreiro/ayudas/news.html">
<META NAME="PP_MAIL" CONTENT="pbar@arrakis.es">
<META NAME="PP_DES" CONTENT="News de ayudas para usuarios de Linux">

<META NAME="AP_FQDN" CONTENT="disperso.linux.distribuciones">
<META NAME="AP_URL" CONTENT="http://www.distri.es/index.html">
<META NAME="AP_MAIL" CONTENT="mbarreiro@red.madritel.es">
<META NAME="AP_DES" CONTENT="distribuciones de Linux>"
  <!-- Paginas Bien Conocidas de distribuciones-->
<META NAME="PP_FQDN" CONTENT="disperso.linux.dsitribuciones.redhat">
<META NAME="PP_URL" CONTENT="http://www.redhat.es/index.html">
<META NAME="PP_MAIL" CONTENT="redman@arrakis.es">
<META NAME="PP_DES" CONTENT="Pagina en Castellano de Red Hat">
<META NAME="PP_FQDN" CONTENT="disperso.linux.distribuciones.debian">
<META NAME="PP_URL" CONTENT="http://www.debian.es/index.html">
<META NAME="PP_MAIL" CONTENT="debianman@arrakis.es">
<META NAME="PP_DES" CONTENT="Pagina en Castellano de debian">

<META NAME="AP_FQDN" CONTENT="disperso.linux.comunicaciones">
<META NAME="AP_URL" CONTENT="http://www.comuni.es/index.html">
<META NAME="AP_MAIL" CONTENT="x25man@arrakis.es">
<META NAME="AP_DES" CONTENT="comunicaciones en Linux">
  <!-- Paginas Bien Conocidas (cedida por un usuario) -->
<META NAME="PP_FQDN" CONTENT="disperso.linux.comunicaciones.infovia">
<META NAME="PP_URL" CONTENT="http://www.pepe.es/~pepe/infovia.html">
<META NAME="PP_MAIL" CONTENT="pepe@arrakis.es">
<META NAME="PP_DES" CONTENT="Conexion a infovia con Linux">

<!-- dominios con administracion delegada -->
<!-- aqui no hay PBC por que se ha delegado -->
<!-- y cada administrador de zona mantiene la informacion -->
<!-- en la cabecera de su pagina maestra -->
<META NAME="DP_FQDN" CONTENT="disperso.linux.documentacion">
<META NAME="DP_URL" CONTENT="http://www.linuxlots.com/~barreiro/doc/index.html">
<META NAME="DP_MAIL" CONTENT="mbarreiro@red.madritel.es">
<META NAME="DP_DES" CONTENT="Documentacion sobre Linux">

<META NAME="DP_FQDN" CONTENT="disperso.linux.aplicaciones">
<META NAME="DP_URL" CONTENT="http://www.jet.es/aplica/index.html">
<META NAME="DP_MAIL" CONTENT="jillona@jet.es">
<META NAME="DP_DES" CONTENT="Aplicaciones para Linux">

<META NAME="DP_FQDN" CONTENT="disperso.linux.grupos">
<META NAME="DP_URL" CONTENT="http://www.ja.es/index.html">
<META NAME="DP_MAIL" CONTENT="admin@ja.es">
<META NAME="DP_DES" CONTENT="Grupos Linux en Castellano">

Sobre hardware, grupos y aplicaciones no hay nada, porque se ha delegado el mantenimiento.

6.1.2 - Ejemplo de cabecera para una zona delegada

<!-- descripcion del raiz del directorio -->
<META NAME="RP_FQDN" CONTENT="disperso.linux">
<META NAME="RP_URL" CONTENT="http://www.linuxlots.com/~barreiro/MMM/index.html">
<META NAME="RP_MAIL" CONTENT="mbarreiro@red.madritel.es">
<META NAME="RP_DES" CONTENT="Directorio Disperso Linux Castellano">
<!-- descripcion de la pagina maestra -->
<META NAME="MP_FQDN" CONTENT="disperso.linux.aplicaciones">
<META NAME="MP_URL" CONTENT="http://www.jet.es/aplica/index.html">
<META NAME="MP_MAIL" CONTENT="jillona@jet.es">
<META NAME="MP_DES" CONTENT="Aplicaciones para Linux">
  <!-- Paginas Bien Conocidas de aplicaciones-->
lista de las PBC ofertadas o cedidas por usuarios.
<META NAME="MP_FQDN" CONTENT="disperso.linux.aplicaciones.graficos">
<META NAME="MP_URL" CONTENT="http://www.jet.es/aplica/graficos.html">
<META NAME="MP_MAIL" CONTENT="jillona@jet.es">
<META NAME="MP_DES" CONTENT="Aplicaciones graficas para Linux">
<!-- dominios que forman parte de la zona raiz y administrados por ella -->
Descripcion de los subdominios gestionados directamente, incluyendo las
PBC.
<!-- dominios con administracion delegada -->
Descpricion de los subdominios con administracion delegada.
<!-- aqui no hay PBC por que se ha delegado -->

6.1.3- Ejemplo de pagina de usuario.

En el caso de un usuario que quiere incluir su pagina en el directorio, pero no quiere líos de administración, enviara información de su pagina al administrador de la zona que crea mas adecuada. Este le dará de alta o le remitirá al administrador adecuado.

El administrador incluirá la siguiente cabecera en su index

<!-- Paginas Bien Conocidas -->
<META NAME="PP_FQDN" CONTENT="disperso.linux.comunicaciones.infovia">
<META NAME="PP_URL" CONTENT="http://www.pepe.es/~pepe/infovia.html">
<META NAME="PP_MAIL" CONTENT="pepe@arrakis.es">
<META NAME="PP_DES" CONTENT="Conexion a infovia con Linux">

A partir de este momento la única obligación del usuario es comunicar el cambio de URL de la pagina a su administrador. El programa que comprueba los enlaces detectara las actualizaciones de forma automatica.

Por otro lado el administrador puede dar de baja la pagina, si esta desaparece.

6.1.4 Delegación de un dominio.

Cuando alguien quiera hacerse cargo de un dominio, solo hay que enviarle la definición propia del dominio, los subdominios que incluye y las PBC. Una vez dado de alta en el nuevo servidor, se deja en el padre solo la dirección del nuevo servidor. El resto de la información desaparece del padre, y pasa a ser responsabilidad de nuevo administrador, que deberá incluirla en su pagina de entrada y mantenerla al día.

7 - Procesos automáticos.

7.1 - Creación automática de un índice del directorio

Partiendo de la cabecera del índice, es fácil recorrer cada rama y obtener así un índice global del directorio (perl). Este índice se pondría como un enlace en la pagina raíz del directorio, y en cualquier pagina que lo desee. Con el mismo programa los administradores de subdominios pueden a su vez crear sus propios índices. Ya en plan guapi se podría incluso hacer en plan gráfico.

Todos los programas se pueden ejecutar como un CGI en el servidor raiz de DLD, o bien en modo local, ejecutandolo desde la linea de comados (eso con la conexion a internet activa).

7.1.1 Comprobador de cabeceras.

Comprueba la sintaxis de la cabecera de una zona. De momento trabaja leyendo el fichero del servidor, pero seria bueno una version que lea el fichero en local.

Beta dld_comprueba.cgi

7.1.2 Generación de la base de datos con la información de cabeceras.

Lee la cabecera de cada zona delegada, comprueba la sintaxis y genera la base de datos. Realiza un busqueda recursiva de todas las paginas de tipo DP, pero no comrpueba los enlaces de ningun otro tipo.

De momento este programa se ejecuta en el servidor que contiene la pagina raíz del directorio y se lanza de forma manual. Tambien funciona si se ejecuta en local pero con conexion a internet.

La idea es que se ejecute de forma automatica en el servidor raíz en periodos concretos.

Beta dld_base_todo.cgi

Los administradores que lo deseen podrian ejecutar el programa en su propio servidor y crear un subdirectorio con sus dominios delegados.

7.1.3 Lectura de la base.

Lee los datos de la base del servidor raíz y los presenta en la pantalla.

Beta dld_base_lee.cgi

7.1.4 Comprobador de estado de enlaces.

Comprueba el estado de cada enlace en la base de datos. El estado se almacena para su uso posterior. Los estados posibles son: Pagina accesible -> 1 Pagina no accesible -> 0 También comprueba cambios en las paginas, con el fin de presentar el correspondiente icono en las paginas nuevas o actualizadas.

Beta dld_ping_todo.pl

7.1.5 Generación del índice de directorio.

Basándose en la información de la base de datos, genera un pagina web con la estructura del directorio.

Esta no es mas que una implementacion de referencia, la presentación del directorio podría hacerse de muchas formas, por niveles en una sola pagina, por niveles en varias paginas, con distintos grados de profundidad, por busqueda de cadenas de caracteres.

Beta dld_indice_crea.cgi 7.1.6 Revisión de una zona por petición.

Una vez que el administrador de una zona realiza cambios, deberia poder indicarselo al directorio raíz, para que este actualice la informacion.

dld_revisa_dp.cgi

7.2 - Librerias comunes.

Variables globales y directivas de ejecucion.

Beta dld_fun.pm

Rutinas de uso general.

Alpha dld_disperso_lib.pm 7.3 - Detección de enlaces rotos en las zonas delegadas.

Se puede automatizar fácilmente la detección de enlaces rotos para cualquier zona de administración (perl), facilitando de esta manera la consistencia del directorio. Esta operación puede realizarse desde cualquier nivel del directorio y con cualquier profundidad.

Beta 0.9 dld_ping_todo.cgi

El programa dld_ping_todo.cgi es una muestra de como hacerlo, aunque el comprobador no deberia escribir en la base de datos (solo el administrador del directorio raiz y los programas que pone a disposicion de los demas admnistardores deberian modificarla).

7.4 - Comprobación de enlaces rotos en paginas de usuarios.

Si en tus paginas (aunque no formen parte del directorio) pones en la cabecera la descripción META adecuada, podrás comprobar los enlaces a PBC y Paginas del directorio de forma automática.

Cabecera.

<!-- descripcion del raiz del directorio -->
<META NAME="RP_FQDN" CONTENT="disperso.linux">
<META NAME="RP_URL" CONTENT="http://www.linuxlots.com/~barreiro/MMM/index.html">
<META NAME="RP_MAIL" CONTENT="mbarreiro@red.madritel.es">
<META NAME="RP_DES" CONTENT="Directorio Disperso Linux Castellano">
<!-- Paginas del directorio que has incluido en tu pagina-->
<META NAME="PP_FQDN" CONTENT="disperso.linux.documentacion">
<!-- Paginas Bien Conocidas que has incluido en tu pagina-->
<META NAME="PP_FQDN" CONTENT="disperso.linux.comunicaciones.infovia">
<META NAME="PP_FQDN" CONTENT="disperso.linux.presentacion">
Es correcto solo se necesita el FQDN para los dominios y las PBC. De nuevo un programa en perl se puede ocupar del tema.

7.5 - Cache de niveles inferiores. Una vez que la primera parte de la estructura y los programas este en marcha, se podria pensar en crear un sistema de `Cache' de niveles inferiores que facilite la creacion del directorio completo.

Las zonas maestras que dispongan de medios y lo deseen pueden mantener una base con las informacion de sus enlaces (accesibilidad, Fechas de creacion y modificacion, etc.), de forma que el nivel superior solo tenga que leer los datos (y no conectarse a cada pagina)para estar al dia.

8 - Colaboraciones

Para poner en marcha este invento y después mantenerlo se necesita por supuesto colaboración.

8.1 Programadores

Para discutir y crear los distintos módulos de mantenimiento. El lenguaje escogido es Perl 5.x. Motivo, lo uso a menudo para administración, y para los CGI de mis paginas. De cualquier forma nada impediría usar otros lenguajes, pero por el momento mejor usar solo uno.

8.2 Administradores de zona

Gente con espacio propio de Web (la zona personal que suelen ceder los proveedores de Internet) que quieran hacerse cargo de zonas de primer nivel y segundo nivel. Eso si se requiere cierta estabilidad en el trabajo.

8.3 Gente que aporte sus paginas. Cualquier trabajo que tengas en tus paginas personales será bienvenido, solo tienes que ponerte en contacto con el administrador de la zona que mas se adapte al contenido e indicarle la dirección URL.

8.4 Gente que revise y aporte documentación.

Necesitamos gente que revise la información que vayamos incluyendo, nos aporte información de paginas interesantes, y nos envíe cualquier comentario de interés.

8.5 Diseñadores gráficos.

Hay que dar una imagen a Linux disperso: cabecera y pie de pagina, estructura de las paginas, y por supuesto un logotipo. El logo y la imagen de DLD están ya en marcha, aunque por supuesto se admiten comentarios.

Como veis hay de todo y para todos los gustos.

9 - Conclusión.

Evidentemente hay que currarse el tema, crear los programas en perl, lanzar una prueba piloto con tres o cuatro servidores, etc. Pero creo que la base es buena y se podría llegar a algo interesante.

Si tienes comentarios sobre el tema, me encantaría recibirlos. Si lo ves viable se podría pensar en crear un mini-grupo para la prueba piloto.

Como podeis ver ya estamos realizando pruebas usando tres servidores:

con resultados bastante esperanzadores.

A - Primeros y segundos niveles.


Documentación
	Manuales
	Guías Como
	Libros
	Cursos
	Revistas
	Estándares
Software
	Distribuciones
	Aplicaciones
	Lenguajes
	Emuladores
Juegos

Administración
	Ayudas
	Seguridad
	Núcleo
	Comunicaciones	
Hardware
	Plataformas
	Portátiles
X11
	Servidores
	Escritorios
	Entornos de desarrollo	
Directorios



B - Recursos reutilizables.

B.1 - Linux en Movimiento y Glub.

lista de software ordenado

lista de Guías Como

la pagina de recursos en castellano

seguridad

B.2 - Linux Landia

Listas de correo Linux.

Comunicaciones en Linux.

Paginas personales.

revistas.

C - Estudio de tiempos.

C.1 - Lectura de los datos de zonas.

Los datos de las cabeceras no ocupan mucho, unos 250 Bytes por registro. Una cabecera de una zona grande podria tener digamos 50 registros, o sea en total 12,5KB. Una cabecera media unos 25, o sea 6KB.

ZG ->	18 sg    (tiempo de conexion 5 sg, velocidad 1KB).
ZM ->	11 sg
Condiderando un directorio con 10 primeros niveles (ZM) y 100 niveles de segundo nivel (ZG), se tardaria unos 30 minutos en generar la base de datos con todos los enlaces. No es un tiempo excesivo teniendo en cuenta que hablamos de unos 5000 enlaces supervisados y tiempo de conexion tomados de un enlace a internet tipo RTB.

C.2 - Comprobacion de enlaces.

Aquí la cosa se complica, si bien solo hay que conectar con la pagina y leer las primeras lineas, codigo de respuesta, fechas de modifcacion y creacion, la operacion global puede resultar mucho mas lenta por los fallos en las respuestas.

Cuando la respuesta de una pagina sea correcta la respuesta seria rapida, pogamos unos 10 sg. Ahora bien las paginas que no respondan apropiadamente pueden provocar la salida por temporizacion. La interrogacion de estas paginas se iria a los 90 sg (es el tiempo que he fijado en el temporizador).

Sin considerar los fallos los tiempos ya son de escandalo:

(5000 * 10) = 13 horas :-(

Si consideramos que un 5% de las paginas tengan problemas que provoquen temporizaciones, los tiempos para chequear todos los enlaces se disparan aun mas:
(5000 * 0.05) * 90 + 4750 * 10 = 19 Horas :-(

Por lo visto aqui hay un problema gordo.

Supongo que si el procedimiento se ejecuta como un proceso Unix normal y con un ancho de banda mayor, los tiempos serian mucho mas discretos.

M - Colaboradores y agradecimientos.

Bueno de momento estoy yo sólito (solo se ha anunciado de forma restringida), pero espero que haya pronto mas gente:

Aunque de momento no han entrado a saco en el proyecto, si han hecho interesantes comentarios y/o dedido paginas de su web:

N - Derechos de autor.

En principio no tengo claro que hacer con este tema. En general no tengo ningún problema en que se utilice la idea y los programas para cualquier tema relacionado con Linux, siempre con la idea Gnu detrás. Esto es puedes modificarlo a tu gusto siempre que lo indiques, sigas incluyendo el código completo y cites mi nombre o el del grupo de trabajo.

Si tienes intención de usar la idea y los programas para cualquier otro fin, deberías ponerte en contacto conmigo primero.
Mailto Home Home Buscadores Home Home Contador Home
mbarreiro@red.madritel.es Manuel de Vega Barreiro. ©