dimanche 22 décembre 2013

Il manque des opérateurs logiques dans Blogger

Plus ça va, plus je trouve que Blogger fait un petit CMS pratique et léger.

Les modèles possèdent leur propre langage de script qui permet de les modifier à peu près à volonté. Ce langage dispose des structures algorithmiques classiques pour effectuer des boucles ou exécuter du code de façon conditionnelle.

Par contre je trouve qu'il manque les opérateurs logiques élémentaires ET et OU pour que ces éléments soient vraiment pratiques à utiliser.
Actuellement, pour vérifier que plusieurs conditions sont vérifiées simultanément, il faut imbriquer les if et pour remplacer le OU, il faut multiplier les blocs conditionnels.

mardi 17 décembre 2013

LibreOffice comment rechercher ou remplacer des caractères spéciaux

Comment faire pour Rechercher / Remplacer des caractères spéciaux sous LibreOffice ?

Une fois la boîte de dialogue Rechercher/Remplacer ouverte, taper CTRL-SHIFT-S pour afficher la liste des caractères spéciaux.

mercredi 20 novembre 2013

Des livres pour le développement web

La plupart du temps lorsque j'ai besoin d'information ponctuelle sur un outil que j'utilise, je la trouve sur le site internet qui lui est dédié. Par contre quand il s'agit de veille technologique ou de choisir un outil pour des projets futurs, j'aime bien aussi lire de bout en bout des livres qui traitent du sujet.
Il y a trois sources d'ouvrages que j'apprécie particulièrement :

mardi 12 novembre 2013

Piwik et Ubuntu pour analyser la fréquentation d'un site internet

Durant l'été j'ai dû installer Piwik pour un client qui souhaitait analyser les logs bruts de son site internet, ce dernier résidant sur un serveur mutualisé chez OVH.
A mon sens les statistiques représentent bien la principale lacune des hébergements mutualisés OVH actuels. Certes les logs bruts d'Apache sont disponibles ce qui est l'essentiel mais les possibilités d'exploitation à travers les solutions logicielles mises à disposition laissent à désirer. Awstats est limité à l'analyse des logs du jour et Urchin n'est plus à la hauteur vis à vis des versions actuelles de Google Analytics.

Pour diverses raisons qui n'appartiennent qu'à lui, mon client ne souhaite justement pas utiliser la solution Google. Il m'a donc demandé de lui trouver une solution open source équivalente qui puisse intégrer les logs bruts fournis quotidiennement par OVH.

Après quelques recherches, la meilleure solution actuellement disponible semblait bien être Piwik.
Piwik est un logiciel d'analyse des statistiques de fréquentation des sites internet très proche de Google Analytics en terme d'interface et sachant travailler soit à partir d'informations fournies par du code JavaScript inséré dans les pages du site à analyser soit a partir des logs bruts du serveur web.
Sur le plan technique, Piwik est construit autour de Php et MySql et se consulte grâce à n'importe quel navigateur récent.

J'ai donc recyclé un ancien PC de bureau obsolète en le reformattant et en installant Ubuntu 12.04 serveur accompagné d'Apache, Php et MySql. une fois cette configuration de base opérationnelle il ne me restait plus qu'à télécharger Piwik depuis le site internet de l'éditeur.
L'installation et la configuration initiale se sont déroulées facilement en suivant la documentation. Si je souviens bien j'ai juste eu un petit soucis pour faire fonctionner le plugin de localisation.

Avec Piwik est fourni un script permettant d'injecter le contenu d'un fichier de logs dans la base de données.
Je l'ai essayé manuellement avec quelques fichiers en vérifiant les résultats au fur et à mesure puis j'ai lancé l'intégration progressive d'environ deux ans d'archives. Sur un vieux PC pour un site recevant environ 300 visites par jour, c'est vraiment très long (plusieurs jours).
La dernière étape à été le développement d'un script Php chargé de télécharger quotidiennement les logs depuis le serveur de stats d'OVH et de les injecter dans la base Sql. Ce script est lancé la nuit par le cron.

Après trois ou quatre mois de fonctionnement, tout tourne bien et mon client est content du résultat.

Note : OVH à annoncé récemment que Piwik serait la solution standard d'analyser des stats des hébergements mutualisés en 2014.

vendredi 13 septembre 2013

Conseils pour des sites multilingues

Quelques conseils de structure et surtout de structure d'URL pour la réalisation de sites multirégionaux et multilingues.
C'est ici dans le centre de support Google.

mardi 10 septembre 2013

CSS une astuce avec float et scroll

Un problème fréquent lorsque l'on fait par exemple une mise en page sur deux colonnes avec des div flottants est que leur éventuel conteneur ne tient pas compte de la hauteur des éléments flottants pour déterminer la sienne.

Une solution simple et plutôt élégante consiste à utiliser un overflow dans le conteneur.
Plus d'infos ici.

J'ai testé sous IE8, Firefox et Google Chrome ça marche bien.

mardi 9 juillet 2013

Html2Pdf pour produire des fichiers PDF à partir de code Html

