Accueil

Ecrire une extension pour Google Chrome

Un simple plugin pour gagner du temps


20 février 2017

Si vous utilisez Google Chrome vous avez probablement déjà utilisé une extension comme adblock.Une extension chrome n'est rien de plus qu'une fonction javascript. Chrome fournit une API que cette fonction peut utiliser pour manipuler les données du client, le DOM de la page etc...U ... lire la suite

Ouvrir un terminal pendant l'installation de Windows


13 février 2017

Pendant une installation de Windows 10, il m'est arrivé de devoir ouvrir un terminal pour utiliser des outils de manipulation de partitions en ligne de commande.Shift + F10 est le raccourci pour ouvrir un invité de commandes sur toutes les dernières versions de Windows.A bientôt :) ! ... lire la suite

Git : annuler le dernier commit sans perdre ses modifications

Revenir en arrière après un git commit amend


13 février 2017

Vous avez fait un git commit --amend et vous vous rendez compte qu'un nouveau commit aurait été préférable ? La ligne de commande ci-dessous permet d'annuler le dernier commit ou amend et de remettre vos fichiers dans la liste des fichiers staged.Annuler le dernier commit en gardant les m ... lire la suite

JSONP : envoyer des requêtes cross-domains

Contourner la same-origin policy


10 février 2017

JSONP (JSON with Padding) est le nom d'une technique permettant de contourner les sécurités misent en place par la norme same-origin policy. Cette norme interdit entre autres d'utiliser l'objet XMLHttpRequest (et donc l'AJAX) pour envoyer une requête vers un autre domaine que le domaine courant. ... lire la suite

SSHFS : monter un système de fichier avec SSH

Intégration d'un filesystem distant.


09 février 2017

SSHFS est un logiciel qui permet de monter un système de fichier distant à travers SSH. Vous aurez accès à ce filesystem comme s'il était directement intégré à votre propre système.Les commandes ci-dessous sont testées sous fedora.Créer un montage avec ssh# Installation dnf in ... lire la suite

ValueObject : qu'est ce que c'est ?

Quelle différence entre ValueObject et Entity ?


08 février 2017

Souvent associés au Domain Driven Design (DDD), les ValueObjects font partie des concepts méconnus mais pourtant très simples que chaque développeur devrait connaître.Le DDD divise nos objets métiers de base en deux catégories : les entités (entity) et les valeurs (value object). Avant mêm ... lire la suite

Linux : débloquer une interface graphique gelée

Utiliser les terminaux virtuels pour débloquer ma machine


06 janvier 2017

La plupart des descendants d'Unix (dont Linux et BSD) disposent d'un système nommé "terminaux virtuels" (virtual terminals ou virtual consoles). Ces terminaux, que vous utilisez probablement déjà sans le savoir, offrent la possibilité d'avoir plusieurs sessions d'interfaces graphiques complèteme ... lire la suite

PHP : modifier les attributs privés d'un objet

Utilisation des fonctions anonymes pour accéder aux attributs protégés d'une instance.


28 décembre 2016

Pour modifier ou simplement accéder à un attribut privé ou protégé d'un objet, il suffit de créer une fonction anonyme et de les lier ensemble. La méthode Closure::bindTo de PHP, si on lui passe l'objet en premier et second paramètre, permet de simuler l'appartenance de notre nouvelle foncti ... lire la suite

Tester l'existence d'un fichier dans l'include path

Utiliser stream_resolve_include_path au lieu de file_exists.


07 mai 2016

PHP permet de modifier le chemin d'inclusion "include_path" des fichiers. L'include path n'est toutefois pas pris en compte par toutes les fonctions de manipulation de fichiers : par exemple file_exists exige un chemin absolu complet.Heureusement, la fonction stream_resolve_include_path p ... lire la suite

Convertir récursivement un objet PHP en tableau

Caster un objet et ses attributs


07 mai 2016

