Pourquoi et comment utiliser WakaTime pour monitorer ses habitudes de programmation

Concept ?

Un sportif peut chercher à surveiller précisément quel entraînement il pratique quotidiennement, quel muscle il développe etc.

Et bien, la même façon, les programmeurs et développeurs peuvent être intéressés par savoir sur quels projets ils passent le plus de temps, sur quels fichiers ou dossiers ils travaillent etc.

Pourquoi ?

Hum... en fait, la vraie raison semble purement liée à l'égo : les programmeurs sont fiers de voir tout le temps qu'il passe sur leurs projets.

Cette introduction étant faite, laissez-moi vous présenter un outil intéressant que j'utilise depuis quelque temps.

Comment ?

Le but de WakaTime est de proposer aux développeurs une façon simple, "sécurisée" et centralisée de surveiller le temps passé à programmer.

Et ils font ça bien, puisque WakaTime se présente sous trois formes :

Le concept est simple : votre éditeur de texte vous espionne, envois les données en ligne sur les serveurs de WakaTime, et ensuite vous (et les responsables du service, ainsi que la NSA bien-sûr) pouvez librement consulter ces données. Effrayant, non ?


Dans mon cas

Installation et utilisation de WakaTime

J'utilise Sublime Text 3 de façon quasi exclusive, et depuis presque un an et demi.

Sans surprise, WakaTime propose un greffon pour Sublime Text 3, mon éditeur favori.

Il s'installe en deux clics, et s'intègre à la perfection (discret, charge système minimum, et il peut même accumuler les données et les envoit plus tard si l'ordinateur est déconnecté du réseau).

Aperçus des statistiques ?

Durant les 8 premiers jours (après avoir installé le greffon, en janvier 2015), j'étais en "mode" « développement intensif » pour conclure certains projets (StrapDown.js, MEC Students Face-Book demo etc), mais j'étais tout de même un peu effrayé de voir 29h d'activité en 8 jours !

Il est aussi possible de voir :

  • sur quels projets vous passez le plus de temps,
  • quels types de fichiers vous travaillez, jour par jour,
  • et même quels fichiers (cela peut être désactivé).

Par exemple, la première semaine, cela se répartissait selon : 30% HTML, 29% Python, 15% reStructuredText, 6% Bash, 12% Markdown.


Partager ces statistiques ?

Temps passé à programmer durant les 30 derniers jours

Ce premier graphique montre combien de temps je code chaque jour (environ) :

Langages utilisés durant les 30 derniers jours

Vous pouvez voir que j'utilise principalement Python et Bash, LaTeX et reStructuredText, et Markdown (ou HTML, si c'est une page utilisant StrapDown.js) :

Et depuis le début de mon utilisation de WakaTime :

Éditeurs de textes utilisés

WakaTime détecte que j'utilise presque uniquement l'extraordinaire Sublime Text 3 (et c'est presque vrai !) :

Note

WakaTime ne compte pas l'utilisation de GNU Nano, GNU Octave GUI, ou Spyder pour Python 2/3.

Partager les stats d'un projet en particulier

Il est aussi possible de partager les statistiques d'un projet en particulier, grâce à un lien spécifique, comme https://wakatime.com/@lbesson/projects/qdkkfmhcoi par exemple (correspondant à ce project).

Inclure un graphique via une iframe ?

Ci dessus est intégrée la page https://wakatime.com/@lbesson :

Note

En attendant de faire mieux...

:line:`J'aimerai trouver un moyen pour n'inclure que le graphique en camembert, et pas toute la page.` :red:`Correction :` Le 19 décembre (2015), j'ai reçu un courriel personnel de Alan Hamlet PDG et créateur de WakaTime, pour m'informer de la nouvelle fonctionnalité de partage de graphiques WakaTime. Les graphiques inclus ci-dessus sont de bons exemples de ce qu'apporte cette toute nouvelle fonctionnalité (que je trouve très cool !).

Aperçu complet de 2015

Petit interlude (de XKCD.com)

Time-Tracking Software (https://xkcd.com/1690/)

Un bonus : accéder aux statistiques en ligne de commande

Il est facile d'installer l'outil WakaTimeCLI, avec la commande npm install wakatimecli.

Note

nodejs et npm sont requis.

Cela demande d'avoir déjà installé sur votre machine nodejs et son gestionnaire de paquet npm.

Cet outil en ligne de commande se base sur cette API, et devrait être facile à utiliser. La première commande est wakatime -help qui montre les différentes options acceptées par cet outil :

Please pass an option:
  -? or -help
  -u or -user
  -t or -today
  -y or -yesterday
  -w or -week

L'aide (wakatime -help) n'est pas très bien écrite, mais on peut deviner son utilisation ici directement dans son code source.

Note

Cet outil produit une sortie en couleur, cool !

C'est moins cool lorsqu'on s'aperçoit que les couleurs sont ne sont pas supprimée si la sortie est redirigée vers un terminal qui n'accepte pas les codes ANSI, ou un fichier (c'est pas la faute au script mais au module cli-color qui aurait du implémenter une meilleure méthode de détection, comme je l'avais fait pour ANSIColors il y a quelques années)).

Comme l'explique cette remarque sur stackoverflow, ce n'est pas une bonne pratique. (J'ai demandé via le dépôt GitHub pour WakaTimeCLI de régler ce problème)

Merci à cette astuce à coup de sed (` | sed -r "s:\x1B\[[0-9;]\*[mK]::g"`).

Ensuite, il faut ajouter votre clé API Key (disponible dans les réglages sur WakaTime.com) :

wakatime -api yourApiKeyHere

Par exemple, la commande wakatime -w donne le temps total passé sur son (ses) éditeur(s) de code durant les 7 derniers jours.

Attention!

Je ne sais pas pourquoi, mais ce script wakatime en ligne de commande ne fonctionne plus sur mon ordinateur (même après une désinstallation et réinstallation).. Dommage :( !