Programmation
15 articles
MariaDB / MySQL: générer un numéro de ligne
Il n'existe actuellement pas de fonction intégrée pour compter les lignes retournées par une requête. La solution est d'utiliser une variable qui est incrémentée dans chaque ligne de résultat, comme ceci:
@ligneActuelle := @ligneActuelle + 1 AS numeroLigne
Nous pouvons utiliser une commande JOIN pour initialiser notre variable sans avoir besoin de SET:
JOIN (SELECT @ligneActuelle := 0) ligne
Une autre notation est de remplacer JOIN par une virgule:
, (SELECT @ligneActuelle := 0) ligne
Voici un exemple de requête complète:
SELECT
titre,
texte,
@ligneActuelle := @ligneActuelle + 1 AS numeroLigne
FROM articles
JOIN (SELECT @ligneActuelle := 0) ligne
Exécuter un script bash local par SSH
Avant ce jour béni, je perdais mon temps à copier mes scripts bash sur les machines distantes sur lesquelles je voulais les exécuter via la commande SSH. Jusqu'à aujourd'hui, quand j'ai découvert que ce n'est pas nécessaire, grâce à l'option -s de bash.
$ ssh utilisateur@machine_distante 'bash -s'
Git: push/pull une nouvelle branche vers/d'un dépôt distant
Pour "pousser" (push) la branche nouvelle_branche vers le dépôt distant origin:
$ git push -u origin nouvelle_branche
L'option -u, équivalente à --set-upstream, indique à Git de suivre cette branche, nous permettant ainsi de récupérer automatiquement les futurs commits effectués en amont via un simple git pull.
Pour récupérer (pull) la branche nouvelle_branche_distante à partir du dépôt distant origin, nous mettons d'abord à jour notre dépôt local:
$ git fetch origin
Nous créons ensuite une branche locale appelée nouvelle_branche_distante et lui faisons suivre (track) celle en amont:
$ git checkout --track origin/nouvelle_branche_distante
PHP: rediriger la sortie de var_dump vers un fichier de log
Je viens juste de rencontrer un bug en production que je ne parviens pas à reproduire en développement. Afin de tenter de le tracer sans gêner les utilisateurs, j'ai utilisé le bout de code suivant pour écrire la sortie de var_dump directement dans un fichier de log.
ob_start();
var_dump($nomDeVariable);
$contenu = ob_get_contents();
ob_end_clean();
fonctionDeLog($contenu);
Préférez var_dump à print_r car le second convertit les valeurs NULL et les booléens (par exemple, il affiche une chaine vide au lieu de FALSE).
Git: cesser de suivre des fichiers sans les supprimer
$ git rm --cached motif
"motif" peut être remplacé par un nom de fichier ou un sélecteur comme nomDuDossier/* pour sélectionner tous les fichiers présents dans le dossier appelé "nomDuDossier".