@database newsgroupeditor.guide
@master mygroups.guide
@$VER: newsgroupeditor.guide V1 (22/09/95)
@author "Mike Redrobe"
@(c) "Copyright Mike Redrobe 1995"
@wordwrap

@node "Main" "NewsgroupEd 1.3"
@next "intro"

            @{b}Sencillo editor para gestión de los grupos de noticias
                        Copyright © Mike Redrobe 1995@{ub}


                            @{"     Introducción    " link "intro" 0}
                            @{" Nuevas prestaciones " link "new" 0}
                            @{"    Requerimientos   " link "Requirements" 0}
                            @{"     Instalación     " link "Installation" 0}
                            @{"    Configuración    " link "Configuration" 0}
                            @{"   Uso del Editor    " link "GUI" 0}
                            @{"   Planes futuros    " link "todo" 0}
                            @{"   Sobre el autor    " link "About the Author" 0}


             Traducción al castellano 1.1 (12.01.96) sin garantías
                         de Dámaso Domínguez Estévez
                           Email: amidde@arrakis.es
@endnode


@node "About the Author" "Sobre el autor"

          @{b}NewsgroupEditor 1.3@{ub} ha sido escrito en septiembre de 1996
              por Mike Redrobe - Email: Mike@Redrobe.demon.co.uk
@endnode


@node "new" "Novedades"

  @{u}Novedades de esta versión@{uu}


  1.33 - 25/10/96

    * Añadida capacidad para cargar listas cuando no hay mucha
      memoria sin fragmentar utilizando ahora  uno de los tres
      métodos siguientes para la lista de grupos de noticias
      activos:

         1.- se solicita a la biblioteca (Thor) 'bbread.library' ;-)

         2.- se reserva un gran bloque de memoria para el fichero,
             cargando el fichero completo en memoria y procesándolo.

         3.- lectura del fichero poco a poco reservando tanta memoria
             como sea necesaria para el proceso.

     La opción (3) es nueva y ésta es utilizada cuando la (2) falla...
     En mi sistema, la opción (1) necesita aproximadamente un bloque
     de 1 MB, la (2) un bloque de 500 KB y la (3) menos de 1 KB ;)
     Percátese de que los métodos (2) y (3) utilizan la misma cantidad
     total de memoria, pero ésta se reserva de forma diferente.
     Disponiendo de 18 MB, no uso normalmente la opción (3) pero si
     la memoria está verdaderamente muy fragmentada...


  1.32 - 8/10/96

    * Encontrado+corregido un error habitual: "Add all groups"
      ("Añadir todos los grupos") no siempre funcionaba
      (gracias a Enforcer ;)

    * Añadido control desde el CLI (aún utiliza los tipos de
      herramienta por defecto...): la opción más importante
      es NOGUI para uso con arexx.

    * Añadido puerto arexx (bueno en realidad siempre estuvo ahí,
      pero sólo respondía al comando QUIT)


  1.31 - 28/9/96

    * Corregidos algunos errores
         - Ordenación de la lista de suscripciones: no funcionaba
           y, o colgaba el programa o consumía muchísimo
           tiempo de CPU.
         - En la barra de título quedaba, incluso después de
           terminarse la ordenación, el mensaje "Sorting message"
           ("Clasificando mensajes"): eliminada completamente ;)

    * Añadido tipo de herramienta "SCREEN" para abrir
      la ventana del programa en cualquier pantalla pública
      (si falla se abrirá sobre el WB).

    * Añadida capacidad de utilizar los tipos de herramientas
      cuando el programa se ejecuta desde CLI (si no se utiliza
      ningún parámetro).

    * Añadidas algunas comprobaciones adicionales de errores.

    * Añadida rutinilla arexx (aún muy primitiva)
      "NewsgroupEd.thor": se irá haciendo más compleja
      en cuanto añada más funciones arexx...


  1.3 - 23/9/96

    * Ya dispongo de un 040/MMU de manera que ya puedo ejecutar
      "Enforcer" y lo más importante: "FindHit", desperdiciando
      ahora menos horas.

    * Corregidas advertencias generadas por "Enforcer" referentes a una
      entrada "fantasma" en la lista de suscripciones cuando se usa con
      THOR (corregido pero no estoy seguro de si era debido
      a un error mío o del THOR r8-?).

    * Corregido un buen montón de advertencias generadas por "Enforcer"
      en circunstancias variadas (la mamyoría de "Leyendo en la
      dirección 0" causada por "strcpy(blah,wotsit);"
      cuando wotsit es NULL).


  1.2 - 5/8/96 (Mejoras sobre todo para hacerlo de uso más amigable)

    * Peticiones informativas que advierten de cuántos eventos
      'Activar/Desactivar' ("Join"/Resign") se han creado para THOR.

    * Ahora pregunta si desea ordenar la lista,
      en lugar de hacerlo automáticamente.

    * Ídem para guardar la lista ordenada.

    * Barra indicadora del grado de progreso en los procesos de búsqueda.

    * Añadidas opciones de menú para guardar
      y ordenar la lista de grupos de noticias activos.

    * Pequeñas mejoras en el código.


  1.1

    * ¡Ahora soporta THOR completamente!:
       - Puede cargar/guardar/editar/buscar
         en la lista de grupos de noticias activos de THOR,
       - Puede cargar/guardar/editar la lista de suscripciones
         (grupos de noticias a los que el usuario
         se ha conectado o desea hacerlo).

    * Ya no ignora los grupos que comienzan
      con un número... por ejemplo 3b.misc

    * Es más rápido rápido (ligeramente).

    * Añadida opción para ordenar
      la lista de grupos de noticias
      activos alfabéticamente.


  1.0

    * Versión inicial libre, por suerte, de errores ;)
