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
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.
Sortie de la version 2005-12-28 du Hachoir
Hachoir est un outil écrit en Python permettant de visualiser le contenu d'un fichier binaire de manière intelligible. Son objectif n'est pas de reconnaître tous les formats, mais d'avoir une boîte à outils très complète pour supporter rapidement de nouveaux formats. De nombreux formats sont déjà supportés de base (musique mp3, partition ext2, vidéo avi, exécutable elf, archive rpm, image xcf, etc.).
Les données ne sont réellement lues que lorsqu'elles sont accédées. Ceci permet de traiter de très gros fichiers sans problème (ex: partition de 9 Go contenant plusieurs centaine de milliers d'objets), et le chargement d'un fichier prend rarement plus d'une seconde.
Le projet est encore jeune, mais n'hésitez pas à le tester et m'envoyer vos retours d'expérience.
Les données ne sont réellement lues que lorsqu'elles sont accédées. Ceci permet de traiter de très gros fichiers sans problème (ex: partition de 9 Go contenant plusieurs centaine de milliers d'objets), et le chargement d'un fichier prend rarement plus d'une seconde.
Le projet est encore jeune, mais n'hésitez pas à le tester et m'envoyer vos retours d'expérience.
Comment des vendeurs essaient de breveter les solutions à des failles de sécurité qui leur sont fournies
Une série de failles ont été découvertes dans le protocole ICMP (et non pas ses implémentations) par l'argentin Fernando Gont, professeur, administrateur système et chercheur en réseau. Il a tenté dès le début, en août 2004, d'en informer tous les auteurs d'implémentation du protocole ICMP avant de publier les failles sur Internet. Il a commencé par écrire un document qu'il a envoyé à l'IETF. Il a également contacté CERT/CC et NISCC, les auteurs de systèmes d'exploitation libre (OpenBSD, NetBSD, FreeBSD, Linux, etc.), ainsi que Microsoft, Cisco et Sun Microsystems. Il a décrit chaque faille pour leur permettre de corriger les implémentations avant de publier ses découvertes.
Fernando a alors commencé à recevoir des e-mails de Cisco demandant des informations techniques précises. Deux mois plus tard, il a reçu un e-mail d'un avocat de Cisco disant que Cisco allait breveter son travail ! L'avocat n'a pas voulu donner plus de détails. Encore deux mois plus tard, il y a eu un échange de mails entre Cisco, Linus Torvalds et David Miller où Fernando a été mis en copie. David a fait remarquer que Linus Torvalds utilisait déjà depuis plusieurs années le « sequence tracking » dans Linux et par là même, le brevet ne pouvait être déposé pour cause d'antériorité du travail de Linus.
Cisco a alors accusé Fernando de coopérer avec les terroristes alors qu'en même temps Cisco voulait breveter son travail. Plus tard Cisco a aussi demandé à Fernando qu'il travaille pour CERT/CC.
Aujourd'hui Cisco a abandonné son idée de brevet, mais ça laisse quand même réfléchir sur le fait de publier anonymement ses failles ou non !
Fernando a alors commencé à recevoir des e-mails de Cisco demandant des informations techniques précises. Deux mois plus tard, il a reçu un e-mail d'un avocat de Cisco disant que Cisco allait breveter son travail ! L'avocat n'a pas voulu donner plus de détails. Encore deux mois plus tard, il y a eu un échange de mails entre Cisco, Linus Torvalds et David Miller où Fernando a été mis en copie. David a fait remarquer que Linus Torvalds utilisait déjà depuis plusieurs années le « sequence tracking » dans Linux et par là même, le brevet ne pouvait être déposé pour cause d'antériorité du travail de Linus.
Cisco a alors accusé Fernando de coopérer avec les terroristes alors qu'en même temps Cisco voulait breveter son travail. Plus tard Cisco a aussi demandé à Fernando qu'il travaille pour CERT/CC.
Aujourd'hui Cisco a abandonné son idée de brevet, mais ça laisse quand même réfléchir sur le fait de publier anonymement ses failles ou non !
Nouvelle avancée du port du Hurd sur L4
Pour rappel, GNU/Hurd est en train de subir une grosse mutation : l'ancien micronoyau GNU Mach va être à terme remplacé par L4, un micro-noyau plus moderne. L4 relègue notamment toute la gestion de la mémoire virtuelle (partiellement fournie par Mach) et les pilotes de périphériques à l'espace utilisateur : il faut donc les implémenter. Neal H. Walfield avait déjà réalisé le premier pas en janvier, en écrivant un serveur, `physmem', permettant l'allocation (et la déallocation), le partage et le mappage de mémoire physique.
Depuis, il n'a pas chômé car il vient de rajouter la pièce manquante à `physmem' : la copie logique de mémoire physique (copy-on-write et mémoire partagée). Comme ce sont les applications elles-mêmes qui s'occupent de la gestion de leur mémoire virtuelle (décider quelles parties vont en 'swap' et où), il a également amélioré la bibliothèque de gestion de mémoire par défaut, `libhurd-mm' pour permettre aux applications de spécifier de façon simple quelles parties doivent aller dans tel forme de swap (partitions de swap, réseau, mémoire externe dédiée, ...).
Ces avancées concluent le travail initial sur la gestion de la mémoire. Cela permet d'envisager le développement de pilotes de périphériques, qui utilisent intensivement la copie de mémoire : dans un premier temps, un pilote IDE d'un autre système pourrait être porté pour permettre d'avoir un système de fichiers, et dans un second il faudra se concentrer sur Fabrica, le framework de pilotes de périphérique.
Par ailleurs, la version K9 des CDs de Debian GNU/Hurd vient de sortir. Au programme, principalement des paquets mis à jour et quelques bugs embêtants corrigés (une résolution de noms défectueuse dans certains cas, par exemple). Debian GNU/Hurd remplit maintenant 9 CDs, mais seules les quatre premières ISOs sont proposées au téléchargement. Une image DVD sera disponible prochainement.
Toujours sur le front Debian GNU/Hurd, Michael Banck a réussi à faire fonctionner Gnome presque entièrement, témoignant du grand travail mené par l'équipe de Debian GNU/Hurd ces derniers temps.
NdM : Merci à Sebastien Binet d'avoir également proposé une dépêche sur le sujet.
Depuis, il n'a pas chômé car il vient de rajouter la pièce manquante à `physmem' : la copie logique de mémoire physique (copy-on-write et mémoire partagée). Comme ce sont les applications elles-mêmes qui s'occupent de la gestion de leur mémoire virtuelle (décider quelles parties vont en 'swap' et où), il a également amélioré la bibliothèque de gestion de mémoire par défaut, `libhurd-mm' pour permettre aux applications de spécifier de façon simple quelles parties doivent aller dans tel forme de swap (partitions de swap, réseau, mémoire externe dédiée, ...).
Ces avancées concluent le travail initial sur la gestion de la mémoire. Cela permet d'envisager le développement de pilotes de périphériques, qui utilisent intensivement la copie de mémoire : dans un premier temps, un pilote IDE d'un autre système pourrait être porté pour permettre d'avoir un système de fichiers, et dans un second il faudra se concentrer sur Fabrica, le framework de pilotes de périphérique.
Par ailleurs, la version K9 des CDs de Debian GNU/Hurd vient de sortir. Au programme, principalement des paquets mis à jour et quelques bugs embêtants corrigés (une résolution de noms défectueuse dans certains cas, par exemple). Debian GNU/Hurd remplit maintenant 9 CDs, mais seules les quatre premières ISOs sont proposées au téléchargement. Une image DVD sera disponible prochainement.
Toujours sur le front Debian GNU/Hurd, Michael Banck a réussi à faire fonctionner Gnome presque entièrement, témoignant du grand travail mené par l'équipe de Debian GNU/Hurd ces derniers temps.
NdM : Merci à Sebastien Binet d'avoir également proposé une dépêche sur le sujet.
2LE publie son framework Castor web builder
Castor est un framework écrit en PHP et distribué sous licence GNU GPL. Il est à l'initiative de la société 2LE. C'est une plateforme qui s'est enrichie au fur et à mesure des projets web menés par l'entreprise.
Il a pour but de faciliter le développement d'application web complexe. Cet outil offre des composants de base tels que la gestion de l'arborescence de page, la gestion des utilisateurs, l'édition de page HTML grâce à un éditeur WYSIWYG, etc.
L'écriture de nouveau module est très facile : c'est une classe qui a deux fonctions (process et out). Un module de gestion de table SQL permet de créer en quelques clics une interface d'administration avec des écrans liste, détail et formulaire. Allez faire un tour dans la documentation pour les détails ;-)
Il a pour but de faciliter le développement d'application web complexe. Cet outil offre des composants de base tels que la gestion de l'arborescence de page, la gestion des utilisateurs, l'édition de page HTML grâce à un éditeur WYSIWYG, etc.
L'écriture de nouveau module est très facile : c'est une classe qui a deux fonctions (process et out). Un module de gestion de table SQL permet de créer en quelques clics une interface d'administration avec des écrans liste, détail et formulaire. Allez faire un tour dans la documentation pour les détails ;-)
Gna hotspot #3 : Interview des auteurs de Wormux
Régulièrement, GNA!, hébergeur de projets libres, choisit un projet libre et mature, et en interviewe les principaux développeurs pour mieux connaître les auteurs de logiciel libre. La troisième édition (GNA! Hotspot #3) est consacrée au jeu Wormux.
La discussion tourne autour d'OpenGL, des pilotes de carte vidéo sous Linux, du jeu en réseau, de la question de la légalité, du portage sous Windows, de la licence du jeu, des développements futurs, et de bien d'autres choses.
Profitez-en pour (re)lire les GNA! Hotspot #1 et #2 consacrés respectivement au projet Adeos et au projet Test-Autobuild.
La discussion tourne autour d'OpenGL, des pilotes de carte vidéo sous Linux, du jeu en réseau, de la question de la légalité, du portage sous Windows, de la licence du jeu, des développements futurs, et de bien d'autres choses.
Profitez-en pour (re)lire les GNA! Hotspot #1 et #2 consacrés respectivement au projet Adeos et au projet Test-Autobuild.
L'équipe de Wormux est fière de vous annoncer la version 0.5.0 !
Il aura fallu attendre 5 mois de développement pour obtenir une nouvelle version stable de Wormux (clone libre du non moins célèbre jeu Worms). L'évolution majeure est le passage à ClanLib 0.7 (bibliothèque de jeu) qui offre un accès à l'accélération matérielle. Le jeu est vraiment plus fluide. D'ailleurs de manière générale, le jeu est beaucoup plus jouable car nous avons réglé tous les paramètres aux petits oignons.
Au passage le jeu gagne la grenade à fragmentation, pas moins de 10 nouveaux terrains, trois nouvelles équipes, etc. Il faut également noter un effort de traduction (du code et des données) en anglais pour rendre le jeu accessible au plus grand nombre. Le jeu est d'ailleurs disponible dans pas moins de 11 langues ! On peut encore noter l'ajout de confettis en arrière plan pour montrer la vitesse du vent et le support de "thèmes sonores".
Il ne reste plus qu'à préparer de jolis paquets Debian, Mandrake, Gentoo, etc. Si le projet vous intéresse, n'hésitez pas à nous contacter pour nous aider à traduire le jeu, créer un nouveau thème sonore (à vos micros !), créer une nouvelle équipe, créer un nouveau terrain, etc.
Au passage le jeu gagne la grenade à fragmentation, pas moins de 10 nouveaux terrains, trois nouvelles équipes, etc. Il faut également noter un effort de traduction (du code et des données) en anglais pour rendre le jeu accessible au plus grand nombre. Le jeu est d'ailleurs disponible dans pas moins de 11 langues ! On peut encore noter l'ajout de confettis en arrière plan pour montrer la vitesse du vent et le support de "thèmes sonores".
Il ne reste plus qu'à préparer de jolis paquets Debian, Mandrake, Gentoo, etc. Si le projet vous intéresse, n'hésitez pas à nous contacter pour nous aider à traduire le jeu, créer un nouveau thème sonore (à vos micros !), créer une nouvelle équipe, créer un nouveau terrain, etc.
Wormux 0.4
Après un bon mois de développement, j'ai la fierté de vous annoncer la version 0.4 de Wormux ! Pour rappel, c'est un clone du non moins célèbre jeu Worms. Nous avons pris quelques libertés par rapport au jeu original, comme par exemple la possibilité de changer l'apparence des joueurs, ou encore la possibilité de configurer un maximum d'options par une série de fichiers XML.
La version 0.4 apporte de nombreuses nouveautés qui rendent le jeu vraiment plus sympa :
- Ajout de nombreux effets sonores et d'une musique d'ambiance.
- Le jeu est disponible en français, anglais, espagnol, catalan et allemand.
- Cinq nouveaux terrains (cubism2, cubism3, pirates, mer, grenouilles).
- Six nouveaux avatars (alien, escargot, hyppocampe, poule, poulpe, tortue).
- Trois nouvelles armes (mine, bazooka automatique, grenade).
- Les classiques corrections de bugs.
N'oubliez pas de nous signaler les bugs (voir le projet chez GNA!.org), et de donner votre avis sur le jeu !
La version 0.4 apporte de nombreuses nouveautés qui rendent le jeu vraiment plus sympa :
- Ajout de nombreux effets sonores et d'une musique d'ambiance.
- Le jeu est disponible en français, anglais, espagnol, catalan et allemand.
- Cinq nouveaux terrains (cubism2, cubism3, pirates, mer, grenouilles).
- Six nouveaux avatars (alien, escargot, hyppocampe, poule, poulpe, tortue).
- Trois nouvelles armes (mine, bazooka automatique, grenade).
- Les classiques corrections de bugs.
N'oubliez pas de nous signaler les bugs (voir le projet chez GNA!.org), et de donner votre avis sur le jeu !