%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
%                       Legal Notice                            %
%                                                               %
% This document is copyright (C) Olaf Kirch, okir@monad.swb.de  %
%                                                               %
% For copying conditions, please refer to the file COPYING.	%
%                                                               %
% The author is not liable for any damages, direct or indirect, %
% resulting from the use of information provided in this        %
% document.                                                     %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% When viewing this document with vi on an 80-columns screen,   %
% do a ':se nonumber' first.                                    %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% traducci\'on Urko Lusa <ulusa@arrakis.es>                     %
% Revision por David Escorial <descor@opera.dia.fi.upm.es>      %
%                                                               %
% Revisado en 21-Abril-1998 por:                                %
%   Juan Jose Amor <jjamor@ls.fi.upm.es>                        %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\chapter{Newsreader Configuration}
\chapter{Configuraci\'on del lector de noticias}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{newsreaders}
%\index{news!reader|see {newsreader}}
% OJO: No me acuerdo en qu\'e quedamos con el ``see''  O8-)
\index{noticias!lector|see {noticias, lector de}}
%\index{newsreader!configuring}
\index{noticias, lector de!configuraci\'on}
%\index{configuring!newsreader}
\index{configuraci\'on!lector de noticias}

%Newsreaders are intended to offer the user functionality that allows her
%to access the functions of the news system easily, like posting
%articles, or skimming the contents of a newsgroup in a comfortable way.
%The quality of this interface is subject of endless flame wars.

% OJO : lo de skim me dice el diccionario que es ``espumar''. As\'{\i} que me
% he sacado el ``purgar'' de la manga. Tradutore traditore X-D

Los lectores de noticias est\'an pensados para ofrecer al usuario un
acceso f\'acil a las funciones de un sistema de noticias, tales como
publicar art\'{\i}culos, o purgar los contenidos de un grupo de una manera
c\'omoda. El mayor o menor acierto en cumplir este objetivo es objeto de
interminables discusiones en los grupos de noticias.


Algunos de los lectores disponibles que han sido portados a
\linux{}. A continuaci\'on se describir\'a la instalaci\'on b\'asica para
tres de los m\'as populares: \prog{tin}, \prog{trn}, y \prog{nn}.


Uno de los lectores m\'as efectivos es

\begin{tscreen}
\begin{verbatim}
$ find /var/spool/news -name '[0-9]*' -exec cat {} \; | more
\end{verbatim}
\end{tscreen}

%This is the way \unix{} die-hards read their news.
As\'{\i} es como los {\it unixeros} a ultranza leen sus noticias.

La mayor\'{\i}a de los lectores de noticias, sin embargo, son mucho m\'as
sofisticados. Generalmente ofrecen un interfaz a pantalla completa con
niveles separados para mostrar todos los grupos a los que el usuario
est\'a suscrito, para mostrar una lista de todos los art\'{\i}culos de un
grupo, y para art\'{\i}culos individuales.

En el nivel del grupo, la mayor\'{\i}a de los lectores muestran una lista de
art\'{\i}culos en la que aparece el tema de los mismos y el autor. En los
grupos grandes es imposible para el usuario caer en la cuenta de los
art\'{\i}culos que se refieren unos a otros, aunque es posible identificar
las respuestas a un art\'{\i}culo anterior.


%\index{newsreader!threading}
\index{noticias, lector de!hebras}
%\index{news!follow-up}
\index{noticias!respuestas}
Una respuesta normalmente repite el t\'{\i}tulo del art\'{\i}culo original
precedido por ``\term{Re: }''. Adicionalmente, el identificativo del
mensaje al que se responde puede indicarse en el campo
\mhdr{References:}. Ordenar los art\'{\i}culos por esos dos criterios genera
peque\~nos \'arboles llamados {\it hebras}\footnote{N. del T.: Son los
llamados popularmente {\it threads} }. Una de las tareas al escribir
un lector de noticias es dise\~nar un algoritmo eficiente para ordenar los
art\'{\i}culos, ya que el tiempo requerido para ello es proporcional al
cuadrado del n\'umero de art\'{\i}culos.


No discutiremos aqu\'{\i} c\'omo se construyen los interfaces de usuario. Todos
los lectores actualmente disponibles para \linux{} tienen una buena
funci\'on de ayuda, as\'{\i} que el usuario puede apa\~n\'arselas solo.


%In the following, we will only deal with administrative tasks. Most of
%these relate to the creation of threads databases and accounting.

En lo sucesivo, s\'olo trataremos cuestiones administrativas. La mayor\'{\i}a
de ellas relacionadas con la creaci\'on de bases de datos y contabilidad.


%\section{\prog{tin} Configuration}
\section{Configuraci\'on de \prog{tin}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{newsreaders.tin}
%\index{newsreader!tass@\prog{tass}}
\index{noticias, lector de!tass@\prog{tass}}
%\index{newsreader!tin@\prog{tin}}
\index{noticias, lector de!tin@\prog{tin}}
\index{tass@\prog{tass}}
\index{tin@\prog{tin}}

El lector m\'as vers\'atil en lo que al tratamiento de las hebras se refiere
es \prog{tin}. Fue escrito por Iain Lea siguiendo el modelo de un lector
anterior llamado \prog{tas}.\footnote{
 Escrito por Rich Skrenta.
} Ordena las hebras en el momento en el que el usuario accede al grupo,
y es muy r\'apido haci\'endolo, salvo que se haga por NNTP.

%\index{newsreader!threading}
\index{noticias, lector de!hebras}
\index{INN}
En un 486DX50 se tarda unos 30 segundos en ordenar mil art\'{\i}culos,
ley\'endolos directamente desde el disco. Mediante NNTP con un servidor
ocupado, rondar\'{\i}a los cinco minutos.\footnote{
 El tiempo se reduce dr\'asticamente si el servidor NNTP crea las hebras
 por s\'{\i} mismo y permite al cliente recibir estos datos. Un servidor que
 permite hacer esto es INN-1.4, por ejemplo.
} Se puede mejorar este tiempo actualizando regularmente los ficheros
\'{\i}ndice con la opci\'on \option{-u}, o llamando a \prog{tin} con la opci\'on
\option{-U}.


Normalmente \prog{tin} guarda la informaci\'on sobre las hebras en el
directorio del usuario, bajo \file{.tin/index}. Esto puede ser costoso
en t\'erminos de espacio en disco, as\'{\i} que es posible que quiera Vd.
mantener una sola copia para todos los usuarios. Esto se puede lograr
haciendo a \prog{tin} setuid \user{news}, por ejemplo, o alg\'un otro
usuario sin privilegios.\footnote{
 Sin embargo, {\emph no} utilice el usuario \user{nobody}. Como norma,
 ning\'un fichero o programa deber\'{\i}a ser asociado con este usuario.
} \prog{tin} guardar\'a todos los ficheros \'{\i}ndice bajo
\file{/var/spool/news/.index}.
Para los accesos a ficheros o salidas al shell, volver\'a a ser del
usuario real que lo invoc\'o.\footnote{
 Esta es la raz\'on por la que se obtendr\'an feos mensajes de error al
 invocar a tin como superusuario. De todas formas, no se deber\'{\i}a
trabajar como \user{root}, es una cuenta para administraci\'on.
}

%\index{newsreader!creating thread databases}
\index{noticias, lector de!creando bases de datos de hebras}
Una soluci\'on mejor es instalar el demonio indexador \prog{tind}, que se
ejecuta como tarea de fondo y actualiza regularmente los ficheros
\'{\i}ndice. Sin embargo, este demonio no se incluye en ninguna distribuci\'on
para \linux, as\'{\i} que tendr\'a que compilarlo Vd. mismo. Si est\'a Vd.
trabajando con una red local con un servidor central de noticias, puede
ejecutar \prog{tind} en el servidor, y hacer que los clientes reciban
los \'{\i}ndices por NNTP. Esto, por supuesto, requiere una extensi\'on del
NNTP. Los parches necesarios para que \prog{nntpd} soporte esta
extensi\'on se incluyen en las fuentes de \prog{tin}.

La versi\'on de \prog{tin} incluida en algunas distribuciones de \linux{}
no tiene soporte NNTP, pero la mayor\'{\i}a s\'{\i} lo incorporan. Cuando se le
invoca como \prog{rtin} o con la opci\'on \option{-r}, \prog{tin} trata de
conectar con el servidor especificado en el fichero
\file{/etc/nntpserver} o en la variable de entorno
\shellvar{NNTPSERVER}. El fichero \file{nntpserver} simplemente contiene
el nombre del servidor en una sola l\'{\i}nea.

%\section{\prog{trn} Configuration}
\section{Configuraci\'on de \prog{trn}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{newsreaders.trn}
%\index{newsreader!trn@\prog{trn}}
\index{noticias, lector de!trn@\prog{trn}}
\index{trn@\prog{trn}}

%\prog{trn} is the successor to an older newsreader, too, namely
%\prog{rn} (which means \emph{read news}). The ``t'' in its name stands
%for ``threaded''.  It was written by Wayne Davidson.

\prog{trn} es tambi\'en el sucesor de un programa anterior, \prog{rn}
(siglas de {\it read news}\footnote{N. del T.:
Leer noticias. 
}). La ``t'' en su nombre significa {\it threaded}\footnote{N. del T.:
Ordenado en hebras.
}. Fue escrito por Wayne Davidson.

%\index{newsreader!creating thread databases}
\index{noticias, lector de!creando bases de datos de hebras}
Al contrario que \prog{tin}, \prog{trn} no tiene opci\'on para generar
bases de datos sobre las hebras en el momento de ejecuci\'on. En cambio,
usa las bases de datos creadas por un programa llamado \prog{mthreads},
el cual debe ser ejecutado regularmente desde \prog{cron} para
actualizar los ficheros \'{\i}ndice.

\index{mthreads@\prog{mthreads}}
No ejecutar \prog{mthreads}, sin embargo, no significa que no se pueda
acceder a los art\'{\i}culos nuevos, solo significa que tendr\'a Vd. todos esos
art\'{\i}culos sobre ``!`!`Novell compra Linux!!'' esparcidos por el men\'u de
selecci\'on de art\'{\i}culos en vez de una sola hebra que pueda evitar
f\'acilmente.

Para activar la ordenaci\'on en hebras de un grupo particular,
\prog{mthreads} se invoca con la lista de grupos desde la l\'{\i}nea de
comandos. La lista se hace exactamente de la misma manera que la del
fichero \file{sys}:

\begin{tscreen}
\begin{verbatim}
mthreads comp,rec,!rec.games.go
\end{verbatim}
\end{tscreen}


\noindent
ordenar\'a en hebras todos los grupos \ngrp{comp} y \ngrp{rec}, excepto
\ngrp{rec.games.go} (la gente que juega al Go no necesita bonitas
hebras). Despu\'es de esto, simplemente se le invoca sin ninguna opci\'on
para que ordene todos los art\'{\i}culos que vayan llegando. El ordenamiento
de todos los grupos del fichero \file{active} puede ser activado
llamando al programa \prog{mthreads} con la lista de grupos \ngrp{all}.

Si recibe Vd. las noticias durante la noche, bastar\'{\i}a con ejecutar
\prog{mthreads} una vez por la ma\~nana, pero tambi\'en puede hacerlo m\'as
frecuentemente si es necesario. En sistemas con un tr\'afico muy denso,
puede ser deseable ejecutar \prog{mthreads} como tarea de fondo (modo
{\it daemon}). Si se le llama al arrancar con la opci\'on \option{-d}, se
pone como tarea de fondo, comprobando cada diez minutos si han llegado
nuevos art\'{\i}culos, y orden\'andolos si este es el caso. Para ejecutar
\prog{mthreads} como tarea de fondo, ponga la siguiente l\'{\i}nea en el
script \file{rc.news}:


\begin{tscreen}
\begin{verbatim}
/usr/local/bin/rn/mthreads -deav
\end{verbatim}
\end{tscreen}


La opci\'on \option{-a} hace que \prog{mthreads} ordene autom\'aticamente los
nuevos grupos seg\'un se vayan creando. La opci\'on \option{-v} habilita los
mensajes largos en el archivo de registro, llamado \file{mt.log} y situado en el directorio donde
est\'e instalado \prog{trn}.


%\index{C News!update low water mark}
% OJO: por ``ciencia infusa'' : low water mark = l\'{\i}nea de flotaci\'on
\index{C News!linea de flotaci\'on}
%\index{news!expiring}
\index{noticias!caducidad}
% Este p\'arrafo de abajo no he sabido muy bien c\'omo traducirlo.
%} Articles above this number who have been expired nevertheless (because
%the oldest article has been assigned an long expiry date by an
%\mhdr{Expires:} header field) may be removed by giving \prog{mthreads}
Los art\'{\i}culos viejos que ya no est\'en disponibles en el sistema deben ser
eliminados de los ficheros \'{\i}ndice regularmente. Por defecto, s\'olo los
art\'{\i}culos cuyo n\'umero est\'e por debajo de la l\'{\i}nea de flotaci\'on ser\'an
eliminados.\footnote{
 Tenga en cuenta que \cnews no actualiza su l\'{\i}nea de flotaci\'on
 autom\'aticamente; hay que ejecutar \prog{updatemin} para ello. V\'ease el
 cap\'{\i}tulo~\ref{cnews}.
} Los art\'{\i}culos que a pesar de estar por encima de este n\'umero
hayan caducado (porque tengan el campo \mhdr{Expires:} en la
cabecera) pueden ser purgados usando la opci\'on \option{-e} del programa
\prog{mthreads}. Cuando \prog{mthreads} est\'a ejecut\'andose como tarea de
fondo, esta opci\'on hace que use un modo mejorado de purga una vez al
d\'{\i}a, poco despu\'es de la media noche.

\section{Configuraci\'on de \prog{nn}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{newsreaders.nn}
%\index{newsreader!nn@\prog{nn}}
\index{noticias, lector de!nn@\prog{nn}}
\index{nn@\prog{nn}}
\index{Storm, Kim F.}

\prog{nn}, escrito por Kim~F. Storm, proclama ser un lector cuya \'ultima
finalidad es no leer noticias. Su nombre signigica ``No News''\footnote{
N. del T.: Sin noticias.
}, y su lema es ``falta de noticias, buenas noticias. \prog{nn} es
mejor''.

Para alcanzar su ambiciosa meta, \prog{nn} viene equipado con gran
cantidad de herramientas de mantenimiento que no s\'olo permiten la
creaci\'on de hebras, sino tambi\'en comprobaciones extensivas de la
consistencia de tales bases de datos, contabilidad, recopilaci\'on de
estad\'{\i}sticas, y restricciones de acceso. Existe tambi\'en un programa de
administraci\'on llamado \prog{nnadmin}, que permite llevar a cabo estas
tareas interactivamente. Es muy intuitivo, por lo que no profundizaremos
estos aspectos, sino que nos limitaremos a la creaci\'on de los ficheros
\'{\i}ndice.

%\index{newsreader!creating thread databases}
\index{noticias, lector de!creando bases de datos de hebras}
El programa encargado de manejar las bases de datos para \prog{nn} se
llama \prog{nnmaster}. Generalmente trabaja en modo {\it daemon},
invocado desde el script \file{rc.news} o \file{rc.inet2}. Se le invoca
de la siguiente manera:

\begin{tscreen}
\begin{verbatim}
/usr/local/lib/nn/nnmaster -l -r -C
\end{verbatim}
\end{tscreen}


Esto habilita la indexaci\'on para todos los grupos presentes en el
fichero \file{active}.

%uses blanks instead of commas. Instead of the fake group name
%\ngrp{all}, an empty argument of \term{\dqt\dqt} should be used to
%denote all groups.  A sample invocation is
De manera equivalente, se puede ejecutar \prog{nnmaster} peri\'odicamente
desde \prog{cron}, pas\'andole la lista de grupos sobre la que actuar.
Esta lista es muy parecida a la lista de subscripciones del fichero
\file{sys}, salvo que usa espacios en blanco en vez de comas. En vez del
nombre \ngrp{all}, se debe usar un argumento vac\'{\i}o de \term{\dqt\dqt}
para referirse a todos los grupos. Un ejemplo es:


\begin{tscreen}
\begin{verbatim}
# /usr/local/lib/nn/nnmaster !rec.games.go rec comp
\end{verbatim}
\end{tscreen}


Tenga en cuenta que el orden es significativo: la especificaci\'on de
grupo que concuerde y est\'e m\'as a la izquierda es la que vale. Por tanto,
si ponemos \keyword{!rec.games.go} despu\'es de \keyword{rec}, los
art\'{\i}culos de este grupo se indexar\'{\i}an de todos modos.

%\index{news!expiring}
\index{noticias!caducidad}
\prog{nn} ofrece varios m\'etodos para borrar los art\'{\i}culos caducados de
sus bases de datos. El primero es actualizar la base comprobando los
directorios de los grupos, y desechando las entradas cuyo art\'{\i}culo
correspondiente ya no est\'e disponible. Este es el m\'etodo por defecto
obtenido al invocar a \prog{nnmaster} con la opci\'on \option{-E}. Es
razonablemente r\'apido, a menos que se haga por NNTP.

El segundo m\'etodo act\'ua exactamente como la opci\'on por defecto de
\prog{mthreads}: s\'olo elimina las entradas referidas a art\'{\i}culos cuyo
n\'umero est\'a por debajo de la l\'{\i}nea de flotaci\'on en el fichero
\file{active}. Puede ser habilitado con la opci\'on \option{-e}.

Finalmente, el tercer m\'etodo consiste en desechar toda la base de datos
y catalogar todos los art\'{\i}culos. Esto puede hacerse pas\'andole la opci\'on
\option{-E3} a \prog{nnmaster}.

La lista de grupos sobre los que actuar se especifica mediante la opci\'on
\option{-F}, del mismo modo que se describi\'o anteriormente. Sin embargo,
si \prog{nnmaster} est\'a ejecut\'andose como tarea de fondo, hay que
matarlo (con la opci\'on \option{-k}) antes de proceder a purgar, y
reiniciarlo despu\'es con las opciones originales. Por lo tanto, los
comandos apropiados para purgar los \'{\i}ndices de todos los grupos usando
el primer m\'etodo es:


\begin{tscreen}
\begin{verbatim}
# nnmaster -kF ""
# nnmaster -lrC
\end{verbatim}
\end{tscreen}


%There are many more flags that may be used to fine-tune the behavior of
%\prog{nn}. If you are concerned about removing bad articles or
%digestifying article digests, read the \prog{nnmaster} manual page.
Hay muchas m\'as opciones que pueden ser utilizadas para ajustar el
comportamiento de \prog{nn}. Si le interesa saber c\'omo eliminar
art\'{\i}culos err\'oneos o agrupar los art\'{\i}culos resumen, lea la p\'agina de
manual de \prog{nnmaster}.

\prog{nnmaster} se gu\'{\i}a usando un fichero llamado \file{GROUPS}, situado
en \file{/usr/local/lib/nn}. Si no existe inicialmente, se crea. Para
cada grupo, contiene una l\'{\i}nea que comienza con el nombre del mismo,
opcionalmente seguido de una anotaci\'on de tiempo y diversos indicadores.
Es posible editar dichos indicadores para habilitar un determinado
comportamiento para el grupo en cuesti\'on, pero no se debe cambiar el
orden en que aparecen los grupos.\footnote{
 Esto se debe a que el orden debe coincidir con el del fichero binario
 \file{MASTER}.
} Los indicadores permitidos y sus efectos tambi\'en vienen detallados en
la p\'agina de manual de \prog{nnmaster}.
