Mots-clé : tip

WordPress et Permaliens : une solution / hint / astuce

Si jamais les permaliens ne fonctionnent pas :

  • via les fichiers .htaccess ;
  • que vous avez essayé de copier-coller le code qu’il vous a donné dans un fichier vhost ;
  • que vous n’y comprenez rien en règles de réécriture…

Alors essayez de mettre ce qui suit en règle de réécriture dans votre fichier vhost :

# Olivier Pons : règles pour WordPress
# faites "à la main" :
# si index, on stoppe tout :
RewriteRule ^index\.php$ - [QSA,L]
# Tester TOUTES les possibilités
# pour voir si c'est un fichier :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule . /index.php [QSA,L]

Dans mon cas leurs règles ne fonctionnaient pas car il ne voyait pas que les fichiers étaient bien là, alors j’ai ajouté la vérification en ajoutant %{DOCUMENT_ROOT}.
Oui je sais ça n’est pas l’idéal, mais comme il est écrit sur l’entrée de Facebook :

Done is better than perfect.

…And I got this thing done. Whatever.

Astuce jQuery : accepter un clic une fois, une seule fois, pas de double clic

A lieu de faire

$('#mon_element').on('click', function() {
  mafonction();
} );

c’est pas « on » c’est « one » :

$('#mon_element').one('click', function() {
  mafonction();
} );

En fait une fois qu’on a cliqué sur l’élément en question, jQuery supprime l’évènement avec la fonction unbind().

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 » :

  1. tapez les touches alt + F2 et une boite de dialogue va s’ouvrir ;
  2. dans cette boîte, tapez ccsm puis validez par la touche entrée ;
  3. de là, cherchez "Délai de pop-up de fenêtre", ou en anglais : "Popup Window Delay" ;
  4. cliquez sur l’onglet "Comportement" ou "Behavior" ;
  5. 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 : insérer nom du fichier courant

Tous mes fichiers php commencent ainsi :

 1 <?php
 2 /**
 3  * fichier decision.php
 4  *
 5  * @author Olivier Pons
 6  * @version 1.0
 7  * @since 1.0
 8  * @copyright Olivier Pons
 9  *
10  * @package Ajax
11  */
12

Comment faire de manière pratique, sous vim, pour s’assurer que la ligne :
* fichier decision.php
contient vraiment le bon nom du fichier.

C’est très simple (comme tout dans vim), mais il suffit de le savoir (comme tout dans vim) :

Je vais détailler pas à pas l’explication de la macro et au final la mettre en entier :

Il faut donner l’ordre en ligne de commande = deux points = « : »
Donc : :
Il faut lui dire de rechercher = pourcent = « % »
Donc : :%
Il faut lui dire que c’est une chaine qu’on recherche = s = « s »
Donc : :%s
Ensuite on précise qu’on a fini l’ordre = slash = « / »
Donc : :%s/
Ensuite on précise le premier paramètre = chaine à rechercher = « fichier  » = « fichier  »
Donc : :%s/fichier
Ensuite on précise que le premier paramètre est une expression régulière qui doit contenir la chaine à rechercher, mais aussi tout ce qui suit = « :%s/fichier \(.*\) »
Donc : :%s/fichier \(.*\)
NB : on est obligé de mettre des antislashes \(.*\) devant les parenthèses pour dire que ce sont des caractères spéciaux qui doivent être interprétés comme des commandes.
Puis premier paramètre = fini = slash = « / »
Donc : :%s/fichier \(.*\)/
Puis le second paramètre = ce qui va être remplacé. Là c’est comme pour les parenthèses juste au dessus : on précise que c’est un « calcul » a effectuer = signe « = » mais comme c’est un caractère à interpréter on est obligé de mettre l’antislash soit \=.
Donc : :%s/fichier \(.*\)/\=
NB : à partir du signe « \=« , vim sait que ce qui suit est un calcul, donc chaque parenthèse sera déjà interprétée comme un ordre, il n’y aura pas besoin de mettre d’antislash pour les caractères spéciaux telles que les parenthèses, et ce sur tout le paramètre en entier.
Ensuite on lui passe le calcul de l’expression que j’ai fait ainsi (à vous de l’adapter pour vous) : renvoyer le nom du fichier = expand('%') =» ici moi j’aurais « ./json_decision.php » ce qui ne me convient pas. Je voulais uniquement le nom du fichier, sans quoi que ce soit derrière. On peut préciser exactement quelle partie du nom on veut : tapez « :help expand » pour avoir toutes les possibilités. Ici, moi, je ne voulais que le nom du fichier sans rien derrière. Donc j’ai juste tapé : expand('%:t')
Puis second paramètre = fini = slash = « / »
Donc : :%s/fichier \(.*\)/\='fichier '.expand('%:t')/
Enfin en troisième paramètre, les options : il n’y en a aucune mais on aurait pu mettre « g » pour dire de faire ça de manière globale, soit :
:%s/fichier \(.*\)/\='fichier '.expand('%:t')/g

Mais comme je ne veux le faire qu’une seule fois, voici ma ligne finale :

:%s/fichier \(.*\)/\='fichier '.expand('%:t')

Donc en pratique : je liste tout un répertoire de fichiers php, que j’ouvre sous vim, et j’y applique une macro qui fait :
– rechercher/remplacer que je viens d’expliquer ;
– sauvegarde du fichier et on passe au suivant (« wn« ).

Ainsi, j’ai passé tous mes fichiers et tout a fonctionné comme sur des roulettes : je suis sûr que dans tout mon code, dans le commentaire de début, le nom du fichier est en adéquation avec le vrai nom !

Si vous avez des suggestions ou commentaires n’hésitez pas !

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

Vim : comment changer les couleurs sur Linux

Sur Linux en ligne de commandes il vous faut lister toutes les colorations possibles :
C’est simple tapez l’ordre « locate koehler » comme ceci :
# locate koehler
/usr/share/vim/vim70/colors/koehler.vim
#

Et vous aurez la réponse qui vous dit où se trouve le fichier de coloration appelé « koehler »
C’est là que se trouvent tous les fichiers. Donc dans notre cas c’est dans :
/usr/share/vim/vim70/colors/
Il suffit de faire un listing de toutes les colorations disponibles :
~# ls -1 /usr/share/vim/vim70/colors/
blue.vim
darkblue.vim
default.vim
delek.vim
desert.vim
elflord.vim
evening.vim
koehler.vim
morning.vim
murphy.vim
pablo.vim
peachpuff.vim
README.txt
ron.vim
shine.vim
slate.vim
torte.vim
zellner.vim
~#

Ensuite éditez votre fichier de configuration personnel (celui que vim lit et applique lorsque vous le lancez) :
vim ~/.vimrc

Et ajoutez-y à la fin une coloration. Moi j’aime bien zellner.vim :
colorscheme zellner

Sauvez le fichier puis éditez n’importe quel fichier et vous verrez que la coloration a changé.