[imagen de un Brave GNU World]
Brave GNU World - Número 13
Copyright © 2000 Georg C. F. Greve <greve@gnu.org>
Permisos de copia al final.

Traducido por  Nicolás García-Pedrajas y Eloy Rafael Sanz-Tapia

[DE | FR | JA | EN]
Bienvenido al número 13º del Brave GNU World de Georg.Esta vez será un poco más técnico otra vez y espero que haya algo de interés para cada uno de vosotros.

Gcompte

Gcompte [5] de Fabien Marchewka es uno de esos pequeños proyectos licenciados bajo GNU GPL a los que siempre me gusta proporcionarle un foro.

En este caso es un programa para llevar un control de las finanzas personales que es bastante más simple y pequeño que otros proyectos similares como GNUcash. Especialmente las personas que sienten que los programas actuales para ello son demasiado grandes o demasiado lentos y básicamente sólo quiere administrar una única cuenta bancaria encontrará Gcompte interesante. Los formatos de ficheros elegidos también hacen a Gcompte atractivo dado que usa XML estándar como su formato interno de fichero y también puede exportar a HTML y Latex.

Dado que Gcompte es todavía un proyecto bastante joven - actualmente está en la versión 0.3.8 - un montón de características están todavía en la fase de planificación. Estas incluyen la importación de ficheros "Quickes", gráficos y operaciones automáticas. Gracias a GNU Autoconf/Automake la configuración e instalación es bastante fácil por ello los usuarios interesados no deberían quedarse atrás por la versión tan temprana y darle una oportunidad.

El siguiente tema también será probablemente de interés para la mayoría de las personas.

Scwm

El "Scheme Constraints Window Manager" (Scwm) [6] es una gestor de ventanas extensible que incluso es Turing completo. Originalmente escrito por Maciej Stachoviak la mayoría del trabajo es actualmente realizado por Greg J. Badros.

El lenguaje de configuración y extensión es Guile Scheme y hay un "solucionador de restricciones" avanzado que permite fijar un conjunto de reglas para el tamaño y posición de las ventanas. Adicionalmente es posible incluir dinámicamente C- y (con la ayuda de un adaptador especial) y módulos Fvwm-2; esto último es posible dado que Scwm estaba basado originalmente en el código fuente de Fvwm2. También se debe resaltar que Scwm es una bonita forma de jugar con el solucionador de restricciones.

Entre las características más o menos estándar de Scwm esta la capacidad para temas, un sistema integrado de interacción y documentación, conformidad GNOME, un interfaz gráfico de configuración y un módulo "proplist" que permite incluir las "proplist" de WindowMaker. La posibilidad de crear sucesos sintéticos de presionado de teclas es muy remarcable. Esto puede no estar claro para muchas personas así que debería decir algo sobre ello. El entorno X Window es básicamente orientado a sucesos o bastante "diferencial". En lugar de preguntar - y transmitir - todo durante todo el tiempo, el programa determina de antemano que sucesos le serán de interés. Uno de dichos sucesos puede por ejemplo que el ratón entre/abandone una ventana o que una tecla haya sido presionada. La posibilidad de crear sucesos sintéticos de presionado de teclas significa que por ejemplo puedes decirle a Netscape que un cierto enlace a sido pulsado a pesar de que el ratón no se ha tocado. Si ahora te digo que bajo x86 GNU/Linux el paquete IBM VivaVoice está también soportado estoy bastante seguro de que no tendré que alentar tus fantasías.

Hay más características remarcables y describirlas en detalle se me iría de las manos bastante pronto así que solo mencionaré la "vinculación de widgets guile-gtk" y la "gestión del posicionamiento de ventanas extensible" en el contexto de procedimientos de localización así como el módulo XTest para sucesos reales. Si esto es para ti sólo "tecnojerigonza", permanece tranquilo porque Scwm puede ser perfectamente utilizado sin ellos.

Pero por supuesto hay todavía problemas para ser resueltos. De acuerdo con Greg el mayor de ellos es la lenta inicialización que puede fácilmente llevar hasta 20 segundos. Afortunadamente un reinicio es sólo necesario muy raras veces porque los cambios en la configuración se realizan dinámicamente. Los planes futuros incluyen el rediseño del sistema de gestión de sucesos, puede que basado en el Guile Object Oriented Programming System (GOOPS). Adicionalmente los decorados de las ventanas necesitan más trabajo para obtener una todavía mejor y más robusta configurabilidad.

Casi todo sobre el Scwm está licenciado bajo GNU General Public License así que es Software Libre. El único prurito que resta es el "Cassowary constraint solver" cuya licencia lo permite libre para motivos de investigación.

Continuaré con un proyecto que se puede relacionar fácilmente con la "Iglesia de Emacs".

eev

Enfrentado por primera vez con eev [7] de Eduardo Ochs debo admitir que sentía que la descripción era muy vaga y que no podía realmente ver para que era útil. El manifiesto eev [8] ayuda con seguridad pero solo conseguí verlo después de jugar un rato con él. Espero poder hacer esta fase experimental un poco más fácil para ti.

