Sylvain Gougouzian

gouz

Curious and passionate developer, I like to explore different technologies and different worlds. In order to test these ideas, I stream from time to time on Twitch my sides-projects available also on GitHub or Gitlab.

Dad of 2 mini makers

Conductor/ Compositor / Arrangement / Musician

Dev / Trainer / Speaker

GNU’s farmer

more info on https://gouz.dev

Talks

Les codes à barres, c'est pas que de la barre !

Depuis des dizaines d’années, les codes 1D tels que les EAN13 (dit code-barres) sont sur toutes nos boites de céréales, produits de consommation… Des codes 2D sont également présent dans notre quotidien ainsi que les datamatrices qui sont très utilisées dans le domaine médical.

Et depuis quelques temps sont apparus les codes Aztec, QRCode…

Mais au fond, comment cela fonctionne ? Comment se fait-il qu’on puisse en “dégrader” quelques uns pour y mettre son logo ? Quel est le risque de trop le dégrader ?

Nous comprendrons ensemble les mécaniques de transformation, de redondance de l’information, l’histoire et l’utilisation des plus connus d’entre eux.

Je vous propose de voyager dans le monde merveilleux des codes et d’en créer un en ajoutant une nouvelle dimension !

2025-11-13: DevFest Toulouse
2025-06-26: SunnyTech

Makers de Père en Fils

Transmettre sa passion n’est pas une obligation, mais quand votre enfant est curieux et veut faire “comme Papa”, alors pourquoi se brider ?

Dans ce talk, Matthias, mon fils de 12 ans, et moi-même allons vous faire un retour d’expérience sur notre projet de 2025 : Kord.

Ce projet a pour but de reproduire un équivalent aux Nabaztag, objets connectés de la fin des années 2000 avec une Raspberry Pico et de l’impression 3D.

Nous vous expliquerons les différentes démarches, étapes, et points de discordes, … la vie d’un projet quoi ;)

Nous vous ferrons également un retour tout du long sur comment partager sa passion autour du making (objets connectés, programmation, conception 3D, impression) et d’essayer d’éco-concevoir la solution.

2025-10-03: Volcamp

🌱 Deviens le Green "Full-stack" Lantern !

Nous vivons dans un monde où la consommation dégénère en excès et où les ressources naturelles sont exploitées au-delà de leur limite.

Mais il y a une solution : l’éco-conception 🍀

Nous, acteurs·trices du numérique, pouvons changer la donne pour donner une vie meilleure aux générations futures.

Nous vous proposons de vous donner des clés pour chacun de vos métiers : Front, Back, Ops, …

Le synopsis de ce nouveau blockbuster vous donnera un état des lieux de la planète et de comment aider à en prendre soin :

Qu’est-ce que l’éco-conception et pourquoi en faire ? Comment ces concepts peuvent être appliqués à différents domaines : Front Back DevOps Conclusion Nous illustrerons à chaque fois avec des outils et des démos de cas concrets

Devenez des supers héros/héroïnes de l’éco-conception ! 🦸🏻‍♀️ 🦸‍♂️

2025-09-25: IUT Puy en Velay
2025-02-06: TouraineTech
2025-01-24: SnowCamp
2024-11-26: GreenTechAuvergne
2024-11-17: DevFestNantes
2024-11-08: BDX I/O
2024-06-18: Tech&Wine

Elysia: un cousin d'ExpressJS sous Bun

Après un rappel de ce qu’est Bun, une alternative à Node JS, découvrons ensemble comment fonctionne ce serveur et comment il peut être bien plus performant que son cousin Express.

Bun est réputé pour être très rapide. Elysia suit le même chemin. Cet outil est aussi rapide à écrire des routes qu’à s’exécuter.

Nous découvrirons également son éco-système avec les plugins et ensemble nous verrons comment faire une API REST documentée en un claquement de doigts.

2025-09-17: Clermont'ech
2025-06-26: SunnyTech
2025-02-07: TouraineTech
2025-01-24: SnowCamp
2024-12-12: TechnoZaure Grenoble

🎶 "Vois sur ton chemin, Aventuriers égarés, ..." 🎶 Y'a-t-il un GPS dans le donjon ?

Il est fini le temps où l’on planifiait notre parcours de vacances sur les atlas routiers.

