"La Gaceta de Linux...haciendo a Linux un poco más amoroso!"


[foto del mecánico]

El Mecánico de Fin de Semana

Por Thomas Adam

Traducción al español por Jorge Eduardo Ibarra Esquer
el día 3 de Junio 2003, para La Gaceta de Linux


Indice


Bienvenidos a la edición de agosto

Saludos, queridos lectores. ¿Cómo han estado? Creo que no muy ocupados. Yo, por mi parte, he estado muy ocupado durante el último mes.Acabo de terminar mis exámenes de nivel A, los cuales resultaron ser bastante cansados. Eso fue lo que evitó que escribiera el Mecánico de Fin de Semana del mes pasado. Para aquellos que actualmente están haciendo o pensando hacer dichos exámenes, les advierto que aunque son divertidos, requieren mucho trabajo duro.

Como resultado de completar mis exámenes de nivel A (estos son los exámenes para la entrada a la universidad) también dejé la escuela. Aunque para mi esto es algo triste, significa que voy a tener mucho tiempo para desarrollar mis ideas de Linux. Así que, durante las vacaciones espero impartir algún curso nocturno acerca del uso de Linux. Es algo que he estado esperando hacer.

Pero no quiero adentrarme mucho en el futuro. Regresando al mundo de la computación, una cosa que me sucedió recientemente y que encontré bastante entretenida, fue que un joven cracker de computadoras (19 años, pero no recuerdo su nombre) de Gales (Reino Unido), obtuvo información de un montón de tarjetas de crédito y los puso en un sitio web. Entre las tarjetas de crédito que obtuvo se encontraba la de Bill Gates. Este cracker usó su tarjeta, ordenó una remesa de viagra, y se la envió a Bill Gates!!!

Ustedes pensarían que el galés podría haber hecho algo mejor...


Una breve introducción: Apache


Instalación

El internet está creciendo a una tasa alarmante. De hecho, casi con cualquier ISP hay la posibilidad de publicar nuestras propias páginas web. Esto se logra a través del uso de una computadora (cliente), y una aplicación de servidor web como Apache. Aunque hay otros servidores web, Apache es el más ampliamente usado en internet, así como el más estable.

"¿Pero para qué me serviría utilizarlo en una máquina local?", los escucho lamentarse. Bueno, ejecutar el demonio httpd de Apache en su máquina Linux representa una gran forma de almacenar información, especialmente si tienes muchas páginas HTML. Yo tengo a Apache corriendo porque tengo una copia local de todos los Howto's de LDP, y por supuesto una copia de los archivos de la Gaceta de Linux!!

Asi que la primer cosa que se debe hacer es probar si tienes Apache instalado. Si tienes una distribución que utilice el formato de archivos RPM, teclea lo siguiente:

rpm -qa | grep -i apache

Si el comando fue exitoso, se mostrará una línea como la siguiente:

apache-1.3.12-95

Esto significa que el servidor web Apache ya ha sido instalado. Si no tienes Apache en tu sistema, entonces deberás instalarlo. Muchas distribuciones incluyen a Apache, así que hay muchas posibilidades de que se encuentre en el CD de tu distribución. Si no lo contiene, o esa distribución no soporta el formato rpm, entonces deberás obtener los archivos fuente en formato tar/gzip (*.tar.gz), disponibles en www.apache.org. Una vez que se hayan bajado los archivos, por lo general, podrás instalar Apache de la siguiente manera:

1. Ingresa al sistema como Root

2. Descomprime el archivo:

tar xzvf /ruta/a/archivo_tar/apache*.tar.gz

3. cd al directorio de Apache que se creó:

cd Apache*

4. ejecuta el script "configure":

./configure

5. Eso tomará como un minuto. Con suerte, habrá sido exitoso y un makefile, llamado "Makefile" deberá existir en el directorio. Si no, es probable que no tengas instalado algún compilador (como C, C++, g++), o tus archivos de encabezado, o los archivos fuente del kernel. También puede deberse a que no tengas instalada la utilería 'make'. Si ese es el problema, entonces tendrás que instalarlos.

