<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Patrice Kalwira</title>
    <description>The latest articles on Forem by Patrice Kalwira (@patricekalwira).</description>
    <link>https://forem.com/patricekalwira</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1118046%2F22bf8924-8567-4e4b-98f4-c308a27a4d45.jpg</url>
      <title>Forem: Patrice Kalwira</title>
      <link>https://forem.com/patricekalwira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/patricekalwira"/>
    <language>en</language>
    <item>
      <title>Trois mois à Kali Academy : Une Immersion dans l'Open Source.</title>
      <dc:creator>Patrice Kalwira</dc:creator>
      <pubDate>Fri, 14 Jun 2024 20:23:14 +0000</pubDate>
      <link>https://forem.com/kaliacad/resume-de-mon-stage-a-kali-academy-une-immersion-dans-lopen-source-2ok3</link>
      <guid>https://forem.com/kaliacad/resume-de-mon-stage-a-kali-academy-une-immersion-dans-lopen-source-2ok3</guid>
      <description>&lt;p&gt;Je m'appelle Patrice Kalwira et je suis un développeur web fullstack.&lt;br&gt;
Cet article est un condensé sur mon parcours en tant que stagiaire au sein de l'organisation Open Source Kali Academy, basée à Goma, à l'Est de la République Démocratique du Congo.&lt;br&gt;
Durant trois mois, j'ai eu l'opportunité exceptionnelle de participer à un stage intensif au sein de Kali Academy, une organisation dynamique spécialisée dans l'open. Cette expérience enrichissante m'a permis de plonger dans les profondeurs de l'open source, de découvrir Kali Academy, ses différents projets et programmes. Plus encore, c'était une immersion totale dans le monde de la Wikimedia Foundation et ses projets mais aussi y apporter ma modeste contribution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C'est quoi Kali Academy ?&lt;/strong&gt;&lt;br&gt;
Kali Academy est une académie qui vise à promouvoir les valeurs de l'open source dans les régions les moins représentées notament en Afrique. Les valeurs clés de l'open source sont le partage, la collaboration et bien sûr aussi la contribution. Son cible majeur est les étudiants ainsi que les récents diplômés. Mais il n'oublie pas aussi toute la communauté qui doit être aussi sensibilisée sur l'open source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programme de stage&lt;/strong&gt;&lt;br&gt;
Notre stage a duré trois mois et pour chaque mois nous avions une concentration pricipale particulière&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Premier mois : Hacking, Linux et projets de Kali Academy&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Comment devenir un bon hacker&lt;/strong&gt;&lt;br&gt;
Comme on aspirait de dévenir tous des hachers, notre voyage a commencé par la formation sur comment devenir un hacker (bien que la plupart des gens confondent hacker et cracker). Nous avons appris les attitudes à adopter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Introduction au système Linux&lt;/strong&gt;&lt;br&gt;
La plupart des vrais hackers utilisent Linux comme système d'exploitation. D'où même si on ne va pas forcement utiliser Linux quotidiennement on est sensé avoir en tête quelques commandes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Présentation des projets de Kali Academy&lt;/strong&gt;&lt;br&gt;
Nous avons eu des séances sur comment trouver un projet open source passionnant et comment faire pour y contribuer. Notre premier exercice en ce terme était d'aller sur &lt;a href="https://github.com/kaliacad/" rel="noopener noreferrer"&gt;le github de Kali Academy&lt;/a&gt; et y choisir quelques issues à travailler.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Deuxième mois : Hacking avec MediaWiki&lt;/strong&gt;&lt;br&gt;
Ce mois visait prémièrement à familiariser les stagiaires au moteur Mediawiki qui propulse la quasi totalité des applications de Wikimedia. &lt;br&gt;
Cette partie a été très capitale car elle nous a permis de commencer à faire des contributions techniques (écriture des codes) directement sur les projets de Wikimedia.&lt;br&gt;
Les projets sur lesquels nous avons passé trop de temps sont Wikipédia et Wikidata. Il y en a eu plusieurs mais ces deux méritent d'être mentionnés ici.&lt;br&gt;
Durant ce mois, nous avons créé &lt;a href="https://github.com/kaliacad/WD-Vanila" rel="noopener noreferrer"&gt;un petit moteur &lt;/a&gt;de recherche qui récupère des données à partir de Wikidata en utilisant l'API de Wikidata. Ce projet nous a permis de mettre en pratique c'est que nous avons appris dans un événement en ligne qui parlait de Wikidata.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzthormknkzu2cu46f1r8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzthormknkzu2cu46f1r8.jpg" alt="Kali Academy" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Troisième mois : Projet final&lt;/strong&gt;&lt;br&gt;
Après ces deux mois d'apprentissage, le dernier mois visait à concrétiser tout ce qu'on avait déjà appris en créant des applications.&lt;br&gt;
Pour notre projet final, dans un groupe de 4, nous avons développeé &lt;a href="https://github.com/kaliacad/wikidataqueriIA" rel="noopener noreferrer"&gt;une application qui utilise l'intelligence artificielle&lt;/a&gt; pour générer les requêtes SPARQL en utilisant le langage humain.&lt;br&gt;
Le projet est évidemment open source et si ça vous tente, contribuez sans modération.&lt;/p&gt;

&lt;p&gt;L'un des points forts de ce stage a été notre participation active à divers hackathons et ateliers organisés par la Wikimedia Foundation, Kiwix, ... Ces événements étaient des occasions idéales pour appliquer les compétences acquises dans des contextes pratiques et collaboratifs. Nous avons travaillé sur des projets divers, allant de l'amélioration des outils existants de Wikimedia à la création de nouvelles applications innovantes. Ces hackathons nous ont également permis de réseauter avec des professionnels de l'industrie et de recevoir des conseils précieux pour notre développement personnel et professionnel.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6tkmv3jly653lqd5ngg3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6tkmv3jly653lqd5ngg3.jpg" alt="Kali Academy" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Voici une liste non exhaustive d'activités dans lequelles nous avons eu l'honneur de participer : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://meta.wikimedia.org/wiki/Event:WishathonMarch2024" rel="noopener noreferrer"&gt;Wishaton March 2024&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.wikidata.org/wiki/Wikidata:Events/Leveling_Up_Days_2024" rel="noopener noreferrer"&gt;Wikidata Leveling Up 2024&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://meta.wikimedia.org/wiki/Event:WMA-MediaWiki_101:Becoming_a_MediaWiki_Hacker" rel="noopener noreferrer"&gt;WMA-MediaWiki 101:Becoming a MediaWiki Hacker&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Beacoup d'activités organisées par Wikimedia RDC&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Ce stage à Kali Academy a été une expérience transformative, offrant une immersion profonde dans le monde de l'open source, des compétences techniques solides, et l'opportunité de travailler sur des projets innovants avec des applications réelles. Les connaissances et les compétences acquises pendant ces trois mois sont inestimables et ouvrent de nombreuses portes pour des opportunités futures. Kali Academy a fourni un environnement d'apprentissage exceptionnel qui nous a préparés à devenir des contributeurs actifs et innovants dans le domaine de l'open source.&lt;br&gt;
Il y avait beacoup de choses à écrire mais j'ai fait juste un bref résumé. Si vous avez des questions, n'hésitez pas à les poser dans les commentaires&lt;br&gt;
Je remercie toute l'administration de Kali Academy, tous mes collègues stagiaires et tous les contributeurs à l'open source en général quel que soit le projet.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>Les premiers pas dans le monde du Web : Guide de programmation pour débutants</title>
      <dc:creator>Patrice Kalwira</dc:creator>
      <pubDate>Sun, 05 May 2024 18:59:27 +0000</pubDate>
      <link>https://forem.com/patricekalwira/les-premiers-pas-dans-le-monde-du-web-guide-de-programmation-pour-debutants-39o8</link>
      <guid>https://forem.com/patricekalwira/les-premiers-pas-dans-le-monde-du-web-guide-de-programmation-pour-debutants-39o8</guid>
      <description>&lt;p&gt;Difficile de vire dans cette époque sans pour autant avoir recours aux nouvelles technologies. A notre mort, nous aurons passé beaucoup d'années de notre vie à parcourir le web que ce soit sur smarthone, tablette, ordinateur ou tout autre support. &lt;br&gt;
