Autres projets

Bash - Envoi sur ftp

Petite description

En une seule ligne de commande, le script copie puis renomme le fichier en un nom plus 'url-friendly' (sans espace, tiret et autres) et finit par l'envoyer sur un serveur FTP et vous donne l'adresse HTTP où le fichier uploadé est disponible.

Mise en place

Vérification des paramètres reçus (paramètre reçu, fichier existant, accessible en lecture). Suppression des accents, des cédilles, mise en minuscule de tout caractère et suppression de tous autre caractère (qui ne serait pas alphanumérique). Copie dans /tmp. Upload du fichier via Wput sur un FTP. Affichage de l’URL de disponibilité du fichier.

Compétences acquises

  • vim : utilisation de Vim ;
  • Bash : utilisation de la commande 'tr' ;
  • Wput : upload d'un fichier sur FTP ;
  • echo : reconstruction de l'url en fonction des paramètres fournis.

Bash - Récupération des adresses IP

Petite description

Récupération des adresses :

  • IP locale ;
  • adresse distante IPv4 ;
  • l'adresse IPv6 provenant d'un tunnel.

Mise en place

Grep sur la commande 'ifconfig interface' en spécifiant l'interface. Et wget vers une page personnelle qui donne l'adresse IPv4 externe.

Compétences acquises

  • Bash : utilisation de la commande 'ifconfig' ;
  • wget : récupération d'une page Internet sur le stdout.

PERL - Chapitrage

Petite description

Juste après l'extraction par dvdxchap le fichier des chapitre au format OGG contient juste les timestamps sans le moindre 'vrai' nom de chapitre. Les remplacer tous à la main est fastidieux (6 chapitres par épisode, 4 épisodes par dvd). Il faut automatiser tout cela.

Mise en place

Il ne suffit plus que d'ouvrir le fichier de chapitre et indiquer le nom de chaque chapitre en face du premier timestamp de ce dernier, et le script fait le reste. Il renomme automatiquement tous les autres chapitres et gère même un compteur par chapitre pour un épisode donné.

Compétences acquises

  • PERL : écriture et lecture dans des fichiers ;
  • PERL : utilisation des paramètres ;
  • PERL : utilisation de chomp, des expressions régulières pour reconnaissance de mot et split de chaines de caractères ;
  • PERL : utilisation des tableaux (join, push).

Android MarioKartRandomizer

Petite description

Quand ma copine et moi jouions à MarioKart sur la Wii, on devait soit choisir nos courses nous même, soit demander au jeu de choisir les courses aléatoirement. Celui ci avait déjà un grain d’intelligence pour ne pas mettre deux fois la même course dans la même série (par défaut 4 courses/série) mais si on faisait 2 séries d’affilée, il n’était pas assez intelligent que pour ne pas nous remettre la même course que la série précédente. Défi posé : faire une application qui garde en mémoire les courses faites avant pour NE PAS ressortir celles là au prochain tirage de la série. Permettre un tirage au sort, un affichage simple, un nouveau tirage au sort.

Mise en place

Si vous jouez à MarioKart sur la console Wii, vous savez sans doute que pour choisir vos courses vous avez 2 façons de le faire. Soit vous-même, mais là vous êtes tenté de ne jamais faire les courses que vous n'aimez pas, et refaire non stop celles que vous aimez. Soit vous utilisez le mode aléatoire du jeu, mais celui ci a un grand défaut : tirer parfois deux fois la même course lorsque vous faites deux séries d'affilée. Mon idée était donc de générer un mode aléatoire tenant compte des courses tirées au préalable pour ne pas ressortir 2 fois la même course. Il y a 8 coupes x 4 courses = 32 courses, j'en garde 16 dans l'historique. Celles dans l'historique ne seront pas reprises dans les tirages prochains. Les courses de l'historique se renouvellent : les 4 plus vieilles partent, les 4 nouvelles vont à la place.

Compétences acquises

  • Android : ProgressDialog (Splash screen) ;
  • Android : TableLayout, TableRow, TextView ;
  • Android : SQLiteOpenHelper et DatabaseHelper ;
  • Android : Drawable multiples (h/l/m-dpi) ;
  • Android : XML contenant les layouts (LayoutInflater), menus, couleurs, dimensions, les strings de l'application et même le SQL utilisé ;
  • Android : gestion multilingue (support de l'anglais, du français, chinois simplifié et chinois traditionnel.