var Phenix = function () {
Troll du Web depuis 1996

Trucs et astuces

Limiter le pouvoir d’Iedit-mode

Petit pense-bête pour Iedit-mode et Spacemacs.
Cela peut vous faire gagner un temps fou !

Iedit permet de replacer toutes les occurrences d’une sélection en une seule fois. Mais par défaut, il le fait dans tout le buffer.

Il existe cependant quelques possibilités pour limiter le « scope », la sélection :

  • F pour limiter Iedit à la fonction en court. C’est parfait pour renommer une variable !
  • L pour limiter à la ligne en court.
  • J pour ajouter une ligne du dessous a la sélection Iedit.
  • K pour ajouter une ligne au-dessus de la sélection Iedit.
  • Naviguer entre les occurrences : n et N ou TAB.

Il est aussi possible de sélectionner une zone pour réduire la sélection Iedit :

  1. SPC s e pour activer Iedit.
  2. Sélectionnée la zone (v en Evil-mode, les autres comme V ne fonctionne pas).
  3. SPC s e pour réactiver Iedit qui limitera l’effet.
Voir en ligne : How to replace words in a region using iedit ?

Une marge sur le « scroll » des ancres HTML

Voici une petite astuce pour avoir une marge, entre le « haut du browser » et l’emplacement réel de l’ancres, lorsque l’on clic sur une ancre.

  1. /**
  2.  * Appliquer une marge sur les ancres HTML c'est plus
  3.  * ergonomique.
  4.  */
  5. :target {
  6.     border-top: 75px solid transparent;
  7.     margin: -75px 0 0;
  8.     -webkit-background-clip: padding-box;
  9.     -moz-background-clip: padding;
  10.     background-clip: padding-box;
  11.     outline: none; /* Supprimer la outline disgracieuse de Chrome */
  12. }

:target est une sélécteur css bien supporté qui cible toutes les ancres. Du coup on lui ajouter une fausse marge.
L’avantage ce code, c’est qu’il va fonctionner même si l’ancre est dans un texte. Ce que n’est pas le cas de la majorité des techniques à base de display: block; et de :before.

Voir en ligne : offsetting an html anchor to adjust for fixed header

Un serveur de mail local pour le développement web

Sous Ubuntu 16.04 ou LinuxMint 18

Petite astuce pour avoir un serveur de mail local, qui renvoie tous les mails envoyés par PHP (ou autre) vers username@localhost.

La première chose est d’installer le serveur d’envoi, postfix :

  1. sudo apt install postfix

Il est possible qu’il soit déjà installé, mais pas spécialement bien configurer, pour être certain, il vaut mieux le reconfigurer :

  1. sudo dpkg-reconfigure postfix

Sélectionnez l’option Local uniquement et laisser toutes les autres options par défauts.

Ensuite, j’ai fait une petite page php de test :

  1. <?php
  2. mail('username@localhost', 'test', 'test');

L’envoie du mail devrait alors créer un fichier dans /var/mail/username. Vérifiez que tout ce passe bien :

  1. more /var/mail/username

Vous devriez avoir quelques choses comme ceci dans votre terminal :

From phenix@Thanatos.localdomain  Thu Jun  1 17:23:07 2017
Return-Path: <phenix@Thanatos.localdomain>
X-Original-To: phenix@localhost
Delivered-To: phenix@localhost.localdomain
Received: by Thanatos.localdomain (Postfix, from userid 1000)
        id CF2F385652; Thu,  1 Jun 2017 17:23:07 +0200 (CEST)
To: phenix@localhost.localdomain
Subject: test
X-PHP-Originating-Script: 1000:test_mail_local.php
Message-Id: <20170601152307.CF2F385652@Thanatos.localdomain>
Date: Thu,  1 Jun 2017 17:23:07 +0200 (CEST)
From: phenix@Thanatos.localdomain (phenix)

test

J’ai laissé les valeurs de ma machine, ce sera sans doute différent sur la vôtre.

On peut ensuite configurer Thunderbird pour lire cette boite mail. J’utilise la version 52.1.1.

Fichier > Nouveau > Autres comptes...

Configurez une Unix Mailspool (Movemail).

Voilà, Thunderbird va lire la boite locale.

Rediriger tous les mails vers usename@local

L’idée de base est de recevoir tous les mails envoyés par le serveur dans cette boite, afin de débugger facilement.

On va éditer la configuration de postfix dans le fichier /etc/postfix/main.cf pour y ajouter :

  1. virtual_alias_maps = pcre:/etc/postfix/virtual

Créer ensuite le fichier /etc/postfix/virtual et placez y le code suivant :

  1. /.*@.*/ username

Il faudra également installer le paquet postfix-pcre :

  1. sudo apt install postfix-pcre

Voilà, tout le trafic mail du serveur va aller dans votre boîte mail locale ! Beaucoup plus pratique pour débugger l’envoie de mail de vos applications :) !


Prendre en compte les branches avec git-svn

En utilisant Git SVN, j’ai découvert un effet de bord assez indésirable : lorsque l’on utilise fait un dcommit pour envoyer les modifications sur le serveur, il envoie toutes les branches.

C’est très gênant, surtout si vous avez plusieurs choses en cours, et quelle pourrait casser votre application.

Heureusement, il y a une solution : lorsque vous clonez, il faut préciser le dossier du trunk :

  1. git svn clone -T trunk http://example.com/PROJECT

Git svn fera alors le lien master = trunk et vos autres branches seront tranquilles.

Voir en ligne : Checkout only certain branches with git-svn

Emacs/Spacemacs, PuTTy et les couleurs

J’ai remarqué il y a peu que les couleurs d’Emacs/Spacemacs était complètement foireuses en ce connectant depuis Windows et PuTTy.
Mais genre, vraiment moche et illisible.

Rien a voir avec le thème que j’utilise normalement.

Après un peu de recherche, la solution est en faite très simple : il faut activer les 256 couleurs du terminal !

Voilà, on respire, c’est déjà beaucoup mieux :)