Mais qu'est-ce qui se passe derrière nos écrans ? Voilà une belle question que la plupart des consommateurs ne se posent même pas.&lt;br&gt;
Vous avez envie de savoir ce qui se passe et peut-être aller un peu plus loin en voulant contribuer à sa manière dans ce monde fantastique ? &lt;br&gt;
Ce guide est une petite introduction pour vous.&lt;/p&gt;

&lt;p&gt;La &lt;strong&gt;programmation Web&lt;/strong&gt; est une compétence essentielle dans le monde numérique d'aujourd'hui. Que vous souhaitiez créer votre propre blog, développer une application dynamique ou simplement comprendre comment fonctionnent les sites Web, cet article est votre point de départ. Nous allons explorer ensemble les bases de la programmation Web, des langages de balisage aux frameworks modernes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Introduction à la programmation Web&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;La programmation Web consiste à écrire des instructions pour créer des pages et des applications accessibles via un navigateur. Elle se divise en deux grandes catégories : le &lt;strong&gt;front-end&lt;/strong&gt;, qui est la partie visible par l'utilisateur, l'interface utilisateur et le &lt;strong&gt;back-end&lt;/strong&gt;, qui traite la logique côté serveur, toutes les requêtes que vous faites sont gérées pas le back-end. Par exemple, à chaque fois que vous recherchez une personne sur Facebook, il y a un traitement qui se passe dans le back-end et qui vous permet de retrouver la personne dans quelques secondes. Cet affichage se faira sur le front-end, la partie visible par l'utilisateur.&lt;/p&gt;

&lt;p&gt;Pour ce faire, il y a deux langages basiques et incontournables pour le web : HTML et CSS. Bien qu'ils ne soient pas des langages de programmation, ils ont tout leur mérite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Comprendre le HTML/CSS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt; (HyperText Markup Language) est le squelette de toute page Web. Il définit la structure et le contenu, c'est bien lui qui nous permet d'ajouter du texte, des images, des liens, ... à notre page. HTML utilise des balises et est très facile à apprendre. C'est la base du web pour un programmeur débutant. &lt;br&gt;
De son côté le &lt;strong&gt;CSS&lt;/strong&gt; (Cascading Style Sheets) détermine l'apparence, défini tout ce qui est couleur, animation, ... &lt;br&gt;
Ensemble, ils permettent de créer des pages Web statiques et esthétiquement agréables.&lt;br&gt;
Voici un exemple du code HTML&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Document&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pour accompagner ces deux lagages, il y a un langage de programmation qui avec ces deux précédants constituent le trio du Web : le &lt;strong&gt;Javascript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Fondamentaux du JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; est le langage de programmation qui anime les pages Web. Il permet d'ajouter de l'interactivité, de manipuler les éléments du DOM (Document Object Model) et de répondre aux actions des utilisateurs. En complément du HTML et du CSS, le Javascript élargit nos possibilités comme par exemple la personnalisation de l'interface qu'on soit connecté ou pas, qu'on soit abonné ou pas, ...&lt;br&gt;
Au début le JS (Javascript) fonctionnait seulement du côté client (front-end) mais aujourd'hui grâce Node.js nous avons la possibilité d'utiliser le Javascript en back-end.&lt;br&gt;
Le Javascript est aujourd'hui l'un des langages de programmation les plus utilisés et les plus populaires. Avec son évolution, on a aujourd'hui plusieurs frameworks et bibliothèques (comprenez par ces deux termes, une facilitation des tâches côté développeur) qui sont très populaires et appréciés comme React, Vue et Angular. &lt;br&gt;
Choisir le bon framework dépend de vos besoins spécifiques et de la communauté qui l'entoure.&lt;br&gt;
Voici un petit bout de code JS qui affiche à l'écran Hello world!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello World&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Outils de développement&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;C'est un sujet crucial qui se dira ici. Pour faire un petit truc basique en web, on a besoin qu'un d'un éditeur de texte et un navigateur web, et bam, la magie fait son effet!&lt;br&gt;
Pour l'éditeur, il vaut mieux choisir un éditeur de code plutôt qu'un éditeur de texte parce qu'avec l'éditeur de code vous aurez plus de souplesse et de confort parce qu'il y a un arsenal des fonctionnalités qui a été développé pour faire se sentir le programmeur à son aise.&lt;br&gt;
Des éditeurs de code tels que &lt;strong&gt;Visual Studio Code&lt;/strong&gt; offrent un environnement de développement riche en fonctionnalités. Cest un éditeur gratuit et qui a une partie de son code en open source que je conseillerais au programmeur débutant et même aux développeurs expérimentés. &lt;br&gt;
Pour le navigateur web, &lt;strong&gt;Google Chrome&lt;/strong&gt; est aujourd'hui le plus utilisé mais il est conseillé de toujours tester sur les autres navigateurs pour voir si vous avez le même rendu et les mêmes fonctionnalités que sur votre navigateur principal parce que vous ne savez pas depuis quel navigateur votre client voudra intéragir avec votre site ou votre application web. &lt;/p&gt;

&lt;p&gt;Avec un peu plus d'expérience vous aurez besoin d'utiliser un système de contrôle de version comme &lt;strong&gt;Git&lt;/strong&gt;  qui est également essentielle pour gérer les changements dans le code et son versionnement. Dans ce cas vous pouvez utiliser &lt;strong&gt;Github&lt;/strong&gt; mais pour l'intant on ne va pas trop parler de ça. Peut-être que dans un futur proche je vais y consacrer un article complet.&lt;/p&gt;

&lt;p&gt;Quand on est programmeur, on doit beaucoup lire et apprendre sans cesse car la technologie évolue à chaque seconde qui passe. Pour cela, vous aurez besoin de lire de bonnes documentations et/ou suivre des tutoriels sur Youtube.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Ressources et communauté&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Il existe une multitude de ressources en ligne pour apprendre la programmation Web, des documentations officielles aux tutoriels vidéo. Rejoindre des communautés en ligne peut également fournir un soutien et des conseils précieux.&lt;/p&gt;

