Page suivante Page précédente Table des matières

7. Deux petites bases de données personnelles

Gaby et Notes-Mode Revisitées : deux petites bases de données personnelles pour Linux.

Par Larry Ayers

7.1 Introduction

Bien que plusieurs systèmes complets de bases de données SQL existent pour Linux, tant commerciaux qu'à source ouverte, ces grandes applications client-serveur sont surdimensionnées pour traiter les données personnelles d'un utilisateur unique. Les gestionnaires d'informations personnelles tels que Lotus Organizer sont depuis longtemps populaires parmi les utilisateurs de grands systèmes, cependant que Korganizer de Preston Brown (un clone d'Organizer basé sur QT) et Ical (une application de calendrier sous Tcl/Tk) sont populaires parmi de nombreux utilisateurs Linux. Ces applications combinent un gestionnaire d'informations personnelles avec un calendrier et des possibilités de planification. Dans mon cas, je n'ai que peu besoin du calendrier, etc., mais j'ai vraiment un tas d'informations dont je voudrais faciliter la gestion. En gardant la tradition Unix des outils petits, spécialisés et optimisés pour des tâches précises, cet article décrit deux applications qui peuvent aider un usager Linux à organiser et à rendre des données personnelles plus accessibles .

7.2 Gaby

Gaby, écrit par Frederic Peters, a commencé comme un simple livret d'adresses écrit avec la boîte à outils GTK. Le nom est un acronyme, signifiant à l'origine Gaby Address Book of Yesterday; après l'évolution du programme, l'auteur a décidé que l'acronyme pouvait être généralisé en Generic Astute Base of Yesterday. Le développement ultérieur a été la conséquence de ce que l'auteur avait créé un canevas de base de donnée simple qui pouvait être utilisé pour d'autres types de données. Je pense que le "of yesterday" dans les acronymes est une reconnaissance de ce que Gaby utilise du texte ASCII délimité par des virgules comme format de stockage des données plutôt que les formats plus complexes, moins portables et souvent binaires communs dans les grands systèmes de bases de données. Le texte ASCII comme format des données est commun depuis déjà un bon nombre d'années mais peut encore être utile pour des bases de données même assez grandes; voyez le numéro 34 de la Gazette pour un article au sujet de NoSQL, qui utilise du texte délimité par des tabulations comme format.

À l'installation, l'exécutable Gaby est lié symboliquement à gbc. Invoquer gbc lance Gaby en tant qu'organiseur plutôt qu'en tant que livret d'adresse, par défaut. Gaby peut afficher deux vues différentes des fichiers de données de l'utilisateur, qui sont stockés dans le répertoire ~/.gaby.

Dans la version la plus récente de Gaby (0.2.3 fin novembre 1998) un utilisateur peut créer n'importe quelle sorte de base de données avec n'importe quels champs, selon les desiderata. C'est un possibilité nouvelle, pas complètement implémentée et la documentation est insuffisante sur ce point, donc je vais rapidement résumer comment c'est possible.

D'abord, créez un nouveau répertoire vide appelé /etc/gaby. Dans cet exemple je crée une base de données de la flore endémique de ma région. Dans la distribution source de Gaby, il y a un exemple de fichier modèle appelé desc.gtest. Copiez ce fichier sous /etc/gaby, puis renommez-le de telle façon que le suffixe rappelle de façon mnémonique le sujet de votre base de données expérimentale. Dans cet exemple, j'ai renommé le fichier desc.plants à l'aide de la commande mv desc.test desc.plants. Éditez ce fichier desc.[qqchose], pour changer les noms des champs afin qu'ils reflètent la nature de vos données.

