Hacks de Gillux
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 :)
Asteroid, un jeu où l'on doit traverser en champ d'astéroïdes
Lumière, un petit soft fait en seconde pour calculer les angles des rayons lumineux qui changent de milieu (avec un ptit schéma :)
Race4, un petit jeu de caisse basique, cloné (et amélioré) d'un certain closed source race3
Snake (aussi pour TI-83 Plus), le jeu du serpent :) Attention, il prend beaucoup de mémoire. Le code source.
Varsabam (aussi pour TI-83 Plus), LE jeu qui m'a dégouté du TI-basic. C'est un "long" jeu d'aventure marrant inspiré du jeu le "Rendez vous le la terreur" sur Oric Atmos. Vous vous balladez dans le château d'un sadique, remplis de pièges et de monstres, pour sauver votre ami Léon coincé dans la tour. Vous pouvez ramasser des objets qui vous servirons (ou pas) à vaincre les monstres.
Reflex (aussi pour TI-83 Plus), un petit jeu pour tester ses reflexes, marrant à plusieurs...
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
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.
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