Midilibre.fr
Tous les blogs | Alerter le modérateur| Envoyer à un ami | Créer un Blog

06/10/2009

XDG Base Directory Specification - French - Traduction Française

67-t256.pngVoici ma traduction de la spécification sur les répertoires de base de Freedesktop.org. Le but de ces spécifications n'est pas de standardiser les interfaces, mais d'harmoniser les échanges entre les différents environnement. Comme les procédures de copier/coller, raccourcis clavier..... tout est défini de manière à avoir une unification et des codes communs : une harmonisation de l'infrastructure. De nombreux programmes utilisent ces spécifications, gnome, kde, X.Org, mais également telepathy, gstreamer, .... Ci dessous la traduction de la partie sur les répertoires de base.

Version : 0.6
Source : http://standards.freedesktop.org/basedir-spec/latest/inde...
Auteur : Waldo Bastian
Traduction : Stéphane de la Linuxerie


Introduction

Plusieurs spécifications portent sur les fichiers et les formats de fichiers. Cette spécification précise où doivent se trouver ces fichiers en définissant un ou plusieurs répertoires référents où les fichiers devraient se trouver.

Les bases

La spécification XDG Base Directory Specification est basé sur les concepts suivants:

- Un seul répertoire relatif aux informations propre à l' utilisateur doit contenir ces fichiers. Il est défini par la variable  d'environnement  $XDG_DATA_HOME.

- Un seul répertoire pour les fichiers de configuration. Ce répertoire est défini par la variable  d'environnement  $XDG_CONFIG_HOME.

- Une liste de répertoire classé par ordre de préférence pour indiquer ou les fichiers de données doivent être cherché. Cette liste est définie par la variable   d'environnement  $XDG_DATA_DIRS.

- Une liste de répertoire classé par ordre de préférence pour indiquer ou les fichiers de configuration doivent être cherché. Cette liste est définie par la variable  d'environnement   $XDG_CONFIG_DIRS.

- Un seul répertoire pour indiquer l'endroit ou doivent se  trouver les informations non essentiel (caché) propre à l'utilisateur. Ce répertoire est défini par la variable d'environnement  $XDG_CACHE_HOME.

Les variables d'environnement

$XDG_DATA_HOME défini le répertoire où les fichiers de données de l'utilisateur doivent être stockés. Si cette variable est vide ou non rempli, un  répertoire par défaut équivalent à  $HOME/.local/share devra être utilisé.

$XDG_CONFIG_HOME défini le répertoire ou doivent se trouver les fichiers de configurations de l'utilisateur. Si cette variable est vide ou non rempli, un  répertoire équivalent à $HOME/.config devra être utilisé.

$XDG_DATA_DIRS défini une liste, par ordre de préférence, des répertoires qui peuvent contenir les fichiers de données de l'utilisateur en plus du répertoire $XDG_DATA_HOME. Les répertoires de cette variable doivent être séparé par deux points ":". Si cette variable est vide ou non rempli, une valeur égale à  /usr/local/share/:/usr/share/ devra être utilisé

$XDG_CONFIG_DIRS défini une liste, par ordre de préférence, des répertoires  qui peuvent contenir les fichiers de données de l'utilisateur en plus du répertoire $XDG_CONFIG_HOME. Les répertoires de cette variable doivent être séparé par deux points ":". Si cette variable est vide ou non rempli, une valeur égale à /etc/xdg devra être utilisé

L'ordre des répertoire reflète leur importance : le premier est le plus important. Quand la même information est définie dans plusieurs endroits, c'est la définition du répertoire le plus important qui prime. Le répertoire défini par $XDG_DATA_HOME est le plus important des répertoires définis dans $XDG_DATA_DIRS. Le répertoire défini par $XDG_CONFIG_HOME est le plus important des répertoires définis dans $XDG_CONFIG_DIRS..

$XDG_CACHE_HOME défini le répertoire ou doivent se trouver les fichiers de données non essentiel de l'utilisateur. Si cette variable est vide ou non rempli, un  répertoire équivalent à $HOME/.cache devra être utilisé.

Référencement de cette spécification

D'autres spécifications peuvent référencer cette spécification en spécifiant l'endroit d'un fichier de donnée comme $XDG_DATA_DIRS/repertoire/fichier

Ce qui implique :

- Un tel fichier devra être installé dans $datadir/repertoire/fichier avec /usr/share par défaut pour $datadir

