[Logo Brave GNU World]
Brave GNU World - Numéro 13
Copyright © 2000 Georg C. F. Greve <greve@gnu.org>
Permission ci-dessous.

[DE | FR | EN | JA | ES]
Bienvenue au numéro 13 de "Brave GNU World". Nous serons cette fois une fois de plus un peu plus technique, mais j'espère qu'il y en aura pour tout le monde.

Gcompte

Gcompte [5] de Fabien Marchewka est l'un de ces petits projets GNU GPL dont j'ai toujours révé de parler.

Il s'agit ici d'un programme de finances personelles qui est beaucoup plus petit et plus simple que des projets similaires comme GNUcash. Si vous trouvez les programmes actuels trop gros, ou trop lents, ou que vous ne désirez gérer qu'un compte, alors Gcompte est pour vous. le format de fichier choisi est également attractif, car c'est du XML en interne, mais il exporte aussi en html et en LaTeX.

Comme Gcompte est encore jeune - on en est à la version 0.3.8 - de nombreuses caractéristiques en sont encore au stade de plan. Cela inclus l'import de fichier Quicken, les graphiques et l'automatisation de certaines fonctions. Grâce à GNU Autoconf/Automake la configuration et l'installation est assez simple, alors ne vous laissez pas intimider par sa jeunesse et essayez-le.

Le prochain sujet devrait également intéresser pas mal de monde.

Scwm

Le "Scheme Constraints Window Manager" (Scwm) [6] est un gestionnaire de fenêtres qui répond même aux exigences Turing. Ecrit à l'origine par Maciej Stachoviak, la plupart du travail est aujourd'hui faite par Greg J. Badros.

Son language de configuration et d'extension est le Guile Scheme avec un moteur de resolution de contraintes avancé qui permet la mise en place d'un jeu de règles pour les tailles et les positions des fenêtres. On peut en plus inclure du C ou des modules Fvwm2 dynamiquement (avec l'aide d'un adaptateur). Ceci est possible car à l'origine Scwm était basé sur le code source de Fvwm2. Scwm est une manière amusante de jouer avec un moteur de résolution de contraintes.

Parmi les capacités plus ou moins standard de Scwm, on trouve les thèmes, un système interactif intégré de documentation, prêt pour Gnome, une interface utilisateur graphique pour la configuration, un module "proplist" qui permet de reprendre les "proplists" de WindowMaker. On peut aussi, et c'est assez remarquable, créer des évènements synthétiques liés à une touche. Ce n'est peut-être pas très clair, donc je m'explique: l'environnement X window est "orienté évènement", ou plutôt, "différentiel". Au lieu de demander et de transmettre tout en même temps, le programme détermine à l'avance quels sont les évènements intéressants. Cela peut être la souris qui rentre dans une zone d'écran, ou une touche qui est pressée. La possibilité de créer des évènements synthétiques lié à une touche signifie par exemple que l'on peut dire à Netscape qu'on a cliqué sur un lien, alors que la souris ne l'a jamais effleuré. Si j'ajoute que IBM ViaVoice est disponible sous x86 GNU/Linux, je suis sûr de n'avoir plus grand chose à dire pour vous faire rêver.

Il y a d'autres caractéristiques remarquables, mais je ne peux les décrire toutes. Je mentionnerai simplement les "liaisons guile-gtk widget" et les "extensible window manager hook" pour les procédures de placement ainsi qu'un module XTest pour les évènements réels. Si tout cela ne vous dit rien, ne vous en faites pas, Scwm marche très bien sans tout cela.

Mais il reste évidemment des problèmes à résoudre. Selon Greg, le majeur est le démarrage très lent qui peut prendre facilement jusque 20 secondes. Heureusement un re-démarrage est rarement nécessaire car les changements dans la configuration sont appliqués dynamiquement. A l'avenir, on prévoit de ré-écrire le mécanisme de gestion des évènements, peut-être en se basant sur le Guile Object Oriented Programming System (GOOPS). On devrait qussi refaire la décoration des fenêtres pour avoir une configuration plus robuste et meilleure.

Tout dans Scwm est sous licence GNU General Public License, donc c'est un logiciel libre. Tout, sauf le "Cassowary constraint solver" (moteur de résolution de contraintes Cassoway) dont la licence précise qu'il est libre pour les utilisation à des fins de recherche.

Je continue avec un projet lié à l'"Eglise d'Emacs".

eev

Confronté à eev [7] d'Eduardo Ochs pour la première fois, je dois avouer que la description était assez vague et que je ne voyais pas très bien à quoi cela pouvait servir. Le manifeste eev [8] a aidé un peu, mais je n'ai compris qu'après avoir joué avec. J'espère rendre cette phase d'expérimentation plus facile pour vous.

