
<!doctype linuxdoc system>
<article>
<title>
El manual de ed2k-gtk-gui
</title>
<author>
Thomas Ritter (<tt>th.ritter <em>en</em> gmx <em>punto</em> net</tt>),
Tim-Philipp M&uuml;ller (<tt>t.i.m <em>en</em> orange <em>punto</em> net</tt>),
traducción al español por Juan Martín López (<tt>nauj27 <em>en</em> teleline
<em>punto</em> es</tt>)
</author>
<date>
Version 0.6.0 , Jue Sep 25 21:00:00 BST 2003
</date>
<abstract>
Este manual describe la instalación y uso de ed2k-gtk-gui, versión 0.6.0,
para los clientes en línea de comandos de eDonkey2000 u Overnet.
</abstract>

<toc>

<sect>Introducción

<sect1>Estado del documento
<p>
<bf>Este documento está incompleto y aún es trabajo-en-progreso.
Si no puede encontrar la respuesta a sus cuestiones en él, por favor consulte el
<htmlurl url="http://ed2k-gtk-gui.sourceforge.net/faq.shtml" name="FAQ"></bf>. Sin
embargo, este documento es más reciente y es el único que sigue actualizandose (las
FAQs están disponibles por otro lado en más idiomas).
</p>

<sect1>¿Qué es eDonkey2000? ¿Qué es Overnet?
<p>
<bf>eDonkey2000</bf> es un programa peer-to-peer para compartir ficheros escrito por Jed McCaleb (jed <em>at</em> eDonkey2000 <em>dot</em> com) de MetaMachine.
</p>

<p>
<bf>Overnet</bf> es otro programa peer-to-peer para compartir ficheros, escrito también por Jed McCaleb (jed <em>at</em> eDonkey2000 <em>dot</em> com) de MetaMachine.
</p>

<p>
Overnet es el nuevo sucesor sin servidores para eDonkey2000. Desde el punto de vista de la
tecnología, Overnet es muy superior a eDonkey2000. Sin embargo, en el momento de escribir esto
(Enero 2003), sigue habiendo más contenido en la red eDonkey2000. Se espera que esta situación
cambie en un futuro próximo.
</p>

<p>
Desde la versión 0.5.0, usted puede usar ed2k-gtk-gui también con el cliente en línea de comandos de overnet.
Casi todo ha sido reescrito para el cliente en línea de comandos de edonkey en el siguiente texto, de modo
que también se aplica al cliente de overnet.
</p>

<sect1>¿Qué es 'GUI'? ¿Qué es un 'core'?
<p>
Bajo GNU/Linux, edonkey es diferente al que se conoce en la versión de Windows - consiste en dos partes, la GUI
 (<em>I</em>nterfaz <em>G</em>ráfica de <em>U</em>suario) y el core. El <em>core</em> es la parte responsable de
 todo el trabajo de compartición de ficheros (subidas, descargas, conexión a servidores, publicar ficheros), y el
 GUI nos muestra qué es lo que está haciendo el core.
</p>
<p>
Esta separación de GUI y core tiene varias ventajas: una es que el GUI no necesita ejecutarse en el mismo ordenador
 que el core. De este modo puede controlar remotamente un core ejecutándose en su router linux desde una GUI que
 está funcionando en su ordenador personal en su habitación, o desde el trabajo, o desde la casa de un amigo (vea
 las consideraciones de seguridad en la última sección); otra ventaja es que cuando el GUI falla *tos* cosa que
 por supuesto nunca ocurre *tos*, entonces el core continuará felizmente descargando y enviando, y solo tendrá que
 reiniciar el GUI.
</p>

<p>
Ayuda con la documentación siempre es bienvenida, por favor envíe errores, comentarios y sugerencias
 a Tim-Philipp Müller (<tt>t.i.m <em>at</em> orange <em>dot</em> net</tt>).

</p>


<sect1>Cambios
<p>
<bf>2002-Nov-09</bf>
<em>unidas la versión inicial de este documento con la del código fuente [Tim]</em> 
</p>
<p>
<bf>2003-Ene-31</bf>
<em>actualizado el manual para reflejar los cambios en 0.5.0 e incluídos comentarios acerca de overnet [Tim]</em>
</p>
<p>
<bf>2003-Sep-04</bf>
<em>actualizado el manual a la v0.6.x [Tim]</em>
</p>

<sect>Instalación (GUI)
<p>
Es necesario que obtenga tanto el core como la GUI. Esta sección le infomará sobre cómo
 obtener e instalar la GUI. La siguiente sección le indicará cómo obtener e instalar el core.
</p>
<p>
El GUI es sólamente la Interfaz Gráfica de Usuario (léase: ventanas y botones) para el cliente en línea
 de comandos de eDonkey2000. El cliente en línea de comandos de eDonkey2000 no es de cógido abierto, sino
 software propietario que usted debe obtener de forma separarda. Sin el cliente en línea de comandos (='core'),
 la GUI no tiene mucho sentido. <bf>Obtenga el core de aquí</bf>:
<htmlurl url="http://ed2k-gtk-gui.sourceforge.net/core.shtml" name="http://ed2k-gtk-gui.sourceforge.net/core.shtml">.
</p>

<sect1>Cómo obtener el GUI
<p>
Usted puede obtener la última versión del GUI de
<htmlurl url="http://ed2k-gtk-gui.sourceforge.net" name="http://ed2k-gtk-gui.sourceforge.net">.
 Si tiene suerte, podrá encontrar versiones precompiladas empaquetadas .rpm o .deb para su distribución,
  de no ser así necesitará descargar el código fuente y compirlar el GUI usted mismo.
</p>

<p>
Si le gusta vivir a la última, también puede obtener el último código fuente desde CVS. CVS significa Concurrent
 Versioning System (sistema de versiones actual) y es un sistema cliente-servidor que es usado por desarrolladores
 para estar al día de los cambios hechos en el codigo fuente en todo momento. El ed2k-gtk-gui tiene su propio
 servidor CVS en sourceforge, y los desarrolladores pueden regularmente subir ('commit') los últimos cambios
 (arreglo de errores, nuevas caracterísiticas) al repositorio CVS.
 Los errores son siempre corregidos en el CVS lo primero, de forma que no tenga que esperar a la nueva versión
 liberada, usted puede acceder al CVS y descargar la más reciente versión del código incluso antes de que haya
 sido compilada y liberada. Instrucciones acerca de cómo hacer esto se encuentran en la
 <htmlurl url="http://ed2k-gtk-gui.sourceforge.net/download.shtml" name="web de descarga"> del GUI.
</p>

<sect1>Requerimientos

<p>

<itemize>
	<item>Un cliente en línea de comandos de eDonkey2000 u Overnet (=core)</item>
	<item>librerías gtk+ toolkit (gtk, gdk, pango, atk, gilb) (series 2.x; por favor use paquetes
	precompilados mientras le sea posible)</item>
	<item>librería gnet (gnet-2.0.x) (sólo si compila el GUI desde el código fuente)</item>
</itemize>

Para <bf>ejecutar un binario pre-compilado</bf> necesita tener las librerías gtk+-2.x en su sistema.
 Ejecute <tscreen><verb>'locate libgtk2 | grep ".so"'</verb></tscreen> para comprobarlo. 
 Si esto devuelve algún resultado, es que todo está correcto. Las librerías GTK+ están instaladas por defecto en,
 virtualmente todo sistema de escritorio linux que existe. Si tan solo desea ejecutar una versión precompilada
 del GUI, no necesita preocuparse por la librería gnet. Los paquetes de GUI tienen libgnet estáticamente enlazada,
 para evitar todo tipo de problemas.

Para <bf>compilar el GUI usted mismo</bf> debe no solo de tener la librería gnet-2.0.x y el toolkit gtk+2.x, si no también los respectivos <em>paquetes de desarrollo</em> (ficheros de cabecera etc.) de estas librerías. Ejecute
 <tscreen><verb>'pkg-config --libs gnet-2.0'</verb></tscreen> y
 <tscreen><verb>'pkg-config --libs gtk+-2.0'</verb></tscreen> para comprobar
 si realmente los tiene.
Si ambos comandos devuelven algo que no sea un mensaje de error, lo tiene todo correcto. En caso contrario necesitará
 instalar los paquetes de desarrollo, que usualmente se llevan un sufijo '-dev' o '-devel'.