- Une version spécifique de l'utilisateur d'un fichier de donnée peut être crée dans $XDG_DATA_HOME/repertoire/fichier en prenant les valeurs par défaut si $XDG_DATA_HOME n'est pas défini.

- Les recherches de fichiers de données devront se faire dans ./repertoire/fichier sur tout les répertoires indiqués dans $XDG_DATA_HOME et $XDG_DATA_DIRS. Si une des variables n'est pas rempli ou est vide, les variables par défaut comme défini par cette spécification pourront être utilisées.

D'autres spécifications peuvent référencer cette spécification en spécifiant l'endroit d'un fichier de donnée comme $XDG_CONFIG_DIRS/repertoire/fichier

Ce qui implique :

- Un tel fichier devra être installé dans $sysconfdir/repertoire/fichier avec /etc par défaut pour $sysconfdir

- Une version spécifique de l'utilisateur d'un fichier de donnée peut être crée dans $XDG_CONFIG_HOME/repertoire/fichier en prenant les valeurs par défaut si $XDG_CONFIG_HOME n'est pas défini.

- Les recherches de fichiers de données devront se faire dans ./repertoire/fichier sur tout les répertoires indiqués dans $XDG_CONFIG_HOME et $XDG_CONFIG_DIRS. Si une des variables n'est pas rempli ou est vide, les variables par défaut comme défini par cette spécification pourront être utilisées.

Dans le cas ou, lorsque l'on essaie d'écriture un fichier, le répertoire de destination n'existe pas, il devra être prévu une tentative de création avec les permissions à 0700. Si le répertoire existe les permissions ne doivent pas être changé. L'application doit tenir compte du fait que le fichier puisse ne pas être écrit, soit parce que le répertoire n'existe pas et ne peut être crée, soit pour tout autres raisons. Dans un tel cas, l'application pourra présenter un message d'erreur à l'utilisateur.

Dans le cas ou, lorsque l'on essaie de lire un fichier, pour n'importe quelle raison il n'est pas accéssible (par ex: lorsque le répertoire n'existe pas, le fichier n'existe pas ou l'utilisateur n'est pas autorisé à ouvrir le fichier) Alors le traitement de ce fichier devra être passé. Si le fichier n'est absolument pas accessible l'application pourra présenter un message d'erreur à l'utilisateur.

Une spécification qui se référe à  $XDG_DATA_DIRS ou $XDG_CONFIG_DIRS devra définir le comportement quand un fichier est trouvé dans plusieurs répertoires. Elle pourra, par exemple, définir que seul le fichier dans le plus important des répertoires soit utilisé, ou, autre exemple, elle pourra définir une fusion des informations issues des différents fichiers.

02/10/2009

[alchemy] - Du croquis à l'art expérimental

logo.pngLorsque l'on commence une création, quel soit 2d ou 3d on à souvent besoin de faire des croquis (des grabouilles j'allais dire). Qui n'a jamais par exemple fait quelques grigri sur un bout de post-it ? Et parfois émergeant de ces dessins aléatoires, une idée. C'est en gros ce que vous propose Alchemy, il se place à la fois comme aide au travail préparatoire mais en même temps comme nouvelle approche à un travail graphique, d'ou une insistance sur l'expérimentation, comme le dessin à base de son. Vous trouverez le logiciel sous licence GNU/GPL ici : http://al.chemy.org/download/

Il existe deux modes, le simple qui fixe une barre d'outil sur la gauche, et un mode standard non intrusif, qui apporte une barre qui descend lorsque l'on monte tout en haut de l'espace occupé par le logiciel.

alchemy2.png

Voyons en détail toutes les options présente (de gauche à droite et de haut en bas) :

Le zigzag (shapes): c'est le crayon standard soit vous faite des formes libres, soit des lignes droites
Le Micro (Mic shapes) : permet d'obtenir des images en fonction du son provenant de votre micro
La course (Speed shapes) : déplace le trait au delà de la position de votre souris, la vélocité de la souris augmente l'éloignement du trait
La boite (Pull shapes) : permet de placer des formes (des brosses) sur le dessin
le trait (scrawl shapes) : trace des traits aléatoires en suivant le déplacement de votre souris
la croix (X shapes) : permet de dessiner des formes droites ou douce selon la vélocité de la souris
les 3 traits (Median shapes) : dessine une ligne intermédiaire entre la derniére ligne et la ligne courante
les chevrons (pressure shapes) : permet de tracer un trait en simulant un effet de pression
la fleche (Inverse shape) : trace un trait sans pression du bouton, le clic maintenu permet de ne plus dessiner
le métronome (Type shapes) : prends une police de caractère au hasard et déforme le caractére
La colline (Trace shapes) : prends une image au hasard sur flicker et trace des traits selon les formes
La petite croix (Detach form) : permet de détacher le trait de l'emplacement de la souris

