<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Martin.Verrier</id>
	<title>air - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Martin.Verrier"/>
	<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php/Special:Contributions/Martin.Verrier"/>
	<updated>2026-05-28T22:51:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://air.imag.fr/index.php?title=Projets_2022-2023&amp;diff=53471</id>
		<title>Projets 2022-2023</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Projets_2022-2023&amp;diff=53471"/>
		<updated>2023-03-15T22:31:05Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;&amp;lt;[[Projets 2021-2022]] | [[Projets]] | [[Projets 2023-2024]]&amp;gt;&amp;gt;&lt;br /&gt;
=INFO=&lt;br /&gt;
==INFO3==&lt;br /&gt;
&lt;br /&gt;
==INFO4==&lt;br /&gt;
===Projet Semestre S8===&lt;br /&gt;
&lt;br /&gt;
Enseignants responsables : Olivier Richard&lt;br /&gt;
&lt;br /&gt;
* Dates : Lundi après-midi, Mardi après-midi  &lt;br /&gt;
* Lancement: Lundi 9 Janvier 2023 après midi à &#039;&#039;&#039;14h30 salle PG 39&#039;&#039;&#039;&lt;br /&gt;
* Soutenance à mi-parcours: Mardi 28 Février 2023 après midi à &#039;&#039;&#039;14h00 salle PG 39&#039;&#039;&#039;&lt;br /&gt;
* Soutenance: A définir&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Evaluation à mi-parcours le lundi/mardi ???&#039;&#039;&#039;: Format: 10min (5min de présentation 3 slides au plus, 5min de discussion). Cette évaluation sera prise en compte dans la note finale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Consignes générales:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Vous devez être pro-actifs !!!&#039;&#039;&#039;: Si des points sont pas ou mals spécifiés, vous le faîtes et vous justifiez vos choix. Pour les problèmes techniques éventuels vous pouvez: creuser la question, contacter l&#039;auteur du code si il y a lieu, écrire un rapport de bug (&#039;&#039;&#039;Attention:&#039;&#039;&#039; ca se prépare !), soumettre un patch/pull request, contacter l&#039;enseignant ou la personne référente du projet.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Vous devez maintenir une fiche de suivi de projet&#039;&#039;&#039;: elle doit être mise à jour chaque semaine, elle rassemble les élements essentiels du projet, elle indique les évolutions du projet et présente sa feuille de route. &#039;&#039;&#039;Note:&#039;&#039;&#039; le nom de la fiche doit être composé du nom du projet et suffixé par info4_2022_2023. &#039;&#039;&#039;Cette fiche compte pour la note finale&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Votre code doit être hébergé sur le gitlab et à l&#039;URL suivante https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23&#039;&#039;&#039; , vous utiliserez votre compte UGA.&lt;br /&gt;
&lt;br /&gt;
* Chaque projet doit avoir &#039;&#039;&#039;aux moins 2 dépôts git&#039;&#039;&#039;:&lt;br /&gt;
** &#039;&#039;&#039;Un pour les documents&#039;&#039;&#039; demandés rapport, présentation de pré-soutenante, de soutenance, flyer. &#039;&#039;&#039;Il sera appelé documents.&#039;&#039;&#039;&lt;br /&gt;
** *Un ou plusieurs pour le code,* les tests, les évaluations, les preuves de concept, la ou les documentations afférentes. &lt;br /&gt;
&lt;br /&gt;
* Les &#039;&#039;&#039;documents public doivent être rédigés en anglais (README, documentation, commentaires de code, nom de variables et de fonctions)&#039;&#039;&#039;.  Le *rapport* sera aussi demandé en *anglais* (il fera la taille d&#039;un rapport de TP). Les transparents des présentation peuvent être en anglais ou en français, la soutenance sera taire en français.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Une section dans le rapport doit indiquer ce qui a été développé (LoC) et/ou testé.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;La note obtenue&#039;&#039;&#039; tiendra compte du &#039;&#039;&#039;nombre et de la qualité des commits&#039;&#039;&#039; observé dans &#039;&#039;&#039;vos dépots git et la branche master&#039;&#039;&#039; (or depot documents). La qualité comprend l&#039;intitulé du commit et son contenu. Les notes pourront être différentiées dans un groupe, il n&#039;est pas acceptable de pas avoir de commit dans le(s) dépôt(s) du projet (or dépôt documents).&lt;br /&gt;
&lt;br /&gt;
* Il est fortement conseillé de suivre un &#039;&#039;&#039;développement incrémental&#039;&#039;&#039; qui permette d&#039;avoir à tout moment un démonstrateur à présenter, un projet peut être constituer d&#039;une succession de &#039;&#039;&#039;démonstrateurs présentables séparément&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* Vous devez faire aussi des &#039;&#039;&#039;schémas d&#039;architectures générales et/ou spécifiques, des diagrammes de séquence&#039;&#039;&#039;, et autre documents de spécification si nécessaire. Ces documents vous serviront de base de discussion/brainstorming interne ainsi que dans vos différents documents (rapport, présentations, documentation). Ces schémas sont avant tout conceptuels et techniques.&lt;br /&gt;
&lt;br /&gt;
===Propositions de projets S8===&lt;br /&gt;
&lt;br /&gt;
* 1. [[Centipède]], Nicolas Palix, Didier Donsez&lt;br /&gt;
* 2. [[Dévelopement d’une application iOS/Android RTK NTrip]], Éric Sibert, Yves Pratter (pour les communautés OpenStreetMap et Centipède) &lt;br /&gt;
* 3. [[Reconnaissance de chants d&#039;oiseau par réseaux de neurones embarqués avec TinyML]] (Attention c&#039;est le meme projet que le projet 16 &amp;quot;Robin&amp;quot;), Didier Donsez &lt;br /&gt;
* 4. [[Développement d&#039;extension de jeux sur DreamCast]], Matthieu Mallet (à confirmer)&lt;br /&gt;
* 5. [[Des polymères dans ton école, dans ton musée]], Vincent Mareau, Olivier Richard&lt;br /&gt;
* 6. [[Guidage autonome centimétrique de véhicules sur circuit]], Didier DONSEZ.&lt;br /&gt;
* 7. [[Géolocalisation intérieure centimétrique en Ultra Wide Band]], Didier DONSEZ.&lt;br /&gt;
* 8. Reprise du projet 21-22 [[RealWorld avec Dioxus]] (Rust + web), Olivier Richard&lt;br /&gt;
* 9. [[Paquets NIX pour Polytech]], Olivier Richard&lt;br /&gt;
* 10. [[Mini compilateur C pour mini CPU]], Olivier Richard&lt;br /&gt;
* 11. [[Logiciel d&#039;execution de commande à distance]]: Rust + tokio + grpc/tonic, Olivier Richard&lt;br /&gt;
* 12. [[Limitation des appels systèmes noyaux pour les systèmes de fichiers distribués]], Olivier Richard&lt;br /&gt;
* 13. [[Proof of Coverage LoRaWAN pour TTN, CampusIoT et Helium]], Didier Donsez, Olivier Alphand.&lt;br /&gt;
* 14. [[Jeux d&#039;arcade pour table tactile de café]], Didier Donsez, Nicolas Palix.&lt;br /&gt;
* 15. [[Analyse et visualisation de données environnementales d’espèces envahissantes]], Thierry Tatoni et et Estelle Dumas (Institut Méditerranéen de Biodiversité et d&#039;Ecologie)&lt;br /&gt;
* 16. [[Robin, la suite]] (Attention c&#039;est le meme projet que le projet 3 &amp;quot;Chant d&#039;oiseaux&amp;quot;), Didier Donsez&lt;br /&gt;
* 17. Poursuite projet 21-22 [[Portail pour gestionnaire de taches]](react, Typescript) ou reecriture en VueJS, Olivier Richard&lt;br /&gt;
* 18. Reprise du projet 21-22 [[Portail pour gestionnaire de taches]] avec [https://docs.streamlit.io Streamlit](Python), Olivier Richard&lt;br /&gt;
* 19. [[Portage d&#039;Artiphonie en Godot 4]], Olivier Richard&lt;br /&gt;
* 20. [[Amélioration de la plateforme de prêt Matos de la fablab MASTIC]] Germain Lemasson&lt;br /&gt;
* 21. Portage Godot 3 ou 4 de [[TanksOfFreedom]], Nicolas Palix&lt;br /&gt;
* 22. [[ASAC|Agriculture connectée]] en partenariat avec les projets collectifs IESE/MAT : Nicolas Palix&lt;br /&gt;
* 23. [[Faults In Linux]], Nicolas Palix&lt;br /&gt;
* 24. [[OsmAnd+Traffic]], Nicolas Palix&lt;br /&gt;
* 25. [[Géolocalisation dans une constellation de cubesats ou de pseudolites]], Didier DONSEZ, Olivier ALPHAND&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
|+ Affectation des projets INFO4 22-23&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Sujet&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Etudiants&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Enseignant(s)&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Fiche de suivi&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Documents&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| BOUSQUET THOMAS,DECORSAIRE MATTEO,DELAS TANGUY,GRANDHOMME PAU&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/02/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| CHAOUACHE AKRAM,GHAMMAZ ALI,GLIM MOHAMED,THEVENON ESTEBA&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/03/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| AVANTURIER AURELIE,GUYOT ROMAIN,SOLER LILIA&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/05/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| CORREIA DE OLIVEIRA DIEGO,GALINIER CLEMENT,GALLIER LORIC,THOMAZO CORENTI&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/06/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| BRUN SAMUEL,KEMGNE NASAH DARRYL JORDAN,LITHAUD ALEXANDRE,TYNDAL LUCA&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/10/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| GOGUILLOT AMAURY,ISABELLE WILLIAM,JOUVE AXEL,PUCCI JEREM&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/11/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| COSTE AURELIEN,COURANT MATHIS,DUPONT ELISE,RIFFARD LON&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/13/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| BOMPARD NOAH,BRACQUIER BENJAMIN,DUCROS VINCENT,KURKLU FIKRE&lt;br /&gt;
| Didier Donsez, Nicolas Palix&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/14/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 15&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| ENDEZOUMOU YANN,ETEUBOU EZEMGAN DUREL JUNIOR,GUERIN LOUISE,MACHENAUD FLORIA&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/15/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 17&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| BONFILS ANTOINE,CATTEAU PIERRICK,FERRARI JULIE&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/17/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 18&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| CHARRA ELOI,KHELIFI AHMED AZIZ,MAIDA LEA,MOUNIER DORIA&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/18/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 19&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| ALLÈGRE VICTOR,PALMA ARTHUR, KINSKY MENDES LUIZ&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/19/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 21&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| FAILLA MAXIME,GRICOURT KILLIAN,LOPES THEO,MAUFRAND MICHELL&lt;br /&gt;
| Nicolas Palix&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/21/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 22&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| ABARNOU ELOISE,CAUCHY MARINE,LIMA LEITE JAMILE,PUECH LILIA&lt;br /&gt;
| Nicolas Palix&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/22/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 26&lt;br /&gt;
| [[TODO]]&lt;br /&gt;
| GELEZ ANA,GRANGE MATHIS,MATHIEU LUCAS,ONGHENA EDGA&lt;br /&gt;
| TODO&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/26/docs/README.md Fiche]&lt;br /&gt;
| [[Media:xxx.pdf|Rapport final]] - [[Media:xxx.pdf|Presentation finale FR]] - [[Media:xxx.pdf|Final Presentation EN]] - [[Media:xxx.pdf|Flyer]] - [[Media:xxx.pdf|Presentation de mi-parcours]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==INFO5==&lt;br /&gt;
===Projet IoT S9===&lt;br /&gt;
Enseignants responsables : Bernard Tourancheau&lt;br /&gt;
&lt;br /&gt;
Calendrier:  Octobre à Décembre 2022. Soutenance ?? Janvier 2023.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
|+ Choix des projet des projets INFO5 Réseaux 22-23&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Sujet&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Etudiants&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Documents&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Github/Trello&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Exposés points techniques 10&#039; - questions 5&#039;&lt;br /&gt;
* Nom Sujet&lt;br /&gt;
* ??? Python&lt;br /&gt;
* ??? MQTT&lt;br /&gt;
* ??? COAP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Projet Semestre S10===&lt;br /&gt;
&lt;br /&gt;
Enseignant responsable : [[user:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
Le projet S10 est un projet en équipe qui se déroule en quasi-plein temps au début du semestre 10. Les équipes sont constituées de 2 à 4 élèves. Chaque équipe traite un sujet proposé par un porteur (enseignant de l&#039;école, association ou entreprise externe à l&#039;école). Le sujet est en général exploratoire . Chaque équipe est autonome dans son organisation. Les choix technologiques sont décidés par l&#039;équipe en concertation avec le porteur. L&#039;équipe rencontre régulièrement le porteur pour présenter les choix et rendre compte des avancements et des difficultés rencontrés. Le projet fait l&#039;objet de 2 soutenances et d&#039;un présentation d&#039;un poster en anglais.&lt;br /&gt;
&lt;br /&gt;
====Organisation====&lt;br /&gt;
&lt;br /&gt;
Calendrier: 16/01 (8H30-12H00) au ??/03.&lt;br /&gt;
&lt;br /&gt;
Convention des projets tutorés externes : Elise Didier.&lt;br /&gt;
&lt;br /&gt;
Réunion de présentation et choix des sujets: 16/01 (9H00-12H00) (salle : voir ADE et distanciel Zoom pour les élèves et les porteurs de sujet)&lt;br /&gt;
&lt;br /&gt;
Démarrage travail de groupe: dès les examens passés&lt;br /&gt;
&lt;br /&gt;
Séances de Management de projets innovants (Responsables: Stéphanie Diligent et Emmanuelle Tréhoust): A voir dessus.&lt;br /&gt;
&lt;br /&gt;
Soutenance à mi-parcours : 10/02/2022 13H30-17H30 (15 minutes par équipe).&lt;br /&gt;
&lt;br /&gt;
Soutenance finale : 17/03/2022 (8H30-12H00 et 13H30-17H00). 30 minutes par équipe, questions/réponses et démonstration incluse. Prière de rapporter au fablab le matériel emprunté juste après votre soutenance. &lt;br /&gt;
&lt;br /&gt;
Présentation posters (Responsable: Caroline West) : 16/03/2022 après-midi.&lt;br /&gt;
&lt;br /&gt;
====Séances MPI====&lt;br /&gt;
&lt;br /&gt;
Voir ADE qui fait foi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Soutenance intermédiaire S10 ====&lt;br /&gt;
Date: 10/02/2023 13H30-16H00. Salle 035.&lt;br /&gt;
&lt;br /&gt;
Créneaux de 10 minutes. 5 minutes entre 2 créneaux. &lt;br /&gt;
&lt;br /&gt;
Ordre de passage : 13H30 + (0H15 * (numero de groupe - 1)&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de la soutenance intermédiaire est de vérifier si l&#039;équipe projet est en bon ordre de marche&lt;br /&gt;
&lt;br /&gt;
L&#039;équipe présentera en 5-6 transparents en 7 minutes.&lt;br /&gt;
* les équipiers et leurs rôles&lt;br /&gt;
* le contexte, le sujet et l&#039;objectif du projet&lt;br /&gt;
* l&#039;architecture du systèmes à réaliser&lt;br /&gt;
* les technologies utilisées&lt;br /&gt;
* le plan de travail (backlog, planning, ce qui est fait, ce qu&#039;il reste à faire ...)&lt;br /&gt;
* les difficultés (s&#039;il y a)&lt;br /&gt;
&lt;br /&gt;
Prévoyez du temps pour les questions-réponses (3 minutes max).&lt;br /&gt;
&lt;br /&gt;
Respectez bien les créneaux indiqués (par respect pour les autres équipes) et soyez présents un peu en avance dans la salle d&#039;attente.&lt;br /&gt;
&lt;br /&gt;
La présence des porteurs n&#039;est pas obligatoire.&lt;br /&gt;
&lt;br /&gt;
==== Soutenance finale S10 ====&lt;br /&gt;
&lt;br /&gt;
Date provisoire: 17/03/2023 (8H30-12H00 et 13H30-17H00).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;La présence du(des) porteur(s) est obligatoire. Pensez à les prévenir bien à l&#039;avance&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Durée: 40 minutes par équipe: présentation (20 minutes), démonstration (10 minutes) et questions/réponses (10 minutes). 5 minutes de battement avec l&#039;équipe suivante.&lt;br /&gt;
&lt;br /&gt;
Les documents devront être en ligne sur le wiki (colonne Documents) la avant-veille (ie avant le 15/03/2021 23:59:59 CET) qui est aussi la veille des posters en anglais.&lt;br /&gt;
&lt;br /&gt;
La présentation est constituée des chapitres suivants:&lt;br /&gt;
* Rappel du sujet/besoin et cahier des charges&lt;br /&gt;
* Technologies employées&lt;br /&gt;
* Architecture techniques&lt;br /&gt;
* Réalisations techniques&lt;br /&gt;
* Gestion de projet (méthode, planning prévisionnel et effectif, gestion des risques, rôles des membres ...)&lt;br /&gt;
* Outils (collaboration, CD/CI ...)&lt;br /&gt;
* Métriques logiciels : lignes de code, langages, performance, temps ingénieur (d&#039;après vos journaux), la répartition  des lignes de code et des commits en pourcentage entre les membres du projet ...)&lt;br /&gt;
* Conclusion (Retour d&#039;expérience)&lt;br /&gt;
* Transparent expliquant la démonstration&lt;br /&gt;
&lt;br /&gt;
L&#039;ensemble des documents doit être accessible depuis le tableau ci-dessus et dans chaque fiche de suivi.&lt;br /&gt;
&lt;br /&gt;
Le screencast (réalisé lors de la dernière répétition) sera rendu disponible via un partage caché (wetransfer, google drive …) dont le lien sera ajouté dans le devoir idoine sur Moodle et également envoyé par mail à votre tuteur.&lt;br /&gt;
&lt;br /&gt;
Le rapport final contient les mêmes chapitres que la présentation ainsi qu&#039;un glossaire et une bibliographie. Le rapport ne doit pas dépasser 15 pages (schémas et figures compris). Vous pourrez référencer les autres documents que vous avez produits au cours du projet (spécifications détaillées, algorithmes, conception d&#039;écrans ...).&lt;br /&gt;
&lt;br /&gt;
Le rapport final est au format Markdown et doit être placé dans un des dépôts Git de votre groupe/organisation.&lt;br /&gt;
&lt;br /&gt;
Votre fiche d&#039;auto-évaluation doit être déposée sur [https://im2ag-moodle.univ-grenoble-alpes.fr/course/view.php?id=99 Moodle]&lt;br /&gt;
&lt;br /&gt;
NB: le rapport technique listé dans la colonne Documents contient tout ce qui ne tient pas dans les 15 pages du rapport final : cahier des charges, diagrammes UML, enquêtes utilisateurs design UI, API, technologies employées (détail), plan de tests, term of services, conformance RPGD, audits/diagnostiques sécurité, MTBR, rapport de vulnérabilité, plan de charge, rapports de charge, manuel d&#039;installation …  : ça dépend un peu de la nature de votre projet.&lt;br /&gt;
&lt;br /&gt;
Conseil : &lt;br /&gt;
* 20+10 minutes c&#039;est très court alors répétez la soutenance et votre démonstration auparavant !&lt;br /&gt;
* Prévoyez 1 ou 2 transparents pour présenter la démonstration.&lt;br /&gt;
* Prévoyez des transparents supplémentaires en annexe pour répondre aux questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prière de rapporter au fablab le matériel emprunté juste après votre soutenance&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Planning soutenances====&lt;br /&gt;
=====Matin (Polytech Grenoble, Salle 257, 2ème étage)=====&lt;br /&gt;
* 08H30 Cinéma Project Manager&lt;br /&gt;
* 09H15 Evaluation en ligne&lt;br /&gt;
* 10H00 Visit360&lt;br /&gt;
* 10H45 Carte avalanches et neige&lt;br /&gt;
* 11H30 Fitsize&lt;br /&gt;
&lt;br /&gt;
=====Après midi (Polytech Grenoble, Salle 257, 2ème étage)=====&lt;br /&gt;
&lt;br /&gt;
* 12H45 Polytech SI&lt;br /&gt;
* 13H30 Mapillary RTK&lt;br /&gt;
* 14H15 Intégration LoRaWAN à la plateforme Domus&lt;br /&gt;
* 15H00 eCOM Suite&lt;br /&gt;
* 15H45 pause&lt;br /&gt;
* 16H15 Assistant Vocal avec ChatGPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ADRESSE GEOGRAPHIQUE: Polytech Grenoble, 14, Place du Conseil National de la Résistance, 38400 Saint-Martin-d’Hères&lt;br /&gt;
&lt;br /&gt;
=====After soutenance after COVID=====&lt;br /&gt;
&lt;br /&gt;
Avant le COVID, il était traditionnel d&#039;organiser un pot INFO5 dans la cafét de Polytech après les soutenances. Si vous êtes interessés, signalez votre envie d&#039;organiser ce pot de fin de projet (et du début du stage).&lt;br /&gt;
&lt;br /&gt;
==== Affectations S10====&lt;br /&gt;
{|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Affectation des projets INFO5 2022-2023&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Sujet&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Etudiants&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Porteur(s)&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Fiche de suivi&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Documents&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Dépôt Git&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Soutenance intermédiaire&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| [[FitSize]]&lt;br /&gt;
| Clément NGUYEN (Chef de projet), Valentin DE OLIVEIRA, Sami IFAKIREN, Florian CHAPPAZ&lt;br /&gt;
| Fidèle  Eya&#039;a&lt;br /&gt;
| [[Suivi FitSize 2022-2023|Fiche de suivi]]&lt;br /&gt;
| [https://github.com/2022-2023-INFO5-FitSize/docs/blob/main/Rapport_Final.MD Rapport final] - [https://slides.com/clementnguyen/fitsize-2ba7fb Presentation finale FR] - [[Media:Rapport_Technique_FitSize_2022-2023.pdf|Rapport Technique]] - [[Media:Test infrastructures FitSize_2022-2023 Flyer.pdf|Flyer]] - [https://slides.com/clementnguyen/fitsize Presentation de mi-parcours] - [[Media:English_Poster_FitSize_2022-2023.pdf|Poster EN]] - [[Media:Pitch_FitSize_2022-2023.pdf|Pitch]]&lt;br /&gt;
| [https://github.com/2022-2023-INFO5-FitSize Dépot Git]&lt;br /&gt;
| [https://slides.com/clementnguyen/fitsize Presentation intermédiaire]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| [[Outil de création de visite virtuelle de bâtiments avec placement d&#039;information temps réel]]&lt;br /&gt;
| Justin NGUYEN (Chef de projet), Ayman FAGHLOUMI et Clara BERNERD&lt;br /&gt;
| Didier Donsez&lt;br /&gt;
| [[Suivi Outil de création de visite virtuelle de bâtiments avec placement d&#039;information temps réel 2022-2023|Fiche de suivi]]&lt;br /&gt;
| [https://github.com/Visit360/docs/blob/main/Rapport_final.md Rapport final] - [[Media:Présentation_finale_VISIT360.pdf|Presentation finale FR]] - [[Media:Flyer_Visit360.pdf|Flyer]] - [[Media:Soutenance-intermédiaire-Visit360.pdf|Presentation de mi-parcours]] - [[Media:Final_poster_visit360.pdf|Poster EN]] - [[Media:Pitch_VISIT360_2022-2023.pdf|Pitch]]&lt;br /&gt;
| [https://github.com/Visit360 Dépôt Git]&lt;br /&gt;
| [[Media:Soutenance-intermédiaire-Visit360.pdf|Presentation intermédiaire]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| [[Carte neige et avalanches – Skitour.fr]]&lt;br /&gt;
| Eve Poitevin (Cheffe de projet), Julien Guignard, Thomas Bach et Thomas Fournier&lt;br /&gt;
| Jeroen Zijp (SkiTour)&lt;br /&gt;
| [[Suivi Studio Carte neige et avalanches – Skitour.fr - 2022-2023|Fiche de suivi]]&lt;br /&gt;
| [https://github.com/poitevie/Skitour/blob/main/rapport.md Rapport final] - [[Media:Presentation_finale_Skitour_2022-2023.pdf|Presentation finale FR]] -  - [[Media:Skitour_2022-2023 Flyer.pdf|Flyer]] - [[Media:Presentation_mi_parcours_Skitour_2022-2023.pdf|Presentation de mi-parcours]] - [[Media:English_Poster_Skitour_2022-2023.pdf|Poster EN]] - [[Media:Pitch_Skitour_2022-2023.pdf|Pitch]]&lt;br /&gt;
| [https://github.com/poitevie/Skitour Dépôt Git]&lt;br /&gt;
| [[Media:Presentation_mi_parcours_Skitour_2022-2023.pdf|Presentation intermédiaire]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| [[Assistant Vocal avec ChatGPT]]&lt;br /&gt;
| Julian ROYET (Chef de projet), Mirette GUIRGUIS, Keming ZHANG, Georges Harrisson SIMO YOKAM&lt;br /&gt;
| Didier Donsez&lt;br /&gt;
| [[Suivi Assistant Vocal avec ChatGPT 2022-2023|Fiche de suivi]]&lt;br /&gt;
| [[Rapport Studio XXX 2022-2023|Rapport final]] - [[Media:Presentation_finale_AssistantVocal_2022-2023.pdf|Presentation finale FR]] -  - [[Media:Assistant_Vocal_2022-2023_Flyer.pdf|Flyer]] - [[Media:Presentation_mi_parcours_Assistant Vocal avec ChatGPT_2022-2023.pdf|Presentation de mi-parcours]] - [[Media:English_Poster_XXXX_2022-2023.pdf|Poster EN]] - [[Media:Pitch_AssistantVocal 2022-2023.pdf|Pitch]]&lt;br /&gt;
| [https://github.com/INFO5-Poly Dépôt Git]&lt;br /&gt;
| [[Media:Presentation_mi_parcours_Assistant Vocal avec ChatGPT_2022-2023.pdf|Presentation intermédiaire]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| [[ Adaptation à un protocole expérimentale d’une plateforme d’evaluation en ligne]]&lt;br /&gt;
| Étienne REYGNER (Chef de projet), Angelo ALIBERT &lt;br /&gt;
| Sybille Caffiau&lt;br /&gt;
| [[Suivi Eval en ligne 2022-2023|Fiche de suivi]]&lt;br /&gt;
| [[Rapport Studio XXX 2022-2023|Rapport final]] - [[Media:Presentation_finale_XXX_2022-2023.pdf|Presentation finale FR]] -  - [[Media:XXX_2022-2023 Flyer.pdf|Flyer]] - [[Media:Soutenance_intermédiaire_5_REYGNER_ALIBERT.pdf|Presentation de mi-parcours]] - [[Media:English_Poster_Evaluation en ligne_2022-2023.pdf|Poster EN]] - [[Media:Pitch_XXX_2022-2023.pdf|Pitch]]&lt;br /&gt;
| &lt;br /&gt;
| [[Media:Presentation_mi_parcours_Studio Visite Virtuelle_2022-2023.pdf|Presentation intermédiaire]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| [[Mapillary RTK]]&lt;br /&gt;
| Fodor	Gergely (Chef de projet), Kacha	Tom, Conjard	Samuel, Jardin	Baptiste &lt;br /&gt;
| Nicolas Palix&lt;br /&gt;
| [[Suivi Mapillary RTK 2022-2023|Fiche de suivi]]&lt;br /&gt;
| [[https://github.com/PolyMapi/docs/blob/main/Rapport.md Rapport final]] - [[Media:Presentation_finale_G6_2022-2023.pdf|Presentation finale FR]] -  - [[Media:G6_2022-2023 Flyer.pdf|Flyer]] - [[Media:Presentation_mi_parcours_G6_2022-2023.pdf|Presentation de mi-parcours]] - [[Media:English_Poster_G6_2022-2023.pdf|Poster EN]] - [[https://github.com/PolyMapi/docs/blob/main/pitch.md Pitch]]&lt;br /&gt;
| [https://github.com/orgs/PolyMapi/repositories Dépôt Git]&lt;br /&gt;
| [[Media:Presentation_mi_parcours_G6_2022-2023.pdf|Présentation intermédiaire]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| eCom suite&lt;br /&gt;
| Théo Capet (Chef de projet), Tom DA COSTA, Thomas Abecassis, Loris Mottino &lt;br /&gt;
| Jean-Rémi Bargin, Alexandre Lefebvre&lt;br /&gt;
| [[Suivi Studio XXXX 2022-2023|Fiche de suivi]]&lt;br /&gt;
| [[Rapport XXX 2022-2023|Rapport final]] - [[Media:Presentation_finale_XXX_2022-2023.pdf|Presentation finale FR]] -  - [[Media:XXX_2022-2023 Flyer.pdf|Flyer]] - [[Media:Presentation_mi_parcours_XXX_2022-2023.pdf|Presentation de mi-parcours]] - [[Media:English_Poster_XXXX_2022-2023.pdf|Poster EN]] - [[Media:Pitch_XXX_2022-2023.pdf|Pitch]]&lt;br /&gt;
| &lt;br /&gt;
| [[Media:Presentation_mi_parcours_XXX_2022-2023.pdf|Présentation intermédiaire]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| [[Intégration LoRaWAN à la plateforme Domus]]&lt;br /&gt;
| Camille VIALLET (cheffe de projet), Emeric BRETON, Gaëtan LAVIROTTE, Cyprien PELISSE-VERDOUX &lt;br /&gt;
| Sybille Caffiau&lt;br /&gt;
| [[Suivi Studio Domus 2022-2023|Fiche de suivi]]&lt;br /&gt;
| [[https://github.com/Projet-INFO-S10/Domus-docs/blob/main/Livrables/Rapport%20final%20-%20Inte%CC%81gration%20de%20capteurs%20a%CC%80%20la%20pla%202856bf5e582e4c0287d0bc98cb4c1ad4.md Rapport final]] - [[Media:Presentation_finale_Domus_2022-2023.pdf|Presentation finale FR]] -  - [[Media:Domus_2022-2023 Flyer.pdf|Flyer]] - [[Media:Presentation_mi_parcours_Domus_2022-2023.pdf|Presentation de mi-parcours]] - [[Media:English_Poster_Domus_2022-2023.pdf|Poster EN]] - [[Media:Pitch_Domus_2022-2023.pdf|Pitch]]&lt;br /&gt;
| [https://github.com/orgs/Projet-INFO-S10/repositories Dépot Git]&lt;br /&gt;
| [[Media:Presentation_mi_parcours_Domus_2022-2023.pdf|Présentation intermédiaire]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| POLYTECH SI&lt;br /&gt;
| Hadiby Chemsseddine (chef de projet), Hachem Mohsen, Brice Monthe &lt;br /&gt;
| Olivier Richard, Nicolas Palix&lt;br /&gt;
| [[Suivi Polytech SI 2022-2023|Fiche de suivi]]&lt;br /&gt;
| [[Rapport POLYTECH SI 2022-2023|Rapport final]] - [[Media:Presentation_finale_XXX_2022-2023.pdf|Presentation finale FR]] -  - [[Media:XXX_2022-2023 Flyer.pdf|Flyer]] - [[Media:Presentation_mi_parcours_POLYTECH_SI_2022-2023.pdf|Presentation de mi-parcours]] - [[Media:Poster-Polytech-SI.pdf|Poster EN]] - [[Media:Pitch_XXX_2022-2023.pdf|Pitch]]&lt;br /&gt;
| [https://gricad-gitlab.univ-grenoble-alpes.fr/polytech1/pocs/ Dépot Git]&lt;br /&gt;
| [[Media:Presentation_mi_parcours_POLYTECH_SI_2022-2023.pdf|Présentation intermédiaire]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| [[Cinema Project Manager]] (CPM)&lt;br /&gt;
| Maël CHIOTTI (Chef de projet), Martin VERRIER, WAGNER Samy, CANIN Corentin&lt;br /&gt;
| [https://rvandco.fr Studio Rv &amp;amp; Co]&lt;br /&gt;
| [[Suivi Cinema Project Manager 2022-2023|Fiche de suivi]]&lt;br /&gt;
| [[https://github.com/StudioRvAndCo/CPM-documentation/blob/main/Rapport.md Rapport final]] - [[Media:Presentation_finale_Cinema Project Manager_2022-2023.pdf|Presentation finale FR]] -  - [[Media:Cinema Project Manager_2022-2023 Flyer.pdf|Flyer]] - [https://air.imag.fr/images/0/0e/Soutenance_intermédiaire_CPM.pdf Presentation de mi-parcours] - [[Media:English_Poster_Cinema Project Manager_2022-2023.pdf|Poster EN]] - [[Media:Pitch_Cinema Project Manager_2022-2023.pdf|Pitch]]&lt;br /&gt;
| [https://github.com/StudioRvAndCo Dépôt Git]&lt;br /&gt;
| [https://air.imag.fr/images/0/0e/Soutenance_intermédiaire_CPM.pdf Presentation intermédiaire]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Sujets S10====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 2 - [[Polytech-SI: une alternative à ADE]], Nicolas Palix (LIG/UGA), Olivier Richard (LIG/UGA)&lt;br /&gt;
* 3 - [[FitSize : Collections intelligentes]], Fidèle EYA’A, Jean-Marc INIKO (DigifitMode)&lt;br /&gt;
* 4 - [[ Adaptation à un protocole expérimentale d’une plateforme d’evaluation en ligne]], Christelle Martin-Lacroux (CERAG/UGA), Sybille Caffiau(LIG/UGA), Sophie Dupuy-Chessa (LIG/UGA)&lt;br /&gt;
* 5 - [[Intégration LoRaWAN à la plateforme Domus]], Sybille Caffiau(LIG/UGA)&lt;br /&gt;
* 6 - [[Suite du projet eCOM Suivi nutritionnel en EPHAD]] (à confirmer), Jean-Rémi BARGIN (Mutuelle Française Isère), Alexandre Lefebvre (MoonshotLabs)&lt;br /&gt;
* 7 - [[Carte neige et avalanches – Skitour.fr]], Jeroen Zijp (SkiTour)&lt;br /&gt;
* 8 - [[Mapillary RTK]] (à confirmer), Nicolas PALIX LIG/UGA&lt;br /&gt;
* 9 - [[Outil de création de visite virtuelle de bâtiments avec placement d&#039;information temps réel]], Didier DONSEZ (LIG)&lt;br /&gt;
* 13 - [[Cinema Project Manager]] (CPM): [https://rvandco.fr/ Association Studio Rv &amp;amp; Co]&lt;br /&gt;
* 14 - Assistant Vocal avec ChatGPT, Julian Royet&lt;br /&gt;
&lt;br /&gt;
==== Sujets non choisis ====&lt;br /&gt;
* 1 - [[Test d&#039;infrastructures avec NixOS 2023]], Olivier Richard (LIG)&lt;br /&gt;
* 10 - [[Service de géolocalisation par TDOA LoRaWAN]], Didier DONSEZ (LIG/UGA), Olivier ALPHAND (LIG/GINP)&lt;br /&gt;
* &amp;lt;s&amp;gt;11 - [[Contributions open-source au projet JHipster]] (reporté à 2024) : Didier DONSEZ (LIG/UGA)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;12 - [[Contributions open-source au projet RIOT OS]] (reporté à 2024) : Didier DONSEZ (LIG/UGA)&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Annexes ====&lt;br /&gt;
&lt;br /&gt;
Conseil: visitez les projets S10 des années précédentes.&lt;br /&gt;
&lt;br /&gt;
===== Comment concevoir un poster qui accroche ? =====&lt;br /&gt;
&lt;br /&gt;
* https://fr.wikihow.com/r%C3%A9aliser-une-affiche-scientifique&lt;br /&gt;
&lt;br /&gt;
===== Comment concevoir un dépliant A4 3 volets (ie flyer) qui accroche ? =====&lt;br /&gt;
&lt;br /&gt;
* https://www.jimprimeenfrance.fr/blog/comment-faire-un-depliant-sur-word/&lt;br /&gt;
&lt;br /&gt;
===== Comment réaliser un pitch vidéo qui accroche ? =====&lt;br /&gt;
&lt;br /&gt;
* https://www.dynamique-mag.com/article/pitch-video-solution-efficace-presenter-business.6199&lt;br /&gt;
&lt;br /&gt;
=IESE=&lt;br /&gt;
&lt;br /&gt;
==IESE5==&lt;br /&gt;
&lt;br /&gt;
===Internet des Objets===&lt;br /&gt;
&lt;br /&gt;
Enseignants : [[user:Donsez|Didier Donsez]], David Eon&lt;br /&gt;
&lt;br /&gt;
====Objectif====&lt;br /&gt;
&lt;br /&gt;
L’objectif du mini-projet de l&#039;UE &amp;quot;Internet des Objets&amp;quot; est d’étudier du prototypage d’un objet connecté et du service associé.&lt;br /&gt;
&lt;br /&gt;
La connectivité de l’objet peut être de type LoRaWAN, BLE ou Wifi (ou les 3 ensembles).&lt;br /&gt;
&lt;br /&gt;
L’objet peut se baser sur un produit ou une carte d’évaluation à laquelle sont raccordés des capteurs (platine Grove par exemple). Les capteurs Grove et autres peuvent être emprunter au fablab via le service https://matos.univ-grenoble-alpes.fr/#/ .&lt;br /&gt;
&lt;br /&gt;
L’objet LoRaWAN est identifié par son DevEUI et associé à une pièce ou à un lieu. Il peut être enregistré sur un réseau public en OTAA (TTN, Helium) ou sur un réseau privé en OTAA comme CampusIoT.&lt;br /&gt;
&lt;br /&gt;
Les réseaux LoRaWAN utilisables en fonction de la couverture de votre site peuvent être :&lt;br /&gt;
* CampusIoT&lt;br /&gt;
* The Things Network&lt;br /&gt;
* Helium (10000 DC gratuit soit un message de 24 bytes par DC) &lt;br /&gt;
&lt;br /&gt;
Pour l’affichage de données, vous pourrez utiliser des plateformes comme InfluxData, Cayenne, Thingsboard, Home assistant …&lt;br /&gt;
&lt;br /&gt;
L’objectif du projet est de &lt;br /&gt;
* réaliser une analyse (rapide) du marché des produits commerciaux concurrents&lt;br /&gt;
* définir l’architecture globale du systèmes (ensemble d’objets, service en ligne (cloud)),&lt;br /&gt;
* définir la sécurité globale (clé de chiffrage),&lt;br /&gt;
* définir le respect de la vie privée du service (RGPD) : lister les risques d’atteinte au respect de la vie privée&lt;br /&gt;
* définir l’architecture matérielle de l’objet, &lt;br /&gt;
* estimer le coût de la BOM de votre produit (composants, PCB et enclosure) pour 5000 unités produites&lt;br /&gt;
** pour le boitier, vous pouvez rechercher des boitiers “standards” disponibles dans les catalogues fournisseurs&lt;br /&gt;
** pour le PCB, vous pouvez fournir une estimation du prix de fabrication du PCB et du masque chez des fournisseurs comme https://jlcpcb.com/ , https://www.wedirekt.fr/fr/ … &lt;br /&gt;
* estimer le coût de certification ETSI du produit, le coût de certification LoRa Alliance du produit ...&lt;br /&gt;
* proposer une implémentation du logiciel embarqué de l’objet défini.&lt;br /&gt;
* définir/documenter le format des messages uplink et downlink échangés (dans le cas des objets LoRaWAN, privilégiez le format LPP)&lt;br /&gt;
* définir le logiciel embarqué de l’objet.&lt;br /&gt;
* donner les métriques logiciel du logiciel embarqué (nombre de lignes de code, taille du binaire du firmware ie le fichier .bin)&lt;br /&gt;
* instrumenter le logiciel embarqué pour mesurer les différents temps d’exécution des principales phases d’exécution (par exemple: durée d’une prise de photo, écriture sur carte SD, inférences avec un réseau de neurones …)&lt;br /&gt;
** prévoir de montrer la trace console de l’objet pendant la démonstration.&lt;br /&gt;
* estimer la durée de vie de la batterie de l’objet (pour LoRaWAN en fonction du datarate comme avec l’outil https://www.elsys.se/en/battery-life-calculator/ &lt;br /&gt;
* réaliser une analyse (brève) du cycle de vie du produit “durable” et “sobre” (ACV)&lt;br /&gt;
* rechercher et analyser (avantages/inconvénients sous la forme d’une grille) des produits concurrents&lt;br /&gt;
* montrer les intégrations effectuées (cayenne, influxdb, home assistant, jupyter notebook  …)&lt;br /&gt;
* compter le nombre de lignes de code développé (coté objet, coté application) avec un outil comme cloc. Précisez les langages et les outils utilisés (git, arduino-cli …)&lt;br /&gt;
&lt;br /&gt;
Le firmware (si RIOT ou FreeRTOS) doit activer le watchdog timer afin de redémarrer en cas de crash logiciel.&lt;br /&gt;
&lt;br /&gt;
Vous pourrez « fabriquer » un boîtier de la version prototype de l’objet en utilisant une imprimante 3D ou la découpeuse laser disponibles au fablab.&lt;br /&gt;
&lt;br /&gt;
====Projets====&lt;br /&gt;
&lt;br /&gt;
* Détection d’ouverture de porte/fenêtre (avec Home Assistant)&lt;br /&gt;
* Suivi de troupeaux de bovins : détection d’anomalie (attaque des prédateurs …)&lt;br /&gt;
* Mesure d’occupation du salle et de niveau de confort sonore (de bruit)&lt;br /&gt;
* Comptage de vehicules avec YOLO&lt;br /&gt;
* Comptage de personnes avec YOLO&lt;br /&gt;
* Nichoir connecté (remarque: semblable aux ruches connectés de Polytech). Contribution à RIOT OS&lt;br /&gt;
* Artificial Noise et LoRaWAN&lt;br /&gt;
* Affichage d’un QRCode régénéré périodiquement sur écran e-Paper (gestion de files d’attente virtuelle, ronde de surveillance, course d’orientation, réservation d’une salle, collecte de tickets de réduction …). Contribution à RIOT OS&lt;br /&gt;
* Remontée d’info véhicule via LoRaWAN. (Il faut une voiture avec une prise ODB-II). Contribution à RIOT OS&lt;br /&gt;
* Détection (comptage) de personnes&lt;br /&gt;
* Prise connectée LoRaWAN : Mesure de consommation de courant. Contribution à RIOT OS&lt;br /&gt;
* Scanner QRCode pour ouverture de porte&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:English_Poster_Cinema_Project_Manager_2022-2023.pdf&amp;diff=53470</id>
		<title>File:English Poster Cinema Project Manager 2022-2023.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:English_Poster_Cinema_Project_Manager_2022-2023.pdf&amp;diff=53470"/>
		<updated>2023-03-15T22:24:47Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Cinema_Project_Manager_2022-2023_Flyer.pdf&amp;diff=53469</id>
		<title>File:Cinema Project Manager 2022-2023 Flyer.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Cinema_Project_Manager_2022-2023_Flyer.pdf&amp;diff=53469"/>
		<updated>2023-03-15T22:21:37Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Presentation_finale_Cinema_Project_Manager_2022-2023.pdf&amp;diff=53468</id>
		<title>File:Presentation finale Cinema Project Manager 2022-2023.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Presentation_finale_Cinema_Project_Manager_2022-2023.pdf&amp;diff=53468"/>
		<updated>2023-03-15T22:21:03Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Suivi_Cinema_Project_Manager_2022-2023&amp;diff=53441</id>
		<title>Suivi Cinema Project Manager 2022-2023</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Suivi_Cinema_Project_Manager_2022-2023&amp;diff=53441"/>
		<updated>2023-03-15T16:24:08Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= L&#039;équipe =&lt;br /&gt;
&lt;br /&gt;
== Les élèves ==&lt;br /&gt;
&lt;br /&gt;
* Maël CHIOTTI&lt;br /&gt;
* Samy WAGNER&lt;br /&gt;
* Corentin CANIN&lt;br /&gt;
* Martin VERRIER&lt;br /&gt;
&lt;br /&gt;
== Les porteurs du projet ==&lt;br /&gt;
&lt;br /&gt;
* Maël CHIOTTI&lt;br /&gt;
&lt;br /&gt;
= Suivi de projet =&lt;br /&gt;
&lt;br /&gt;
== Semaine 1 - du 16/01 au 21/01 ==&lt;br /&gt;
&lt;br /&gt;
* Choix des technologies&lt;br /&gt;
* Etablissement cahier des charges&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 - du 23/01 au 27/01 ==&lt;br /&gt;
&lt;br /&gt;
* Confection maquette figma Mobile&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 - du 30/01 au 03/02 ==&lt;br /&gt;
&lt;br /&gt;
* Confection maquette figma Web&lt;br /&gt;
* Formation équipe à Flutter&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 - du 06/01 au 10/02 ==&lt;br /&gt;
&lt;br /&gt;
* Mise en place de la BDD mongoDB&lt;br /&gt;
* Début du développement frontend&lt;br /&gt;
&lt;br /&gt;
== Semaine 5 - du 20/01 au 24/02 ==&lt;br /&gt;
&lt;br /&gt;
* Développement frontend&lt;br /&gt;
* Début du développement backend &lt;br /&gt;
&lt;br /&gt;
== Semaine 6 - du 27/02 au 03/03 ==&lt;br /&gt;
&lt;br /&gt;
* Développement frontend&lt;br /&gt;
* Développement backend&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 - du 06/03 au 10/03 ==&lt;br /&gt;
&lt;br /&gt;
* Préparation du Poster&lt;br /&gt;
* Développement frontend&lt;br /&gt;
* Développement backend&lt;br /&gt;
&lt;br /&gt;
== Semaine 8 - du 13/03 au 17/03 ==&lt;br /&gt;
&lt;br /&gt;
* Finalisation code frontend&lt;br /&gt;
* Finalisation code backend&lt;br /&gt;
* Confection du rapport&lt;br /&gt;
* Préparation de la soutenance&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Suivi_Cinema_Project_Manager_2022-2023&amp;diff=53440</id>
		<title>Suivi Cinema Project Manager 2022-2023</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Suivi_Cinema_Project_Manager_2022-2023&amp;diff=53440"/>
		<updated>2023-03-15T16:19:55Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: Created page with &amp;quot;= L&amp;#039;équipe =  == Les élèves ==  * Maël CHIOTTI * Samy WAGNER * Corentin CANIN * Martin VERRIER  == Les porteurs du projet ==  *   = Suivi de projet =  == Semaine 1 - du 16...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= L&#039;équipe =&lt;br /&gt;
&lt;br /&gt;
== Les élèves ==&lt;br /&gt;
&lt;br /&gt;
* Maël CHIOTTI&lt;br /&gt;
* Samy WAGNER&lt;br /&gt;
* Corentin CANIN&lt;br /&gt;
* Martin VERRIER&lt;br /&gt;
&lt;br /&gt;
== Les porteurs du projet ==&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
= Suivi de projet =&lt;br /&gt;
&lt;br /&gt;
== Semaine 1 - du 16/01 au 21/01 ==&lt;br /&gt;
&lt;br /&gt;
* Choix des technologies&lt;br /&gt;
* Etablissement cahier des charges&lt;br /&gt;
&lt;br /&gt;
== Semaine 2 - du 23/01 au 27/01 ==&lt;br /&gt;
&lt;br /&gt;
* Confection maquette figma Mobile&lt;br /&gt;
&lt;br /&gt;
== Semaine 3 - du 30/01 au 03/02 ==&lt;br /&gt;
&lt;br /&gt;
* Confection maquette figma Web&lt;br /&gt;
* Formation équipe à Flutter&lt;br /&gt;
&lt;br /&gt;
== Semaine 4 - du 06/01 au 10/02 ==&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
== Semaine 5 - du 20/01 au 24/02 ==&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
== Semaine 6 - du 27/02 au 03/03 ==&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Semaine 7 - du 06/03 au 10/03 ==&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Cinema_Project_Manager&amp;diff=53177</id>
		<title>Cinema Project Manager</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Cinema_Project_Manager&amp;diff=53177"/>
		<updated>2023-01-15T18:01:31Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Encadrant enseignant: TBC&lt;br /&gt;
&lt;br /&gt;
Product owner: Bastien Moirez Charron&lt;br /&gt;
&lt;br /&gt;
Parrain: [https://rvandco.fr Studio Rv &amp;amp; Co]&lt;br /&gt;
&lt;br /&gt;
Etudiants (4 max):&lt;br /&gt;
* Maël Chiotti&lt;br /&gt;
* Corentin Canin&lt;br /&gt;
* Samy Wagner&lt;br /&gt;
* Martin Verrier&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Cinema Project Manager]] (CPM) est proposé par l&#039;association [https://rvandco.fr/ Studio Rv &amp;amp; Co].&lt;br /&gt;
&lt;br /&gt;
L&#039;association est spécialisée dans la production audiovisuelle. Elle a pour projet de développer une application de gestion de projet cinématographique.&lt;br /&gt;
&lt;br /&gt;
L&#039;application Cinema Project Manager (CPM) permettrait de documenter et organiser différents projets, de la phase de pré-production (planning de tournage, scénario, découpage technique) en passant par la production (association d&#039;acteurs à un personnage, liste des costumes et accessoires) jusqu&#039;à la post-production (avancée du montage et des effets spéciaux).&lt;br /&gt;
&lt;br /&gt;
Grâce à cette application, l&#039;association pourrait augmenter en efficacité, d&#039;une part en regroupant tous les documents relatifs à un projet (autorisations de tournage, plannings, scénarios etc.) en un seul endroit mais aussi en apportant une vraie facilité d&#039;organisation pour les plannings, en intégrant les disponibilités de chaque acteur du projet.&lt;br /&gt;
&lt;br /&gt;
Langages de programmation:&lt;br /&gt;
&lt;br /&gt;
Canevas frontend: [https://www.electronjs.org/ Electron JS] ? Gestion de l&#039;internationalisation ? Mode offline (resynchronisation de modification) ?&lt;br /&gt;
&lt;br /&gt;
Canevas backend: Micro-services ?&lt;br /&gt;
&lt;br /&gt;
Persistance: Base de données (avec versionnement) ? Wiki ? Git (commit ? tags ? branch ?) ?&lt;br /&gt;
&lt;br /&gt;
Méthodes: Scrum ? Kanban ?&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2022&amp;diff=52879</id>
		<title>VT2022</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2022&amp;diff=52879"/>
		<updated>2022-11-28T16:06:51Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: /* Séance 4 : 28/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VT2021|&amp;lt;&amp;lt; Etudes 2021]] [[VT|Sommaire]] [[VT2023|Etudes 2023 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Veille Technologique et Stratégique=&lt;br /&gt;
* Enseignants: [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en INFO5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de cette UE est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.&lt;br /&gt;
&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Chaque séance comporte 3 à 4 présentations suivi chacune d&#039;une démonstration. Chaque présentation dure entre 20 et 25 minutes en fonction des séances. Pour plus de sécurité, la démonstration peut être pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera réalisée de préférence avec [[reveal.js]] ou avec [[remarkjs]].&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera notée et commentée par tous vos camarades via un sondage (smartphone). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
Remarque: Le [https://fr.wikipedia.org/wiki/Plagiat plagiat] est incompatible avec l&#039;éthique de l&#039;ingénieur. Le directeur d&#039;école peut demander votre traduction devant la commission disciplinaire de l&#039;université. La sanction peut aller jusqu’à une interdiction d&#039;inscription dans les établissements de l&#039;enseignement supérieur français pendant plusieurs années : Le jeu en vaut-il la chandelle ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-VT-INFO5-2122.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
=Planning=&lt;br /&gt;
&lt;br /&gt;
== Séance 1 : 07/11 (réporté)==&lt;br /&gt;
&lt;br /&gt;
== Séance 2 : 14/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
Présentation et organisation.&lt;br /&gt;
&lt;br /&gt;
== Séance 3 : 21/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* [[AdTech et capitalisme de surveillance]]: Julien Guigard, Angelo Alibert [[Media:VT2022_Adtech_presentation.pdf|présentation]], [[Media:AdTech et capitalisme de surveillance Rapport écrit.pdf|fiche]], [[VT2022_Adtech_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Oeuvres d&#039;art générées par une IA]] : DALL-E 2, Midjourney et Stable Diffusion : Kacha, Jardin [[Media:VT2022_AIArt_presentation.pdf|présentation]], [[Media:VT2022 AIArt synthese.pdf|fiche]], [[VT2022_AIArt_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Ansible]]: Da Costa [[Media:VT2022_Ansible_presentation.pdf|présentation]], [[VT2022_Ansible_fiche|fiche]], [[VT2022_Ansible_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 4 : 28/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* [[Web Assembly et Smart Contracts]]: Verrier, Mottino [[Media:Web_assembly_&amp;amp;_smart_contracts.pdf|présentation]], [[VT2022_WebAssemblyEtSmartContracts_fiche|fiche]], [[VT2022_WebAssemblyEtSmartContracts_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[GPT Neo|GPT la suite]] : Monthe Djeumou, Simo Yokam [[Media:VT2022_GPT_presentation.pdf|présentation]], [[VT2022_GPT_fiche|fiche]], [[VT2022_GPT_demo|demo]], [https://montube.com/GPTAZERTYUIO screencast]&lt;br /&gt;
* [[Implants rétiniens]]: Bernerd, NGuyen Justin [[Media:VT_Implants_Rétiniens.pdf|présentation]], [[Media:Fiche_de_synthèse.pdf|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 5 : 05/12 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* WebRTC: Hadiby, Mohsen [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Voice-First Development : Designing, Developing, and Deploying Conversational Interfaces: Conjard, Fodor [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Helium: Lavirotte, Pelisse [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Internet of Audio Things]]: Teyssier, Drouin [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 6 : 12/12 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* NVidia [[Deep learning super sampling (DLSS)]]: Canin, Wagner [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* OpenPose (ou autre): Poitevin, Reygner [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* AzureRTOS: Bach, Chiotti [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Post-quantum cryptography]] : Zhang, Guiguis [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 7 : 09/01 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Vote électronique : Abecassis [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* NFT : plateformes, technologies, vices et vertus: Faghloumi [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Géo-localisation Wifi : Fournier [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Generation of ASMR (Autonomous sensory meridian response)]]: Chappaz, De Oliveira [[Media:VT2022_ASMR_presentation.pdf|présentation]], [[VT2022_ASMR_fiche|fiche]], [[VT2022_ASMR_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 8 : 16/01 (très probablement en distanciel) ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* [[IPFS (InterPlanetary File System)]]: Capet, Royer [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Low Code Development]] : Breton, Nguyen Clément [[Media:VT2022_LowCode_presentation.pdf|présentation]], [[Media:VT2022_LowCode_fiche.pdf|fiche]], [[Media:VT2022_LowCode_demo.pdf|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
=Sujets=&lt;br /&gt;
# [[Oeuvres d&#039;art générées par une IA]] : DALL-E 2, Midjourney et Stable Diffusion&lt;br /&gt;
# [[GPT Neo]]&lt;br /&gt;
# [[Predictive networks]]&lt;br /&gt;
# [[Objectives and Key Results]]&lt;br /&gt;
# [[Implants rétiniens]]&lt;br /&gt;
# [[Post-quantum cryptography]]&lt;br /&gt;
# [[Internet of Audio Things]]&lt;br /&gt;
# [[uFS]] : a user-level filesystem semi-microkernel&lt;br /&gt;
# [[Generation of ASMR (Autonomous sensory meridian response)]]&lt;br /&gt;
# [[Wasm|WebAssembly]]&lt;br /&gt;
# [[Web Assembly et Smart Contracts]]&lt;br /&gt;
# [[Application Performance Monitoring]] : démonstration de [[Apache Skywalking]]&lt;br /&gt;
# [[Low Code Development]]&lt;br /&gt;
# [[Multi-Region Database Deployments: Patterns and Anti-Patterns]] : démonstration avec [[Cockroack]]&lt;br /&gt;
# [[Proof of Coverage Blockchain]] : démonstration d&#039;[[Helium]]&lt;br /&gt;
# [[IPFS (InterPlanetary File System)]]&lt;br /&gt;
# [[Géolocalisation Wifi : principles et services de géolocalisation Wifi et cellulaire]]&lt;br /&gt;
# [[Caches distribués]]: démonstration avec [[Redis]]&lt;br /&gt;
# [[NEMU]] : open source hypervisor specifically built and designed to run modern cloud workloads on modern 64-bit Intel and ARM CPUs.&lt;br /&gt;
# [[Fission]] : open-source serverless function framework for [[Kubernetes]] with a focus on developer productivity and high performance.&lt;br /&gt;
# [[AdTech et Surveillance capitalism]]&lt;br /&gt;
# [[Conflict-free replicated data type]] (CRDT)&lt;br /&gt;
# [[ Voice-First Development]] : Designing, Developing, and Deploying Conversational Interfaces&lt;br /&gt;
# [[AzureRTOS]] : système d&#039;exploitation pour l&#039;Internet des Objets. démonstration sur [https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html B-L475] à récupérer au fablab.&lt;br /&gt;
# Algorithmes et systèmes de vote électronique : vices et vertus.&lt;br /&gt;
# [[Pantavisor Linux]]: A Framework for Building Containerized IoT Systems&lt;br /&gt;
# [[WebRTC]] : Web Real-Time Communication&lt;br /&gt;
# [[uFS]] : a user-level filesystem semi-microkernel&lt;br /&gt;
# [[Bundle Protocol]]&lt;br /&gt;
# [[NFT]] : plateformes, technologies, vices et vertues.&lt;br /&gt;
# [[MLOps]] : DevOps for Machine Learning projects&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2022&amp;diff=52878</id>
		<title>VT2022</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2022&amp;diff=52878"/>
		<updated>2022-11-28T16:06:02Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: /* Séance 4 : 28/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VT2021|&amp;lt;&amp;lt; Etudes 2021]] [[VT|Sommaire]] [[VT2023|Etudes 2023 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Veille Technologique et Stratégique=&lt;br /&gt;
* Enseignants: [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en INFO5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de cette UE est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.&lt;br /&gt;
&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Chaque séance comporte 3 à 4 présentations suivi chacune d&#039;une démonstration. Chaque présentation dure entre 20 et 25 minutes en fonction des séances. Pour plus de sécurité, la démonstration peut être pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera réalisée de préférence avec [[reveal.js]] ou avec [[remarkjs]].&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera notée et commentée par tous vos camarades via un sondage (smartphone). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
Remarque: Le [https://fr.wikipedia.org/wiki/Plagiat plagiat] est incompatible avec l&#039;éthique de l&#039;ingénieur. Le directeur d&#039;école peut demander votre traduction devant la commission disciplinaire de l&#039;université. La sanction peut aller jusqu’à une interdiction d&#039;inscription dans les établissements de l&#039;enseignement supérieur français pendant plusieurs années : Le jeu en vaut-il la chandelle ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-VT-INFO5-2122.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
=Planning=&lt;br /&gt;
&lt;br /&gt;
== Séance 1 : 07/11 (réporté)==&lt;br /&gt;
&lt;br /&gt;
== Séance 2 : 14/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
Présentation et organisation.&lt;br /&gt;
&lt;br /&gt;
== Séance 3 : 21/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* [[AdTech et capitalisme de surveillance]]: Julien Guigard, Angelo Alibert [[Media:VT2022_Adtech_presentation.pdf|présentation]], [[Media:AdTech et capitalisme de surveillance Rapport écrit.pdf|fiche]], [[VT2022_Adtech_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Oeuvres d&#039;art générées par une IA]] : DALL-E 2, Midjourney et Stable Diffusion : Kacha, Jardin [[Media:VT2022_AIArt_presentation.pdf|présentation]], [[Media:VT2022 AIArt synthese.pdf|fiche]], [[VT2022_AIArt_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Ansible]]: Da Costa [[Media:VT2022_Ansible_presentation.pdf|présentation]], [[VT2022_Ansible_fiche|fiche]], [[VT2022_Ansible_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 4 : 28/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* [[Web Assembly et Smart Contracts]]: Verrier, Mottino [[File:Web_assembly_&amp;amp;_smart_contracts.pdf|présentation]], [[VT2022_WebAssemblyEtSmartContracts_fiche|fiche]], [[VT2022_WebAssemblyEtSmartContracts_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[GPT Neo|GPT la suite]] : Monthe Djeumou, Simo Yokam [[Media:VT2022_GPT_presentation.pdf|présentation]], [[VT2022_GPT_fiche|fiche]], [[VT2022_GPT_demo|demo]], [https://montube.com/GPTAZERTYUIO screencast]&lt;br /&gt;
* [[Implants rétiniens]]: Bernerd, NGuyen Justin [[Media:VT_Implants_Rétiniens.pdf|présentation]], [[Media:Fiche_de_synthèse.pdf|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 5 : 05/12 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* WebRTC: Hadiby, Mohsen [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Voice-First Development : Designing, Developing, and Deploying Conversational Interfaces: Conjard, Fodor [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Helium: Lavirotte, Pelisse [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Internet of Audio Things]]: Teyssier, Drouin [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 6 : 12/12 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* NVidia [[Deep learning super sampling (DLSS)]]: Canin, Wagner [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* OpenPose (ou autre): Poitevin, Reygner [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* AzureRTOS: Bach, Chiotti [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Post-quantum cryptography]] : Zhang, Guiguis [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 7 : 09/01 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Vote électronique : Abecassis [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* NFT : plateformes, technologies, vices et vertus: Faghloumi [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Géo-localisation Wifi : Fournier [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Generation of ASMR (Autonomous sensory meridian response)]]: Chappaz, De Oliveira [[Media:VT2022_ASMR_presentation.pdf|présentation]], [[VT2022_ASMR_fiche|fiche]], [[VT2022_ASMR_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 8 : 16/01 (très probablement en distanciel) ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* [[IPFS (InterPlanetary File System)]]: Capet, Royer [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Low Code Development]] : Breton, Nguyen Clément [[Media:VT2022_LowCode_presentation.pdf|présentation]], [[Media:VT2022_LowCode_fiche.pdf|fiche]], [[Media:VT2022_LowCode_demo.pdf|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
=Sujets=&lt;br /&gt;
# [[Oeuvres d&#039;art générées par une IA]] : DALL-E 2, Midjourney et Stable Diffusion&lt;br /&gt;
# [[GPT Neo]]&lt;br /&gt;
# [[Predictive networks]]&lt;br /&gt;
# [[Objectives and Key Results]]&lt;br /&gt;
# [[Implants rétiniens]]&lt;br /&gt;
# [[Post-quantum cryptography]]&lt;br /&gt;
# [[Internet of Audio Things]]&lt;br /&gt;
# [[uFS]] : a user-level filesystem semi-microkernel&lt;br /&gt;
# [[Generation of ASMR (Autonomous sensory meridian response)]]&lt;br /&gt;
# [[Wasm|WebAssembly]]&lt;br /&gt;
# [[Web Assembly et Smart Contracts]]&lt;br /&gt;
# [[Application Performance Monitoring]] : démonstration de [[Apache Skywalking]]&lt;br /&gt;
# [[Low Code Development]]&lt;br /&gt;
# [[Multi-Region Database Deployments: Patterns and Anti-Patterns]] : démonstration avec [[Cockroack]]&lt;br /&gt;
# [[Proof of Coverage Blockchain]] : démonstration d&#039;[[Helium]]&lt;br /&gt;
# [[IPFS (InterPlanetary File System)]]&lt;br /&gt;
# [[Géolocalisation Wifi : principles et services de géolocalisation Wifi et cellulaire]]&lt;br /&gt;
# [[Caches distribués]]: démonstration avec [[Redis]]&lt;br /&gt;
# [[NEMU]] : open source hypervisor specifically built and designed to run modern cloud workloads on modern 64-bit Intel and ARM CPUs.&lt;br /&gt;
# [[Fission]] : open-source serverless function framework for [[Kubernetes]] with a focus on developer productivity and high performance.&lt;br /&gt;
# [[AdTech et Surveillance capitalism]]&lt;br /&gt;
# [[Conflict-free replicated data type]] (CRDT)&lt;br /&gt;
# [[ Voice-First Development]] : Designing, Developing, and Deploying Conversational Interfaces&lt;br /&gt;
# [[AzureRTOS]] : système d&#039;exploitation pour l&#039;Internet des Objets. démonstration sur [https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html B-L475] à récupérer au fablab.&lt;br /&gt;
# Algorithmes et systèmes de vote électronique : vices et vertus.&lt;br /&gt;
# [[Pantavisor Linux]]: A Framework for Building Containerized IoT Systems&lt;br /&gt;
# [[WebRTC]] : Web Real-Time Communication&lt;br /&gt;
# [[uFS]] : a user-level filesystem semi-microkernel&lt;br /&gt;
# [[Bundle Protocol]]&lt;br /&gt;
# [[NFT]] : plateformes, technologies, vices et vertues.&lt;br /&gt;
# [[MLOps]] : DevOps for Machine Learning projects&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Web_assembly_%26_smart_contracts.pdf&amp;diff=52877</id>
		<title>File:Web assembly &amp; smart contracts.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Web_assembly_%26_smart_contracts.pdf&amp;diff=52877"/>
		<updated>2022-11-28T16:04:42Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2022_WebAssemblyEtSmartContracts_fiche&amp;diff=52875</id>
		<title>VT2022 WebAssemblyEtSmartContracts fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2022_WebAssemblyEtSmartContracts_fiche&amp;diff=52875"/>
		<updated>2022-11-28T15:55:38Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: /* Références */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Résumé=&lt;br /&gt;
&lt;br /&gt;
WebAssembly, est un format d&#039;instruction binaire basé sur une machine à pile. Cette technologie permet entre autres de compiler du code de n’importe quel langage en fichier .wasm. Ces fichiers binaires sont alors très peu coûteux en stockage, et peuvent être exécutés sur n’importe quelle architecture machine, mais également intégrés à du code JavaScript par exemple. Cela permet aux technologies du web de pouvoir exécuter du code déjà compilé, provenant d’autres langages, pouvant être plus performants pour certaines tâches.&lt;br /&gt;
&lt;br /&gt;
Cette technologie peut alors parfaitement s’intégrer à la blockchain, afin de coder des smart contracts plus performants. En effet, les programmes des smart contracts ont besoin de répondre à deux problématiques majeures, qui sont la taille du fichier, et la possibilité d’exécuter ces programmes sur n’importe quelle architecture machine.&lt;br /&gt;
&lt;br /&gt;
WebAssembly répond à ces critères, et permet d’écrire des smart contracts dans des langages performants tel que C, C++, C# ou encore Rust. Cela semble alors être une technologie révolutionnaire pour le milieu des smart contracts.&lt;br /&gt;
&lt;br /&gt;
=Abstract=&lt;br /&gt;
&lt;br /&gt;
WebAssembly is a binary instruction format based on a stack machine. This technology allows, among other things, to compile code of any language into .wasm files. These binary files are then very cheap in storage, and can be executed on any machine architecture, but also integrates well with JavaScript code for example. This allows web technologies to run already compiled code from other languages, which can be more efficient for certain tasks.&lt;br /&gt;
&lt;br /&gt;
This technology can then be perfectly integrated with the blockchain, in order to propose more efficient smart contracts. Indeed, smart contract programs need to answer two major issues, which are the file size, and the possibility to run these programs on any machine architecture.&lt;br /&gt;
WebAssembly meets these criteria, and allows to write smart contracts in powerful languages such as C, C++, C# or even Rust. It seems then to be a revolutionary technology for the smart contract community.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=I. WEB ASSEMBLY=&lt;br /&gt;
&lt;br /&gt;
==1.	ETAT DES TECHNOLOGIES DU WEB AVANT WEBASSEMBLY==&lt;br /&gt;
&lt;br /&gt;
On observe deux phases importantes dans l’évolution des technologies du web, et plus particulièrement de JavaScript.&lt;br /&gt;
Au tout début, le langage JavaScript était exécuté via un interpréteur. Cet interpréteur permet de se passer du temps de compilation d’un fichier (par opposition au compilateur) et donc de gagner en performance. En effet, pour rappel, à l’inverse d’un compilateur qui va traduire l’ensemble du code en langage machine avant l’exécution, l’interpréteur traduit uniquement la ligne qu’il est en train d’exécuter, et exécute ainsi le programme ligne par ligne. &lt;br /&gt;
&lt;br /&gt;
Cependant, cette méthode a ses limites et a amené les technologies du web à évoluer, vers ce que nous allons appeler la phase 2, avec l’utilisation des compilateurs Just-In-Time (JIT).&lt;br /&gt;
&lt;br /&gt;
En effet, l’utilisation de l’interpréteur pose plusieurs soucis de performances. Imaginons que vous rechargiez une page web, le code devra alors être de nouveau exécuté entièrement par l’interpréteur. Alors que si nous avions compilé le code via un compilateur lors de la première itération, nous n’aurions qu’à exécuter le code précédemment compilé directement. Ce problème de réinterprétation du code peut également survenir dans les boucles, où nous pourrions simplement compiler la ligne de code qui sera exécutée plusieurs fois, plutôt que de l’interpréter à chaque tour de boucle.&lt;br /&gt;
&lt;br /&gt;
Oui mais, changer pour une utilisation du compilateur à la place de l’interpréteur ferait perdre en performance dans le cas où nous utilisons des pages statiques. C’est pourquoi, le compilateur JIT a été inventé pour résoudre ce problème.&lt;br /&gt;
&lt;br /&gt;
Comment fonctionne un compilateur JIT ?&lt;br /&gt;
&lt;br /&gt;
Un compilateur Just-In-Time fonctionne de la même manière qu’un interpréteur, à la différence qu’il va compiler certaines portions de code au cours de l’exécution. En effet, lors de l’exécution d’un programme il va identifier si une portion de code « chauffe » beaucoup ou non, et décider de compiler ces portions de code en fonction de leur état. On dit alors que du code chauffe s’il est interprété plusieurs fois (dans une boucle par exemple). Ainsi les portions de code qui chauffent seront compilées et stockées, afin de pouvoir exécuter directement le code compilé lors de sa prochaine exécution. De plus, afin d’optimiser la compilation, le JIT fais des hypothèses sur le code compilé, comme par exemple le type des variables.&lt;br /&gt;
&lt;br /&gt;
Comme vous le savez peut-être, JavaScript est un langage non typé, et peut donc contenir des structures de données avec des types non homogènes. Ainsi, le JIT va faire une hypothèse sur le type des données traités lors de la compilation. Ainsi, lors de la prochaine exécution il vérifiera si son hypothèse est juste avant d’exécuter le code compilé. Si jamais son hypothèse est fausse, il va alors faire une « désoptimisation » en supprimant le code compilé. L’exécution sera alors assurée par l’interpréteur, et peut être plus tard recompilé à nouveau suivant de nouvelles hypothèses.&lt;br /&gt;
&lt;br /&gt;
==2.	WEB ASSEMBLY==&lt;br /&gt;
&lt;br /&gt;
Avec l’arrivée du compilateur JIT, les performances du Web ont explosé, avant de de nouveau stagner (état des technologies actuelles). C’est pourquoi, les grandes entreprises telles que Google, Mozilla, Apple, Microsoft et W3C ont commencé à travailler sur une nouvelle technologie : WebAssembly, pour répondre aux nouvelles problématiques de performances.&lt;br /&gt;
&lt;br /&gt;
En effet, le problème que pose aujourd’hui le JIT est la grande perte de performance lors de l’étape d’optimisation du code compilé et la désoptimisation, étapes qui peuvent se répéter indéfiniment. Ainsi, l’objectif de WebAssembly est de supprimer cette étape.&lt;br /&gt;
Pour ce faire, WebAssembly permet de générer des fichiers binaires .wasm qui peuvent être obtenus en compilant n’importe quel langage de programmation en .wasm. WebAssembly est une machine à pile, c’est-à-dire que les fichiers binaires générés ne stockent pas les registres dont sont issus les données pour effectuer les calculs. Cela permet entre autres de produire des fichiers très légers, qui sont alors rapidement transférables et peu gourmands en stockage. De plus, ces fichiers peuvent être ensuite exécutés sur n’importe quelle architecture de machine. Grâce à sa compatibilité avec toutes sortes de langages, les modules .wasm peuvent, par exemple, alors être intégrés à du code JavaScript.&lt;br /&gt;
&lt;br /&gt;
En quoi WebAssembly rend alors JavaScript et les autres technologies du web plus performantes ?&lt;br /&gt;
&lt;br /&gt;
Grâce à Web Assembly il est maintenant possible d’exécuter du code compilé, issu d’autres langages tel que C, C++, C# ou encore Rust, qui sont des langages plus optimisés pour effectuer certaines tâches. Ainsi, il nous est possible d’écrire un code en JavaScript qui utilise du code C compilé en .wasm, qui viendra remplacer les portions de code « chaudes » qui étaient précédemment compilées, optimisées, désoptimisées, et recompilées par le JIT.&lt;br /&gt;
&lt;br /&gt;
De plus, grâce à leurs petites tailles, les fichiers .wasm sont très peut coûteux à être importés et donc ne créent pas de latence supplémentaire.&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peut trouver une autre application à Web Assembly en dehors de la recherche de performances. En effet, puisqu’il est maintenant possible d’exécuter du code C, C++, C#, Rust… pour le web, il n’est plus nécessaire de réécrire du code en JavaScript si une alternative dans un autre langage existe déjà, et a déjà prouvé son efficacité. Permettant ainsi de faciliter le travail des développeurs et de mettre en place un « pont » entre les langages, au service du web.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=II. SMART CONTRACTS=&lt;br /&gt;
&lt;br /&gt;
==1.	BLOCKCHAIN &amp;amp; SMART CONTRACTS==&lt;br /&gt;
&lt;br /&gt;
« Une blockchain est une base de données décentralisée publique. » Expliquons rapidement cette phrase.&lt;br /&gt;
Tout d’abord, afin de comprendre pourquoi nous parlons de décentralisation, il faut comprendre ce qu’est un « tier de confiance ». Un « tier de confiance » est une personne (morale ou non) qui est chargée d’assurer un service entre deux personnes. Par exemple, la banque est le tier de confiance utilisé pour une transaction monétaire, mais encore, quand vous souhaitez accéder à vos données stockées dans le cloud, vous faites appel à un tier de confiance (par exemple Amazon) qui vous assure de stocker vos informations et de vous permettre d’y accéder. Le système basé sur les tiers de confiances est ce qu’on appelle un système « centralisé ». En effet, une banque, ou une ferme de serveurs, se charge de centraliser les transactions ou le stockage des données.&lt;br /&gt;
&lt;br /&gt;
Ainsi, l’objectif de la décentralisation est de se passer de ces tiers de confiance. Pour ce faire, la blockchain est manipulée par des centaines de milliers de personnes, qui possèdent tous un même registre. Ensuite, afin de modifier ce registre, pour inscrire une nouvelle information, l’entièreté des personnes qui contribuent à ce registre doivent valider la modification. Le registre est alors décentralisé, puisqu’il n’est plus géré par une unique entité.&lt;br /&gt;
&lt;br /&gt;
De plus, quand on parle de blockchain, on parle de base de données publique. En effet, une blockchain n’est ni plus ni moins qu’un registre informatique où l’on peut stocker des informations de manière sécurisée. Ainsi, par sa propriété à être décentralisée, ce registre est public, n’importe quelle personne peut venir consulter les informations qu’il contient, le stocker et contribuer aux validations des prochaines modifications.&lt;br /&gt;
&lt;br /&gt;
Un smart contract ou « contrat intelligent », pour sa part, est un contrat passé entre deux entités, inscris de manière immuable dans la blockchain. Il permet de jouer le rôle des tiers de confiance dans un système centralisé. En effet, un smart contract n’est ni plus ni moins qu’un code informatique se trouvant dans une blockchain, qui fixe le cadre d’un contrat. Il définit les actions à réaliser, lorsque les conditions voulues par les parties l’ayant signé sont respectées. Ils sont aujourd’hui écrits dans des langages de programmations tel que Solidity, qui sont basés sur JavaScript.&lt;br /&gt;
 &lt;br /&gt;
==2.	UTILISATION DE WEBASSEMBLY POUR ECRIRE DES SMART CONTRACTS==&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, les langages tel que Solidity sont des langages pensés pour être exécutés sur la blockchain. En effet, la blockchain impose plusieurs contraintes au langage, qui ont forcé les développeurs à concevoir des langages spécifiques pour y répondre. Parmi ces contraintes, les deux plus importantes sont :&lt;br /&gt;
&lt;br /&gt;
-	La nécessité d’avoir un programme peu couteux en stockage.&lt;br /&gt;
o	En effet plus les fichiers sont volumineux, plus ils sont coûteux à inscrire dans la blockchain.&lt;br /&gt;
-	La nécessité d’avoir des programmes exécutables sur n’importe quelle machine.&lt;br /&gt;
o	En effet, comme expliqué précédemment, la blockchain peut être stockée par n’importe quel individu. Ainsi, les programmes des smart contracts doivent pouvoir s’exécuter sur la machine de ces individus, quelle que soit leur architecture.&lt;br /&gt;
&lt;br /&gt;
Cependant, les langages comme Solidity répondent à ces exigences, mais font face à d’autres problèmes. En effet, ces langages sont peu performants, et surtout spécifiques à l’utilisation sur une bolckchain. Cette spécificité implique le besoin d’une main d’œuvre qualifiée dans un domaine « de niche ».&lt;br /&gt;
&lt;br /&gt;
C’est à ce moment que Web Assembly trouve toute son application pour les smart conrtacts. En effet, comme nous l’avons vu précédemment, les fichiers .wasm sont des fichiers peu coûteux en stockage, et exécutables sur toutes les architectures machines. WebAssembly répond ainsi aux exigences de la blockchain, mais plus encore.&lt;br /&gt;
&lt;br /&gt;
WebAssembly permet d’obtenir un fichier .wasm à partir d’autres langages de haut niveau. Ainsi, cela permet d’ouvrir la programmation de smart contracts à d’autres langages de programmation. Permettant alors d’avoir accès à une main œuvre qualifiée beaucoup plus grande, mais également à des langages plus performants et optimisés pour effectuer certaines tâches.&lt;br /&gt;
&lt;br /&gt;
WebAssembly semble donc être le futur des smart contracts et permettra sans aucun doute, comme elle le fait avec les technologies du web, d’ouvrir de nouvelles possibilités aux smart contracts.&lt;br /&gt;
&lt;br /&gt;
=Références=&lt;br /&gt;
&lt;br /&gt;
Explication WebAssembly : &lt;br /&gt;
https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/&lt;br /&gt;
&lt;br /&gt;
WebAssembly Smart Contracts :&lt;br /&gt;
https://blog.scottlogic.com/2019/11/26/webassembly-on-the-blockchain.html&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2022_WebAssemblyEtSmartContracts_fiche&amp;diff=52867</id>
		<title>VT2022 WebAssemblyEtSmartContracts fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2022_WebAssemblyEtSmartContracts_fiche&amp;diff=52867"/>
		<updated>2022-11-28T15:22:06Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: Created page with &amp;quot;RESUME  WebAssembly, est un format d&amp;#039;instruction binaire basé sur une machine à pile. Cette technologie permet entre autres de compiler du code de n’importe quel langage e...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RESUME&lt;br /&gt;
&lt;br /&gt;
WebAssembly, est un format d&#039;instruction binaire basé sur une machine à pile. Cette technologie permet entre autres de compiler du code de n’importe quel langage en fichier .wasm. Ces fichiers binaires sont alors très peu coûteux en stockage, et peuvent être exécutés sur n’importe quelle architecture machine, mais également intégrés à du code JavaScript par exemple. Cela permet aux technologies du web de pouvoir exécuter du code déjà compilé, provenant d’autres langages, pouvant être plus performants pour certaines tâches.&lt;br /&gt;
Cette technologie peut alors parfaitement s’intégrer à la blockchain, afin de coder des smart contracts plus performants. En effet, les programmes des smart contracts ont besoin de répondre à deux problématiques majeures, qui sont la taille du fichier, et la possibilité d’exécuter ces programmes sur n’importe quelle architecture machine.&lt;br /&gt;
WebAssembly répond à ces critères, et permet d’écrire des smart contracts dans des langages performants tel que C, C++, C# ou encore Rust. Cela semble alors être une technologie révolutionnaire pour le milieu des smart contracts.&lt;br /&gt;
&lt;br /&gt;
ABSTRACT&lt;br /&gt;
&lt;br /&gt;
WebAssembly is a binary instruction format based on a stack machine. This technology allows, among other things, to compile code of any language into .wasm files. These binary files are then very cheap in storage, and can be executed on any machine architecture, but also integrates well with JavaScript code for example. This allows web technologies to run already compiled code from other languages, which can be more efficient for certain tasks.&lt;br /&gt;
This technology can then be perfectly integrated with the blockchain, in order to propose more efficient smart contracts. Indeed, smart contract programs need to answer two major issues, which are the file size, and the possibility to run these programs on any machine architecture.&lt;br /&gt;
WebAssembly meets these criteria, and allows to write smart contracts in powerful languages such as C, C++, C# or even Rust. It seems then to be a revolutionary technology for the smart contract community.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
I. WEB ASSEMBLY&lt;br /&gt;
&lt;br /&gt;
1.	ETAT DES TECHNOLOGIES DU WEB AVANT WEBASSEMBLY&lt;br /&gt;
&lt;br /&gt;
On observe deux phases importantes dans l’évolution des technologies du web, et plus particulièrement de JavaScript.&lt;br /&gt;
Au tout début, le langage JavaScript était exécuté via un interpréteur. Cet interpréteur permet de se passer du temps de compilation d’un fichier (par opposition au compilateur) et donc de gagner en performance. En effet, pour rappel, à l’inverse d’un compilateur qui va traduire l’ensemble du code en langage machine avant l’exécution, l’interpréteur traduit uniquement la ligne qu’il est en train d’exécuter, et exécute ainsi le programme ligne par ligne. &lt;br /&gt;
Cependant, cette méthode a ses limites et a amené les technologies du web à évoluer, vers ce que nous allons appeler la phase 2, avec l’utilisation des compilateurs Just-In-Time (JIT).&lt;br /&gt;
En effet, l’utilisation de l’interpréteur pose plusieurs soucis de performances. Imaginons que vous rechargiez une page web, le code devra alors être de nouveau exécuté entièrement par l’interpréteur. Alors que si nous avions compilé le code via un compilateur lors de la première itération, nous n’aurions qu’à exécuter le code précédemment compilé directement. Ce problème de réinterprétation du code peut également survenir dans les boucles, où nous pourrions simplement compiler la ligne de code qui sera exécutée plusieurs fois, plutôt que de l’interpréter à chaque tour de boucle.&lt;br /&gt;
Oui mais, changer pour une utilisation du compilateur à la place de l’interpréteur ferait perdre en performance dans le cas où nous utilisons des pages statiques. C’est pourquoi, le compilateur JIT a été inventé pour résoudre ce problème.&lt;br /&gt;
Comment fonctionne un compilateur JIT ?&lt;br /&gt;
Un compilateur Just-In-Time fonctionne de la même manière qu’un interpréteur, à la différence qu’il va compiler certaines portions de code au cours de l’exécution. En effet, lors de l’exécution d’un programme il va identifier si une portion de code « chauffe » beaucoup ou non, et décider de compiler ces portions de code en fonction de leur état. On dit alors que du code chauffe s’il est interprété plusieurs fois (dans une boucle par exemple). Ainsi les portions de code qui chauffent seront compilées et stockées, afin de pouvoir exécuter directement le code compilé lors de sa prochaine exécution. De plus, afin d’optimiser la compilation, le JIT fais des hypothèses sur le code compilé, comme par exemple le type des variables.&lt;br /&gt;
Comme vous le savez peut-être, JavaScript est un langage non typé, et peut donc contenir des structures de données avec des types non homogènes. Ainsi, le JIT va faire une hypothèse sur le type des données traités lors de la compilation. Ainsi, lors de la prochaine exécution il vérifiera si son hypothèse est juste avant d’exécuter le code compilé. Si jamais son hypothèse est fausse, il va alors faire une « désoptimisation » en supprimant le code compilé. L’exécution sera alors assurée par l’interpréteur, et peut être plus tard recompilé à nouveau suivant de nouvelles hypothèses.&lt;br /&gt;
&lt;br /&gt;
2.	WEB ASSEMBLY&lt;br /&gt;
&lt;br /&gt;
Avec l’arrivée du compilateur JIT, les performances du Web ont explosé, avant de de nouveau stagner (état des technologies actuelles). C’est pourquoi, les grandes entreprises telles que Google, Mozilla, Apple, Microsoft et W3C ont commencé à travailler sur une nouvelle technologie : WebAssembly, pour répondre aux nouvelles problématiques de performances.&lt;br /&gt;
En effet, le problème que pose aujourd’hui le JIT est la grande perte de performance lors de l’étape d’optimisation du code compilé et la désoptimisation, étapes qui peuvent se répéter indéfiniment. Ainsi, l’objectif de WebAssembly est de supprimer cette étape.&lt;br /&gt;
Pour ce faire, WebAssembly permet de générer des fichiers binaires .wasm qui peuvent être obtenus en compilant n’importe quel langage de programmation en .wasm. WebAssembly est une machine à pile, c’est-à-dire que les fichiers binaires générés ne stockent pas les registres dont sont issus les données pour effectuer les calculs. Cela permet entre autres de produire des fichiers très légers, qui sont alors rapidement transférables et peu gourmands en stockage. De plus, ces fichiers peuvent être ensuite exécutés sur n’importe quelle architecture de machine. Grâce à sa compatibilité avec toutes sortes de langages, les modules .wasm peuvent, par exemple, alors être intégrés à du code JavaScript.&lt;br /&gt;
En quoi WebAssembly rend alors JavaScript et les autres technologies du web plus performantes ?&lt;br /&gt;
Grâce à Web Assembly il est maintenant possible d’exécuter du code compilé, issu d’autres langages tel que C, C++, C# ou encore Rust, qui sont des langages plus optimisés pour effectuer certaines tâches. Ainsi, il nous est possible d’écrire un code en JavaScript qui utilise du code C compilé en .wasm, qui viendra remplacer les portions de code « chaudes » qui étaient précédemment compilées, optimisées, désoptimisées, et recompilées par le JIT.&lt;br /&gt;
De plus, grâce à leurs petites tailles, les fichiers .wasm sont très peut coûteux à être importés et donc ne créent pas de latence supplémentaire.&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peut trouver une autre application à Web Assembly en dehors de la recherche de performances. En effet, puisqu’il est maintenant possible d’exécuter du code C, C++, C#, Rust… pour le web, il n’est plus nécessaire de réécrire du code en JavaScript si une alternative dans un autre langage existe déjà, et a déjà prouvé son efficacité. Permettant ainsi de faciliter le travail des développeurs et de mettre en place un « pont » entre les langages, au service du web.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
II. SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
1.	BLOCKCHAIN &amp;amp; SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
« Une blockchain est une base de données décentralisée publique. » Expliquons rapidement cette phrase.&lt;br /&gt;
Tout d’abord, afin de comprendre pourquoi nous parlons de décentralisation, il faut comprendre ce qu’est un « tier de confiance ». Un « tier de confiance » est une personne (morale ou non) qui est chargée d’assurer un service entre deux personnes. Par exemple, la banque est le tier de confiance utilisé pour une transaction monétaire, mais encore, quand vous souhaitez accéder à vos données stockées dans le cloud, vous faites appel à un tier de confiance (par exemple Amazon) qui vous assure de stocker vos informations et de vous permettre d’y accéder. Le système basé sur les tiers de confiances est ce qu’on appelle un système « centralisé ». En effet, une banque, ou une ferme de serveurs, se charge de centraliser les transactions ou le stockage des données.&lt;br /&gt;
Ainsi, l’objectif de la décentralisation est de se passer de ces tiers de confiance. Pour ce faire, la blockchain est manipulée par des centaines de milliers de personnes, qui possèdent tous un même registre. Ensuite, afin de modifier ce registre, pour inscrire une nouvelle information, l’entièreté des personnes qui contribuent à ce registre doivent valider la modification. Le registre est alors décentralisé, puisqu’il n’est plus géré par une unique entité.&lt;br /&gt;
De plus, quand on parle de blockchain, on parle de base de données publique. En effet, une blockchain n’est ni plus ni moins qu’un registre informatique où l’on peut stocker des informations de manière sécurisée. Ainsi, par sa propriété à être décentralisée, ce registre est public, n’importe quelle personne peut venir consulter les informations qu’il contient, le stocker et contribuer aux validations des prochaines modifications.&lt;br /&gt;
Un smart contract ou « contrat intelligent », pour sa part, est un contrat passé entre deux entités, inscris de manière immuable dans la blockchain. Il permet de jouer le rôle des tiers de confiance dans un système centralisé. En effet, un smart contract n’est ni plus ni moins qu’un code informatique se trouvant dans une blockchain, qui fixe le cadre d’un contrat. Il définit les actions à réaliser, lorsque les conditions voulues par les parties l’ayant signé sont respectées. Ils sont aujourd’hui écrits dans des langages de programmations tel que Solidity, qui sont basés sur JavaScript.&lt;br /&gt;
 &lt;br /&gt;
2.	UTILISATION DE WEBASSEMBLY POUR ECRIRE DES SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, les langages tel que Solidity sont des langages pensés pour être exécutés sur la blockchain. En effet, la blockchain impose plusieurs contraintes au langage, qui ont forcé les développeurs à concevoir des langages spécifiques pour y répondre. Parmi ces contraintes, les deux plus importantes sont :&lt;br /&gt;
-	La nécessité d’avoir un programme peu couteux en stockage.&lt;br /&gt;
o	En effet plus les fichiers sont volumineux, plus ils sont coûteux à inscrire dans la blockchain.&lt;br /&gt;
-	La nécessité d’avoir des programmes exécutables sur n’importe quelle machine.&lt;br /&gt;
o	En effet, comme expliqué précédemment, la blockchain peut être stockée par n’importe quel individu. Ainsi, les programmes des smart contracts doivent pouvoir s’exécuter sur la machine de ces individus, quelle que soit leur architecture.&lt;br /&gt;
Cependant, les langages comme Solidity répondent à ces exigences, mais font face à d’autres problèmes. En effet, ces langages sont peu performants, et surtout spécifiques à l’utilisation sur une bolckchain. Cette spécificité implique le besoin d’une main d’œuvre qualifiée dans un domaine « de niche ».&lt;br /&gt;
C’est à ce moment que Web Assembly trouve toute son application pour les smart conrtacts. En effet, comme nous l’avons vu précédemment, les fichiers .wasm sont des fichiers peu coûteux en stockage, et exécutables sur toutes les architectures machines. WebAssembly répond ainsi aux exigences de la blockchain, mais plus encore.&lt;br /&gt;
WebAssembly permet d’obtenir un fichier .wasm à partir d’autres langages de haut niveau. Ainsi, cela permet d’ouvrir la programmation de smart contracts à d’autres langages de programmation. Permettant alors d’avoir accès à une main œuvre qualifiée beaucoup plus grande, mais également à des langages plus performants et optimisés pour effectuer certaines tâches.&lt;br /&gt;
WebAssembly semble donc être le futur des smart contracts et permettra sans aucun doute, comme elle le fait avec les technologies du web, d’ouvrir de nouvelles possibilités aux smart contracts.&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2022_XXX_fiche&amp;diff=52866</id>
		<title>VT2022 XXX fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2022_XXX_fiche&amp;diff=52866"/>
		<updated>2022-11-28T15:21:52Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2022&amp;diff=52865</id>
		<title>VT2022</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2022&amp;diff=52865"/>
		<updated>2022-11-28T15:21:23Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: /* Séance 4 : 28/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VT2021|&amp;lt;&amp;lt; Etudes 2021]] [[VT|Sommaire]] [[VT2023|Etudes 2023 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Veille Technologique et Stratégique=&lt;br /&gt;
* Enseignants: [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en INFO5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de cette UE est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.&lt;br /&gt;
&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Chaque séance comporte 3 à 4 présentations suivi chacune d&#039;une démonstration. Chaque présentation dure entre 20 et 25 minutes en fonction des séances. Pour plus de sécurité, la démonstration peut être pré-enregistrée.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera réalisée de préférence avec [[reveal.js]] ou avec [[remarkjs]].&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera notée et commentée par tous vos camarades via un sondage (smartphone). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
Remarque: Le [https://fr.wikipedia.org/wiki/Plagiat plagiat] est incompatible avec l&#039;éthique de l&#039;ingénieur. Le directeur d&#039;école peut demander votre traduction devant la commission disciplinaire de l&#039;université. La sanction peut aller jusqu’à une interdiction d&#039;inscription dans les établissements de l&#039;enseignement supérieur français pendant plusieurs années : Le jeu en vaut-il la chandelle ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-VT-INFO5-2122.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
=Planning=&lt;br /&gt;
&lt;br /&gt;
== Séance 1 : 07/11 (réporté)==&lt;br /&gt;
&lt;br /&gt;
== Séance 2 : 14/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
Présentation et organisation.&lt;br /&gt;
&lt;br /&gt;
== Séance 3 : 21/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* [[AdTech et Surveillance capitalism]]: Julien Guigard, Angelo Alibert [[Media:VT2022_Adtech_presentation.pdf|présentation]], [[VT2022_Adtech_fiche|fiche]], [[VT2022_Adtech_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Oeuvres d&#039;art générées par une IA]] : DALL-E 2, Midjourney et Stable Diffusion : Kacha, Jardin [[Media:VT2022_AIArt_presentation.pdf|présentation]], [[Media:VT2022 AIArt synthese.pdf|fiche]], [[VT2022_AIArt_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Ansible]]: Da Costa [[Media:VT2022_Ansible_presentation.pdf|présentation]], [[VT2022_Ansible_fiche|fiche]], [[VT2022_Ansible_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 4 : 28/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* [[Web Assembly et Smart Contracts]]: Verrier, Mottino [[Media:VT2022_WebAssemblyEtSmartContracts_presentation.pdf|présentation]], [[VT2022_WebAssemblyEtSmartContracts_fiche|fiche]], [[VT2022_WebAssemblyEtSmartContracts_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[GPT Neo|GPT la suite]] : Monthe Djeumou, Simo Yokam [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Implants rétiniens]]: Bernerd, NGuyen Justin [[Media:VT_Implants_Rétiniens.pdf|présentation]], [[Media:Fiche_de_synthèse.pdf|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 5 : 05/12 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* WebRTC: Hadiby, Mohsen [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Voice-First Development : Designing, Developing, and Deploying Conversational Interfaces: Conjard, Fodor [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Helium: Lavirotte, Pelisse [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Internet of Audio Things]]: Teyssier, Drouin [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 6 : 12/12 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* NVidia [[Deep learning super sampling (DLSS)]]: Canin, Wagner [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* OpenPose (ou autre): Poitevin, Reygner [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* AzureRTOS: Bach, Chiotti [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Post-quantum cryptography]] : Zhang, Guiguis [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 7 : 09/01 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Vote électronique : Abecassis [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* NFT : plateformes, technologies, vices et vertus: Faghloumi [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Géo-localisation Wifi : Fournier [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Generation of ASMR (Autonomous sensory meridian response)]]: Chappaz, De Oliveira [[Media:VT2022_ASMR_presentation.pdf|présentation]], [[VT2022_ASMR_fiche|fiche]], [[VT2022_ASMR_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 8 : 16/01 (très probablement en distanciel) ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* [[IPFS (InterPlanetary File System)]]: Capet, Royer [[Media:VT2022_XX_presentation.pdf|présentation]], [[VT2022_XXX_fiche|fiche]], [[VT2022_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* [[Low Code Development]] : Breton, Nguyen Clément [[Media:VT2022_LowCode_presentation.pdf|présentation]], [[Media:VT2022_LowCode_fiche.pdf|fiche]], [[Media:VT2022_LowCode_demo.pdf|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
=Sujets=&lt;br /&gt;
# [[Oeuvres d&#039;art générées par une IA]] : DALL-E 2, Midjourney et Stable Diffusion&lt;br /&gt;
# [[GPT Neo]]&lt;br /&gt;
# [[Predictive networks]]&lt;br /&gt;
# [[Objectives and Key Results]]&lt;br /&gt;
# [[Implants rétiniens]]&lt;br /&gt;
# [[Post-quantum cryptography]]&lt;br /&gt;
# [[Internet of Audio Things]]&lt;br /&gt;
# [[uFS]] : a user-level filesystem semi-microkernel&lt;br /&gt;
# [[Generation of ASMR (Autonomous sensory meridian response)]]&lt;br /&gt;
# [[Wasm|WebAssembly]]&lt;br /&gt;
# [[Web Assembly et Smart Contracts]]&lt;br /&gt;
# [[Application Performance Monitoring]] : démonstration de [[Apache Skywalking]]&lt;br /&gt;
# [[Low Code Development]]&lt;br /&gt;
# [[Multi-Region Database Deployments: Patterns and Anti-Patterns]] : démonstration avec [[Cockroack]]&lt;br /&gt;
# [[Proof of Coverage Blockchain]] : démonstration d&#039;[[Helium]]&lt;br /&gt;
# [[IPFS (InterPlanetary File System)]]&lt;br /&gt;
# [[Géolocalisation Wifi : principles et services de géolocalisation Wifi et cellulaire]]&lt;br /&gt;
# [[Caches distribués]]: démonstration avec [[Redis]]&lt;br /&gt;
# [[NEMU]] : open source hypervisor specifically built and designed to run modern cloud workloads on modern 64-bit Intel and ARM CPUs.&lt;br /&gt;
# [[Fission]] : open-source serverless function framework for [[Kubernetes]] with a focus on developer productivity and high performance.&lt;br /&gt;
# [[AdTech et Surveillance capitalism]]&lt;br /&gt;
# [[Conflict-free replicated data type]] (CRDT)&lt;br /&gt;
# [[ Voice-First Development]] : Designing, Developing, and Deploying Conversational Interfaces&lt;br /&gt;
# [[AzureRTOS]] : système d&#039;exploitation pour l&#039;Internet des Objets. démonstration sur [https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html B-L475] à récupérer au fablab.&lt;br /&gt;
# Algorithmes et systèmes de vote électronique : vices et vertus.&lt;br /&gt;
# [[Pantavisor Linux]]: A Framework for Building Containerized IoT Systems&lt;br /&gt;
# [[WebRTC]] : Web Real-Time Communication&lt;br /&gt;
# [[uFS]] : a user-level filesystem semi-microkernel&lt;br /&gt;
# [[Bundle Protocol]]&lt;br /&gt;
# [[NFT]] : plateformes, technologies, vices et vertues.&lt;br /&gt;
# [[MLOps]] : DevOps for Machine Learning projects&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:VT2022_XX_presentation.pdf&amp;diff=52858</id>
		<title>File:VT2022 XX presentation.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:VT2022_XX_presentation.pdf&amp;diff=52858"/>
		<updated>2022-11-28T14:02:29Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2022_XXX_fiche&amp;diff=52857</id>
		<title>VT2022 XXX fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2022_XXX_fiche&amp;diff=52857"/>
		<updated>2022-11-28T13:31:58Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RESUME&lt;br /&gt;
&lt;br /&gt;
WebAssembly, est un format d&#039;instruction binaire basé sur une machine à pile. Cette technologie permet entre autres de compiler du code de n’importe quel langage en fichier .wasm. Ces fichiers binaires sont alors très peu coûteux en stockage, et peuvent être exécutés sur n’importe quelle architecture machine, mais également intégrés à du code JavaScript par exemple. Cela permet aux technologies du web de pouvoir exécuter du code déjà compilé, provenant d’autres langages, pouvant être plus performants pour certaines tâches.&lt;br /&gt;
Cette technologie peut alors parfaitement s’intégrer à la blockchain, afin de coder des smart contracts plus performants. En effet, les programmes des smart contracts ont besoin de répondre à deux problématiques majeures, qui sont la taille du fichier, et la possibilité d’exécuter ces programmes sur n’importe quelle architecture machine.&lt;br /&gt;
WebAssembly répond à ces critères, et permet d’écrire des smart contracts dans des langages performants tel que C, C++, C# ou encore Rust. Cela semble alors être une technologie révolutionnaire pour le milieu des smart contracts.&lt;br /&gt;
&lt;br /&gt;
ABSTRACT&lt;br /&gt;
&lt;br /&gt;
WebAssembly is a binary instruction format based on a stack machine. This technology allows, among other things, to compile code of any language into .wasm files. These binary files are then very cheap in storage, and can be executed on any machine architecture, but also integrates well with JavaScript code for example. This allows web technologies to run already compiled code from other languages, which can be more efficient for certain tasks.&lt;br /&gt;
This technology can then be perfectly integrated with the blockchain, in order to propose more efficient smart contracts. Indeed, smart contract programs need to answer two major issues, which are the file size, and the possibility to run these programs on any machine architecture.&lt;br /&gt;
WebAssembly meets these criteria, and allows to write smart contracts in powerful languages such as C, C++, C# or even Rust. It seems then to be a revolutionary technology for the smart contract community.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
I. WEB ASSEMBLY&lt;br /&gt;
&lt;br /&gt;
1.	ETAT DES TECHNOLOGIES DU WEB AVANT WEBASSEMBLY&lt;br /&gt;
&lt;br /&gt;
On observe deux phases importantes dans l’évolution des technologies du web, et plus particulièrement de JavaScript.&lt;br /&gt;
Au tout début, le langage JavaScript était exécuté via un interpréteur. Cet interpréteur permet de se passer du temps de compilation d’un fichier (par opposition au compilateur) et donc de gagner en performance. En effet, pour rappel, à l’inverse d’un compilateur qui va traduire l’ensemble du code en langage machine avant l’exécution, l’interpréteur traduit uniquement la ligne qu’il est en train d’exécuter, et exécute ainsi le programme ligne par ligne. &lt;br /&gt;
Cependant, cette méthode a ses limites et a amené les technologies du web à évoluer, vers ce que nous allons appeler la phase 2, avec l’utilisation des compilateurs Just-In-Time (JIT).&lt;br /&gt;
En effet, l’utilisation de l’interpréteur pose plusieurs soucis de performances. Imaginons que vous rechargiez une page web, le code devra alors être de nouveau exécuté entièrement par l’interpréteur. Alors que si nous avions compilé le code via un compilateur lors de la première itération, nous n’aurions qu’à exécuter le code précédemment compilé directement. Ce problème de réinterprétation du code peut également survenir dans les boucles, où nous pourrions simplement compiler la ligne de code qui sera exécutée plusieurs fois, plutôt que de l’interpréter à chaque tour de boucle.&lt;br /&gt;
Oui mais, changer pour une utilisation du compilateur à la place de l’interpréteur ferait perdre en performance dans le cas où nous utilisons des pages statiques. C’est pourquoi, le compilateur JIT a été inventé pour résoudre ce problème.&lt;br /&gt;
Comment fonctionne un compilateur JIT ?&lt;br /&gt;
Un compilateur Just-In-Time fonctionne de la même manière qu’un interpréteur, à la différence qu’il va compiler certaines portions de code au cours de l’exécution. En effet, lors de l’exécution d’un programme il va identifier si une portion de code « chauffe » beaucoup ou non, et décider de compiler ces portions de code en fonction de leur état. On dit alors que du code chauffe s’il est interprété plusieurs fois (dans une boucle par exemple). Ainsi les portions de code qui chauffent seront compilées et stockées, afin de pouvoir exécuter directement le code compilé lors de sa prochaine exécution. De plus, afin d’optimiser la compilation, le JIT fais des hypothèses sur le code compilé, comme par exemple le type des variables.&lt;br /&gt;
Comme vous le savez peut-être, JavaScript est un langage non typé, et peut donc contenir des structures de données avec des types non homogènes. Ainsi, le JIT va faire une hypothèse sur le type des données traités lors de la compilation. Ainsi, lors de la prochaine exécution il vérifiera si son hypothèse est juste avant d’exécuter le code compilé. Si jamais son hypothèse est fausse, il va alors faire une « désoptimisation » en supprimant le code compilé. L’exécution sera alors assurée par l’interpréteur, et peut être plus tard recompilé à nouveau suivant de nouvelles hypothèses.&lt;br /&gt;
&lt;br /&gt;
2.	WEB ASSEMBLY&lt;br /&gt;
&lt;br /&gt;
Avec l’arrivée du compilateur JIT, les performances du Web ont explosé, avant de de nouveau stagner (état des technologies actuelles). C’est pourquoi, les grandes entreprises telles que Google, Mozilla, Apple, Microsoft et W3C ont commencé à travailler sur une nouvelle technologie : WebAssembly, pour répondre aux nouvelles problématiques de performances.&lt;br /&gt;
En effet, le problème que pose aujourd’hui le JIT est la grande perte de performance lors de l’étape d’optimisation du code compilé et la désoptimisation, étapes qui peuvent se répéter indéfiniment. Ainsi, l’objectif de WebAssembly est de supprimer cette étape.&lt;br /&gt;
Pour ce faire, WebAssembly permet de générer des fichiers binaires .wasm qui peuvent être obtenus en compilant n’importe quel langage de programmation en .wasm. WebAssembly est une machine à pile, c’est-à-dire que les fichiers binaires générés ne stockent pas les registres dont sont issus les données pour effectuer les calculs. Cela permet entre autres de produire des fichiers très légers, qui sont alors rapidement transférables et peu gourmands en stockage. De plus, ces fichiers peuvent être ensuite exécutés sur n’importe quelle architecture de machine. Grâce à sa compatibilité avec toutes sortes de langages, les modules .wasm peuvent, par exemple, alors être intégrés à du code JavaScript.&lt;br /&gt;
En quoi WebAssembly rend alors JavaScript et les autres technologies du web plus performantes ?&lt;br /&gt;
Grâce à Web Assembly il est maintenant possible d’exécuter du code compilé, issu d’autres langages tel que C, C++, C# ou encore Rust, qui sont des langages plus optimisés pour effectuer certaines tâches. Ainsi, il nous est possible d’écrire un code en JavaScript qui utilise du code C compilé en .wasm, qui viendra remplacer les portions de code « chaudes » qui étaient précédemment compilées, optimisées, désoptimisées, et recompilées par le JIT.&lt;br /&gt;
De plus, grâce à leurs petites tailles, les fichiers .wasm sont très peut coûteux à être importés et donc ne créent pas de latence supplémentaire.&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peut trouver une autre application à Web Assembly en dehors de la recherche de performances. En effet, puisqu’il est maintenant possible d’exécuter du code C, C++, C#, Rust… pour le web, il n’est plus nécessaire de réécrire du code en JavaScript si une alternative dans un autre langage existe déjà, et a déjà prouvé son efficacité. Permettant ainsi de faciliter le travail des développeurs et de mettre en place un « pont » entre les langages, au service du web.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
II. SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
1.	BLOCKCHAIN &amp;amp; SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
« Une blockchain est une base de données décentralisée publique. » Expliquons rapidement cette phrase.&lt;br /&gt;
Tout d’abord, afin de comprendre pourquoi nous parlons de décentralisation, il faut comprendre ce qu’est un « tier de confiance ». Un « tier de confiance » est une personne (morale ou non) qui est chargée d’assurer un service entre deux personnes. Par exemple, la banque est le tier de confiance utilisé pour une transaction monétaire, mais encore, quand vous souhaitez accéder à vos données stockées dans le cloud, vous faites appel à un tier de confiance (par exemple Amazon) qui vous assure de stocker vos informations et de vous permettre d’y accéder. Le système basé sur les tiers de confiances est ce qu’on appelle un système « centralisé ». En effet, une banque, ou une ferme de serveurs, se charge de centraliser les transactions ou le stockage des données.&lt;br /&gt;
Ainsi, l’objectif de la décentralisation est de se passer de ces tiers de confiance. Pour ce faire, la blockchain est manipulée par des centaines de milliers de personnes, qui possèdent tous un même registre. Ensuite, afin de modifier ce registre, pour inscrire une nouvelle information, l’entièreté des personnes qui contribuent à ce registre doivent valider la modification. Le registre est alors décentralisé, puisqu’il n’est plus géré par une unique entité.&lt;br /&gt;
De plus, quand on parle de blockchain, on parle de base de données publique. En effet, une blockchain n’est ni plus ni moins qu’un registre informatique où l’on peut stocker des informations de manière sécurisée. Ainsi, par sa propriété à être décentralisée, ce registre est public, n’importe quelle personne peut venir consulter les informations qu’il contient, le stocker et contribuer aux validations des prochaines modifications.&lt;br /&gt;
Un smart contract ou « contrat intelligent », pour sa part, est un contrat passé entre deux entités, inscris de manière immuable dans la blockchain. Il permet de jouer le rôle des tiers de confiance dans un système centralisé. En effet, un smart contract n’est ni plus ni moins qu’un code informatique se trouvant dans une blockchain, qui fixe le cadre d’un contrat. Il définit les actions à réaliser, lorsque les conditions voulues par les parties l’ayant signé sont respectées. Ils sont aujourd’hui écrits dans des langages de programmations tel que Solidity, qui sont basés sur JavaScript.&lt;br /&gt;
 &lt;br /&gt;
2.	UTILISATION DE WEBASSEMBLY POUR ECRIRE DES SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, les langages tel que Solidity sont des langages pensés pour être exécutés sur la blockchain. En effet, la blockchain impose plusieurs contraintes au langage, qui ont forcé les développeurs à concevoir des langages spécifiques pour y répondre. Parmi ces contraintes, les deux plus importantes sont :&lt;br /&gt;
-	La nécessité d’avoir un programme peu couteux en stockage.&lt;br /&gt;
o	En effet plus les fichiers sont volumineux, plus ils sont coûteux à inscrire dans la blockchain.&lt;br /&gt;
-	La nécessité d’avoir des programmes exécutables sur n’importe quelle machine.&lt;br /&gt;
o	En effet, comme expliqué précédemment, la blockchain peut être stockée par n’importe quel individu. Ainsi, les programmes des smart contracts doivent pouvoir s’exécuter sur la machine de ces individus, quelle que soit leur architecture.&lt;br /&gt;
Cependant, les langages comme Solidity répondent à ces exigences, mais font face à d’autres problèmes. En effet, ces langages sont peu performants, et surtout spécifiques à l’utilisation sur une bolckchain. Cette spécificité implique le besoin d’une main d’œuvre qualifiée dans un domaine « de niche ».&lt;br /&gt;
C’est à ce moment que Web Assembly trouve toute son application pour les smart conrtacts. En effet, comme nous l’avons vu précédemment, les fichiers .wasm sont des fichiers peu coûteux en stockage, et exécutables sur toutes les architectures machines. WebAssembly répond ainsi aux exigences de la blockchain, mais plus encore.&lt;br /&gt;
WebAssembly permet d’obtenir un fichier .wasm à partir d’autres langages de haut niveau. Ainsi, cela permet d’ouvrir la programmation de smart contracts à d’autres langages de programmation. Permettant alors d’avoir accès à une main œuvre qualifiée beaucoup plus grande, mais également à des langages plus performants et optimisés pour effectuer certaines tâches.&lt;br /&gt;
WebAssembly semble donc être le futur des smart contracts et permettra sans aucun doute, comme elle le fait avec les technologies du web, d’ouvrir de nouvelles possibilités aux smart contracts.&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2022_XXX_fiche&amp;diff=52856</id>
		<title>VT2022 XXX fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2022_XXX_fiche&amp;diff=52856"/>
		<updated>2022-11-28T13:31:28Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RESUME&lt;br /&gt;
&lt;br /&gt;
WebAssembly, est un format d&#039;instruction binaire basé sur une machine à pile. Cette technologie permet entre autres de compiler du code de n’importe quel langage en fichier .wasm. Ces fichiers binaires sont alors très peu coûteux en stockage, et peuvent être exécutés sur n’importe quelle architecture machine, mais également intégrés à du code JavaScript par exemple. Cela permet aux technologies du web de pouvoir exécuter du code déjà compilé, provenant d’autres langages, pouvant être plus performants pour certaines tâches.&lt;br /&gt;
Cette technologie peut alors parfaitement s’intégrer à la blockchain, afin de coder des smart contracts plus performants. En effet, les programmes des smart contracts ont besoin de répondre à deux problématiques majeures, qui sont la taille du fichier, et la possibilité d’exécuter ces programmes sur n’importe quelle architecture machine.&lt;br /&gt;
WebAssembly répond à ces critères, et permet d’écrire des smart contracts dans des langages performants tel que C, C++, C# ou encore Rust. Cela semble alors être une technologie révolutionnaire pour le milieu des smart contracts.&lt;br /&gt;
&lt;br /&gt;
ABSTRACT&lt;br /&gt;
&lt;br /&gt;
WebAssembly is a binary instruction format based on a stack machine. This technology allows, among other things, to compile code of any language into .wasm files. These binary files are then very cheap in storage, and can be executed on any machine architecture, but also integrates well with JavaScript code for example. This allows web technologies to run already compiled code from other languages, which can be more efficient for certain tasks.&lt;br /&gt;
This technology can then be perfectly integrated with the blockchain, in order to propose more efficient smart contracts. Indeed, smart contract programs need to answer two major issues, which are the file size, and the possibility to run these programs on any machine architecture.&lt;br /&gt;
WebAssembly meets these criteria, and allows to write smart contracts in powerful languages such as C, C++, C# or even Rust. It seems then to be a revolutionary technology for the smart contract community.&lt;br /&gt;
 &lt;br /&gt;
I. WEB ASSEMBLY&lt;br /&gt;
&lt;br /&gt;
1.	ETAT DES TECHNOLOGIES DU WEB AVANT WEBASSEMBLY&lt;br /&gt;
&lt;br /&gt;
On observe deux phases importantes dans l’évolution des technologies du web, et plus particulièrement de JavaScript.&lt;br /&gt;
Au tout début, le langage JavaScript était exécuté via un interpréteur. Cet interpréteur permet de se passer du temps de compilation d’un fichier (par opposition au compilateur) et donc de gagner en performance. En effet, pour rappel, à l’inverse d’un compilateur qui va traduire l’ensemble du code en langage machine avant l’exécution, l’interpréteur traduit uniquement la ligne qu’il est en train d’exécuter, et exécute ainsi le programme ligne par ligne. &lt;br /&gt;
Cependant, cette méthode a ses limites et a amené les technologies du web à évoluer, vers ce que nous allons appeler la phase 2, avec l’utilisation des compilateurs Just-In-Time (JIT).&lt;br /&gt;
En effet, l’utilisation de l’interpréteur pose plusieurs soucis de performances. Imaginons que vous rechargiez une page web, le code devra alors être de nouveau exécuté entièrement par l’interpréteur. Alors que si nous avions compilé le code via un compilateur lors de la première itération, nous n’aurions qu’à exécuter le code précédemment compilé directement. Ce problème de réinterprétation du code peut également survenir dans les boucles, où nous pourrions simplement compiler la ligne de code qui sera exécutée plusieurs fois, plutôt que de l’interpréter à chaque tour de boucle.&lt;br /&gt;
Oui mais, changer pour une utilisation du compilateur à la place de l’interpréteur ferait perdre en performance dans le cas où nous utilisons des pages statiques. C’est pourquoi, le compilateur JIT a été inventé pour résoudre ce problème.&lt;br /&gt;
Comment fonctionne un compilateur JIT ?&lt;br /&gt;
Un compilateur Just-In-Time fonctionne de la même manière qu’un interpréteur, à la différence qu’il va compiler certaines portions de code au cours de l’exécution. En effet, lors de l’exécution d’un programme il va identifier si une portion de code « chauffe » beaucoup ou non, et décider de compiler ces portions de code en fonction de leur état. On dit alors que du code chauffe s’il est interprété plusieurs fois (dans une boucle par exemple). Ainsi les portions de code qui chauffent seront compilées et stockées, afin de pouvoir exécuter directement le code compilé lors de sa prochaine exécution. De plus, afin d’optimiser la compilation, le JIT fais des hypothèses sur le code compilé, comme par exemple le type des variables.&lt;br /&gt;
Comme vous le savez peut-être, JavaScript est un langage non typé, et peut donc contenir des structures de données avec des types non homogènes. Ainsi, le JIT va faire une hypothèse sur le type des données traités lors de la compilation. Ainsi, lors de la prochaine exécution il vérifiera si son hypothèse est juste avant d’exécuter le code compilé. Si jamais son hypothèse est fausse, il va alors faire une « désoptimisation » en supprimant le code compilé. L’exécution sera alors assurée par l’interpréteur, et peut être plus tard recompilé à nouveau suivant de nouvelles hypothèses.&lt;br /&gt;
&lt;br /&gt;
2.	WEB ASSEMBLY&lt;br /&gt;
&lt;br /&gt;
Avec l’arrivée du compilateur JIT, les performances du Web ont explosé, avant de de nouveau stagner (état des technologies actuelles). C’est pourquoi, les grandes entreprises telles que Google, Mozilla, Apple, Microsoft et W3C ont commencé à travailler sur une nouvelle technologie : WebAssembly, pour répondre aux nouvelles problématiques de performances.&lt;br /&gt;
En effet, le problème que pose aujourd’hui le JIT est la grande perte de performance lors de l’étape d’optimisation du code compilé et la désoptimisation, étapes qui peuvent se répéter indéfiniment. Ainsi, l’objectif de WebAssembly est de supprimer cette étape.&lt;br /&gt;
Pour ce faire, WebAssembly permet de générer des fichiers binaires .wasm qui peuvent être obtenus en compilant n’importe quel langage de programmation en .wasm. WebAssembly est une machine à pile, c’est-à-dire que les fichiers binaires générés ne stockent pas les registres dont sont issus les données pour effectuer les calculs. Cela permet entre autres de produire des fichiers très légers, qui sont alors rapidement transférables et peu gourmands en stockage. De plus, ces fichiers peuvent être ensuite exécutés sur n’importe quelle architecture de machine. Grâce à sa compatibilité avec toutes sortes de langages, les modules .wasm peuvent, par exemple, alors être intégrés à du code JavaScript.&lt;br /&gt;
En quoi WebAssembly rend alors JavaScript et les autres technologies du web plus performantes ?&lt;br /&gt;
Grâce à Web Assembly il est maintenant possible d’exécuter du code compilé, issu d’autres langages tel que C, C++, C# ou encore Rust, qui sont des langages plus optimisés pour effectuer certaines tâches. Ainsi, il nous est possible d’écrire un code en JavaScript qui utilise du code C compilé en .wasm, qui viendra remplacer les portions de code « chaudes » qui étaient précédemment compilées, optimisées, désoptimisées, et recompilées par le JIT.&lt;br /&gt;
De plus, grâce à leurs petites tailles, les fichiers .wasm sont très peut coûteux à être importés et donc ne créent pas de latence supplémentaire.&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peut trouver une autre application à Web Assembly en dehors de la recherche de performances. En effet, puisqu’il est maintenant possible d’exécuter du code C, C++, C#, Rust… pour le web, il n’est plus nécessaire de réécrire du code en JavaScript si une alternative dans un autre langage existe déjà, et a déjà prouvé son efficacité. Permettant ainsi de faciliter le travail des développeurs et de mettre en place un « pont » entre les langages, au service du web.&lt;br /&gt;
 &lt;br /&gt;
II. SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
1.	BLOCKCHAIN &amp;amp; SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
« Une blockchain est une base de données décentralisée publique. » Expliquons rapidement cette phrase.&lt;br /&gt;
Tout d’abord, afin de comprendre pourquoi nous parlons de décentralisation, il faut comprendre ce qu’est un « tier de confiance ». Un « tier de confiance » est une personne (morale ou non) qui est chargée d’assurer un service entre deux personnes. Par exemple, la banque est le tier de confiance utilisé pour une transaction monétaire, mais encore, quand vous souhaitez accéder à vos données stockées dans le cloud, vous faites appel à un tier de confiance (par exemple Amazon) qui vous assure de stocker vos informations et de vous permettre d’y accéder. Le système basé sur les tiers de confiances est ce qu’on appelle un système « centralisé ». En effet, une banque, ou une ferme de serveurs, se charge de centraliser les transactions ou le stockage des données.&lt;br /&gt;
Ainsi, l’objectif de la décentralisation est de se passer de ces tiers de confiance. Pour ce faire, la blockchain est manipulée par des centaines de milliers de personnes, qui possèdent tous un même registre. Ensuite, afin de modifier ce registre, pour inscrire une nouvelle information, l’entièreté des personnes qui contribuent à ce registre doivent valider la modification. Le registre est alors décentralisé, puisqu’il n’est plus géré par une unique entité.&lt;br /&gt;
De plus, quand on parle de blockchain, on parle de base de données publique. En effet, une blockchain n’est ni plus ni moins qu’un registre informatique où l’on peut stocker des informations de manière sécurisée. Ainsi, par sa propriété à être décentralisée, ce registre est public, n’importe quelle personne peut venir consulter les informations qu’il contient, le stocker et contribuer aux validations des prochaines modifications.&lt;br /&gt;
Un smart contract ou « contrat intelligent », pour sa part, est un contrat passé entre deux entités, inscris de manière immuable dans la blockchain. Il permet de jouer le rôle des tiers de confiance dans un système centralisé. En effet, un smart contract n’est ni plus ni moins qu’un code informatique se trouvant dans une blockchain, qui fixe le cadre d’un contrat. Il définit les actions à réaliser, lorsque les conditions voulues par les parties l’ayant signé sont respectées. Ils sont aujourd’hui écrits dans des langages de programmations tel que Solidity, qui sont basés sur JavaScript.&lt;br /&gt;
 &lt;br /&gt;
2.	UTILISATION DE WEBASSEMBLY POUR ECRIRE DES SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, les langages tel que Solidity sont des langages pensés pour être exécutés sur la blockchain. En effet, la blockchain impose plusieurs contraintes au langage, qui ont forcé les développeurs à concevoir des langages spécifiques pour y répondre. Parmi ces contraintes, les deux plus importantes sont :&lt;br /&gt;
-	La nécessité d’avoir un programme peu couteux en stockage.&lt;br /&gt;
o	En effet plus les fichiers sont volumineux, plus ils sont coûteux à inscrire dans la blockchain.&lt;br /&gt;
-	La nécessité d’avoir des programmes exécutables sur n’importe quelle machine.&lt;br /&gt;
o	En effet, comme expliqué précédemment, la blockchain peut être stockée par n’importe quel individu. Ainsi, les programmes des smart contracts doivent pouvoir s’exécuter sur la machine de ces individus, quelle que soit leur architecture.&lt;br /&gt;
Cependant, les langages comme Solidity répondent à ces exigences, mais font face à d’autres problèmes. En effet, ces langages sont peu performants, et surtout spécifiques à l’utilisation sur une bolckchain. Cette spécificité implique le besoin d’une main d’œuvre qualifiée dans un domaine « de niche ».&lt;br /&gt;
C’est à ce moment que Web Assembly trouve toute son application pour les smart conrtacts. En effet, comme nous l’avons vu précédemment, les fichiers .wasm sont des fichiers peu coûteux en stockage, et exécutables sur toutes les architectures machines. WebAssembly répond ainsi aux exigences de la blockchain, mais plus encore.&lt;br /&gt;
WebAssembly permet d’obtenir un fichier .wasm à partir d’autres langages de haut niveau. Ainsi, cela permet d’ouvrir la programmation de smart contracts à d’autres langages de programmation. Permettant alors d’avoir accès à une main œuvre qualifiée beaucoup plus grande, mais également à des langages plus performants et optimisés pour effectuer certaines tâches.&lt;br /&gt;
WebAssembly semble donc être le futur des smart contracts et permettra sans aucun doute, comme elle le fait avec les technologies du web, d’ouvrir de nouvelles possibilités aux smart contracts.&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2022_XXX_fiche&amp;diff=52855</id>
		<title>VT2022 XXX fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2022_XXX_fiche&amp;diff=52855"/>
		<updated>2022-11-28T13:30:17Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;##Résumé&lt;br /&gt;
&lt;br /&gt;
WebAssembly, est un format d&#039;instruction binaire basé sur une machine à pile. Cette technologie permet entre autres de compiler du code de n’importe quel langage en fichier .wasm. Ces fichiers binaires sont alors très peu coûteux en stockage, et peuvent être exécutés sur n’importe quelle architecture machine, mais également intégrés à du code JavaScript par exemple. Cela permet aux technologies du web de pouvoir exécuter du code déjà compilé, provenant d’autres langages, pouvant être plus performants pour certaines tâches.&lt;br /&gt;
Cette technologie peut alors parfaitement s’intégrer à la blockchain, afin de coder des smart contracts plus performants. En effet, les programmes des smart contracts ont besoin de répondre à deux problématiques majeures, qui sont la taille du fichier, et la possibilité d’exécuter ces programmes sur n’importe quelle architecture machine.&lt;br /&gt;
WebAssembly répond à ces critères, et permet d’écrire des smart contracts dans des langages performants tel que C, C++, C# ou encore Rust. Cela semble alors être une technologie révolutionnaire pour le milieu des smart contracts.&lt;br /&gt;
&lt;br /&gt;
##Abstract&lt;br /&gt;
&lt;br /&gt;
WebAssembly is a binary instruction format based on a stack machine. This technology allows, among other things, to compile code of any language into .wasm files. These binary files are then very cheap in storage, and can be executed on any machine architecture, but also integrates well with JavaScript code for example. This allows web technologies to run already compiled code from other languages, which can be more efficient for certain tasks.&lt;br /&gt;
This technology can then be perfectly integrated with the blockchain, in order to propose more efficient smart contracts. Indeed, smart contract programs need to answer two major issues, which are the file size, and the possibility to run these programs on any machine architecture.&lt;br /&gt;
WebAssembly meets these criteria, and allows to write smart contracts in powerful languages such as C, C++, C# or even Rust. It seems then to be a revolutionary technology for the smart contract community.&lt;br /&gt;
 &lt;br /&gt;
##WebAssembly&lt;br /&gt;
&lt;br /&gt;
1.	ETAT DES TECHNOLOGIES DU WEB AVANT WEBASSEMBLY&lt;br /&gt;
&lt;br /&gt;
On observe deux phases importantes dans l’évolution des technologies du web, et plus particulièrement de JavaScript.&lt;br /&gt;
Au tout début, le langage JavaScript était exécuté via un interpréteur. Cet interpréteur permet de se passer du temps de compilation d’un fichier (par opposition au compilateur) et donc de gagner en performance. En effet, pour rappel, à l’inverse d’un compilateur qui va traduire l’ensemble du code en langage machine avant l’exécution, l’interpréteur traduit uniquement la ligne qu’il est en train d’exécuter, et exécute ainsi le programme ligne par ligne. &lt;br /&gt;
Cependant, cette méthode a ses limites et a amené les technologies du web à évoluer, vers ce que nous allons appeler la phase 2, avec l’utilisation des compilateurs Just-In-Time (JIT).&lt;br /&gt;
En effet, l’utilisation de l’interpréteur pose plusieurs soucis de performances. Imaginons que vous rechargiez une page web, le code devra alors être de nouveau exécuté entièrement par l’interpréteur. Alors que si nous avions compilé le code via un compilateur lors de la première itération, nous n’aurions qu’à exécuter le code précédemment compilé directement. Ce problème de réinterprétation du code peut également survenir dans les boucles, où nous pourrions simplement compiler la ligne de code qui sera exécutée plusieurs fois, plutôt que de l’interpréter à chaque tour de boucle.&lt;br /&gt;
Oui mais, changer pour une utilisation du compilateur à la place de l’interpréteur ferait perdre en performance dans le cas où nous utilisons des pages statiques. C’est pourquoi, le compilateur JIT a été inventé pour résoudre ce problème.&lt;br /&gt;
Comment fonctionne un compilateur JIT ?&lt;br /&gt;
Un compilateur Just-In-Time fonctionne de la même manière qu’un interpréteur, à la différence qu’il va compiler certaines portions de code au cours de l’exécution. En effet, lors de l’exécution d’un programme il va identifier si une portion de code « chauffe » beaucoup ou non, et décider de compiler ces portions de code en fonction de leur état. On dit alors que du code chauffe s’il est interprété plusieurs fois (dans une boucle par exemple). Ainsi les portions de code qui chauffent seront compilées et stockées, afin de pouvoir exécuter directement le code compilé lors de sa prochaine exécution. De plus, afin d’optimiser la compilation, le JIT fais des hypothèses sur le code compilé, comme par exemple le type des variables.&lt;br /&gt;
Comme vous le savez peut-être, JavaScript est un langage non typé, et peut donc contenir des structures de données avec des types non homogènes. Ainsi, le JIT va faire une hypothèse sur le type des données traités lors de la compilation. Ainsi, lors de la prochaine exécution il vérifiera si son hypothèse est juste avant d’exécuter le code compilé. Si jamais son hypothèse est fausse, il va alors faire une « désoptimisation » en supprimant le code compilé. L’exécution sera alors assurée par l’interpréteur, et peut être plus tard recompilé à nouveau suivant de nouvelles hypothèses.&lt;br /&gt;
&lt;br /&gt;
2.	WEB ASSEMBLY&lt;br /&gt;
&lt;br /&gt;
Avec l’arrivée du compilateur JIT, les performances du Web ont explosé, avant de de nouveau stagner (état des technologies actuelles). C’est pourquoi, les grandes entreprises telles que Google, Mozilla, Apple, Microsoft et W3C ont commencé à travailler sur une nouvelle technologie : WebAssembly, pour répondre aux nouvelles problématiques de performances.&lt;br /&gt;
En effet, le problème que pose aujourd’hui le JIT est la grande perte de performance lors de l’étape d’optimisation du code compilé et la désoptimisation, étapes qui peuvent se répéter indéfiniment. Ainsi, l’objectif de WebAssembly est de supprimer cette étape.&lt;br /&gt;
Pour ce faire, WebAssembly permet de générer des fichiers binaires .wasm qui peuvent être obtenus en compilant n’importe quel langage de programmation en .wasm. WebAssembly est une machine à pile, c’est-à-dire que les fichiers binaires générés ne stockent pas les registres dont sont issus les données pour effectuer les calculs. Cela permet entre autres de produire des fichiers très légers, qui sont alors rapidement transférables et peu gourmands en stockage. De plus, ces fichiers peuvent être ensuite exécutés sur n’importe quelle architecture de machine. Grâce à sa compatibilité avec toutes sortes de langages, les modules .wasm peuvent, par exemple, alors être intégrés à du code JavaScript.&lt;br /&gt;
En quoi WebAssembly rend alors JavaScript et les autres technologies du web plus performantes ?&lt;br /&gt;
Grâce à Web Assembly il est maintenant possible d’exécuter du code compilé, issu d’autres langages tel que C, C++, C# ou encore Rust, qui sont des langages plus optimisés pour effectuer certaines tâches. Ainsi, il nous est possible d’écrire un code en JavaScript qui utilise du code C compilé en .wasm, qui viendra remplacer les portions de code « chaudes » qui étaient précédemment compilées, optimisées, désoptimisées, et recompilées par le JIT.&lt;br /&gt;
De plus, grâce à leurs petites tailles, les fichiers .wasm sont très peut coûteux à être importés et donc ne créent pas de latence supplémentaire.&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peut trouver une autre application à Web Assembly en dehors de la recherche de performances. En effet, puisqu’il est maintenant possible d’exécuter du code C, C++, C#, Rust… pour le web, il n’est plus nécessaire de réécrire du code en JavaScript si une alternative dans un autre langage existe déjà, et a déjà prouvé son efficacité. Permettant ainsi de faciliter le travail des développeurs et de mettre en place un « pont » entre les langages, au service du web.&lt;br /&gt;
 &lt;br /&gt;
##Smart contracts&lt;br /&gt;
&lt;br /&gt;
1.	BLOCKCHAIN &amp;amp; SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
« Une blockchain est une base de données décentralisée publique. » Expliquons rapidement cette phrase.&lt;br /&gt;
Tout d’abord, afin de comprendre pourquoi nous parlons de décentralisation, il faut comprendre ce qu’est un « tier de confiance ». Un « tier de confiance » est une personne (morale ou non) qui est chargée d’assurer un service entre deux personnes. Par exemple, la banque est le tier de confiance utilisé pour une transaction monétaire, mais encore, quand vous souhaitez accéder à vos données stockées dans le cloud, vous faites appel à un tier de confiance (par exemple Amazon) qui vous assure de stocker vos informations et de vous permettre d’y accéder. Le système basé sur les tiers de confiances est ce qu’on appelle un système « centralisé ». En effet, une banque, ou une ferme de serveurs, se charge de centraliser les transactions ou le stockage des données.&lt;br /&gt;
Ainsi, l’objectif de la décentralisation est de se passer de ces tiers de confiance. Pour ce faire, la blockchain est manipulée par des centaines de milliers de personnes, qui possèdent tous un même registre. Ensuite, afin de modifier ce registre, pour inscrire une nouvelle information, l’entièreté des personnes qui contribuent à ce registre doivent valider la modification. Le registre est alors décentralisé, puisqu’il n’est plus géré par une unique entité.&lt;br /&gt;
De plus, quand on parle de blockchain, on parle de base de données publique. En effet, une blockchain n’est ni plus ni moins qu’un registre informatique où l’on peut stocker des informations de manière sécurisée. Ainsi, par sa propriété à être décentralisée, ce registre est public, n’importe quelle personne peut venir consulter les informations qu’il contient, le stocker et contribuer aux validations des prochaines modifications.&lt;br /&gt;
Un smart contract ou « contrat intelligent », pour sa part, est un contrat passé entre deux entités, inscris de manière immuable dans la blockchain. Il permet de jouer le rôle des tiers de confiance dans un système centralisé. En effet, un smart contract n’est ni plus ni moins qu’un code informatique se trouvant dans une blockchain, qui fixe le cadre d’un contrat. Il définit les actions à réaliser, lorsque les conditions voulues par les parties l’ayant signé sont respectées. Ils sont aujourd’hui écrits dans des langages de programmations tel que Solidity, qui sont basés sur JavaScript.&lt;br /&gt;
 &lt;br /&gt;
2.	UTILISATION DE WEBASSEMBLY POUR ECRIRE DES SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, les langages tel que Solidity sont des langages pensés pour être exécutés sur la blockchain. En effet, la blockchain impose plusieurs contraintes au langage, qui ont forcé les développeurs à concevoir des langages spécifiques pour y répondre. Parmi ces contraintes, les deux plus importantes sont :&lt;br /&gt;
-	La nécessité d’avoir un programme peu couteux en stockage.&lt;br /&gt;
o	En effet plus les fichiers sont volumineux, plus ils sont coûteux à inscrire dans la blockchain.&lt;br /&gt;
-	La nécessité d’avoir des programmes exécutables sur n’importe quelle machine.&lt;br /&gt;
o	En effet, comme expliqué précédemment, la blockchain peut être stockée par n’importe quel individu. Ainsi, les programmes des smart contracts doivent pouvoir s’exécuter sur la machine de ces individus, quelle que soit leur architecture.&lt;br /&gt;
Cependant, les langages comme Solidity répondent à ces exigences, mais font face à d’autres problèmes. En effet, ces langages sont peu performants, et surtout spécifiques à l’utilisation sur une bolckchain. Cette spécificité implique le besoin d’une main d’œuvre qualifiée dans un domaine « de niche ».&lt;br /&gt;
C’est à ce moment que Web Assembly trouve toute son application pour les smart conrtacts. En effet, comme nous l’avons vu précédemment, les fichiers .wasm sont des fichiers peu coûteux en stockage, et exécutables sur toutes les architectures machines. WebAssembly répond ainsi aux exigences de la blockchain, mais plus encore.&lt;br /&gt;
WebAssembly permet d’obtenir un fichier .wasm à partir d’autres langages de haut niveau. Ainsi, cela permet d’ouvrir la programmation de smart contracts à d’autres langages de programmation. Permettant alors d’avoir accès à une main œuvre qualifiée beaucoup plus grande, mais également à des langages plus performants et optimisés pour effectuer certaines tâches.&lt;br /&gt;
WebAssembly semble donc être le futur des smart contracts et permettra sans aucun doute, comme elle le fait avec les technologies du web, d’ouvrir de nouvelles possibilités aux smart contracts.&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2022_XXX_fiche&amp;diff=52854</id>
		<title>VT2022 XXX fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2022_XXX_fiche&amp;diff=52854"/>
		<updated>2022-11-28T13:29:26Z</updated>

		<summary type="html">&lt;p&gt;Martin.Verrier: Created page with &amp;quot;Résumé  WebAssembly, est un format d&amp;#039;instruction binaire basé sur une machine à pile. Cette technologie permet entre autres de compiler du code de n’importe quel langage...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Résumé&lt;br /&gt;
&lt;br /&gt;
WebAssembly, est un format d&#039;instruction binaire basé sur une machine à pile. Cette technologie permet entre autres de compiler du code de n’importe quel langage en fichier .wasm. Ces fichiers binaires sont alors très peu coûteux en stockage, et peuvent être exécutés sur n’importe quelle architecture machine, mais également intégrés à du code JavaScript par exemple. Cela permet aux technologies du web de pouvoir exécuter du code déjà compilé, provenant d’autres langages, pouvant être plus performants pour certaines tâches.&lt;br /&gt;
Cette technologie peut alors parfaitement s’intégrer à la blockchain, afin de coder des smart contracts plus performants. En effet, les programmes des smart contracts ont besoin de répondre à deux problématiques majeures, qui sont la taille du fichier, et la possibilité d’exécuter ces programmes sur n’importe quelle architecture machine.&lt;br /&gt;
WebAssembly répond à ces critères, et permet d’écrire des smart contracts dans des langages performants tel que C, C++, C# ou encore Rust. Cela semble alors être une technologie révolutionnaire pour le milieu des smart contracts.&lt;br /&gt;
&lt;br /&gt;
Abstract&lt;br /&gt;
&lt;br /&gt;
WebAssembly is a binary instruction format based on a stack machine. This technology allows, among other things, to compile code of any language into .wasm files. These binary files are then very cheap in storage, and can be executed on any machine architecture, but also integrates well with JavaScript code for example. This allows web technologies to run already compiled code from other languages, which can be more efficient for certain tasks.&lt;br /&gt;
This technology can then be perfectly integrated with the blockchain, in order to propose more efficient smart contracts. Indeed, smart contract programs need to answer two major issues, which are the file size, and the possibility to run these programs on any machine architecture.&lt;br /&gt;
WebAssembly meets these criteria, and allows to write smart contracts in powerful languages such as C, C++, C# or even Rust. It seems then to be a revolutionary technology for the smart contract community.&lt;br /&gt;
 &lt;br /&gt;
WebAssembly&lt;br /&gt;
&lt;br /&gt;
1.	ETAT DES TECHNOLOGIES DU WEB AVANT WEBASSEMBLY&lt;br /&gt;
&lt;br /&gt;
On observe deux phases importantes dans l’évolution des technologies du web, et plus particulièrement de JavaScript.&lt;br /&gt;
Au tout début, le langage JavaScript était exécuté via un interpréteur. Cet interpréteur permet de se passer du temps de compilation d’un fichier (par opposition au compilateur) et donc de gagner en performance. En effet, pour rappel, à l’inverse d’un compilateur qui va traduire l’ensemble du code en langage machine avant l’exécution, l’interpréteur traduit uniquement la ligne qu’il est en train d’exécuter, et exécute ainsi le programme ligne par ligne. &lt;br /&gt;
Cependant, cette méthode a ses limites et a amené les technologies du web à évoluer, vers ce que nous allons appeler la phase 2, avec l’utilisation des compilateurs Just-In-Time (JIT).&lt;br /&gt;
En effet, l’utilisation de l’interpréteur pose plusieurs soucis de performances. Imaginons que vous rechargiez une page web, le code devra alors être de nouveau exécuté entièrement par l’interpréteur. Alors que si nous avions compilé le code via un compilateur lors de la première itération, nous n’aurions qu’à exécuter le code précédemment compilé directement. Ce problème de réinterprétation du code peut également survenir dans les boucles, où nous pourrions simplement compiler la ligne de code qui sera exécutée plusieurs fois, plutôt que de l’interpréter à chaque tour de boucle.&lt;br /&gt;
Oui mais, changer pour une utilisation du compilateur à la place de l’interpréteur ferait perdre en performance dans le cas où nous utilisons des pages statiques. C’est pourquoi, le compilateur JIT a été inventé pour résoudre ce problème.&lt;br /&gt;
Comment fonctionne un compilateur JIT ?&lt;br /&gt;
Un compilateur Just-In-Time fonctionne de la même manière qu’un interpréteur, à la différence qu’il va compiler certaines portions de code au cours de l’exécution. En effet, lors de l’exécution d’un programme il va identifier si une portion de code « chauffe » beaucoup ou non, et décider de compiler ces portions de code en fonction de leur état. On dit alors que du code chauffe s’il est interprété plusieurs fois (dans une boucle par exemple). Ainsi les portions de code qui chauffent seront compilées et stockées, afin de pouvoir exécuter directement le code compilé lors de sa prochaine exécution. De plus, afin d’optimiser la compilation, le JIT fais des hypothèses sur le code compilé, comme par exemple le type des variables.&lt;br /&gt;
Comme vous le savez peut-être, JavaScript est un langage non typé, et peut donc contenir des structures de données avec des types non homogènes. Ainsi, le JIT va faire une hypothèse sur le type des données traités lors de la compilation. Ainsi, lors de la prochaine exécution il vérifiera si son hypothèse est juste avant d’exécuter le code compilé. Si jamais son hypothèse est fausse, il va alors faire une « désoptimisation » en supprimant le code compilé. L’exécution sera alors assurée par l’interpréteur, et peut être plus tard recompilé à nouveau suivant de nouvelles hypothèses.&lt;br /&gt;
&lt;br /&gt;
2.	WEB ASSEMBLY&lt;br /&gt;
&lt;br /&gt;
Avec l’arrivée du compilateur JIT, les performances du Web ont explosé, avant de de nouveau stagner (état des technologies actuelles). C’est pourquoi, les grandes entreprises telles que Google, Mozilla, Apple, Microsoft et W3C ont commencé à travailler sur une nouvelle technologie : WebAssembly, pour répondre aux nouvelles problématiques de performances.&lt;br /&gt;
En effet, le problème que pose aujourd’hui le JIT est la grande perte de performance lors de l’étape d’optimisation du code compilé et la désoptimisation, étapes qui peuvent se répéter indéfiniment. Ainsi, l’objectif de WebAssembly est de supprimer cette étape.&lt;br /&gt;
Pour ce faire, WebAssembly permet de générer des fichiers binaires .wasm qui peuvent être obtenus en compilant n’importe quel langage de programmation en .wasm. WebAssembly est une machine à pile, c’est-à-dire que les fichiers binaires générés ne stockent pas les registres dont sont issus les données pour effectuer les calculs. Cela permet entre autres de produire des fichiers très légers, qui sont alors rapidement transférables et peu gourmands en stockage. De plus, ces fichiers peuvent être ensuite exécutés sur n’importe quelle architecture de machine. Grâce à sa compatibilité avec toutes sortes de langages, les modules .wasm peuvent, par exemple, alors être intégrés à du code JavaScript.&lt;br /&gt;
En quoi WebAssembly rend alors JavaScript et les autres technologies du web plus performantes ?&lt;br /&gt;
Grâce à Web Assembly il est maintenant possible d’exécuter du code compilé, issu d’autres langages tel que C, C++, C# ou encore Rust, qui sont des langages plus optimisés pour effectuer certaines tâches. Ainsi, il nous est possible d’écrire un code en JavaScript qui utilise du code C compilé en .wasm, qui viendra remplacer les portions de code « chaudes » qui étaient précédemment compilées, optimisées, désoptimisées, et recompilées par le JIT.&lt;br /&gt;
De plus, grâce à leurs petites tailles, les fichiers .wasm sont très peut coûteux à être importés et donc ne créent pas de latence supplémentaire.&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peut trouver une autre application à Web Assembly en dehors de la recherche de performances. En effet, puisqu’il est maintenant possible d’exécuter du code C, C++, C#, Rust… pour le web, il n’est plus nécessaire de réécrire du code en JavaScript si une alternative dans un autre langage existe déjà, et a déjà prouvé son efficacité. Permettant ainsi de faciliter le travail des développeurs et de mettre en place un « pont » entre les langages, au service du web.&lt;br /&gt;
 &lt;br /&gt;
Smart contracts&lt;br /&gt;
&lt;br /&gt;
1.	BLOCKCHAIN &amp;amp; SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
« Une blockchain est une base de données décentralisée publique. » Expliquons rapidement cette phrase.&lt;br /&gt;
Tout d’abord, afin de comprendre pourquoi nous parlons de décentralisation, il faut comprendre ce qu’est un « tier de confiance ». Un « tier de confiance » est une personne (morale ou non) qui est chargée d’assurer un service entre deux personnes. Par exemple, la banque est le tier de confiance utilisé pour une transaction monétaire, mais encore, quand vous souhaitez accéder à vos données stockées dans le cloud, vous faites appel à un tier de confiance (par exemple Amazon) qui vous assure de stocker vos informations et de vous permettre d’y accéder. Le système basé sur les tiers de confiances est ce qu’on appelle un système « centralisé ». En effet, une banque, ou une ferme de serveurs, se charge de centraliser les transactions ou le stockage des données.&lt;br /&gt;
Ainsi, l’objectif de la décentralisation est de se passer de ces tiers de confiance. Pour ce faire, la blockchain est manipulée par des centaines de milliers de personnes, qui possèdent tous un même registre. Ensuite, afin de modifier ce registre, pour inscrire une nouvelle information, l’entièreté des personnes qui contribuent à ce registre doivent valider la modification. Le registre est alors décentralisé, puisqu’il n’est plus géré par une unique entité.&lt;br /&gt;
De plus, quand on parle de blockchain, on parle de base de données publique. En effet, une blockchain n’est ni plus ni moins qu’un registre informatique où l’on peut stocker des informations de manière sécurisée. Ainsi, par sa propriété à être décentralisée, ce registre est public, n’importe quelle personne peut venir consulter les informations qu’il contient, le stocker et contribuer aux validations des prochaines modifications.&lt;br /&gt;
Un smart contract ou « contrat intelligent », pour sa part, est un contrat passé entre deux entités, inscris de manière immuable dans la blockchain. Il permet de jouer le rôle des tiers de confiance dans un système centralisé. En effet, un smart contract n’est ni plus ni moins qu’un code informatique se trouvant dans une blockchain, qui fixe le cadre d’un contrat. Il définit les actions à réaliser, lorsque les conditions voulues par les parties l’ayant signé sont respectées. Ils sont aujourd’hui écrits dans des langages de programmations tel que Solidity, qui sont basés sur JavaScript.&lt;br /&gt;
 &lt;br /&gt;
2.	UTILISATION DE WEBASSEMBLY POUR ECRIRE DES SMART CONTRACTS&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, les langages tel que Solidity sont des langages pensés pour être exécutés sur la blockchain. En effet, la blockchain impose plusieurs contraintes au langage, qui ont forcé les développeurs à concevoir des langages spécifiques pour y répondre. Parmi ces contraintes, les deux plus importantes sont :&lt;br /&gt;
-	La nécessité d’avoir un programme peu couteux en stockage.&lt;br /&gt;
o	En effet plus les fichiers sont volumineux, plus ils sont coûteux à inscrire dans la blockchain.&lt;br /&gt;
-	La nécessité d’avoir des programmes exécutables sur n’importe quelle machine.&lt;br /&gt;
o	En effet, comme expliqué précédemment, la blockchain peut être stockée par n’importe quel individu. Ainsi, les programmes des smart contracts doivent pouvoir s’exécuter sur la machine de ces individus, quelle que soit leur architecture.&lt;br /&gt;
Cependant, les langages comme Solidity répondent à ces exigences, mais font face à d’autres problèmes. En effet, ces langages sont peu performants, et surtout spécifiques à l’utilisation sur une bolckchain. Cette spécificité implique le besoin d’une main d’œuvre qualifiée dans un domaine « de niche ».&lt;br /&gt;
C’est à ce moment que Web Assembly trouve toute son application pour les smart conrtacts. En effet, comme nous l’avons vu précédemment, les fichiers .wasm sont des fichiers peu coûteux en stockage, et exécutables sur toutes les architectures machines. WebAssembly répond ainsi aux exigences de la blockchain, mais plus encore.&lt;br /&gt;
WebAssembly permet d’obtenir un fichier .wasm à partir d’autres langages de haut niveau. Ainsi, cela permet d’ouvrir la programmation de smart contracts à d’autres langages de programmation. Permettant alors d’avoir accès à une main œuvre qualifiée beaucoup plus grande, mais également à des langages plus performants et optimisés pour effectuer certaines tâches.&lt;br /&gt;
WebAssembly semble donc être le futur des smart contracts et permettra sans aucun doute, comme elle le fait avec les technologies du web, d’ouvrir de nouvelles possibilités aux smart contracts.&lt;/div&gt;</summary>
		<author><name>Martin.Verrier</name></author>
	</entry>
</feed>