&lt;p&gt;Voici une liste non exhaustive de quelques ressources précieuses pour débutants mais aussi la doc exhaustive de JS.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://openclassrooms.com/fr/courses/1603881-creez-votre-site-web-avec-html5-et-css3/8061261-creez-votre-premiere-page-web-en-html" rel="noopener noreferrer"&gt;Openclassrooms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3schools.com/css/" rel="noopener noreferrer"&gt;MDN, CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/fr/docs/Web/JavaScript" rel="noopener noreferrer"&gt;MDN, JS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3schools.com/js/" rel="noopener noreferrer"&gt;W3Schools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freecodecamp.org/news/full-javascript-course-for-beginners/" rel="noopener noreferrer"&gt;Free Code Camp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion et prochaines étapes
&lt;/h2&gt;

&lt;p&gt;La pratique est la clé de l'apprentissage de la programmation Web. Commencez par de petits projets et n'hésitez pas à expérimenter. Restez curieux et à jour avec les dernières tendances et technologies comme mentionné précédement et surtout ne vous sentez pas complexés ou en retard par rapport à ceux qui ont déjà une grande expérience, ils avaient aussi commencé comme vous. Il faut des étapes, du temps, de la pratique et surtout du courage.&lt;/p&gt;




&lt;p&gt;Cet article est une introduction générale et ne couvre pas tous les détails techniques. Cependant, il fournit un cadre solide pour les débutants qui souhaitent se lancer dans la programmation Web. Bonne chance dans votre voyage de développement Web !&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Les premiers pas dans le monde du Web : Guide de programmation pour débutants</title>
      <dc:creator>Patrice Kalwira</dc:creator>
      <pubDate>Sun, 05 May 2024 18:59:26 +0000</pubDate>
      <link>https://forem.com/patricekalwira/les-premiers-pas-dans-le-monde-du-web-guide-de-programmation-pour-debutants-1db6</link>
      <guid>https://forem.com/patricekalwira/les-premiers-pas-dans-le-monde-du-web-guide-de-programmation-pour-debutants-1db6</guid>
      <description>&lt;p&gt;Difficile de vire dans cette époque sans pour autant avoir recours aux nouvelles technologies. A notre mort, nous aurons passé beaucoup d'années de notre vie à parcourir le web que ce soit sur smarthone, tablette, ordinateur ou tout autre support. &lt;br&gt;
Mais qu'est-ce qui se passe derrière nos écrans ? Voilà une belle question que la plupart des consommateurs ne se posent même pas.&lt;br&gt;
Vous avez envie de savoir ce qui se passe et peut-être aller un peu plus loin en voulant contribuer à sa manière dans ce monde fantastique ? &lt;br&gt;
Ce guide est une petite introduction pour vous.&lt;/p&gt;

&lt;p&gt;La &lt;strong&gt;programmation Web&lt;/strong&gt; est une compétence essentielle dans le monde numérique d'aujourd'hui. Que vous souhaitiez créer votre propre blog, développer une application dynamique ou simplement comprendre comment fonctionnent les sites Web, cet article est votre point de départ. Nous allons explorer ensemble les bases de la programmation Web, des langages de balisage aux frameworks modernes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Introduction à la programmation Web&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;La programmation Web consiste à écrire des instructions pour créer des pages et des applications accessibles via un navigateur. Elle se divise en deux grandes catégories : le &lt;strong&gt;front-end&lt;/strong&gt;, qui est la partie visible par l'utilisateur, l'interface utilisateur et le &lt;strong&gt;back-end&lt;/strong&gt;, qui traite la logique côté serveur, toutes les requêtes que vous faites sont gérées pas le back-end. Par exemple, à chaque fois que vous recherchez une personne sur Facebook, il y a un traitement qui se passe dans le back-end et qui vous permet de retrouver la personne dans quelques secondes. Cet affichage se faira sur le front-end, la partie visible par l'utilisateur.&lt;/p&gt;

&lt;p&gt;Pour ce faire, il y a deux langages basiques et incontournables pour le web : HTML et CSS. Bien qu'ils ne soient pas des langages de programmation, ils ont tout leur mérite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Comprendre le HTML/CSS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt; (HyperText Markup Language) est le squelette de toute page Web. Il définit la structure et le contenu, c'est bien lui qui nous permet d'ajouter du texte, des images, des liens, ... à notre page. HTML utilise des balises et est très facile à apprendre. C'est la base du web pour un programmeur débutant. &lt;br&gt;
De son côté le &lt;strong&gt;CSS&lt;/strong&gt; (Cascading Style Sheets) détermine l'apparence, défini tout ce qui est couleur, animation, ... &lt;br&gt;
Ensemble, ils permettent de créer des pages Web statiques et esthétiquement agréables.&lt;br&gt;
Voici un exemple du code HTML&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;title&amp;gt;Document&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pour accompagner ces deux lagages, il y a un langage de programmation qui avec ces deux précédants constituent le trio du Web : le &lt;strong&gt;Javascript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Fondamentaux du JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; est le langage de programmation qui anime les pages Web. Il permet d'ajouter de l'interactivité, de manipuler les éléments du DOM (Document Object Model) et de répondre aux actions des utilisateurs. En complément du HTML et du CSS, le Javascript élargit nos possibilités comme par exemple la personnalisation de l'interface qu'on soit connecté ou pas, qu'on soit abonné ou pas, ...&lt;br&gt;
Au début le JS (Javascript) fonctionnait seulement du côté client (front-end) mais aujourd'hui grâce Node.js nous avons la possibilité d'utiliser le Javascript en back-end.&lt;br&gt;
Le Javascript est aujourd'hui l'un des langages de programmation les plus utilisés et les plus populaires. Avec son évolution, on a aujourd'hui plusieurs frameworks et bibliothèques (comprenez par ces deux termes, une facilitation des tâches côté développeur) qui sont très populaires et appréciés comme React, Vue et Angular. &lt;br&gt;
Choisir le bon framework dépend de vos besoins spécifiques et de la communauté qui l'entoure.&lt;br&gt;
Voici un petit bout de code JS qui affiche à l'écran Hello world!&lt;br&gt;
&lt;code&gt;console.log('Hello World');&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Outils de développement&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;C'est un sujet crucial qui se dira ici. Pour faire un petit truc basique en web, on a besoin qu'un d'un éditeur de texte et un navigateur web, et bam, la magie fait son effet!&lt;br&gt;
Pour l'éditeur, il vaut mieux choisir un éditeur de code plutôt qu'un éditeur de texte parce qu'avec l'éditeur de code vous aurez plus de souplesse et de confort parce qu'il y a un arsenal des fonctionnalités qui a été développé pour faire se sentir le programmeur à son aise.&lt;br&gt;
Des éditeurs de code tels que &lt;strong&gt;Visual Studio Code&lt;/strong&gt; offrent un environnement de développement riche en fonctionnalités. Cest un éditeur gratuit et qui a une partie de son code en open source que je conseillerais au programmeur débutant et même aux développeurs expérimentés. &lt;br&gt;
Pour le navigateur web, &lt;strong&gt;Google Chrome&lt;/strong&gt; est aujourd'hui le plus utilisé mais il est conseillé de toujours tester sur les autres navigateurs pour voir si vous avez le même rendu et les mêmes fonctionnalités que sur votre navigateur principal parce que vous ne savez pas depuis quel navigateur votre client voudra intéragir avec votre site ou votre application web. &lt;/p&gt;