Busque paquetes llamados 'gtk2-devel' (o 'libgtk2.0-dev o similar en debian) y 'gnet2-dev'
('libgnet2.0-dev' en debian) o similar. Note que hay dos versiones de GTK+ ahí fuera, las series
1.2.x y las series 2.x.y. Ambas versiones de gtk+ (1.2 y 2.x) deben ser capaces de
coexistir sin problemas.
Necesitará GTK+-2.x para el GUI. La versión actual de GTK+ es GTK+-2.2.4. Procure evitar GTK+-2.0.x si puede
(es la antigua, después de todo).

<sect1>Instalación del GUI a partir de paquetes .rpm o .deb
<p>
Descargue el paquete de su elección y use el aministrador de paquetes de su distribución para instalarlo. consulte
 el manual y la documentación de su distribución particular para obtener instrucciones acerca de cómo hacer esto.

<p>
Si su distribución usa paquetes RPM, puede usar el comando
<tscreen><verb>
# rpm -i ed2k-gtk-gui-0.6.0-2.i386.rpm
</verb></tscreen>

como root para instalar el GUI en su sistema (el nombre concreto del paquete puede variar).

<p>
Si usted está usando un sistema debian, instale el GUI con
<tscreen><verb>
# dpkg -i ed2k-gtk-gui-0.6.0-1_i386.deb
</verb></tscreen>

como root (el nombre concreto del paquete puede variar).


<sect1>Compilación e instalación del GUI desde el código fuente

<p>
Descargue el tarball (.tar.gz) y desempaquételo con
<tscreen><verb>
% tar xzf ed2k-gtk-gui_BLA.tar.gz
</verb></tscreen>

o descarguelo desde el repositorio CVS (ver más arriba), y cambie el directorio que contiene el código fuente con

<tscreen><verb>
% cd ed2k_gui/
</verb></tscreen>

</p>

<p>

Para compilar e instalar ed2k_gui en su sistema, escriba lo siguiente en el directorio base de la
distribución de ed2k_gui (i.e. el directorio donde está el fichero AUTHORS):

<tscreen><verb>
% ./configure
% make
% make install
</verb></tscreen>

<p>
Debido a que Ed2k_gui usa autoconf/automake no debería de tener problemas compilandolo. Si le
gusta vivir al límite y obtiene el código via CVS (vea la página web), entonces necesitará
ejecutar el script ./autogen para producir el archivo ./configure.

<p>

Probablemente necesitará <em>hacerse root</em> para instalar el GUI en su sistema. Así es como puede
hacerlo:

<tscreen><verb>
% su
Password:                   (escriba la clave del root aquí)
# make install
(aparecerán mensajes en la pantalla)
# exit
</verb></tscreen>
</p>

<p>
Ahora debe ser capaz de ejecutar el GUI símplemente escribiendo 'ed2k_gui' en una ventana de línea
 de órdenes (konsole o xterm o lo que sea), o pulsando ALT-F2 en Gnome/KDE y escribiendo 'ed2k_gui'
 ahí. <em>Sin embargo, aún sigue siendo necesario que instale el core antes de poder usar el GUI.</em>
 Por favor, proceda a la siguiente sección para instrucciones de cómo instalar el core.
</p>

<p>

Si tiene problemas con la ejecución reportelos al autor:
 <htmlurl url="mailto:uberdork@users.sourceforge.net" name = "Tim-Philipp Müller">,
 o bien en el
 <htmlurl url="http://sourceforge.net/forum/?group_id=61752" name="foro de ed2k-gtk-gui">.

</p>


<sect> Instalación (core)
<p>
Ahora que tiene el GUI instalado, necesita configurar su cliente en línea
de comandos de eDonkey2000 (=core). Esto ha demostrado ser un poco dificil en el pasado
debido a que el cliente en línea de comandos de eDonkey2000 es básicamente una aplicación
de windows que ha sido compilada y funciona en GNU/Linux (además de FreeBSD en 'modo
de emulación de linux'), y no se comporta siempre como las aplicaciones tipo unix.

No se preocupe por los detalles de lo siguiente. La mayoría de la gente nunca tendrá
problemas mayores.

<bf>Comienzo-Rápido:</bf> La manera más rápida de tenerlo funcionando es cojer la última
 versión del GUI, iniciarla (escribiendo 'ed2k_gui' en una línea de órdenes, o pulsando
 ALT-F2	en GNOME/KDE y escribiendo 'ed2k_gui' allí), y luego hacer clic en el botón
 'Inicio rápido'.

<sect1> ¿Qué versión del core debo elegir? (puede saltarselo)
<p>
Puede ver que hay diferentes versiones del core disponibles. Puede obtener la más reciente aquí:
<htmlurl url="http://ed2k-gtk-gui.sourceforge.net/core.shtml" name="http://ed2k-gtk-gui.sourceforge.net/core.shtml">.

<p>
Normalmente todo debe ir bien usando el último core oficial (actualmente es la versión 0.50.1).

<p>
¿Debe usted obtener un core de Overnet o de eDonkey2000? (ver introducción) No lo sé.
La red eDonkey2000 continúa teniendo más contenidos que la red Overnet, pero esto cambiará
pronto. La red Overnet es tecnológicamente superior, y también es el futuro ;) Overnet tiene
menos problemas en mi opinión, porque no necesita el mantenimiento de una lista de servidores
todo el tiempo. Solo necesita 'entrar' en la red overnet una vez (usando una IP y un puerto
de alguien que ya esté en la red overnet), y entonces Overnet mantiene los contactos totalmente
actualizados pos sí misma.

<p>
Pruebe ambas, y quédese con la que le funcione mejor a usted. Las dos, overnet y eDonkey
pueden usar enlaces-ed2k, y overnet puede continuar desargas que ha comenzado con eDonkey,
y viceversa, de modo que puede cambiar y volver sin problemas.


<sect1> Descargando y descomprimiendo el core

<p>

Obtenga un core actualizado de aquí:
<htmlurl url="http://ed2k-gtk-gui.sourceforge.net/core.shtml" name="http://ed2k-gtk-gui.sourceforge.net/core.shtml">.

<bf>Descárguelo a un subdirectorio dentro de su home</bf>, p.e. <tt>/home/joe/ed2k</tt>.

A continuación <bf>descomprímalo</bf> en la línea de comandos (puede hacerlo de diferentes formas por supesto, si sabe cómo):
<tscreen><verb>
% cd /home/joe/ed2k/
% tar xzf donkey0.50.1.tar.gz   (nombre de fichero exacto puede diferir)
</verb></tscreen>

Debe ahora tener un binario donkey en ese directorio, que debe de ser ejecutable, es decir, tener
la propiedad 'x' establecida (si no, establézcala con <tt>'chmod +x donkey0.50.1'</tt>):
<tscreen><verb>
% ls -l donkey0.50.1
-rwxr-xr-x    2 tim      tim       1159400 Jun 28 19:10 donkey0.50.1
</verb></tscreen>



<sect1> Guía rápida - Haciendo que todo funcione tan rápidamente como sea posible

<p>

Esto solo funcionará si planea usar el GUI y el core en el mismo ordenador. Si el core se ejecuta
 en un ordenador diferente al del GUI, necesitará configurarlo manualmente. Por favor, diríjase a la
 siguiente sección para obtener instrucciones sobre como hacerlo.

</p>

<p>

<itemize>
	<item>
	  Ha descargado e instalado la última GUI como se describe más arriba. Bien.
	</item>
	<item>
	  Dispone de un core descomprimido como se describe más arriba. Bien.
	</item>
	<item>
	  Inicie el GUI (escribiendo <tt>'ed2k_gui'</tt>).
	</item>
	<item>
	  Escriba la ruta completa al binario, e.g. '/home/joe/ed2k/donkey0.50.1' en el campo 'ruta' ('path')
	  de el diálogo 'conectar a' ('connect to').
	</item>
	<item>
	  Elija un nombre y contraseña arbitrarios. Evite caracteres especiales.
	</item>
	<item>
	  El nombre del host debe ser 'localhost' y el puerto debe ser 4663.
	</item>
	<item>
	  <tt>'ping localhost'</tt> debe funcionar. Si no es así, entonces use '127.0.0.1' como nombre
	  del host, o (mejor aún) ponga una línea con '127.0.0.1 localhost' en su fichero /etc/hosts.
	</item>
	<item>
	  <tt>'netstat -ln | grep 4662'</tt> no debe de mostrar ninguna salida.
	  Si lo hace, no se preocupe y vea si el GUI puede detectarlo y corregirlo.
	</item>
	<item>
	  <tt>'netstat -ln | grep 4663'</tt> no debe de mostrar ninguna salida.
	  Si lo hace, no se preocupe y vea si el GUI puede detectarlo y corregirlo.
	</item>
	<item>
	  Pulse el botón 'lanzar' ('spawn'). El diálogo debe mostrar ahora 'ejecutándose' ('running').
	  Pulse el boton '¡Adelante!' ('Go!').
	</item>
	<item>
	  Ahora debería estar conectado al core de forma correcta. Asegúrese de que en la
	  página 'Compartido' ('Shared') hay al menos un directorio listado. Si es así, todo
	  está correcto.
	</item>
	<item>
	  Clic derecho en la lista de servidores y descargue una lista de servidores actualizada para
	  conectarse a uno de ellos.
	</item>
</itemize>

Si este procedimiento no funciona, por favor, eche un vistazo a la página acerca del estado de la GUI
para consejos sobre qué hacer cuando algo va mal y consulte el resto de la documentación (FAQ y las
secciones siguiente) sobre cómo configurar el core de forma manual.



<sect1> Si se piensa que no funciona correctamente - configurando el core manualmente
<p>
Tengo que escribir esta parte todavía.



<sect> Uso <p>

<sect1> Ejecutando el GUI por primera vez

<p>
<bf>Iniciando el GUI:</bf> Por razones históricas, el binario del GUI es llamado 'ed2k_gui'
(mientras que el nombre del proyecto es 'ed2k-gtk-gui'). Hay varias formas de iniciar el GUI:
Una es la línea de comandos, en una ventana de consola/terminal (como xterm, konsole etc.),
símplemente escriba

<tscreen><verb>
%ed2k_gui
</verb></tscreen>

Esta también es la forma de la que necesita iniciar la GUI si algo no funciona (porque puede
imprimir en pantalla mensajes de error adicionales).
<p>
Alternativamente, en Gnome o KDE, pulse Alt+F2 y entonces introduzca 'ed2k_gui' en la ventana. Esto
debe iniciar el GUI también.

<p>

Si está <bf>ejecutando el GUI por primera vez</bf>, debería de no tener ningún servidor en su lista de
 servidores. Vaya a la página de servidores, pulse sobre el botón 'obtener lista de servidores' y espere
 unos segundos. Si tiene suerte, debe de ver una lista de servidores. Si no funciona, eche un vistazo la
 página de estado para comprobar qué es lo que va mal. Si usted está forzado a usar un servidor proxy http,
 consulte la sección de Preguntas y Respuestas más abajo acerca de cómo usar un servidor proxy en el GUI.

<p>

Ahora que ya tiene sus servidores, haga clic en el botón 'conectar' y conéctese a un servidor.


<sect1> Compartiendo ficheros 

<p>

eDonkey2000 es un programa para compartir ficheros, por lo que debería compartir algunos ficheros.
 Notes que <bf>no es posible no compartir ficheros</bf> con eDonkey2000. eDonkey2000 es capaz de compartir
 partes de ficheros que están siendo descargados antes de que estén descargados por completo. Incluso si
 usted no comparte nada, está siempre compartiendo los ficheros que está descargando actualmente. Lo mismo
 ocurre en Overnet.

<p>

No es posible compartir ficheros individuales, solamente puede compartir directorios enteros o árboles de
 directorios. Cuando haga clic en <em>Compartidos</em> en la parte de arriba de la pantalla del GUI,
 deberá ver los directorios (a la izquierda) y los ficheros (a la derecha) que está compartiendo con todo
 el mundo.
 Para compartir algo, haga clic derecho en la ventana de <em>ruta</em> y seleccione cualquiera de
 <em>añadir directorio para compartir</em> o <em>añadir árbol de directorio para compartir</em>.
 Lo último comparte un directorio con todos sus subdirectorios.

<p>
Cuando añada directorios con ficheros que nuna antes haya compartido en
 eDonkey, los ficheros serán troceados para identificarlos, esto puede
 durar algún tiempo (estoy hablando de minutos en ordenadores antiguos), pero
 nunca debería de dejar bloqueado el GUI o el core.

<p>

<em>¡Por favor comparta algo!</em>

<sect2>¿Cuantos archivos debo compartir?

<p>

Lo primero de todo, dese cuenta de nuevo que sus descargas actuales están siendo
compartidas. Cuántos archivos debería compartir sumando estos depende del ancho
de banda de subida del que disponga.

<p>
Si comparte ficheros grandes (cientos de MB) que no están disponibles en la red eDonkey aún,
 por favor, prepárese para compartir este fichero durante un largo tiempo, para que la gente
 tenga la oportunidad de descargarlo completamente. Si no está seguro de hacer eso, haga el 
 favor de no compartir ficheros grandes.
Pocas cosas son más frustrantes que descargar un fichero grande, que repentínamente desaparece
 antes de ser completamente descargado.

<sect1> Configuración

<p>

Hay algunas configuraciones que debe ajustar a sus necesidades.

<p>

<em>Máxima velocidad de descarga</em> y <em>máxima velocidad de subida</em>: estas dos configuraciones
 probablemente son autoexplicatorias. Sin embargo, debe saber que eDonkey tiene un sistema de relación, lo
 que significa: la máxima velocidad de descarga depende de la velocidad de subida que permita. Si permite
 a eDonkey subir a 10kB/s o más, puede descargar tan rápido como desee (establezca descarga a '0' = sin límite).
 Si usted permite menos de 10kB/s para subida, entonces su velocidad máxima de subida automáticamente se
 establecerá a <tt>subida máx. * 3</tt> o <tt>subida máx. * 4</tt> (dependiendo de la velocidad).

<p>

Si dispone de una conexión DSL/Cable, normalmente conocerá que su máxima velocidad de descarga
 y de subida en kilo<bf>bit</bf> por segundo (kbps) es; por ejemplo  576/288. Divida estos números por
 ocho para obtener la velocidad de su línea en kilo<bf>byte</bf> por segundo (kB/s). En este caso
 serían 72kB/s de descarga y 36kB/s de subida. Realmente no son las máximas velocidades que su línea
 puede soportar técnicamente. Sin embargo, hay cierta cantidad de sobrecarga debida a varias capas de red
 y protocolos usados en el proceso, de modo que la máxima velocidad  es probablemente un poco menor. También
 debe tener en su cuenta que todo paquete que descargue necesita reconocimento del otro lado, por lo que
 debería siempre configurar su máxima velocidad de subida en menor que la máxima velocidad de la línea (quiero
 decir que debería restarle al menos 3-6kB/s a la velocidad de su línea).

<p>

<em>Número máximo de conexiones</em>: esto es el número máximo de conexiones (sockets) que desea
 que eDonkey use en un momento dado. Note que esto es solo una 'recomendación' para eDonkey, el
 número actual de conexiones usado puede sobrepasarse alguna vez por cortos períodos de tiempo.
 La configuración por defecto es 45. Sin embargo, como está usando un sistema *nix y no la mierda
 de SSOO de Microsoft, puede incrementar este valor alrededor de 350-550.

<em>Directorio de entrada</em>: este es un directorio donde mover sus ficheros cuando hayan
 sido descargados por completo. No es recomendable que use una unidad de red para esto.

<em>Directorio temporal</em>: este es un directorio donde sus ficherso serán almacenados cuando
 comiencen a descargarse. Si disponde de espacio suficiente, ponga los directorios temporal y de
 entrada en la misma partición. Los directorios temporal y de entrada deben de ser diferentes.

Hay varias opciones más, pero estas son las más importantes. Puede encontrar más opciones
 haciendo clic derecho en los menúes emergentes en la página de descargas y en la de servidores.

<sect1> Manteniendo su lista de servidores (eDonkey2000 solamente)

<bf>Esta sección solo se aplica a eDonkey2000, no a Overnet. Overnet es una red sin servidores.</bf>

<p>
La red eDonkey no tiene servidores centralizados como el antiguo sistema
 Napster o sistemas similares de compartición de ficheros, pero tampoco es
 (aún) completamente una red sin servidores como Gnutella. Todo el mundo
 puede abrir un servidor eDonkey, y muchos de estos servidores tienen
 IPs dinámicas que pueden cambiar regularmente.

<p>
Esto significa que usted tiene que tener cuidado de actualizar su lista de servidores regularmente.

<p>
Haciendo clic con el botón derecho del ratón en la ventana de lista de servidores
 obtendrá un menú donde puede obtener nuevas lista de servidores via HTTP desde
 sitios web que contengan listas de servidores. Los obtenidos serán añadidos
 a su lista de servidores.

<p>
Siempre hay cientos de servidores de donkey activos.

<p>

<bf> POR HACER: </bf>

Opciones de lista de servidores ---
Permanecer siempre conectado ---
Servidores muertos


<sect1> Buscando 

<p>

Introduzca los términos de búsqueda en el campo de entrada en la barra
de herramientas en la parte superior de la ventana del GUI. Solo puede
buscar palabras enteras y las palabras tienen que tener por lo menos
tres caracteres de largo. Los términos de búsqueda no pueden contener
símbolos especiales como &amp; (ampersands), guión de subrayado, etc.

<p>

Pulse enter o haga clic en el botón 'Go!' para iniciar la búsqueda.

<p>

Si está usando eDonkey, puede hacer clic en la flecha pequeña de la
izquierda del campo de entrada en la barra herramientas del GUI. Esto
debe revelar algunas opciones de búsqueda adicionales (tipo de archivo, tamaño
del archivo, etc.). Overnet no soporta estas opciones en el GUI todavía.

<p>
eDonkey2000: El servidor al que está conectado responderá
 en un teimpo entre uno y varios segundos (siento decir esto,,
 pero algunos servidores están sobrecargados y realmente necesitan
 mucho tiempo para responder, la mayoría de las veces debido al
 ancho de banda de la red), sea paciente. Después de que haya recibido
 los resultados de la búsqued (no encontrarse ficheros es un resultado, también),
 deberá hacer clc en <em>extender búsqueda</em> para preguntar a cinco
 servidores más. Haga cilc varias veces para preguntar a más  y más
 servidores.

<p>
Overnet: Overnet no usa servidores, pero encuentra las cosas de todos modos. Overnet
 es una red descentralizada, y hace búsquedas consecutivas para una misma cosa que puede
 tardar diferentes tiempos. Si las búsquedas no le funcionan con overnet, compruebe
 su configuración UDP de la red y asegúrese de que no está bloqueando paquetes UDP
 desde/hacia puertos mayores que 1024.
 
<p>

Haga doble clic en los elementos de la búsqueda para descargarlos o use el menú
que sale con el botón derecho del ratón.

<p>

<em>Nota:</em> No hay un botón de <em>extender a todos los servidores</em> y no
 lo habrá, como los servidores son mantenidos por usuarios de donkey no pueden
 soportar la carga de todo el mundo preguntando a todos los servidores por
 resultados, como el eDonkey Bot (para windows) hace. La red se somete a mucha
 sobrecarga en ese momento y algunos administradores de servidores peuden cabrearse,
 disminuyendo el número máximo de usuarios diariamente. No pregunte por que esta
 característica sea implementada; nunca lo haré.

<p>

Si usted busca algo que puede devolver un montón de resultados (e.g. 'mp3'), encontrará
 tan solo 200 resultados cada vez del servidor principal. Si hay más resultados disponibles
 el botón 'más' se vuelve activo, y puede obtener los 200 siguiente resultados haciendo
 clic en él.

<p>

Usted puede poner elementos en la 'lista negra'. Estos elementos no serán mostrados en
 futuras búsquedas en las que en principio deberían mostrarse. El GUI mantiene los
 elementos de la lista negra en el fichero 'gui_blacklist' en el sub-directorio
 '.ed2k_gui/' dentro de su directorio home.

<p>

El GUI también es capaz de filtrar ficheros que contienen ciertas subcadenas de palabras
 (una subcadena no es más que una secuencia de caracteres, mientras que una palabra es una
 secuencia de caracteres rodeada de ciertos delimitadores como el caracter de espacio o los
 paréntesis).
Necesitará crear o editar un fichero llamado 'gui_filters' en el sub-directorio '.ed2k_gui'
 de su directorio home (note que se trata de un directorio oculto, por lo que es posible
 que su administrador de archivos no lo muestre a menos que usted le haya dicho de forma
 explícita que muestre los directorios ocultos). Este fichero debe contener exactamente
 una frase a filtrar por línea. Si una línea comienza por un '*' (asterisco), el GUI filtrará
 todos los resultados de búsquedas que contengan la frase especificada <em>como una palabra
 completa</em>. Si la línea no comienza con un asterisco, el GUI filtrará todos los resultados
 que contengan la subcadena en el nombre de fichero. Ejemplo:

<tscreen><verb>
deutsch
german
*de
*sex
</verb></tscreen>

en su fichero gui_filters se filtran todos los resultados conteniendo 'de' y 'sex' como una
 palabra (como 'sex in the bathroom (de).avi'), pero no resultados como 'fun in essex.avi' o
 'deranged band - deranged song.mp3'.


<sect2> Otras formas de encontrar ficheros y forma de hablar a sus amigos acerca de los ficheros que comparte

<p>

Una forma de encontrar ficheros en la red eDonkey2000 es buscando la red como se describe
 más arriba. Este, sin embargo, no es siempre el mejor método para encontrar ficheros, porque...

<itemize>
  <item> los ficheros pueden ser 'fakes' (i.e. están siendo compartidos bajo un nombre, pero en realidad son cosas completamente diferentes)</item>
  <item>no se sabe siempre todo acerca de un fichero que se desea conocer (e.g. la calidad de una película o su idioma)</item>
  <item>los servidores algunas veces están sobrecargados y las búsquedas hacen que se vuelvan muy lentos</item>
</itemize>

<p>

Las buenas noticias son que todo fichero en la red eDonkey2000 tiene un identificador único, que consiste en un
 troceado 'hash' (básicamente un número muy muy grande) que es único para cada fichero, y el tamaño del fichero.
 Estas dos formas de información son suficientes para eDonkey para encontrar un cierto tipo de fichero en la red.
 Pasando esta información, usted puede por ejemplo decir a un amigo el fichero que está compartiendo, y él/ella
 será capaz de encontrarlo sin usar el método de búsqueda. Esta información normalmente es pasada via los llamados
 'ed2k-links' (enlaces-ed2k). Los enlaces ed2k tienen esta pinta:

<tscreen><verb>
ed2k://|file|ejemplo_ficticio.mp3|3949232|ab349abf7b531c21980a0f22eeef7e21|
</verb></tscreen>

El primer parámetro es el nombre del fichero, el segundo parámetro es el tamaño del fichero en bytes,
 y el terder parámetro es el troceo del fichero en hexadecimal y siempre debe tener exactamente 32 dígitos,
 con dígitos de 0-9 y a-f.

<p>

En la lista de descargas, la lista de resultados de búsqueda, y la lista de ficheros compartidos, puede hacer
 clic con el botón derecho y seleccionar la opción 'escribir enlace-ed2k al log/portapapeles'. Esto copia
 el enlace-ed2k asociado al fichero seleccionado en el portapapeles.

<p>

Diríjase a la sección de Preguntas y Respuestas para saber cómo usar enlaces-ed2k que ha recibido de otra
 gente con GUI.

<p>

Hay sitios web dedicados a coleccionar y publicar enlaces-ed2k. La ventaja de usar estos enlaces es que
 los ficheros referidos están ampliamente disponibles y pueden ser facil y rápidamente descargados, además de
 obtener información adicional disponible sobre los ficheros.

<p>
Hay varios sitios donde puede empezar:

<itemize>
  <item><htmlurl url="http://www.google.com/search?hl=en&amp;ie=ISO-8859-1&amp;q=sharereactor&amp;btnI=I%27m+Feeling+Lucky" name="ShareReactor"></item>
  <item><htmlurl url="http://www.filenexus.com" name="FileNexus"></item>
  <item><htmlurl url="http://www.google.com/search?q=ed2k%20links" name="google para 'enlaces ed2k'"></item>
  <item><htmlurl url="http://www.varkoume.com/donkey/index.php" name="música donkey">
</itemize>

Una palabra de advertencia: debe resistir la tentación, no vaya a  <htmlurl url="http://www.amazon.com/exec/obidos/ASIN/0231104561/" name="wild(e)">.

<p>
Hay también motores de búsqueda de la red eDonkey2000 que contienen cachés de resultados
 y que le dicen en general la disponibilidad exacta de un fichero. Pruebe
 <htmlurl url="http://jigle.com" name="Jigle"> o
 <htmlurl url="http://www.filedonkey.com" name="filedonkey">.


<sect1> Manteniendo descargas

<p>
<bf>¿Qué significan los 'puntos' coloreados de la izquierda?:</bf>
   <tscreen><verb>
   blanco    este fichero está en pausa, en cola, o troceandose.

   verde     este fichero está totalmente disponible en la red
             y la descarga está activa, que significa que está
	     descargándose o esperando algún slot para descargar
	     ('Buscando').

   rojo      este fichero actualmente no está disponible en la
             red (o al menos no se pueden encontrar fuentes
	     para él), o hay algún tipo de error con el fichero
	     (espacio en disco insuficiente, error cargando, etc.).

   púrpura   este fichero actualmente no se encuentra totalmente
             disponible en la red, pero se sabe que hay fuentes
	     que tienen partes del fichero que usted no tiene.

   amarillo  este fichero actualmente no se encuentra completo
             en la red, y ya se tienen todas las partes que
	     están disponibles.
   </verb></tscreen>

<p>
<bf>Lo que significan los colores en la barra de progreso:</bf>
   <tscreen><verb>
   negro     usted ya tiene esa parte del fichero (bien)

   verde     usted no tiene esta parte del fichero, pero
             se sabe que al menos una persona la tiene (bien).
	     Cuando más oscuro el verde, mejor.

   rojo      usted no tiene esta parte del fichero, y no
             se sabe de nadie que la tenga (malo). Esperar
	     es la única opción que tiene en este caso,
	     realmente.

   blanco    no significa nada. Si el fichero está en pausa,
             las partes que usted no tiene son blancas.
   </verb></tscreen>

<p>
<bf>Lo que significan los diferentes estados en la descarga:</bf>
   <tscreen><verb>
   Descargando   la palabra lo dice :)

   Buscando      eDonkey no está descargando actualmente
                 este fichero, pero está buscando fuentes
		 (=otra gente que tenga el fichero) y 
		 está esperando en otras colas de gente
		 hasta que sea su turno para descargarlo
		 de ellos. Esto es normal y es posible que
		 vea este estado la mayor parte del tiempo.
		 No espere descargas inmediatas. Usualmente
		 tendrá que esperar hasta que pueda descargar
		 de alguien, porque hay mucha gente que quiere
		 los mismos ficheros.
  
   En cola       Este fichero está en cola localmente, significa
                 que eDonkey no está descargandolo y no está
		 buscando fuentes y no está esperando hasta que
		 pueda ser descargado.
		 Esto ocurre en diferentes ocasiones. Por ejemplo:

                 (a) eDonkey está usando un montón de conexiones
		     para otros ficheros y por el momento no tiene
		     suficientes conexiones libres para buscar
		     también el fichero actual.
		     Incrementar el valor en el parámetro de
		     'máximo número de conexiones' (página de
		     opciones -> core) debe ayudar en este caso.

		 (b) tiene un montón de desargas activas, y buscar
		     más no tiene mucho sentido. Pruebe a poner una
		     de las descargas 'En cola' con una prioridad
		     más alta, entonces comenzará a Buscar... muy
		     pronto (esto funcionará, si la mayoría de las
		     demás descargas están en prioridades normal o
		     baja, por supuesto).
		 
   (Troceando...)Esto significa que no se tiene el estado para el
                 fichero, ocurre normalmente después de que el GUI
		 se conecte al core, o duranto unos pocos segundos
		 cuando un bloque ha terminado de descargarse. No
		 debería de ver este estado (¡_con_ los paréntesis!)
		 durante mucho tiempo.

   Troceando...  Esto (sin los paréntesis) significa que eDonkey está
                 troceando sus fichero para asegurarse de que ninguno
		 está corrupto, etc. Ocurre después de que inicie el core,
		 y puede tardar un rato en finalizar (dependiendo de
		 su sistema).

   Pausado       Usted ha pausado el fichero. No está activo por el
                 momento ni descargándose. Dele a continuar para seguir
		 con la descarga.

   Insuf.espac.  Esto significa que no dispone de suficiente espacio libre
    en disco     en la partición que contiene su directorio temporal o en
                 su partición de entrada. Fíjese en que eDonkey puede tardar
		 un minuto más o menos desde que haya liberado más espacio.
   </verb></tscreen>