Una vez que 'configure' ha terminado, lo que debes hacer es compilar el archivo, tecleando lo siguiente:

make

Este paso puede tomar algún tiempo, especialmente si no tienes una máquina muy nueva.

Suponiendo que no se presentaron errores con 'make', lo último que debes hacer es instalar los archivos compilados tecleando:

make install

Con lo anterior, Apache de be estar instalado. Si encuentras errores al compilar/instalar Apache, lee la documentación que viene incluida con él. Cabe mencionar que durante el proceso "make", es normal que la información sea presentada en la pantalla. Si te das cuenta que se están presetnando errores repetitivos al compilar Apache, una posible salida de este problema es uitlizar el siguiente comando:

make -k all

El comando anterior forzará a "make" a continuar, incluso si encuentra errores en el camino. Aunque solo recomiendo utilizarlo como un último recurso. Invariablemente, al leer la documentación de Apache, se pueden resolver la mayoría de los problemas de compilación.

Ejecutando Apache

Ya que todo ha sido instalado, lo siguiente que hay que hacer es iniciar Apache. Esto se consigue arrancando el demonio "httpd". Por default (al menos para mi) Apache se ejecuta automáticamente durante el nivel de ejecución, así que si aún no has reiniciado tu máquina, teclea lo siguiente, estando aún como usuario "root":

httpd

Lo más seguro es que el prompt haya regresado y nada se haya escrito en la pantalla. Para verificar que el demonio "httpd" se está ejecutando, podemos usar a nuestro viejo amigo "ps", de la siguiente forma:

ps aux | grep -i httpd

Lo que hace el comando anterior, es listar todos los procesos (incluyendo aquellos que no estén ligados a una tty), y entonces filtra la lista (pipes "|") al comando grep, que buscará la expresión "httpd". La opción -i le indiga que no haga diferencia entre mayúsculas y minúsculas.

Podrían presentarse varias líneas, pero habrá una muy parecida a la siguiente:

wwwrun    1377  0.0  2.0  4132 1340 ?        S    11:09   0:00 httpd

Esto significa que Apache está corriendo. Si notas que el resultado de ese comando simplemente regresa "root blah blah grep -i httpd", entonces deberás ejecutar el demonio httpd de nuevo. si sigues obteniendo el mismo mensaje, cambia a init 6

Usando Apache: http://localhost/

OK, ahora ya estamos llegando a alguna parte. Habiéndonos asegurado que el demonio "httpd" está activo, podemos empezar a jugar con él. Abre una copia de un navegador web (como Netscape) e introduce el siguiente URL:

http://localhost

Lo que se presentará será algún tipo de página web. Esta normalmente difiere entre las diferentes distribuciones de Linux. En mi máquina con SuSe, se me presenta el soporte a bases de datos de SuSe y su camaleón mascota centrado en la parte superior de la página!

La página que estás buscando es la página principal del sitio "localhost". Esta página está almacenada en el siguiente directorio:

/usr/local/httpd/htdocs

Este directorio tiene un nombre especial. Se llama DocumentRoot. La ruta de este directorio puede variar un poco en distintos sistemas, pero por lo general será similar a la mencionada anteriormente. En este directorio, se debe prestar atención a ciertos archivos, en particular los *.html. El archivo que se carga cuando se va a "http://localhost/" es el archivo index.html. Lo que yo hice, fue crear un subdirectorio en "htdocs" llamado "oldhtdocs", y copié todos los archivos dentro de él. De esa forma, puedo iniciar de cero, y saber que tengo los originales en caso de necesitarlos.

Podrás darte cuenta que la lectura y escritura a la carpeta DocumentRoot no están permitidas para los usuarios no-root. Para solucionar esta situación, ejecuta la siguiente instrucción, reemplazando "/path/to/htdocs" con la ruta correcta:

chmod +rw /path/to/htdocs