Eev est une bibliothèque Emacs-LISP qui peut être inclue dans Emacs de manière standard. Après l'installation, vous pouvez l'utiliser pour interpréter des "e-scripts". Ce sont des fichiers ASCII purs qui, comme des scripts shells, contiennent des séquences de commandes. Cela ne devient intéressant que si vous ne considérez pas ces scripts comme simplement une manière de résoudre un problème. Leur but est plutôt de montrer à l'utilisateur comment certains problèmes peuvent être résolus sous Unix. Pour ce faire, un e-script contient souvent plusieurs solutions à un même problème, ou des solutions à différents problèmes si possible semblables, donc il ne sert à rien de l'interpréter en entier.

L'utilisation est simple. Le e-script est chargé dans Emacs et l'utilisateur marque les parties qui l'intéressent. A près quoi, cette partie est interprétée par la commande "eev" qui crée le vrai shell script qui contient les commandes de la portion définie. Le script shell peut être lancé par le mode shell d'Emacs et la sortie redirigée vers Emacs. Donc un e-script est une collection de plusieurs scripts qui peuvent être utilisés partiellement ou même ligne par ligne.

La meilleure partie, c'est l'idée d'utiliser les capacités LISP d'Emacs pour documenter les e-scripts. Au leiu de couper-coller depuis le manuel dans le script, la documentation est une expression LISP qui ouvre le manuel a une certaine page ou suate à un certain endroit dans le fichier. Les expressions sont interprétées par "C-x C-e" qui envoie Emacs visiter les lieux spécifiés. C'est donc une sorte d'hyper-lien en LISP. Même des références au code source peuvent facilement être créées de cette manière. A l'aide de ces e-scripts non seulement on peut voir la solution à un problème, mais le chemin qui y mène est fait de manière efficace.

Donc l'idée n'est pas compliquée. Cela permet aussi de créer une archive de solution à des problèmes donnés qui pourrait rendre l'apprentissage de Unix beaucoup plus simple pour les débutants. Pour y arriver, le but est d'intégrer eev dans Emacs et de voir comment il pourrait être porté vers d'autres éditeurs tels que vi. La base d'e-script est en train de se faire et Eduardo a l'intention de créer des scripts d'installation, utilisation et réparation de la Debian GNU/HURD et d'équiper aussi d'autres paquets Debian de e-scripts.

Le projet suivant vient d'un lecteur. Il m'a envoyé un courriel me disant que le projet avait l'air intéressant mais qu'il ne voyait pas comment exactement ce que c'était et que je devrais m'en occuper et en parler.

Pliant

Pliant [9] d' Hubert Tonneau est un projet très ambitieux sous la GNU General Public License Version 2 et qui est en chantier depuis plus de 15 ans maintenant. Mais c'est quoi, ce Pliant?

Tout d'abord, Pliant est un language de programmation qui cherche à se débarasser de la barrière entre les language de bas niveau comme le C et les languages de haut niveau comme le Java ou le LISP. Pour y arriver, Pliant travaille à deux niveaux. Tout d'abord, le niveau "Expression" dans lequel il ressemble à LISP par de nombreux aspects et qui contient une fonction "eval" très puissante. Le deuxième niveau, "Instruction", est plus ou moins un subset du C. Selon le concept Pliant, la compilation ne fait rien d'autre que de faire passer un programme du niveau expression au niveau intruction. Cela se fait via un compilateur dynamique avec des meta-fonctions optionnelles fournies par le programme ou des bibliothèques. Etant donné le niveau bas du niveau "Instruction", un programme en Pliant est en théorie aussi rapide qu'un programme en C.

Pliant en fini aussi avec les fichiers de configuration cryptiques car ils sont aussi interprétés dynamiquement en tant que code Pliant. Cela signifie que les fichiers de configuration bénéficient du large spectre d'inclusions, branchements conditionnels, etc. Mais le plus grand avantage est d'avoir une seule syntaxe pour toutes les configurations: Pliant.

Pour ce faire, les applications doivent être écrite en Pliant, ce qui est la raison pour laquelle Pliant offre aussi une série d'application standard avec leurs fonctionnalités habituelles. Des serveurs HTTP, FTP, SMTP et POP3 existent déjà. Dans ce contexte, il faut d'ailleurs noter que Pliant a un système de fichier qui inclut TCP, HTTP, FTP et SMTP, ce qui signifie que les URLs sont traités comme des fichiers normaux.

Tout ceci fait qu'avec Pliant, la forntière entre la programmation et la configuration se fait de plus en plus ténue, ce qui est une des motivations de son développement. L'obstacle à passer pour programmer est moins difficile puisque le même langage utilisé pour la configuration est aussi utilisé pour la programmation.

Finallement, Pliant est également un système d'exploitation de haut niveau. Il tourne directement sur le noyau Linux ou sur un système standart Posix ou Windows. Pliant est donc le seul processus de l'espace utilisateur qui peut vraiment travailler sans "glue code" et héritage passif. Comme un seul processus est nécessaire pour faire tourner un serveur HTTP, le système est potentiellement plus stable.

