La Gaceta de Linux ...¡ haciendo a Linux un poco más divertido !

Una Introducción a JSPWiki

Por Neil Youngman

Traducción al español por Jorge Eduardo Ibarra Esquer
el día 28 de Enero de 2005, para La Gaceta de Linux

El bueno, el malo, y ¿el wiki?

Wikis

Para aquellos lectores que aún no se han adentrado en los Wikis, en este artículo explicaré lo que es un Wiki y cómo es que se utilizan. Explicaré por qué elegí JSPWiki entre los cientos de Wikis que hay, y también la forma en que lo configuré.

Wiki es una contracción de WikiWikiWeb. Los Wikis son sitios Web con autoría colaborativa, que son creados y editados por sus usuarios. Los Wikis proporcionan una manera rápida y sencilla de generar un conjunto de páginas Web enlazadas. El énfasis se da en la colaboración y simplicidad. Cualquiera puede contribuír y no toma mucho tiempo para aprender a utilizarlo.

De acuerdo a "Wiki en un minuto" WikiWiki es Hawaiano y significa "rápido".

Los Wikis pueden usarse como un foro de mensajes para compartir información y realizar preguntas, pero no hay un concepto de foros o hilos, únicamente un conjunto de páginas interenlazadas.

La autoría colaborativa significa que ninguno de los autores es dueño de las páginas. Si encuentras un error en una de ellas, lo puedes corregir y, de la misma manera, otras personas pueden corregir tus páginas.

Hay todo tipo de usos para los Wikis. Pueden utilizarse siempre que se desee compartir información entre un grupo grande de personas. He visto que las utilizan para documentación informal dentro de un proyecto de desarrollo, hacer y responder preguntas e incluso en una enciclopedia escrita de manera colaborativa. Yo también en ocasiones mantengo un grupo de notas en mi Wiki, lo que me permite acceder a ellas fácilmente desde distintos lugares y compartirlas con cualquiera que necesite la misma información.

Por lo general, en cada página se encuentra una opción de editar, lo que permite a un usuario alterar la página, y una convención sencilla para crear enlaces hacia otras páginas. Para crear una página nueva, simplemente se crea un enlace, mismo que permite editar la página.

No es necesario que aprendas HTML para crear y editar páginas Wiki. En lugar de eso, existe un conjunto de convenciones sencillas, p.e., en JSPWiki, puedes crear un enlace al encerrar una frase entre paréntesis cuadrados.

    [Enlace nuevo]

Desafortunadamente, estas convenciones no se han estandarizado, así que si utilizas más de un Wiki, tendrás que aprender más de un conjunto de convenciones de formato.

Para probar un Wiki puedes ir al JSPWiki Sandbox o recisar Wikipedia, una enciclopedia escrita de manera colaborativa.

¿Por qué JSPWiki?

Cuando quise configurar un Wiki para mi, revisé y encontré que hay cientos de WikiClones para elegir. Muchos de ellos aún son versiones en desarrollo y yo quería algo que fuera estable, confiable, fácil de instalar, configurar y utilizar. JSPWiki proporciona todo lo anterior además de autentificación, control de versiones, documentos adjuntos y 'plugins'.

Facilidad de uso

Los Wikis están diseñados para ser fáciles de usar, así que la usabilidad no debe ser un problema con ningún Wiki. Las diferencias principales en lo que a facilidad de uso se refiere, vienen de elegir un Wiki maduro y estable con reglas de formato sencillas.

El lenguaje de marcado de JSPWiki resulta relativamente claro y sencillo para mi. Los enlaces se crean con simplemente poner paréntesis cuadrados alrededor del nombre del enlace. Los encabezados se crean al poner un signo de exclamación al inicio de la línea y las tablas al dividir el texto con el caracter de tubería '|'. Así, por ejemplo:

!!! Este es un ejemplo