Maintenant il nous est quasi impossible d’aller d’un point A à un point B sans utiliser des outils comme GoogleMaps, ou Plans, ou d’autres alternatives.

Aidons TomTom et Nanar à comprendre comment fonctionnent ces outils.

A*, Djisktra, … Pathfinding n’auront plus de secrets pour vous.

Quelle magie est présente dans ces algorithmes ?

Chers Aventuriers, plus besoin d’un magicien dans votre équipe pour vous déplacer. Vous aurez tout en main pour traverser votre prochain Donjon et optimiser votre trajet vers le prochain Boss.

2025-06-05: DevQuest

Forger votre application CLI en 2h avec Bun (TypeScript)

Apprenez à forger votre toute première application grâce à Bun, un nouveau prétendant au trône de Node et de Deno, doté de pouvoirs innombrables dès sa naissance !

Ensemble, nous dévoilerons le secret de la création, en deux petites heures seulement, d’une application CLI, parée d’une configuration en mode toile et munie d’une API fortifiée contre les attaques grâce à la magie d’Elysia.

Nous ferons appel à une panoplie d’outils enchantés tels que Clipse, Inquirer, Chalk, Cli-Progress… et au langage de TypeScript, langue des érudits.

Il est requis de posséder quelques rudiments de TypeScript ou de JavaScript. Toutefois, Bun et les grimoires javascript vous seront expliqués avec diligence.

Préparez vos machines en installant Bun, soit par un sort jeté avec curl -fsSL https://bun.sh/install | bash, soit par une incantation murmurée à l’aide de powershell -c “irm bun.sh/install.ps1 | iex”.

Vous constaterez alors la simplicité avec laquelle vous pourrez créer et partager votre œuvre en l’espace de deux heures !

Votre application vous permettra de gérer des PJs (Personnages Joueurs) pour des statistiques de lancement de dés.

2025-06-05: DevQuest

Écoconception dans le code: outils et techniques d’optimisation

Dans le cadre d’un hackathon organisé par l’école Simplon, ce talk/atelier présente des techniques d’optimisation au niveau du code pour le front et le back.

2025-04-22: Simplon Clermont-Ferrand

Créer une CLI en 2h en TypeScript avec Bun

Créez votre première application CLI en y incluant une pointe de web et d’une API sécurisée.

Équipé·e·s de Bun, ce concurrent de Node ou Deno, doté d’une multitude de fonctionnalités natives, en 2h nous verrons comment créer cette application CLI. Ce sera l’occasion de découvrir une palette d’outils comme Elysia, Commander, Inquirer, Chalk, Cli-Progress.

Des connaissances en TypeScript ou JavaScript sont vivement recommandées mais les arcanes de Bun et des bibliothèques seront expliquées.