Saber ahora dónde se encuentran los archivos de "http://localhost/" está muy bien, pero, ¿cómo le haces para configurar Apache? Espera un momento lector...... el archivo que estás buscando se llama httpd.conf y normalmente se localiza en "/etc/httpd" o quizáas en el directorio "/usr/local/apache". En los sistemas SuSe y Mandrake, el último es el lugar por default. En las siguientes secciones, usaré el archivo "httpd.conf" para realizar algunas adecuaciones.

Usando Apache: Espacio web por usuario

¿Cuántos de ustedes han visitado URLs que contienen el símbolo tilde (~) seguido de un nombre y después una diagonal? Puedo imaginar que, en algún momento, casi todos lo han hecho. Pero, ¿cuántos de ustedes estaban conscientes de su significado? El símbolo tilde dentro de un URL indica un "subdomain" que pertenece a un usuario en el sistema, en la computadora con el nombre principal del dominio. De esta forma, en la escuela, yo tenía mi propio servidor web, con un URL válido:

http://linuxservertom.purbeck.dorset.local/~thomas_adam/

Lo que esto hacía era recuperar archivos almacenados en un directorio especial dentro de la cuenta del usuario, en este caso el usuario "thomas_adam". Esta opción, da a los usuarios de una red, un espacio en el cual hospedar sus propias páginas web. ¿Y cómo se logra ésto?. Bueno, realmente es muy sencillo....

Todos los usuarios, que tengan permitido tener su espacio web, deben agregarse al grupo nogroup (o www-data en Debian, etc). Esto se hace editando el archivo "/etc/group" (como root), y localizando la línea para "nogroup". Entonces, al final de cada línea, se agregan los nombres de usuario, separados por una coma. Al final guarda el archivo.

En el directorio hogar deun usuario, se debe crear un directorio llamado public_html, para ésto, como usuario root, teclea:

cd /home/auser/ && mkdir public_html

Donde "auser" es el nombre de un usuario válido del sistema. Después se deben asignar los permisos al directorio, lo cual se hace escribiendo lo siguiente:

chmod 755 /home/auser/public_html

Lo último que hay que hacer, es asignar a la carpeta creada dentro del grupo nogroup. Esto puede hacerse tecleando:

chown auser.nogroup /home/auser/public_html

Donde "auser" es el nombre del usuario válido..... substitúyelo por el apropiado. El mismo procedimiento puede aplicarse a todos los usuarios. También puede ser una buena idea practicar con "useradd" de manera que al agregar nuevos usuarios, el directorio "public_html", junto con sus permisos, se cree de manera automática.

[De hecho, no es necesario hacer todos los pasos anteriores concernientes a usuarios y grupos, solamente asegurarse que el directorio public_html y todos sus archivos pueden ser leidos por todo el mundo:

chmod -R a+r /home/auser/public_html
Lo importante es que Apache tenga permiso para leer todos los archivos. -- Mike Orr]

Así que lo siguiente que debemos hacer, es asegurarnos que Apache sabe lo que hicimos. Abran el archivo "httpd.conf" y démosle un vistazo......

Por default, creo que la directiva que le indica a Apache que tome en cuenta a los directorios public_html está comentada, o por lo menos en el mío si estaba. Desde el inicio del documento, hagan una búsqueda de la palabra UserDir. Deben encontrar algo que se vea como lo siguiente:

<IfModule mod_userdir.c>
    UserDir public_html
</IfModule>