&lt;p&gt;Avec un peu plus d'expérience vous aurez besoin d'utiliser un système de contrôle de version comme &lt;strong&gt;Git&lt;/strong&gt;  qui est également essentielle pour gérer les changements dans le code et son versionnement. Dans ce cas vous pouvez utiliser &lt;strong&gt;Github&lt;/strong&gt; mais pour l'intant on ne va pas trop parler de ça. Peut-être que dans un futur proche je vais y consacrer un article complet.&lt;/p&gt;

&lt;p&gt;Quand on est programmeur, on doit beaucoup lire et apprendre sans cesse car la technologie évolue à chaque seconde qui passe. Pour cela, vous aurez besoin de lire de bonnes documentations et/ou suivre des tutoriels sur Youtube.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ressources et communauté
&lt;/h2&gt;

&lt;p&gt;Il existe une multitude de ressources en ligne pour apprendre la programmation Web, des documentations officielles aux tutoriels vidéo. Rejoindre des communautés en ligne peut également fournir un soutien et des conseils précieux.&lt;/p&gt;

&lt;p&gt;Voici une liste non exhaustive de quelques ressources précieuses pour débutants mais aussi la doc exhaustive de JS.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://openclassrooms.com/fr/courses/1603881-creez-votre-site-web-avec-html5-et-css3/8061261-creez-votre-premiere-page-web-en-html" rel="noopener noreferrer"&gt;Openclassrooms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3schools.com/css/" rel="noopener noreferrer"&gt;MDN, CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/fr/docs/Web/JavaScript" rel="noopener noreferrer"&gt;MDN, JS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3schools.com/js/" rel="noopener noreferrer"&gt;W3Schools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freecodecamp.org/news/full-javascript-course-for-beginners/" rel="noopener noreferrer"&gt;Free Code Camp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion et prochaines étapes
&lt;/h2&gt;

&lt;p&gt;La pratique est la clé de l'apprentissage de la programmation Web. Commencez par de petits projets et n'hésitez pas à expérimenter. Restez curieux et à jour avec les dernières tendances et technologies comme mentionné précédement et surtout ne vous sentez pas complexés ou en retard par rapport à ceux qui ont déjà une grande expérience, ils avaient aussi commencé comme vous. Il faut des étapes, du temps, de la pratique et surtout du courage.&lt;/p&gt;




&lt;p&gt;Cet article est une introduction générale et ne couvre pas tous les détails techniques. Cependant, il fournit un cadre solide pour les débutants qui souhaitent se lancer dans la programmation Web. Bonne chance dans votre voyage de développement Web !&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Comprendre l'open source : faire sa contribution</title>
      <dc:creator>Patrice Kalwira</dc:creator>
      <pubDate>Sun, 14 Apr 2024 13:39:19 +0000</pubDate>
      <link>https://forem.com/patricekalwira/comprendre-lopen-source-faire-sa-contribution-2co4</link>
      <guid>https://forem.com/patricekalwira/comprendre-lopen-source-faire-sa-contribution-2co4</guid>
      <description>&lt;p&gt;Dans l'article précédent nous avons parlé de la généralité, de l'historique et de l'importance de l'open. Si vous n'avez pas encore consulté cet article cliquez &lt;a href="https://dev.to/patricekalwira/comprendre-lopen-source-historique-et-importance-3ce9"&gt;ici&lt;/a&gt;. &lt;br&gt;
Dans cet article nous allons parlé de la contribution dans l'open source. Que ce soit une contribution technique ou non technique, qu'on soit développeur ou non, tout le monde y trouvera son compte.&lt;br&gt;
Nous allons tout voir dans les lignes suivantes, du choix du projet à la proposition de sa contribution en passant par les types de contributions et autres.&lt;br&gt;
Dans notre petit récit, nous allons plus nous appuyer sur la façon dont on peut contribuer en utilisant &lt;a href="https://docs.github.com/" rel="noopener noreferrer"&gt;Github&lt;/a&gt; qui est beaucoup plus utilisé dans les projets collaboratifs. Aujourd'hui c'est quasi impossible de se passer de Github si on est développeur.&lt;br&gt;
L'idée derrière l'open source est de vous amusez en travaillant!&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Types de Contributions
&lt;/h4&gt;

&lt;p&gt;Les contributions à un projet open source peuvent prendre de nombreuses formes. Voici quelques-unes des principales :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code Source&lt;/strong&gt; : Contribuer du code est l'une des formes les plus courantes de participation à un projet open source mais encore faut-il savoir programmer. Cela peut inclure l'ajout de nouvelles fonctionnalités, la résolution de bogues, l'optimisation des performances, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documentation&lt;/strong&gt; : La documentation claire et concise est essentielle pour aider les utilisateurs et les autres contributeurs à comprendre le fonctionnement d'un projet. Vous pouvez contribuer en rédigeant de nouvelles sections de documentation, en corrigeant les erreurs ou en améliorant la structure existante.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tests&lt;/strong&gt; : Après la modification du code, on aura besoin de faire des tests pour avoir la garantie du bon fonctionnement du logiciel. Pour le faire on a pas besoin seulement des développeurs mais de tout le monde qui peut savoir utiliser le logiciel. Les tests sont cruciaux pour garantir la qualité et la stabilité d'un projet open source. Vous pouvez contribuer en écrivant de nouveaux tests, en améliorant les tests existants ou en corrigeant les tests cassés ou encore en suggérant un ou plusieurs tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Conception et UX&lt;/strong&gt; : Si vous avez des compétences en design et en expérience utilisateur (UX), vous pouvez contribuer en proposant de nouveaux designs, en améliorant l'interface utilisateur ou en résolvant des problèmes d'accessibilité.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Traduction&lt;/strong&gt; : Contribuer à la traduction d'un projet open source permet d'élargir sa portée et d'aider les utilisateurs qui ne parlent pas la langue utilisée par le logiciel à en bénéficier. Vous pouvez traduire la documentation, l'interface utilisateur ou les messages d'erreur dans différentes langues.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. Choix d'un projet
&lt;/h4&gt;

&lt;p&gt;Lorsque vous choisissez un projet open source auquel contribuer, voici quelques facteurs à prendre en compte :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Intérêt personnel&lt;/strong&gt; : Choisissez un projet qui vous passionne et qui correspond à vos centres d'intérêt. Vous serez plus motivé à contribuer si vous êtes enthousiaste à propos du projet. Vous pouvez choisir une tâche plus simple pour vous ou une plus complexe pour votre challenge.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Taille de la communauté&lt;/strong&gt; : Recherchez des projets avec une communauté active et accueillante. Une grande communauté offre plus d'opportunités de collaboration et de soutien. Il y a des projets qui ont de grandes communautés comme par exemple Linux, Wikipédia, ... Ne vous sentez pas intimidés par la grandeur du projet, il y a des tâches plus simples non résolues qui n'attendent que vous peut-être.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fréquence des contributions&lt;/strong&gt; : Vérifiez la fréquence des contributions au projet pour vous assurer qu'il est toujours actif et en développement. Parce qu'on peut parfois sur un projet où il n'y a pas des contributions récentes et qui peuvent avoir des technologies déjà obsolètes. C'est qui constitue un véritable casse-tête.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. Configuration de l'environnement de développement
&lt;/h4&gt;