Cela fait longtemps que j'utilise FPDF pour générer des fichiers PDF en Php.
C'est gratuit, c'est facile, ça marche bien mais ça peut vite devenir assez fastidieux dès que l'on s'écarte un peu des mises et pages et des formats les plus simples.

Il y a quelques temps, j'ai travaillé sur un projet dans le cadre duquel je devais produire à partir d'informations contenues dans une base de données un grand nombre de documents PDF à la mise en page un peu évoluée.

La mise en forme de ces documents m'aurait pris beaucoup trop de temps en travaillant cellule par cellule avec FPDF alors j'ai cherché un peu et j'ai trouvé html2pdf. C'est une librairie Php qui permet de convertir un document html en fichier pdf.

Il n'y a pas de vraie documentation mais le site donne plein d'exemples très compréhensibles et du coup l'outil est facile à prendre en main.
Toutes les balises html/css ne sont pas (encore) implémentées mais on peut déjà faire beaucoup de choses et en ce qui me concerne, j'ai vraiment économisé du temps de développement.

jeudi 6 juin 2013

Mémento des commandes Exim les plus utiles

Quelques commandes d'administration bien utiles quand on utilise Exim comme MTA sur un serveur :
  • eximstats fichierdelog
    Donne des statistiques sur les messages reçus, envoyés, relayés, etc par Exim.
  • exim -bp
    Permet de voir les messages actuellement dans la file d'attente. On peut utiliser cette commande combinée avec exiqsumm pour obtenir une vue plus synthétique (exim -bp | exiqsumm).
  • exim -Mrm identfiantdemessage
    Efface de la file le message désigné par son identifiant. Ce dernier peut être obtenu par la commande ci dessus.
  • exiqgrep
    Permet de faire des recherches dans la file des messages. L'utilisation la plus courante à mon avis est de vider totalement cette file avec exiqgrep -i | xargs exim -Mrm

samedi 1 juin 2013

Evolution de register_globals selon les versions de Php

Register_globals est (était) la directive de configuration de Php qui permettait la transformation automatique en variables Php des paramètres de la requête http, qu'elle utilise la methode GET ou POST.

Si l'on considère le script helloyou.php ci dessous :

<?php
  print "Hello $Name";
?>
Avec registers_globals à On, ce script va afficher Hello Martin si on l'appelle par la requête http://helloyou.php?Name=Martin.

Par contre, avec register_globals à Off, ce même script appelé de la même façon va juste afficher Hello car le paramètre Name passé dans la requête n'aura pas été transformé en variable.

Pour retrouver le fonctionnement voulu sur un serveur où register_globals vaut Off, il faut utiliser les tableaux superglobaux pour transformer le script de la façon suivante :

<?php
  $Name=$_GET['Name'];
  print "Hello $Name";
?>
On affecte ainsi manuellement et volontairement la valeur du paramètre Name de la requête à la variable $Name.
Le fonctionnement est identique pour la transmission en POST des données d'un formulaire si ce n'est qu'il faut utiliser
$Name=$_POST['Name'];
pour affecter leurs valeurs aux variables.

On comprend donc qu'un script développé selon la toute première méthode ne pourra pas fonctionner tel quel sur un serveur avec register_globals à Off.

Le problème est que ce style de programmation était fréquent avec les anciennes versions de Php pour lesquelles la directive register_globals valait On par défaut.
Depuis la version 4.2 de Php, la valeur par défaut de cette directive est Off mais jusqu'à la version 5.3 comprise il est encore possible de la modifier à l'aide de php.ini ou d'un fichier .htaccess.

Depuis la version 5.4, Php ne laisse plus aucune possibilité de configuration de register_globals et se comporte toujours comme si sa valeur était toujours Off.

vendredi 31 mai 2013

Emacs indentation manuelle

Emacs est pourvu d'un système d'indentation automatique qui sait s'adapter au mode utilisé.
J'ai commencé à programmer dans le milieu des années 80 et j'ai dû prendre de mauvaises habitudes car les systèmes automatiques n'alignent jamais mon texte comme je le veux.

Quand on écrit d'un bout à l'autre du code bien préparé, on indente au fur et à mesure des besoins d'imbrication avec "espace" ou "tab" selon ses préférences ("espace" pour moi) et tout va bien.
Par contre quand on modifie un script et que l'on veut rajouter une condition autour d'une boucle par exemple, si celle ci est assez longue, déplacer toutes les lignes les unes après les autres devient vite pénible.
Sous Emacs il y a un moyen de faire ça très facilement : On sélectionne une région et on tape Cu n Cx TAB pour déplacer ne n caractères vers la droite toute la région sélectionnée ou Cu -n Cx TAB pour déplacer la région de n caractères vers la gauche.

Quelques conseils pour un premier serveur dédié

Il y a deux solutions pour héberger un site ou une application internet  : Un serveur mutualisé ou un serveur dédié.

La solution mutualisée offre les avantages de la simplicité, de la sécurité et d'un faible coût. A condition de choisir un hébergeur compétent, elle peut satisfaire une grande majorité des besoins mais il y a au moins deux choses qui peuvent dans certains cas nécessiter l'emploi d'un serveur dédié : La liberté de configuration et la performance.