Chacune des ces options est bien entendu configurable. En globalité il est possible de définir la couleur, la transparence, l'épaisseur de ligne, ...

Mais surtout on peut gréffer sur chacun des ces outils des modules pour filtrer le tracé. Ainsi on retrouve :

Displace : change la géomtrie d'une forme en fonction du mouvement.
Gradient : permet d'affecter automatiquement un dégradé au tracé
Mirror : trace en miroir
Blindness : trace en aveugle, et ne vous montre le résultat qu'une fois le bouton relaché.
Random : modifie et change les formes (même celle existante)
Mic expand : utilise le micro pour déformer
Repeat : répete les formes tracé
Colour switcher : permet de changer de manière aléatoire les couleurs

Voici par exemple une de mes dernières utilisations d'alchemy pour un logo. Lorsque le croquis à été terminé je l'ai importé dans inkscape pour  le travailler comme calque de référence.

alchemy.png

Une fois la prise en main (rapide) du logiciel, on arrive facilement à des résultats étonnants, c'est un véritable support pour la création. Seul point négatif : le changement de couleur n'est pas évident.

Vous pouvez vous en servir pour créer vos tests de Rorschach également, reste à trouver un cobaye. Car on peut bien sur obtenir des résultats beaucoup plus expérimentaux :

Alchemy3.jpg

19/09/2009

[ascii] - Des "écrans de veille" pour nos terminaux

1205409434.pngUn peu de détente pour ce week-end. Pourquoi seul les bureaux graphique auraient droit à un économiseur d'écran ?
Souvent on voit un fond d'écran magnifique: des poissons, des bulots, une horloge,  des langoustes, des messages subliminaux, des morues... envieux et jaloux mon terminal me réclame du coup lui aussi un économiseur. .... j'ai beau lui expliquer que ces économiseurs n'en sont plus vraiment, que leur utilité n'est que futilité ... rien n'y fait. Voulant éviter le conflit pour ce week end, je lui offre donc son bonheur : un magnifique aquarium en ASCII.

Pour l'installer c'est simple, il suffit de rajouter le module Term::Animation pour perl. Pour se faire tapez :

sudo cpan (et validez les différentes options, choisissez votre continent et le serveur)
Une fois que cpan vous rends la main tapez : install Term::Animation

Il doit vous indiquez que vous n'avez pas le module Curses et vous propose de l'installer, répondez yes. Attendez un tout petit peu.
Etape la plus simple téléchager le paquet sur le site de l'auteur : ici décompressez le, puis rendez le fichier asciiquarium exécutable avec un joli chmod +x asciiquarium dans votre terminal (qui du coup n'en peut plus de piaffer, c'est noël pour lui). Et voilà.

A noter qu'il existe une version KDE : http://www.kde-look.org/content/show.php?content=29207&am... que vous pouvez également installer avec le paquet : kdescreensaver-aasaver

1.jpg