Il n'existe pas de méthode native pour caster un objet récursivement en tableau. Voici une petite fonction qui transformera tous vos objets ainsi que leurs attributs en tableaux. Pour ne pas avoir de surprise avec cette fonction, je vous conseille de bien lire le manuel de get_object_vars.... lire la suite

Gnome 3 : changer les raccourcis clavier systèmes

Modifier les raccourcis clavier en ligne de commandes.


04 avril 2015

Dans Gnome 3, la plupart des raccourcis clavier peuvent être modifiés depuis l'interface graphique "Paramètres > Clavier > Raccourcis". Certains raccourcis systèmes, comme le changement de bureau, ne peuvent être totalement supprimés depuis cette interface. Par exemple, si vous tentez de changer ... lire la suite

Regexp en PHP, le mémo indispensable

Tout ce qu'il faut savoir sur les expressions régulières


28 décembre 2014

Les expressions rationnelles, aussi appelées expressions régulières et abrégées regex ou regexp, sont des outils extrêmement utiles pour rechercher, segmenter et travailler une chaîne de caractères. Il existe de nombreux moteurs de regexp (Perl, POSIX, Java, .NET, Javascript, XML path etc...) et c ... lire la suite

Bash : sortir automatiquement du script si une variable n'est pas initialisée

Utiliser la commande set -u pour tester l'initialisation des variables


16 novembre 2014

La commande set possède plusieurs options très utiles pour sécuriser vos scripts bash. Parmi elles "set -u", que l'on peut aussi utiliser sous la forme "set -o nounset", permet de sortir automatiquement du script lors de l'utilisation d'une variable non initialisée. En plaçant cette commande en h ... lire la suite

Bash : sortir automatiquement du script si une commande échoue

Utiliser la commande set -e pour tester le code retour


16 novembre 2014

La commande set possède plusieurs options très utiles pour sécuriser vos scripts bash. Parmi elles "set -e", que l'on peut aussi utiliser sous la forme "set -o errexit", permet de sortir automatiquement du script lorsqu'une erreur survient. En plaçant cette commande en haut de votre script, vous ... lire la suite

GIT : merger 2 commits

Ajouter des fichiers à un commit déjà existant ou fusionner deux commits


12 novembre 2014

Vous souhaitez attacher vos nouvelles modifications au dernier commit de votre branche :Ajouter mes fichiers à un commit déjà existantgit commit --amendVous avez deux commits déjà créés, vous souhaitez les fusionner pour n'en laisser qu'un :Fusionner deux commits ... lire la suite

Nginx : mettre un serveur par défaut

Lancer une page d'erreur si aucun serveur ne correspond


16 novembre 2014

Nginx a, par défaut, un comportement très déroutant en ce qui concerne les noms de domaines ou sous-domaines qui n'existent pas. Ainsi, si le DNS renvoie plusieurs domaines vers votre nginx (domain1.com, domain2.com, *.domain1.com etc...) et que certains de ces domaines ne sont pas pris en charge ... lire la suite

MySQL ON DUPLICATE KEY UPDATE : insérer ou mettre à jour une ligne

Gérer les insertions de doublons avec MYSQL.


09 novembre 2014

La syntaxe MySQL ON DUPLICATE KEY UPDATE permet de mettre à jour une ligne si une violation de contrainte d'unicité est détectée lors d'un INSERT.Utilisation de ON DUPLICATE KEY UPDATEmysql> CREATE TABLE IF NOT EXISTS `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` var ... lire la suite

MySQL : une table pivot dynamique

Comment transformer les lignes d'une table en colonnes ?


26 octobre 2014

Ce tutoriel a pour but de réaliser une table pivot dynamique pour MySQL.Qu'est ce qu'une table pivot ?La table pivot (en anglais pivot table ou crosstab) est une technique pour faire pivoter une table verticale en table horizontale. En agrégeant les bonnes données, les lignes de la t ... lire la suite