C C++ code source compilation configuration email framework gestionnaire de fenêtres latex librairie libre linux php programmation python réseau shell ssh statistique SVG xml audio humour image jeu philosophie point de vue web bibliographie colonies de fourmis conférence estimation de distribution livre métaheuristique rapport
Ce petit bout de code sert à trouver différentes combinaisons d’éléments d’une liste. Ces combinaisons sont uniques (ab==ba) et on cherche dans les différentes tailles possibles (a, ab, abc, etc.). Le tout dans le langage de script Python.
Exemple
Mieux vaut un exemple qu’un long discours. Soit la liste : [’a’, ’b’, ’c’, ’d’]
On cherche les combinaisons suivantes : a b c d ab ac ad bc bd cd abc abd acd bcd abcd
Combinaisons uniques
Une première fonction consiste à chercher la liste des (...)
[Lire la suite]
Il n’est pas évident de trouver une manière simple de gérer les paramètres passés à un script. Comme il existe un nombre incalculable de modules pour ce faire, j’ai évidemment fait le mien, car la gestion des options est visiblement affaire de goûts.
Ce que je propose s’appuie sur le module getopt, qui parse la ligne de commande, mais dont l’API est à chier (pour dire les choses clairement).
Mon idée de départ était de faire quelque chose de simple à utiliser, même si le prix à payer est le (...)
[Lire la suite]
J’ai fait ce script pour suivre les processus lancés sur un cluster de machines sous linux. L’idée est de pouvoir lancer une commande (ici, htop) sur toutes les machines, d’un seul coup, en gardant une fenêtre ouverte pour suivre ce qu’il se passe.
L’utilisation de screen permet de faire ça simplement pour des applications en ligne de commande.
Le script est en python, il ne sert qu’à créer à la volée un fichier de commande pour screen.
# La configuration de base cmd = "htop" hosts = (...)
[Lire la suite]
Voici comment insérer des métadonnées d’un fichier SVG dans son export PNG, en utilisant Inkscape, la Python Imaging Library et un peu d’ElementTree.
Pourquoi
Pour publier des geekscottes sans me fatiguer, j’ai codé Strip-it, qui utilise le plus possible les métadonnées contenues dans les fichiers sources SVG (auteur, licence, descriptions, etc.). Mais on m’a fait remarquer récemment que le PNG (utilisé pour l’affichage de l’image) ne contenait pas ses métadonnées.
Or, le SVG étant encore (...)
[Lire la suite]
Un petit bout de script qui permet de changer l’arrière plan du bureau en fonction de l’heure du jour.
Il suffit de préciser les images souhaitées et les horaires de début et de fin de la journée, le papier-peint et le script affiche la bonne image en fonction de l’heure actuelle.
Typiquement, je l’utilise pour avoir un fond d’écran de couleur froide en début de journée, et chaude en fin de journée (quand c’est rouge, il est l’heure de partir).
L’intérêt est tout à fait relatif, au final, (...)
[Lire la suite]
En XML, j’aime bien considérer les attributs comme des sous-éléments de chaque noeud, je trouve ça plus logique et élégant.
Seulement, avec le module ElementTree, il n’est pas possible d’utiliser la même syntaxe XPath pour accéder aux uns et aux autres.
Un moyen simple pour avoir le contenu d’un élément est d’utiliser findtext, mais ça ne fonctionne pas sur les attributs.
Pour avoir accès aux attributs simplement, il faut ruser un peu en utilisant la méthode items sur un objet élément.
Au (...)
[Lire la suite]
Quand on commence à exploiter la puissance de linux pour automatiser certaines tâches, il arrive un moment où l’on a besoin d’envoyer des emails avec des pièces-jointes...
Depuis l’introduction du module email, l’envoi avec pièces-jointes est grandement facilité. Le présent script est devenu moins élégant que ce que l’on peut faire, comparez avec ce simple script de quelques lignes. Le script fonctionne toujours en l’état, mais est juste moins élégant. Toute mise au goût du jour est la (...)
[Lire la suite]
Si vous utilisez Kdevelop (un environnement de programmation) et que vous aimez le principe de SCons (un outils de compilation, comme les autotools mais en bien), alors ces bouts de codes sont faits pour vous.
L’idée générale est de s’affranchir des immondes automake et autoconf, tout en ajoutant des fonctionnalités rigolotes, en étant partisant du moindre effort.
Pour ce faire, j’ai développé un petit script à coller dans votre SConstruct, qui facilite le travail.
Cela permet de (...)
[Lire la suite]
Open Metaheuristics est un « framework » libre, pour la conception de métaheuristiques d’optimisation difficile. Il est disponible sous licence LGPL et est orienté sur les tests et la comparaison d’algorithmes génériques, mais facilite également leur utilisation. [Lire la suite]
RadioParadise est une radio sur internet qui joue de la musique que j’apprécie ("eclectic intelligent rock" d’après le site). LostParadise est un petit script python pour savoir quel morceau est en train d’être joué, télécharger un apperçu de la couverture et permet éventuellement de sauvegarder vos titres préférés dans un fichier RDF pour mémoriser ce qui vous a plut.
Pour télécharger LostParadise, cliquez sur l’icône. L’archive contient plusieurs fichiers, le script lostparadise.py, un (...)
[Lire la suite]
E-Sub est un jeu multi-joueurs asynchrone qui se joue via une interface web. Vous dirigez des sous-marins sur une zone de jeu où le but est de torpiller vos adversaires.
J’apprécie ce jeu pour sont savant mélange de tactique (beaucoup) et de stratégie (un peu). Très facile à prendre en main, une fois compris les principes de bases, on peut au choix jouer à l’intuition ou faire des calculs compliqués... Un autre point fort du jeu est son ambiance, très sympathique.
Le jeu en est à sa (...)
[Lire la suite]
A l’origine Gilgamesh est un traceur de comptes-rendu pour le jeu (open)ESub. C’est aussi et surtout mon premier bidouillage avec la très chouette bibliothèque Soya3D, un bon moyen de se mettre à la 3D !
Pour télécharger Gilgamesh : Il ne sert pas à grand chose en l’état, aussi si vous le modifiez je serais heureux de le mettre à jour ici !
Fonctionnalités
Construit une zone d’opération en 3D ;
Trace les différents objets en couleurs ;
Affiche les infos en surbrillance ;
Changement (...)
[Lire la suite]