Préparez vos machines avec l’installation de Bun via un simple curl (plus d’informations sur https://bun.sh).

Vous verrez la simplicité de création et de partage de votre application en 2h.

Repartez avec votre CLI prête a l’emploi !

2025-04-22: NightClazz Clermont-Ferrand

La planète en danger, des nouvelles du Front !

De nos jours, on entend de plus en plus parler de Numérique Responsable, de Green IT, de Sustainable IT, …

Mais que pouvons nous faire en tant que “Fronteux” pour améliorer la vie de la planète ?

Ce talk ne se veut pas alarmiste 🚨 et propose des pistes de solutions 💡 pour montrer que rendre une application éco-responsable 🌱 n’est pas que du développement, et que peu de choses diffèrent de notre vie de tous les jours.

Les devs du Front ont un gros potentiel d’amélioration de la qualité et de l’accessibilité.

Comment pouvons-nous agir pour le bien de la planète depuis nos claviers ?

Avons-nous l’entière responsabilité de l’éco-conception ?

A travers quelques chiffres, des démonstrations et des présentations d’outils, vous repartirez avec l’impression d’avoir un super pouvoir pour sauver notre belle Terre. 🌍

Ce talk présente les bases de l’éco-conception et propose des outils pour améliorer notre quotidien et préserver quelques ressources pour que nous puissions continuer notre métier pendant quelques années encore.

2025-03-12: LyonJS
2024-11-17: DevFestNantes
2024-11-11: Volcamp
2024-11-08: BDX I/O
2024-11-07: DevFest Toulouse
2024-06-20: NightClazz Clermont-Ferrand
2024-06-06: Devfest Lille

Et si on utilisait de l'IA en local ?

De nos jours, beaucoup de développeurs·ses passent à l’IA via Copilot, ChatGPT, … Cependant a-t-on besoin d’un IA payante ?

Dans un REX d’un an et demi sur une utilisation d’Ollama, je vous propose une alternative à ces solutions onéreuses et consommatrices de ressources importantes pour notre planète.

Est-ce compliqué, fiable ?

2025-02-20: LavaJUG

Et si Mozart, Daft Punk et Bob Marley avaient été des techs ? 🎶

Aimer un style musical, c’est comme préférer un langage informatique. Chacun son envie. D’ailleurs comment sont nés certains langages ? S’inspirent-ils les uns des autres ? Existe-il un langage meilleur qu’un autre ?

Pour parler à un ordinateur, on doit s’adresser à son processeur. Voyons ensemble quel a été le cheminement des gens qui ont réussi à rendre possible la communication avec les ordinateurs. Nous verrons ensuite comment iels ont rendu accessible au plus grand nombre ce dialogue avec les machines et comment cela a abouti aux langages modernes.

A l’instar de la musique, nous verrons dans ce talk comment les langages s’inspirent les uns des autres et ont parfois une popularité qui va et vient au fil du temps, tel le Top 50 de l’informatique.

Plongez avec nous dans l’histoire de certains langages et voyons ensemble à travers de la métaphore musicale comment tordre le cou aux idées reçues et démontrer qu’il y a une place pour tous.

Et qui sait, vous repartirez peut être avec l’envie de monter un projet où Java, PHP et JavaScript parlent à des services écrits en Rust, Go ou Python 💞

2025-02-06: TouraineTech

3615 Twitch, un bot dans mon minitel ?

Streamant de temps en temps sur Twitch, je me suis demandé comment améliorer l’interaction avec les viewers.

Passionné d’IoT et d’objets vintages, je me suis dit “Et si mes viewers affichaient leurs réactions sur le Minitel que j’avais en arrière-plan ?”

Dans ce talk, j’exprime mon REX sur comment ce bel objet du quotidien d’un autre temps fonctionnait pour l’affichage des images (le format Videotex), et comment créer un bot Twitch utilisant StableDiffusion pour afficher des images sur le minitel et comment bidouiller en mode DIY la machine avec un ESP8266.

Ce talk se veut également interactif : vous pourrez vous-même communiquer avec mon minitel en live depuis votre téléphone !

2025-01-24: SnowCamp
2024-11-21: Codeurs en Seine
2024-11-17: DevFestNantes
2024-11-08: BDX I/O
2024-11-07: DevFest Toulouse
2024-10-11: Volcamp
2024-09-26: Clermont'ech
2024-07-04: SunnyTech
2024-06-26: BreizhCamp
2024-06-14: DevQuest
2024-06-06: Devfest Lille
2024-05-24: TechnoZaure Lyon
2024-05-15: WebEnVert
2024-04-25: MiXiT
2024-02-09: TouraineTech
2024-01-31: SnowCamp
2023-11-16: DevFest Toulouse
2023-11-10: BDX I/O
2023-10-19: DevFestNantes
2023-10-12: Volcamp

De JavaScript à l'impression 3D, promenons-nous dans les jardins de Babylon

De nos jours, l’impression 3D est de plus en plus accessible, on en voit de plus en plus dans les foyers. Il est facile de télécharger un modèle sur Thingiverse, ou encore Cults3D. Mais, lorsque l’on veut créer nos propres modèles cela devient plus compliqué.

En effet, il faut apprendre à manipuler un logiciel de CAD (Conception Assistée par Ordinateur). Même pour créer des modèles simples, il n’y a pas grand chose sur le marché. Il existe bien OpenSCAD, mais il faut également apprendre un nouveau langage.

D’un autre côté, beaucoup de développeuses et développeurs connaissent le JavaScript et Il existe des bibliothèques comme ThreeJS, BabylonJS, … pour faire de la 3D.

Alors comment faire le lien ?

A travers un projet à destination éducative que j’ai créé pour les enfants, “Kody”, j’explique le fonctionnement d’une imprimante 3D, du format STL et de comment, depuis BabylonJS et une librairie codée pour Kody, je peux imprimer des cartes perforées en quelques lignes de codes.

2024-06-14: DevQuest
2024-04-25: MiXiT
2024-02-08: Keynote TouraineTech
2023-11-16: DevFest Toulouse
2023-10-19: DevFestNantes
2023-10-12: Volcamp

Bun, créons une CLI en 20 minutes

“Here Comes a New Challenger!”

Après Deno, Bun.sh vient concurrencer NodeJS.

Seulement, il ne s’attaque pas qu’à la partie runtime, il embarque également un moteur de test, un transpiler, un connecteur sqlite…

A travers un live coding, nous découvrirons quels sont les avantages de Bun par rapport à Node et quelles sont les fonctionnalités que ce nouvel outil apporte.

Notre CLI permettra la création d’un “jarvis” couplée à de l’IA (utilisation de l’api d’ollama) pour gérer nos todos.

2024-07-04: SunnyTech
2024-06-14: DevQuest
2024-01-31: SnowCamp
2023-12-15: TechnoZaure Lyon
2023-11-28: NightClazz Clermont-Ferrand

Comment gérer des journées de 35h ?

Connaissez-vous l’origine de l’expression “être réglé comme du papier à musique” ?

La présentation aurait pu également s’appeler : Comment être chef d’orchestre m’a permis de hacker mon cerveau ?

Toute personne passionnée mène une vie riche et variée. Dans la mienne, la passion s’exprime par ma vie de famille, la musique et le développement.

Comment jongler alors avec un emploi du temps chargé et ne pas devenir fou ?

Dans cette présentation, je vous parlerai des parallèles que je vois entre la direction d’orchestre et la gestion d’un agenda. Au rythme moderato donné par ma baguette de chef d’orchestre, je vous partagerai mes astuces qui vous aideront peut-être à mieux organiser votre emploi du temps et survivre à ces journées bien chargées.

2023-10-19: DevFestNantes
2023-06-16: Camping des Speakers
2023-05-17: WebEnVert
2023-04-28: TechnoZaure Lyon
2023-04-13: MiXiT
2023-03-31: Last Friday Talks @ Bedrock
2023-02-02: Very Tech Trip
2023-01-20: TouraineTech

Plugins

animate 1

SliDesk Plugin: Animate

This plugin lets you animate elements of your page.

To allow that, you need to add a class on the slide and its next: animate.

## A slide with no animation

...

## From .[animate]

This is the element will be animated between both slides

## To .[animate]

This is the element will be animated between both slides

And because this element is present, the element below moves

## An another slide with no animation

...

slidesk plugin install @gouz/animate

autonext 0

SliDesk Plugin: AutoNext

This plugin lets you add a timer to automatically advance to the next slide.

To allow that, you need to add a class on the slide, prefixed with auto-.

## My slide .[auto-1312]

This slide change to next slide after 1312 ms (plus the animation duration, so 1612 ms (with default value)).
slidesk plugin install @gouz/autonext

highlightjs 0

SliDesk Plugin: HighlightJS

This plugin allows you to add HighlightJS in your slides.

You can change the theme modifying plugin.json with the addStyles.

You can change supported langages with the https://highlightjs.org/download package and replace the highlight.min.js file.

To use the plugin, add the langage after the 3 quotes

  ```js

  ```python
slidesk plugin install @gouz/highlightjs

keyboard 1

SliDesk Plugin: keyboard

This plugin allows you to control the navigation with a keyboard.

Per default, arrows left and right control next() and previous(), they can’t be override.

You can override it with a mapping.json file in the root directory of the presentation.

Example:

{
  "a": "next",
  "b": "previous",
  "c": "previous"
}

Keys correspond to the keyboard’s key and values correspond to action (“next”, “previous”, “fullscreen”, …).

WARNING: keyboard does not be loaded with keyboard-notes

Example: This my configuration to use with a 8BitDo Micro:

{
	"k": "next",
	",": "previous",
	"c": "next",
	"d": "previous",
	"j": "webcam"
}
slidesk plugin install @gouz/keyboard

mermaid 0

SliDesk Plugin: Mermaid

This plugin allows you to add Mermaid schemas in your slides.

  ```mermaid
  flowchart TD
      Start --> Stop
slidesk plugin install @gouz/mermaid

modelviewer 0

SliDesk Plugin: ModelViewer

This plugin allows you to display 3D objet in your slide.

You have to use .glb files.

You have to use the !modelview component.

!modelviewer(assets/3D/led.glb)
slidesk plugin install @gouz/modelviewer

number 1

Plugin number

Display the current slide page on bottom right.

Per default, the plugin will display the current slide number in the bottom right corner of the screen.

You can change this behaviour by setting an environment variable (in .env) option to a different value:

PLUGIN_NUMBER_FORMAT="%n/%t"

%n is replaced with the current slide number and %t is replaced with total slides.

slidesk plugin install @gouz/number

plantuml 0

slidesk plugin install @gouz/plantuml

progress 0

slidesk plugin install @gouz/progress

qrcode 2

SliDesk Plugin: QRCode

With this plugin you can generate a QR Code from a given url/text

In your slides, add <div class="sd-qrcode" data-url="URL OR TEXT"></div>.

slidesk plugin install @gouz/qrcode

sbs 0

Plugin sbs (for Step By Step)

Display elements on a slide step by step.

To do this, add the class sbs on the slide

## My Title .[sbs]

And to control your elements, wrap your element by a div with the step class :

<div class="step">First item</div>
<div class="step">!image(my/image.png, alt)</div>
<div class="step">All you want</div>
<div class="step">Last item</div>

You can control the step number by adding a data-sbs attribute to your element :

<div class="step" data-sbs="3">First item</div>
<div class="step" data-sbs="2">!image(my/image.png, alt)</div>
<div class="step" data-sbs="1">All you want</div>
<div class="step" data-sbs="4">Last item</div>
slidesk plugin install @gouz/sbs

spotlight 0

Spotlight

Add an effect to focus a part of your slide.

You can customize the color, inner radius and outer radius of the spotlight. Here is how you can use it:

:root {
  --spotlight-color: #000000ee;
  --spotlight-innerRadius: 150px;
  --spotlight-outerRadius: 200px;
}

Per default, the mouse control the spotlight, but with the keyboard plugin, you can use some keys to move it around.

{
	"z": "spotlightMoveTop",
	"q": "spotlightMoveLeft",
	"s": "spotlightMoveBottom",
	"d": "spotlightMoveRight",
	"e": "spotlightShow"
}
slidesk plugin install @gouz/spotlight

steps 0

SliDesk Plugin: steps

This plugin overrides the next() function of slidesk to allow you to have a list which appears step by step.

You have to add a class steps on the slides which contain a list.

Appearence speed can be control with an override in custom.css by redefining this css variable:

:root {
  --animationSteps: 100ms;
}
slidesk plugin install @gouz/steps

webcam 1

Plugin webcam

To add a webcam view in a slide, add this

<video autoplay="true" id="webcam"></video>

and in the .env file, precise the label of the webcam needed.

WEBCAM="JOYACCESS JA-Webcam (0c45:89a0)"

(use await navigator.mediaDevices.enumerateDevices() to list all you cams)

slidesk plugin install @gouz/webcam

xterm 0

Plugin xterm

Add a <div class="xterm"></div> code in your slide to activate this plugin on it.

Since slidesk@2.7.8

Need unbuffer command line tool (for example on Mac OS X, you can install it with “brew install expect”)

You can specify a start command with data-cmd attribute.

<div class="xterm" data-cmd="ls -l">
slidesk plugin install @gouz/xterm

Components

modelviewer 1

This component generates the model-viewer tag to display 3D object in your slide

!modelviewer(path to your glb file)

slidesk component install @gouz/modelviewer

Themes

tnt2026 0

Theme TNT2026

Ce thème peut être utilisé pour la conférence https://touraine.tech .

Il utilise les codes couleurs de l’évènement.

slidesk theme install @gouz/tnt2026

Templates

split 0

Split

This template follows this structure:

## Title of the slide .[#@gouz__split/split]

[[left]]

Left part

[[/left]]


and the rest of then content


[[right]]

Right part

[[/right]]

and it can continue here

And will render the slide like this:

        Title of the slide

Left part         |  Right part
                  |  and rest of content
                  |  and it can continue here
slidesk template install @gouz/split