Passer au contenu

Portfolio de Heini Fagerlund

Développeuse d'applications web full stack spécialisée dans l'accessibilité web

Projets open source

Dockerisation d'une application Erlang

Publié le | Mis à jour le

Application d'Erlang/OTP, Emakefile, EUnit

Ce projet a commencé comme un programme simple 'hello world' qui illustre le fonctionnement de la langue Erlang, organisé plus tard au structure d'Erlang/OTP utilisant un fichier Emakefile pour compiler des «sources» et pour permettre la séparation des fichiers sources, de test, et '.beam'. EUnit a également été ajouté pour réaliser des tests unitaires.

Docker, Docker Compose, Conteneurs Dev

Après l'installation de Docker, on peut connecter directement au shell (interactif) d'un conteneur, au lieu d'un shell d'Erlang, pour exécuter la compilation. Le Dockerfile (1.) a compilé un programme minimal en langage Erlang qui produit un fichier BEAM pour l'exécution sur la VM Erlang, et alors (2.) a exécuté le programme séquentiel Erlang comme un script commun puis quitté.

Docker Compose a simplifié la façon dont le programme a été lancé. Les conteneurs de développement (conteneurs Dev) — qu'on peut utiliser dans ou sans VSCode — sont une autre couche (optionnelle) pour garantir la reproductibilité environnementale.

Rebar3

Dans la prochaine itération (v0.2.0), Rebar3 — un outil de compilation et un gestionnaire de paquets pour l'Erlang — a été utilisé pour générer automatiquement la structure d'application (dans un sous-répertoire, puis déplacé à la racine du projet). Notez: Rebar3 ne remplace le système de fichiers OTP — au contraire, cela vous permettez de créer vos applications conformes aux spécifications d'Erlang/OTP plus facilement. La modification de l'exemple 'hello.erl' a aussi été effectuée.

Architecture de composants

Publié le

Le projet elections-carousel-component comprend une collection des «composants» qui reçoit des données externes des résultats des élections importées via l'API et les affiche sous la forme d'un carrousel.

Capture d'écran du projet elections-carousel-component
Capture d'écran du projet elections-carousel-component

La hiérarchie des composants est illustrée à la Figure 1, qui présente l'ensemble des sept types (huit types, si le composant «ErrorBoundary» est pris en compte dans le montant total).

Figure 1: Hiérarchie des composants React
Figure 1: elections-carousel-component: La hiérarchie des composants

Tous les composants ont été écrits en React (une approche simple pour ce projet de démonstration, pas utilisant Flux ou Redux), et échangent entre eux des données, comme montré ci-dessous:

Communication des composants via le composant parent React
Figure 2: le flux de données au sein d'une application React

Le code source entier est fourni sur GitHub.

docSkimmer thème pour MkDocs

Publié le | Mis à jour le

Mon nouveau thème docSkimmer pour MkDocs est maintenant disponible sur GitHub.

docSkimmer: HTML5 thème accessible et responsive pour MkDocs
Figure 3: Capture d'écran du thème docSkimmer

Thème prêt à l'emploi

Une démonstration du thème docSkimmer est présenté sur son propre site Web de documentation, qui l'utilise directement «prêt à l'emploi ».

Facilement personnalisable pour tout projet

Un autre exemple d'un site Web de documentation qui utilise le thème docSkimmer démontre comment ce thème peut être personnalisé aisément.

Écrivez une fois, plusieurs façons d'enregistrer le log

Publié le

git-add-msg est un outil de ligne de commande que j'ai développée pour optimiser l'utilisation de Git, tout seule ou avec Trac, pour gagner du temps (et pour économiser de taper). Au lieu de taper les lignes suivantes (dans le répertoire principal de votre projet):

Figure 1. Commandes shell requises avant l'installation de git-add-msg

          $ git add .
          $ git commit -am "mon message de commit"
          # ou pour les utilisateurs de Trac:
          $ git commit -am "#123: mon message de commit"
          
Figure 2. Après l'installation de git-add-msg, une seule commande est nécessaire

          $ git add-msg
          

Et il n'est pas non plus utile de couper-et-collager-au-Trac des hashs des commits, car un commentaire avec un lien au changeset et le dépôt (aussi bien que le message de commit lui-même) est ajouté automatiquement au billet spécifié dans Trac. Les informations de la commande $ git log pour chaque commit sont aussi ajoutées dans un fichier texte changelog — on pourrait mettre en copie un autre système de gestion de bugs ou de projets, si on voulait.

Fonctionnalités

Fonctionnalités de git-add-msg (v.0.1.1):

Profitez bien de l'outil!

Usages des témoins

Aucun cookie n'a été utilisé pour la création de ce site.