Mots-clé : linux
Linux, MySQL, utf8 : requêtes et queries : comment éviter le décalage du résultat
Peut être avez-vous déjà rencontré ce problème : vous faites toute une base de données en utf-8.
En suivant les recommandations ici, c’est facile. Le seul problème, et ils ne donnent pas de solution, c’est que lorsqu’on fait les requêtes, les résultats sont bien renvoyés en utf-8 mais il y a un décalage s’il y a des accents :
Comment faire pour éviter ce décalage ? Facile. La solution ici.
En fait dans votre fichier de configuration, il faut aussi configurer le client, pas uniquement le serveur.
Il faut ajouter la directive « default-character-set = utf8 » dans le fichier de configuration :
sudo vim /etc/mysql/my.cnf [client] port = 3306 socket = /var/run/mysqld/mysqld.sock default-character-set = utf8
Et puis relancer le service :
sudo service mysql restart
Et voici le résultat : tout est rentré dans l’ordre :
Vi / vim : comment remplacer des espaces par des espaces insécables ( )
Tout est dans le titre.
J’ai souvent ce problème : je fais copier coller de code dans un article WordPress que je veux publier, je mets le code entre <code></code> mais le problème, c’est que les espaces de début sont ignorés et l’indentation est perdue.
Voici donc l’astuce, sous vi, pour remplacer tous les espaces uniquement au début de la ligne par .
C’est à dire que :
extend: 'Ext.panel.Panel',
devient :
extend: 'Ext.panel.Panel',
Ce que je ne veux pas bien évidemment.
J’ai posé la question ici : vim-regexp-help-change-spaces-to-nbsp.
Et je vous laisse y lire les réponses, mais la solution que j’ai retenue :
:%s/^ \+/\=repeat(" ",strlen(submatch(0)))
Site des vimgolfers : http://vimgolf.com/.
Ubuntu : alt-tab rapide : howto
D’abord installez compizconfig-settings-manager : le tutoriel est ici :
http://packages.ubuntu.com/search?keywords=compizconfig-settings-manager
Après avoir installé « compizconfig settings manager » :
- tapez les touches
alt
+F2
et une boite de dialogue va s’ouvrir ; - dans cette boîte, tapez
ccsm
puis validez par la toucheentrée
; - de là, cherchez
"Délai de pop-up de fenêtre"
, ou en anglais :"Popup Window Delay"
; - cliquez sur l’onglet
"Comportement"
ou"Behavior"
; - vous verrez une valeur : modifiez la en y mettant la valeur
0
.
Et voilà, la combinaison alt
+ Tab
pour passer d’une application à une autre est devenue instantanée !
Pour information, le tutoriel est ici :
http://askubuntu.com/questions/75250/how-to-make-alt-tab-switch-quickly
http://askubuntu.com/questions/43875/how-do-i-adjust-the-alt-tab-speed
vim : mettre en surbrillance les espaces inutiles en fin de code
Vous en avez marre des espaces en fin de code qui ne servent à rien ?
Vous voulez vous conformer à beaucoup de pratiques classiques (Apache, horde, etc.) ?
Voici le petit truc qu’il vous manque, à ajouter dans votre fichier vim
:
" Ce code mettra en surbrillance rouge vif " tous les espaces inutiles après la fin de code : highlight WhitespaceEOL ctermbg=red guibg=red match WhitespaceEOL /\s\+$/
Ce code de configuration vim va mettre en rouge tous les espaces inutiles en fin de code.
Fabuleux non ? 😉
Merci à ce site.
Gimp, scripting et Python-fu : exemple par la transformation d’une image PNG en image transparente
J’ai été plus loin dans l’automatisation de Gimp.
J’ai voulu reprendre mes deux articles qui parlaient de Script-fu : le premier pour débuter ici, et le second qui passe à peine à la vitesse supérieure, qui explique l’assignation des variables ici.
Mais comme je suis un grand fan de Python et que tout a été fait pour pousser Python en avant dans Gimp, j’en ai profité.
Trois heures de travail avant d’y arriver.
Première chose à savoir :
On parle de script Python, mais ce sont des plugins.
Donc, lorsqu’on les installe, il faut les mettre dans le répertoire ~/.gimp/plug-ins/
et non pas ~/.gimp/scripts/
.
Deuxième chose :
Ils doivent être exécutables. Donc :
chmod +x ~/.gimp/plug-ins/monscript.py
Troisième chose :
Enfin, allez chercher des exemples ici : http://registry.gimp.org/
Vous les installez et vous les lancez à partir de là vous avez tout ce qu’il vous faut.
Si vous avez lu ces trois informations avant de vous lancez dans l’aventure je vous aurais probablement fait gagner au moins une demi-journée.
Enfin, pour que la ligne de commande fonctionne sur les dernières versions de Gimp (2.6.8) à l’heure de l’écriture de cet article, il y a plein d’articles obsolètes sur le net. Je vais encore vous faire gagner des heures de recherche :
Voici un exemple complet d’un lancement en ligne de commande qui fonctionne :
gimp -i --batch '(python-fu-batch-to-transparent-indexed RUN-NONINTERACTIVE "/home/olivier/Bureau/france.php.png" "/home/olivier/Bureau/france.2.php.png")' -b '(gimp-quit 0)'
Et voici mon plugin tout simple que j’ai codé en 15 minutes, mais avant d’arriver là j’ai cherché pendant six heures…
Cliquez ici pour le télécharger.
Ce plugin transforme une image PNG en la même image, mais en transparente et en couleurs indexée.
Il n’est pas 100% terminé, car la couleur de transparence est codée en dur, mais il fonctionne très bien pour peu que votre couleur soit le blanc 🙂
Pour ce qui est de la méthode, je me suis très fortement inspiré de ce site.
Si je vous ai aidé n’hésitez pas à me laisser un message !
Awstats et activation de plugins
Lorsque vous installez awstats (un outil pour faire des jolies statistiques de fréquentation), certains plugins sont désactivés par défaut :
- decodeutfkeys
- ipv6
(entre autres).
L’astuce est extrêmement simple :
Il suffit de lire les commentaires dans le fichier et de lire les modules requis :
Cherchez # REQUIRED MODULES
Respectivement, pour les deux modules :
Encode and URI::Escape
Net::IP and Net::DNS
En gros il faut installer ces « plugins Perl » Encode, URI::Escape, Net::IP
et Net::DNS
.
Les ordres à taper sont hyper simples : il vous suffit, en ligne de commande, de :
- lancer la console d’outils Perl
(ce n’est peut-être pas exactement cela, mais je le vois comme ça) : tapez
cpan
- puis tapez
install "nom du module"
install Encode
install URI::Escape
install Net::IP
install Net::DNS
Et à chaque ordre, lorsque vous validez par la touche entrée, toute une liste de modules s’installent, et à la fin… tout fonctionne comme par magie !
Comment les utilisateurs de Linux – Windows – Mac voient les ordinateurs Linux – Windows – Mac
Voici une petite image qui m’a bien fait rire :
Si vous avez des commentaires, ou d’autres images dans le genre, n’hésitez pas à laisser un commentaire en conséquence !
scp : comment résoudre le problème C0644
Il arrive parfois que lorsqu’on fait un scp, ça ne fonctionne pas, et on peut lire quelque chose comme :
>> scp root@olivierpons.fr:/var/www/html/pysoko.tar.bz2 .
root@olivierpons.fr's password:
C0644 129502 pysoko.tar.bz2
>>
Dans cet exemple, je veux récupérer le fichier :
pysoko.tar.bz2
qui est sur le PC distant dans le répertoire
/var/www/html/
sachant que le PC distant est nommé :
olivierpons.fr
.
En fait le problème est super simple : lorsque le programme scp
se connecte pour faire la copie, un shell du distant nommé olivierpons.fr
est ouvert, et par conséquent tout ce qu’il y a dans la configuration du shell est exécuté, donc tout ce qu’il y a dans le fichier de configuration du shell .bashrc
.
Pour faire simple, si vous avez fait un « echo
» quelque part dans le fichier de configuration du shell .bashrc
, changez le par tty -s && echo "
.
L’explication est dans ce site génial, qui explique tout sur le SCP, encore mieux que mon article, qui sort pourtant numéro un sur google France lorsqu’on tape scp linux
…
Le monde est injuste !
shell : remplacer un retour chariot par un espace
Super facile : l’outil tr
.
Exemple concret : je veux lister les fichiers d’un répertoire et tous les passer à vim
, par exemple pour y appliquer une macro.
Je les liste à la main du genre :
~/ # find ws -type f
ws/jsDecision.php
ws/jsDossierDocuments.php
ws/jsInfosEmprunt.php
ws/jsInternetDocumentDossierEditer.php
ws/jsListeFormulesGaranties.php
ws/jsLogin.php
Il suffit d’ajouter | tr '\r\n' ' '
(qui signifie « transforme tous les retours chariots en espaces ») :
~/ # find ws -type f | tr '\r\n' ' '
ws/jsDecision.php ws/jsDossierDocuments.php ws/jsInfosEmprunt.php ws/jsInternetDocumentDossierEditer.php ws/jsListeFormulesGaranties.php ws/jsLogin.php