&lt;p&gt;Avant de commencer à contribuer à un projet open source, vous devez configurer votre environnement de développement. Cela peut inclure :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Installation des Outils&lt;/strong&gt; : Installez les outils de développement nécessaires, tels que l'éditeur de code, le gestionnaire de version (comme Git) et les dépendances du projet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Clonage du Répertoire&lt;/strong&gt; : Clonez le répertoire du projet depuis le dépôt Git afin de pouvoir travailler localement sur votre machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Configuration des Paramètres&lt;/strong&gt; : Configurez les paramètres du projet selon les instructions fournies dans la documentation, comme les clés d'API ou les variables d'environnement.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Il est vrai que ces explications sont beaucoup oriéntées développeurs mais pour les contributions non techniques il y a aussi une préparation nécessaire selon son type de contribution.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Trouver des tâches à accomplir
&lt;/h4&gt;

&lt;p&gt;Les projets open source sont subdivisés en tâches, ce qui facilite la maintenance et l'évolution du logiciel. Pour trouver des tâches à accomplir dans un projet open source, vous pouvez explorer différentes ressources :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tableaux de Bord des Problèmes&lt;/strong&gt; : Consultez les tableaux de bord des problèmes (issues) sur la plateforme de gestion des problèmes (comme GitHub) pour trouver des problèmes ouverts qui nécessitent une résolution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Forums de Discussion&lt;/strong&gt; : Pour de grands projets il y a souvent des groupes de discussion pour l'échange d'idées concernant les tâches. Rejoignez les forums de discussion ou les listes de diffusion du projet pour suivre les discussions et les demandes d'aide de la communauté.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Étiquettes "Bonne Première Contribution"&lt;/strong&gt; : Cherchez les étiquettes "bonne première contribution" ou "easy fix" qui sont souvent utilisées pour marquer les problèmes simples et accessibles aux nouveaux contributeurs. Cela permet aux débutants de travailler sur une tâche moins complexe ; ce qui donnera confiance pour continuer de contribuer.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  5. Faire une contribution
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrj6g4nlp1bprm4rpc5n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrj6g4nlp1bprm4rpc5n.jpg" alt="Image description" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Après avoir bien ciblé sa tâche, il faudra passer à l'étape suivante qui consiste à faire sa contribution. Lorsque vous êtes prêt à faire une contribution, suivez ces étapes :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cloner le projet&lt;/strong&gt; : Cette étape  consiste à copier le projet localement sur son ordinateur pour qu'on soit en mesure de faire des modifications sans abimer le code source du projet. Ainsi, toutes les modifications faites n'impacteront pas encore le projet mais fonctionneront seulement en local (suu son ordinateur).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Modifier le code&lt;/strong&gt; : Faites les modifications nécessaires localeent en suivant les instructions fournies dans la tâche que vous avez choisie.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tester les modifications&lt;/strong&gt; : Testez vos modifications toujours localement pour vous assurer qu'elles fonctionnent correctement et qu'elles ne cassent pas d'autres fonctionnalités. Parce que ça ne servirait à rien de résoudre un problème en créant beaucoup d'autres.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Créer une demande d'extraction (Pull Request)&lt;/strong&gt; : Une fois que vous êtes satisfait de vos modifications, créez une demande d'extraction pour soumettre vos changements au projet.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  6. Collaboration et communication
&lt;/h4&gt;

