Petit exercice de développement piloté par les tests pour écrire un solveur du mode puzzle du jeu Super Nintendo "Tetris Attack".
mercredi, mars 9 2011
Solveur de Tetris Attack
Par Pierre Fritsch le mercredi, mars 9 2011, 20:29 - Jeux et solveurs
dimanche, octobre 10 2010
Renommer des photo en masse
Par Pierre Fritsch le dimanche, octobre 10 2010, 21:11 - Unix
Comment faire quand j'ai deux cartes mémoires l'une après l'autre dans mon appareil photo et que je veux des noms de fichiers qui se suivent ?
# There has to be at least one file in the current folder responding to the given pattern
# start of variables
prefix=DSC_ # file name prefix
extension=NEF # file name suffix
digits=4 # number of digits
increase=257 # will be added to index
# end of variables
lengthofprefix=${#prefix}
for file in $prefix*.$extension; # DSC_0047.JPG
do
index=${file:lengthofprefix:digits}; # 0047
index=`echo $index|sed 's/^0*//'`; # 47 - so that not interpreted as hex
newindex=$((index+increase)); # 333
newindex=`printf "%0${digits}d" $newindex`; # 0333
newfile=$prefix$newindex.$extension; # DSC_0333.JPG
echo renaming $file to $newfile; # renaming DSC_0047.JPG to DSC_0333.JPG
mv $file $newfile
done
Keywords : batch renaming image files
dimanche, décembre 27 2009
(Re)passer de Mac OS X 10.5 Leopard à Mac OS X 10.4 Tiger
Par Pierre Fritsch le dimanche, décembre 27 2009, 00:02 - Mac
Aux possesseurs de processeurs PowerPC G4 qui sont passés à Mac OS X 10.5 Leopard, et qui préféraient la performance de Mac OS X 10.4 Tiger sur cette architecture : Il est possible de faire marche arrière.
Quelques remarques d'ordre général concernant cette opération.
Time Machine
Il vaut mieux ne pas se fier aux sauvegardes automatiques faites par Time Machine (Backups.backupdb), celles-ci n'étant pas lisibles depuis Tiger.
Une solution pour garder une trace du système consiste à faire une image disque avec l'utilitaire de disque, en ayant redémarré sur le DVD d'installation de Mac OS.
Carnet d'adresses
Les fichiers d'export du carnet d'adresses créés sous Leopard sont lisibles sous Tiger, néanmoins seuls les contacts créés sous Tiger avant la migration à Leopard sont importés correctement. Ceux créés sous Leopard sont perdus.
La solution :
- sous Leopard, exporter la fiche vCard du groupe "Tous les contacts", par exemple en glissant-déposant ce groupe dans un dossier ;
- sous Tiger, vider le carnet d'adresse au préalable pour éviter les doublons ;
- sous Tiger, importer le groupe de contacts dans le carnet d'adresses avec l'encodage UTF-8.
Disque dur externe
Il est possible de démarrer un ordinateur portable Apple à partir d'un disque dur externe. Sur les ordinateurs à processeur PowerPC, seuls les disques durs FireWire sont supportés. Il peut être possible de démarrer un G4 à partir d'un disque dur USB, mais uniquement sur certains matériels. Un PowerBook G4 12" 1.5 GHz, par exemple, ne le permet pas.
jeudi, décembre 17 2009
Utiliser StreamTokenizer pour éliminer des commentaires dans du code Java
Par Pierre Fritsch le jeudi, décembre 17 2009, 12:19 - Java/Javascript
Comment utiliser la classe StreamTokenizer pour comprendre la syntaxe d'un string contenant du code écrit dans un langage de programmation comme Java et se débarrasser des commentaires qui y sont contenus.
import java.io.IOException; import java.io.StreamTokenizer; import java.io.StringReader;
public class TestStreamTokenizer {
public static void main(String args) throws IOException {
String input = " myMethod(/* 'commented' out */); // Comment on first line" + "\r\n"; input += " myOtherMethod(\"a string with plenty of space, \\\"a protected string\\\" , the \\\\ symbol and // in it\");" + "\r\n"; input += "// A pure comment line" + "\r\n"; input += "myLastMethod(1 + 2); " + "\r\n"; input += "/* a multi-line" + "\r\n"; input += " * comment" + "\r\n"; input += " */ " + "\r\n"; input += "var myVar = \'myValue\';" + "\r\n"; StringReader stringReader = new StringReader(input);
StreamTokenizer streamTokenizer = new StreamTokenizer(stringReader);
streamTokenizer.resetSyntax();
streamTokenizer.whitespaceChars(0, ' ' /* 10 */);
streamTokenizer.wordChars('!' /* 33 */, '!' /* 33 */);
streamTokenizer.quoteChar('"' /* 34 */);
streamTokenizer.wordChars('#' /* 35 */, '&'/* 38 */);
streamTokenizer.quoteChar(''' /* 39 */);
streamTokenizer.wordChars('(' /* 40 */, '.'/* 46 */);
streamTokenizer.commentChar('/'/* 47 */);
streamTokenizer.wordChars('0' /* 48 */, '9' /* 57 */);
streamTokenizer.wordChars(':' /* 58 */, '@'/* 64 */);
streamTokenizer.wordChars('A' /* 65 */, 'Z' /* 90 */);
streamTokenizer.wordChars('[' /* 91 */, '`' /* 96 */);
streamTokenizer.wordChars('a' /* 97 */, 'z' /* 122 */);
streamTokenizer.wordChars('{' /* 123 */, '~' /* 126 */);
streamTokenizer.wordChars(128 + 32, 255);
streamTokenizer.slashSlashComments(true);
streamTokenizer.slashStarComments(true);
int type;
String token = null;
while ((type = streamTokenizer.nextToken()) != StreamTokenizer.TT_EOF) {
token = streamTokenizer.sval;
switch (type) {
case StreamTokenizer.TT_WORD:
System.out.print(token + " "); break;
case ''':
System.out.print(''' + token + ''');
break;
case '\"':
System.out.print('\"' + token + '\"');
break;
default: break; }
}
System.out.println(); } }
mercredi, septembre 9 2009
Script de backup de base de données MySQL via phpmyadmin
Par Pierre Fritsch le mercredi, septembre 9 2009, 20:56 - PHP
But
Avoir un script exécutable en ligne de commande permettant la sauvegarde d'une base de données distante, à laquelle on n'a accès qu'indirectement par une interface PHP.
Stratégie
Utiliser wget pour reproduire le comportement qu'aurait un utilisateur utilisant un browser pour accéder à l'interface phpMyAdmin sur la machine distante :
- Log in sur la page d'accueil index.php et récupération du cookie d'authentification et du token
- Ré-utilisation de ce cookie et du token pour les accès à phpMyAdmin suivants
- Obtention du contenu de la page db_export.php, qui liste les tables présentes sur le serveur
- Appel du script export.php pour obtenir une version compressée des instructions SQL nécessaires pour restaurer la base et toutes ses tables avec leur contenu
- Sauvegarde du fichier avec la date du jour
Prérequis
phpMyAdmin est installé sur le serveur
Téléchargement
save_sql_phpmyadmin_v1 Testé avec phpMyAdmin 3.2.1 réglé pour une authentification par cookie où une seule base de données est accessible à l'utilisateur connecté.
Référence
FAQ de phpMyAdmin : How can I backup my database or table?
Mots-clés
sauvegarde, backup, base de données, database, remote, à distance, mysql, sql, phpmyadmin, cookie, auth type, bash, sh, linux, ligne de commande, command line, terminal, wget, http request, automatique, automated, automation, cron, php, restricted access, GET, POST, parameter, URL, hyperlien, hyperlink, token, export.php, gzip, compression
mardi, septembre 23 2008
Servir des fichiers KML sur un serveur Apache
Par Pierre Fritsch le mardi, septembre 23 2008, 11:23 - Apache
Vous venez de vérifier un fichier KML sur un serveur web avec Feed Validator et celui-ci vous indique que le serveur retourne le MIME-Type "text/plain" pour le fichier concerné.
mercredi, septembre 3 2008
PDF Version of the Djangobook
Par Pierre Fritsch le mercredi, septembre 3 2008, 20:25 - Google
I compiled a PDF file of the Djangobook. The current version 1.0 seems to have been last changed on Dec 12, 2007.
The file is available here for downloading: djangobook_en_1_0.pdf
lundi, septembre 1 2008
Redimensionner un lot d'images avec Windows et ImageMagick
Par Pierre Fritsch le lundi, septembre 1 2008, 15:44 - Windows
Comment redimensionner (ou appliquer un traitement d'image en masse à) un lot d'images en ligne de commande sous Windows ?
dimanche, août 3 2008
Afficher ou cacher les fichier masqués sous Mac OS X
Par Pierre Fritsch le dimanche, août 3 2008, 09:39 - Mac
Comment faire pour afficher les fichiers dont le nom commence par un point dans le Finder ?
(Vous voulez par exemple éditer un fichier .htaccess et vous ne le trouvez pas graphiquement)
samedi, août 2 2008
Convertir une vidéo pour lecture sur un téléphone portable Sony Ericsson W810i
Par Pierre Fritsch le samedi, août 2 2008, 12:26 - Mac
Quel format vidéo utiliser pour une lecture sur un téléphone portable Sony Ericsson W810i ?
samedi, mai 10 2008
Comparer 2 tableaux avec Excel
Par Pierre Fritsch le samedi, mai 10 2008, 15:33 - Excel
Vous voulez comparer 2 tableaux dans Excel pour détecter les lignes qui ont été modifiées, ajoutées, ou supprimées.
jeudi, avril 3 2008
Résoudre un labyrinthe avec Photoshop
Par Pierre Fritsch le jeudi, avril 3 2008, 20:17 - Jeux et solveurs
Tout le truc consiste à comprendre que le chemin que l'on trace à la fin sépare l'espace des murs en deux sous-ensembles.
mercredi, mars 26 2008
Bash scripting : for loop and left padding with zeros
Par Pierre Fritsch le mercredi, mars 26 2008, 22:34 - Unix
for ((i=0;i<=10;i+=1)) do printf "%03d\n" $i done
Output:
000 001 002 003 004 005 006 007 008 009 010
vendredi, février 15 2008
Installer CakePHP sur un hébergement free.fr
Par Pierre Fritsch le vendredi, février 15 2008, 06:46 - PHP
Je me suis basé sur les instructions de Tony (groupe de discussion Cakephp-fra) pour créer un patch de la dernière version de CakePHP qui fonctionne sur votre hébergement free.fr.
Pour l'installer :
- Téléchargez la dernière version sur http://www.cakephp.org/
- Téléchargez mon patch dans le même dossier : cake_1.1.19.6305.free.patch
- Dans le dossier, exécutez les deux lignes de commande suivantes :
tar xvjf cake_1.1.19.6305.tar.bz2 patch -p 0 < cake_1.1.19.6305.free.patch
Voilà, il ne reste plus qu'à construire et uploader votre application sur ftpperso.free.fr.
Pour votre premier scaffolding, vous pouvez aller voir mon post du 1er mai 2007.
Créer et appliquer un patch
Par Pierre Fritsch le vendredi, février 15 2008, 06:31 - Unix
Contexte : vous voulez transmettre à d'autres personnes les modifications que vous effectuez sur un dossier.
dimanche, novembre 18 2007
Transformer un lot d'adresses en fichier KML
Par Pierre Fritsch le dimanche, novembre 18 2007, 14:10 - Google
Comment afficher un lot d'adresses sur une carte ?
Vérifier la syntaxe d'un fichier KML
Par Pierre Fritsch le dimanche, novembre 18 2007, 14:03 - Google
Vous souhaitez mettre en ligne un fichier KML et vous aimeriez vérifier qu'il est conforme à la syntaxe Google Maps.
vendredi, novembre 16 2007
Comment extraire l'hyperlien contenu dans une cellule Excel
Par Pierre Fritsch le vendredi, novembre 16 2007, 19:07 - Excel
Vos cellules Excel sont cliquables et contiennent un lien vers une page web, et vous aimeriez afficher tous ces liens qui n'apparaissent que lorsque vous passez la souris sur les cellules concernées.
mardi, novembre 6 2007
Comparer deux dossiers récursivement
Par Pierre Fritsch le mardi, novembre 6 2007, 21:43 - Mac
Vous venez de copier un dossier avec énormément de fichiers, sous-dossiers etc. vers un autre emplacement, et vous aimeriez vous assurer que la copie est identique à l'original, sans comparer vous-même les fichiers un à un.
mardi, octobre 23 2007
Redimensionner un lot d'images avec ImageMagick sous Windows
Par Pierre Fritsch le mardi, octobre 23 2007, 10:35 - Windows
How to use the convert command of the ImageMagick package for batch processing in the windows prompt?
Following solution works under Windows XP, in the cmd window
FOR %f IN (*JPG) DO convert -resize 2100 %f %f
« billets précédents - page 1 de 4