Dans le cas d'un hébergement mutualisé, c'est l'hébergeur qui est responsable du bon fonctionnement du serveur. Il est sensé vous protéger au mieux des pannes matérielles et des attaques malveillantes.
Avec un serveur dédié, c'est à vous que ces tâches incombent. Donc, quelque soit la raison qui vous pousse à le faire, il y a quelques précautions à prendre avant de mettre votre serveur dédié en production.

  • N'installez que ce dont vous avez vraiment besoin. Cela limite les failles de sécurité potentielles et économise les ressources de la machine.
  • Si vous devez installer des composants que vous ne connaissez pas bien, prenez le temps de lire les documentations correspondantes. Ce n'est jamais du temps perdu, vous gagnerez en performance, en stabilité et ça vous évitera peut être le hack de votre serveur.
  • Mettez en place des sauvegardes très régulières de vos données. Ca vous servira aussi bien en cas de défaillance matérielle qu'en cas de piratage.
  • Prévoyez et préparez dès le départ vos procédures de restauration. Ce n'est pas lorsque tout est en panne et qu'il faut rétablir le service au plus vite qu'il faudra y réfléchir.
  • N'installez pas de MTA si votre système n'a pas besoin d'envoyer des messages. Si vous devez en installer un, n'activez pas la fonction de relais si ce n'est pas indispensable, etc.
  • Surveillez votre serveur : Examinez l'évolution de ses charges et vérifiez les logs.

Se prémunir des attaques n'a rien d'une dérive paranoïaque. Il suffit de regarder les logs d'une machine qui vient d'être mise en service pour se rendre compte qu'elle est scannée quasiment dès sa mise en service par des logiciels qui cherchent les failles de sécurité. Les pirates potentiels n'en veulent pas forcément à vos données mais il sont souvent à la recherche de machines mal protégées pour envoyer des spams. Si ça vous arrive, vous aurez à subir des pertes de performances de votre machine, vous ne serez plus sûr de l'intégrité et de la confidentialité de vos données et vous serez peut être confrontés à quelques problèmes légaux...

Linux : Comment je suis devenu fan d'Ubuntu et Unity

Après plus de 10 ans d'utilisation quotidienne du bureau Gnome sous Debian, je suis finalement passé à Ubuntu plus Unity il y a quelques mois.
Après un temps d'acclimatation assez court je ne suis pas mécontent du changement.

Comment ça c'est produit :

Fin 2012, j'étais parti pour installer Debian sur un PC portable neuf puis j'ai eu un problème avec le firmware non libre de la carte graphique. Il était tard, j'étais fatigué, j'allais remettre au lendemain la recherche et l'installation des bons logiciels quand j'ai eu l'idée d'essayer Ubuntu.
Le temps de télécharger la version 12.04 LTS, et de graver un DVD, je lançais l'installation qui s'est terminée sans aucun problème.

Après la mise en place du système de base, j'ai complété l'installation avec quelques logiciels dont j'ai du mal à me passer comme Emacs et j'avais une nouvelle machine toute prête pour travailler le lendemain.

Premières impressions :

Tout d'abord Ubuntu est à mon avis la distribution la plus simple, la plus confortable et probablement la plus rapide à installer.
Ensuite quand on vient de Debian on retrouve très vite ses marques pour tout ce qui est de l'administration et de la configuration du système.

En ce qui concerne l'utilisation quotidienne de la machine, j'ai été un peu hésitant avec Unity puis finalement je m'y suis fait à 100% : Le lanceur principal est très pratique et le tableau de bord avec l'accès HUL aux applications et aux fichiers est vraiment beaucoup plus confortable que les classiques menus à dérouler.

La suite :

Quelques semaines plus tard j'étais totalement conquis et comme mon principal PC de bureau était vieillissant je l'ai remplacé par un neuf sur lequel j'ai immédiatement installé Ubuntu 12.10.
Le plus long a sans doute été de transférer les données entre les deux machines, notamment les quelques Giga de mails qui étaient sous Evolution et que j'ai injectés dans Thunderbird. Ca m'a donné l'occasion de faire un peu de ménage !

Conclusion :

Quelques mois et plusieurs milliers de ligne de code plus tard, je suis de plus en plus séduit par cet OS au logo orange.
Pour le boulot, j'ai très vite retrouvé mes marques et ma productivité en jonglant avec les différents espaces de travail.
Pour l'utilisation "multimédia" personnelle, c'est encore mieux que mes machines précédentes.

Depuis j'ai installé deux serveurs sous Ubuntu 12.04 pour des clients différents : Un qui sert à faire des calculs sur un réseau local et un autre utilisé comme serveur web chez OVH.

Je lis souvent que certains refusent Ubuntu car ils sont allergiques à Unity. Il faut tout d'abord savoir qu'Unity n'est pas obligatoire sous Ubuntu et que l'on peut y installer un environnement plus classique mais il faut surtout être prêt à essayer et à se laisser convaincre. Ne jamais rien changer n'est sans doute pas la meilleure façon d'évoluer.