dimanche 11 mars 2007
Bunnyday, le bain de soleil
Par Mjules le dimanche 11 mars 2007, 13:00 - El Lapino
Aller au contenu | Aller au menu | Aller à la recherche
dimanche 11 mars 2007
Par Mjules le dimanche 11 mars 2007, 13:00 - El Lapino
jeudi 15 février 2007
Par Mjules le jeudi 15 février 2007, 19:24 - Ma vie mon oeuvre
Parce que pour une fois, j'ai envie de parler de ma vie :
lundi 29 janvier 2007
Par Mjules le lundi 29 janvier 2007, 21:35 - Ces trucs que j'aime
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
Par Mjules le mardi 2 janvier 2007, 22:41 - Ma vie mon oeuvre
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 :
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
Par Mjules le samedi 30 décembre 2006, 15:50 - Ces trucs qui m'énervent
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
Par Mjules le mercredi 27 décembre 2006, 20:06 - Ces trucs qui m'énervent
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
Par Mjules le vendredi 15 décembre 2006, 22:37 - Ces trucs qui m'énervent
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
Par Mjules le dimanche 3 décembre 2006, 15:01 - General
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é.
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
Par Mjules le dimanche 26 novembre 2006, 16:31 - Ma vie mon oeuvre
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
Par Mjules le dimanche 26 novembre 2006, 16:24 - Ces trucs que j'aime
et un gâteau marbré, un !
dimanche 19 novembre 2006
Par Mjules le dimanche 19 novembre 2006, 14:47 - El Lapino
...récupère de sa difficile escapade dans le salon.
jeudi 16 novembre 2006
Par Mjules le jeudi 16 novembre 2006, 21:08 - General
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.
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 :
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.
mercredi 15 novembre 2006
Par Mjules le mercredi 15 novembre 2006, 19:30 - General
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.
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.
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.
dimanche 12 novembre 2006
Par Mjules le dimanche 12 novembre 2006, 17:27 - General
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.
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 :
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 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 :
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.
vendredi 10 novembre 2006
Par Mjules le vendredi 10 novembre 2006, 17:43 - General
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.
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 schéma qui va bien :
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).
jeudi 9 novembre 2006
Par Mjules le jeudi 9 novembre 2006, 21:00 - General
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.
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).
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.
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
Par Mjules le mercredi 8 novembre 2006, 19:38 - General
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.
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.
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 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é.
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
mercredi 1 novembre 2006
Par Mjules le mercredi 1 novembre 2006, 12:26 - Ces trucs qui m'énervent
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
Par Mjules le lundi 23 octobre 2006, 22:24 - Ces trucs que j'aime
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.
« billets précédents - page 3 de 7 - billets suivants »