Si alguna de las líneas anteriores tiene el símbolo hash (#) al principio, borrenlo. Las líneas anteriores le indican a Apache que el directorio "public_html" va a utilizarse para los archivos html de cada usuario.

Directamente debajo de ésto, hay más líneas relacionadas que le indican a Apache qué restricciones aplicar. En el caso de las siguientes líneas son de solo lectura. Si alguna de ellas está comentada, descoméntenla.

<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

Ahora lo que nos queda es empezar a crear las páginas web. La única otra cosa que encontrarán extremadamente útil es, que si se fijaron en mi ejemplo anterior:

http://linuxservertom.purbeck.dorset.local/thomas_adam/

Yo no especifiqué un archivo ".html" para ser cargado. Esto es porque anteriormente le asigné a Apache un archivo por default para buscar dentro del directorio. Dicho archivo se conoce como DirectoryIndex, y se pueden especificar los archivos a cargar por default. Localicen lo siguiente en su archivo "httpd.conf":

<IfModule mod_dir.c>
    DirectoryIndex index.html index.shtml lwm.html home.html
</IfModule>

Esto le dice a Apache es que cuando se especifique un URL, como en el ejemplo anterior, sin un archivo con extensión html al final, busque por el archivo(s) default especificado después de la etiqueta "DirectoryIndex". Así, si en su directorio "public_html" se encuentra un archivo llamado "index.html", se cargará este archivo como default. Se pueden especificar varios archivos, como se muestra en el ejemplo. Si Apache no puede encontrar ninguno de los archivos indicados, entonces se mostrará el listado del directorio (a no ser que se especifique un archivo para cargar).

Algo que me gustaría mencionar en este momento, es que si se especificó un hostname en "/etc/hosts", pueden substituir ese nombre en el lugar de "http://localhost". Es solo por conveniencia que yo lo uso aquí. Además, en "httpd.conf", recomiendo que busquen la siguiente etiqueta y substituyan localhost por la primera parte de su hostname:

ServerName  grangedairy

Así, mi hostname es grangedairy.laptop, simplemente escribí grangedairy. Las razones para hacer ésto se harán evidentes al leer la Sección de Alias

Lo último que deben hacer después de cualquier cambio que hagan en "httpd.conf", es detener y reiniciar el demonio httpd. Esto se logra tecleando lo siguiente (como root):

killall httpd
httpd

Usando Apache: Aliases

En esta sección, cubriré el corto tema de losAliases. Usando el archivo "httpd.conf", podemos ver una lista de aliases si hacemos una búsqueda con la palabra "alias". Lo más seguro es que encuentren una lista similar a la siguiente:

Alias /howto        /usr/share/doc/howto/en/html/
Alias /mini           /usr/share/doc/howto/en/html/mini/
Alias /lg              /usr/share/doc/lg/
Alias /hilfe          /usr/share/doc/susehilf/
Alias /doc          /usr/share/doc/
Alias /cgi-bin-sdb  /usr/local/httpd/cgi-bin/
Alias /sdb               /usr/share/doc/sdb/
Alias /manual         /usr/share/doc/packages/apache/manual/
Alias /htdig            /opt/www/htdocs/htdig/
Alias /opt/kde/share/doc/HTML      /opt/kde/share/doc/HTML/ 
Alias /opt/gnome/share/gnome/help/ /opt/gnome/share/gnome/help/
Alias /errors/      /usr/local/httpd/errors/
Alias /icons/              /usr/local/httpd/icons/
Alias /admin        /usr/local/httpd/admin/
Alias /lwm                /usr/share/doc/lg/lwm/

Como pueden ver, lo que significa lo anterior, es que si el URL termina en "/howto" por ejemplo, entonces Apache tomará sus páginas web del directorio "/usr/share/doc/howto/en/html". De nuevo, la página pro default que cargará, se toma de DirectoryIndex, como vimos anteriormente.

http://grangedairy/howto

Como recordarán, anteriormente mencioné que era recomendable especificar un ServerName en "httpd.conf". Esto se hizo para que cuando tecleen el URL con uno de los aliases anteriores, no tuvieran necesidad de colocar una diagonal extra al final del URL. Originalmente, los aliases se encontraban de la siguiente manera:

Alias /howto/        /usr/share/doc/howto/en/html/
Alias /mini/           /usr/share/doc/howto/en/html/mini/

con diagonales extra al final del nombre del alias. Al poco tiempo de estárselos agregando me cansé, pero pude decirle a Apache que lo hiciera por mi. Al asignar un valor en la etiqueta ServerName, Apache ahora sabe el nombre de mi máquina, de manera que cuando voy a:

http://grangedairy/howto

Automáticamente agrega la diagonal al final. ¿Interesante, no creen? Así que si han hecho lo mismo que yo, ya pueden borrar las diagonales de los nombres de los aliases, ya que ya no los necesitan

Usando Apache: Directorios Seguros

La parte final de mi tutorial de Apache es cómo configurar y crear "directorios seguros", p.ej. aquellos que requieren autenticación del usuario antes de cargarse. Habrán notado que en mis ejemplos de Aliases, había uno para "/admin". Este de hecho es un directorio seguro.

Ustedes pueden configurar directorios seguros de la misma forma en la que lo harían con un alias, excepto que en esta ocasión, tienen que decirle a Apache un poco más acerca del directorio y cómo es que será analizado. Así que digamos que quieren indicar un directorio seguro midirectorioseguro, localizado en "/usr/local/httpd/midirectorioseguro/", entonces tendrían que hacer lo siguiente:

1. Agregar "/midirectorioseguro" a la lista de alias:

alias /midirectorioseguro    /usr/local/httpd/midirectorioseguro

2. Cambiarse al directorio donde se encuentra la carpeta que se especificó en la lista de alias:

cd /usr/local/httpd

3. Crear el directorio "midirectorioseguro" tecleando:

mkdir midirectorioseguro && cd midirectorioseguro

Con ésto se creó el directorio, y entramos a él.

4. Ahora es cuando empieza el trabajo. Hay dos archivos que vamos a usar: .htaccess y htpasswd. El primero (.htaccess) es el que configuraremos primero. Es el archivo que almacenará la información acerca de cómo será utilizado el directorio "midirectorioseguro".

Así que, desde la consola, utilicen un editor como nano (un clon de pico), jed, emacs, etc, para crear el archivo .htaccess, e introduzcan la siguiente información, exactamente como se muestra, ya que Apache distingue entre minúsculas y mayúsculas al momento de analizar las instrucciones:

AuthType Basic
AuthName "Restricted Directory"
AuthUserFile /usr/local/httpd/admin/htpasswd
require valid-user

(Ya que htaccess inicia con un punto, no se mostrará en los listados de directorio ordinarios. Usen "ls -a" para verlo.)

Las instrucciones arriba presentadas, son las más comunes para crear un directorio seguro. La tabla que se muestra a continuación, da una breve descripción de las instrucciones y cómo utilizarlas.

Etiqueta de opción Significado
AuthType Establece el tipo de auenticación. El más utilizado es Basic.
AuthName Indica el nombre de la ventana de acceso al directorio que se quieren conectar (vean la pantalla que se muestra más adelante).
AuthUserFile Este es el archivo utilizado para la autenticación, en él se almacenan el nombre de usuario y la contraseña (encriptada, por supuesto). Deben asegurarse de indicar la ruta completa del archivo htpasswd.
require valid-user Esto indica que sólo se permitirá el acceso a quienes tengan datos válidos en el archivo htpasswd.

Nota: para seguridad adicional, pongan el archivo htpasswd en un lugar que no sea accesible por medio de un URL --algún lugar fuera de su directorio web o sus directorios alias. Un archivo .htaccess debe estar dentro del directorio al cual está protegiendo (al que se puede acceder por un URL), pero el archivo htpasswd puede estar en cualquier parte. También es posible compartir el mismo archivo htpasswd entre varios directorios

Ok, ahora que ya le hemos dicho a Apache cómo manejar el directorio, necesitamos crear el archivo de password:

5. Para crear el archivo htpasswd deben utilizar el siguiente comando (en el mismo directorio del archivo ".htaccess":

htpasswd -c htpasswd username

Donde deberán reemplazar "username" con su nombre de usuario. Para agregar usuarios a este archivo, introduzcan el mismo comando, pero sin la opción "-c"

6. Ahora editemos a nuestro amigo /etc/httpd/httpd.conf y al final de la lista de aliases, agreguen lo siguiente:

<Directory /usr/local/httpd/*>
    AllowOverride AuthConfig
</Directory>

Tal vez tengan que modificarlo un poco, pero eso asegurará que si Apache encuentra cualquier archivo ".ht*" aplicará controles de seguridad sobre él. Para desactivar lo anterior, cambien AllowOverride AuthConfig por AllowOverride None.

Ahora detengan y reinicien el demonio httpd

Ahora ya están listos para probar todo. Habiendo guardado los archivos, vayan a su navegador y tecleen lo siguiente:

http://servername/midirectorioseguro

Asegurándose de reemplazar "servername" ya sea con su hostname, o con "localhost". Si este resulta exitoso, entonces verán un cuadro de diálogo similar a esta pantalla.

Una vez que hayan introducido la información correcta, deberán tener acceso al directorio. Sin embargo, puede suceder que puedan conectarse al directorio "midirectorioseguro" sin necesidad de identificarse. Si ésto sucede, revisen lo siguiente en su archivo "/etc/httpd/httpd.conf"

Puede ser que Apache no haya sido configurado para reconocer el uso de archivos ".ht*". Pueden indicarle que lo haga, por medio de la etiqueta AccessFileName, de la siguiente forma:

AccessFileName .htaccess

Y con eso concluimos con esta sección. Consideré importante escribir algunas líneas acerca del uso de perl y cgi, pero mejor decidí dejarle eso a Mark Nielses, quien ha realizado un mejor trabajo durante los últimos meses. Además, Ben Okopnik ha estado creando un excelente tutorial, en esta ocasión sobre Perl, así que si están interesados en la programación de cgi's, deberían empezar por leer estas dos series de artículos :-)


Revisión de programa: Upx

Me topé con este programa prácticamente por accidente. Originalmente me encontraba haciendo una investigación en la escuela para el administrador de la red (hola Dave!), quien me involucró en el uso de la administración de la energía, ya que estábamos teniendo algunos problemas con monitores "durmiendo (salón D25)", pero ya estoy divagando bastante.....

UPX (Ultimate Packer for eXecutables o empacador esencial de ejecutables) es un programa de compresión. Lo que este programa realmente hace, es comprimir archivos binarios ejecutables autocontenidos, sin hacer más lenta la ejecución o el desempeño en memoria. Una aplicación típica de este tipo de programa es para usuarios de laptops, donde el espacio en disco duro es de gran preocupación. Ya que yo uso mi laptop para muchas cosas y solo tengo un disco duro de 3.2 GB, me di cuenta que al comprimir los archivos almacenados en "/usr/bin" el espacio del directorio se ha reducido a la mitad!

Ya que solo comprimirá archivos binarios, no es bueno tratar de comprimir los archivos almacenados en "/etc" por ejemplo. Podemos decir que es adecuado comprimir los siguientes directorios:

/usr/bin
/usr/X11R6/bin
/usr/local/bin

Algo que quiero mencionar, es que yo NUNCA usaría "upx" para comprimir los archivos almacenados tanto en "/bin" como en "/usr/sbin" Cuando reinicié mi computadora, me di cuenta que Init no se ejecutó. Después descubrí que la compresión de estos archivos estaba causando problemas a los programas principales de Init, por alguna razón........

Así que, para usar el programa, descarguen el paquete de http://wildsau.idv.uni-linz.ac.at/mfx/upx.html. Creo que tienen la opción de descargar el código fuente, o un ejecutable precompilado.

Yo simplemente descargué el paquete precompilado, lo desempaqueté copié el programa principal de upx a "/usr/bin". Entonces ya estamos listos para empezar a comprimir archivos.

Para comprimir un archivo, deben teclear lo siguiente:

upx /ruta/al/programa/nombreprograma

y eso comprimirá el programa especificado. También pueden comprimir todos los archivos en le directorio, tecleando:

upx /ruta/a/programas/*

y UPX felizmente comprimirá todos los archivos, e instantáneamente descartará aquellos que no estén en formato Linux/386

Aquí está una imagen de UPX en acción.

Para descomprimir los archivos, tienen que usar la opción "-d", de esta forma:

upx -d /ruta/a/programas/*

Algunas de las opciones de la línea de comando, son:

Uso: upx [-123456789dlthVL] [-qvfk] [-o file] file..

Comandos:
  -1     compresión rápida                 -9    mejor compresión
  --best la mejor compresión (puede ser muy lenta para archivos grandes)
  -d     descomprimir                      -l    listar el archivo comprimido
  -t     probar el archivo comprimido      -V    desplegar el número de versión
  -h     esta ayuda                        -L    desplegar la licencia del software

Opciones:
  -q     modo silencioso                   -v    verbose
  -oFILE escribir la salida a `FILE'
  -f     forzar la compresión de archivos sospechosos
  --no-color, --mono, --color, --no-progress   cambiar el aspecto

Opciones de respaldo:
  -k, --backup        mantener archivos de respaldo
  --no-backup         no hacer archivos de respaldo [default]

Opciones de overlay:
  --overlay=copy      copiar datos adicionales adjuntos al archivo [default]
  --overlay=strip     quitar datos adicionales adjuntos al archivo [peligroso]
  --overlay=skip      no comprimir archivos con overlay

En general, el desempeño de los archivos comprimidos ha sido adecuado, y no he encontrado ninguna pérdida de funcionalidad. El único programa que en una ocasión tomó mucho tiempo para cargarse fue netscape aunque eso no me molestó mucho (netscape utiliza mucha memoria, así estoy acostumbrado a que tarde mucho en iniciar).


Revisión de programa: bb

En la edición 67 de la Gaceta de Linux, Mike Orr presentó una revisión de cowsay/cowthink, una vaca parlante configurable que despliega mensajes en burbujas de diálogo. todo está escrito en Perl (mi segundo lenguaje favorito para scripts, después de bash) y se despliega en ASCII. Yo estaba tan impresionado con las vacas que decidí buscar más programa en ASCII. Saqué mis CDs de la distribución de SuSe y encontré el programa bb.......

bb es un demo ASCII completamente funcional, que usa ANSI C y es compatible con SVGA. bb usa el paquete aa_lib (ASCII art library), así que tendrán que instalarlo junto con el paquete principal. El demo genera varias imágenes simuladas, de caracteres aleatorios (pasando por diferentes niveles de gris), hasta un fractal de Mandelbrot simulado en ACII!!! (el cual inspiró la versión a color de Xaos).

Pueden obtener bb en ftp://ftp.bonn.linux.de/pub/misc/bb-1.2.tar.gz.

bb solía tener un sitio web, pero desafortunadamente ya no lo tiene. Sin embargo, el proyecto aa (ASCII Art library), que es en el que se basa bb si tiene una página en http://aa-project.sourceforge.net/. La página de aa tambiéen incluye a aview (un visor de arte ASCII), aatv (para ver programas de TV en la consola de texto), ttyquake (una versión en texto de Quake), Dumb (un clon de Doom), apron (un reproductor de mpeg1), y otros programas. ttyquake requiere tener instalado el Quake gráfico, ya que usa los archivos del Quake original. En un comentario escrito acerca de ttyquake, alguien dijo: "la gente se está muriendo de hambre en el mundo... y hay quien tiene tiempo para esto....."

bb es mejor cuando se ejecuta desde la consola, pero también puede hacerse desde una terminal X, como se muestra en la siguiente pantalla.

Las opciones de línea de comando válidas para bb son:

Uso: bb [aaoptions] [number]

Opciones:
  -loop          reproducir el demo en un ciclo infinito

Opciones AAlib:
  -driver        seleccioanr driver
                  drivers disponibles:linux curses X11 stdout stderr
  -kbddriver     seleccionar driver del teclado
                  drivers disponibles:curses X11 stdin
  -mousedriver   seleccionar driver del mouse
                  drivers disponibles:X11 gpm cursesdos 

Opciones de tamaño:
  -width         ancho
  -height        alto
  -minwidth      anchura mínima
  -minheight     altura mínima
  -maxwidth      anchura máxima
  -maxheight     altura máxima
  -recwidth      anchura recomendada
  -recheight     altura recomendada

Atributos:
  -dim           habilitar el uso del atributo dim (mitad del brillo)
  -bold          habilitar el uso del atributo bold (doble brillo)
  -reverse       habilitar el uso del atributo reversa
  -normal        habilitar el uso del atributo normal
  -boldfont      habilitar el uso del atributo de fuente bold
  -no<attr>      deshabilitar (i.e -nobold)

Opciones de renderización de fuentes:
  -extended      utilizar los 256 caracteres
  -eight         usar ascii de 8 bits
  -font <font>   seleccionar fuente(Esta opción solo tiene efecto en
  					 hardware donde aalib no es capaz de determinar la fuente actual
                  fuentes disponibles:vga8 vga9 mda14 vga14 X8x13 X8x16 
                  X8x13bold vgagl8 line

Opciones de renderización:
  -inverse       habilitar renderización inversa
  -noinverse     deshabilitar renderización inversa
  -bright <val>  establecer el brillo (0-255)
  -contrast <val> establecer contraste (0-255)
  -gamma %lt;val>   establecer el valor de corrección gamma (0-1)

Opciones de Dithering:
  -nodither      deshabilitar dithering
  -floyd_steinberg dithering floyd steinberg 
  -error_distribution dithering de error de distribution 
  -random <val>  poner valor de dithering aleatorio(0-inf)

Parámetros del monitor:
  -dimmul <val>  factor de multiplicación de color dim (5.3)
  -boldmul <val> factor de multiplicación de color dim (2.7)
  Los parámetros por default son para mi monitor (15" goldstar)
  con el contraste al máximo y el brillo para que haga negro al negro.
  Estos valores dependen de la calidad de su monitor.
  Los valores por default deben ser adecuados para la mayoría de los
  monitores de PC. Pero un monitor ideal necesita dimmul=1.71 boldmul=1.43. 
  Por ejemplo, el monitor usado por SGI es muy cercano a estos valores.
  También, los viejos monitores  vga de 14", necesitan valores más altos.

Definitivamente creo que si estás involucrado con el arte ASCII, deberías darle una oportunidad a este demo. Dura aproximadamente 5 minutos.


Hora de cerrar

Bueno, has llegado al final del artículo de este mes. Viendo lo que nos espera el práximo mes, voy a escribir un artículo acerca de como escribir páginas de manuales de manera eficiente (¿alguien recuerda el procesamiento groff?) y de cualquier otra cosa que se me ocurra. Sin embargo, sería agradable escuchar sugerencias de algunos de ustedes, ya que se me están acabando las ideas.....lentamente. Si hay algo que crean que sería bueno incluir en el MFS, dejenme una nota :-)

También, en caso de que a alguien le interese, todas las capturas de pantalla que se incluyeron en este artículo, se consiguieron utilizando el "GNU Image Manipulation Program" y corresponden al manejador de ventanas FVWM2, corriendo con el preprocesador M4 AnotherLevel.

Como último aviso, quisera decir que ya no estoy en la escuela, mi cuenta "n6tadam@users.purbeck.dorset.sch.uk" ya no es válida, y ahora tengo una nueva cuenta (vean abajo).

Hasta la próxima....feliz linuxeo!


Envíen sus comentarios

Cualquier comentario, sugerencia, idea, etc., puede ser enviada presionando sobre la siguiente dirección de correo electrónico:

<thomas_adam16@yahoo.com>


Thomas Adam

Mi nombre es Thomas Adam. Tengo 18 años y actualmente me encuentro estudiando para los exámenes de Nivel A (exámenes de entrada a la universidad). Vivo en una granja pequeña, en el condado de Dorset en Inglaterra. Soy un entusiasta masivo de Linux, y ayudo con asuntos relacionados cuando me encuentro en la escuela. He estado usando Linux por aproximadamente seis años. Cuando no estoy utilizando Linux, estoy tocando el piano, y disfruto mucho caminar y andar en bicicleta.


Copyright © 2001, Thomas Adam.
Copying license http://www.linuxgazette.com/copying.html
Publicado en la edición 70 de la Gaceta de Linux, Septiembre 2001