&lt;p&gt;La collaboration et la communication sont essentielles pour travailler avec succès sur un projet et surtout sur un projet open source car c'est plus décentralisé :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Poser des questions&lt;/strong&gt; : N'hésitez pas à poser des questions si vous rencontrez des difficultés ou si vous avez besoin d'aide pour comprendre une partie du code. Soyez courtois, précis et concis et surtout posez une question quand vous jugez que c'est nécessaire (après avoir fait des recherches sans qu'on ne trouve de réponse).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fournir des commentaires&lt;/strong&gt; : Si vous passez en revue les contributions des autres, assurez-vous de fournir des commentaires constructifs et utiles pour aider les autres contributeurs à améliorer leur travail.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Participer aux discussions&lt;/strong&gt; : Participez aux discussions sur les forums de discussion ou les canaux de communication du projet pour partager des idées, discuter des problèmes et contribuer à la prise de décision. &lt;br&gt;
La communication reviendra toujours tout au long du processus de contribution.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  7. Étiquette et Bonnes Pratiques
&lt;/h4&gt;

&lt;p&gt;Lors de la contribution à un projet open source, il est important de suivre les directives de contribution et de respecter l'étiquette du projet :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lire les directives de contribution&lt;/strong&gt; : Avant de commencer à contribuer, assurez-vous de lire les directives de contribution du projet pour comprendre les attentes et les normes de la communauté.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Utiliser les conventions de codage&lt;/strong&gt; : Respectez les conventions de codage et de style du projet pour maintenir la cohérence et la lisibilité du code. Il y a des projets où on ne spécifie pas les conventions de codage mais en lisant le code des autres vous pouvez vite avoir une idée de la façon de coder sur le projet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Identifier les problèmes existants&lt;/strong&gt; : Avant de soumettre une nouvelle demande d'extraction, vérifiez qu'il n'existe pas déjà de problèmes ou de demandes similaires ouverts dans le projet. Il ne sert à rien de résoudre un problème déjà résolu. D'où quand vous commencez à travailler sur un projet, notifiez que vous travaillez sur la tâche choisie pour que les autres se concentrent sur d'autres tâches &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  8. Gérer les retours et les contributions
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj44m8199lqxs1htu8qin.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj44m8199lqxs1htu8qin.jpeg" alt="Image description" width="600" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Une fois que vous avez soumis votre contribution, vous pouvez recevoir des retours et des contributions de la part d'autres membres de la communauté :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Répondre aux commentaires&lt;/strong&gt; : Soyez prêt à répondre aux commentaires et aux suggestions des autres membres de la communauté et à apporter des modifications à votre contribution en conséquence.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Réviser les contributions&lt;/strong&gt; : Si vous passez en revue les contributions des autres, assurez-vous de les examiner attentivement et de fournir des commentaires constructifs pour aider les contributeurs à améliorer leur travail.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9. Avantages de la contribution
&lt;/h4&gt;

&lt;p&gt;La contribution à des projets open source présente de nombreux avantages, tant sur le plan personnel que professionnel. Voici quelques uns :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Acquisition de nouvelles compétences&lt;/strong&gt; : Contribuer à des projets open source vous permet d'acquérir de nouvelles compétences techniques et professionnelles en travaillant sur des problèmes concrets parce que vous allez travailler sûrement avec les personnes avec une grande expérience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Visibilité professionnelle&lt;/strong&gt; : Les contributions à des projets open source peuvent vous aider à établir votre réputation et à accroître votre visibilité dans la communauté, ce qui peut être bénéfique pour votre carrière. C'est très conseillé surtout pour le débutant en programmation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Satisfaction Personnelle&lt;/strong&gt; : La contribution à des projets open source peut être une expérience gratifiante sur le plan personnel, car vous contribuez à des projets qui ont un impact réel sur les utilisateurs et la communauté. Cela faira croître votre estime.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10. Ressources Supplémentaires
&lt;/h4&gt;

&lt;p&gt;En plus des conseils fournis dans cet article, voici quelques ressources supplémentaires pour vous aider dans votre parcours de contribution :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Guides de Contribution&lt;/strong&gt; : Consultez les guides de contribution spécifiques fournis par le projet pour obtenir des instructions détaillées sur la façon de contribuer efficacement.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Forums de Discussion&lt;/strong&gt; : Rejoignez les forums de discussion ou les canaux de communication du projet pour poser des questions, discuter des problèmes et interagir avec la communauté.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Événements Communautaires&lt;/strong&gt; : Participez à des événements communautaires tels que des hackathons, des conférences et des rencontres locales pour rencontrer d'autres contributeurs et apprendre de nouvelles compétences.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En conclusion, la contribution à des projets open source est une expérience enrichissante qui peut avoir un impact significatif sur vous et sur la communauté dans son ensemble. Que vous soyez un développeur expérimenté ou un novice, il existe des moyens pour chacun de contribuer et de faire une différence. Alors n'hésitez pas à vous lancer et à contribuer à un projet open source dès aujourd'hui !&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>community</category>
      <category>learning</category>
    </item>
    <item>
      <title>Comprendre l'open source : historique et importance</title>
      <dc:creator>Patrice Kalwira</dc:creator>
      <pubDate>Mon, 01 Apr 2024 20:05:02 +0000</pubDate>
      <link>https://forem.com/patricekalwira/comprendre-lopen-source-historique-et-importance-3ce9</link>
      <guid>https://forem.com/patricekalwira/comprendre-lopen-source-historique-et-importance-3ce9</guid>
      <description>&lt;p&gt;Il est difficile pour un contemporain de notre époque de ne jamais avoir entendu parler du terme &lt;em&gt;open source&lt;/em&gt;. &lt;br&gt;
Aujourd'hui il est impensable et presqu'impossible à l'humain de vivre sans ses logiciels parce qu'ils ont déjà envahi tous nos secteurs d'activité. Vous venez de trouver un nouvel emploi ? Vous aurez probablement besoin de la suite Microsoft Office ou son équivalent ; vous vous ennuyez ? Facile dites-vous, vous ouvrez TikTok avec ses millions de vidéos prêtes à vous détendre. Tiens, hier j'ai vu quelqu'un qui avait un pacemaker, ...&lt;br&gt;
Avec tous ses exemples, nous voyons la force de la technologie et les logiciels qui la font fonctionner.&lt;br&gt;
Revenons à notre terme &lt;em&gt;open source&lt;/em&gt;, et essayons d'en savoir un peu plus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Historique&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Avec l'avenement des orinateurs dans le années 1970, les développeurs étaient obligeaient d'écrire le code qui sera propre à un seul ordinateur, sans standardisation, et sans que cela soit vraiment rentable.&lt;br&gt;
C'est en 1981 que le géant de l'informatique IBM présente le premier ordinateur grand public et année après année, d'autres fabriquants ont adoptés le modèle de l'ordianteur grand public en délaissant l'ordinateur fait sur mesure. &lt;br&gt;
C'était une aubaine pour les développeurs qui avaient alors la possibilité de créer des logiciels qui pouvaient fonctionner sur plusieurs ordinateurs plus ou moins de la même façon.&lt;br&gt;
C'est dans cette optique que le géant bleu (IBM) engagea Microsoft, une jeune société, pour écrire le système d'exploitation pour son nouvel ordinateur. De ce contrat nacquit le système MS-DOS, lancêtre de Microsoft. Ce logiciel avait une licence propriétaire, cela veut dire que personne n'avait le droit de copier, de modifier ou encore de restribuer ce logiciel. &lt;br&gt;
D'autres entreprises, à cette même époque, fabriquaient aussi leurs logiciels avec une licence propriétaire. Même jusqu'aujourd'hui il existe plusieurs logiciels propriétaires très chers et pas accessibles à tous à cause du prix.&lt;br&gt;
Les voix commencèrent alors à s'entendre dans la communauté des développeurs, où certains voulaient qu'il y ait des logiciels tout aussi performants mais accessibles à tous.&lt;br&gt;
C'est dans ce contexte qu'au début des années 80, Richard Stallman, un grand nom de l'informatique, crée GNU, un système d’exploitation libre, et de cela est né un mouvement dit &lt;em&gt;« mouvement du logiciel libre »&lt;/em&gt;. Plus tard, en 1985, Stallman crée la &lt;em&gt;Free Software Foundation&lt;/em&gt; dans le but de soutenir GNU ainsi que d’autres projets de logiciels libres.&lt;br&gt;
La Free Software Foundation définit libre un logiciel « qui donne à l’utilisateur la liberté de le partager,  de l’étudier&lt;br&gt;
et de le modifier »&lt;br&gt;
Peu de temps après, Eric Raymond et Bruce Perens créerent le &lt;em&gt;mouvement de l'open source&lt;/em&gt; en s'inspirant du terme &lt;em&gt;open source&lt;/em&gt; proposé par Christine Peterson.&lt;br&gt;
Sur le site de &lt;a href="https://www.redhat.com/fr/topics/open-source/what-is-open-source" rel="noopener noreferrer"&gt;Redhat&lt;/a&gt;, on peut lire ce qui suit par rapport à l'open source : À l'origine, l'expression « Open Source » faisait référence aux logiciels Open Source. Un logiciel Open Source est un code conçu pour être accessible au public : n'importe qui peut voir, modifier et distribuer le code à sa convenance.&lt;/p&gt;

&lt;p&gt;Ce type de logiciel est développé de manière collaborative et décentralisée, par une communauté, et repose sur l'examen par les pairs. Un logiciel Open Source est souvent moins cher, plus flexible et profite d'une longévité supérieure par rapport à ses équivalents propriétaires, car il est développé par des communautés et non par une entreprise ou un auteur.&lt;br&gt;
Nous voyons que les mêmes concepts reviennent en parlant d'un logiciel libre et d'un logiciel open source au point où aujourd'hui on ne sait plus trop la différence.&lt;br&gt;
On va noter que le Mouvement du logiciel libre insiste plus sur la notion de liberté d'utilisation du logiciel tandis que le Mouvement open source insiste beaucoup plus sur le travail en communauté du logiciel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Utilisation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgyaacjces746dr8w07p.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgyaacjces746dr8w07p.jpg" alt="Image description" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aujourd'hui beaucoup des technologies dans le numérique fonctionnent avec du code open source. Que ce soit dans les entreprises privées que publiques, tout le monde se sert aujourd'hui de l'open source.&lt;br&gt;
Dans le livre "Sur quoi réposent nos infrastructures numériques" l'auteur compare le logiciel open source aux routes et aux ponts que tout le monde opeut emprunter sans que cela ne lui appartienne. Et donc le logiciel open source est un bien public que nous devons chérir et entretenir.&lt;br&gt;
Aujourd'hui, même les grandes entreprises du secteur numérique ont beaucoup de leurs technologies qui reposent sur du open source.&lt;br&gt;
Citons par exemple Apache Hadoop qui facilite la création d'applications distribuées. Hadhoop est une collection des logiciels open source et est utilisé par des entreprises comme Google, Facebook, Amazon, eBay, ...&lt;br&gt;
Ou encore TLS anciennement SSL qui est une technologie standard de sécurisation des connexions Internet par le chiffrement des données transitant entre un navigateur et un site web (ou entre serveurs). Cette technologie est largement utilisée par les sites qui impliquent un paiement en ligne.&lt;br&gt;
Pour les petites et moyennes entreprises, les entreprises publiques ou encore des startups, il est plus facile de s'appuyer sur des solutions open source que celles qui sont payantes à cause de leur grand coût. Mais aussi parce que ces structures peuvent s'approprier un projet open source et l'adapter selon leurs besoins.&lt;br&gt;
Presque tous les logiciels open source sont aussi gratuits.&lt;/p&gt;

&lt;p&gt;Voici quelques projets open source célèbres, classés par catégorie :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Systèmes d'exploitation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Linux :&lt;/strong&gt; système d'exploitation libre et open source utilisé par des millions de personnes et d'entreprises.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Android :&lt;/strong&gt; c'est un système d'exploitation mobile basé sur Linux, utilisé par la majorité des smartphones dans le monde.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Serveurs web :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Apache :&lt;/strong&gt; serveur web le plus populaire au monde, utilisé par des sites web comme Wikipedia et Google.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Nginx :&lt;/strong&gt; serveur web connu pour sa légèreté et sa performance, utilisé par des sites web comme Netflix et Airbnb.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Bases de données :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;MySQL :&lt;/strong&gt; base de données open source largement utilisée pour le web et les applications mobiles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PostgreSQL :&lt;/strong&gt; base de données open source puissante et flexible, utilisée par des entreprises comme Spotify et Instagram.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Langages de programmation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python :&lt;/strong&gt; langage de programmation polyvalent et facile à apprendre, utilisé pour le développement web, l'analyse de données et surtout l'intelligence artificielle.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;JavaScript :&lt;/strong&gt; langage de programmation côté client essentiel pour le développement web moderne.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Java :&lt;/strong&gt; langage de programmation robuste et portable utilisé pour une grande variété d'applications.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Outils de développement :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Git :&lt;/strong&gt; c'est un système de contrôle de version distribué largement utilisé pour le développement logiciel.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub :&lt;/strong&gt; c'est une plateforme d'hébergement de code source et de collaboration pour les projets open source.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Logiciels bureautiques :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;LibreOffice :&lt;/strong&gt; c'est une suite bureautique open source compatible avec Microsoft Office.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;OpenOffice :&lt;/strong&gt; c'est une suite bureautique open source gratuite et multi-plateforme.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La liste est tellement longue, nous n'avons donner comme exemples qu'une infime partie. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Avantages de l'open source&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Comme tous les autres biens publics, les logiciels ont plusieurs avantages que nous allons essayer d'énumérer dans les lignes suivantes :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;a. Pour les développeurs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pour un développeur, le code open source a plusieurs avantages : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Facilité d'apprentissage et de développement :&lt;/strong&gt; Imaginons un programmeur qui veut concevoir son site web sans recourir aux langages de programmation, frameworks, gestionnaires de base de données, ... qui sont open source. Il serait obligé chaque fois à payer des licences d'exploitation coûteuses ou commencer par développer lui-même tout ce dont il aura besoin, ce qui n'est pas facile et il y perdrait trop de  temps. Avec l'open source ce problème est résolu et pour quelqu'un qui est en apprentissage la formation sera facilitée car il aura déjà beaucoup de ressources qui lui seront déjà données.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Facilité de partager son idée :&lt;/strong&gt; C'est plus facile de partager son code quand il est open source que s'il est publié sous une licence propriétaire. Une communauté peut se créer autour du projet et faire de lui un grand projet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amémioration des compétences :&lt;/strong&gt; Pour un développeur contribuer au code open source est une opportunité d'améliorer ses compétences et de participer à un travail collaboratif. C'est aussi un bon point pour son C.V.&lt;br&gt;
Il existe beaucoup d'autres avantages mais on ne peut pas tout citer.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;b. Pour les entreprises&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Réduction des coûts :&lt;/strong&gt; Nous avons vu dans les lignes précédentes que développer ses propres logiciels pour toutes les tâches de l'entreprise implique un grand coût, ce qui n'est pas trop pratique. autant mieux utiliser ce qui existe déjà sous une licence open source. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Innovation :&lt;/strong&gt; Il est plus facile avec du code open source d'adapter le logiciel à ses fins en y ajoutant plus ou moins d'élements. Ce qui n'est pas facile avec un code sous licence propriétaire.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Agilité :&lt;/strong&gt; C'est plus facile de travailler quand on a la main mise sur le code qui compose les logiciels utilisés au sein d'une entreprise.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;c. Pour tous les utilisateurs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accessibilité :&lt;/strong&gt; Comme nous l'avons souligné un peu plus haut, la quasi totalité des logiciels open source sont gratuits, quoi de mieux pour les utilisateurs ? Avec le open source, l'utilisateur profite des mêmes possibilités, voir plus dans certains cas qu'avec celui qui utilise les logiciels propriétaires.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Education :&lt;/strong&gt; C'est plus facile pour les écoles et les universités de s'appuyer sur des logiciels open source. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Avenir de l'open source&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Depuis l'avénement de l'open source, le mouvement ne cesse de grandir en attirant de plus en plus de développeurs et en suscitant l'attention des grandes entreprises quant à l'avancement de l'open source mais aussi en leur mettant devant leur responsabilité quant à leur utilisation du code open source.&lt;br&gt;
Le monde de l'open source est aussi complexe par sa gestion car c'est une entité très décentralisée que par son financement. Certains projets open source bénéficient aujourd'hui des importants financements par des levées de fonds ou des financements venant des grandes entreprises comme Linux qui reçoit le financement de nombreuses entreprises.&lt;br&gt;
L'open source ne s'est jamais porté mieux qu'aujourd'hui et c'est difficile de concevoir un monde sans open source.&lt;br&gt;
C'est une affaire publique et cela devrait nous concerner tous, utilisateurs de la technologie car notre présent et notre avenir en dépendent. Que notre contribution soit technique ou non technique, tout le monde y gagnerait.&lt;br&gt;
Dans le prochain article je vais parler de la contribution dans l'open source.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>community</category>
      <category>learning</category>
    </item>
    <item>
      <title>Comment améliorer l’interactivité de son site web grâce à l’animation et à la transition ?</title>
      <dc:creator>Patrice Kalwira</dc:creator>
      <pubDate>Sat, 29 Jul 2023 21:47:04 +0000</pubDate>
      <link>https://forem.com/kadea-academy/comment-ameliorer-linteractivite-de-son-site-web-grace-a-lanimation-et-a-la-transition--4a18</link>
      <guid>https://forem.com/kadea-academy/comment-ameliorer-linteractivite-de-son-site-web-grace-a-lanimation-et-a-la-transition--4a18</guid>
      <description>&lt;p&gt;Depuis l’apparition de l’internet tous les webmasters essaient de trouver de nouvelles solutions pour améliorer l’expérience des utilisateurs afin de les retenir le plus longtemps possible sur leurs sites web.&lt;br&gt;
C’est pour cela qu’ils sont à l’affût de la moindre évolution technologique afin d’améliorer l’expérience utilisateur. &lt;br&gt;
C’est dans ce cadre que nous allons présenter l’une des propriétés CSS qui aident à améliorer l’interactivité entre le système et l’utilisateur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alors comment pouvons-nous comprendre l’animation en CSS ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;L’animation en CSS consiste à donner de la réactivité à un élément inerte dans son site web, c'est un peu comme lui donner une vie, passant d'un état statique à un état dynamique. &lt;br&gt;
C’est là que les transitions interviennent pour contrôler la vitesse et le temps d’exécution d’une animation appliquée à une ou plusieurs propriétés de son site web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Et c'est quoi une transition?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Les transitions CSS permettent de contrôler la vitesse d'animation lorsque les propriétés CSS sont modifiées. Plutôt que le changement soit immédiat, on peut l'étaler sur une certaine période. (Source : &lt;a href="https://developer.mozilla.org/fr/docs/Web/CSS/CSS_transitions/Using_CSS_transitions" rel="noopener noreferrer"&gt;MDN&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Il y a deux moyens de créer des animations en CSS : les transitions et les keyframes.&lt;br&gt;
Les transitions sont le moyen le plus simple et le plus facile à mettre en place pour créer des animations mais elles sont limitées, contrairement aux keyframes qui sont complexes mais qui permettent des animations beaucoup plus fun et bien plus élaborées.&lt;br&gt;
Pour que ça ne soit pas très complexe, dans ce post nous allons d’abord utiliser seulement la transition et peut-être les keyframes dans le post suivant.&lt;/p&gt;

&lt;p&gt;Pour créer une animation à l'aide d'une transition, on aura besoin de plusieurs informations comme :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Une propriété CSS à modifier ;&lt;/li&gt;
&lt;li&gt;Une valeur initiale de cette propriété ;&lt;/li&gt;
&lt;li&gt;Une valeur finale que prendra cette propriété ;&lt;/li&gt;
&lt;li&gt;Une durée d’animation exprimée en unité de temps ;&lt;/li&gt;
&lt;li&gt;Un évènement pour déclencher votre transition.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On va y aller par un exemple pour illustrer la petite théorie ci-haut :&lt;/p&gt;

&lt;p&gt;Créons d'abord deux boutons en HTML.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/css"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"style.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Animations et transitions&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Exemples avec les boutons&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"buttons-exercise"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Bouton&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Bouton&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Bouton&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Appliquons ensuite du style à ces boutons avec CSS.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.btn1&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#48D1CC&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#242424&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;30px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.btn2&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#e67e22&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#242424&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;30px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Regardons un peu l'affichage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5xi74br5wp1j8zyzp8c.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5xi74br5wp1j8zyzp8c.JPG" alt="Image description" width="623" height="136"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vous remarquerez que le bouton central est en orange comme défini en CSS, il a été défini avec une couleur différente des autres car c'est le bouton qui va nous aider dans notre série des transitions. &lt;/p&gt;

&lt;p&gt;Vous vous souvenez que nous avons expliqué que pour créer une animation il fallait avoir plusieurs informations?&lt;br&gt;
Dans notre cas nous avons déjà un élément à modifier (notre bouton central avec comme valeur btn2) et nous connaissons déjà sa valeur initiale avec tous les styles que nous lui avons appliqués avec CSS. &lt;br&gt;
Maintenant nous allons mettre en application d'autres éléments pour qu'on puisse regarder l'effet de l'animation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;cursor&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;pointer&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="nt"&gt;transition-property&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;transform&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="nt"&gt;transition-duration&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;200&lt;/span&gt;&lt;span class="nt"&gt;ms&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;scale&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1.15&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nous avons défini la durée de notre transition par rapport au survol de la souris au dessus du bouton par l'utilisateur. Le bouton va changer de couleur en rouge avec notre code &lt;code&gt;background: blue&lt;/code&gt;, le bouton va grossir de quelques millimètres avec le code &lt;code&gt;transform: scale(1.15)&lt;/code&gt; car par défaut le scale est défini à 1 et enfin, après le survol de la souris, le bouton va mettre 200 millisecondes avant de revenir à son état initial.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjw0r036ifjmgyotobj17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjw0r036ifjmgyotobj17.png" alt="Image description" width="621" height="130"&gt;&lt;/a&gt;&lt;em&gt;Résultat après avoir appliquer la transformation à notre bouton&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Nous avons utilisé toutes nos cinq méthodes en utilisant pour le deuxième exemple un évènement qui déclenche notre animation. Dans notre cas c'était avec l'évènement du survol de la souris avec le mot clé &lt;code&gt;:hover&lt;/code&gt; qui est une pseudoclasse (Les pseudoclasses? Mais ce n'est pas ça notre sujet😉). Finalement l'état initial était différent de l'état final, au survol le bouton est devenu plus grand que les autres et a changé de couleur.&lt;/p&gt;

