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.
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.
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 :
- une interface web, fort bien conçue, qui permet notamment de visualiser son activité,
- une très grande collection de plugin, ces petits logiciels (aussi appelés greffons) que vous pouvez facilement ajouter à votre éditeur de texte,
- et un moyen très facile d'intégrer certains graphiques sur un site web, un blog Twitter, Facebook etc.
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 ?
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).
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.
Ce premier graphique montre combien de temps je code chaque jour (environ) :
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 :
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.
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).
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 !).
Il est facile d'installer l'outil WakaTimeCLI, avec la commande npm install wakatimecli.
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 :( !