Ma vie rêvée

Aller au contenu | Aller au menu | Aller à la recherche

dimanche 11 mars 2007

Bunnyday, le bain de soleil

Bain de soleil du lapin

jeudi 15 février 2007

Un poil de teasing :-)

Parce que pour une fois, j'ai envie de parler de ma vie :

un écrin et 2 anneaux, un en or et un en or blanc serti de diamants

lundi 29 janvier 2007

La migration Bigoudenn

Un superbe court métrage d'animation réalisé par des étudiants et disponible sur le site de l'école de l'image Gobelins. Je vous conseille également de regarder les autres courts métrages ; ils sont tous bons. Notamment Motus et Bouche Cousue pour sa chute.

mardi 2 janvier 2007

MAJ du comparatif des licences

Je viens de faire une petite mise à jour de mon tableau sur les différentes licences de logiciel.
Au menu, un ajout des licences CeCILL (licence de logiciels libres conformes au droit français), un peu de cosmétique, ajout du format OpenDocument dans les fichiers à télécharger et un changement du contrat d'utilisation (licence).

Le document n'est plus sous licence GFDL. Cette licence m'ennuyait un peu car elle est en anglais et je ne suis pas certains de sa valeur en France. De plus, elle ne cadre pas parfaitement avec les libertés que je voudrais donner.
Idéalement, je voulais un équivalent de la CeCILL-C (semblable à la LGPL) pour mon document. Vu qu'elles ont bonnes presses, je me suis tourné vers les licences Creative Commons et j'y ai trouvé mon bonheur.
Le document est donc sous licence Creative Commons BY-SA 2.0. Cela signifie :

  • Que vous êtes libre de lire, copier, distribuer, modifier, distribuer vos modifications de ce document, et cela comme bon vous semble tant que vous ne violez pas les restrictions ci-après.
  • Que je reste l'auteur du document original quand vous modifiez ou incluez ce document dans un autre.
  • Que vous devez utilisez la même licence pour un travail dérivé de ce document
  • Que vous pouvez inclure ce document (en conservant sa licence et les mentions obligatoires) dans un autre sans que le tout prenne la licence CC-BY-SA.

La licence est en français et je vous invite à la lire si vous voulez vous faire une idée plus précise des droits et devoirs associés.

samedi 30 décembre 2006

Décret pénal de DADVSI paru

Vu sur le blog de Bertrand Lemaire (Le Monde Informatique), la parution, aujourd'hui, du décret pénal de la loi DADVSI.

Pour résumer, si je lis bien le texte, il devient illégal et puni d'une amende de classe IV (750€ maximum) le fait de détenir ou utiliser un logiciel de contournement des mesures techniques de protection. En substance, je n'ai plus le droit d'écouter certains de mes CD sur mon baladeur ou sur mon ordinateur. Où encore de lire mes DVD sur ma machine sous GNU/linux (encore que je ne suis pas sur que CSS soit encore considéré un moyen efficace).

Une bonne année qui s'annonce.

mercredi 27 décembre 2006

Le n'importe quoi du jour

Entendu ce soir dans le M6 minute au sujet de l'automédication :

«... utiliser la publicité pour éduquer les français en matière d'automédication...»

Je ne sais pas mais il n'y a que moi que ça choque qu'on propose à une entreprise (parce qu'il ne faut pas se leurrer, c'est eux qui financeront) d'éduquer son client à l'utilisation de produits dangereux ? Les médicaments ne sont pas des bonbons et la seule chose qui les différencie des toxiques, c'est la dose.

vendredi 15 décembre 2006

La pensée du soir