Voilà les aspects de Pliant, ce qui m'amène au statut actuel.

Le problème actuel principal est que le générateur de code standard n'est pas optimisé et ne crée que du code pour le processeur i386, bien que le générateur de code Posix permette de faire tourner Pliant sur divers systèmes dont le GNU/HURD. Cela m'amène immédiatement aux plans d'avenir: Tout d'abord Hubert cherche quelqu'un qui aimerait travailler sur le générateur de code pour les processeurs Intel ou pour porter vers le processeur Alpha. Il travaille actuellement,sur un système de base de donnée et envisage d'écrire une boîte à outil graphique qui deviendra la base du traitement de texte Pliant. Un tableur devrait voir le jour entre la création de la boîte à outils et du traitement de texte, car cela est très facile à écrire en Pliant.

Même si ce projet s'adresse plutôt aux "pros", j'espère avoir fait passer un peu de cette idée intéressante.

Je voudrais terminer par un projet qui n'est pas directement lié à l'informatique car il va plutôt dans la direction des "sciences libres".

Base Botanique Mondiale

Jean-Marc Vanel m'a envoyé l'adresse de sa page pour une "Base Botanique Mondiale "[10]. Pour le moment, la connaissance de la flore de notre planète se trouve dans de nombreuses bibliothèques et herbaria, ce qui force les scientifiques à voyager pour obtenir l'information. Cela ralenti souvent le processus scientifique, quand cela ne le stoppe pas complètement.

Pour protéger efficacement les espèces sur notre planète, il faut d'abord savoir qu'elles existent. Son but est donc de créer une base de donnée botanique avec les descriptions, photos et distributions géographique de toutes les plantes de la planète. Il a mentionné un autre projet semblable, mais qui semble abandonné vu le manque de ressources - l'argent va plutôt aux biotechnologies de nos jours.

Malheureusement, les biologistes manquent habituellement des ressources informatiques, alors que les informaticiens n'ont pas la connaissance botanique. C'est la raison pour laquelle Jean-Marc Vanel demande aux personnes intéressées dans ces sphères de le contacter afin de mener à bien le projet.

...à la prochaine

Et nous voici arrivé à la fin. Tout d'abord, de mauvaises nouvelles de Norvège. Pour avoir travaillé à donner aux gens la chance de faire tourner des DVD achetés légalement, Jon Johansen se voit accusé par le gouvernement Norvégien. Lorsque l'on considère les développements positifs en France par exemple, on peut vraiment se demander si c'est bien raisonnable de prendre des mesures contre le développement du logiciel libre. J'espère que toute l'affaire sera réglée avant la publication de cette chronique. Si ce n'est pas le cas, gardez l'oeil ouvert pour des actions de protestation et participez-y. Si possible, je mettrai un lien ou des informations sur la page Brave GNU world ou sur ma page personelle.

Mais il y a aussi de bonnes nouvelles. Un grand merci à Denis Bodor de Linux France Magazine qui m'a donné une pile de magazines à la Linux Expo/Linux World de Paris. J'ai maintenant la preuve physique que cette chronique est publiée en France.

Voilà. N'hésitez pas à me contacter [1] si vous avez des questions, idées, commentaires ou projets à présenter.

Info
[1] Envoyez vos idées, commentaires et questions à Brave GNU World <column@gnu.org>
[2] Page du projet GNU http://www.gnu.org/
[3] Page de "Brave GNU World" http://www.gnu.org/brave-gnu-world/
[4] Initiative "Gnu c'est nous"http://www.gnu. org/brave-gnu-world/rungnu/rungnu.en.html
[5] Page Gcompte http://www.linux-f rance.org/prj/gcompte/index_en.html
[6] Page SCWM http://scwm.mit.edu/
[7] Page eev http://angg.twu.net/emacs.html
[8] manifeste eevhttp://angg.twu.net/eev-manifesto .html
[9] forum Pliant http://pliant.cams.ehess.fr/
[10] Page Base Botanique Mondiale http://wwbota.free.fr/

[ Numéro précédent | Page Brave GNU World | Numéro suivant ]

Retour au Site GNU.

Envoyez vos questions sur GNU et FSF à gnu@gnu.org.
Il y a aussi d'autres manières de contacter la FSF.

Envoyez vos commentaires sur "Brave GNU World" à column@gnu.org,
et les commentaires sur cette page à webmasters@www.gnu.org,
les autres questions à gnu@gnu.org.

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

Permission vous est donnée de distribuer des copies exactes de cette page tant que cette note de permission et le copyright apparaissent clairement.

Dernière modification : $Date: 2002/02/13 17:52:13 $ $Author: r4f $