Suivre les stats de son site web en Ruby On Rails avec Piwik

april, debian-fr, planet-cullt, planet-libre

Suivez-moi aussi sur Identi.ca  ou Twitter  ou Diaspora*diaspora-banner

Après avoir lancé Le Journal du Pirate, le Hacker News francophone, j’avais évidemment besoin de suivre la fréquentation du site. J’avais utilisé AWStats sur un précédent projet et je voulais tenter d’utiliser un logiciel de comception un peu plus récente cette fois-ci.

awstats-logo

Piwik semblait convenir parfaitement. Multi-sites, Interface graphique moderne, des bons échos dans la communauté, je me suis donc naturellement dirigé vers cette solution. Piwik se présente comme une application web avec une base de données MySQL derrière.

piwik_app

Pour les gens intéressés, le site officiel propose une démo très sympa permettant de voir tout de suite les points forts de Piwik.

piwik

Le Journal du Pirate est quant à lui une application Ruby On Rails. Or Piwik requiert l’ajout d’un javascript sur les pages que l’on veut surveiller. Ce qui peut s’avérer délicat à réaliser lorsque que l’on maîtrise mal RoR.

La documentation officielle suivante explique très bien la marche à suivre. Ajouter une gem Ruby à son Gemfile, relancer bundle puis quelques éléments de configuration dans le fichier config/piwik.yml et le tout a marché directement.

rails

Je suis très content du résultat. Niveau interface graphique c’est très agréable et Piwik propose un très grand nombre de métriques associées aux différents sites web supervisés. J’en ai profité pour lui faire surveiller ce blog et le site web de MyTux, ma société d’infogérance de serveurs Debian.

Et vous ? Quel est votre ressenti après avoir utilisé quelques temps Piwik ? Des difficultés à le mettre en place avec RoR ? N’hésitez pas à réagir dans les commentaires de ce billet.

Site comme Hacker News en français : Le Journal Du Pirate

april, debian-fr, planet-cullt, planet-libre, python

Suivez-moi aussi sur Identi.ca  ou Twitter  ou Diaspora*diaspora-banner

Avant tout l’adresse du site : Le Journal Du Pirate https://infos.mytux.fr

Un site web comme Hacker News mais francophone propulsé par un Logiciel Libre, je trouve que ça manquait à la communauté francophone.

ycombinator-logo

C’est maintenant chose faite avec un site dérivé du moteur de Lobste.rs. Les sources sont disponibles sur ce GitHub.

github-logo

L’inscription fonctionne par cooptation pour limiter les articles indésirables.

Un petit commentaire avec votre e-mail dans le champ des e-mails et je vous fais parvenir une invitation, qui vous permet à votre tour d’inviter autant de personnes que vous le souhaitez.

Vous pouvez aussi réclamer une invitation depuis le site. L’un des utilisateurs courants vous enverra alors une invitation.

Et tous les commentaires sont les bienvenues bien sûr ;)

Nouveau blog entrepreunarial et entreprise propulsée par Debian

april, planet-cullt

Suivez-moi aussi sur Identi.ca ou sur Twitter 

Un petit billet rapide pour parler de l’activité de la société MyTux, spécialisée dans l’infogérance de serveurs Debian (exclusivement), société dont je suis le fondateur. Mais c’est surtout son blog que je souhaite aujourd’hui vous présenter.

logo-infogerance

Quelques exemples d’articles déjà publiés :

Le blog de la société MyTux se concentre sur l’infogérance de serveurs Debian et vise à informer aussi bien les clients de MyTux qu’un public plus large d’utilisateurs de serveurs Debian.

debian-banner

On y parle donc des bonnes pratiques du domaine, des évolutions des versions stables de Debian, et on y parlera de tout ce qui se rapporte aux serveurs de production sous Debian, vu par des professionnels de l’infogérance.

J’espère vous y croiser bientôt :)

Cadeau de Noël : Publication de Brebis 0.9, le vérificateur automatisé de sauvegarde

april, brebis, debian-fr, planet-cullt, planet-libre, python

Suivez-moi aussi sur Identi.ca ou sur Twitter 

