Top articles
-
Comment configurer un fichier .gitignore global
Selon votre IDE préféré vous avez différents fichiers qui apparaissent à la racine de votre projet: .classpath et cie pour Eclipse *.iml pour IntelliJ ... Sur notre poject il a été décidé de ne pas ajouter ces fichiers aux .gitignore des projets, cependant...
-
Comment faire un "FULL OUTER JOIN" avec MySQL
MySQL ne fournit pas de syntax pour le FULL OUTER JOIN mais par contre on peut facilement obtenir le même résultat à l'aide d'un UNION. SELECT a.*, b.* FROM a LEFT JOIN b USING (id) UNION SELECT a.*, b.* FROM b LEFT JOIN a USING (id); Il est important...
-
L'injection de dépendance pour les nuls
Voilà un terme plutôt impressionnant. Enfin c'est ce que je me disais avant de comprendre de quoi il s'agissait mais en fait c'est un principe assez simple qui se cache derrière ces mots. Commençons par un peu de code pour illustrer le principe. Prenons...
-
Comment connaître le processus qui écoute sur un port
C'est le cas où on a besoin de savoir quel processus écoute sur un port donné. Sous Linux la commande netstat permet de connaître le processus avec l'option -p netstat -anp | grep LISTEN Mais sous Mac OS X l'option -p n'est pas disponible. Il faut donc...
-
Comment détecter les caractères de fin de ligne en php
Si vous avez mis en place un téléchargement de fichier sur votre site vous vous êtes peut être confronté aux différences de caractère de fin de ligne. Par exemple linux et mac os x utilisent le saut de ligne simple (line feed) qui se représente par \n....
-
Comment installer Haskell sous Mac OS X
Pour installer Haskell je vous recommande d'utiliser le gestionnaire de package brew qui rend l'installation beaucoup plus simple. Pour installer haskell il suffit d'installer un compilateur haskell. Le plus connu étant ghc: brew install ghc ghc ne vient...
-
Comment réaliser une directive ng-clickout
Si vous avez remarqué angular fournit une directive ng-click qui permet de configurer une action à exécuter lors d'un click utilisateur sur un élément. En revanche il n'y a pas de directive ng-clickout qui permettrait de configurer une action lors d'un...
-
Comment naviguer dans l'historique des répertoires
Si vous utilisez la ligne de commande assez fréquemment vous savez surement que la commande cd (change directory) permet de retourner dans le répertoire précédent avec : cd - Très pratique mais on ne peut retourner que dans le repertoire précédent il...
-
Comment compiler un template Angular
Maintenant qu'on sait comment télécharger un template angular il va falloir le traiter ou le compiler. C'est à dire remplacer toutes les doubles accolades {{}} par les valeurs correspondantes. Cela se fait en 2 étapes: La compilation qui va produite une...
-
Comment générer un PDF directement depuis le navigateur
Jusqu'à présent j'ai toujours générer les PDF côté serveur mais je viens de découvrir une librairie javascript qui permet de le faire directement dans le navigateur. Il s'agit de jsPDF. Cette librairie est assez facile d'utilisation il suffit de voir...
-
Mac OS X: Outdated version of /usr/bin/install_name_tool
Si vous avez installé une clé 3G Huawei sur votre Mac, Brew n'a sans doute pas apprécié et affiche sans doute l'erreur suivante: $ brew doctor Warning : You have an outdated version of /usr/bin/install_name_tool installed. This will cause binary package...
-
Comment définir son propre format avec Handlebars
Je n'avais jusqu'ici que très peu utilisé handlebars (à la faveur d'angular) mais ce framework m'a plutôt agréablement surpris par sa simplicité et sa facilité d'extension. C'est d'ailleurs cette fonctionnalité que nous allons utilisé pour définir notre...
-
XCode - Command /usr/bin/codesign failed with exit code 1
Comme j'ai perdu pas mal de temps récemment avec la signature de mon app iOS j'ai pensé que ça pourrait servir à d'autres presonnes. Le problème Donc voilà j'ai récemment réinitialisé ma keychain et j'ai donc dû régénérer tous mes certificats et profiles...
-
Comment obtenir les coordonnées de la souris relativement à un élément
J'ai récemment construit une application web qui utilise un canvas dans lequel j'ai besoin de connaître les coordonnées des déplacements de la souris à l'intérieur du canvas. Récupérer les coordonnées de la souris à partir d'un évènement est assez simple...
-
Comment se connecter au daemon docker à distance
Par défaut pour des raisons de sécurité le daemon docker n'est accessible que localement. Il utilise une socket unix locale mais on peut demander à utiliser une socket tcp accessible à distance. Cela s'effectue avec l'option -H lorsqu'on redémarre le...
-
Comment démarrer un conteneur docker en tant que daemon
On peut démarrer un conteneur docker en tant que daemon ce qui est plus pratique que d'embarquer la commande dans un nohup. docker run -d -i -p 7000:7000 ubuntu:trusty netcat -l 7000 Ici c'est l'option -d qui permet de lancer le conteneur en tant que...
-
Comment lier deux conteneurs docker
L'option -p de docker run permet de mapper le port d'un conteneur vers un port de l'hôte. Par exemple pour accéder un service web on utilisera docker run -p 9000:80 ... pour mapper le port 80 du conteneur vers le port 9000 de l'hôte. Il peut y avoir des...
-
Comment déployer un docker registry
En gros un docker registry est une bibliothèques d'images docker. Il y a docker hub qui est le docker registry officiel de docker mais la plupart des entreprises avec qui je travaille utilise leur propre docker registry. En fait il est assez simple de...
-
Quelle différence entre % et %% pour la déclaration des dépendances dans SBT
Dans un fichier build.sbt les dépendances se déclarent de la façon suivante: libraryDependencies += "org.nd4j" % "nd4j-native-platform" % "0.5.0" mais parfois on trouve aussi un double pourcent "%%" libraryDependencies += "com.typesafe.akka" %% "akka-actor"...
-
Comment formater un enum en json avec Play
Play ne supporte pas nativement la serialisation d'enum vers json. (Je pense qu'il s'agit d'une sombre histoire de compatibilité avec la version Java de Play). Qu'à cela ne tienne on peut facilement écrire un json format qui fonctionne pour n'importe...
-
Comment faire un pattern matching sur une expression régulière en Scala
En scala l'utilisation des expressions régulières combinée avec le pattern matching permet de simplifier l'extraction de groupes à l'intérieur des regex. Par exemple imaginons que nous devons extraire les composants d'une date au format aaaa-mm-dd (soit...
-
Comment executer une class main spécifique avec sbt
Si dans votre projet sbt vous avez plusieurs classes principales, vous avez surement besoin d'executer ces différents programmes sans pour autant vouloir changer votre build.sbt. Une classe principale est un objet (scala object) qui contient une méthode...
-
Comment changer le DNS utilisé par Docker
Dans la version 1.13.0 de Docker j'ai rencontré des problèmes de DNS avec des adresses qui parfois ne pouvaient être résolues (environ une fois sur deux par moment). Pour éviter ce problème j'ai simplement changé le DNS utilisé par le docker daemon. Sous...
-
Comment afficher le fingerprint d'une clé ssh
Github affiche le fingerprint des clés SSH associées à son compte. Comme j'utilise différente clés SSH j'ai parfois du mal a retrouvé la bonne clé. Heureusement on peut comparer les empreintes (fingerprint) des clés SSH pour retrouver la bonne. Par contre...
-
Sous-projets SBT avec différentes versions de Scala
SBT permet de définir des sous-modules (ou sous-projets) à l'intérieur d'un seul projet. Cela se fait en utilisant des sous-répertoires pour chaque sous-module puis en déclarant chacun d'eux dans le build.sbt. lazy val commonSettings = Seq( organization...