[DE |
EN |
FR |
JA |
ES |
KO |
PT]
Bienvenue pour un nouveau numéro du Brave GNU World. Après la présentation d'un "classique", ce numéro va vite devenir relativement technique, mais je crois que cela sera intéressant même pour les lecteurs peu techniciens.
Bernhard Rosenkraenzer est le nouveau mainteneur de GNU grep [5], c'est pourquoi j'aimerais saisir cette opportunité pour écrire quelques mots à propros de ce projet.
Sans doute la plupart des utilisateurs GNU/Linux connaissent déjà GNU grep et l'utilisent quotidiennement, mais il y en a peut-être qui ne sont pas encore familiarisés avec lui, donc je vais donner une courte introduction de ses fonctionnalités.
GNU grep recherche dans les fichiers ou dans l'entrée standard certaines occurences, typiquement des chaînes de caractères, et affiche les lignes correspondant à ou contenant cette occurence. Il est également possible de rechercher dans plusieurs fichiers afin de déterminer quels fichiers contiennent l'occurence. Les utilisations typiques vont de traiter du texte et trouver des passages jusqu'à limiter la sortie d'autres programmes à l'information utile.
Grep fait sans aucun doute partie des commandes standards de tout système Unix et GNU grep contient non seulement les fonctionnalités standards mais aussi des options telles que la recherche récursive dans les répertoires ou la sortie au format mot.
Parce qu'il est déjà utilisé depuis de nombreuses d'années sur une multitude de systèmes, son utilisation quotidienne ne souffre d'aucune restriction. Je ne suis pas sûr de l'âge exact de GNU grep, mais l'historique des modifications remonte jusqu'en 1993 et la notice de droits d'auteur de la FSF remonte à 1988, soit environ trois ans avant la création du noyau Linux. Ce programme est intéressant non pas malgré mais grâce à son âge, parce que cela montre combien le Logiciel Libre est vivant, même lorsqu'il est si vieux.
Pendant ces années, plus de 80 personnes ont participé à GNU grep et le développement continue toujours. Sur la liste des choses à faire il y a quelques changements mineurs pour la conformité complète à POSIX.2 et quelques nouvelles options. Parmi celles-ci, on trouve par exemple l'option "--max-count", un choix pour PCRE (Expressions Régulières Compatibles avec Perl) ou une option de sortie avec marqueurs de couleur.
Même un logiciel ancien, stable et largement diffusé a besoin d'aide. En particulier les utilisateurs désireux de tester les versions de développement pour la portabilité au-delà de GNU/Linux et FreeBSD et les chasseurs de bugs sont vraiment bienvenus. Comme le mainteneur actuel ne parle qu'anglais, allemand et français, il ne peut sincèrement pas déterminer si le support multi-octet fonctionnement vraiment.
Ainsi les utilisateurs dans les domaines "multibyte" doivent se sentir particulièrement encouragés à participer aux tests.
GNU UnRTF [7] est un ajout récent au Projet GNU par Zachary T. Smith. Il permet de convertir les documents au Rich Text Format (RTF) vers d'autres. RTF est souvent utilisé comme format de conversion par les utilisateurs de Windows, mais d'autres processeurs de texte l'utilisent également pour enregistrer le texte sans information de formattage.
Grâce à ce projet, il est maintenant possible de convertir ces documents en texte pur, HTML, LaTeX et PostScript. Donc ce projet devrait profiter à tous ceux qui utilisent les RTF eux-mêmes ou dépendent de personnes qui le font.
La licence de ce projet a toujours été la Licence Publique Générale de GNU, mais il est possible que quelques personnes soient déjà entrées en contact avec l'ancien nom du projet, "rtf2htm".
Le processus de développement s'intéresse actuellement à deux aspects: les routines de conversion de caractères et la sortie vers LaTeX. De plus il est prévu dans le futur de supporter d'autres formats de sortie. Sans tenir compte du développement en cours, le projet est sans aucun doute prêt à l'utilisation.
Le projet QTreeMap [7] d'Alexander Rawass implémente les "Arborescences" dans un widget Qt sous la Licence Publique Générale Moindre de GNU.
Habituellement, les grandes hiérarchies des arbres sont affichées comme une structure qui peut être développée par un clic de souris. Les arborescences offrent la possibilité d'afficher ces hiérarchies complètes d'un seul coup d'oeil.
On comprend mieux le principe avec un exemple; je vais donc l'expliquer à partir du fonctionnement de KDirStat [8], qui utilise QTreeMap pour afficher l'utilisation du disque dur.
Les arborescences sont affichées dans des zones rectangulaires. L'aire totale du rectangle représente la taille totale de la partition visualisée. Les répertoires et les fichiers sont affichés comme des zones d'aires proportionnelles à leurs tailles. A une structure de répertoire utilisant un tiers de l'espace disponible d'une partition correspondra également un tiers de la zone d'affichage. Un sous-répertoire de cette structure utilisant la moitié de l'espace de la structure prendra la moitié de sa place à l'affichage et ainsi de suite.
Les arborescences se prêtent tout particulièrement au cas où des hiérarchies doivent être affichées en fonction de leur taille, comme pour les systèmes de fichier, le trafic réseau ou la gestion d'organisation ou de contenu.
QTreeMap supporte les arborescences classiques, les arborescences quadratiques et différents styles de mise en couleur (également basés sur des expressions régulières). Les arborescences générées peuvent être lues et sauvegardées au format XML, ou également comme des images.
D'après l'auteur, les problèmes particuliers de QTreeMap sont les problèmes habituels spécifiques à KDE et également l'absence de l'algorithme "Cushion", qui est présent dans "Sequoia View,", le programme propriétaire qui a inspiré QTreeMap, mais qui n'a pas pu être implémenté, car Alexander n'a pas pu déterminer les concepts mathématiques qui l'entourent.
QTreeMap a été écrit en C++, après qu'Alexander eut essayé les algorithmes en Python. D'après lui, il y a deux projets similaires, mais ils sont tout deux écrits en Java. Comme le prouvent les projets KDirStat et KProf [9], QTreeMap est utilisable, donc les développeurs intéressés doivent y jeter un oeil.
Dap [10] de Susan Bassein est un autre nouveau membre du projet GNU. Dap signifie "Présentation et Analyse de Données" et est distribué sous la Licence Publique Générale de GNU.
Dap fournit les fonctions classiques pour la gestion, l'analyse et la visualisation graphique des données, telles qu'elles sont communément utilisées dans l'enseignement et le conseil en statistique. Il est également utile pour le traitement de listes de données; Susan utilise elle-même Dap pour établir la feuille de paie de son employée.
Le programme est écrit en C et les utilisateurs ayant de l'expérience en C n'auront pas de difficultés à utiliser Dap après avoir étudié les exemples fournis avec le logiciel.
Comme le projet GNU a déjà un paquetage de statistique appelé "R," il offre maintenant deux possibilités. Tandis que R est orienté objet, Dap suit l'approche procédurale. Les utilisateurs des programmes propriétaires "S" et "S-plus" vont sans doute préférer R. Les utilisateurs adeptes du logiciel non-libre "SAS" vont rapidement se sentir chez eux avec Dap.
Dap nécessite également peu de mémoire. Alors que R lit l'intégralité du fichier en mémoire, Dap travaille ligne par ligne ce qui le rend adapté aux très grandes quantités de données.
Les problèmes mentionnés par Susan sont que Dap a moins de tests statistiques que R et sa vitesse n'a jamais été optimisée. La résolution de ces faiblesses et également l'expansion et l'amélioration de sa fonctionnalité sont les objectifs des développements futurs.
Malgré ces problèmes, Dap est utilisé depuis trois ans maintenant, et a donc été complètement testé et peut être recommandé aux utilisateurs intéressés.
Les trois projets suivants ont pour objectif de faire progresser le méta-projet GNUComm [11], qui porte sur la création d'un environnement de communication complet, flexible et basé sur des composants interactifs.
Bayonne [12], le serveur téléphonique présenté dans le numéro 16 [13], est un autre élément du méta-projet GNUComm. Un des aspects majeurs du développement de GNUComm est l'interopérabilité et l'intégration avec le projet GNU Enterprise [14]. GNU Enterprise vise à constituer une solution complète dans le domaine de la "Planification de Ressource de l'Entreprise" (ERP) et fera entrer le logiciel libre dans ce secteur largement propriétaire; vous trouverez plus d'information dans le numéro 24 [15] du Brave GNU World.
Le but du projet ccRTP [16] est d'implémenter les standards RFC pour le "Protocole de Transport en temps-Réel" (RTP) qui permet le transport de données dépendantes du temps (comme l'audio ou la vidéo) sur un réseau.
Les flux sont transmis par paquets contenant une indication de temps afin de permettre l'ordonnancement correct à la réception. Cela est fait traditionnellement par les paquets UDP, parce qu'ainsi les problèmes réseaux ne bloquent pas la transmission, ce qui détruirait la synchronisation.
Par une approche orientée objet, ccRTP implémente cela dans une bibliothèque de classes C++ sous la Licence Publique Générale de GNU. Les auteurs, David Sugar et Frederico Montesino Pouzols, veulent que ccRTP devienne l'implémentation RTP la plus souple, efficace et conforme aux standards et ils ont déjà franchi plusieurs étapes dans cette direction.
GNU ccRTP supporte déjà les diffusions multiples aussi bien que la transmission point-à-point, les flux d'entrées multiples et le "Protocole de Contrôle en Temps-Réel" (RTCP). En plus, le passage à IPv6 a été préparé et même le filtrage de paquets en temps réel, ainsi que les flux de données en mode mixé, sont possibles, ce qui permet, par exemple, des fonctionnalités comme la signalisation RFC 2833 à l'intérieur d'un flux de données.
Les hauts débits de transmission requis pour les données vidéo aussi bien que la reconstruction partielle de paquets et le routage par "Classe de Service" sont possibles; ainsi la bibliothèque peut dès à présent être utilisée pour les clients et les serveurs.
Actuellement, le travail s'effectue sur le "Protocole de Réservation de Ressource" (RSVP); le support RTCP est aussi à compléter. La prochaine étape sera de documenter de façon appropriée le projet, ce qui manque aujourd'hui.
De l'aide de spécialistes du temps réels et de bons auteurs de documentation serait vraiment bienvenue. En particulier, ces derniers sont plus difficiles à trouver qu'on ne le pense.
Le projet ccAudio [17] a également été démarré par David Sugar. Comme son nom l'indique, son objectif est la création d'une bibliothèque "tout usage" pour la manipulation des données audio sur disque dur ou en mémoire.
Comme ccRTP, ccAudio est implémenté comme une bibliothèque de classes C++ sous la Licence Publique Générale de GNU et, parce qu'il vient du projet GNU Bayonne, fait partie du méta-projet GNUComm.
Actuellement ccAudio supporte l'accès aux données audio sur le disque dur à travers libsndfile et d'autres bibliothèques et fournit des fonctions élémentaires de traitement du signal audio. Il traite les données audio comme des échantillons discrets et peut traiter les en-têtes RIFF et d'autres.
Il est important de mentionner que David considère que le traitement des données audio porte sur des groupes d'échantillons plutôt que des tampons binaires au format octal. Le programme tient également compte des différents formats d'échantillonnage, de l'ordre des bits de poids et des canaux multiples.
Les plate-formes possibles pour ccAudio sont les systèmes de type Unix aussi bien que Win32, ainsi les développeurs de ce domaine doivent se sentir encouragés à y jeter un oeil.
Le développement futur va s'orienter vers un meilleur support des codecs logiciels chargés dynamiquement et va également rendre plus de codecs audio disponibles en interne. David étudie également l'inclusion de transformations de Fourier (FFT) et différentes formes de mixage/transformation audio dans ccAudio. Quelqu'un avec plus d'expérience dans le traitement du signal audio numérique apporterait une grande aide pour cela.
GNU ccScript [18] est, tout comme le C++ Standard, Bayonne, ccRTP et ccAudio, un projet maintenu par David Sugar, qui a constaté avec satisfaction que cela faisait de lui un "penta-mainteneur".
Sous GPL, la bibliothèque de classes C++ ccScript fournit une machine virtuelle (VM) pour les applications temps-réel dans les systèmes pilotés par avertissement de changement d'état. Ce langage de script assembleur est utilisé par GNU Bayonne et d'autres parties du projet GNUComm pour les scripts d'interaction avec l'utilisateur.
Comme on peut facilement le comprendre, définir la vitesse d'exécution est très important pour les environnements temps-réel, et c'est exactement dans ce but que ccScript a été écrit. Toute opération dans ccScript est déterministe; les seules exceptions à cette règle sont les opérations où cela est impossible, comme les recherches en base de données et les opérations similaires. A cause de cela, il ne peut pas traiter des expressions complexes ou à résultat variable.
Même s'il fournit des fonctionnalités génériques et des macros, ccScript ne doit pas être confondu avec des projets tels que Guile ou Tcl, parce que ceux-ci sont plus souples, mais n'offrent pas de possibilités temps-réel.
Dans les prochaines étapes du développement de ccScript, la syntaxe sera un peu restructurée et clarifiée; également plus de parties du langage seront disponibles sous forme de modules chargeables. Ce projet a aussi besoin d'aide pour sa documentation - donc si vous sentez que vous voulez le faire, allez-y.
J'en ai dit assez pour ce mois-ci. Pour terminer, je voudrais souligner que la bibliothèque GNU de "Sécurité de la Couche de Transport" (GNUTLS) est à la recherche d'un nouveau logo et a lançé le "concours du Logo TLS" [19]. Si vous désirez que vos oeuvres d'art fassent parties d'un projet GNU, voilà une bonne opportunité.
Bien sûr, j'attends vos suggestions, idées, commentaires, critiques et nouveaux projets par courrier électronique [1].
Envoyez vos questions sur GNU et la FSF à
gnu@gnu.org.
Il y a aussi d'autres manières de contacter la FSF.
Envoyez vos commentaires sur "Brave GNU World" (anglais ou allemand) à
column@gnu.org,
et les commentaires sur cette page à
webmasters@www.gnu.org,
les autres questions à
gnu@gnu.org.
Copyright (C) 2001 Georg C. F. Greve
Traduction [FR]: Valéry Beaud
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: 2008/06/16 16:43:13 $ $Author: mattl $