Hacks de Gillux

De Wiki.sec.

Note : this page is also available in English

Car rien n'est jamais totalement terminé, mais souvent laissé de côté, voilà une petite liste des choses que j'ai faites ou auquelles j'ai participé.

Sommaire

Petits projets

2006 — Quick3Ded

Ayant acquis une certaine expérience en bash grâce à nixshare, je me suis lancé dans ce programme qui est une frontend à q3ded, le server dédié de quake 3. Seba lui a déjà créé une page dédiée qu'il faudrait améliorer.

2007 — Converttt

Convert Time Table, un script perl qui converti les emplois du temps ignobles (il faut quand même le dire) de mon IUT informatique (Rangueuil) générés par CELCAT en emplois du temps au bon vieux format d'avant. Il est prévu pour être utilisé comme un script CGI, executé par un server web et il génère une page HTML toute propre avec les emplois du temps trouvés sur le server de l'IUT.

Quelques fonctionnalités interressantes :

  • Le rendu "old school" est géré par CSS
  • Il télécharge des copies locales (cache) des emplois du temps de l'IUT (des fichiers XML), puis les utilise s'ils n'ont pas changés, ou alors les re-télécharge s'ils sont nouveaux
  • Pages sans erreurs (validées par le w3c)

Il est sur le SVN de ce présent server, pour le télécharger tapez :

svn co http://dotsec.fr/svn/converttt/trunk/ converttt

Il est aussi peut-être encore en test dans mon répertoire perso par ici.

2009 — Webdiff

Encore un petit truc vite fait bien fait, mais qui peut servir : une front-end web au programme diff. Il suffit de copier-coller deux textes pour en obtenir la diff, avec coloration syntaxique au choix. On peut aussi y modifier à sa guise la taille des textarea. Le script peut lui même vous fournir sa propre source.

2009 — WebGPG

Toujours dans la lignée des petits trucs web pratiques et utilisables depuis n'importe où, une interface à GPG pour chiffrer des messages avec les clés publiques des gens. Il permet de chercher une clé publique et de chiffrer un message avec, qu'il suffit de copier/coller ou de taper. Avec un clic de plus on peut aussi envoyer le bloc chiffré sur http://paste.pocoo.org/. C'est aussi pratique pour donner à quelqu'un un lien avec sa clé directement dedans, pour qu'il vous donne une information confidentielle (par https évidemment). Par exemple, vous pouvez grâce à ce simple lien (auquel vous enleverez l'underscore à la fin, c'est pour empêcher que mon email ne se retrouve indexé dans une page) m'envoyer un message confidentiel.

Les sources sont disponibles sur le SVN de ce présent serveur. Pour les obtenir, tapez :

svn co https://dotsec.fr/svn/webgpg

2010 — Mcfs

Mcfs signifie mencoder filesysem. C'est un premier jet (que j'aimerais améliorer un jour, si j'ai le temps) déjà fonctionnel d'un système de fichiers FUSE qui transcode à la volée les vidéos avec mencoder. C'est donc un programme encore très alpha ; si vous ne comprenez pas le code ci-dessous laissez tomber. Mcfs reproduit virtuellement un autre dossier de vidéos, en rajoutant dans chaque sous-dossier un dossier virtuel. Ce dossier expose le même contenu que son répertoire parent sauf que quand on ouvre une vidéo dedans, elle est transcodée par le programme lancé par la ligne de commande définie dans /tmp/mencoder_cmd.

Cas concret d'utilisation:

$ mkdir vids
$ mcfs /my/amazing/fullHD/videos/ vids/
$ ls /my/amazing/fullHD/videos/
big_buck_bunny_1080p_surround.avi
$ ls vids/
_transcodage à la volée
big_buck_bunny_1080p_surround.avi
$ ls vids/_transcodage\ à\ la\ volée/
big_buck_bunny_1080p_surround.avi
$ mplayer /my/amazing/fullHD/videos/big_buck_bunny_1080p_surround.avi
[ça rame horriblement…]
$ cat > /tmp/mencoder_cmd
mencoder %i -o %o
-oac mp3lame
-ovc lavc -lavcopts vbitrate=6000
-vf scale=800:-3
-of lavf -lavfopts format=asf
^D
$ mplayer vids/_transcodage\ à\ la\ volée/big_buck_bunny_1080p_surround.avi
[mcfs lance mencoder qui nous envoie la vidéo réduite à 800px de large, en MPEG4 à 6000ko/s, ça ne rame plus]

