Deepnote est un outil de partage collaboratif de notebooks de type Jupyter (format .ipynb
), typiquement utile pour partager des tutoriels avec des étudiants. Initialement prévu pour Python, il comprend une fonctionnalité R
que l’on décrit ici.
Cette explication peut être complétée par la page web de deepnote.
Il faut choisir dans environnement la version de R souhaitée, ensuite des packages peuvent être installés via le terminal. Ces packages sont sauvegardés de manière pérenne dans le projet.
On a vu plus haut que l’on pouvait installer des packages en local sans souci, car ces packages seront stockés de manière permanentes. Cependant, certains packages demandent des librairies Linux dédiées qu’il faut installer au préalable.
Pour que cette installation soit faite, il faut le spécifier dans un fichier Dockerfile
qui contiendra des instructions en Linux.
Illustrions cette démarche par l’exemple de l’installation de la suite de packages tidyverse
. Ce package nécessite d’installer les librairies Linux libcurl4-openssl-dev
, libxml2-dev
et libssl-dev
.
Dans l’onglet Environnement
de deepnote
, choisisser Local ./Dockerfile
. Ensuite, on édite le docker par défaut (qui ne contient que le chargement de Python 3.7).
# Noyau utilisé (ici R 4.0.4)
FROM deepnote/ir:4.0.4
# Instructions linux pour installer les librairies nécessaires
RUN apt-get update -y && apt-get install -y libcurl4-openssl-dev libxml2-dev libssl-dev
Une fois ce Docker écrit, il faut le construire, grâce à l’onglet Build
sur deepnote
.
Vous remarquerez que l’on n’a pas encore installé tidyverse. Une manière simple d’installer tidyverse est ensuite d’ouvrir un terminal directement sur deepnote
(onglet Terminals
), d’y lancer R
et d’installer tidyverse.
# A lancer dans le terminal de deepnote
install.packages("tidyverse")
A présent, votre projet aura tidyverse d’instaler correctement et pourra être partagé.
La création du notebook est assez intuitive et permet de mélanger blocs de textes ou de code. On peut également importer des TP existants. Si ceux-ci étaient écrit en .Rmd
, il est possible de les transformer en .ipynb
grâce à jupytext, un outil de conversion.
La conversion se fait globalement bien (mais ne gère pas les parties en yaml
).
Le partage du notebook aux étudiants se fait via deepnote. Le partage peut se faire avec différents niveaux de droits (vue, éxécution, édition).
Cette solution a assez vide été abandonnée car sa compatibilité avec R n’est pas assurée pour l’instant.
Le package livecode
est développé sur la page github de Colin Rundel. Un tutoriel est disponible ici. Le principe est de pouvoir partager du code en direct avec des étudiants via une adresse web.
::install_github("rundel/livecode") remotes
ngrok
permet de diffuser une adresse locale via un site web. Il faut se créer un compte sur (ngrok.com) (identification possible via github), télécharger le client (sous linux snap install ngrok
) et donner le jeton d’identification donné sur le compte ngrok (taper dans un terminal ngrok authtoken .....
, attention ne pas taper ./ngrok
comme indiqué sur le site).
Sous Rstudio pour un script ou un fichier rmd préalablement enregistré, éxécuter :
<- livecode::serve_file() s
Cela ouvre dans le navigateur une adresse locale que l’on peut partager avec les personnes connectées au même réseau que nous. Pour le partager via ngrok ngrok http http://adresselocale
et partager le lien fourni dans le terminal sur la ligne forwarding.
Les réseaux sécurisés type universitaire bloquent ngrok…