Il existe également la même chose mais pour le temps, c'est a dire que votre fond d'écran ASCII va changer en fonction du temps  selon un lieu réglé dans le module Weather::Underground (maintenant vous savez comment l'installer). Le fichier est ici.

Ne voulant me montrer trop dur avec mon terminal j'ai décidé de lui offrir deux autres fonds d'écran : j'installe le paquet caca-utils (basé donc sur la librairie caca) et me voila l'heureux possésseur de cacafire, une animation en ASCII d'un joli feu de camp et de cacademo, un mélange de metaball, plasma, ... pour les deux on utilise la touche entrer pour changer l'animation, espace pour la pause et ESC pour quitter.

Petite cerise sur le gâteau : Starwars dans votre terminal en tapant (installez vous comme au cinéma) : telnet towel.blinkenlights.nl

Et comme c'est week end, un script bash pour générer des jolies dégradés :
yes "$(seq 1 255)" | while read i; do printf "x1b[48;5;${i}mn"; sleep .01; done

Et puis si vous souhaitez mettre des vidéos ou la télé sur votre terminal je vous renvois à ma note ici

16/09/2009

[Uzbl] le navigateur avec la philosophie Unix, qu'il me manquait !

uzbl-logo.png!! Uzbl est toujours en développement et est toujours considéré comme en alpha, ne l'installer que si vous savez ce que vous faîtes.

Je vous avais parlé il y a peu de vimpérator, voici surement mon nouvel outil de navigation  : Uzbl. Il s'agit d'un navigateur basé sur webkit (acid3 à 100/100) qui suit la philosophie Unix. Un programme qui fait une chose mais qui le fait bien et un programme qui gére les entrées/sorties textuelles. Il s'agit d'un projet tout récent (avril 2009) mais qui évolue trés vite (la dernière maj date du 12 septembre)

Les spécifications d'Uzbl parlent d'elles même :
- Une interface minimaliste
- Uzbl ne gére que la navigation, tout le reste est pris en charge par des scripts (marque page, téléchargements....)
- Contrôlable par plusieurs moyens : fichiers, stdin, clavier....
- Raccourcis confgurables (à la vim, emacs....)
- Toutes les données et configurations sont stockées dans un format simple et lisible


Par défaut les commandes ressemble à Vim, b pour back, ZZ pour quitter... le reste se fait trés intuitivement o pour ouvrir une URL, F pour visualiser les liens accésible (et f18 par ex pour suivre le lien numéro 18) (adieu mouselessbrowser),.... help vous listera toutes les commandes disponibles.

uzbl.jpg

Il exite des paquets pour Archlinux mais le site d'uzbl indique comment l'obtenir sur d'autres distributions : http://www.uzbl.org/wiki/howtos

Pour ceux qui voudraient juste tester le concept sans installer le logiciel il existe un add-on pour firefox

Concernant le nom Uzbl, il vient du fait que le programmeur est un fan de lolcats, le nom signifie : Usable. Vous trouverez ici les étapes de la création du logo : http://thorwil.wordpress.com/?s=uzbl

01:00 Publié dans informatique | Lien permanent | Commentaires (0) | Tags : debian, gnu, fsf, uzbl, browser

14/09/2009

[FSF] - La Free Software Foundation met à jour sa liste des distributions libre

gerwinski-gnu-head.pngLa Free Software Foundation, vient de mettre à jour sa liste des distributions GNU/Linux libre (http://www.fsf.org/news/free-distributions-updates-kongon...). Une nouvelle distribution vient s'y ajouter : Kongoni (http://www.kongoni.co.za/). Pour la petite histoire Kongoni est le mot africain en Shona pour dire gnou. Cette distribution utilise un systéme qui télécharge les sources et les compilent automatiquement. Autre distribution à être mise à jour dans cette liste est l'update de Trisquel (http://trisquel.info/) en verstion 3.0 (Dwyn).

Donc, et je l'ignorais, la FSF à une liste des distributions libre. On peut consulter cette liste ici : http://www.gnu.org/distros/free-distros.html première réaction : mais ou est Debian ? J'ai donc regardé de plus prés les conditions pour être dans cette liste.  On y trouve la notion de firmware propriétaire (appelé Blob), les références aux marques, la liaison à un brevet, la documentation libre.... à la lecture du document on se rends compte que tout les cas ont été étudié pour certifier ces distributions libre. Ainsi si un jeu d'une distribution est livré avec un moteur GPL mais que les graphismes sont sous copyright, la distribution ne se verra pas attribuer le label "Libre". Le document est tout de même réaliste et conclu en indiquant qu'une distribution constitue une masse de donnée énorme, et qu'a l'impossible nul n'est tenu. Il est donc possible qu'une distribution laisse passer du matériel non libre sans que cela entraîne automatiquement son retrait de la liste. Ce qui est important c'est la volonté de réparer l'erreur.

Mais alors au vue de tout ceci pourquoi certaines distributions ne sont pas dans la liste? La réponse est ici : http://www.gnu.org/philosophy/common-distros.html ... ainsi on y découvre pourquoi debian, gentoo, opensuse, slackware et les autres ne font pas parti de cette liste. Pour résumer grossiérement, il y a ceux qui ne sont pas claire avec les logiciels à inclure (centos,fedora, mandriva,redhat,slackware...) et ceux qui permettent l'accés trop simple à des dépots non-free (debian, gentoo, opensuse, ubuntu, *BSD...)

Avec une telle sélection on comprends mieux pourquoi au milieu des milliers de distributions existante, seule 9 figurent dans la liste de la FSF. Kongoni peut être fier de son travail.