@endnode


@node "intro" "Introducción"

  @{u}"La razón de ser"@{uu}


  Este programa ha sido escrito por dos razones:

    1.- Quería  que  mi  primer  proyecto  para  Amiga  fuera  útil (soy nuevo
        programando para Amiga, pero llevo años programando en C...)

    2.- Otros  editores  de grupos de noticias que probé eran muy lentos, o no
        podían manejar la lista completa (más de 15.000 grupos activos y sigue
        aumentando su número...)

  Mi  programa  puede  cargar  15.000  grupos en 5 segundos en mi A4000/030, y
puede realizar una "sencilla" búsqueda en, aproximadamente, 3 segundos...  las
búsquedas más complejas pueden tardar unos 30 segundos aproximadamente.

  Originalmente  ha  sido  programado  utilizando  SAS/S  en  2  días:   lo he
optimizado  incrementando  su  velocidad  unas 3 veces.  Parece estar libre de
errores, pero nunca se sabe...
@endnode


@node "Requirements" "Requerimientos"

  Este programa necesita cualquier ordenador Amiga con:

    * SO 2.04 o superior (biblioteca "gadtools.library")

    * Memoria: depende de que usted haga...

             ... para una lista de grupos activos mínima,
                 se utilizará unos 120 Kb en total, pero,

             ... para un lista de 424 Kb (¡15.000 grupos de noticias!),
                 el programa utilizará aproximadamene 780 Kb o
                 1.1 Mb si realiza largas búsquedas.

   Percátese,  sin  embargo,  que  he  diseñado  el programa para que prime la
velocidad  frente  al consumo de memoria, aunque esto puede modificarse si hay
suficientes usuarios interesado en ello...
@endnode


@node "Installation" "Instalación"

  La  instalación es muy fácil:  basta con que mueva el programa MyGroups y su
icono  al  directorio  que desee...  ¡oh, sí!  ¡y este fichero (si cree que lo
puede necesitar ;))!
@endnode


@node "Configuration" "Configuración"

  En este momento, el programa es configurable vía TIPOS DE HERRAMIENTAS...

  Tipo de herramienta                  Función                 Por defecto
  ~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~

    NEWSGROUPFILE        Define el fichero que contiene      uulib:newsgroups
                         la lista de suscripciones
                         (grupos de noticias a los que
                         el usuario se ha conectado o
                         quiere conectarse).

  -------------------    ---------------------------------   ----------------

     ACTIVEFILE          Define una lista con todos los        uulib:active
                         grupos de noticias activos
                         (disponibles).

      Si  utiliza THOR, existe el fichero Thor:data/bbsX/passconf.data
                donde "X" es el número de conferencia (TCP).

  -------------------    ---------------------------------   ----------------

      BASEDIR            Directorio en el que se abrirá            UULIB:
                         la petición de ficheros.

  -------------------    ---------------------------------   ----------------

       DAYS              Nº de días anteriores al actual             10
                         para búsqueda de mensajes.

               Percátese de que puede ser alterado este valor
            a través de la barra deslizante o tecleando un valor
              en el campo numérico (nº entero), situados ambos
              en la parte inferior de la ventana del programa.

  -------------------    ---------------------------------   ----------------

       WIN_X             Definen la posición y el tamaño            200
       WIN_Y             de la ventana principal del                15
      WIN_WID            programa.                                  500
      WIN_HGT                                                       500

              Percátese que estos valores pueden ser ignorados
         si las dimensiones actuales de la pantalla no los soportan.
                    El tipo de letra Topaz será utilizado
                          en caso de emergencia...

                      ---------------------------------

  Además  de  los  tipos  indicados  se  disponen  de  los siguientes tipos de
herramienta relacionados directamente con el lector multisistema THOR...

  Tipo de herramienta                  Función                 Por defecto
  ~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~

       USETHOR           Utiliza la lista de grupos de
                         noticias activos, y la lista
                         de suscripciones, que utiliza
                         THOR.

     THORSYSTEM          Permite especificar el nombre          Internet
                         del sistema utilizado en THOR.
@endnode