Peu de temps avant ce Noël, l’équipe du projet Brebis a publié la version « Bouddhinette » 0.9 du vérificateur automatisé de sauvegardes. Pour rappel, Brebis est un programme en ligne de commande codé en Python permettant le contrôle automatisé de l’intégrité d’archives (tar, gz, bzip2, lzma, zip) et de la cohérence des fichiers à l’intérieur des archives. Au menu de cette version :

  • Support des archives apk
  • Nouvelles options de la ligne de commandes pour écrire le fichier de configuration (-C), la liste des fichiers dans l’archive (-L) ou les deux (-O) dans un répertoire défini par l’utilisateur (où précédemment ces fichiers étaient écrits par défaut dans le même répertoire que l’archive elle-même).
brebis-brown-big-logo

Anisette, la fière nouvelle mascotte et nouveau logo du projet Brebis généreusement contribué par Antoine Millet

Comme annoncé aux JM2L, Brebis continue d’intégrer des nouveaux types d’archives , mais aussi rend sa manipulation plus flexible afin d’être intégré plus simplement pour répondre aux besoins de ses utilisateurs en s’adaptant plus simplement aux différentes situations existantes..

Feedback sur Brebis

Et vous ? Que pensez-vous de Brebis ? N’hésitez pas à vous abonner à la liste de diffusion de Brebis,  à laisser un commentaire ici ou  un message sur le forum ou à me contacter directement, tous les retours seront appréciés.

Retour sur Brebis, le vérificateur automatisé de sauvegarde, aux JM2L

april, debian-fr, planet-cullt, planet-libre, python

Suivez-moi aussi sur Identi.ca ou sur Twitter 

Comme chaque année avait lieu à Sophia Antipolis les Journées Méditerrannéennes du Logiciel Libre, organisées par l’association Linux Azur. J’avais proposé pour cette année une présentation du projet  Brebis, le vérificateur automatisé de sauvegarde. C’était pour moi l’occasion de réaliser quelques slides parlant du projet (désormais disponible en ligne – CC by SA) et de recueillir les réactions du public.

jm2l

L’accueil est chaleureux, comma d’habitude et le public est présent. On m’avait accordé un créneau d’une bonne heure. j’ai donc essayé de captiver mon public pendant 50 minutes avant la séance de questions. La présentation se découpe en deux phases, une introduction au domaine de la sauvegarde et à la nécessité de vérifier les sauvegardes régulièrement, puis une seconde partie plus technique sur les fonctionnalités du logiciel Brebis lui-même.

brebis-brown-big-logo

Anisette, la fière nouvelle mascotte et nouveau logo du projet Brebis généreusement contribué par Antoine Millet

La conférence a été filmée, je pourrai donc vérifier ce qu’il en est une fois que les vidéos seront en ligne.

Niveau stand, les exposants sont accueillants et disponibles et je suis content de voir cet événement du Logiciel Libre toujours aussi fréquenté. Trois fois que je fais le déplacement et je repasse sans faute l’année prochaine !

Étiez-vous aux JM2L aussi ? Qu’en avez-vous pensé ? N’hésitez pas à réagir dans les commentaires de ce billet.

Yarn : Scénarios d’exécutions de programmes en ligne de commandes

april, debian-fr, planet-cullt, planet-libre, python

Suivez-moi aussi sur Identi.ca ou sur Twitter 

Ceux qui me suivent sur Twitter auront peut-être vu passer un tweet au sujet de Yarn, logiciel fort sympathique que j’ai vraiment découvert le week-end dernier à la Mini-Debconf UK à Cambridge.

Yarn permet de définir des scénarios d’exécutions de programmes en ligne de commande. Le scénario ainsi écrit sera ensuite joué et le résultat de l’exécution présenté de manière synthétique.

1. Syntaxe d’un scénario à travers un exemple

Petit exemple avec un scénario permettant de vérifier la bonne exécution de Brebis, le logiciel de vérification de sauvegarde. Le but est de :

  1. mettre en place un environnement de test
  2. exécuter le test
  3. vérifier l’exécution du test

