Dernières entrées de forum(s) RSS [Toutes] :


Dernières entrées dans le suivi [Toutes] :


[ 1 2 3 :: Suivant ]

Publication de Python 3.0rc2

Posté le 07 novembre 2008
13
Nouveautés de Python 3 : http://docs.python.org/dev/3.0/whatsnew/3.0.html
ChangeLog complet : http://www.python.org/download/releases/3.0/NEWS.txt
Documentation : http://docs.python.org/dev/3.0/

Par rapport à 3.0rc1, il s'agit essentiellement de corrections de bugs. D'ailleurs, vu la quantité de bugs critiques (qui n'étaient -forcément- pas prévus), Python 3.0 a pris beaucoup de retard sur son planning. L'équipe Python préfère corriger tous les bugs plutôt que de sortir une version boguée qui dégoûterait les gens de Python 3.

Par rapport Python 2.5, Python 3.0 inclut tous les changements de Python 2.6. Piqûre de rappel :
http://linuxfr.org/2008/10/02/24556.html
http://docs.python.org/whatsnew/2.6.html

La version 3.0rc1 est sortie le 17 septembre et la version finale est prévue le 3 décembre.

Selon moi, le changement majeur de Python3 est le passage intégral à Unicode : par défaut les fichiers sont ouverts en mode texte en unicode, un script python est en utf-8 (unicode), on peut utiliser des identifiants en unicode (libre à vous d'écrire en japonais, français ou anglais, après ça dépend avec qui vous souhaitez travailler), et utilisation d'unicode dans la grande majorité des modules (la bibliothèque standard).

> Lire le journal (17 commentaires, moyenne: 2,8).

500 portables XO (projets OLPC) distribués sur l'île de Niué

Posté le 11 septembre 2008
9
Le déploiement des portables XO du projets OLPC (One Laptop Per Child, un portable par enfant) est de plus en plus actif avec la multiplication de projets pilotes. Fin août, c'est la petit nation de [[Niué]] (1500 habitants) qui a décidé d'offrir gratuitement 500 portables à ses enfants. Un autre projet, Waveplace, s'est lancé dans l'[[espace caraïbe]]. Depuis mars dernier, c'est le [[pérou]] qui a acheté des portables XO. Le déploiement a également début au Pakistan avec des projets pilotes lancés depuis avril dernier.

Site du projet OLPC : laptop.org et son wiki (riche en informations).

À noter : le programme « Give on, get on » (donnez en un, recevez en un, G1G1) va être relancé dans deux mois (novembre 2008) via le site de vente en ligne amazon.com. L'accord avec amazon.com permettra l'envoi de machins hors des USA (la 1ère édition était limitée aux USA).

Pour rappel, les portables XO sont basés sur des solutions open source telles que le noyau Linux et le langage de programmation Python. Comme le portable est destiné aux enfants, son clavier et son écran sont plus petits que les portables « courants ».

Côté matériel, il y a plusieurs innovations comme la possibilité de recharger le portable manuellement (solution qui semble disparaître au profit de bornes de rechargement (utilisant de grosses batteries et l'énergie solaire ???)) ou la consommation exceptionnelle d'un watt en mode livre électronique (le processeur central s'éteint, l'écran passe en mode noir et blanc). L'écran est également d'un type particulier qui est beaucoup plus lumineux (plus lisible en plein soleil, surtout en mode noir et blanc). Le portable résiste bien à la chaleur, à la poussière et au sable et surtout aux chocs (il n'y a pas de disque dur, mais une mémoire flash par exemple).

Les logiciels du XO exploitent au mieux les réseaux de type mesh que peuvent créer les portables entre eux en utilisant la carte wifi interne. Il y a un menu pour choisir la porté d'un document ou d'une application : locale (la machine), réseau d'amis ou globale (jusqu'à Internet si Internet est dispo ?).

La sécurité n'est pas en reste avec la technologie Bitfrost (mais là je connais pas trop, alors je ne commenterai pas).

> Lire le journal (19 commentaires, moyenne: 2,7).

Sortie de Fusil le fuzzer en version 1.0beta3

Posté le 03 septembre 2008
18
Fusil est à la fois une boîte à outils permettant d'écrire son propre fuzzer et une suite de fuzzers : Apache, ClamAV, Firefox, gettext, gstreamer, ImageMagick, libpoppler, printf(), Mplayer, ogg123, PHP et Python. Il permet d'écrire rapidement un fuzzer et s'occupe de gérer une campagne de fuzzing (création de fichiers, nettoyage en quittant, classement des erreurs, etc.). Un fuzzer est un outil d'assurance qualité permettant de générer des bugs dans vos programmes. Ceci permet d'améliorer la robustesse de vos applications face aux situations rares ou inattendues (échec d'une allocation mémoire, fichier corrompu, ...) et aux attaques d'un pirate. Fusil a déjà servi à remonter des dizaines de bugs dans divers projets (notamment ceux pour lesquels il existe un fuzzer).

Avec la version 1.0, Fusil peut maintenant être utilisé sans risque. Il utilise un utilisateur dédié pour créer les processus fils et limite leurs ressources (mémoire, nombre total de processus, etc.). L'ajout d'un débogueur, python-ptrace, aide à la classification des erreurs (lecture/écriture invalide en mémoire, division par zéro, dépassement de la pile, ...) en renommant le dossier de travail du fuzzer.

Cette version étant une version béta, elle doit être testée au maximum sur différentes architectures et systèmes d'exploitations. N'hésitez pas à remonter des bugs !

Le développement de la version 1.0 (actuellement en phase béta) aura nécessité environ un an de développement. Le projet est distribué sous licence GPLv2, écrit en Python et packagé pour Debian, Mandriva et OpenEmbedded. Bien que le développement soit essentiellement réalisé sous Linux, Fusil fonctionne bien sous FreeBSD et devrait fonctionner sur n'importe quel système POSIX (UNIX et BSD en particulier).



Pour l'installation, vous aurez besoin de python-ptrace et d'un utilisateur système « fusil » (et d'un groupe « fusil »). Un fuzzer s'exécute simplement en tapant son nom : « fusil-gettext » par exemple. Chaque fuzzer a ses propres options, n'hésitez pas à essayer l'option « --help ».

Pour la documentation, consultez le dossier doc/. Des exemples simples sont disponibles dans le dossier examples/.

python-ptrace ne fonctionne correctement que sous Linux (i386, x86_64, PPC32) et FreeBSD (i386). Si vous avez des problèmes avec une autre architecture/système d'exploitation, vous pouvez le désactiver avec le fichier de configuration de Fusil (~/.config/fusil.conf) :

[debugger]
use_debugger = False

Consultez doc/configuration.rst pour connaître les autres options de Fusil.

Au passage, si vous ne connaissez pas python-ptrace, sachez qu'il est écrit intégralement en Python et inclut les programmes strace.py et gdb.py (clones de strace et gdb). strace.py est très proche de strace, mais possède plus d'options et fonctionne sous FreeBSD sans émulation Linux (dossier /proc). Au contraire, gdb.py est très limité, il ne gère ni les threads ni les symboles par exemple.

> Lire le journal (12 commentaires, moyenne: 2,8).

Conférences Pycon FR 2008 en ligne

Posté le 01 juin 2008
0
Les journées Python francophones 2008, Pycon FR, se sont déroulées les 17 et 18 mai 2008 à la Cité des Sciences et de l'Industrie à Paris. Pour ceux qui n'ont pas pu se rendre sur place ou bien n'ont pas pu assister à toutes les conférences, les vidéos sont maintenant disponibles au format Ogg/Theora :
http://dl.afpy.org/pycon-fr-08/

Supports (diaporamas) des conférences :
http://fr.pycon.org/presentations_2008/

Liste des conférences :
http://fr.pycon.org/programme

Enfin, n'hésitez pas à répondre à notre questionnaire pour nous aider à améliorer les prochaines rencontres ! Questionnaire sur Pycon FR 2008 :
http://www.surveymonkey.com/s.aspx?sm=BR3T8HaM03ER9kJSmK8Grw(...)

> Lire le journal (10 commentaires, moyenne: 3,7).

Sortie de la bibliothèque Hasard version 0.2

Posté le 31 mai 2008
0
La faille de sécurité OpenSSL+Debian m'a motivé à lancer un projet que j'avais en tête depuis quelques temps : écrire une bibliothèque haut niveau pour gérer les nombres pseudo-aléatoires.
http://haypo.hachoir.org/trac/wiki/hasard

Ma motivation est que l'API C, srand() et rand(), est difficile à utiliser et peu de gens l'utilisent correctement. L'idée est donc de créer des fonctions qui empêchent les erreurs courantes : utilisation d'une faille entropie pour initialiser le générateur (typiquement time(NULL), voir getpid() et getppid()), utilisation de rand()%nombre pour générer un nombre dans l'intervalle [0; nombre-1].

J'ai donc écrit des fonctions pour générer des booleans, des entiers dans un intervalle, des nombres flottants et des octets aléatoires. La bibliothèque hasard supporte de nombreux générateurs (Mersenne Twister, ISAAC, Park-Miller, RANDU, ...) pour générer des nombres, et divers générateurs pour initialiser la graine (/dev/urandom et /dev/random pour l'instant). Par défaut c'est Mersenne Twister qui est utilisé avec /dev/urandom.

Pour faciliter l'intégration dans des biblitohèques et projets existants, la licence choisie est la licence BSD. La bibliothèque est écrite en C et un binding Python est disponible (tests/hasard.py). Le code est encore en développement et mériterait d'être relu. J'ai écrit divers tests pour mesurer l'entropie, tester les algorithmes, lancer le programme ENT (calcule divers statistiques sur les nombres), etc.

Pour la suite, il faudrait améliorer la portabilité (pour l'instant, hasard vise surtout Linux) en implémentant d'autres générateurs matériels : code pour Windows, EGD, instruction Intel "XSTORE RNG", etc. Des tests doivent être fait sur processeur 64 bits et/ou big endian. Voir le fichier README pour les autres idées de développement.

> Lire le journal (39 commentaires, moyenne: 3,9).

Antispam pour blog et forum

Posté le 22 avril 2008
0
Las du spam sur mon blog et sur le forum de ma société, j'ai écrit un antispam. Il utilise diverses règles générant une note globale pour le message : analyse des URLs, de mots clés, de l'adresse de courriel, de la longueur du message, etc. Pour commencer, une note négative est attribuée (ex: -5). Ensuite, chaque règle rajoute ou soustrait des points à la note globale.

Exemple de spam :
Par : swingers ads
Site Web : http://sexy.ads6x.com

Adult personal ads from swingers and swappers, couples, singles, bi,
http://sexy.ads6x.com >swingers ads and wives amateur couples Swingers Club

Et la sortie du programme antispam :
./antispam.py --verbose -c haypocalc.conf sexy
Match word (+2.0): sexy
Match word (+1.0): adult
Match word (+2.0): sexy
Match word (+1.0): amateur
Match URL (+1.5): http://sexy.ads6x.com
Match URL (+1.5): http://sexy.ads6x.com
Match email domain (+1.0): @gmail.com
sexy score: +7.00 ***SPAM***

L'antispam est écrit en Python et distribué sous licence GPL :
http://haypo.hachoir.org/trac/wiki/antispam

L'algorithme est expliqué sur la page web du projet en anglais. J'ai écrit un article en français qui présente l'algorithme, ses qualités et défauts :
http://www.haypocalc.com/blog/index.php/2008/03/10/137-un-no(...)

Pour l'intégration à Dotclear, punbb, etc. : c'est faisable, mais ces logiciels sont difficiles à patcher. Je ne distribue donc pas de patch automatique. Je peux tenter d'expliquer comment l'intégrer pour les gens intéressés. Pour les autres, regardez le dossier plugin. Niveau dépendance, il faut pouvoir exécuter Python 2.4.

> Lire le journal (49 commentaires, moyenne: 3,1).

Comment comparer les licences de logiciel ?

Posté le 08 avril 2008
0
Au jour d'aujourd'hui, je n'ai lu attentivement que la traduction non officielle (en français) de la licence GNU GPLv2. Or il y a la version 3 qui est sortie et je ne sais pas vraiment ce qui change (hum, il y a sûrement un document qui l'explique quelque part). Plus généralement, je me demande s'il existe un site qui compare n'importe quelle licence avec n'importe quelle autre licence. Je cherche à savoir si on peut inclure le code source d'un logiciel dans un autre ou au moins utiliser une bibliothèque dans un autre logiciel. Comme je sens qu'un tel site n'existe pas, j'ai commencé à me gratter la tête pour savoir comment on pourrait faire ça.

J'ai pensé d'abord qu'une licence est une liste d'interdiction : tout ce qui n'est pas interdit est autorisé. On me dit que c'est exactement l'inverse, mince. J'ai alors commenté le texte de quelques licences (X11, BSD modifiée, GPLv2, WTFPL) :
http://www.haypocalc.com/wiki/Licence_BSD_modifiée
http://www.haypocalc.com/wiki/Licence_X11
http://www.haypocalc.com/wiki/Licence_GPL_version_2
http://www.haypocalc.com/wiki/Licence_WTFPL

J'ai écrit un petit programme qui décrit une licence sous forme de couples : (action, sujet, condition) ; exemple : (Distribuer, le Logiciel, Joindre la licence et Absence de garantie) pour X11. Enfin, j'ai écrit un petit algo bancal pour vérifier si une licence est inclue dans une autre. Résultat : la licence BSD modifiée n'est pas incluse dans la GNU GPLv2 car il manque la cause (Distribuer, le code source, Ne pas utiliser le nom des auteurs pour la promotion du logiciel). Pourtant, il me semble qu'un code source sous licence BSD peut être inclus dans un code source sous licence GPLv2. Ou bien ceci implique de mettre les fichiers modifiés en question sous double licence ?

Le programme Python qui compare les licences (lisez surtout la fin qui définit les licences) :
http://haypo.hachoir.org/trac/browser/license/license.py

Est-ce ma tentative de formaliser les licences de logiciel est vaine ? Je me suis trompé quelque part ? J'attend vos commentaires (constructifs) !

> Lire le journal (32 commentaires, moyenne: 2,7).

Nouvelles du noyau Linux : SMACK, PSS, mais pas de kgdb

Posté le 11 février 2008
0
Lifera vient de me notifier la publication de court article :
http://www.heise-online.co.uk/security/Kernel-Log-Linux-2-6-(...)

Il présente quelques nouveautés du prochain noyau Linux (2.6.25). Je suis impatient de tester SMACK (genre de SELinux simplifié) et PSS : une nouvelle façon de calculer la mémoire consommée par les processus (beaucoup plus réaliste que les infos données actuellement).

KGDB ne sera pas inclus dans Linux 2.6.25 et Linus s'explique.

--

Pas de KGDB, mais Vegard Nossum a écrit un outil appelé « kmemcheck » qui sert à vérifier les accès mémoire (à la manière de Valgrind) :
http://kerneltrap.org/Linux/Debugging_With_kmemcheck

> Lire le journal (11 commentaires, moyenne: 2,4).

Fusillez vos applications (Fusil le fuzzer)

Posté le 27 novembre 2007
0
Fusil est un framework de fuzzing écrit en Python et distribué sous licence GNU GPLv2. Pour ceux qui ne connaissent pas la technique du fuzzing, c'est une façon simple simple, rapide et efficace de trouver des bugs dans des logiciels. Certains sont mineurs (dénis de service), d'autres bugs peuvent se révéler être des failles de sécurité (prise de contrôle du flux d'exécution).

Fusil permet d'écrire facilement des « projects de fuzzing » avec un ensemble de fonctions et la puissance du Python : créer un processus, compiler un programme C, surveiller un processus, surveiller syslog, etc.

Projects disponibles : gettext, clamav, libc_printf, php, linux_ioctl, mplayer, identify, etc.

Site web : http://fusil.hachoir.org/trac



Exemple de session poppler :

$ ./run_fusil.sh -p project/poppler.py ~/document.pdf
[application] Fusil version 0.5 -- GNU GPL v2
[application] http://fusil.hachoir.org/
[application] Load project project/poppler.py
[session 1][project] Start session
(...)
[session 994][watch:process:pdftotext] Process killed by signal SIGSEGV
[session 994][project] End of session: score=75.0%, duration=0.378 second
[session 994][session_dir] Success: keep directory '/home/toady/local/scm/svn/fusil/project-0008/session-0005'
[project] Project done: : 5 session in 0.9 second (181.6 ms per session), total 0.9 second
[application] Exit Fusil

La dernière session (succès) est sauvée dans le dossier project-0003/session-0994/. On peut reproduire le plantage avec :

$ evince document.pdf
Error (0): PDF file is damaged - attempting to reconstruct xref table...
Error (44780): Dictionary key must be a name object
(...)
Segmentation fault



Fusil utilise de petits « agents » qui échangent des messages pour déclancher des actions. Ex : MangleFile injecte des erreurs dans un fichier valide (document PDF, vidéo AVI, image JPEG, etc.). Ensuite Fusil utilise le nom du fichier généré pour lancer un processus.

Chaque session du projet a un score compris entre -100% (l'application a rejeté les données) et 100% (succès). Plusieurs sondes existent pour calculer le score de la session :

+100% pour un processus tué avec un signal (WatchProcess)
+100% pour le motif « segmentation fault » dans la sortie stdout (FileWatch)
-100%pour une session trop rapide (TimeWatch)
etc.

Pour éviter de planter l'ordinateur durant ces bidouilles, Fusil limite la mémoire et la priorité des processus, copie seulement certaines variables d'environnement, crée un dossier de travail temporaire, etc.

---

J'ai écrit un journal et non pas une dépêche car Fusil est encore en phase de test. Toute remontée de bug est la bienvenue.

> Lire le journal (29 commentaires, moyenne: 2,6).

Nouvelle version de hachoir-metadata tolérante aux erreurs

Posté le 15 avril 2007
0
Hachoir-metadata est un logiciel permettant de lire les métadonnées d'un document : auteur d'une photo, codec d'une vidéo, durée d'une musique, etc. Il supporte énormément de formats, exemples (liste loin d'être complète) : WMA, Real audio/media, AVI, FLV, WMV, MKV, OGM, 7zip, RAR, ACE, EXE, TTF, Torrent, DOC, XLS, PPT, ...
http://hachoir.org/wiki/hachoir-metadata

La nouvelle version (0.10) a été réécrite en partie pour être tolérante aux erreurs, ce qui signifie qu'en cas d'erreur le programme ne s'arrête pas mais affiche simplement une erreur. Ceci permet d'extraire les métadonnées de fichiers tronqués ou erronés mais également de tolérer des erreurs dans Hachoir (coeur/parseur fichier).

Détails des changements

Des greffons pour Konqueror et Nautilus font leur apparition. Ils permettent de lire les métadonnées d'un fichier depuis le menu contextuel (clic droit).

De nouveaux formats sont supportés : documents Microsoft Office (Word, Excel, Powerpoint), New-style Executable (programme NE, Windows 16-bit), X11 Portable Compiled Font (.pcf) et Microsoft Archive (.mar).

Les données sont maintenant fortement typées : un numéro de piste est obligatoirement un entier, la date de création doit être une date, etc. Les chaînes de caractères sont maintenant obligatoirement en Unicode. Le filtre automatique des valeurs erronées (durée négative, chaîne vide, etc.) est un plus restrictif.

Enfin, une nouvelle option « --quality » permet de choisir la qualité des informations extraites ou plus exactement le temps alloué à l'extracteur (quality=0 : extraction rapide, quality=1 : extraction la plus complète mais surtout la plus lente). Cette option détermine par exemple le nombre de fichiers traités dans une archive ou la qualité de l'estimation du débit et de la durée d'un MP3 à débit varible (VBR).

Un programme de fuzzing a été écrit spécialement pour l'occasion. Il a permis de corriger énormément de bugs dans les différents composants d'Hachoir.

Nouvelle version des autres composants d'Hachoir

hachoir-core sort en version 0.9 (c'est essentiellement des corrections de bugs). hachoir-parser sort en version 0.10. Les nouveaux formats supportés : Archive Microsoft (.mar), icône animée pour Microsoft Windows (.ani), aide Microsoft HTML (.chm), raccourci Windows (.lnk), X11 Portable Compiled Font (pcf), Adobe Portable Document Format (PDF).

Détails des changements sur :
http://cheeseshop.python.org/pypi/hachoir-core
http://cheeseshop.python.org/pypi/hachoir-parser

Liste complète des formats supportés par Hachoir :
http://hachoir.org/wiki/hachoir-parser

> Lire le journal (8 commentaires, moyenne: 3,4).

hachoir-subfile : extrait les fichiers contenu dans un autre fichier

Posté le 16 janvier 2007
0
La suite Hachoir a pondu un nouveau outil : hachoir-subfile. L'idée est d'extraire des fichiers (non compressés, non chiffrés et non fragmentés) contenus dans d'autres fichier. Exemples :
* disque dur (ou image d'un disque)
* exécutable windows : peut contenir un SWF, des icônes, image GIF/PNG, ou n'importe quoi d'autre
* PDF : extraire les images JPEG
* Word / PowerPoint : extraire les images et les sons (évite d'avoir à lancer l'usine à gaz nommée OpenOffice)
* etc.

Téléchargement et plus d'info : http://hachoir.org/wiki/hachoir-subfile
Pour le tester, le plus simple est d'utiliser les snapshots.

Usage : "hachoir-subfile fichier" pour la détection, "hachoir-subfile fichier dossier" pour l'extraction (va créer dossier/file-0001.ext, dossier/file-0002.ext, ...). Attention, il écrase les fichiers existants dans le dossier spécifié. Spécifier le type de fichier recherché (avec --category et --parser) accélère beaucoup la recherche : 4 Mo/sec par défaut, 50 Mo/sec (limite de mon disque dur?) en recherchant uniquement des images JPEG (--parser=jpeg).

Les formats reconnus sont listés sur cette page :
http://hachoir.org/wiki/hachoir-parser

Problèmes / défauts :
* Certains formats sont désactivés car ils posent problèmes (JPEG, MPEG audio, TAR, ZIP, OGG)
* Ne supporte pas la fragmentation
* hachoir-subfile ne sait pas calculer la taille de certains formats (ex: EXE, DOC, gzip). L'extraction automatique ne fonctionne pas pour ces formats.

==

hachoir-subfile est un outil encore très jeune (2 semaines :-)), il a besoin d'être testé.

> Lire le journal (13 commentaires, moyenne: 2,8).

hachoir-metadata cherche des testeurs

Posté le 29 novembre 2006
0
Le programme hachoir-metadata se prépare à passer en version 1.0. Pour cela, il a besoin d'être testé sur beaucoup de fichiers pour détecter un maximum de bugs. Utilisez cette archive clé-en-main (rien à installer mise à part Python 2.4) :
http://www.haypocalc.com/tmp/hachoir-metadata-svn1335.tar.bz(...)

Décompressez l'archive, entrez dans le répertoire créer, et utilisez le script hachoir-metadata que vous y trouverez. Vous pouvez les traiter plusieurs fichiers en même temps.

Spécifications :

* Formats supportés : archive (bz2, gz, tar, zip), audio (au, cda, mp1, mp2, mp3, ogg, wav, wma), image (bmp, gif, ico, jpg, pcx, png, tiff, xcf), vidéo (asf, avi, flv, mkv, mov, .mp4, wmf)
* Supporte les fichiers corrompus / tronqués
* Gère très bien Unicode (charset ISO-8859-XX, UTF-8, UTF-16), convertit les chaînes dans le charset de votre terminal
* Supprime les doublons (et si une chaîne est une partie d'une autre, conserve la chaîne la plus longue)
* Assigne une priorité aux informations qu'on peut alors filtrer avec l'option --level
* Dépend uniquement de hachoir-parser (et non pas de libmatroska, libmpeg2, libvorbis, etc.) et tourne sur tous les OS et toutes les architectures

Comparez les résultats avec d'autres outils :
(du plus généraliste au plus particulier)

* http://freevo.sourceforge.net/cgi-bin/freevo-2.0/Kaa (Kaa-metadata, qui contient le programme mminfo)
* https://gnunet.org/libextractor/ (paquet 'extract' sous Debian, le programme porte le même nom)
* http://mediainfo.sourceforge.net/fr (récement porté sous Linux)
* http://badcomputer.org/unix/code/wmainfo/
* ogginfo (programme et paquet Debian du même nom)
* mkvinfo (programme et paquet Debian du même nom)
* (liste non exhaustive, je ne les connais pas tous !)

Erreurs qui n'en sont pas :

L'erreur « Unable to parse file: (...) » indique qu'Hachoir n'a pas de parseur pour le format du fichier. L'erreur « Hachoir can't extract metadata, but is able to parse (...) » indique que je n'ai pas jugé intéressant d'écrire un extracteur de méta-donnée pour ce type de fichier :-) (mais que c'est possible si quelqu'un est motivé pour le faire car le format est reconnu). Certains parseurs peuvent également générer des avertissements (EXIF, ID3, Ogg/Vorbis) qui sont plus ou moins utiles, --quiet permet de les ignorer.

Plus d'informations :

http://hachoir.org/wiki/hachoir-metadata

> Lire le journal (41 commentaires, moyenne: 2,6).

Déshabillez Flash (du son maintenant)

Posté le 07 novembre 2006
0
Suite de mon journal précédent ( http://linuxfr.org/~haypo/23039.html ), j'ai continué à décortiquer le format SWF de Flash pour arriver à lire l'audio. Après avoir lu 3 ou 4 code sources et documentations différents, j'ai réussi à retrouver les entêtes complets. J'ai aussi corrigé l'extracteur d'image JPEG qui avait un petit bug.

Bon, j'suis trop fénéant pour vous préparer une archive bien propre alors voici les commandes à utiliser :
svn co svn://hachoir.org/hachoir/hachoir/trunk hachoir
svn co svn://hachoir.org/hachoir/hachoir-parser/trunk hachoir-parser
svn co svn://hachoir.org/hachoir/hachoir-strip/trunk hachoir-tools

(installez hachoir et hachoir-parser avec "sudo ./setup.py install")

Le script swf_deflate.py sert à décompresser les SWF compressés (car Hachoir ne sait pas les lire). Le script swf_extractor.py extrait toutes les images et tous les sons (uniquement au format MP3) d'un fichier SWF.

Merci de me rapporter tous les bugs (avec fichier posant problème en pièce jointe ou en url).
--
Au passage, j'ai aussi continué le parseur FLV qui lit maintenant l'essentiel du format. Pour le fun, j'ai écrit un script qui extrait la piste sonore d'un fichier FLV :-) (flv_extractor.py, aussi dans hachoir-tools)

Haypo

> Lire le journal (5 commentaires, moyenne: 4,2).

Déshabillez Flash

Posté le 05 novembre 2006
0
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 SWF sont déjà plus intéressants :-) On peut y trouver des images JPEG (avec transparence pour certaine, si si, enfin c'est stocké à part), du son et de la vidéo. Je me suis surtout concentré sur les images JPEG. Après quelques heures de codage j'ai écrit un outil pour extraites toutes les images d'une animation Flash. Et le pire c'est que ça marche :-)

J'ai préparé un tarball clé-en-main, utilisez le script jpg_extractor.py :
http://www.haypocalc.com/tmp/hachoir-flash-5nov.tar.gz
(rien besoin d'installer)

Ca ne fonctionne que sur les SWF non-compressés. Mais un outil de décompression (deflate_swf.py) est livré avec.

Hachoir a besoin de Python 2.4 ou supérieur. Sous Debian Sarge, utilisez explicitement Python 2.4 : python2.4 jpg_extractor.py fichier.swf

Tout ce que je raconte concerne le projet Hachoir en version de développement (trunk), accessible via Subversion. Plus d'info : http://hachoir.org

> Lire le journal (21 commentaires, moyenne: 2,3).

Rejouez chez vous les plus grandes batailles de la guerre du libre

Posté le 25 octobre 2006
0
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, 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 !

Site officiel de Wormux :
http://www.wormux.org/wiki/fr/index.php

Billet de yekcim sur Wormux 0.8 :
http://yeknan.free.fr/blog/index.php?2006/10/25/146-wormux-b(...)
(propose de nombreux fonds d'écran et donne des détails sur le travail réalisé sur la partie graphisme)

Instructions pour compiler à la main :
http://www.wormux.org/wiki/Instructions_to_compile_Wormux_so(...)
(des paquets seraient très appréciés bien que ça soit du "alpha1")

Gros big up à gentildemon, drayan et Ziolive sans qui Wormux ne serait pas là où il en est aujourd'hui. Merci aussi à tous les gens listés ici :
http://www.wormux.org/wiki/en/authors.php

> Lire le journal (15 commentaires, moyenne: 2,9).

Les hommes sont des fourmis (Men are ants)

Posté le 24 septembre 2006
0
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 fonctionnel. Un serveur de jeu est d'ailleurs disponible par défaut et peut héberger plusieurs parties simultanées. Mais vous pouvez également choisir de compiler le jeu avec le serveur pour le lancer chez vous. Le jeu se joue au tour par tour (chacun prépare son tour puis quand tout le monde cliqué sur « prêt », ou que le temps limite est atteint, le tour est joué) et une intelligence artificielle est disponible.

L'idée du jeu est d'abord née sur papier, jeu inventé durant un cours d'espagnol (comme se tient à le rappeler les crédits du jeu), et la version électronique existe depuis 6 mois. Cette dernière est encore très jeune mais parfaitement fonctionnelle. Vous excuserez de légers bugs (par contre, remontez-les aux développeurs !) et les graphismes minimalistes.

Le programme est développé en C++ avec la bibliothèque SDL et fonctionne sur Intel 32 bits sous Linux et Windows. Des tests sur d'autres architectures et systèmes d'exploitation seraient appréciés. Le code source et les données sont sous licence GNU GPL, mais j'ai noté plusieurs points qui sont loin d'être libres (musique dans le menu, mac donald et la tour laser du NOD). Je pense que ceci va être rapidement corrigé ;-)

Le projet a besoin de testeurs, graphistes, musiciens et codeurs alors n'hésitez pas à contacter ses auteurs sur la liste de diffusion (menareants-ml ZUT gna.org) ou directement Progs, programmeur principal, sur IRC (salon #wormux-fr sur Freenode).

Site internet du jeu où vous trouverez la procédure pour l'installer :
http://coderz.info/wiki/index.php?title=Men_Are_Ants

> Lire le journal (15 commentaires, moyenne: 2,8).

Dernière avancées du Hachoir (il peut écrire !!!)

Posté le 11 septembre 2006
0
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
* support des chaînes l'UTF-16 et UTF-32
* tourne sur CPython 2.2 à 2.5, IronPython 1.0, pypy (svn) et Jython 2.2, certains ayant besoin de patch
* plein de corrections de bugs (MP3, ID3v2, méta-données, etc.)

Idées pour l'édition

J'ai écrit ce journal pour recueillir des idées (vos idées) maintenant que Hachoir supporte l'édition (je rappelle : encore dans un stage préliminaire). J'avais déjà pensé à écrire un fuzzer basé sur Hachoir. J'ai aussi pensé à l'inverse : utiliser Hachoir pour valider un fichier (comme un document XML via une DTD). Voir pour les deux :
http://hachoir.org/wiki/Notepad

Autre idée : écrire un programme qui supprime les "espions" d'un fichier (données pouvant aider à identifier son auteur), tel que les coordonnées GPS des méta-données EXIF, les noms de fichier, commentaires (utilisateur ou signature du logiciel utilisé pour générer le fichier).

Comme pour la lecture, l'API pour édition est très simple. Exemple : « editor["end_central_directory/comment"].value = "new comment" » pour modifier le commentaire d'une archive ZIP, ou encore « del editor["filename"]; editor["has_filename"].value = False » pour supprimer le nom de fichier d'une archive gzip.

Installation

Si vous voulez tester Hachoir : utilisez la version SVN. Si vous ne pouvez pas, utilisez un de ces fichiers (tarball de la version svn 996) :
http://www.haypocalc.com/tmp/hachoir-0.6alpha1-py2.4.egg (egg)
http://www.haypocalc.com/tmp/hachoir-0.6alpha1.tar.gz (tar.gz)
(voir aussi http://hachoir.org/wiki/Install )

Liens

Changements en long et en large, et toutes le infos sur le Hachoir :
http://hachoir.org/

Actualité linuxfr du 19 août dernier :
http://linuxfr.org/2006/08/19/21217.html

Haypo

> Lire le journal (22 commentaires, moyenne: 3,3).

MultiDeskOS et Jayce dans Wikipédia

Posté le 08 septembre 2006
0
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

> Lire le journal (17 commentaires, moyenne: 3,1).

Hachoir 0.4

Posté le 10 juillet 2006
0
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 peut extraire les méta-données d'une image, musique ou vidéo, même s'il n'a que les premiers kilo-octets du fichier et/ou si une partie des méta-données sont corrompues.

Au niveau des méta-données, cette version donne beaucoup plus d'informations (ex: durée d'un vidéo), et sait maintenant utiliser les informations EXIF et IPTC (Photoshop).

Les nouveaux parseurs sont IPTC, Ogg, Matroska, et les informations Photoshop (8BIM).

Plus d'informations sur le site internet :
http://hachoir.python-hosting.com/wiki/HachoirYield

--

Hachoir n'a que peu de similarité avec Beagle/Kat, à la limite il pourrait servir de source de méta-données tel que libextractor ou mmpython si la partie « extraction des méta-données » était plus développée.

Hachoir est avant-tout une bibliothèque. Il peut être utilisé pour faire des traitements à la chaîne. On pourrait imaginer extraire les images d'une présentation PowerPoint (si le parseur Microsoft Office était plus évolué :-)).

À terme, il permettra d'éditer des fichiers et pourra alors servir à modifier un champ ou supprimer des champs (l'ajout est plus hasardeux). Exemple d'application : supprimer les mouchards d'un fichier (logiciel utilisé pour créer un document, date de création, coordonnées GPS, etc.). Autre exemple : localiser les espaces inutilisés (ils sont légions dans les fichiers) et les utiliser comme espace de stockage discret.

Anciens journaux :
http://linuxfr.org/~haypo/21758.html (30 mai 2006, 16 commentaires)
http://linuxfr.org/~haypo/21556.html (5 mai 2006, 8 commentaires)

> Lire le journal (17 commentaires, moyenne: 2,7).

Progrès dans l'équipe de traduction du jeu Wormux

Posté le 16 juin 2006
0
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 francophobe puissent contribuer au code.

On est ensuite passé à gettext(). Depuis pas si longtemps (6 mois), on est passé à la bibliothèque SDL qui permet un rendu du texte avec des polices TTF (et non pas des polices bitmap). On active UTF-8, et là : pof, Wormux pour afficher des mélanges de russe, hongrois et français sans soucis !

Depuis qu'on est passé à gettext() (il y a un an ou deux), les traductions sont arrivées toutes seules ! C'est magique (le logiciel libre) ! La liste des langues est maintenant :

* bs: Bosnian
* ca: Catalan
* da: Danish
* de: German
* en: English (mother tongue of Wormux)
* eo: Esperanto
* es: Spanish
* fi: Finnish
* fr: French
* hu: Hungarian
* it: Italian
* nl: Dutch
* pl: Polish
* pt: Portuguese
* sk: Slovak
* ro: Romanian
* ru: Russian
* tr: Turkish

C'est fou, je serai incapable de prononcer un seul mot dans la majorité de ces langues, et j'ai presque découvert l'existence de certaines langues :-p

L'arrivé du russe nous a fait modifier les phrases avec du pluriel comme par exemple : pour la phrase "L'équipe %s a gagné %u bazooka(s)" (la phrase est en fait en anglais), elle devient : ngettext("L'équipe %s a gagné %u bazooka", "L'équipe %s a gagné %u bazookas", nombre). L'avantage est que l'écriture est plus jolie : plus de "(s)" à la fin, et on peut gérer les formes pluriels variées (en russe, il y a 3 formes, de 0 à 1, de 2 à 5, et de 6 à plus).

Il resterait encore à obtenir des traductions dans les langues asiatiques et le jeu serait vraiment polyglotte ;-) Si quelqu'un connait des chinois, coréens ou japonais, qu'il leur parle du jeu Wormux ! En plus, la version Windows fonctionne maintenant bien (en pariticulier, la traduction gettext() fonctionne).

Haypo

> Lire le journal (34 commentaires, moyenne: 3,3).

[ 1 2 3 :: Suivant ]