Ensuite créez un lien symbolique dans le répertoire /usr/local/bin (c'est là que Gaby est installé par défaut), reliant gaby à plants (ou tout suffixe que vous auriez choisi) avec la commande ln -s gaby plants. Alors, vous pouvez démarrer Gaby en tapant le nom de votre lien symbolique, et une fenêtre Gaby aménagée apparaîtra avec les nouveaux noms de champs prêts à être remplis.

La vue par défaut est la fenêtre Formulaire, qui montre la première entrée des le fichier de données :

Chacune des entrées peut être visualisée dans cette fenêtre à l'aide des icônes ou des menus, et on peut ajouter des articles supplémentaires. Dans la barre de menu de cette fenêtre, il y a un menu "List", qui permet à l'utilisateur de trier les articles par ordre alphabétique selon n'importe lequel des champs. Une autre option du menu permet d'exporter une liste aux formats de tableaux LaTeX ou HTML.

L'autre fenêtre disponible est la vue Liste, qui est un résumé ou index de toutes les entrées du fichier :

Gaby est un bon exemple de logiciel libre qui commence à prendre du poids car les utilisateurs commencent à contribuer à son amélioration et à donner des informations en retour... Ceci stimule naturellement le développeur pour étoffer le programme. Gaby me plaît parce que, plutôt qu'un programme à fonctions figées, c'est un programme qui peut être étendu par les utilisateurs et avoir des utilisations que l'auteur n'avait pas imaginé.

La version courante de Gaby peut être obtenue sur le site web de Gaby.

7.3 Notes-mode revisité

Dans le numéro 22 de la Gazette j'ai fait un article sur le mode à ajouter à GNU Emacs appelé Notes-mode. Cette extension utile de l'éditeur a été écrite par John Heidemann qui voulait mettre de l'ordre dans ses notes académiques. Le noyau de ce mode est une collection de scripts Perl, certains d'entre eux étant prévus pour être lancés automatiquement comme tâche journalière cron (ceux-ci indexent les fichiers et établissent les liens internes), pendant que d'autres datent et initialisent une nouvelle note.

Alors que j'avais été impressionné lors de mon premier article par les possibilités de Notes-mode, je n'ai pas réussi à le faire fonctionner avec XEmacs, qui est mon éditeur préféré. Récemment, John Heidemann a publié la version 1.16, qui (grâce à des contributions de Ramesh Govindan) fonctionne maintenant bien avec XEmacs. J'ai utilisé ce mode intensivement depuis, et je l'ai trouvé utile au-delà de son but initial.

Notes-mode a été développé pour aider à organiser des notes académiques, mais il me sert bien comme organiseur pour des notes sur des sujets variés. Chaque jour on peut initialiser un nouveau fichier avec n'importe quelles catégories souhaitées. Le système permet une navigation au clavier aisée entre les différentes catégories du jour, et un tampon temporaire peut être composé avec toutes les entrées sous un titre donné. L'effet ressemble à l'utilisation des liens dans une page HTML, avec l'avantage que les entrées ne sont pas encombrées de tags HTML et ne nécessitent pas de navigateur pour les examiner. Une autre fonctionnalité semblable au HTML est la liaison à des fichiers externes. En utilisant du code adapté de celui du navigateur web W3 de Bill Perry, une entrée telle que file:///home/layers/xxx.txt peut être sélectionnée à la souris ou au clavier, pour charger le fichier dans la session Emacs. Le codage PGP d'entrées individuelles est aussi supporté (en utilisant l'interface Emacs/PGP MailCrypt).

Dans un sens, Notes-mode est une autre sorte de base de données personnelle optimisée pour la navigation basée sur les sujets et les dates. Ses possibilités sont orthogonales à celles de Gaby. Notes-mode possède la limitation de n'être pleinement utilisable que par des utilisateurs d'Emacs ou XEmacs, alors que Gaby peut être utilisé par n'importe qui, mais uniquement dans une session X. Tous deux sont basés sur du texte ASCII, si bien que les données sont totalement portables et accessibles par tout éditeur ou utilitaire de traitement de texte. L'un, l'autre ou l'ensemble de ces deux programmes peuvent se révéler des outils inestimables pour tous ceux qui ont besoin de mettre de l'ordre dans leurs masses d'informations.

La version 1.16 de Notes-mode peut être téléchargée sur ce site web. Une documentation complète est incluse dans l'archive sous plusieurs formats.

Dernière modification : dimanche 29 novembre 1998

Copyright © 1998, Larry Ayers

Publié dans le numéro 35 de la Linux Gazette, décembre 1998.

Adaptation française de Georges Khaznadar


Page suivante Page précédente Table des matières