&lt;p&gt;Parlons un peu des pseudoclasses car c'est elle qui nous permettrons dans la plus part des cas d'appliquer une animation à un élément de notre page web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C'est quoi une pseudoclasse?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Une pseudoclasse peut être définie comme une condition qui sera lis par le navigateur pour produire, déclencher ou encore cesser un événement sur notre site. C'est un peu comme le if/else.&lt;br&gt;
Comme pour notre cas nous avons donné une condition de transformer un élément à l'aide de la pseudoclasse &lt;code&gt;:hover&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Il y a plusieurs pseudoclasses autres que &lt;code&gt;:hover&lt;/code&gt;. Nous pouvons citer par exemple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;:active&lt;/code&gt; : activé quand l'utilisateur clique sur un élément. Souvent appliqué aux boutons et aux liens&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:focus&lt;/code&gt; : quand un élément est sélectionné ;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:cheked&lt;/code&gt; : quand un élément est sélectionné dans un checkbox ou à l'aide d'un bouton radio ;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:valid&lt;/code&gt; : quand le input de l'utilisateur correspond au type de données voulu ;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:invalid&lt;/code&gt; : quand le input de l'utilisateur ne correspond pas au type de données voulu ;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Comme on vient de le voir avec les pseudoclasses, il y a plusieurs cas dans lesquels ou peut utiliser l'animation sur un site web et cela de plusieurs manières. Dans un formulaire, sur un bouton, sur un questionnaire, ...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmaupujsowaqbxrd4wwyx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmaupujsowaqbxrd4wwyx.gif" alt="Image description" width="498" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;L'animation est un outil très puissant pour créer une réactivité sur son site et ainsi améliorer l'expérience utilisateur.&lt;/p&gt;

&lt;p&gt;Nous n'avons parler que d'une petite partie de cet outil puissant, mais il y a encore d'autres moyens qui nous permettent de créer des animations uniques, jolies et complexes, qui ressemblent parfois à des œuvres d'art.&lt;/p&gt;

&lt;p&gt;Il ne faut pas aussi abuser avec plus d'animations sur son site, il faut seulement le faire quand c'est nécessaire.&lt;/p&gt;

&lt;p&gt;Pour apprendre plus sur la transformation et l'animation, il y a une grande documentation sur le web :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://openclassrooms.com/fr/courses/5919246-creez-des-animations-css-modernes/6340912-decouvrez-les-animations-web" rel="noopener noreferrer"&gt;Openclassroom&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3schools.com/css/css3_animations.asp" rel="noopener noreferrer"&gt;W3Schools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/fr/docs/Web/CSS/CSS_animations/Using_CSS_animations" rel="noopener noreferrer"&gt;MDN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>web</category>
      <category>css</category>
      <category>frontend</category>
      <category>animation</category>
    </item>
  </channel>
</rss>