Voici comment se présente le fichier de scénario de Brebis, ce dernier suit la syntaxe Markdown :


    SCENARIO basic brebis execution
    GIVEN setting up brebis
    AND generating with brebis
    WHEN brebis is ready
    THEN verify brebis job

    IMPLEMENTS GIVEN setting up brebis
    hg clone http://hg.brebisproject.org $DATADIR/brebis
    mkdir -p $DATADIR/brebis/yarn-test
    cp $DATADIR/brebis/functional-tests/expected-generated-list-for-tar-archive/expected-generated-list-for-tar-archive.tar.gz $DATADIR/brebis/yarn-test

    IMPLEMENTS GIVEN generating with brebis
    $DATADIR/brebis/brebis.py -G $DATADIR/brebis/yarn-test/expected-generated-list-for-tar-archive.tar.gz

    IMPLEMENTS WHEN brebis is ready
    $DATADIR/brebis/brebis.py -c $DATADIR/brebis/yarn-test -l $DATADIR/brebis/yarn-test/brebis.log

    IMPLEMENTS THEN verify brebis job
    if [ -s $DATADIR/brebis/yarn-test/brebis.log ]; then return 1; else return 0; fi

2. Résultat de l’exécution du scénario

Le résultat de l’exécution du scénario est synthétique et précise les conditions d’exécution du scénario :

$ yarn brebis-scenario
Scenario test suite PASS, with 1 scenarios (4 total steps), in 16.4 seconds

3. Détails de l’implémentation du scénario

Les 5 premières lignes représentent votre scénario. Il porte avant tout un nom défini par le mot-clé SCENARIO, l’étape suivante GIVEN est en général à consacrer à la mise en place de votre environnement de test. Il est possible d’enchaîner ici plusieurs groupes d’instructions à l’aide de AND.
Une fois notre environnement de test mis en place, nous lançons le test à l’aide de WHEN. Enfin nous vérifions le résultat de notre exécution lors de l’étape THEN.Il est à noter que si des opérations sont à réaliser après le test, vous pouvez utiliser le mot-clé FINALLY.

On remarque également l’utilisation de la variable $DATADIR, initialisé par Yarn qui fournit le chemin vers un répertoire temporaire qui par défaut sera supprimé à la fin de votre scénario.

À chaque étape précédemment citée, nous associons des commandes shell à l’aide du mot-clé IMPLEMENTS. Nous faisons ainsi la correspondance entre les titres de nos étapes et les commandes exécutées. Il s’agit dans l’exemple des lignes qui commencent juste après la ligne contenant le THEN.

On voit que la première partie du fichier définie des étapes, avec une syntaxe qui permet d’obtenir des ordres proches du langage naturel. La seconde partie du fichier fournit la correspondance entre ces ordres et leur implémentation concrète en commandes shell. C’est simple et efficace.

4. Encore quelques mots sur un projet prometteur

Yarn est codé en Python et déjà disponible dans Debian dans le paquet cmdtest. Les sources sont facilement accessibles. Je pense que si vous êtes à la recherche de ce type d’outil, Yarn a pris d’emblée les bonnes directions. Le projet est encore jeune (documentation à améliorer, de nombreus points à faire évoluer) mais la base est là et son upstream est à l’écoute des suggestions (et des patchs) :)

Quelques liens pour la route :

Et vous ? Que pensez-vous de Yarn ? N’hésitez pas à réagir comme d’habitude dans les commentaires.

Publication de Brebis 0.8, le vérificateur automatisé de sauvegarde

april, brebis, debian-fr, planet-cullt, planet-libre, python

Suivez-moi aussi sur Identi.ca ou sur Twitter 

Brebis, le vérificateur automatisé de sauvegarde, est désormais disponible en version 0.8. Les principaux apports de cette version sont un renforcement de la sécurité du processus de vérification avec :

  • un nouveau paramètre « sha512″ dans le fichier de configuration de Brebis, indiquant la somme de hachage du fichier qui contient la liste des fichiers de l’archive à vérifier. Cela permet de détecter tout changement survenu sur cette liste.
  • le fichier principal de configuration de Brebis peut désormais être signé à l’aide de GPG, afin de garantir qu’un éventuelle modification dudit fichier puisse être détectée.

