TDBSF"> dialog"> pythondialog"> &dialog;"> &python;'> &emacs;'> &gnuemacs;'> &unicode;'> ]> Florent Rougon — home page
English
Français

Bonjour, et bienvenue sur mon petit coin de web. Vous trouverez ici quelques documents et programmes que j'ai écrits. Vous pouvez également jeter un coup d'œuil à mes photos de voyage.

Documents

Tutoriel Emacs

J'ai écrit un tutoriel pour &gnuemacs_xref;, un éditeur de texte extrêmement puissant et portable (il fonctionne parfaitement sur la plupart des Unices, sous Windows et fonctionne au minimum en mode texte sur MacOS X, en ce qui concerne les systèmes d'exploitations « actuels »).

Ce genre de programme permet d'éditer des fichiers texte, c'est-à-dire des fichiers sans format particulier, contenant directement du texte au sens « suite de caractères » (lettres, chiffres, espaces, ponctuation). Ces fichiers sont utilisés couramment par les programmeurs mais ont de nombreux autres usages.

Cela dit, éditer du texte n'est pas une fin en soi. Si vous avez besoin d'un éditeur de texte, vous vous en apercevrez très vite et penserez (j'espère) à Emacs.

Le tutoriel indiqué ci-dessus présente les notions de base d'Emacs ainsi qu'une introduction à ELisp, un langage de programmation permettant de repousser les possibilités d'Emacs... très loin. :)

Ce document est à jour pour Emacs 21 (autrement dit, il faudrait que je le mette à jour, puisque la version stable au 18 mars 2010 est la version 23).

Présentation de LaTeX2e

TeX est un programme servant à produire des documents très soignés, à l'origine principalement pour l'impression, mais aujourd'hui aussi pour la lecture sur écran grâce essentiellement au format PDF1.

LaTeX est un ensemble de macros TeX très utilisé aujourd'hui. Il en existe d'autres, comme ConTeXt qui est encore un peu jeune mais très prometteur. Pour la plupart des documents, il est plus facile d'écrire en LaTeX (ou ConTeXt) que directement en TeX.

À la suite d'une soirée à l'École Centrale Paris où j'ai tenté d'initier à LaTeX quelques élèves intéressés, j'ai écrit cette petite présentation de LaTeX en guise de compte-rendu et de point de départ pour un apprentissage sérieux.

Ce document est raisonnablement à jour dans la mesure où ce qu'on y trouve est (sauf erreur) encore vrai, mais il ne parle pas tellement du format PDF, qui est devenu dernièrement un format de sortie très intéressant, je dirais même le format de sortie privilégié des outils basés sur TeX. Il existe d'autres très bons documents d'initiation à LaTeX en français, qui sont bien sûr mentionnés dans le mien, comme la Courte (?) introduction à LaTeX2e que l'on trouvera sur la partie consacrée à l'univers TeX du site du Loria.

Logiciels

J'ai écrit quelques petits logiciels libres, souvent en étroite relation avec &emacs_xref;, car cet éditeur de texte est passionnant, et souvent en &python_xref;, car ce langage de programmation est, comment dire... ultime.

En quelques mots, Python est :

  • doté d'une syntaxe très claire et d'un design assez joli ;
  • très puissant ;
  • assez portable ;
  • facile à étendre en C ou C++ ;
  • facile à incorporer dans du C ou du C++ ;
  • très bien documenté ;
  • un logiciel libre.

De plus, écrire des programmes en Python est très amusant. C'est aussi, dit-on, le cas d'un autre langage interprété (même deux ;-)), mais du code écrit en Python est maintenable — pas seulement par son auteur et dans le mois qui suit l'écriture dudit code...

Python digesting a perl and a ruby

Assez parlé, passons aux choses sérieuses. :)

TDBSF, the Trivial Database Searching Facility

&tdbsf; est un moteur de recherche pour de petites « bases de données » dans un format texte très simple afin de remplacer un vieil outil shareware utilisé par mon père depuis des années et qui présentait pas mal de limitations commençant à devenir gênantes.

Le moteur est écrit en &python_xref; et l'interface la plus aboutie est écrite pour &emacs_xref; (principalement en ELisp, donc).

Depuis la version 2.0, &tdbsf; supporte pleinement &unicode_xref; Plus précisément, un fichier de la base de données peut utiliser n'importe quel codage de caractères compatible avec Unicode et supporté à la fois par Python et par l'interface utilisée (i.e., pour le moment, Emacs). Le codage d'un fichier de la base de données est simplement indiqué dans une déclaration de codage (encoding declaration), comme en ont l'habitude les utilisateurs d'Emacs et les programmeurs Python.

Vous pouvez télécharger &tdbsf; ou lire sa documentation, si vous comprenez l'anglais. Ce programme est distribué sous la licence GNU GPL.

PyXMMS et PyXMMS-remote

PyXMMS est une interface &python_xref; pour XMMS, un lecteur multimédia libre pour X-Window2. Depuis la version 2.00, PyXMMS est structuré autour des deux composants suivants :

  • un ensemble de bindings Python pour les fonctions xmms_remote* de la bibliothèque libxmms ainsi que quelques fonctions de plus haut niveau ;
  • une interface « pythonesque » pour gérer le fichier de configuration principal d'XMMS (ceci inclut la lecture et l'écriture).

