Utilisation de Tesseract en ligne de commande

Tesseract est un moteur OCR (Optical Character Recognition : reconnaissance de caractères/texte dans une image) open source créé par HP et repris par Google (en gros, cela permet de reconnaître du texte à partir de l’image d’un document). Cet article est un petit guide sur son utilisation par ligne de commande sous Linux et Windows. Voici le manuel […]

Git : synchroniser un répertoire du dépôt seulement (comme svn)

A la façon de svn où on peut checkout un répertoire spécifique dans le repository svn, on peut faire la même chose avec git v1.7+ En langage Git, c’est un sparse checkout – Créer un dossier vide qui va accueillir le sous-dossier du dépôt git – Activer sparse checkout – Définir les dossiers/fichiers du dépôt […]

Nginx : comment créer un Virtual Host (pour un site web)

J’ai déjà parlé des avantages d’avoir un serveur web nginx dans un autre article et je vous montre comment l’utiliser ici. Sous linux, si vous n’avez pas nginx vous devez l’installer avec apt : 1. Créer le répertoire racine du site Vous devez créer le répertoire racine qui contiendra les fichiers de votre site (la […]

HTML : images dont le lien n’existe plus, alternative à l’icône de broken link

Si une balise image pointe vers un lien mort, on verra apparaître l’icône de lien mort qui n’est pas très esthétique. Résultat : La plupart des fois, il vaut mieux afficher une image de fallback (une image par défaut) ou bien carrément désactiver l’affichage de l’image Trois méthodes pour ne plus voir cette icône OU afficher une icône par défaut Javascript, […]

Lire une requête POST envoyée par AngularJS dans un script PHP

En utilisant $http.post dans AngularJS, on ne peut pas lire les données en utilisant $_POST dans un script PHP distant car AngularJS envoie les données POST en format JSON. La méthode qui marche pour lire la requête POST envoyée par Angular est de lire les données contenus php://input qui sont en format JSON. Voici un exemple de formulaire simple pour plus […]

Désactiver le layout et/ou la vue dans un controlleur dans Zend Framework

Pour désactiver le layout et/ou le script de vue, il faut rajouter ce code-là dans la méthode de l’action OU bien dans le méthode preDispatch (héritée de Zend_Controller) C’est utile si vous voulez utiliser vos actions dans des requêtes ajax ou bien pour retourner des données en format JSON (api mode).

Zend Framework : spécifier explicitement une vue à un controlleur

Si vous voulez spécifier une vue autre que la vue par défaut pour un controlleur, il y a plusieurs façons de le faire : $this->render(‘autre’) (si le script est dans le même dossier de vues du controlleur). $this->renderScript(‘mon-controlleur/autre.phtml’) $this->_helper->viewRenderer->setRender(‘autre’); $this->_helper->viewRenderer(‘existing’); (équivalent à setRender) Cependant, il faut noter que les deux méthodes render affichent le résultat directement […]

Javascript : problème de variable dans une fonction récursive

En codant en javascript, je rencontrais un problème avec la variable « i » de mes boucles for qui changeait de valeur, ne s’incrémentait pas donc la boucle for s’arrêtait avant son arrêt prévu ou bien tournait indéfiniment. Exemple : La mauvaise façon de déclarer une variable i dans une boucle for dans une fonction récursive C’est un exemple bidon de fonction récursive mais là […]

Vim : commandes de suppression utiles

Commandes pour supprimer un caractère, un mot ou une ligne Pour chacune des commandes listées en haut, on peut ajouter un nombre au début de la commande pour préciser combien de fois supprimer. Exemple : La commande 5dd supprime les 5 prochaines lignes. La commande 3dw supprime les 3 prochains mots Commandes pour supprimer jusqu’à la fin de la […]

Les Knockout Templates

Récemment, j’ai découvert un nouvelle « fonctionnalité » de knockout qui sont les templates. Cela sert à créer une structure html qu’on peut répliquer et qui est attachée à une variable (qui peut être un objet ou n’importe quoi) dans le viewModel. Par exemple, si dans votre site vous demandez que l’utilisateur entre son pays plusieurs fois […]