Le dossier vids/ peut être exporté (via NFS ou Samba par exemple), et le fichier transcodé lu par une machine peu puissante, tandis qu'une machine puissante s'occupe du transcodage. S'il est exporté via un système basé sur fuse comme sshfs ou smbfs, utilisez -o direct_io. Notez qu'on utilise le format ASF, c'est parce-que c'est le seul que j'ai trouvé sur lequel mplayer n'essaye pas de seeker et donc se croûte. Il y a aussi NUT qui fonctionne mais peu de lecteurs le supportent. Il est possible d'incruster les sous-titres ASS grâce à la version multi-thread facilement compilable.

Le code source :

svn co https://dotsec.fr/svn/mcfs/trunk/ mcfs

2010 — KF1

Un jour, j'en avait marre qu'en appuyant sur F1 dans Firefox ça ouvre la page d'aide, car moi lorsque j'ai besoin d'aide à propos de firefox je procède autrement. Constatant que la suppression de ce raccourci était dans la version de dev mais n'allait sortir que je ne sais pas quand, j'ai fait une mini extension, KF1 (pour kill F1) qui désactive ce raccourci.

Moyens projets

2004–2005 — Progs sur TI-82

Quelques programmes notables écrits en basic (ou TI-basic pour être plus précis), quand je m'emmerdais au lycée :)


J'ai aussi bossé sur un émulateur de terminal série écrit en assembleur. Il marchait plus ou moins mais j'ai laissé tombé car la TI-82 ne possède pas de base de temps fiable (le cpu a une freq variable selon l'état des piles), et les interruptions (200/sec) ne sont pas assez fréquentes pour les utiliser pour checker le status du port link (du coup faut appeler une routine à tout bout de champ pour ça).

Néanmoins, j'ai pu récemment (26/05/2007) m'acheter une TI-82 d'occaz car je m'étais fait volé la mienne juste avant le BAC. Je continurais donc ce terminal car j'ai de nouvelles idées (genre syncroniser dynamiquement la calcu en attendant le 1er byte et en mesurant le temps entre le bit start et le bit stop).

2005 — Rollbot

Ici il est alimenté par secteur mais il marche à pile aussi

Un robot fait en TPE en 1ère. On était 3 à le faire mais, j'ai quasiment tout fait tout seul (je le voulais un peu je l'avoue ;). Il roule avec 3 roues (dont 2 motrices), essaye tant bien que mal d'éviter les obstacles qu'il rencontre, et obéit à la commande de 2 boutons pour changer la vitesse et/ou passer en marche arrière. Il est controllé grâce à un micro-controlleur PIC 16F84 programmé en assembleur. On a (j'ai) aussi fait un dossier (eh oui on était obligé) bien-sûr écrit en latex, dont voiçi les sources.

Détéction d'un obstacle (la diode rouge s'allume)

2005 — Nixshare

J'ai un peu contribué à mon niveau (de l'époque) à ce programme de partage de fichiers. Plus d'infos sur la page du créateur principal.

2007 — Dotsec neverball set

Moi et Alban avont créé quelques niveaux pour le jeu Neverball. L'unique release du set est toujours ici et n'a pas évolué pendant un bon moment, mais je m'y suis remis depuis peu et le set est désormais maintenu via svn sur dotsec.net, récupérez-le en tapant :

svn co https://dotsec.net/repos/nb-levels/trunk/ nb-dotsec

2011 — Xtvprog

Xtvprog est un logiciel de programmation d’enregistrement de la télévision. Son but est d’offrir d’une part une interface conviviale à la recherche et la séléction de programmes TV que l’on souhaite enregistrer, et d’autre part lancer automatiquement un autre logicel qui s’occupe de l’enregistrement. Il lit le programme TV au format ouvert XMLTV. Les logiciels enregistreurs sont gérés par des plugins. Pour l’instant, il n’y a qu’un plugin pour pouchintvmod.

Sources :

svn co https://dotsec.fr/svn/xtvprog/trunk/ xtvprog

Grands projets

2006­–2009 — Lycanobot

Lycanobot est un portage du jeu de cartes Les Loups-garous de Thiercelieux à l'IRC. Il s'ajit en fait d'un bot IRC écrit en perl et qui joue le maître du jeu. Il vise à faire tout ce qu'un maître de jeu doit faire. Pour le rapatrier tapez :

svn co https://dotsec.fr/svn/lycanobot/trunk/ lycanobot

2010 — GSOC

J’ai participé au Google Summer of Code en 2010 chez Pidgin, sur un système de détachement de session, pour un usage similaire à Irssi combiné à Screen. Ce n’est pas terminé, mais vivement que j’ai le temps d’avancer là-dessus.