<bf>POR HACER:</bf>
descargando ---
pausando ---
continuando ---
prioridad de descarga ---
nombres de fichero x.part ---
y el directorio temporal

<sect> Manteniendo descargas

<p>

No hay nada que mantener. Tan solo puede verlas y sentirse afortunado por tenerlas ahí.

<p>

Usted no puede cancelar las subidas y tampoco puede no compartir en eDonkey. Tenga siempre
 en mente que todo lo que descargue es porque alguien se lo está ofreciendo. Si nadie
 ofrece nada, no habrá nada que descargar. Nadie le incluye a usted en estos casos.

<p>

En una red cerrada como eDonkey la fórmula es bastante simple:
 el total de descargas en cualquier momento = total de subidas en cualquier momento.

Note que subiendo ficheros no afecta en nada a su velocidad de descarga. Las velocidades
 de descarga y de subida son más o menos independientes cada una de la otra en una conexión
 de banda ancha (DSL/Cable).


<sect1> Trucos con 'comandos avanzados'
<p>
'Comandos avanzados' son comandos de la línea de comandos que pueden enviarse desde el
 GUI hacia el core (=cliente en línea de órdenes). Puede enviarlos escribiendo

<tscreen><verb>
!vo
</verb></tscreen>

en el campo de entrada en la barra herramientas del GUI en la parte de arriba de la
ventana (&quot;vo&quot; le mostrará sus opciones de configuración del núcleo; escriba
&quot;!?&quot; en la barra de herramientas para obtener una lista de órdenes para
el núcleo).

