Liste des articles pour l'auteur : Hubert
Build your own dynamic DNS with GANDI API
Recently as I wanted to move from Adsl to optical fiber, I had to change my ISP.
Unfortunately, my new ISP does not provide a static IP as the old one did.
So I had to figure out how to keep a few things working with an dynamic ip address:
- I host a few web sites
- I use OpenDNS as parental filter
- On a distant site, I use the source IP address on the firewall for NAT translation
In this article, I will speak about detecting the change of the IP address and how to update it in the domain name registrar: Gandi.
Tracer le temps de connexion des utilisateurs via Google Analytics
Il m'a été demandé récemment, dans le cadre du développement d'une interface d'administration, d'envoyer quotidiennement un email de reporting.
Cet email devait contenir, entre autres, pour chacun des utilisateurs connectés, le temps effectivement passé sur le site.
Il m'a semblé alors intéressant d'utiliser Google Analytics car il est capable de calculer cette information de manière relativement précise.
Trois étapes sont nécessaires :
- mettre en place une variable personnalisée (Google Analytics) pour extraire les données spécifique à un utilisateur donné
- Se connecter à Google Analytics en Php
- Récupérer le temps de connexion lié à la variable personnalisée précédemment mise en place.
Symfony Form utilisation avancée des Validateurs
Dans le cadre d'un projet Symfony, je me suis heurté à une problématique d'apparence simple : l'utilisateur doit pouvoir changer ses informations personnelles, dont son mot de passe.
La difficulté est apparue au moment de mettre en place les validateurs de formulaire.
Doctrine 2 et Zend Framework
Fidèle utilisateur de doctrine depuis plusieurs années, j'ai réussi à l'imposer dans mon entreprise en tant que 'best practice' dans le développement Php au quotidien.
La grande majorité de nos projets sont fait en Zend Frameork (ZF), principalement pour l'utilisation de ZendAmf. Nous avons donc logiquement utilisé Doctrine en complément de ZF.
Avec l'avènement de Doctrine 2, nous nous intéressons au changement Doctrine 1.x vers Doctrine 2.
Doctrine - cohérence du charset
Sur un projet professionnel, j'ai été confronté à deux erreurs qui m'ont donné beaucoup de fil à retordre et je souhaite, ici, faire un retour d'expérience à ce sujet.
Contexte
Il s'agit d'un environnement ZendFramework couplé à Doctrine.
Plus précisément, on se trouve dans un service ZendAmf.
Le service en question expose une méthode permettant de changer son mot de passe.
Pour changer le mot de passe, j'utilise le code suivant :
$user = Doctrine::getTable('User')->findOneByEmail($email); $user->password = $newPassword; $user->save();
Et là, c'est le drame : le serveur MySQL me renvoi l'erreur suivante :
SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
Synology : régénération d'un certificat SSL
Suite à la mise à jour de mon Synology avec le dernier firmware, le certificat SSL du NAS a disparu.
Je décris ci dessous les différentes étapes nécessaires à la re-génération d'un certificat SSL.
Linux : ls amélioré
En ligne de commande sous linux, comment faire pour lister les dossier avec leur poids respectifs ?
En effet, la commande ls -l ne me donne que le poids des fichiers.
D'un autre côté, la commande du ne me donne que le poids d'un répertoire donné.
du --si --max-depth=1 ./
donnera la liste des répertoires du dossier courant avec leur poids respectifs.
Flush DNS
Afin de vider le cache DNS d'un mac sous OSX on utilisera la commande :
dscacheutil -flushcache
L'équivalent sous windows serait :
ipconfig /flushdns
Symfony : enlever index.php au début des urls
Dans symfony, le controller est le point d'entrée d'une application (du site).
De fait toutes les URLS sont de la forme http://mon_contolleur.php/mon_url
Afin de rendre les urls un peu plus sexy, on voudrait bien retirer mon_controlleur.php pour avoir juste http://mon_url
Rien de plus simple : dans le fichier apps/frontend/config/settings.yml, on ajoute
prod: .settings: no_script_name: true
MySQL : modification de l'encodage de la connexion
Il arrive malheureusement trop souvent que l'on doive traiter avec des bases de données qui ne sont pas encodées en UTF8.
Et lorsque l'on souhaite récupérer les données, on se retrouve avec plein de caractères bizarres comme : é en lieu et place des caractères accentués (é dans le cas présent).
Un remède consiste à modifier l'encodage de la connexion au serveur MySql :
SET NAMES 'latin1';