En d'autres termes, PyXMMS permet de contrôler XMMS et gérer son fichier de configuration principal depuis un programme écrit en Python.

Vous pouvez télécharger PyXMMS ou lire sa documentation (en anglais).

PyXMMS est distribué sous la licence GNU GPL version 2.

PyXMMS-remote est un programme écrit en &python_xref; permettant de contrôler XMMS avec une interface de type ligne de commande, ce qui est très pratique dès qu'on veut interfacer ou automatiser. PyXMMS-remote a besoin de PyXMMS pour fonctionner correctement.

Vous pouvez télécharger PyXMMS-remote ou lire sa documentation (en anglais).

PyXMMS-remote est distribué sous la licence GNU GPL version 2.

pythondialog

&pythondialog; est une interface &python_xref; avec le programme &dialog_xref; écrit à l'origine par Savio Lam, puis réécrit par Thomas E. Dickey. Son but est de permettre une utilisation facile et complète de &dialog; depuis Python tout en gardant un style de programmation... pythonesque.

Ce module est utile pour écrire rapidement et facilement en Python des interfaces en mode texte3. Le niveau d'abstraction est assez élevé : on demande des boîtes de texte, des boîtes d'entrée de texte, des listes de boutons radio, etc. Il ne permet pas de réaliser des tâches de bas niveau avec le terminal. Si c'est ce dernier cas qui vous intéresse, vous devriez vous tourner vers ncurses ou slang. Si vous avez besoin de réaliser une interface un peu sophistiquée en mode texte (et avec Python), je suggérerais de jeter un œil à la bibliothèque Python Urwid.

J'ai commencé mon travail à partir du premier &pythondialog;, écrit principalement par Robb Shecter, pour le rendre plus robuste, plus complet et bien documenté. Pendant quelques années (2004-2009), &pythondialog; a été entre les mains de Peter Åstrand, qui a uploadé la version 2.7 sur SourceForge.

Je reprends désormais mon travail sur &pythondialog;, et les nouvelles versions sont disponibles ici, car c'est plus commode pour moi que d'utiliser SourceForge. De nombreuses améliorations ont été apportées dernièrement, principalement à partir de la version 2.09 (support de nouveaux widgets, essentiellement).

En haut de ma TODO list figurent le support de &python3; et des chaînes de caractères Unicode. Pour le moment, il est possible d'utiliser des caractères non-ASCII avec &pythondialog; à condition de les coder préalablement (par exemple en UTF-8 ; bien entendu, le terminal utilisé doit supporter le codage en question). Cependant, il serait souhaitable à mon avis de pouvoir passer des chaînes Unicode directement à &pythondialog;. Cela dit, étant donné que la gestion des chaînes de caractères octet/Unicode a connu des changements considérables entre &python2; et &python3;, il est sans doute préférable de commencer par le support de &python3; avant d'aborder le problème des chaînes Unicode.

Vous pouvez télécharger &pythondialog; ou lire sa documentation (en anglais).

&pythondialog; est distribué sous la licence GNU LGPL (GNU Lesser General Public License).

Interface Emacs pour Mobiquid (obsolète)

Avec mobiquid.el et mobiquid-init.el, vous trouverez un petit programme pour &gnuemacs; fournissant une interface efficace au service de http://www.mobiquid.com/ permettant de savoir ce qui est passé à une heure donnée sur une radio donnée (en France et pour une sélection de radios).

Debian

Pendant mon temps libre, j'aime bien travailler sur la distribution Debian. Vous trouverez ci-dessous des lignes APT que vous pouvez utiliser à vos risques et périls pour télécharger quelques packages Debian que j'ai écrits ou recompilés (en particulier, des backports pour lenny) :

deb http://people.via.ecp.fr/~flo/debian lenny main contrib non-free
deb-src http://people.via.ecp.fr/~flo/debian lenny main contrib non-free

(pour lenny)

et

deb http://people.via.ecp.fr/~flo/debian sid main contrib non-free
deb-src http://people.via.ecp.fr/~flo/debian sid main contrib non-free

(pour sid)

Toujours curieux ? Faites donc un petit tour dans mon répertoire de projets et dans mon dépotoir pour code Python.

Notes

1. Avant le succès (et l'existence) du format PDF, le format PostScript servait aussi à ces deux usages, mais PDF a apporté pas mal de fonctionnalités qui ne peuvent s'exprimer qu'à l'écran, comme le fait de pouvoir cliquer sur une référence croisée pour se rendre à l'endroit où elle pointe (par exemple dans une table des matières).

2. X-Window est le système graphique standard sur tous les Unices (les systèmes d'exploitation de la famille Unix, dont le plus connu aujourd'hui est GNU/Linux).

3. Ou même des interfaces graphiques simples avec le backend Xdialog, tant que que celui-ci n'est pas trop incompatible avec &dialog_xref;.


Florent Rougon <flo (**AT**) via.ecp.fr>

J'ai une clé OpenPGP (créée avec GnuPG).

Dernière modification le 2012-02-11 à 19:23.

Valid XHTML 1.0!    Valid CSS!