Article ancien : Cet article remonte à la création du site web. Certaines informations sont obsolètes. En effet, mon site web n'est plus hébergé sur mon Raspberry Pi, dont les aléas peuvent provoquer des coupures de service, mais sur un hébergement web dédié chez OVH.

### Introduction

J'ai longtemps codé en C++ afin de faire des jeux-vidéo. Mais après avoir gagné un Raspberry Pi lors d'un hackaton, je trouvais intéressant d'apprendre et d'appliquer quelques technologies du web afin de les appliquer à un projet concret.

Afin de m'entraîner un peu au développement et au déploiement d'un site web, j'ai donc décidé de réaliser mon propre site Internet.

De plus, c'est toujours utile d'avoir un site Internet de présentation afin de se faire connaître par des employeurs, collègues et connaissances. Et c'est quand même plus crédible pour un développeur informatique de le réaliser lui-même ...

J'ai essayé de rendre cet article concis et accessible à tous publics. Peu importe vos connaissances en informatique, vous avez sans doute la capacité de le comprendre. N'hésitez donc pas à continuer votre lecture ...

C'est parti, voici un petit récapitulatif de ce qui se cache derrière ce que vous avez actuellement sur votre écran.

### Bootstrap : une affaire de style

Ce site a été codé en HTML. Pour voir le code source, il vous suffit d'utiliser la combinaison de touches `Ctrl`+`u` sous le navigateur Firefox. Un simple éditeur de texte suffit pour arriver à ce résultat, même s'il en existe des perfectionnés pour faciliter certaines tâches. J'ai d'abord utilisé WebStorm, puis SublimeText, plus léger, puis Vim, encore plus léger.

Afin de mettre un peu de style à l'information brute (celle contenue dans le HTML), j'ai utilisé un framework CSS qui s'appelle Bootstrap. Cette technologie a été développée par Twitter, et est parfois aussi appelé en conséquence Twitter Bootstrap. N'hésitez pas à faire un tour sur le site officiel de Bootstrap pour savoir de quoi il retourne.

Pour les néophytes, vous devez savoir que CSS est un langage qui permet de définir des feuilles de style. Cela permet de mettre en forme tout ce que vous trouvez sur cette page : la barre de navigation horizontale verte, la police, la mise en page, les barres vertes sous les titres ...

Afin de me faciliter la tâche, j'ai utilisé un template CSS. C'est un ensemble de feuilles de style déjà écrites qui me permet de ne pas tout refaire de zéro. La barre de navigation, par exemple, existait déjà sous cette forme. Je n'ai fait que modifier des détails, comme la couleur et les titres des liens.

Il faut savoir que Bootstrap est un framework très connu, et donc utilisé dans de nombreux sites web. À cause de cette mode, et malgré la personnalisation assurée par les développeurs, les sites se ressemblent (forme des boutons, des onglets). On peut donc critiquer le fait que je l'utilise : développer son propre site, c'est devoir se démarquer et montrer son originalité. Mais c'est peut-être aussi se tenir au courant des technologies actuelles et de les mettre en pratique ...

Si vous voulez voir à quoi ressemble le template que j'ai utilisé comme base de mon travail, il est disponible sur le site officiel de Bootstrap : Starter Template by Bootstrap.

### Raspberry Pi : un petit ordinateur

C'est bien de coder son site. Mais pour qu'il soit visible par tous les utilsateurs d'Internet, il faut un serveur web ...

Basiquement, un serveur web est un ordinateur tout à fait classique, connecté à Internet, qui distribue les pages Internet aux clients qui les demandent. Le client, c'est vous. Et la page Internet, c'est l'ensemble du code source qui décrit cette page, comme je l'ai expliqué dans la section précédente. Le préfixe `http` dans l'URL définit le protocole qu'utilise votre navigateur (par exemple Firefox, Edge ou Safari) pour discuter avec mon ordinateur.

Alors oui, je dis "mon ordinateur", car le serveur qui vient de vous donner cette page web est en fait un micro ordinateur branché à ma box Internet dans ma cuisine. C'est un Raspberry Pi 3, que j'ai gagné lors d'un concours de programmation fin 2017.