que enlaza a [La Gaceta de Linux|http://linuxgazette.net]

y muestra

! una tabla

|plato|cuchillo|tenedor
|mantel|vaso|taza

se ve de la siguiente forma

Este es un ejemplo

que enlaza a La Gaceta de Linux

y muestra

una tabla

plato cuchillo tenedor
mantel vaso taza

JSPWiki también puede configurarse para permitir que se introduzca HTML, pero ésto no se recomienda ya que es una práctica insegura.

Instalación and Configuración

La facilidad de instalación fue un gran punto a favor de JSPWiki. Si tienes un contenedor de servlets de Java adecuado ya instalado, la instalación sobre Red Hat resulta muy sencilla. Jakarta Tomcat ya estaba instalado en la computadora que quería usar. La instalación consistió en crear un directorio llamado mywiki en el directorio webapps de Tomcat, desempaquetar JSPWiki.war y JSPWiki-samplepages.zip en ese directorio, editar el archivo de configuración y reiniciar Tomcat.

    mkdir /usr/local/jakarta-tomcat-5.0.19/webapps/mywiki
    pushd /usr/local/jakarta-tomcat-5.0.19/webapps/mywiki
    /usr/local/j2sdk1.4.2_04/bin/jar xvf JSPWiki.war
    unzip ~neily/JSPWiki/JSPWiki-samplepages.zip
    emacs -nw /usr/local/jakarta-tomcat-5.0.19/webapps/mywiki/WEB-INF/jspwiki.properties
    mkdir /usr/local/jakarta-tomcat-5.0.19/webapps/mywiki/attached
    /usr/local/jakarta-tomcat-5.0.19/bin/catalina.sh start

El archivo de configuración es webapps/mywiki/WEB-INF/jspwiki.properties; está muy bien documentado, de manera que la configuración resulta sencilla.

La configuración consistió en modificar 3 o 4 valores en jspwiki.properties. Por lo general, los comentarios en este archivo son muy claros y la mayotía de los valores preestablecidos pueden dejarse sin cambios. Las propiedades que debes modificar son jspwiki.applicationName, jspwiki.pageProvider, jspwiki.fileSystemProvider.pageDir, jspwiki.attachmentProvider, jspwiki.basicAttachmentProvider.storageDir,

La instalación en otras versiones de Linux podría no resultar san sencilla. Posteriormente instalé JSPWiki en una máquina Debian, y encontré que, aunque la instalación con apt-get fue muy sencilla, no funcionará fuera del directorio por defecto sin tener que configurar más aspectos.

Para hacerlo funcionar en Debian en un directorio llamado mywiki, tuve que crear el archivi /var/lib/tomcat4/webapps/mywiki.xml, el cual fue una copia editada de /var/lib/tomcat4/webapps/jspwiki.xml.

Autentificación

JSPWiki proporciona un mecanismo de autentificación sencillo. Este puede ser complementado por métodos de autentificación disponibles a través del contenedor de servlets en el cual se ejecuta.

Como estaba instalando un Wiki en una red privada pequeña, no se visualizaba a la autentificación como un problema, pero elegir un Wiki con soporte para autentificación permite que posteriormente ésta se agregue en caso de que haya abuso al utilizarlo o se desee configurar un Wiki externo.

La configuración de la autentificación básica en JSPWiki debe ser sencilla. Agrega las líneas

  jspwiki.authenticator = FileAuthenticator
  jspwiki.fileAuthenticator.fileName = /path/to/passwords.txt

y crea el archivo passwords.txt, que se verá similar a

  # The format is simply username = password
  # No encryption is used currently.
  # Comments are allowed; prepend with hash.
  user1 = pass1
  user2 = pass2

Si necesitas autorización más sofisticada, revisa el "Authorization And Authentication HOWTO" y el "Auth Plugin". Si aún no encuentras algo que cumpla con tus requerimientos, podrías considerar escribir tu propio Autentificador o utilizar la autentificación proporcionada por tu contenedor de servlets, p.e., Tomcat.

Control de versiones

El control de versiones es una característica útil, ya que almacena cada versión de una página conforme va siendo actualizada. Esto te permite restablecer páginas que se hayan perdido o dañado. JSPWiki soporta control de versiones basado en RCS y también implementa su propio mecanismo como una alternativa para plataformas sin RCS.

Esta característica no parece estar muy bien documentada, pero es realmente fácil de utilizar. Cada vez que salvas un cambio a una página, se almacena una versión nueva de la misma. Hay un enlace de "más información" al final de cada página, que proporciona un enlace hacia sus versiones anteriores. Puedes seleccionar cualquier versión previa, la cual es desplegada, junto con un mensaje explicando que esa no es la versión actual de la página y un enlace de "restablece esta página".

El control de versiones es particularmente importante en un Wiki con acceso público. Estos pueden ser desfigurados con publicidad y cosas peores. El control de versiones te permite regresar fácilmente a una página sin daños.

Para utilizar el control de versiones basado en RCS, establece jspwiki.pageProvider = RCSFileProvider y jspwiki.fileSystemProvider.pageDir = /path/to/dir/for/RCS/files

Archivos adjuntos

JSPWiki te permite adjuntar archivos a una página. Este puede ser un buen mecanismo para compartir documentos. Si haces referencia a un documento grande, o aun documento en un formate que no sea texto, al adjuntarlo a la página te aseguras que está disponible para tus lectores.

Para utilizar archivos adjuntos establece jspwiki.attachmentProvider = BasicAttachmentProvider y jspwiki.basicAttachmentProvider.storageDir = /path/to/dir/for/attached/files.

Plugins

JSPWiki puede extenderse con el uso de plugins. Los plugins de JSPWiki están escritos en Java, al igual que JSPWiki. Si no quieres escribir tus propios plugins, revisa los plugins con los que se ha contribuido.

Utilizando JSPWiki

Utilizar JSPWiki es bastante sencillo. Una vez que lo hayas instalado y configurado con las características que deseas utilizar, simplemente ve a la página principal, configura algunos enlaces a páginas nuevas y edítalas. Voila, tienes un Wiki. Inicia con una página que describa para qué es el Wiki y lo que quieres lograr con él, después echa a volar tu imagincación.

 


[BIO]

Neil es un programador, especializado en C++ en Unix y Linux. Tiene estudios em Ciencias de la Computación y Computación de Siguiente Generación.

Neil ha trabajado en una amplia gama de sistemas, desde el sistema de control para la red de suministro nacional de gas británica, hasta servidores de video para el servicio de video por demanda de Home Choice. Programó computadoras por primera vez en 1980, con su clase escolar de Estudios Generales, ya que se les dio acceso a un aminframe en el Instituto Nacional de Oceanografía, programando tarjetas perforadas en lenguaje Fortran.

Posteriormente obtuve el grado en Ciencias de la Computación en el Queen Mary College, en Londres, después trabajó para Logica por 3 años antes de tomar una maestría en ciencias en Computación de Siguiente Generación en la Universidad Exeter.

Los 5 años siguientes vieron a Neil investigar algoritmos de simulación paralela en el Royal Signals and Radar Establishment, inicialmente en transputers y subsecuentemente en sistemas paralelos basados en SPARC. Desde que dejó al RSRE, Neil ha trabajado principalmente por su cuenta y con datos financieros, servidores de video y proxies para búsqueda de virus.

La primera vez que Neil utilizó Unix fue en la universidad en 1982 y comenzó a trabajar con Linux en 1996.

En Mayo de 2004, Neil está trabajando para Wirefast, una compañía de mensajería global.

Fuera de la computación, Neil disfruta de los deportes de motor, principalmente Formula 1, el Campeonato Mundial de Rally y el Campeonato Británico de Autos de Viaje. El no corre personalmente. Si lo han visto conducir, entenderán por qué.

Copyright © 2004, Neil Youngman. Publicado bajo la Open Publication license

Publicado en la edición 108 de la Gaceta de Linux, Noviembre 2004