<p>
Si se inicia donkey y está intentando conectarse a un servidor
 mientras usted se quiere conectar a otro servidor específico, 
 hacer clic en desconectar no funcionará. Vaya a la pantalla de
 Acerca de, escriba "x" y haga clic en enviar comando avanzado
 varias veces. Entonces usted ya puede conectarse a su servidor
 de su elección durante uno o dos segundos mientras esté marcada
 la opción Mantenerse siempre conectado.

<p>
Si necesita un ancho de banda en su red más rápido, escriba <em>dumax 1 1</em>
 para enviar velocidades y descarga y de subida a 1 KB/s. Cuando haya terminado,
 vuelva a cambiarlo a algo como <em>dumax 0 10</em> para establecer la velocidad
 de descarga a 0 (sin límite) y la de subida a 10 KB/s (o a los valores que usted
 tuviese antes configurados.

<sect1> Usando enlaces-ed2k

<p>
Usted puede iniciar descargas desde enlaces-ed2k pasando estos enlaces al GUI. Hay
 cuatro formas distintas de pasar los enlaces-ed2k (tanto servidores como ficheros)
 al GUI.

   <sect2> Arrastrar y soltar 

   <p>

   Usted puede símplemente arrastrar y soltar enlaces desde su navegador a la ventana
   del GUI. Los enlaces de servidor serán añadidos a su lista de servidores. Los enlaces
   de fichero iniciarán una nueva descarga inmediatamente, o a la página de
   búsqueda en la parte de 'enlaces-ed2k' (dependiendo de sus opciones de configuración).
   Arrastrar y soltar debe funcionar con cualquier navegador (a parte de lynx).

   <sect2> Portapapeles

   <p>

   También puede copiar uno o más enlaces al portapapeles y pegarlos en la barra de
   herramientas.

   <sect2> tubería (para usuarios avanzados)

   <p>

   Una tubería es algo así como un fichero, pero no demasiado. Aparece como un fichero
   en un directorio, pero está directamente conectado con el GUI, que inmediatamente recibe
   todas las salidas que se escriben en ese fichero. Esto le permite usar comandos del sistema
   para pasar enlaces-ed2k al GUI, o permitir que programas externos pasen enlaces al GUI. Ejemplo:

   <tscreen><verb>
   %echo "ed2k://|file|ejemplo_tonto.txt|42321|abababababababababababababababab|" > ~/.ed2k_gui/pipe
   </verb></tscreen>

   El mecanismo de tuberías es también usado por otros programas, como los gestores de enlaces para KDE
   y GNOME (ver más abajo).
   (nota: con versiones de GUI antiguas, la tubería a usar es /tmp/.ed2k_gui_socket)

   <sect2> manejadores de enlaces para KDE and GNOME

   <p>

   Desde la versión 0.5.0 del GUI en adelante, puede resitrar el GUI como manejador de enlaces
   de los entornos de escritorio KDE y/o GNOME. Puede hacer esto desde la página de opciones.
   Note que incluso si tiene gnome2, también deberá instalar el manejador de enlaces para gnome1,
   porque no todas las aplicaciones son aplicaciones para gnome2 (como galeon).
   
   <p>

   Esto hará a su entorno de escritorio (KDE,GNOME), iniciar el GUI con el enlace ed2k://
   como línea de parámetros del comando cuando haga clic en un enlace-ed2k en el navegador
   de su entorno de escritorio (konqueror o galeon).

   <p>

   Sin embargo, esto no funcionará para los navegadores que no hagan caso de las variables
   de entorno del escritorio, probablemente no funcionará con Mozilla u Opera o Safari. En
   esos navegadores use arrastrar y soltar.

<sect1> Atajos de teclado 

<p>

Algunas de las funciones del menú emergente más importantes pueden seleccionarse
 mediante atajos de teclado. Estos atajos de teclado solo están activos si el foco
 se encuentra en una de las filas de listas (por ejemplo cuando selecciona varias
 filas).

<sect2> Atajos de teclado en la lista de descargas

<p>
<tscreen><verb>
atajo            función
=====            =======

    l            establecer descargas seleccionadas a prioridad baja
    n            establecer descargas seleccionadas a prioridad normal
    h            establecer descargas seleccionadas a prioridad alta

    p            pausar descargas seleccionadas
    r            continuar descargas seleccionadas

    a            seleccionar todo
    u            deseleccionar todo

 <delete>        cancelar descargas seleccionadas
</verb></tscreen>

<sect2> Atajos de teclado en la lista de búsqueda de resultados

<p>
<tscreen><verb>
atajo              función
=====              =======

    b              añadir resultados de búsqueda a la lista negra
    d              descargar resultados de búsqueda seleccionados
    c              descargar resultados de búsqueda seleccionados con nombre personalizado
 n, s, a           poner foco en la casilla de entrada de la frase de búsqueda
 <enter>           descargar resultados de búsqueda seleccionados
 <shift>+<enter>   descargar resultados de búsqueda seleccionados con nombre personalizado
</verb></tscreen>


<sect2> Atajos de teclado en la lista de servidores

<p>
<tscreen><verb>
atajo              función
=====              ========

    c              conectar a cualquier servidor seleccionado
    l              establecer servidores seleccionados a prioridad baja
    n              establecer servidores seleccionados a prioridad normal
    h              establecer servidores seleccionados a prioridad alta 
    a              seleccionar todo
    u              deseleccionar todo

</verb></tscreen>

<sect2> Atajos de teclado en páginas de Subidas, Estado, Opciones, Acerca de, Compartido y Estadísticas

<p>
Ninguna de estas páginas tiene aún definidos atajos de teclado.



<sect>Preguntas y Respuestas, Consejos y Trucos<p>

<sect1> Preguntas Frecuentemente Formuladas (FAQ)
<p>

Por ahora, eche un vistazo al FAQ (disponible en Inglés, Alemán y Francés)
For now, please look at the FAQ (available in English, German, and French)
<htmlurl url="http://ed2k-gtk-gui.sourceforge.net" name="en la web principal del proyecto">.

<sect1> Usando un proxy-http para obtener lista de servidores via http
<p>
Si tiene que usar un servidor proxy http para acceso a la web y quiere que el GUI
use ese servidor proxy cuando obtenga listas de servidores via http, establezca
la variable de entorno 'http_proxy' antes de iniciar el GUI desde el shell
(=línea de comandos):

<tscreen><verb>
export http_proxy=http://wwwcache.algunhost.net:8080/
</verb></tscreen>

Fíjese bien en <bf>la barra del final</bf>. Otros programas como wget y lynx también
 usan esta configuración si la variable está establecida. Puede comprobar si la variable
 está establecida con el comando <tt>echo $http_proxy</tt>.

La mejor forma es probablemente poner la línea de arriba (la del export) al final de su
fichero &tilde;/.bashrc, de forma que no tenga que escribirlo cada vez que vaya a iniciar el
GUI, si no que la variable 'http_proxy' de entorno se creará automáticamente cada vez que se
identifique en el sistema.

<sect1> Corrupción encontrada en XYZ en posición N

<p>

Esto significa que después de completar una parte de un fichero, el checksum ('del pedazo
 parcial') de esta parte del fichero en su disco duro no coincide con el checksum que debería
 tener.

<p>

Esto no es nada de lo que deba preocuparse. eDonkey/overnet se han dado cuenta del problema
y volverán a descargar esta parte.

<p>

Ha ocurrido una corrupción en los datos. No puede hacer nada a respecto. No se preocupe por eso.
Sin embargo, si ocurre muchas muchas veces en diferentes ficheros, debe plantearse si tiene algún
problema de hardware (fallos en la RAM, fallos en el disco duro, fallos en el controlador, fallos
en el cable IDE, problemas debidos a overclocking, sobrecalentamiento del sistema, problemas
con el sistema de ficheros, etc).


<sect1> Cambiando el navegador por defecto que invoca el GUI

<p>

Por defecto, el GUI buscará un navegador en su sistema y usará el primero que pueda
encontrar (de Galeon, Konqueror, Mozilla, Netscape, Opera). Si prefiere especificar un
navegador, debe establecer la variable 'BROWSER' antes de iniciar el GUI desde el shell
(=línea de comandos):

<tscreen><verb>
export BROWSER=/usr/bin/konqueror
</verb></tscreen>

Es necesario especificar la ruta absoluta hacia el binario. Puede encontrar esta ruta
usando cualquiera de los comandos <tt>whereis konqueror</tt> o <tt>which konqueror</tt>
(nota: <tt>no tiene</tt> porqué encontrar siempre el binario debido a que las rutas
están dentro del código).

Lo mejor probablemente es poner la línea de arriba de export en el final de su fichero
 &tilde;/.bashrc, de modo que no tenga que escribirlo cada vez que inicie el GUI, si no 
 que la variable 'BROWSER' se cree automáticamente cada vez que se identifique en el sistema.

<sect1> Personalizando el script de vista previa

<p>

La última versión del GUI le permite 'previsualizar' las descargas antes de que hayan
 finalizado si el core le comunica los nombres de fichero x.part temporales al GUI (todas
 las versiones recientes deberían hacerlo) y su core está ejecutándose en la máquina local.

Si ejecuta la función 'vista previa' por primera vez, el GUI escribirá un scrip por defecto
 para vistas previas en su disco duro. Este script de vista previa se encuentra en
 <tt>~/.ed2k_gui/ed2k_gui_preview</tt>. Puede abrirlo en un editor de texto normal y personalizarlo
 de acuerdo con sus propias preferencias.

Aquí se dice como funciona: El GUI llama al script y le pasa la localización del fichero parcialmente
 descargado como parámetro. En el script esto aparece como <tt>$*</tt> (que básicamente no significa
 más que 'reemplazar con todos los parámetros que se le pasen'). El GUI también establece una variable
 de entorno llamada <tt>ED2K_PREVIEW_EXTENSION</tt> que contiene la extensión del fichero en minúsculas
 (debido a que no se puede facilmente decir el tipo de fichero que es algo llamado /mnt/temp/34.part).

Ahora el script coje la extensión del fichero y busca si coincide con cualquiera de los casos
 preconfigurados dentro de <tt>case</tt> en el script. Si coincide, entonces la variable <tt>PREVIEW_BIN</tt>
 es establecida con el nombre del programa que debe usarse para previsualizar el fichero, incluyendo cualquier
 parámetro que sea necesario para el programa. Entonces el programa para este tipo de fichero es ejecutado.
 Como puede comprobar es endiabladamente facil cambiar a su reproductor favorito o añadir nuevas extensiones.

Después de que el programa de vista previa haya finalizado, deberá pulsar la tecla Enter para cerrar la
 ventana de terminal de xterm que fue abierta para mostrar la salida de los programas de vista previa (y que
 le permite interrumpir la vista previa usando Control-C, por ejemplo en el caso de mpg123/ogg123).

Si no desea que el script espere hasta que la vista previa haya finalizado, borre las siguiente líneas del mismo:
<tscreen><verb>
echo "Finished. Hit <enter> to close this window"
read
</verb></tscreen>

Si desea que la ventana de xterm se cierre justo después de llamar al programa de visualización, borre las do
 líneas de arriba y modifique la línea del programa de previsualizado para que quede como la siguiente:

<tscreen><verb>
$PREVIEW_BIN "$*" &
</verb></tscreen>


<sect1> Usando enlaces-ed2k

<p>
Diríjase a la sección de enlaces-ed2k en el capítulo de 'Uso' de esta documentación.


<sect1> Ejecutar comando cuando se complete la descarga

<p>
POR HACER, vea el FAQ

<sect1> Caracteres internacionales no se muestran correctamente en el GUI

<p>
Si es en nombres de archivo o en nombres de servidores, entonces probablemente
es debido al locale que tiene elegido. Necesita entonces ver cómo cambiar su
locale por algún otro valor apropiado. Si cambia su locale de todos modos, por favor
cámbielo para que todo use la codificación de caracteres UTF8, y no ISO-8859-X (p.e.
es_ES.UTF8 o similar).

<p>
Sin embargo, tanto eDonkey2000 como Overnet no usan los locales para nada, en ese
sentido no hay que decirle al GUI u otros clientes en qué conjunto de caracteres ha sido
codificada una cadena de texto. Por eso nunca será capaz de ver un nombre de archivo
en las búsquedas exactamente del mismo modo que lo ve otra persona en otro idioma. Normalmente
esto no debe ser un gran problema.

<sect1> Búsqueda DNS para los servidores

<p>
POR HACER, vea el FAQ


<sect1> Tengo un ratón con rueda y ocurren cosas extrañas. ¿Por qué?

<p>
¿Por qué? No lo sé. Posiblemente sea un bug de GTK+. Vaya a la página de opciones
 y asegúrese de que está establecida la opción 'deshabilitar doble clic en la listas'.
 Eso debería solucionar sus problemas.

<sect1> La función de 'vista previa' siempre está deshabilitada - ¿Qué es lo que está mal?

<p>
La función de 'vista previa' de la lista de descargas en el menú emergente del
botón derecho está deshabilitada en dos casos:
<p>
(1) No hay nada seleccionado 
<p>
(2) el GUI piensa que el core se está ejecutando en otro ordenador. El GUI puede
asumir que este es el caso cuando usa un nombre_de_host/IP diferentes a 'localhost'
o '127.0.0.1' como nombre de host para el core (nota: otras formas más sofisticadas
para comprobar si la dirección/nombre_del_host son locales han sido deshabilitadas
debido a peticiones por parte de los usuarios). Por ahora todo lo que no sea
127.0.0.1 o localhost no es local.


<sect1> Usando varios eDonkey desde diferentes ordenadores, todos compartiendo una misma línea DSL o router

<p>
Problema: Solo puede configurar su router para IP-forward a un puerto exacto de una dirección IP,
los otros ordenadores no pueden usar el mismo puerto y no tiene un ID alto.
<p>
Solución: Ejecute cada cliente donkey en un puerto diferente (e.g. uno en 3662, otro en 4662,
otro en 5662, otro en 6662, etc.), y configure su router para que haga IP-forward de cada puerto
a la IP correcta. Nota: solo necesita redirigir un puerto tcp por cliente para obtener un ID alto.




<sect1> Usando múltiples cores

<p>
Puede tener múltiples cores ejecutándose y controlarlos todos al mismo tiempo o a la vez.
 En este caso probablemente quiera usar la opción en línea de comandos '-n' para el GUI, que hace que
 el GUI cree otra 'copia', lo que quiere decir que se usará otro conjunto de ficheros de configuración
 para el GUI completamente diferentes. Para el primer core, inicie el GUI de la forma habitual. Para el
 segundo core pase la opción '-n 2' al GUI. De esta forma sus estadísticas, etc. se mantendrán limpias y
 separadas y también podrá configurar el GUI para que se auto-conecte al core durante el inicio.

<sect1> Múltiples conexiones del GUI a un solo core

<p>
Esto es un problema. Un core solo puede ser controlado por un GUI en un momento dado.

<p>
Sin embargo, hay una manera facil y gratis para resolver este problema:
 usar <htmlurl url="http://www.uk.research.att.com/vnc/" name="VNC">.

Instale un servidor VNC en la máquina en la que ejecuta el core, y visores VNC (disponibles para todo tipo de
 plataformas) en los sistemas desde los que quieres controlar el GUI y el core. Ahora puede ejecutar el GUI en
 la máquina en la que el core se encuentra, y controlar de forma remota el GUI en cualquier máquina usando VNC.
 Un escritorio VNC puede ser compartido por múltiples usuarios, esto debería resolver su problema. En teoría
 el menos, yo no lo he probado todavía.


<sect1> Un pequeño script de inicio

<p>
Este es mi (Thomas) script de inicio para donkey, estoy cansado de cambiar
 al directorio correcto manualmente todos los dias... coje una lista nueva
 de servidores, inicia el core, espera y entonces inicia el GUI.

<p>
<code>
&num;!/bin/sh
&num; Script de inicio E-Donkey 2000
&num; Inicia el donkey desde el directorio home, reemplace esto con su directorio de donkey!
cd &tilde;/ablage/edonkey
&num; Obtener lista de servidores, haciendo unos truquillos
mv server.met _server.met
wget http://ocbmaurice.dyndns.org/pl/slist.pl/server.met?download/server-max.met || cp _server.met server.met
rm _server.met
&num; Iniciar eDonkey en una sesión de pantalla con nombre (¡Necesita una pantalla GNU!)
screen -dmS donkey -- ./donkey - !
&num; De otro modo:
&num; ./donkey - ! &amp;
&num; Esperamos un poco...
sleep 5
&num; Iniciamos el GUI
ed2k_gui -c
</code>


<sect1> Iniciando el core en segundo plano o via telnet/ssh

<p>
Usualmente puede iniciar programas con un '&' al final en el terminal y esto los ejecutará en segundo plano.
 Con el cliente en línea de comandos de eDonkey, sin embargo, esto no funciona del todo bien. Puede tener problemas
 similares si inicia el donkey desde una sesión telnet/ssh (no use telnet, ¡use ssh!), pero lo mantiene activo
 incluso después de cerrar la sesión. 'nohup' no funciona con donkey en muchos sistemas.

<p>
Para este tipo de magia necesita la utilidad 'screen', que probablemente se encuentre ya instalada en su sistema.
 Compruebe la página del manual con <tt>man screen</tt>. Aquí se muestra un resumen:

<p>
Inicie el donkey con

<tscreen><verb>
cd /home/joe/ed2k/
screen -dmS donk ./donkey0.50.1 - !
</verb></tscreen>

El 'cd es para asegurarse de que el core lee y escribe sus propios ficheros de configuración
 siempre en el mismo directorio (i.e. /home/joe/ed2k/ aquí). Si no hace esto, el core sobreescribirá
 sus ficheros de configuración en el directorio actual, lo que probablemente cause confusión

La opción '-' es para poner el donkey en modo GUI, y la opción '!' es para asegurarse de que donkey acepta
 comandos solo via GUI, pero no desde la línea de comandos, que es lo que necesita para cerrar el core
 de forma correcta desde el GUI.

Deje la pantalla lo primero pulsando Control-A, después Control-D. Debe ahora haber vuelto a su consola.


Puede volver a la consola de donkey en el momento que quiera con

<tscreen><verb>
screen -d -r donk
</verb></tscreen>

then.




<sect1> Todos los servidores dicen que estoy bajo un cortafuegos, ¡pero NO estoy bajo un cortafuegos! (firewalled)

<p>
Esto puede tener varias causas. Note que 'firewalled' no se debe de interpretar literalmente.
 'Firewalled' símplemente significa que otros servidores no pueden conectarse con éxito a
 su cilente en el puerto configurado (que es 4662 por defecto).

<p>
Una razón de por qué esto puede ocurrir es que usted esté realmente detrás de un cortafuegos,
 quizá en su ordenador, o quizá en su gateway/router, y el cortafuegos bloquee los
 intentos de conexión entrantes desde el servidor.

<p>
Otra razón puede ser que esté usando un router DSL y algún otro router/gateway,
 y este rourter haga NAT(= Network Address Translation = IP Masquerading = Internet
 Connection Sharing/ICS). NAT es usado por muchos ordenadore sen una pequeña red
 privad que comparte una conexión a internet. En este caso la 'IP pública' de su
 ISP está asignada a su router, y todos lo ordenadores de la red privada tienen
 una 'IP privada' (e.g. 192.168.x.x o 10.x.x.x). Si este es el caso, necesitará
 configurar redirección de puertos de su router. Necesita redirigir el puerto tcp
 4662 de la IP de su ordenador a donde el donkey se esté ejecutando. Si tiene varios
 donkeys ejecutándose en su red, ejecute todos en diferentes puertos y configure
 redirección de puertos para cada uno de los puertos a sus diferentes IPs privadas.

<p>
Finalmente, algunos servidores están mal configurados y no permiten conexiones
 entrantes en puertos no-estandar. Estos servidores siempre le dirán que está
 tras un cortafuegos, incluso si son ellos los que lo están y no usted. Esto
 ocurre ocasionalmente si ejecuta donkey en un puerto diferente al estandar (tcp 4662).
 Sin embargo, si realmente todos los servidores le dicen que está tras un cortafuetos,
 esto último no será la causa de ello.


<sect1> Necesito usar un proxy SOCKS, pero el cliente en línea de comandos no parece soportar esto

<p>
Desafortunadamente el cliente actual en línea de comandos no soporta un servidor proxy SOCKS, pero
 puede probar a usar <htmlurl url="http://tsocks.sourceforge.net/" name="tsocks">, que proporciona
 soporte para programas que necesitan servidor proxy SOCKS y no lo tienen de forma nativa. (Se trata
 de una librería de pre-carga que intercepta las llamadas del sistema de red a connect() y 'redirige'
 estas al servidor proxy etc.).
 

<sect1> Si su conexión DSL/cable no responde y le cuesta un montón navegar por la web

<p>
Puede encontrar que después de ejecutar el donkey durante un momento su conexión a internet
 se vuelve horriblemente lenta, o al menos no se obtiene mucha respuesta: conectar a un
 servidor web o chequear su cuenta de correo electrónico de repente tarda varios segundos en
 lugar de milisegundos.

Descartando cosas: si el error puede ser reproducido con servidores específicos e independientes
 esté el donkey ejecutándose o no, entonces el problema puede estar escondido. Si está usando
 PPP-sobre­Ethernet (PPPoE) entonces debe comprobar doblemente su interfaz de red (pppX o ethX), la
 configuración MTU (por ejemplo). Si el problema solo ocurre cuando el donkey está fuertemente
 sobrecargado, lea más adelante.

Aquí está <bf>el problema</bf> en un nutshell: su router DSL tiene una cola pre-construida de paquetes, que
 funciona de forma bastante simple: el primer paquete que llega sale el primero (FIFO). Si la cola de paquetes
 de su router está llena, entonces el router silenciosamente elimina paquetes. Es normal que esto ocurra, y el
 protocolo TCP se da cuenta de ello. El problema es cuando cada paquete TCP que recibe su ordenador necesita
 enviar un pequeño reconocimiento (ACK) al que envia para que este sepa que los datos han llegado. Este
 mecanismo es usado para compensar la pérdida de paquetes y ajustar la velocidad dinámicamente con respecto
 a la variable de ancho de banda. Ahora si la cola de paquetes de su router está llena porque donkey está
 subiendo ficheros y quiere conectarse a un servidor, entonces la petición de conexión (paquete SYN) se envía
 al router, y éste lo pone en cola. Pero como la cola está llena, tarda varios segundos hasta que la petición
 SYN es aceptada y enviada al servidor al que desea conectarse, debido a que su router normalmente no podrá
 distinguir entre paquetes importantes y no importantes. Lo mismo ocurre para paquete que desee enviar (e.g.
 la petición HTTP-GET de su navegador de Internet). Es por eso que la conexión se vuelve inactiva. Lo que
 necesita saber es que incluso si la velocidad de su línea es técnicamente de 128kbps = 16kB/s (por ejemplo),
 parte de esto es usado para información administrativa (cabeceras) de los protocolos involucrados. De este
 modo su velocidad de subida es menor, y su subida puede llenarse facilmente incluso si parece que se estuviese
 por debajo del límite superior.

<bf>¿Qué hacer?</bf>

Bastante simple: necesita algo llamado Calidad-de-Servicio (QoS - del inglés Quality-of-Service). Los núcleos
de Linux posteriores a 2.4.x disponen de esta característica implementada, solo necesita asegurarse de que
su kernel ha sido compilado con soporte QoS completo (dentro del kernel o como módulos).

El principio es simple: asegurarse de que la cola de paquetes de su router nunca se llena. Para conseguir esto,
necesita poner en cola todos los paquetes en su equipo Linux en lugar de en su router (nota: normalmente,
no ocurre así porque la conexión entre el router y su linux es mucho más rápida que entre el router y el resto
de internet, por lo que el kernel de linux envia todo al router inmediatamente y sin retardos). Ahora que la cola
de paquetes está administrada por su kernel de linux, puede decir a linux el tipo de ordenación que necesita. Por
ejemplo, puede asignar a unos paquetes más prioridad que a otros. Entonces esos paquetes se 'saltan la cola'
y se envian inmediatamente incluso si otros (menos importantes) están esperando en la cola. Personalmente,
tengo marcado todo el tráfico en los puertos 'interactivos' 21, 22, 23, 110 (menos 80 porque alguna gente
de windows configura el donkey para que use el puerto 80) y el tráfico a mis sitios web favoritos y todos los
'paquetes pequeños' (normalmente paquetes SYN o ACK) a la prioridad más alta.

Una buena descripción realizada por Emmanuel Roger sobre como establecer todo esto se puede encontrar aquí:
<htmlurl url="http://www.prout.be/qos/QoS-connection-tuning-HOWTO.html" name="http://www.prout.be/qos/QoS-connection-tuning-HOWTO.html">.

Desde mi experiencia se aconsejo leer otros COMOs como el 
<htmlurl url="http://www.tldp.org/HOWTO/ADSL-Bandwidth-Management-HOWTO/index.html" name="ADSL-Bandwidth-Management-HOWTO">), a menos que le gusten los retos. Este y la mayoría de los otros COMOs que he encontrado acerca de este
tema requieren que se parchee el kernel y su código fuente de iptables (e.g. para el dispositivo-IMQ), que provee
especial dificultad si los parches mencionados no funcionan con la última versión de kernel/iptables...

Aquí tiene un recorte de mi script de inicio de iptables, por si hay alguien interesado:

<code>
	##########################################################
	#
	# Quality of Service (QoS)
	#
	# desde http://www.prout.be/qos/QoS-connection-tuning-HOWTO-4.html
	#
	##########################################################

	# reset

	tc qdisc del dev eth1 root 2>/dev/null > /dev/null


	# marcar paquetes con tamaño 0-500 (considerado como tráfico inactivo)
	#
	iptables -t mangle -A OUTPUT -m length --length 0:500 -j MARK --set-mark 3

	# marcar paquetes UDP como importantes
	#
	iptables -t mangle -A OUTPUT -p udp -j MARK --set-mark 3

	# los paquetes grandes se marcan como tráfico de datos
	#
	iptables -t mangle -A OUTPUT -m length --length 500:1500 -j MARK --set-mark 4

	# marcar paquetes de ssh/smtp/pop3 también como prioritarios
	# (no http, debido a que alguna gente de donkey usa el puerto 80)

	for i in 22 25 110
	do
		iptables -t mangle -A OUTPUT -p tcp --dport "$i" -j MARK --set-mark 3
		iptables -t mangle -A OUTPUT -p tcp --dport "$i" -j TOS --set-tos Minimize-Delay
	done

	# marcar sitios favoritos con tráfico prioritario.
	#
	# slashdot(new) slashdot.org, www.ct.heise.de,
	#	edonkey2000, jigle.com, jabber.org
	#	google
	#
	for i in "66.35.250.150" "64.28.67.150" "193.99.144.71" \
			"198.77.34.120" "212.249.10.246" "208.245.212.108" \
			"216.239.39.101"
	do
		iptables -t mangle -A OUTPUT -p tcp -d "$i/255.255.255.255" -j MARK --set-mark 3
		iptables -t mangle -A OUTPUT -p tcp -d "$i/255.255.255.255" -j TOS --set-tos Minimize-Delay
	done

	# marcar subdominios enteros como importantes
	#
	# amazon/imdb - sourceforge.net
	#
	for i in "207.171.166.0" "216.136.171.201"
	do
		iptables -t mangle -A OUTPUT -p tcp -d "$i/255.255.255.0" -j MARK --set-mark 3
		iptables -t mangle -A OUTPUT -p tcp -d "$i/255.255.255.0" -j TOS --set-tos Minimize-Delay
	done

	# crear root cvq qdisc para nuestro dispositivo eth1
	#
	tc qdisc add dev eth1 root handle 10: cbq bandwidth 10Mbit avpkt 1000 mpu 64

	# Ancho de banda de bajada = 576 kbits
	# Ancho de banda de subida = 288 kbits
	#
	# Relación de tipo interactivo = Ancho de banda de bajada / 20 = 29
	# Relación de tipo de datos = UL bandwidth - Interactive class rate = 259
	#
	# Hagamos lo último un poco más pequeño para estar a salvo
	# (no queremos que un simple paquete siempre esté en cola en el router)
	#  => 190, que es mucho menos del sugerido, pero funciona bien para mí
	#
	# (¿1500 es el MTU de la interfaz?)
	#
	tc class add dev eth1 parent 10:0 classid 10:1 cbq bandwidth 10Mbit \
		rate 29Kbit allot 1500 prio 1 maxburst 10 avpkt 100 isolated weight 100

	tc class add dev eth1 parent 10:0 classid 10:2 cbq bandwidth 10Mbit \
		rate 190Kbit allot 1500 prio 8 maxburst 2 avpkt 1500 bounded weight 1500

	# le decimos al kernel qué tipo de paquetes queremos enviar

	tc filter add dev eth1 parent 10:0 protocol ip handle 3 fw flowid 10:1
	tc filter add dev eth1 parent 10:0 protocol ip handle 4 fw flowid 10:2
</code>

<sect1> Mensaje de error "No se puede crear el Archivo Temp"

<p>
Esto ocurre con los núcleos recientes. La razón normalmente es que
eDonkey/Overnet usa demasiados descritores de archivos (un descriptor
de archivo por cada archivo abierto y cada conexión de red activa),
que es más de lo que usted como usuario joe tiene permitido en su sistema.

<p>
Puede comprobarlo con

<tscreen><verb>
%ulimit -n
</verb></tscreen>

<p>
el número de descriptores de archivos abiertos que su usuario tiene en
total permitido (teniendo en cuenta <em>todos</em> los programas
y procesos que está ejecutando actualmente).

Puede cambiar este límite editando el archivo /etc/security/limits.conf (como
root) y añadiendo una línea como esta al final:

<tscreen><verb>
tim	hard	nofile	4096
</verb></tscreen>

<p>
'tim' es el nombre de usuario que está usando, 'hard' significa 'límite fuerte',
'nofile' significa el número de descriptores de archivo abierto permitidos,
y 4096 es el valor (puede que quiera usar un valor más alto, pero 4096 debe
ir bien).

<p>
Ahora necesita comprobar una cosa más, algo que puede diferir ligeramente de
una distribución a otra. Si tiene un archivo <tt>/etc/pam.d/common-session</tt>,
asegúrese de que tiene una línea como esta dentro:

<tscreen><verb>
session required	pam_limits.so
</verb</tscreen>

Si no tiene un archivo como ese, añade o comente la línea de encima en
<tt>/etc/pam.d/login</tt>. Si usa gdm/kdm/xdm para iniciar sesión, deberá
comprobar también <tt>/etc/pam.d/gdm</tt>, <tt>/etc/pam.d/kdm</tt>, y/o
<tt>/etc/pam.d/xdm</tt> y si tienen esa línea añadirla/descomentarla
si es necesario.

<p>
Después de que haya editado ese archivo, necesitará re-identificarse
<em>'correctamente'</em> (cierre su sesión de X y re-identifíquese en el
sistema en la consola o xdm/kdm/gdm). Después de que haya ejecutado 'ulimit -n'
en una ventana xterm, debe mostrar el nuevo límite y el problema debe
haberse solucionado.

<p>
<em>En Mac OS X</em> el límite por defecto parece ser 256 descriptores de
archivo por usuario. Este límite es muy pequeño para eDonkey2000/Overnet. Puede
cambiar el límite escribiendo

<tscreen><verb>
limit descriptors 4096	(¡esto es en MacOSX tcsh!)
</verb></tscreen>

en la línea de órdenes y luego iniciar el GUI o el núcleo (esto es porque
la configuración solo funciona para el proceso hijo que inicie, no lo cambia
para el sistema completo). Puede comprobar su límite escribiendo 'limit' en
la línea de órdenes. (Gracias a un usuario anónimo en los foros por esto).

<p>
El proceso exacto depende de su sistema/distribución. Comuníqueme si necesita
se resuelto de modo diferente en otros sistemas.

<sect1> ¡El GUI no reconoce mi core iniciado de manera manual!

<p>
Lo primero, ¿ha pasado '-' en las opciones de la línea de órdenes del core cuando
lo ha iniciado? La opción en línea de órdenes '-' le dice al core que escuche
peticiones del GUI en un puerto específico. Sin pasarle esa opción, el GUI no será
capaz de conectar con el núcleo, lo que el GUI busca es un núcleo que tenga esa
opción pasada en la línea de órdenes.

<p>
Lo segundo, el GUI espera que el binario del núcleo se llame 'donkey*', 'overnet*', o
'cdonkey*' (solo mira el principio del nombre). Si ha renombrado el programa, el GUI
no lo encontrará (¿cómo es que ha hecho eso?).

<sect1> Quiero hacer tunel de la conexión gui-core via ssh, pero el GUI insiste en usar
un núcleo local si uso 'localhost' o '127.0.0.1' para el destino final del tunel.

<p>
Dos soluciones fáciles: PUede usar una de las otras IPs no locales de su máqina, por
ejemplo la IP de su tarjeta de red (p.e. 192.168.0.2), o editar su archivo
/etc/hosts y añadir una línea como 'core.outerspace.world 127.0.0.1' y poner
'core.outerspace.world' en el campo de nombre del host en el diálogo de 'Conectar a..'

<p>
De todos modos esto es algo que no va a ser 'arreglado', porque la decisión
de insistir en ejecutar un núcleo local en el caso de 'localhost' ha sido hecha
a propósito, para facilitar a un usuario novato joe el proceso de como empezar.

<p>
<bf>Note también que el 'running core detection' solo funciona en GNU/Linux con un
sistema de archivos /proc montado</bf> por el momento. Los usuarios de otros
Sistemas Operativos (p.e. *BSD, MacOSX) puede que nos quieran enviar un parche
para arreglar esto :)