=> BREAKING NEWS: Brebis est aujourd’hui sur Hackernews, n’hésitez pas à voter pour !

Petits points sur les fonctionnalités de Brebis

Brebis propose aujourd’hui un nombre important de fonctionnalités. En voici un petit résumé.

Les formats supportés de sauvegarde :

  • archive Tar .
  • archive Tar avec compression Gzip .
  • archive Tar avec compression Bzip2 .
  • archive Tar avec compression Lzma.
  • archive Gzip .
  • archive Bzip2 .
  • archive Zip .
  • archive Lzma.
  • arborescence de fichiers.

Contrôle sur l’archive elle-même :

  • détection des archives corrompues.
  • détection des tailles inattendues (égale à, plus petite que, plus grande qu’une taille enregistrée au préalable).
  • contrôle la somme de hachage de l’archive (md5, sha1, sha224, sha256, sha384, sha512).
  • vérifie l’uid/gid de l’archive
  • vérifie le mode de l’archive (états des droits de lecture, écriture et exécution)
  • signature GPG du fichier de configuration principal

Contrôle sur les fichiers à l’intérieur de l’archive :

  • identifie d’éventuels fichiers manquants
  • détection des tailles inattendues des fichiers dans l’archive (égale à, plus petite que, plus grande que)
  • détecte le type des fichiers dans l’archive (fichier, répertoire, lien)
  • vérifie le mode des fichiers dans l’archive (états des droits de lecture, écriture et exécution)
  • contrôle la somme de hachage des fichiers dans l’archive (support du md5, sha1, sha224, sha256, sha384, sha512)
  • identifie un fichier qui n’est pas censé se trouver dans l’archive
  • contrôle la cible des liens dans l’archive

Feedback sur Brebis

Et vous ? Que pensez-vous de Brebis ? N’hésitez pas à vous abonner à la liste de diffusion de Brebis,  à laisser un commentaire ici ou  un message sur le forum ou à me contacter directement, tous les retours seront appréciés.

Brebis 0.7 : contrôle automatisé de vos sauvegardes

april, brebis, debian-fr, planet-cullt, planet-libre, python

Suivez-moi aussi sur Identi.ca ou sur Twitter 

La version « Chevillette » 0.7 de Brebis, le vérificateur de sauvegarde, a été publiée le 15 octobre. Pour rappel le projet Brebis est un logiciel libre (GPLv3) de contrôle automatisé de vos sauvegardes (archives et arborescences de fichiers plats). Il contrôle l’intégrité de vos sauvegardes ainsi que leur contenu.

Quoi de neuf dans Brebis ?

La version 0.7 offre les fonctionnalités suivantes :

  • une nouvelle option -G ou –gen-full génère pour une archive ou une arborescence donnée à la fois le fichier de configuration et la liste des fichiers contenus dans l’archive. Faire contrôler une archive par Brebis n’aura jamais été aussi facile.
  • le nouveau paramètre target permet de vérifier la cible d’un lien.
  • sous le capot, de nombreuses corrections de bugs et optimisations

Quelques liens vers des exemples d’utilisation de brebis

  • Exemple de création d’une sauvegarde. La création de des fichiers de configuration et de liste des fichier dans l’archive ne se fera plus avec l’option -g qui ne génèrait que la liste de fichiers dans l’archive mais plutôt avec la nouvelle option -G qui créé à la fois le fichier de configuration de l’archive et la liste des fichiers dans cette archive
  • Documentation officielle du projet : la ressource essentielle, tout doit y être. Si vous observez quelque chose de manquant,n’hésitez pas à vous manifester.

Feedback sur Brebis

N’hésitez pas à laisser un message sur le forum, à vous abonner à la liste de diffusion de Brebis ou à me contacter directement, tous les retours  seront appréciés.

Et vous ? Que pensez-vous de Brebis ? N’hésitez pas à me laisser votre avis dans les commentaires.

Brebis 0.6 : contrôle automatisé de vos sauvegardes

april, brebis, debian-fr, planet-cullt, planet-libre, python

Suivez-moi aussi sur Identi.ca ou sur Twitter 

