jeudi 18 décembre 2014

Comment faire un count avec Doctrine ?

mercredi 10 décembre 2014

Qualité des images générées avec GD imagejpeg

En générant une image avec la fonction imagejpeg de la librairie GD, je me suis rendue compte que la qualité était diminuée par rapport à ce que j'attendais.

Par défaut, la fonction imagejpeg génère les images avec une qualité de 75. Pour ne pas avoir de perte de qualité, il faut la passer à 100 via le troisième paramètre de la fonction :

jeudi 4 décembre 2014

Comment supprimer plusieurs lignes sous vi ou vim

Appuyer sur la touche Esc, puis ":1,10d" pour supprimer de la ligne 1 à 10.
Pour supprimer le contenu complet du document ":0,$d"

vendredi 28 novembre 2014

Enlever les pointillés autour des liens en CSS

Il s'agit de la outline du lien (a) qui apparaît lorsque vous cliquez dessus.

Afin qu'elle n'apparaisse plus :

vendredi 17 octobre 2014

Autoriser les requêtes ajax cross domain sur votre site web avec le fichier .htaccess

Comment rendre votre site interrogeable en cross domain, par exemple votre API.

Ajouter dans le .htaccess :

Dans le cas présent, tous les domaines sont autorisés à faire n'importe quel type de requête ajax sur votre site web.

mercredi 8 octobre 2014

Configurer le HTTPS sur votre environnement de développement local

Vérifier que le paquet openssl est installé, sinon l'installer.
sudo apt-get install openssl
Puis générer le certificat en ligne de commande :
sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key
Puis répondre aux questions. Attention à la question “Common Name (eg, YOUR name) []:” vous devez mettre l'url locale du projet, par exemple :
myproject.local

Ensuite, éditer le fichier /etc/apache2/ports.conf et rajoutez la ligne suivante :
Listen 443
Si le port 443 est déjà écouté, ne pas modifier ce fichier.

Editer ensuite votre virtual host. Jusqu'à maintenant il est censé ressembler à ça :
<VirtualHost *:80>
    DocumentRoot /home/me/Workspace/myproject/www
    ServerName myproject.local
 
    <Directory /home/me/Workspace/myproject/www>
 Require all granted
        AllowOverride All
    </Directory>
</VirtualHost>
Ajouter à la suite :
<VirtualHost *:443>
    DocumentRoot /home/me/Workspace/myproject/www
    ServerName myproject.local
 
    SSLEngine on
    SSLCertificateFile /etc/apache2/server.crt
    SSLCertificateKeyFile /etc/apache2/server.key
 
    <Directory /home/me/Workspace/myproject/www>
        Require all granted
        AllowOverride All
    </Directory>
</VirtualHost>
Enfin, redémarrer Apache :
sudo service apache2 restart

Appeler votre propre API en JSONP

Comment rendre votre API Silex "appelable en JSONP" depuis un autre domaine :


Et comment l'appeler depuis par exemple votre appli angularjs :

Charger une librairie dynamiquement en javascript

Disons que vous développez un tag quelconque, par exemple :

Vous aimeriez que le fichier javascript chargé en charge un autre, par exemple jquery, voici ce que vous devez mettre dans mylib.js :

Petit bonus : disons que dans ce fichier javascript mylib.js vous souhaitez charger un autre fichier javascript, en lui spécifiant dynamiquement le même domaine que mylib.js, vous utilisez alors l'id donné à la balise script du tag :

mardi 7 octobre 2014

Installer et utiliser plusieurs version de nodejs avec nvm

NVM est un gestionnaire de versions pour nodejs qui vous permet d'installer une version précise de nodejs ou la dernière version stable, etc...

Plusieurs versions peuvent être maintenues en même temps sur votre machine, et c'est vous qui décidez celle que vous voulez utiliser.

Pour installer NVM :
curl https://raw.githubusercontent.com/creationix/nvm/v0.17.2/install.sh | bash

Pour installer une version précise de node :
nvm install 0.10

Pour installer la dernière version stable de node :
nvm install stable

Pour voir toutes vos versions de node installées :
nvm ls

Pour utiliser une version de node :
nvm use 0.10

Pour ne pas avoir à refaire un nvm use à chaque fois que vous ouvrez un terminal, vous devez définir votre version de node par défaut : 
nvm alias deault v0.10

Repo github officiel : https://github.com/creationix/nvm

jeudi 2 octobre 2014

Annuler des modifications locales non commitées, puis commitées avec git

1) Annuler des modifications non addées et non commitées :

git reset --hard
-> pour remettre les fichiers dans leur état d'origine

git clean -fd
-> pour supprimer les fichiers et dossiers non trackés

2) Supprimer le dernier commit et revenir à celui d'avant comme si vous n'aviez jamais rien fait :

git reset --hard HEAD~1

mercredi 1 octobre 2014

jeudi 5 juin 2014

Comment faire un count limité en SQL ?

Admettons que j'ai une table commentaires avec 5 000 000 enregistrements.

Je souhaite récupérer au maximum les 20 premiers commentaires d'un user qui a 950 commentaires.

Si j’exécute la requête :

Le résultat retourné sera 950.

Pour récupérer un nombre limité, je dois faire une sous-requête :

Le résultat retourné sera alors 20.

Si mon user n'avait que 4 commentaires, le nombre retourné serait 4.