• Contenu
  • Bas de page
blog-ouidou_logoblog-ouidou_logoblog-ouidou_logoblog-ouidou_logo
  • Actualités Ouidou
  • Articles Techniques
  • Livres blancs
  • Interviews Clients
  • Interviews collaborateurs
Découvrir Ouidou
✕
No results See all results
Que 2022 commence !

Que 2022 commence !

7 janvier 2022
Découvrir AOP-Routing avec Angular

Découvrir AOP-Routing avec Angular

21 janvier 2022
Ressources > Les Livebooks Elixir

Les Livebooks Elixir

Article écrit par Clément Alexandre

Petite révolution, les Livebooks Elixir permettent l’exécution de code back-end à la volée, tout en permettant à l’utilisateur d’interagir par le biais d’entrées/sorties graphiques et dynamiques.

Concrètement, Livebook est une application à installer ou exécuter dans le cloud, qui permettra de lire un fichier Markdown tout à fait conventionnel et d’évaluer les extraits de code Elixir qu’il contient à la volée.

C’est un peu CodePen.io, replit ou jupyter à installer où bon vous semble avec quelques super-pouvoirs pour rendre le code plus interactif.

Cette application se trouve être basée sur Phoenix, qui met à profit une bonne partie des fonctionnalités de LiveView. En effet, les Livebooks peuvent par exemple être édités collaborativement !

C’est parti 🚀

Pour découvrir Livebook par la pratique, rien de plus simple !

Nous allons commencer par exécuter une instance de Livebook sur notre machine.

Si vous n’utilisez pas Docker, deux autres options s’offrent à vous, je vous invite à les consulter sur Livebook.dev.

Lançons la commande suivante :

docker run --rm -p 8080:8080 livebook/livebook

Ensuite, vous pourrez cliquer sur le bouton ci-dessous, avant de renseigner l’URL de votre instance Livebook, afin que celle-ci télécharge et importe le notebook que je vous propose en exemple.

image/svg+xml

Ce badge a été créé sur Livebook.dev ; il consiste simplement à renseigner l’URL d’un notebook stocké en ligne. Vous pouvez également télécharger importer mon notebook à la main en allant téléchargeant ici.

Et voilà ! On se retrouve dans le notebook pour la suite de l’article.

Voici une vidéo du procédé et de ses résultats.


Comme vous pourrez le constater, Livebook est une solution assez fantastique pour illustrer le fonctionnement des bibliothèques, en rendant la documentation interactive.
Même si on trouve déjà des documentations interactives, il semble qu’on aille ici un peu plus loin avec les composants d’entrée/sortie graphiques.

Livebook a été une surprise et mis à disposition très rapidement après que l’idée dont il est issu ait germé. Ça illustre la versatilité de l’architecture OTP/Erlang et du framework Phoenix, qui se prêtent parfaitement à ce genre d’application.

Des exemples sont fournis dans toutes les instances de Livebook, vous y trouverez notamment un Pong qui illustre les capacités de gestion de processus et des sessions où deux utilisateurs connectés au même notebook peuvent s’affronter dans des matchs endiablés.

Il est également possible de connecter des nœuds OTP (instances de machines virtuelles Erlang) entre eux. On verra ça une prochaine fois :).

C’est tout pour aujourd’hui ! Nous vous présenterons très certainement d’autres usages de Livebook ou des extraits de code Elixir grâce à cette technologie dans de prochains articles.

Voici l’extrait de code présent dans le notebook pour la postérité :

 Mix.install([   {:tesla, "~> 1.4"},   {:ex_png,   git: "https://github.com/mikowitz/ex_png.git", ref: "bde6fbb237c632342dc009c315125d4c3e2a8b99"} ]) image_url = "https://link.eu1.storjshare.io/raw/jww2xzhymufeyx7xvee2pirxryaq/synbioz-articles%2Flivebooks%2Fsynbioz.png"  {:ok, %{body: request_body}} = Tesla.get(image_url)  {:ok, %{width: width, height: height} = image} = ExPng.Image.from_binary(request_body)  pixels_count = height * width  recolored_image =   Enum.reduce(0..(pixels_count - 1), image, fn pixel_index, reduce_acc ->     x = rem(pixel_index, width)     y = div(pixel_index, width)      coordinates = {x, y}      case ExPng.Image.at(image, coordinates) do       <<_r, _g, b, a>> when b < 180 and a > 0 ->         ExPng.Image.Drawing.draw(reduce_acc, coordinates, ExPng.Color.rgba(255, 0, 0, 255))        _ ->         reduce_acc     end   end)  blank_image = ExPng.Image.new(width, height)  inverted_image =   Enum.reduce(0..(pixels_count - 1), blank_image, fn pixel_index, reduce_acc ->     x = rem(pixel_index, width)     y = div(pixel_index, width)      <<r, g, b, a>> = ExPng.Image.at(image, {x, y})     inverted_color = <<255 - r, 255 - g, 255 - b, a>>      ExPng.Image.Drawing.draw(       reduce_acc,       {width - x, height - y},       inverted_color     )   end) 

À lire aussi

Diagnostiquer, comprendre et optimiser les performances d’une application React
4 mai 2026

Diagnostiquer, comprendre et optimiser les performances d’une application React

Lire la suite de l'article

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation
15 avril 2026

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation

Lire la suite de l'article

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe
8 avril 2026

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe

Lire la suite de l'article

Replay webinaire Ouidou x Sonar
2 juillet 2026

Replay webinaire Ouidou x Sonar

Lire la suite de l'article

Articles associés

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation
15 avril 2026

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation


Lire la suite
Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe
8 avril 2026

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe


Lire la suite
Comment préparer votre Jira Cloud dès maintenant ? 
14 novembre 2025

Comment préparer votre Jira Cloud dès maintenant ? 


Lire la suite
Replay webinaire IA
5 novembre 2025

Replay webinaire IA


Lire la suite
  • Linkedin Ouidou
  • Youtube Ouidou

Blog Ouidou, le rendez-vous des équipes tech qui veulent comprendre avant de décider. Veille, retours d'expérience et décryptages pour rester à la pointe.

© 2026 Ouidou | Tous droits réservés | Plan du site | Mentions légales | Déclaration d'accessibilité
    Découvrir Ouidou
    No results See all results