Eev es una librería Emacs-LISP que puede ser incluida en Emacs de la forma estándar. Después de la instalación puedes usarla para interpretar los denominados "e-scripts". Estos son ficheros ASCII puros los cuales - como los scripts normales del shell - contienen una secuencia de órdenes. Sólo se convierten en interesante una vez que no piensas en los scripts sólo como en una forma de resolver un problema. Su propósito es más bien enseñar a otro usuario como ciertos problemas se pueden resolver bajo Unix. Para hacer esto un e-script contiene muy frecuentemente varias soluciones a un problema o soluciones a problemas diferente (preferiblemente relacionados), así casi nunca es útil interpretarlo como un todo.

Usarlo es bastante fácil. Se carga el e-script en Emacs y el usuario marca la parte que es de interés para él. Después esa parte se interpreta mediante la orden "eev" que crea un shellscript real que contiene las órdenes de la región marcada. El shellscript puede ser entonces ejecutado en el modo shell de Emacs; su salida puede ser monitorizada pro Emacs. Así una e-script es una colección de shellscripts que pueden ser ejecutados pro el usuario parcialmente o incluso línea a línea.

Lo mejor de todo esto es la idea de usar las capacidades LISP de Emacs para documentar los e-scripts. En lugar de cortar y pegar secciones enteras del manual, info o páginas web en el script, la documentación consiste en expresiones LISP que, por ejemplo, abren una página del manual o saltan a un punto determinado en un fichero info. Estas expresiones pueden ser interpretadas con "C-x C-e" que hace que Emacs visite la información especificada. Esto es una especie de hiperenlace en LISP. Incluso las referencias a código fuente se pueden implementar fácilmente de esta manera. Con la ayuda de los e-script puedes ver no sólo la solución a un problema, también el camino a dicha solución capturado en una forma eficiente y simple.

En realidad, esta no es realmente una idea complicada. También permite crea un archivo de soluciones a ciertos problemas estándar en la red que podrían hacer el aprendizaje de Unix más fácil para muchos usuarios. Para conseguirlo se ha planeado hacer eev una parte estándar de GNU Emacs y resolver como eev podría ser portado a otros editores como "vi". La base datos de e-scripts está ya en proceso de creación y los planes de Eduardo son crear scripts para la instalación, uso y resolución de problemas de Debian GNU/HURD así como para equipar otros paquetes Debian con e-scripts.

El siguiente proyecto me ha sido traído por un lector. Me envió un mensaje diciéndome básicamente que este proyecto parecía realmente interesante pero que él no lo entendía del todo y que yo podría echarle un vistazo y escribir acerca de él.

Pliant

Pliant [9], de Hubert Tonneau, es un proyecto muy ambicioso amparado bajo la Licencia Pública General de GNU versión 2 que lleva 15 años siendo diseñado. Pero, ¿qué es Pliant?

En primer lugar Pliant es un lenguaje de programación que trata de eliminar la barrera existente entre los lenguajes de bajo nivel como C y los de alto nivel como Java o LISP. Para conseguir esto, Pliant trabaja a dos niveles. En el nivel de "expresión" se parece a LISP en varios aspectos y tiene una semántica de evaluación ("eval") bastante potente. El segundo nivel es el de "instrucción" y es prácticamente un subconjunto de C. El concepto de Pliant dice que la compilación no es sino el paso de un programa del nivel de expresión al nivel de instrucción. Este paso lo realiza un compilador dinámico junto con unas "metafunciones" opcionales, proporcionadas por el programa o por bibliotecas. Debido al bajo nivel del nivel de instrucción los programas escritos en Pliant son teóricamente igual de rápidos que los escritos en C.

Pliant también elimina la necesidad de usar crípticos ficheros de configuración, ya que estos se implementan como código Pliant interpretado dinámicamente. Esto significa que los ficheros de configuración pueden usar toda la gama de condicionales, inclusiones, etcétera. Pero la mayor ventaja es la de usar la misma sintaxis para todos los ficheros de configuración: la de Pliant.

Para usar esta característica, por supuesto, la aplicación tiene que estar escrita en Pliant. Pliant tiene un conjunto de aplicaciones estándar que ofrecen la funcionalidad tradicional. Existen servidores HTTP, FTP, SMTP y POP3. Además, es interesante saber que Pliant tiene un sistema de ficheros que incluye TCP, HTTP, FTP y SMTP en el que las URL se tratan igual que ficheros.

Todo esto permite a Pliant difuminar la frontera entre programación y configuración. Esta fue una de las motivaciones de su desarrollo. El paso que hay que dar para entrar en la programación es menor, ya que se usa el mismo lenguaje para la configuración y para la programación.

