5 packages inutiles donc indispensables

Le passage au nouveau design du site web nous a permis de remettre la main sur des brouillons d’articles jamais diffusés, celui ci aurait du sortir en 2018…

 

Aux Rencontres R 2018 en parallèle de ma présentation sur le tidyeval j’ai eu la chance de pouvoir présenter un poster que j’ai voulu un peu décalé.

Construire des packages R cela fait partie de mon métier. Des packages sérieux, qui font des choses sérieuses pour des clients sérieux. Mais j’ai toujours 2 ou 3 projets ‘pour le fun’ en cours et ce sont quelques uns de ces packages que j’ai voulu présenter.

Vous pouvez cliquer sur le poster pour le voir en taille réelle (29Mo)

Le package {fcuk}

voir sur github
voir sur le CRAN

install.packages("fcuk")

 

 

 

Le concept : Codé pendant useR! 2017 ce package se propose de corriger vos fautes de frappe, en vous faisant des propositions de correction.

Le challenge à relever : j’ai eu du mal a capturer les messages d’erreur, et j’ai du creuser des parties de R que je n’avais jamais inspecté. Très intéressant. Et j’ai été obligé de m’intéresser à la traduction de R dans toutes les langues pour que cela fonctionne sur toute la planète.

J’ai plusieurs idées d’évolution possible, comme prendre en compte la locale de l’utilisateur pour en déduire sa position de clavier et optimiser ainsi le calcul de distance entre sa frappe et les instructions valides possibles. Par ailleurs, ce package réagit très mal utilisé en parallèle avec shiny et détecte beaucoup de faux positif  (Shiny faisant beaucoup d’erreur le temps que tout se mette en place), c’est une amélioration à apporter.

rusk

voir sur github
voir sur le CRAN

install.packages("rusk")

un package qui s’inspire d’une video de micmath :

Le concept : Sur un cercle on place x points, puis on relie chacun des points par une droite à son résultat par une table de multiplication choisie. Cela génère des formes tout à fait étonnantes et,  je trouve, fascinantes. Une app shiny de démo est dispo ici : https://shiny.thinkr.fr/app/rusk

Le challenge à relever : Pas de challenge technique particulier ici.

Dans la version actuelle seule les tables de nombres entiers sont gérés, il faudrait que je trouve un moyen de prendre en charge les tables des nombres décimaux pour générer des transitions encore plus fluides…

ztype

voir sur github
voir sur le CRAN

install.packages("ztype")

 

ztype screenshot

Le concept : un jeu de frappe au clavier, qui permet de dégommer des vaisseaux spatiaux en tapant des noms de fonction du tidyverse… parce que pourquoi pas !

Le challenge à relever : dans celui ci, j’ai du m’intéresser au monde merveilleux des requêtes POST/GET et “hacker” un formulaire de soumission pour arriver à mes fins.

spongecake

voir sur github
voir sur le CRAN

install.packages("spongecake")

 

Le concept : prenez un film, prenez en une image toutes les 5 minutes, faites la moyenne des couleurs de chacune de ces images pour ensuite les empiler les unes sur les autres… et TADAAA!

Le challenge à relever : le plus difficile a été de gérer la partie soumission au CRAN d’un package dépendant d’un logiciel externe (ffmpeg ici)

togglr

voir sur github
voir sur le CRAN

install.packages("togglr")

 

Le concept : ce package permet de tracker le temps passé sur Rstudio en activant/désactivant des compteurs sur le site <toggl.com>, puis de récupérer les informations par client/missions pour en faire, par exemple, des dashboards etc. J’ utilise ce package au quotidien, il ne doit pas être si inutile que ça !

Le challenge à relever : Mon premier package “API”,  j’y ai passé beaucoup de temps, mais sans regret puisque depuis j’en ai fait quelques autres en étant très efficace.

 

Je ne peux que vous encouragez vous aussi à faire des packages “inutile”, il y a toujours des challenges à relever et on apprend énormément comme cela.


À propos de l'auteur

Vincent Guyader

Vincent Guyader

Codeur fou, formateur et expert logiciel R


Commentaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


À lire également