Archives

Support du décodage des vidéos des PDF

Projet inachevé de support par poppler (bibliothèque de décodage PDF utilisé par evince et autres, fork de xpdf) des vidéos contenues dans les PDF.

Quelques détails et "proof of concept"

Videoseek

Videoseek is a simple C/C++ library that allows to extract a frame from a video sequence, even if it is not a keyframe. It is based on ffmpeg, providing the ability to deal with a great amount of formats and codecs

Participation à LinuxBIOS

J'ai tenté de participer au projet LinuxBIOS, nouvellement coreboot. C'est un projet que je trouve vraiment intéressant : l'objectif est de libérer la dernière partie recalcitrante d'un PC moderne - le BIOS, ce petit bout de code antédiluvien, lent, largement inutile et généralement buggé mais obligatoire au bon démarrage et fonctionnement de la machine.

J'ai - assez bêtement - décidé de travailler à l'adaptation de LinuxBIOS sur ma machine de l'époque, un PC basé sur une carte mère Asus A7V600. J'ai accumulé plusieurs erreurs :

  • ma machine de travail était AUSSI ma machine de test. J'avais acheté pour ce faire, un petit bout d'électronique qui permet d'avoir une copie du BIOS et qui sert - initialement - à la sauvegarde en cas de plantage et pas au développement de nouvelle image BIOS. Le cycle de test était le suivant : générer une nouvelle image du BIOS sous Linux, switcher sur la mémoire flash secondaire, flasher le BIOS et rebooter. Le PC redémarrait donc sur la nouvelle image du BIOS. Une fois le test effectué, repasser sur la mémoire flash principale et redémarrer (tout le système Linux) et continuer le développement. Ça s'est avéré inefficace, pénible et sans doute dangereux pour la carte mère (à force de redémarrages, elle a eu une vie plutôt courte au final). Si c'était à refaire, je distinguerais clairement la machine de travail de la machine de test, avec une carte de développement.
  • libérer le BIOS de ma carte n'intéressait personne d'autre que moi. Difficile pour débuter, alors que plusieurs personnes tentaient de travailler sur d'autres cartes plus populaires, comme les mini-ITX de VIA.
  • j'ai passé beaucoup de temps sans documentation, à tenter de faire du reverse engineering en désassemblant le BIOS officiel. Sans documentation, c'est impossible, même avec la meilleure volonté du monde. J'ai finalement signé un NDA avec VIA pour avoir un peu de docs. J'ai mis 6 mois à signer ce NDA, en me demandant si je ne pactisait pas avec le diable. C'était quand même mieux que pas de doc du tout. Au passage je n'ai toujours pas compris la notion de NDA : je me rappelle que VIA autorisait explicitement ce type de développement (avec ce qu'ils appelaient un “Linux addendum” au contrat), alors à quoi sert la protection ? Ça voulait dire qu'on peut partager du code, mais pas associer de commentaires au code, sous risque d'exposer des explications couvertes par NDA ??

Le temps passé à désassembler le BIOS Asus d'origine m'a quand même permis d'apprendre pas mal de chose et aussi de trouver comment débloquer les protections logicielles pour pouvoir flasher le BIOS à partir de Linux. C'est au final ma seule contribution au projet.

J'ai aussi réalisé - à l'époque les choses ont peut être changé entre temps, qu'il n'existe pas de bon désassembleur *intéractif* sous GNU/Linux. La référence reste malheureusement IDA sous Windows. Par intéractif, j'entends un désassembleur sur lequel on peut préciser rapidement comment doit être interprété un bloc de code : code ou données et quel type de code (16 ou 32 bits). Vu la manière dont le BIOS passe son temps à jongler entre les différents modes, c'est indispensable.

Mes quelques notes et bouts de code de l'époque

Azerty Club

De 2000 à 2002, j'ai participé à l'organisation de LAN Parties avec le “Cyber Azerty Club”, à Pau. Je ne suis pas un grand joueur et c'était plutôt l'occassion de se tester à l'organisation de manifestations importantes (la dernière édition à laquelle j'ai participé - l'Azerty Party 3 - regroupait 250 personnes). J'avais également essayé d'amener les membres de l'association et les participants à utiliser leurs machines pour faire autre chose que du jeu, en organisant des petits concours (hacking ou code), ou en parlant de GNU/Linux (merci à la PauLLA d'ailleurs), mais ça s'est avéré … difficile. Globalement, je garde de bons souvenirs de ces quelques jours de stress à rustiner un bout de code immonde de calcul de scores, à tenter de comprendre la configuration d'un réseau à 250 PCs ou à réveiller les joueurs à l'aube en diffusant le thème du Grand Bleu et des mois préalables de préparation (notamment les “réunions” arrosées du club).

Pour nostalgie, deux affiches non officielles de ma conception de l'Azerty Party 3 (publiées a posteriori sous licence CC BY-SA) : Fond d'écran Affiche

Archive contenant les images et leurs sources (format The Gimp).

1997-2000 : PrograZine

J'ai été “rédacteur en chef” de PrograZine (par autoproclamation), un magazine electronique (ezine ou webzine) sur la programmation. Tout ça n'a pas très bien vieilli. A l'époque je découvrais Internet et je voulais “programmer”, mais peu de ressources en français existaient. Alors, histoire de peaufiner mes connaissances et découvrir les technologies du web, j'ai décidé de créer un magazine, diffusé sur Internet, BBS et parfois en presse, où chacun pourrait écrire des articles (c'était le web 2.0 collaboratif avant l'heure).

Ca m'a permis d'apprendre pas mal de choses. Les contributions étaient de tous niveaux (les miennes en particulier étaient très hétérogènes et sensiblement prétentieuses - j'avais tout juste 16 ans pour les premiers numéros). Le “mag” était systématiquement en retard, mais publié en ligne et en presse (dans feu PC Team) quand c'était possible. A son heure de gloire, le site totalisait 200 abonnés et un millier de clics par mois (à l'époque ça faisait beaucoup).

Dix numéros ont été publiés, avec une date de publication s'étalant de 1997 à 2000. Ils sont de nouveau accessibles sur cette page, pour archivage (nostalgie ?). Les fichiers ont été légèrement modifiés pour pouvoir être manipulés avec les systèmes de fichiers actuels (qui différencient majuscules et minuscules, contrairement au DOS de l'époque).

Le reste, y compris les fautes de français, de goût et de mises en page, a été conservé.

archives.txt · Last modified: 2013/01/22 08:53 (external edit)