Script .bat de backup d’une table MySQL

29 07 2012

Voici un petit script .bat (Windows batch), qui permet de faire un backup d’une base MySQL (avec une table particulière si vous la précisez dans la commande).

Le backup est créé dans le même dossier que le script bat, et porte la date et l’heure dans son nom de fichier
ex: backup maBase maTable 2012-07-29_16h45m33.sql

:: Script de backup MySQL

:: Récupération de date/heure dans la variable datetime
echo off
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
set year=%date:~-4%
set month=%date:~3,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%
set datetime=%year%-%month%-%day%_%hour%h%min%m%secs%

:: Backup avec mysqldump
mysqldump -u root -proot maBase maTable > "backup maBase maTable %datetime%.sql"

Il y a plusieurs points sur lesquels il faut faire attention (prérequis) :

  • Ne mettez pas d’espace autour de l’opérateur d’affectation (=), sinon windows ne les reconnaitra pas
  • Vous devez avoir un compte MySQL ayant un mot de passe, sinon un prompt va vous demander le mot de passe à chaque exécution
  • Il n’y a pas d’espace entre -p et le mot de passe, alors qu’il y en a un entre -u et le nom d’utilisateur, ne cherchez pas pourquoi c’est comme ça ^^
  • Le programme mysqldump.exe doit se trouver dans un dossier appartement au Path (variable d’environnement de Windows)
    ex: C:\EasyPHP5.2.10\mysql\bin


Créer un lien symbolique sur Windows, comme sur Unix

2 07 2012

Voilà une astuce qui va plaire à tout ceux qui font du développement web sous techno Apache (PHP entre autre…).

Vous connaissez peut-être les liens symboliques sous Unix (qu’on voit souvent sous la dénomination “Symlinks” dans la configuration Apache, ex: FollowSymLinks).

En fait un lien symbolique est un pointeur sur un fichier, complétement transparent pour les programmes qui l’utilise.

Si vous créez un lien symbolique vers /Applications/mondossier dans /Users/Vincent/monSymLink, et que vous ouvrez le dossier /Users/Vincent/monSymLink dans n’importe quel programme, tout va se passer comme si ce dossier /Users/Vincent/monSymLink existait vraiment, ça n’est pas juste une redirection vers /Applications/mondossier, c’est le même dossier accessible depuis 2 liens différents.

Sous Windows cette fonctionnalité n’existait pas, en effet les raccourcis Windows sont juste des redirections qui ne fonctionnent en gros qu’avec l’explorateur Windows, mais pas au niveau du système de fichiers.

N’existait pas, car depuis Windows Vista, Microsoft a enfin introduit la gestion des liens symboliques dans son système d’exploitation, via la commande mklink :

mklink /D /H /J [LINK NAME] [TARGET]

/D : pour créer un lien de type dossier, vers un dossier (symlink)
/H : pour créer un lien de type fichier, vers un fichier (hardlink)
/J : pareil que le hardlink mais pour les dossier (junction)

Il faut vous placer dans le dossier où vous voulez créer le raccourcis avant, puis exécuter la commande.

Exemple :

cd "C:\test-mklink\"
mklink /H monLien.txt "C:\Users\Vincent\Desktop\monFichier.txt"

Pour plus d’info sur tout ça, je vous invite à lire ma source :
http://ipggi.wordpress.com/2009/09/07/windows-file-junctions-symbolic-links-and-hard-links/



MySQL : logger les requêtes SQL

14 06 2012

Sur MySQL il n’existe pas d’outil de profilage comme SQL Server Profiler sur le SGBG homonyme.

Mais pas contre on peut logger toutes les requêtes SQL reçues par le serveur dans un fichier. Pour cela c’est très simple, il suffit de configurer les variables general_log et general_log_file.

Voici comment afficher ces 2 variables pour connaître leur valeur actuelle :

SHOW VARIABLES LIKE "general_log%";

Et voilà comment modifier leur valeur (par exemple) :

SET @@global.general_log = 'ON';
SET @@global.general_log_file = 'C:\\mysql.log';

N.B. Pensez à échapper les antislash avec un 2éme antislash dans le chemin du fichier.

La modification ne sera effective que pour la session actuelle. Si vous redémarrez le serveur MySQL, la valeur initiale de ces 2 variables sera restaurée. Si vous voulez conserver ces paramètres de façon permanente, il faut modifier votre fichier de configuration my.ini.



Accélérer ou ralentir un jeu flash (cheat)

26 05 2012

Ce billet va plaire à tous les gros tricheurs sans scrupule.

Certains jeu flash basés sur l’adresse, la rapidité ou la précision seraient plus faciles à jouer si ou pouvait ralentir la vitesse du jeu.

À l’inverse, d’autres jeux sont un peu longs (surtout au début du jeu), comme certains tower defense ou autre jeu de stratégie.

Bref, j’ai une astuce qui permet de modifier la vitesse d’exécution de n’importe quel jeu flash à l’aide du programme Cheat Engine.

Ce programme sert en fait à “hacker” flash player, pour ceux que ça intéresse il permet même d’éditer des valeurs contenues dans la mémoire (RAM). Du coup on peut par exemple éditer son score à tout moment, ou modifier la quantité d’argent à n’importe quel instant !

Pour en revenir à la vitesse, le principe est très simple : vous lancez votre jeu flash dans un navigateur (Firefox par exemple), et vous lancez Cheat Engine en parallèle.

