En me basant sur des projets libres de décodage de fichier Flash (ffmpeg, flashticle, swfdec, gnash), j'ai écrit des parseurs Hachoir pour les formats SWF (animation) et FLV (vidéo). Le format FLV est moyennement intéressant : on peut y voir les codecs (audio/vidéo) utilisés ou les méta-données (AMF). J'ai commencé à écrire un parseur AMF, mais ça m'intéresse pas trop en fait, et le parseur est incomplet. J'ai modifié hachoir-metadata pour qu'il supporte le format FLV.
Par contre, les fichiers (…)
Hachoir version 0.6
Un an après la naissance du projet, Hachoir sort dans sa version 0.6. C'est une suite d'outils développés dans le langage Python ayant pour but de manipuler facilement un fichier binaire tel qu'un arbre de champs typés. Le projet a été éclaté en plusieurs composants dont les principaux sont : hachoir (c½ur du système), hachoir-parser (quarantaine de parseur des formats les plus courants), hachoir-metadata (extraction de méta-données) et hachoir-urwid (visualisation de fichier binaire).
Hachoir supporte maintenant l'édition de fichier : il est possible de modifier la valeur d'un champ, de supprimer un champ ou encore d'en insérer. hachoir-strip est un programme d'exemple exploitant cette possibilité : il va supprimer tous les champs qu'il juge inutile, c'est-à-dire les méta-données, les octets de bourrage, index pour les vidéos, etc. Il peut être utilisé pour rendre un fichier anonyme ou en réduire légèrement sa taille.
Autre amélioration notable : la possibilité d'ouvrir des fichiers corrompus et/ou tronqués. Dans la mesure du possible, le parseur va tenter de corriger l'erreur puis de continuer son travail. Cette version apporte également la possibilité d'utiliser Hachoir sur un pipe, ce qui permet de parser un flux de données au fur et à mesure (par ex. : un flux réseau).
Pour stocker le texte, Hachoir utilise maintenant uniquement Unicode, ce qui évite d'avoir à se soucier du jeu de caractères. Cette version fonctionne également sur toutes les implémentations de Python (CPython, Stackless, pypy, IronPython, Jython), même si des retouches mineures sont parfois nécessaires. Pour finir, une interface graphique basée sur wxPython est en cours de développement.
Hachoir supporte maintenant l'édition de fichier : il est possible de modifier la valeur d'un champ, de supprimer un champ ou encore d'en insérer. hachoir-strip est un programme d'exemple exploitant cette possibilité : il va supprimer tous les champs qu'il juge inutile, c'est-à-dire les méta-données, les octets de bourrage, index pour les vidéos, etc. Il peut être utilisé pour rendre un fichier anonyme ou en réduire légèrement sa taille.
Autre amélioration notable : la possibilité d'ouvrir des fichiers corrompus et/ou tronqués. Dans la mesure du possible, le parseur va tenter de corriger l'erreur puis de continuer son travail. Cette version apporte également la possibilité d'utiliser Hachoir sur un pipe, ce qui permet de parser un flux de données au fur et à mesure (par ex. : un flux réseau).
Pour stocker le texte, Hachoir utilise maintenant uniquement Unicode, ce qui évite d'avoir à se soucier du jeu de caractères. Cette version fonctionne également sur toutes les implémentations de Python (CPython, Stackless, pypy, IronPython, Jython), même si des retouches mineures sont parfois nécessaires. Pour finir, une interface graphique basée sur wxPython est en cours de développement.
Rejouez chez vous les plus grandes batailles de la guerre du libre
Avec Wengo, parlez à vos amis, avec Wormux, massacrez-les !
La nouvelle version de Wormux est encore plus amusante grâce à des armes toujours plus délirantes : putois, sniper, seringue, enclume, bombe anti-émeute et d'autres vous attendent. Vos tireurs d'élites, s'ils tombent, ne manqueront pas d'entraîner avec eux quelques ennemis, ce qui permet de jolies réactions en chaîne. Autres nouveautés : saut périlleux arrière, baril explosif, terrain de l'île de Pâques, refonte des menus, etc.
Dans un moment de démence, yekcim et lodesi se sont laissés aller à démembrer littéralement les avatars ! Un avatar est maintenant défini par un squelette et des animations en fonction de la position des membres. Les avatars les plus anciens tirent leur révérence, et OpenOffice, SPIP et BSD font leur apparition pour des parties encore plus endiablées.
Cette version préliminaire (0.8alpha1) de Wormux ne demande qu'à être testée en réseau. Pour y jouer, il faut saisir l'adresse IP de celui qui héberge la partie. Vous pouvez aller sur le salon IRC #wormux-fr du serveur Freenode (irc.freenode.net) pour proposer ou rejoindre une partie :-) Le jeu en solo reste, quand à lui, tout à fait jouable.
Nous avons de besoin de toi, oui toi là-bas ! Bruitage, traduction, graphisme, programmation, rapport de bug (oui on adore ça !), tests, critiques, (...) : n'hésitez pas à nous contacter, vous nous intéressez !
La nouvelle version de Wormux est encore plus amusante grâce à des armes toujours plus délirantes : putois, sniper, seringue, enclume, bombe anti-émeute et d'autres vous attendent. Vos tireurs d'élites, s'ils tombent, ne manqueront pas d'entraîner avec eux quelques ennemis, ce qui permet de jolies réactions en chaîne. Autres nouveautés : saut périlleux arrière, baril explosif, terrain de l'île de Pâques, refonte des menus, etc.
Dans un moment de démence, yekcim et lodesi se sont laissés aller à démembrer littéralement les avatars ! Un avatar est maintenant défini par un squelette et des animations en fonction de la position des membres. Les avatars les plus anciens tirent leur révérence, et OpenOffice, SPIP et BSD font leur apparition pour des parties encore plus endiablées.
Cette version préliminaire (0.8alpha1) de Wormux ne demande qu'à être testée en réseau. Pour y jouer, il faut saisir l'adresse IP de celui qui héberge la partie. Vous pouvez aller sur le salon IRC #wormux-fr du serveur Freenode (irc.freenode.net) pour proposer ou rejoindre une partie :-) Le jeu en solo reste, quand à lui, tout à fait jouable.
Nous avons de besoin de toi, oui toi là-bas ! Bruitage, traduction, graphisme, programmation, rapport de bug (oui on adore ça !), tests, critiques, (...) : n'hésitez pas à nous contacter, vous nous intéressez !
Journal Rejouez chez vous les plus grandes batailles de la guerre du libre
Avec Wengo, parlez à vos amis, avec Wormux, massacrez-les ! La nouvelle version de Wormux est encore plus amusante grâce à des armes toujours plus délirantes : putois, sniper, seringue, enclume, bombe anti-émeute et d'autres vous attendent. Vos tireurs d'élites, s'ils tombent, ne manqueront pas d'entraîner avec eux quelques ennemis, ce qui permet de jolies réactions en chaîne. Autres nouveautés : saut périlleux arrière, baril explosif, terrain de l'île de paques, refonte des menus, etc.
Dans un moment de démence, (…)
Dans un moment de démence, (…)
Faille de sécurité dans le pilote propriétaire Nvidia
Le 2 décembre 2004, Nate Nielsen rapporte un plantage de Xorg lorsque Firefox affiche une très longue URL dans la barre d'adresse. Quatre mois plus tard un bug similaire est détecté dans Eclipse. Le bug concerne l'affichage de très longues lignes de texte avec le pilote propriétaire Nvidia. La solution est d'utiliser le pilote libre nv qui n'a pas ce bug.
Face à l'absence de réaction de Nvidia, un exploit exploitant ce dépassement de tampon offrant un shell en root est publié sur Rapid7. Il est possible d'exploiter la faille à distance à l'aide d'un client X distant. La faille a en fait été corrigée dans la version 9625 du pilote Linux sortie le 21 septembre 2006, mais la série 9xxx des pilotes Linux est encore en phase béta.
Cette faille relance bien sûr le débat pour ou contre les pilotes propriétaires (BLOBs). Pour le cas de Nvidia, il est difficile de trancher car refuser le pilote officiel implique de se priver d'accélération matérielle. Plutôt que de brasser l'air avec un débat sans fin, il serait plus judicieux de contribuer au projet Nouveau qui vise justement à écrire un pilote libre offrant l'accélération matérielle. D'ailleurs, l'écriture d'un pilote a été entamée il y a peu mais il est encore loin d'être utilisable.
NdM : Merci également à Pascal Terjan d'avoir proposé une dépêche sur le même sujet.
Mise à jour : la version 9626 du pilote (stable) corrige la faille.
Face à l'absence de réaction de Nvidia, un exploit exploitant ce dépassement de tampon offrant un shell en root est publié sur Rapid7. Il est possible d'exploiter la faille à distance à l'aide d'un client X distant. La faille a en fait été corrigée dans la version 9625 du pilote Linux sortie le 21 septembre 2006, mais la série 9xxx des pilotes Linux est encore en phase béta.
Cette faille relance bien sûr le débat pour ou contre les pilotes propriétaires (BLOBs). Pour le cas de Nvidia, il est difficile de trancher car refuser le pilote officiel implique de se priver d'accélération matérielle. Plutôt que de brasser l'air avec un débat sans fin, il serait plus judicieux de contribuer au projet Nouveau qui vise justement à écrire un pilote libre offrant l'accélération matérielle. D'ailleurs, l'écriture d'un pilote a été entamée il y a peu mais il est encore loin d'être utilisable.
NdM : Merci également à Pascal Terjan d'avoir proposé une dépêche sur le même sujet.
Mise à jour : la version 9626 du pilote (stable) corrige la faille.
Journal Les hommes sont des fourmis (Men are ants)
Men are ants, littéralement les hommes sont des fourmis, est un jeu dans le style de Battle for Wesnoth ou Command & Conquer. Plusieurs camps s'affrontent sur une carte, le but étant d'éradiquer les camps adverses. Vous disposez d'une armée (fantassins, chars, navires de guerre), d'une défense (tour laser, mine, ...) mais vous pouvez également faire des alliances avec d'autres camps.
Le jeu prend d'ailleurs tout son intérêt dans le jeu en réseau qui est déjà tout à fait (…)
Le jeu prend d'ailleurs tout son intérêt dans le jeu en réseau qui est déjà tout à fait (…)
Journal Dernière avancées du Hachoir (il peut écrire !!!)
Le mois d'août a été brûlant... non, pas niveau soleil hein :-) ... mais plutôt au niveau du développement du Hachoir (pas de soleil => obligé de geeker, dur la vie).
Changements en résumé
* support de l'édition de fichier, encore en développement : voir http://hachoir.org/wiki/HachoirEditor
* supporte les pipes en entrée (cat fichier | hachoir-urwid)
* passage de toutes les chaînes de texte en Unicode, utilisation de gettext et traduction en français
* automatisation des mesures de performance
* (…)
Changements en résumé
* support de l'édition de fichier, encore en développement : voir http://hachoir.org/wiki/HachoirEditor
* supporte les pipes en entrée (cat fichier | hachoir-urwid)
* passage de toutes les chaînes de texte en Unicode, utilisation de gettext et traduction en français
* automatisation des mesures de performance
* (…)
Journal MultiDeskOS et Jayce dans Wikipédia
Comme l'avait proposé Pierre Tramal dans un commentaire, j'ai crée les articles sur MultiDeskOS et Jayce The Crazychild sur Wikipédia :
http://fr.wikipedia.org/wiki/MultiDeskOS
http://fr.wikipedia.org/wiki/Jayce
Je vous invite à compléter ces articles car je pense qu'ils ont largement leur place dans Wikipédia.
Voir également le journal de ploum :
http://linuxfr.org/~ploum/22382.html
(où vous trouverez le commentaire de Pierre Tramal)
Haypo
http://fr.wikipedia.org/wiki/MultiDeskOS
http://fr.wikipedia.org/wiki/Jayce
Je vous invite à compléter ces articles car je pense qu'ils ont largement leur place dans Wikipédia.
Voir également le journal de ploum :
http://linuxfr.org/~ploum/22382.html
(où vous trouverez le commentaire de Pierre Tramal)
Haypo
Hachoir, le couteau suisse qui découpe vos fichiers binaires
Hachoir est un projet permettant de lire toutes les informations contenues dans un fichier binaire. Effectivement, contrairement aux fichiers textes qui se lisent facilement : qui aujourd'hui est capable d'analyser le contenu d'une image PNG à l'aide d'un éditeur hexadécimal ?
La version 0.5, qui vient de sortir, supporte la majorité des formats de fichier « courants ». Cela va de l'image PNG à la vidéo AVI en passant par les archives bzip2 ou encore le système de fichier ext2. Par contre, tous les parseurs ne sont pas encore complets : les zones inconnues sont marquées « raw ».
Le parseur a un fonctionnement totalement paresseux : les informations ne sont lues que lorsqu'elles sont demandées, et les champs ne sont crées que lorsque c'est nécessaire. Il est dès lors possible de lire des fichiers complexes et/ou de grande taille (ex: disque dur de 10 Go).
Hachoir est avant tout une bibliothèque écrite en Python, mais plusieurs scripts l'utilisant sont disponibles. hachoir-metadata permet d'extraire les méta-données : durée d'une musique, taille d'une image, commentaires, etc. hachoir-urwid est une interface interactive permettant d'explorer le contenu d'un fichier. hachoir-grep permet de rechercher une chaîne de caractère dans un fichier, ou simplement lister toutes les chaînes d'un fichier.
NdM : Hachoir est disponible sous licence GNU/GPL
La version 0.5, qui vient de sortir, supporte la majorité des formats de fichier « courants ». Cela va de l'image PNG à la vidéo AVI en passant par les archives bzip2 ou encore le système de fichier ext2. Par contre, tous les parseurs ne sont pas encore complets : les zones inconnues sont marquées « raw ».
Le parseur a un fonctionnement totalement paresseux : les informations ne sont lues que lorsqu'elles sont demandées, et les champs ne sont crées que lorsque c'est nécessaire. Il est dès lors possible de lire des fichiers complexes et/ou de grande taille (ex: disque dur de 10 Go).
Hachoir est avant tout une bibliothèque écrite en Python, mais plusieurs scripts l'utilisant sont disponibles. hachoir-metadata permet d'extraire les méta-données : durée d'une musique, taille d'une image, commentaires, etc. hachoir-urwid est une interface interactive permettant d'explorer le contenu d'un fichier. hachoir-grep permet de rechercher une chaîne de caractère dans un fichier, ou simplement lister toutes les chaînes d'un fichier.
NdM : Hachoir est disponible sous licence GNU/GPL
Journal Hachoir 0.4
Le parseur universel de fichier binaire, Hachoir, continue sa route. L'arrivé d'un nouveau membre dans l'équipe de développement s'accompagne d'une nouvelle interface utilisateur (en texte, mais en couleur !) qui exploite enfin son comportement paresseux : seul les premiers champs sont lus (3 par 3). Ceci permet d'ouvrir une vidéo de 700 Mo ou un partition de 10 Go sans broncher.
De plus, Hachoir est maintenant capable de rattraper les erreurs des parseurs bogués ou des fichiers corrompus. Il (…)
De plus, Hachoir est maintenant capable de rattraper les erreurs des parseurs bogués ou des fichiers corrompus. Il (…)
Journal Progrès dans l'équipe de traduction du jeu Wormux
Salut,
Je voulais parler un peu de traduction de logiciels, et en particulier du jeu Wormux. Je trouve ça super les traductions :-) Au début, le jeu était en français. Mais à la première annonce sur un site anglophone (happypenguin pour ne pas le citer), des gens ont criés "bouuuuh, le jeu n'est pas en anglais". C'est idiot car on choisit la langue de base qu'on veut ! na ! Mais bon, finalement on a pris l'anglais, pour que des (…)
Je voulais parler un peu de traduction de logiciels, et en particulier du jeu Wormux. Je trouve ça super les traductions :-) Au début, le jeu était en français. Mais à la première annonce sur un site anglophone (happypenguin pour ne pas le citer), des gens ont criés "bouuuuh, le jeu n'est pas en anglais". C'est idiot car on choisit la langue de base qu'on veut ! na ! Mais bon, finalement on a pris l'anglais, pour que des (…)
Journal Hachoir 0.3 et les méta-données
Après un bon mois de développement, voici la sortie de la version 0.3 de Hachoir. Pour rappel, c'est une bibliothèque accompagnée d'un programme d'exemple qui permet de visualiser le contenu d'un fichier binaire sous forme d'une arborescence (à la manière d'un document XML : clé=valeur).
La version 0.3 fait suite à la version 0.2 qui est réécriture complète du projet. L'API est plus homogène et plus simple à utiliser. Cette nouvelle version supporte les formats de fichiers les plus courants (…)
La version 0.3 fait suite à la version 0.2 qui est réécriture complète du projet. L'API est plus homogène et plus simple à utiliser. Cette nouvelle version supporte les formats de fichiers les plus courants (…)
Journal Hachoir 0.2 en préparation
Rappel : Hachoir est une boîte à outil Python permettant de manipuler des fichiers binaires. Il permet par exemple de les visualiser d'un manière très fine ou d'en extraire facilement des informations.
Après avoir bien ciblé les défauts du 1er prototype (version 0.1), j'ai décidé de recoder Hachoir depuis zéro. Les principaux changements sont :
* Séparation du projet en une bibliothèque (libhachoir) et plusieurs interfaces utilisateurs (curses et sortie texte brut)
* Un parseur est maintenant 100% "fainéant" : (…)
Après avoir bien ciblé les défauts du 1er prototype (version 0.1), j'ai décidé de recoder Hachoir depuis zéro. Les principaux changements sont :
* Séparation du projet en une bibliothèque (libhachoir) et plusieurs interfaces utilisateurs (curses et sortie texte brut)
* Un parseur est maintenant 100% "fainéant" : (…)
Journal Nouvelles du programme Hachoir
Ce journal est un appel à contribution
J'ai pas mal bossé sur une réécriture from scratch(version 0.2) qui corrige les défauts de la première ébauche (v0.1) : meilleure API (plus simple, plus claire), plus rapide (temps de chargement), adresse et taille en bit (et non plus en octet), support de l'écriture (ajout/suppression/modification de champs), séparation nette entre la bibliothèque et l'interface utilisateur, etc. La nouvelle version est encore en gros travaux bien qu'elle fonctionne déjà bien en mode visualisation (…)
J'ai pas mal bossé sur une réécriture from scratch(version 0.2) qui corrige les défauts de la première ébauche (v0.1) : meilleure API (plus simple, plus claire), plus rapide (temps de chargement), adresse et taille en bit (et non plus en octet), support de l'écriture (ajout/suppression/modification de champs), séparation nette entre la bibliothèque et l'interface utilisateur, etc. La nouvelle version est encore en gros travaux bien qu'elle fonctionne déjà bien en mode visualisation (…)
Wormux 0.7 beta3
Suite à de nombreux problèmes avec la bibliothèque ClanLib, le projet Wormux a migré à SDL. La migration aura pris plusieurs mois, mais le résultat en vaut la chandelle. Un nouveau moteur graphique a été développé permettant de jouer avec 50 images/seconde sur la plupart des configurations.
Comme peu de personnes ont pu jouer à la version 0.6 (à cause de ClanLib), je vais vous décrire les évolutions depuis Wormux 0.5. L'utilisation d'un nouveau moteur physique permet enfin d'avoir une corde ninja et un jet pack (entre autres) ! Pour rester du côté des armes, un gnou explosif et un marteau-piqueur sont également de la partie. La qualité graphique du jeu est encore montée d'un échelon.
L'autre chantier était de rendre le jeu accessible à tous. C'est chose faite car il fonctionne désormais sur les PowerPC et des paquets pour de nombreuses distributions Linux sont disponibles (notons également la présence de FreeBSD). Grâce à l'utilisation de l'Unicode (UTF-8) et des polices de caractères TTF, Wormux est capable d'afficher n'importe quel caractère. Il est dès lors possible de jouer en russe, ainsi que que de nombreuses autres langues.
Cette version est encore une version beta, n'hésitez donc pas à rapporter tous les bugs que vous rencontrez ! Utilisez l'outil de rapport de bug de GNA donné en lien. Enfin, nous avons un nouveau site web qui est à jour et beaucoup plus dynamique.
Comme peu de personnes ont pu jouer à la version 0.6 (à cause de ClanLib), je vais vous décrire les évolutions depuis Wormux 0.5. L'utilisation d'un nouveau moteur physique permet enfin d'avoir une corde ninja et un jet pack (entre autres) ! Pour rester du côté des armes, un gnou explosif et un marteau-piqueur sont également de la partie. La qualité graphique du jeu est encore montée d'un échelon.
L'autre chantier était de rendre le jeu accessible à tous. C'est chose faite car il fonctionne désormais sur les PowerPC et des paquets pour de nombreuses distributions Linux sont disponibles (notons également la présence de FreeBSD). Grâce à l'utilisation de l'Unicode (UTF-8) et des polices de caractères TTF, Wormux est capable d'afficher n'importe quel caractère. Il est dès lors possible de jouer en russe, ainsi que que de nombreuses autres langues.
Cette version est encore une version beta, n'hésitez donc pas à rapporter tous les bugs que vous rencontrez ! Utilisez l'outil de rapport de bug de GNA donné en lien. Enfin, nous avons un nouveau site web qui est à jour et beaucoup plus dynamique.