Vu sur Format Ouverts, une phrase qui résume bien ma pensée sur les messageries instantanées (l'article parle de la compatibilité MSN/Yahoo) :

il est tout de même incroyable de penser que pour échanger ou discuter avec les autres, ces autres doivent avoir l'un des 2 logiciels et uniquement ceux-là ! A contrario pour le fax, le courriel ou le téléphone, les appareils de n'importe quelle marque permettent de communiquer.

dimanche 3 décembre 2006

Ce qui me manque sous GNU/linux

Il y a de ça deux ans, j'avais écrit un billet répertoriant ce qui manquait et portant le même titre : ce qui me manque sous GNU/linux. 2 ans ce sont écoulés, il est temps de faire le bilan et de reprendre les points que j'avais alors évoqué.

  • Un lecteur flash libre. J'avais évoqué swfdec et gplflash à ce moment là. Si swfdec continue son chemin depuis, gplflash est mort. En effet, les développeurs ont préféré rejoindre le projet gnash, soutenu également par le FSF, qui partait sur de meilleures bases. Actuellement, la deuxième version alpha a été publiée, le lecteur seul semble fonctionner pas trop mal, le plugin fait planter mon navigateur mais c'est probablement parce que c'est une version beta vu qu'il fonctionne pas trop mal avec FF 1.5. A tester et à suivre, le développement est rapide.
  • Une machine virtuelle java libre. Beaucoup de développement dans cette partie :-). Le projet GNU classpath atteint presque 100% de compatibilité pour java 1.4 et plus de 95% pour java 1.5 (java5). On est donc presque parfait du côté des projets libres et, cerise sur le gateau, Sun a récemment annoncé que la version 7 de java serait publiée sous licence GNU/GPL. Bref, du tout bon.
  • Des pilotes libres pour ma carte graphique. Le projet Opengraphics avance toujours doucement, les premiers prototypes de la carte de démonsrtation (destinée à la recherche) sont arrivés ces derniers temps. Intel a, de son côté, confirmé le développement de pilotes libres pour ses puces graphiques. ATI et Nvidia, restent quand à eux sur des pilotes propriétaires et refusent toujours de donner des spécifications. Heureusement, un peu d'espoir vient du projet r300 pour ATI et du projet Nouveau pour Nvidia. Ces 2 projets visent à écrire des pilotes libres et complets pour les cartes de ces constructeurs, R300 est plus ancien et est déjà utilisable ; nouveau en est à ses débuts mais évolue vite.
  • Un équivalent à Acrobat pour manipuler des PDF. De ce côté, rien de vraiment nouveau, je n'ai toujours pas trouvé la perle rare et je n'ai pas connaissance de projets de ce type..

AU final, en 2 ans, pas mal de choses ont évolué et même si ce n'est pas encore parfait, l'avenir ne s'annonce pas si mal que ça.

dimanche 26 novembre 2006

Flash, youtube et moi

Il y a quelques temps, j'avais palié au manque de flash sur ma machine en utilisant une combinaison de 3 choses intéressantes : DownloadWith, youtube-dl et mplayer. Tout cela est explicité dans 2 billets :

Ça marche bien mais ça manquait un poil de finition.

Les choses en serait resté là si je n'avais pas, par hasard, découvert récemment un billet de Michael Sheldon qui présente un script greasemonkey qui permet de s'affranchir totalement de flash pour lire une video sur youtube. En pratique, ce script remplace l'applet flash par un appel direct à la video qui peut alors être lu par un plugin de lecture multimedia (mplayerplug-in, ou vlc plugin par exemple) ; le résultat est alors totalement transparent.

Comme je n'utilise pas firefox mais seamonkey, je ne peux pas installer l'extension greasemonkey, j'ai donc modifié légèrement le script (il est sous licence GNU GPL) pour pouvoir l'utiliser comme bookmarklet. C'est à dire que j'ai créé un marque page qui contient comme adresse le contenu du script. Il me suffit alors de l'éxécuter sur une page youtube pour voir apparaitre la video :).

Le script modifié est disponible à l'adresse suivante :http://mjules.free.fr/divers/flvplayer.user.bookmarklet.js ; pour l'utiliser, copier son contenu dans le champ adresse d'un marque-page. Ensuite, il suffit de charger le marque-page sur une page youtube.

MAJ :Il semblerait que ce script ne fonctionne qu'avec gecko 1.8.1, c'est à dire Firefox 2 ou seamonkey 1.1beta

Miam (encore)

et un gâteau marbré, un !

Un gateau marbré

dimanche 19 novembre 2006

Et pendant ce temps là, le lapin....

...récupère de sa difficile escapade dans le salon.

Lapin endormi

Lapin endormi bis

Miam

Gâteau à la noix de coco et à la confiture de framboise

jeudi 16 novembre 2006

Comment marche X11/xorg et toute la clique ? 6° partie (et fin)