Finalmente, Pliant es también un "sistema operativo de alto nivel". Se ejecuta directamente sobre el núcleo de Linux, en un sistema Posix estándar o en Windows. Pliant se convierte en el único proceso del espacio de usuario que puede trabajar sin parches o código anticuado. Ya que sólo se necesita un proceso para ejecutar un servidor HTTP, el sistema es potencialmente muy estable.

Todos estos son los aspectos de Pliant. En cuanto al estado actual...

El principal problema es que el generador de código estándar no tiene optimizaciones actualizadas y sólo genera código para el procesador i386 - aunque el generador de código, al ser Posix, permite ejecutar Pliant en diferentes sistemas, incluido GNU/HURD. En cuanto a los planes de futuro, Hubert está buscando a alguien que quisiera trabajar en el generador de código para procesadores Intel o hacer un porte a sistemas Alpha. Él mismo está trabajando actualmente en un sistema de base de datos y planea escribir un juego de herramientas gráficas que sería la base para un procesador de textos escrito en Pliant. En algún momento entre en entorno gráfico y el procesador se desarrollaría una hoja de cálculo, algo que sería fácil de implementar en Pliant.

Aunque este proyecto es de interés principalmente para los técnicos, espero haber explicado bien esta interesante idea.

Me gustaría terminar con un proyecto que no está relacionado directamente con la informática, sino que va en la dirección de la "ciencia libre".

Base de datos botánica mundial

Jean-Marc Vanel me envió la dirección de su página, en la que se encuentra la "Base de Datos Botánica Mundial" (Worldwide Botanical Database). [10]. Actualmente el conocimiento sobre la flora de nuestro planeta está distribuido entre una gran cantidad de bibliotecas y herbarios, lo que obliga a los científicos a viajar para obtener esa información, lo que ralentiza e incluso detiene el progreso científico.

Para proteger las especies de nuestro planeta de forma efectiva es crucial conocerlas primero. El objetivo de esa página es crear una base de datos botánica que contenga descripciones, imágenes y distribuciones geográficas de todas las plantas del planeta. Jean-Marc mencionó otro proyecto con un objetivo similar pero que parece haberse detenido debido a la falta de recursos, ya que el dinero hoy en día se invierte principalmente en biotecnología.

Desafortunadamente los biólogos carecen generalmente del conocimiento necesario para realizar un proyecto como éste, en tanto que muchos informáticos no tienen los conocimientos de biología requeridos. Por eso Jean-Marc pide a todos los informáticos y biólogos interesados que se pongan en contacto con él para avanzar en el proyecto.

...hasta la próxima

Y llegamos de nuevo a las palabras finales. En primer lugar hay noticias bastante tristes desde Noruega. El gobierno noruego ha presentado cargos contra Jon Johansen por su trabajo para dar a la gente la oportunidad de reproducir DVDs comprados legalmente. Tras observar el desarrollo positivo mostrado por países como Francia, es realmente cuestionable tomar medidas contra el desarrollo de software libre. Espero ansiosamente que todo esto se habrá resuelto antes de que la próxima columna vea la luz. En caso contrario, os ruego que participéis en las acciones de protesta que se convoquen. Si es posible, trataré de crear un enlace o de poner información en mi página personal de GNU o en esta página.

Pero también hay buenas noticias. Doy mis gracias de corazón a Denis Bodor, de la revista Linux Magazine de Francia, quien me dio un montón de revistas en la Linux Expo/Linux World en París. Ahora por fin tengo la prueba física de que la columna está siendo impresa en Francia.

Esto es todo por ahora. Por favor, no dudéis en contactar conmigo [1] para cualquier pregunta, idea, comentario o proyecto.

Info
[1] Envía ideas, comentarios y preguntas a Brave GNU World <column@gnu.org>
[2] Página del Proyecto GNU http://www.gnu.org/
[3] Página del Brave GNU World de Georg http://www.gnu.org/brave-gnu-world/
[4] Iniciativa "We run GNU" http://www.gnu.org/brave-gnu-world/rungnu/rungnu.en.html
[5] Página de Gcompte http://www.linux-france.org/prj/gcompte/index_en.html
[6] Página de SCWM http://scwm.mit.edu/
[7] Página de eev http://angg.twu.net/emacs.html
[8] Manifiesto eev http://angg.twu.net/eev-manifesto.html
[9] Foro Pliant http://pliant.cams.ehess.fr/
[10] Página de la base de datos botánica mundial http://wwbota.free.fr/

[ número anterior | Página de Brave GNU World ]

Volver a Página de GNU.

Por favor envía las preguntas y peticiones de información acerca de FSF y GNU gnu@gnu.org. También hay otras formas de contactar con la FSF.

Por favor envía los comentarios sobre la columna Brave GNU World a column@gnu.org, envía los comentarios sobre estas páginas web a webmasters@www.gnu.org, envía otras preguntas a gnu@gnu.org.

Copyright (C) 1999 Georg C. F. Greve.

Se concede Permiso para realizar y distribuir copias literales de esta transcripción siempre  que aparezcan el copyright y esta nota de permiso.

20 Mar 2000 tower