Pour ceux qui se demandent à quoi peut ressembler une telle machine, je vous laisse visiter le site du vendeur officiel. En fait, c'est tout simplement une unité centrale, comme celle que vous pouvez avoir dans votre bureau, mais en plus petit. Beaucoup plus petit. Mais tout autant fonctionnel.

Après, il a fallu configurer l'appareil. Le système d'exploitation est Debian, une distribution de Linux. Pour les néophites, un système d'exploitation est le programme principal qui vous permet d'utiliser votre ordinateur personnel. Debian est à Linux ce que Windows 10 est à Microsoft Windows (ceci est une approximation).

Enfin, il suffit d'installer un serveur HTTP (le programme qui répondra à votre navigateur). Ici j'ai utilisé Apache 2, un programme libre très fonctionnel.

### OVH : mon nom de domaine

Alors, récapitulons.

J'ai un code source réalisé (entre autres) avec Bootstrap.

J'ai un serveur capable de répondre aux clients pour distribuer les pages web.

Mais l'histoire n'est pas finie, car Internet est un réseau mondial. Il est donc très vaste. Il y aurait plus de 200 millions de serveurs comme celui que je viens de vous présenter qui y sont connectés. (Selon Wikipedia).

Mais alors, comment votre navigateur fait-il pour retrouver mon site dans cette immense toile ?

Alors je ne vais pas vous faire un cours sur le protocole TCP/IP, là n'est pas le propos. Dites vous simplement qu'avec une adresse IP (comme `109.9.177.75` par exemple) votre navigateur web est capable de retrouver mon serveur. Voyez ça comme une adresse postale pour une maison.

Alors toutes les box, y compris celle qui est chez vous (si vous en avez une), possèdent une adresse IP. Même si cela est possible, taper `http://188.165.53.185/index.html` à la place de `http://www.jovian-hersemeule.eu/index.html` fonctionnerait en théorie mais serait fastidieux. (En pratique cela ne fonctionnera pas pour des raisons de certificat et de partage des ressources).

J'ai donc, pour votre confort, acheté le nom de domaine `jovian-hersemeule.eu` (pour quelques euros) sur le site OVH. En plus de raisons esthétiques, un nom de domaine est utilisé pour des raisons pratiques. En effet, l'adresse IP de mon serveur peut être ammenée à changer (si la box est redémarrée, ou si je déménage par exemple). Je peux configurer à ma guise l'adresse IP cible de mon nom de domaine. Ce genre de détails techniques est donc rendu transparent pour l'utilisateur.

### ICONS8 : des icônes colorées

Vous avez sans doute déjà remarqué que j'utilise de nombreuses icônes sur mon site. J'ai en effet recours à Icons8 qui regorge d'icônes en tous genres, ce qui est très pratique pour illustrer un site web.

J'utilise pour l'instant ce service gratuitement. Cela limite son utilisation à de petites résolutions et ne permet pas d'avoir des images vectorielles. Peut-être aurai-je recours à la solution premium plus tard, afin d'améliorer le contenu proposé sur ce site et pour soutenir les développeurs d'Icons8.

Voici la liste des icônes utilisées sur ce site.

### Conclusion

Voilà, la petite description de ce site Internet touche à sa fin. J'espère que cela a éclairci ce qui se cache derrière les lignes que vous êtes en train de lire. Peut-être cela vous a même aidé dans votre compréhension du web ...

Si vous aussi, vous êtes tentés par le développement de votre site, et que vous vous y connaissez très peu dans le domaine, je vous mets en référence ce tutoriel OpenClassrooms : Apprenez à créer votre site web avec HTML5 et CSS3. Je l'ai moi-même consulté pour réapprendre les bases. Un cours sur Bootstrap y est aussi disponible.

Merci d'avoir lu cet article jusqu'au bout, et n'hésitez pas à jeter un oeil sur les autres projets ou autres pages du site.

Bonne visite !