La version « Articule » 0.6 de Brebis, le vérificateur de sauvegarde, a été publiée le 15 août. Pour rappel le projet Brebis est un logiciel libre (GPLv3) de contrôle automatisé de vos sauvegardes (archives et arborescences de fichiers plats) déjà présenté sur ce blog.

Quoi de neuf dans Brebis ?

Après une grosse version 0.5 apportant le support du protocole de compression lzma, Brebis continue son bonhomme de chemin en intégrant le support de nouveaux types d’archives et devient également plus flexible.

  • support des archives tbz et tbz2
  • nouvelle option -d ou –delimiter pour modifier le délimiteur par défaut des champs dans le fichier de listes des paramètres des archives
  • on peut dorénavant passer un seul chemin vers un fichier de configuration à l’option -c ou –configpath (auparavant le répertoire parent était obligatoire)
  • sous le capot, de nombreuses corrections de bugs et optimisations

Côté empaquetage, le paquet Debian de Brebis est en attente de revue, il atterrira dans un temps indéterminé mais espérons bientôt dans le dépôt officiel, la file d’attente étant plutôt chargée en ce moment. C’est sûr que les soirées Wine&Cheese ça n’aide pas à faire avancer le boulot, les participants à Debconf me comprendront ;)

Le port FreeBSD devrait être disponible quant à lui courant septembre.

Remerciements

Pour la petite histoire, Brebis a croisé sur sa route un développeur FreeBSD Ganael Laplanche dont les conseils ont été précieux pour cette version et les versions à venir. Et puisque j’en remercie un, je remercie tout ceux qui participent à ce projet, et en particulier les empaqueteurs des différentes distributions François Boulogne pour Archlinux et à Slown pour Frugalware. Un grand merci à eux !

Et vous ? Que pensez-vous de Brebis ? N’hésitez pas à me laisser votre avis dans les commentaires.

Vrac de mini-messages n°14 : Debian, Python, django, veille techno, startup et communauté FOSS

april, brebis, debian-fr, planet-cullt, planet-libre, python, vrac-mini-messages

Suivez-moi aussi sur Identi.ca ou sur Twitter 

Comme chaque semaine, voici les dents/tweets intéressants de la semaine dernière que j’ai publiés sur Identi.ca ou sur Twitter, revus et augmentés d’éventuels  commentaires et observations mûris au cours de la semaine passée. Attention cette semaine, beaucoup de contenu suite à une actualité plutôt chargée :)

Au menu : Debian, Python , Django, de la veille technologique, le monde des startups et les communautés du libre.

C’est parti !

Debian

  • Happy 20th birthday Debian!: Today is Debian’s 20 anniversary. => un grand moment. Whao, 20 ans déjà pour une distribution (à la base, mais ça a évolué en quelque chose de plus large) GNU/Linux. Un signe impressionnant de perennité qui devrait faire réfléchir bon nombre de décideurs souvent plus tentés à tort par le bling-bling que par des solutions pérennes et éprouvées.

debian-botton

django-logo

  • #iceweasel 17.0.8esr is now available in #Debian #Jessie (Testing) => on en parlait la semaine dernière, iceweasel version ESR (pour Extended Support Release) entre maintenant dans Debian Jessie, une très bonne version pour la bureautique (personnellement c’est ce que j’utilise).
  • python-virtualenv 1.10.1 now in #Debian #Sid (unstable) #virtualenv => nouvelle version de virtualenv, le créateur d’environnement virtuel permettant de cloisonner vos installations d’applications Python, arrive dans sa dernière version upstream dans Debian. Qui a dit que Debian n’était pas à jour ? :)

Python

  • installed yesterday #Python 3.4 alpha 1 trying to solve a bug. Didn’t work but the installation went smoothly => suite à ce que je croyais être un bug de l’interpréteur Python, j’ai tenté de le reproduire un peu avec toutes les versions (au final ça n’avait rien à voir mais…) et j’ai testé donc un peu Python 3.4 alpha 1 qui s’est installé sans problème et a fait tourner Brebis parfaitement. Dans quelques temps je vous tiendrai informé des nouveautés importantes de cette version.