Plan général

  1. Les bases, le rendu 2D
  2. Le rendu 3D direct
  3. Le rendu 3D indirect
  4. Composite et XGL
  5. AIGLX
  6. Suite et fin (ou comment ne plus avoir d'idée pour le titre)

Préambule

Cet article est basé sur ce que je comprend du fonctionnement de X11. Il est loin d'être parfait et comporte peut-être des erreurs. si c'est le cas, j'apprécierais qu'on me les signale pour pouvoir améliorer le tout.

Qu'est ce qu'il reste à dire ?

Plus grand chose en fait, nous avons vu à peu près les grands principes de fonctionnement de X11 et des dernières technologies développées autour. Il y a seulement 1 an, beaucoup de monde râlait et pestait contre Xorg et sa gestion antédiluvienne des fenêtres par rapport à des OS comme MacOS X ou même XP.
1 an plus tard, on peut dire sans trop de complexe que La couche graphique X11 n'a pas grand chose a envier aux derniers développements des OS propriétaires. Il reste encore beaucoup à faire et à inventer pour amener le plein potentiel de ces technologies mais elles sont là et elles marchent.

Il reste néanmoins quelques problèmes à régler :

  • Pour rester sur le fonctionnement de X11, à l'exception d'XGL qui ne remporte pas les suffrages, beaucoup de choses sont encore gérées par la partie 2D de la carte graphique avec les limitations que l'on connait. Cela devrait néanmoins se régler grace à des initiatives comme Glucose qui permet d'accélérer le rendu grâce à la partie 3D (il utilise une partie du code de XGL pour modifier le serveur X existant).
  • Plus généralement, et c'est je pense, le plus gros problème avec les nouvelles technologies de X11, tout cela repose sur l'utilisation intensive de la partie 3D. Ce qui confine de fait à l'utilisation des pilotes propriétaires d'ATI ou de NVIDIA avec tout les problèmes que cela pose (obsolescence obligatoire du matériel, failles de sécurité masquées, impossibilité d'évolution tant que le pilote n'est pas mis à jour au bon vouloir de la société, etc). Néanmoins, des solutions existent ou se rapprochent même si elles ne sont pas parfaites : les pilotes Intel (2D et 3D, puces intégrées) sont libres et même si les cartes ne sont pas des foudres de guerres, elles sont suffisantes pour beaucoup ; les cartes ATI jusqu'au x800 disposent d'un pilote 3D libre qui marche pas trop mal et ne devraient plus trop tarder à être disponible par défaut (les cartes < radeon 9200 en on déjà un); l'espoir pour les cartes nvidia repose sur le projet Nouveau qui avance relativement bien ; à plus long terme, c'est le projet Opengraphics qui vise à développer une carte graphique complètement ouverte.

Le mot de la fin

J'espère que ça vous (les lecteurs) a plus, que ça vous a un peu éclairé et que je n'ai pas dit trop de bêtises (je ne pense pas mais sait on jamais).
Quant à moi, j'ai bien aimé Inkscape, c'est vraiment sympa à utiliser, surtout la dernière version que je trouve nettement plus ergonomique que la précédente.

Bibliographie

mercredi 15 novembre 2006

Comment marche X11/xorg et toute la clique ? 5° partie, AIGLX

Plan général

  1. Les bases, le rendu 2D
  2. Le rendu 3D direct
  3. Le rendu 3D indirect
  4. Composite et XGL
  5. AIGLX
  6. Suite et fin (ou comment ne plus avoir d'idée pour le titre)

Préambule

Cet article est basé sur ce que je comprend du fonctionnement de X11. Il est loin d'être parfait et comporte peut-être des erreurs. si c'est le cas, j'apprécierais qu'on me les signale pour pouvoir améliorer le tout.

AIGLX

dans l'article précédent, nous avons aperçu le fonctionnement de XGL qui est l'une des solutions proposée pour accélerer le rendu en utilisant la partie 3D de la carte graphique. A peu près au même moment, RedHat a développé une autre solution pour cette problématique, AIGLX, acronyme qui signifie Accélérated Indirect GL X.

Schéma de principe :
Principe de AIGLX

AIGLX est basé sur un principe complètement différent de XGL. Plutôt que de réinventer un serveur X, les développeurs ont préféré modifier celui existant pour lui permettre d'accélérer certaines opérations particulières à l'aide de la partie 3D de la carte graphique.
Ici, le gestionnaire de composition va s'adresser à la libGL en lui envoyant une instruction spéciale : GL_EXT_texture_from_pixmap. La libGL va alors transmettre cette instruction et ce qui va avec au serveur X par le biais de l'extension GLX. Le serveur X, quant à lui, va relayer le tout vers la partie 3D de la carte graphique.
On est donc bien en face d'un rendu 3D indirect qui passe par le serveur X, la différence avec le rendu indirect "classique" c'est que maintenant, celui-ci est accéléré par la carte 3D et profite de sa puissance.
La gestion de la composition implique certes des aller-retours entre le gestionnaire de composition et le serveur X mais quelques optimisations du protocole permettent d'éviter que cela surcharge trop le système : les manipulations avant le rendu sont effectuées par le serveur X sur ordre du gestionnaire de composition, ainsi, seule les informations de manipulations sont à transmettre, les données ne sont transmises qu'une seule foi.

Les avantages de ce modèles, c'est que le rendu direct est toujours possible pour les applications qui le demandent. L'autre avantage, c'est que d'après la théorie, la transparence réseau est toujours là y compris lorsque l'on utilise la composition.
Le défaut, c'est que contrairement à XGL, ici seule certaines opérations sont accélérées, le reste des opérations continue à utiliser le schéma 2D classique.

Au contraire de XGL, le développement d'AIGLX s'est fait de manière totalement ouverte et AIGLX a été inclu dans Xorg 7.1.

Bibliographie

dimanche 12 novembre 2006

Comment marche X11/xorg et toute la clique ? 4° partie, composite et XGL

Plan général

  1. Les bases, le rendu 2D
  2. Le rendu 3D direct
  3. Le rendu 3D indirect
  4. Composite et XGL
  5. AIGLX
  6. Suite et fin (ou comment ne plus avoir d'idée pour le titre)

Préambule

Cet article est basé sur ce que je comprend du fonctionnement de X11. Il est loin d'être parfait et comporte peut-être des erreurs. si c'est le cas, j'apprécierais qu'on me les signale pour pouvoir améliorer le tout.

Où en est t'on ?

Dans les billets précédents, on a vu comment Xorg se débrouillait pour afficher des choses sur l'écran en 2D et en 3D. Ça fonctionne très bien mais ce mode de fonctionnement comporte des limitations qui rendent difficile l'évolution de l'affichage. En particulier, avec ce mode de fonctionnement, il est très complexe de faire des choses comme des ombres derrières les fenêtres, ou tout bonnement des fenêtres transparentes. C'est pourquoi le protocole X11 a été encore étendu avec l'extension Composite. Celle-ci va permettre de modifier le comportement du rendu. En effet, au lieu que le serveur envoie directement les informations sur chaque fenêtre à la carte graphique ; celles-ci sont envoyées dans un espace de la mémoire où elles peuvent être ensuite manipulées par un gestionnaire de composition avant que le résultat soit rendu par la carte graphique.
L'énorme avantage, c'est qu'avec cette méthode, il devient très simple de faire, par exemple, une fenêtre réellement transparente. Le gestionnaire de composition possédant toutes les infos pour celà (il sait exactement quelle fenêtre est au dessus de quelle autres etc).
L'énorme inconvénient, c'est que ça nécessite beaucoup de puissance graphique et donc, pour pouvoir faire ça sans que l'affichage rame atrocement, il faut de l'accélération par la carte graphique.

Cette accélération est disponible avec la partie 2D de la carte via les extensions XAA ou plus récemment EXA. Néanmoins, l'accélération 2D pose quelques problèmes qui rendent son utilisation peu intéressante :

  • XAA était difficile à implémenter dans les pilotes et n'accélérait que peu de fonctions 2D
  • EXA est plus simple à implémenter mais il ne l'est toujours pas dans un grand nombre de pilotes
  • la partie 2D des cartes graphiques se réduit de plus en plus au profit de la partie 3D
  • la partie 2D des cartes graphiques est nettement moins performante que la partie 3D

Bref, la conclusion s'imposait d'elle même, il fallait trouver un moyen d'accélerer tout ça en utilisant la partie 3D de la carte graphique.
2 solutions ont alors été développées qui répondent à cette problématique : XGL par Novell/Suse et AIGLX par Fedora/RedHat.

XGL

XGL a été la première solution présentée par Novell au tout début de l'année 2006. Son développement a fait l'objet de quelques critiques, en effet, il a principalement été réalisé de manière non-ouverte. Les craintes quand a la fermeture du projet ou du code ont depuis été levées.

Le schéma de principe :

Fonctionnement de XGL

Le schéma ci-dessus présente XGL dans son implémentation Xglx, c'est à dire utilisant 2 serveurs X. Il existe une autre implémentation, Xegl, encore à l'état de projet, qui se baserait sur les EGL, des bibliothèques openGL censées parler directement à la carte graphique.

Comme on le voit sur le schéma, Xgl va donc jouer un double rôle, il est simultanément un client X pour les applications et un serveur X utilisant openGL. Au démarrage, Il va dialoguer avec libGL (et donc le serveur X sous-jacent) et obtenir un rendu 3D direct. Ainsi, toutes les opérations du serveur XGL sont susceptibles d'être accélérées par la carte graphique et en particulier par sa partie 3D. En particulier, toutes les opérations d'un gestionnaire de composition (compiz, beryl par exemple) seront accélérées du moment que celui-ci utilise openGL.

Cela fonctionne très bien mais à quand même quelques défauts relativement gênant : comme pour tout rendu direct, on dit au revoir à la transparence réseau ; la nécessité d'avoir 2 serveurs X tournant simultanément augmente la mémoire occupée ainsi que la complexité du système ; enfin, et c'est le plus gênant, il est impossible pour les autres applications 3D (les jeux par exemple) d'obtenir un rendu direct vers la carte graphique. Elles n'obtiennent au mieux qu'un rendu indirect par le serveur XGL, ce qui pose un problème de performance.

Les 2 derniers problèmes sont liés à l'implémentation Xglx et devrait disparaitre avec Xegl. Mais cette dernière n'est encore que théorique.

Bibliographie

vendredi 10 novembre 2006

Comment marche X11/xorg et toute la clique ? 3° partie, le rendu 3D indirect

Plan général

  1. Les bases, le rendu 2D
  2. Le rendu 3D direct
  3. Le rendu 3D indirect
  4. Composite et XGL
  5. AIGLX
  6. Suite et fin (ou comment ne plus avoir d'idée pour le titre)

Préambule

Cet article est basé sur ce que je comprend du fonctionnement de X11. Il est loin d'être parfait et comporte peut-être des erreurs. si c'est le cas, j'apprécierais qu'on me les signale pour pouvoir améliorer le tout.

Résumé des épisodes précédents

Dans les articles précédents, nous avons parlé du rendu 2D et d'une des méthode de rendu 3D, le rendu direct qui nécessite un accès direct à la carte graphique. Aujourd'hui nous allons parler de l'autre méthode utilisée pour le rendu 3D, le rendu indirect.

Le rendu 3D indirect

Le schéma qui va bien :

Rendu 3D/OpenGL indirect

Comme on peut le voir, le rendu 3D indirect est un peu différent. Il fait intervenir une extension du protocole X11 appelée GLX, c'est elle qui va permettre au serveur X de gérer les commandes openGL.

Reprenons donc le cheminement. Une application 3D programmée en openGL va donc s'adresser à la libGL, celle-ci pour une raison ou un autre ne peut pas ouvrir un accès direct à la carte et elle va alors s'adresser à l'extension GLX au niveau du client X. Les commandes openGL vont alors transiter comme les commandes classiques 2D entre le client et le serveur X. Enfin, le serveur X va réaliser l'opération de rendu et envoyer les infos à la carte graphique pour qu'elle affiche ce qu'il faut à l'écran.

On voit donc ici que le rendu final est effectué au niveau du serveur X et pas directement par la carte graphique, d'où le nom de rendu indirect.
Ceci va avoir quelques avantages : on retrouve la transparence réseau, les commandes passant par le chemin classique de X. L'autre avantage, c'est qu'on ne dépend que de la libGL (qui est intriquée avec GLX) pour interpréter les commandes openGL et non d'une implémentation matérielle d'openGL dans la carte graphique.
A l'opposée, le rendu indirect a un énorme défaut, c'est qu'avec les serveurs X inférieurs à Xorg 7.1, le rendu est intégralement effectué au niveau du serveur par le processeur central de la machine. Et le CPU, il aime pas du tout ça parce qu'il n'est pas fait pour. Résultat, c'est effroyablement lent (facilement d'un facteur 20 par rapport au rendu direct).

Bibliographie

  • Mesa 3D, le projet qui fournit la bibliothèque libGL
  • GLX (page de wikipedia)

jeudi 9 novembre 2006

Comment marche X11/xorg et toute la clique ? 2° partie, le rendu 3D direct

Plan général

  1. Les bases, le rendu 2D
  2. Le rendu 3D direct
  3. Le rendu 3D indirect
  4. Composite et XGL
  5. AIGLX
  6. Suite et fin (ou comment ne plus avoir d'idée pour le titre)

Préambule

Cet article est basé sur ce que je comprend du fonctionnement de X11. Il est loin d'être parfait et comporte peut-être des erreurs. si c'est le cas, j'apprécierais qu'on me les signale pour pouvoir améliorer le tout.

De quoi on va causer

Nous avons vu dans la première partie, l'architecture client/serveur du système X11. Evidemment, il n'a pas échappé à votre oeil de lynx que le schéma ne mentionnait que la 2D et ne faisait qu'une vague référence à la 3D. C'est tout à fait normal, au moment où X11 a été inventé (vers 1984), la 3D n'était pas particulièrement développé et l'architecture n'en a pas forcément tenu compte d'emblée.
Heureusement pour nous, cette lacune a été comblée depuis et X peut maintenant gérer la 3D. C'est ce que nous allons voir maintenant (tout au moins une partie).

Comment ça marche donc ?

Avec X, la gestion de la 3D au niveau des applications repose sur une API (interface de programmation) assez connue nommée OpenGL. Cette API offre aux application un ensemble de fonctions qui permettent de dessiner en 3D (Direct3D fait de même sous MS-Windows).
Sous GNU/linux (et les autres), c'est le projet Mesa3D qui implémente OpenGL et founis la bibliothèque qui va bien aux applications, la libGL.

A ce stade, on est encore au niveau de l'application et pas encore de la carte graphique, et le problème, c'est que celle-ci ne comprend pas directement l'OpenGL. On va donc avoir forcément une transformation quelque part. C'est ce qu'on appellera le rendu 3D et suivant la méthode il pourra être direct ou indirect.

Le rendu direct

Rendu 3D/OpenGL direct

Il est représenté dans le schéma ci-dessus. Dans le rendu direct, l'application 3D va s'adresser à la libGL pour son affichage. La libGL va alors communiquer directement avec le serveur X, demander et obtenir l'autorisation d'accéder à la partie 3D de la carte graphique.
Une fois le droit d'accès donné, la libGL va convertir les commandes OpenGL en commandes compréhensibles par la carte et les envoyer directement à la carte 3D. Ces 2 dernières étapes mettent en jeu le pilote 3D lequel est fortement intriqué avec la libGL.

Dit comme ça, on voit pas trop l'intérêt ; mais en réalité, celà signifie que le traitement 3D est directement effectué par la carte (d'où son nom ;-) ), aucun passage par le serveur X et donc nettement moins de traitement au niveau du CPU. On a donc une accélération 3D complète de l'application.

L'inconvénient majeur de cette méthode, c'est qu'il faut dire au revoir à la transparence réseau, en effet, l'application accède à la libGL au niveau client X et cette dernière accède directement au matériel ; il est donc impossible d'avoir de l'affichage déporté avec cette méthode.

Pendant ce temps là, les applis non-3D continuent bien sur à utiliser le rendu 2D classique que nous avons déjà vu.

mercredi 8 novembre 2006

Comment marche X11/xorg et toute la clique ? Généralités, protocole X11, rendu 2D

Plan général

  1. Les bases, le rendu 2D
  2. Le rendu 3D direct
  3. Le rendu 3D indirect
  4. Composite et XGL
  5. AIGLX
  6. Suite et fin (ou comment ne plus avoir d'idée pour le titre)

Il y a des moments où on a pas envie de faire des trucs constructifs (i.e. mes sujets pour l'exam de chimie par exemple). hier, Je me suis donc mis à tester inkscape. Et histoire de pas faire ça dans le vide et de me clarifier certains points, j'ai donc décidé de schématiser le fonctionnement de X11.

Préambule

Cet article est basé sur ce que je comprend du fonctionnement de X11. Il est loin d'être parfait et comporte peut-être des erreurs. si c'est le cas, j'apprécierais qu'on me les signale pour pouvoir améliorer le tout.

Le début de la fin

Pour ceux qui ne le sauraient pas, X11 est le protocole qui est implémenté par xorg, le truc qui s'occupe de faire un bel affichage graphique sous les différents *nix modernes (linux, et BSD surtout). Son fonctionnement est un peu compliqué et je vais donc vous le détailler dans un schéma réalisé avec inkscape (cliquer pour la version plus grande, le svg est dispos sur demande).

X11 en rendu 2D

Explication de texte

X11 fonctionne sur le modèle client/serveur, on a donc d'un côté le client X (la xlib ou plus récemment, xcb) qui parle aux applications et au serveur X et d'un autre côté, le serveur X qui parle au matériel et au client X.

Suivons un peu le cheminement de tout ça. Imaginons que je vienne d'ouvrir openoffice writer et que je veuille taper du texte. La fenêtre d'openoffice est affichée sur mon écran par ma carte graphique. Celle-ci a reçu les infos du serveur X qui s'est adressé à sa partie 2D par le biais du pilote DDX.
J'appuie sur une touche (A). Le serveur X reçoit l'information comme quoi j'ai tapé sur la touche A, il va alors transmettre cette information au client X, celui-ci va alors la faire parvenir à openoffice.
Openoffice réagit et commande alors l'affichage de la lettre A sur la partie qu'elle destine à l'écriture. Elle envoie alors cette information au client X qui la transmet au serveur X. Le serveur X reçoit la commande et la converti en une commande compréhensible par la carte graphique grâce à son pilote.
La carte graphique trace la lettre et l'affiche sur l'écran.

C'est vrai que dit comme ça, ça peut sembler un peu usine à gaz. Mais il y a quand même un énorme avantage dans cette organisation ; le client et le serveur n'ont absolument pas besoin d'être sur la même machine ! En conséquence, il devient très simple d'avoir une machine puissante qui ne comporte que le client X (le serveur d'application) et une ou plusieurs machine peu puissante qui ne possède que le serveur X (le client d'application) et utilisent les applications sur le serveur d'applications. On fait ainsi simplement de l'affichage déporté.

Ce qui manque dans l'explication de texte

Bien sur, ce que j'ai écris au dessus n'est qu'un aperçu du fonctionnement du protocole X11, j'ai passé sous silence les toolkits graphiques qui sont des bibliothèques d'objets qui évitent à chaque application de réinventer la roue pour faire du graphique, j'ai également omis de parler des polices et du rendu côté serveur de celles-ci ainsi que de plein d'autres trucs (les window manager par ex).
Si je suis pas trop feignasse, je devrais d'ici peu palier un peu ces manques en vous parlant du rendu direct, du rendu indirect, de XGL et si j'arrive à comprendre correctement de AIGLX et de Glucose. Avec bien sur quelques schémas à la clé ; parce que inkscape, c'est bien :D

Un peu de biblio

mercredi 1 novembre 2006

Marre du spam

Les trackback étant encore spammés malgré spamplemousse et la fermeture des trackbacks/commentaires après quelques mois, j'ai décidé d'en rajouter une couche avec le plugin spamtimeout pour dotclear.

Ce plugin permet de générer une url pseudo-aléatoire qui périme après 20 minutes, un spammeur doit donc aller vite si il veut faire un trackback. On verra ce que ça donne avec le temps.

lundi 23 octobre 2006

Content

Il y a des fois des choses auxquelles on ne s'attendait pas et qui font plaisir. C'est comme ça qu'un forumeur d'hardware.fr, Dj Yell m'a envoyé une feuille de style très sympa pour le site web (voir colonne à droite). Comme elle est bien plus belle que la daube que j'avais pondu, je l'ai mis en style par défaut. Si vous préfériez l'ancien style, il est toujours dispos dans les feuilles de styles alternatives (menu affichage de votre navigateur si ses initiales ne sont pas IE).

Résultat, je suis tout content.

- page 3 de 7 -