Dans Cheat Engine, vous cliquez sur le bouton qui clignote en vert en haut à gauche : “Select a process to open“. La liste des programmes en cours d’exécution s’affiche, cherchez votre navigateur (Firefox), puis cliquez sur Open.

Ensuite cochez la case Enable Speedhack à droite, et entrez le facteur souhaité (1 étant la vitesse de jeu normale, si vous mettez 2 ça ira 2 fois plus vite, si vous mettez 0.5 ça ira moitié moins vite).

NB: souvent vous verrez plusieurs processus correspondants à votre navigateur, essayez les tous jusqu’à trouver le bon (celui qui agit sur le jeu flash).



les_joies_du_code();

22 05 2012

Quelques illustrations à des situations qu’on rencontre souvent quand on travaille dans l’informatique :

Quand on me parle d’un framework un peu trop underground :

Et la petite série spéciale StackOverflow, tellement vrai :
Quand je poste une reponse sur stackoverflow :

Quand je trouve une solution sur stackoverflow :

Quand je poste une question sur stackoverflow :

[source]



Robot ballon (MorpHex)

21 04 2012

MorpHex est un robot hexapode qui se transforme en ballon :



Résolution personnalisée pour carte graphique ATI

15 04 2012

Sur les cartes graphiques AMD (ex ATI), il est impossible de définir une résolution d’écran personnalisée (contrairement aux cartes nVidia qui proposent cette fonctionnalité via les paramètres du driver).

On est obligé de choisir parmi un ensemble de résolution prédéfinies.

Heureusement, il existe un petit outil fort utile qui permet d’ajouter ses propres résolutions à la liste des résolutions existantes :

[ATi Custom Resolution Tool V1.02]

L’utilisation est très simple :

  • Vous cliquez sur Get current resolutions pour charger les résolutions déjà présentes (c’est très important pour ne pas les perdre lors de l’enregistrement)
  • Vous ajoutez une ou plusieurs résolutions dans la liste
    Le format est le suivant : <largeur>x<hauteur>x<fréquence>
    Ex: 1280×0760x60 correspond à 1280*760 en 60Hz
    Attention à bien écrire le nombre sur 4 chiffres (il faut écrire 0760 et non 760)
  • Vous enregistrer la nouvelle liste de résolutions en cliquant sur Save table.
    À ce moment, le logiciel aura besoin d’écrire dans la base de registre, et Windows vous demandera si vous autorisez le logiciel à y accéder, il faut accepter.
  • Une fois enregistré, vous cliquez sur Restart ATi driver (ou alors vous redémarrez votre ordinateur), pour que ces changement soient pris en compte

Maintenant votre nouvelle résolution s’affiche dans la liste des résolutions que windows vous propose dans le panneau de configuration.

Pour ceux que ça intéresse, les résolutions prédéfinies sont enregistrées à plusieurs endroits dans la base de registre, dans des valeurs commençant par DALNonStandard (ex: DALNonStandardModesBCD1, DALNonStandardModesBCD2).

Cet utilitaire sert justement à éditer toutes ces valeurs rapidement, sans avoir à chercher et à toutes les modifier une par une.



Naviguer plus facilement dans la base de registre windows

4 03 2012

Pour accéder et éditer la base de registre sous windows, on utilise l’utilitaire par défaut : regedit.exe.

Cet utilitaire n’est pas très pratique à de nombreux égards :

  • Impossible d’accéder directement à une clé, comme on le fait dans l’explorateur windows (dans la barre d’adresse, ex: C:\Program Files (x86)\Adobe\Adobe After Effects CS4)
  • La recherche se fait “pas à pas”, au lieu d’avoir une liste de résultats

Mais il existe des solutions pour améliorer ces points, avec par exemple Registry Jumper qui permet d’accéder directement à une clé en faisant un copier-coller par exemple :

RegJump

Mais il y a encore plus radical, on peut remplacer regedit par un autre utilitaire, comme RegAlyzer, qui apporte pleins de fonctionnalités super utiles :

  • Annuler et Rétablir (Undo/Redo) en format .reg
  • Fonctions de recherche améliorées (liste de résultats)
  • Aller à une clé en la tapant/copiant dans un dialogue (au lieu de parcourir)
  • Modification DWord avec affichage en parallèle hexa/décimal/binaire
  • Affichage du contenu d’un fichier .reg sans l’importer


Erreur Firefox : Cette adresse est interdite

29 02 2012

Par défaut, Firefox bloque certains ports.

Par exemple, si vous essayez d’accéder à l’une de ces adresses :

http://localhost:143/
http://localhost:993/
http://localhost:110/

Vous aurez une jolie erreur :

Cette adresse est interdite
Cette adresse utilise un port réseau inhabituel pour la navigation Web. Par mesure de sécurité, Firefox a abandonné la requête.

(”Port Restricted for Security Reasons” en VO)

Pour désactiver cette sécurité ennuyeuse, allez dans la configuration avancée (about:config), trouvez ce paramètre :

network.security.ports.banned.override

Et donnez lui la valeur 1-65535 pour débloquer tous les ports.

Note : sur les versions récentes de Firefox (firefox 8 au moins), ce paramètre n’existe pas par défaut, il suffit de le créer (clic droit > Nouvelle > Chaîne de caractères).



Wake on LAN depuis internet (wake on wan)

28 02 2012

Après avoir galéré et beaucoup cherché sur internet comment faire fonctionner le wake on lan depuis internet, j’ai décidé de synthétiser dans ce billet tout ce que j’ai appris sur le sujet.

Ce billet a été déplacé ici : Wake on LAN depuis internet (wake on wan).