python-logo-master-v3-TM

  • I guess everyone was confronted to a poor choice of data structure one day. Choose the right data struture => personnellement j’ai parfois galéré pour choisir la bonne structure de données pour celles qui étaient au coeur de mes applications et qui allaient s’avérer difficiles à changer plus tard. Un peu de réflexion et d’algorithmique que je n’ai pas regretté plus tard.
  • cool things of #Python (nice examples and links) => Reddit n’est pas toujours drôle à lire et il y a souvent beaucoup de déchêts, mais j’ai trouvé intéressants certains points présentés dans l’article. On peut s’en passer mais ceux qui sont curieux des idiomes et astuces de Python seront intéressés.

ruby-logo

Veille technologique

  • setting up #Puppet class saz-#sudo on our new Puppet server. Seems pretty nice, clear and modular http://forge.puppetlabs.com/saz/sudo  => une classe que je mets en place qui me semble très flexible donc sympathique à exploiter si on la compare au monolithique fichier plat sudoers.

postgresql

  • just discovered statuspage.io, interesting idea IMO => pour les sites hautement disponibles ou les entreprises ne pouvant se permettre de laisser leurs utilisateurs dans le flou, j’aime bien ce concept de proposer une page de statut qui reste disponible quoiqu’il arrive.
  • IMO the most interesting feature of #spacewalk 2.0 is to get rid of ugly Oracle DB Express ed (via @linuxfrorg) => au niveau professionnel je travaille avec Spacewalk et je n’ai jamais supporté l’emploi de Oracle DB Express, cela m’a toujours fait l’impression d’une verrue indésirable. Voici donc la possibilité de l’enlever dans la 2.0 de Spacewalk.
  • A complete scan of the IPv4 address space in under 45 minutes ? https://zmap.io => je n’ai pas encore pu approfondir mais ça me paraît très très alléchant. Reste à voir le niveau d’agressivité au niveau des ressources consommées.

Startup

  • 57 startup lessons => une suite de conseils et d’astuces avec beaucoup de bons sens. Bien sûr certaines apparaissent un peu inutiles mais ça a le mérite de faire atterrir certaines personnes qui planent un peu trop haut, victimes du discours ambiant sur les startups type « monte ta startup et deviens riche en 90 jours ».
  • How to raise money as a first time founder => l’importance du bon produit est souligné du début à la fin. Cela apparaît comme une évidence mais quand on voit la volée actuelle de rachats, on peut s’intérroger sur les choix de certains investisseurs.
  • #startup #business Paul Graham feedback: How to convince investors => c’est plus de la curiosité pour moi, chef d’entreprise, qu’un réel besoin mais il est toujours bon de lire un retour bien fait et intéressant sur comment convaincre un éventuel investisseur.
  • #startup nice feedback: 90 thing I’ve learned from founding 4 #technology companies => une autre série de conseils par un serial entrepreneur. À lire en pesant bien le pour et le contre, certaines remarques étant carrément à jeter.
  • interesting blog about #startup by a startup founder http://wadefoster.net/ => j’ai parcouru et me suis gardé pour plus tard plusieurs articles de ce créateur d’entreprise qui me semble très intéressants.

Communauté

  • DjangoCon: verifiably awesome – That Time I Wasn’t Harassed At A Conference => Témoignage sans enrobage d’une femme ayant participée à plusieurs rassemblements des FOSS et faisant un retour sur le bon accueil de la communauté  Python (et sur le mauvais accueil des autres, soyons clair).

djangocon-logo

  • what every community can learn from #Python « is the most welcoming one in tech » for women => autre témoignage on ne peut plus clair sur le même sujet. La direction prise par le projet Python semble très efficace.

Autopromo

  • New blog post: Interview et activités professionnelles => suite à mon interview par la société de placement HopWork, je me suis fendu d’un billet autopromotionnel. Je vous rassure, ça n’arrive pas souvent mais c’est quand même ce qui paie les factures ;)

mytux-320-149

Et vous ? Que pensez-vous des technologies et articles abordés ci-dessus ? N’hésitez pas à réagir comme d’habitude dans les commentaires.