<sect1> He encontrado un fallo - ¿Qué debo hacer?

<p>
Vea si puede reproducirlo y/o cómo reproducirlo

<p>
Compruebe si el error ya ha sido reportado, y de ser así, si ya ha sido corregido.
Asegúrese de mirar en 'todos' los errores en el sistema de control de errores, de
otro modo solo verá los errores 'abiertos' pero no los corregidos.

<p>
Si sabe como usar CVS, compruebe la última versión del GUI desde el CVS para ver si
el error sigue estando presente en esta versión.


<p>
Envíe el error al
 <htmlurl url="http://sourceforge.net/tracker/?group_id=61752&amp;atid=498271" name="sistema de control de errores del proyecto">
 con tanto detalle como sea posible. Si dispone de una cuenta en sourceforge, identifíquese para que pueda
 contactar con usted si tengo alguna pregunta más acerca del error. Si no la tiene, monitorice el error o
 compruebe su estado de vez en cuando para ver si hay alguna pregunta a respecto.
 
<sect1> El GUI me hace realmente feliz - ¿Cómo puedo recompensarle?

<p>
Escríbame un correo electrónico. Respuestas positivas siempre me hacen feliz :-)

<p>
También tengo una
 <htmlurl url="http://www.amazon.co.uk/exec/obidos/wishlist/1NL5R93EL1WA6" name="amazon.co.uk wishlist">
 y una
 <htmlurl url="http://www.amazon.de/exec/obidos/wishlist/3G88NU8L43WL6" name="amazon.de wishlist">
 en el caso de que se sienta bien dandome una pequeña cantidad
 por las miles de horas de trabajo que he invertido en el GUI y en el core ;)

<sect>Derechos de copia (Copyright)

<p>

ed2k_gui Copyright 2001-2003 Tim-Philipp Müller , t.i.m at orange dot net


Este programa es software libre, usted puede redistribuirlo y/o modificarlo
bajo los términos de la Licencia Pública General GNU como está publicado
por la Free Software Foundation; desde la versión 2 de la Licencia, u
(opcionalmente) cualquier versión posterior.

Este programa es distribuido con la esperanza de que sea útil,
pero SIN NINGUNA GARANTÍA; incluso sin la garantía implícita de
MERCANTIBILIDAD o PARA PROPÓSITO PARTICULAR. Vea la Licencia
Pública General GNU para más detalles. 

Usted debe hacer recibido una copia de la Licencia Pública General
GNU con este programa; si no es así, escriba a la Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

<p>
</article>