@node "todo" "Pendiente de implementar"

  a.- Arrastrar y soltar ("Drag and drop"):  Ya he programado esto (no, no
      estoy utilizando bibliotecas externas).

  b.- Tamaño de listas de opciones ("listview") ajustables, como en Dopus 4

  c.- Obtener el fichero (lista) de grupos de noticias activos directamente
      del servidor de noticias: he trabajado en este código, pero
      probablemente lo utilizaré para el @{"otro" link "other" 0} programa ;).
@endnode


@node "other" "El otro"
@endnode


@node "Select File" "Elija fichero"

  Abre una petición de ficheros ASL.
@endnode


@node "SearchString" "Búsqueda de cadenas"

  Teclee  la  cadena  a  buscar  en este campo de texto:  cualquier patrón y/o
comodín  del AmigaDOS es aceptado...  advertir que puede utilizar "*" en lugar
de  "#?"  si  utiliza  alguna  utilidad  que habilite esta prestación como por
ejemplo MCP, WildStart, etcétera.

  Por ejemplo:

       *                 selecciona todos los grupos
    o  #?                selecciona todos los grupos

       *amiga*           selecciona todos los grupos con "amiga" en su título
    o  #?amiga#?         selecciona todos los grupos con "amiga" en su título

       ~(*de.)           selecciona todos los grupos excepto los alemanes

  El  estado  del botón binario ('checkbox') que está situado bajo el campo de
texto indicará {1} si la búsqueda debe realizarse en toda la lista o solamente
en  la  sublista  obtenida después de la búsqueda anterior.  Un efecto similar
puede  obtenerse separando las búsquedas con el carácter "punto y coma" (";").
Por ejemplo:  *graphics*;~(de.*);~(fr.*)

                            ---------------------

        {1} Nota del traductor:  este botón binario no está disponible
                    en las últimas versiones del programa.
@endnode


@node "Current Newsgroup" "Grupo de noticias actual"

  Muestra el grupo de noticias actualmente seleccionado.
@endnode


@node "ADD Newsgroups Button" "Botón ADD: Añadir grupo de noticias"

  Añade el grupo de noticias seleccionado a la lista de suscripciones.
@endnode


@node "REMOVE Newsgroups Button" "Botón REMOVE: Borrar grupo de noticias"

  Elimina el grupo de noticias seleccionado de la lista de suscripciones.
@endnode


@node "Days to download slider" "Barra deslizante 'Days'"

  Permite  ajustar  el  intervalo  de  búsqueda  (nº  de  días)  en el que han
aparecido nuevos artículos/mensajes en los grupos de noticias.
@endnode


@node "Days to download integer gadget" "Campo numérico 'Days'"

  Permite  ajustar  el  intervalo  de  búsqueda  (nº  de  días)  en el que han
aparecido nuevos artículos/mensajes en los grupos de noticias.
@endnode


@node "Cycle Gadget" "Botón cíclico"

  Permite  seleccionar  la forma en que la lista de suscripciones (lista de la
derecha) será guardada en disco.  Dispone de 3 opciones:

     1.- 'UUCP-File'     (Fichero UUCP)
         Se guardará en formato UUCP (por defecto).

     2.- 'Thor joined'   (Lista de eventos)
         Con esta opción se crearán los eventos correspondientes
         en la lista de eventos de THOR.

     3.- 'Thor conflist' (Lista de conferencias de THOR)
         Se guardará en la lista de grupos de noticias activos
         (THOR utiliza este fichero a la hora de seleccionar
         el usuario los grupos a los que desea conectarse,
         así que utilice esta opción con cuidado).
@endnode


@node "Save button" "Botón 'Save'"

  Permite guardar la lista de suscripciones (lista situada en la parte derecha
de la ventana del programa) en disco:  la forma en que se realice la operación
dependerá del estado del @{"botón cíclico" link "Cycle Gadget"0}.
@endnode


@node "GUI" "Interfaz gráfica del usuario"

                                  @{" " link "Select File" 0}                                @{" " link "Select File" 0}
      ----------------------------------------------------------------
      |                             |                                |
      |     Aquí se muestra la      |       Aquí se muestra la       |
      |                             |                                |
      |     lista de grupos de      |     lista de suscripciones     |
      |                             |                                |
      |      noticias activos       |   (grupos de noticias a los    |
      |                             |                                |
      |     (todos los grupos       |     que el usuario está ya     |
      |                             |                                |
      |  de noticias disponibles)   | conectado o desea conectarse)  |
      |                             |                                |
      ----------------------------------------------------------------
        @{"                          " link "SearchString" 0}    @{"                            " link "Current Newsgroup" 0}

                @{"  |        " link "Cycle Gadget" 0}          @{" ADD " link "ADD Newsgroups Button" 0} @{" REMOVE " link "REMOVE Newsgroups Button" 0} @{"  #  " link "Days to download slider" 0} @{" " link "Days to download integer gadget" 0} @{" SAVE " link "Save button" 0}
@endnode

