xvw.lol

Journal

Après avoir brièvment parlé de mon site personnel en rétrospective, il est temps de faire le bilan des projets libres de 2023. C'est la seconde partie de ma rétrospective de 2023 !

Le gros projets de 2022 a été le développement du forum Muhokama. Développé en OCaml (évidemment) par dessus le cadriciel Dream. Même si, durant l'année 2023, il y a eu très peu de contributions (quelques fixes et fonctionnalités en Janvier), le projet a servi de base pour raisonner la construction d'une pile d'outils nous permettant de facilement décrire des applications full-stack avec OCaml. Une grande partie de mes contributions durant l'année 2023 ont porté sur cet ensemble de bibliothèque !

Avec The Funkyworkers

Nous avons, en Avril 2022, fondé un collectif, The Funkyworkers — dont le nom ne fait pas l'unanimité. L'objectif du groupe est de fournir — à la mesure de nos compétences — un support industriel pour le développement d'applications sûres et fiables, exploitant des langages avec vérification statique des types (comme OCaml et Haksell) et des assistants de preuves (comme Coq). En complément du développement de logiciels, nous offrons une expertise en technologies Web3 (essentiellement sur la blockchain Tezos). Pour des raisons contractuelles, je ne peux pas être très expansif sur notre activité commerciale (et dans le cadre de ma rétrospective, ça aurait peu de sens car je ne suis pas salarié de ma propre entreprise), par contre, les outils que nous développons sont généralement libres !

Nightmare

Nightmare est un ensemble de bibliothèques permettant de développer des applications web (back-end et front-end) uniquement avec OCaml. Même si le projet permet de n'utiliser que OCaml, il est tout de même très différent de Ocsigen, qui permet de construire des applications multi-tiers, car les différents tiers sont distincts. Cependant, une grande partie des outils développés dans Muhokama ont servi de base pour essayer d'utiliser au maximum le typage statique pour exprimer des invariants. Le projet avance lentement mais surement et 2024 sera probablement l'année où nous l'utiliserons pour réecrire Muhokama. Actuellement, le seul projet s'en servant (uniquement de la partie front-end) est ce site web. En effet, les dApps et les commentaires utilisent Nightmare.

Pour 2024, nous travaillons sur l'abstraction des formulaires et sur un DSL pour exprimer des requêtes SQL (un peu à la manière des expressions de requêtes en F#).

Yourbones

Derrière ce très mauvais nom (Yourbones pour Tes os, ce qui peut, phonétiquement, se prononcer comme Tezos) se cache l'embryon d'un kit de développement pour interagir avec la blockchain Tezos. Le but étant de se marier efficacement avec Nightmare pour construire des dApps de bout en bout. C'est d'ailleurs via Yourbones que les dApps de ce site web sont développées. L'ensemble des bibliothèques repose sur les mêmes idiomes que ceux mis en avant par Nightmare (dont certaines des bibliothèques sont des dépendances des bibliothèques qui décrivent Yourbones), soit l'usage, un peu immodérée, du typage statique pour exprimer un maximum d'invariants. Actuellement, un petit projet sert de showcase.

Même si, en l'état, il est déjà possible de construire des dApps peu ambitieuse, nous tâchons de dériver le développement par l'usage, implémentant, au fur et à mesure, les outils dont nous avons besoin pour augmenter le potentiel des dApps développable avec Yourbones.

Notre objectif pour 2024 est d'améliorer l'interaction avec les contrats en fournissant un DSL pour décrire des expressions Michelson valides et vérifiées statiquement. Une fois que ce sujet sera traité, nous tâcherons d'améliorer l'expérience développeur pour fournir un concurrent sérieux (et en OCaml) à Taquito et idéalement à Dip dup.

Note sur Js_of_ocaml

Même si je n'ai pas contribué concrètement à Js_of_ocaml, notre usage un peu brutal de ce dernier (pour s'interfacer avec l'écosystème JavaScript) à permis de soulever plusieurs bogues liés à la minification du bundle JavaScript généré. Ce qui me permet de remercier très chaleureusement Hugo Heuzard pour ses fixes rapides !

Les Amis d'ma mère

Les Amis d'ma mère est une ASBL belge qui vise à faire la promotion d'artistes belges — il se trouve que l'ASBL, Les Amis d'ma mère, a été fondée par ... des amis de ma mère, d'où la mise en contact. Une de leur activité est d'accompagner les artistes à estimer leur éligibilité au statut d'artiste — similaire au statut d'intermittent du spectacle en France. Comme très souvent, la bureaucratie rend ce suivi complexe, et, en collaboration avec des experts sur le sujets, nous avons développé un prototype pour faciliter (et potentiellement gamifier) le suivi des prestations pour calculer son éligibilité. Ça se matérialise par une application (écrite en OCaml) permettant de construire une feuille de suivi où il n'est possible que d'entrer des valeurs valides. L'application a été développée bénévolement pour mettre en avant la volonté de The Funkyworkers à allouer du temps pour la construction de projets pour le bien commun.

Même si le prototype est utilisé en interne, 2024 sera probablement l'année où nous écrirons une version plus ambitieuse, fonctionnant sur mobile, pour rendre accessible à tous les artistes, l'application et leur permettant de construire eux-mêmes leurs dossiers d'artistes.

Pour la suite

Même si chacun des projets présentés semble avoir des extensions/améliorations prévues, certains projets ayant reçu peu de mises à jour en 2023, nous avons aussi des perspectives pour ces derniers :

  • YOCaml, même si, par l'initiative de Romain Calascibetta, YOCaml a enfin été publié sur OPAM, le générateur, de générateur, n'a pas été fortement mis à jour. Par contre, comme évoqué dans la rétrospective précédente, la bibliothèque étant utilisée par d'autres utilisateurs, nous travaillons actuellement sur une nouvelle version (très inspirée par le papier "Build Systems à la Carte: Theory and Practice").

  • Preface a reçu quelques mises à jours (notamment l'intégration d'abstraction indexées et l'ajout de Lattices), un gros chantier est en cours de réflexion. Il est donc probable que l'on y alloue un peu de temps.

  • Muhokama, comme évoqué dans la section dédiée à Nightmare, il est probable que l'on exploite Nightmare et Yourbones pour implémenter une version plus ambitieuse !

Bref, pleins de perspectives amusantes ! En espérant que l'on arrive à construire des feuilles de routes réalistes pour faire progresser rapidement chacun de ces projets. De plus, il est possible que l'on passe un peu de temps à construire une véritable application web pour décrire notre activité publiquement et fournir des bacs à sable d'expérimentations.

En solo

Cette année, j'ai relativement peu travaillé sur des projets en solitaire, mis à part mon site personnel. Je n'ai pas de projets spécifiques en tête à réaliser seul, même s'il est probable que j'exploite les différentes avancées des projets cités ci-dessus pour faire des expérimentations et des retours d'expériences.

Cependant, je ne regrette pas cet excès de collaboration parce que c'est, de mon point de vue, largement plus motivant de travailler en groupe qu'en solo !

C'était la seconde partie de ma rétrospective ! Merci de votre lecture potentielle et passez d'avance de très bonne fêtes de fin d'année et tout le meilleur pour 2024 !

Rétrospective Sur les projets libres

Sources

Dépots de sources des différents projets

Nous arrivons à la fin de l'année 2023, et j'ai décidé de m'essayer à l'écriture d'une petite rétrospective ! Comme je n'ai pas grand chose d'intéressant à dire concernant mes expériences professionnelles, j'ai décidé de me focaliser sur mes projets personnels. Cette rétrospective sera découpée en plusieurs brèves et la première portera sur ce site web !

À propos de ce site

Alors que j'avais fièrement réinitié cette page personnelle en 2022, et qu'après n'avoir écrit qu'un seul article, il était tombé dans l'oubli jusqu'à ce que je me décide à écrire deux articles sur des bars et que je me décide à enregistrer un nom de domaine, le fameux xvw.lol.

Heureusement, j'aurai été, en 2023, largement plus actif ! Même si ma fréquence de rédaction est toujours trop basse, j'ai fièrement pu ajouter du contenu et implémenté des fonctionnalités !

Articles et rédactions

  • La rédaction du très long, mais inutile, article sur le Tetra Master. Un retour ambitieux dans le game de la rédaction d'article. Je pense que très peu de personne l'auront lu jusqu'au bout mais je suis assez fier d'être arrivé au bout de sa rédaction mais aussi de la compréhension totale des règles de cet horrible jeu de carte.

  • Un article sur les schémas d'importation en OCaml. Un article moins ambitieux que le précédent mais qui, selon moi, à le mérite de présenter quelques usages moins usuels du langage de module de OCaml.

  • Et même si ce ne sont pas des articles à proprement parlé, j'ai rédigé quelques nouvelles dans cette page Journal. Une page importante car elle me permet de rédiger des articles/nouvelles plus brèves, un peu à la manière d'un blog.

C'est évidemment toujours très peu, mais au contraire de la fin de l'année 2022, où je n'étais pas très inspiré, je suis assez confiant pour 2024 car j'ai beaucoup d'idées et de sujets que je désire évoquer sur ce site !

Fonctionnalités

Même si ma fréquence de rédaction n'a pas particulièrement augmentée, j'ai implémenté — de mon point de vue — beaucoup de fonctionnalités dans mon site :

  • La mise en place du journal, ce qui peut sembler anecdotique mais qui m'a permis de comprendre comment travailler avec des dépendances dynamiques dans YOCaml et me permettant de trouver des pistes d'amélioration (en terme de developer experience) pour la prochaine version de YOCaml, qui devra sortir en 2024.
  • La mise en place de fils de syndication, me permettant, au passage, de me réintéresser aux flux RSS, et de m'en servir pour me tenir à jour.
  • La construction d'une section galeries, ce qui n'est technologiquement pas une prouesse, mais m'a remotivé à dessiner, après plusieurs années de disette.
  • L'utilisation de Mastodon pour indexer des commentaires me permettant, enfin, d'avoir un espace de commentaires (très peu utilisé) pour réagir à mes articles.
  • L'intégration d'une dApp me permettant d'expérimenter l'intégration d'éléments Web3 dans une application générée statiquement.

Certaines fonctionnalités triviales à implémenter dans une application web dynamique classique sont plus fastidieuses à implémenter dans le contexte d'une page généré statiquement, mais YOCaml étant très versatile, il me permet de m'amuser en développant des features et de fournir des pistes d'améliorations potentielles pour la prochaine version de YOCaml. Donc c'est productif et rigolo !

Pour la suite

J'ai plusieurs objectifs pour ce site en 2024 et j'espère pouvoir m'y tenir !

  • Augmenter ma fréquence de rédaction (continuer à écrire sur la programmation, continuer à documenter les lieux que j'aime fréquenter, continuer à écrire sur le Jeux-vidéo mais aussi démarrer des nouvelles séries sur le café, la culture populaire et sur le Web3).
  • Développer plus de dApps embarquées pour faire écho aux articles en rapport avec le Web3.
  • Peupler les galeries.
  • Réorganiser le code, je ne sais pas encore si j'attendrai la prochaine version de YOCaml ou si je me lance au plus vite, mais le site étant devenu plus ambitieux qu'à ses premières heures, certains modules sont devenu gros et lourds à maintenir.
  • Construire un design-system dédié à ce site. Actuellement, le CSS est très mal organisé et impose beaucoup de redondance parce que je n'y ai pas pensé intelligemment. Une piste d'amélioration serait de penser factuellement la base CSS comme un système, me permettant de réutiliser intelligemment des composants.
  • Implémenter plus de fonctionnalités ! J'ai encore beaucoup d'idées (par exemple pour donner une utilité concrète aux tags).

Le bilan de plus d'un an d'utilisation de YOCaml est que, bien qu'il soit améliorable, il correspond assez bien à mon usage, me permettant d'implémenter, en OCaml, des bizarreries amusantes ! J'espère que 2024 me laissera encore plus de temps et d'ambition pour faire évoluer ce site qui ressemble, de plus en plus, à un jardin numérique !

C'était la première partie de ma rétrospective ! Merci de votre lecture potentielle et passez d'avance de très bonne fêtes de fin d'année et tout le meilleur pour 2024 !

Rétrospective Sur ce site web

Depuis la version précédente de mon site web, j'avais mis les commentaires de côté. En effets, il y a quelques années, j'avais eu l'occasion — à titre personnel — d'être contrarié par Disqus, un service permettant d'enrichir une site généré statiquement de commentaires et d'interactions sociales. Après une très brève investigation, j'en étais arrivé à la conclusion qu'en fait, si les gens voulaient me faire des retours, ils pouvaient le faire au moyen de réseaux sociaux, ou encore par courrier électronique. Comme depuis que mon site personnel est construit au moyen de YOCaml, donc avec un langage que je maitrise mieux, l'inénarrable OCaml, j'ai décidé de prendre mon courage à deux mains et de me replonger dans l'investigation !

Il existe beaucoup de solutions très sophistiquées et intéressantes à mettre en place, notamment celle de passer par une application très simple qui supporterait le minimum des interactions nécéssaires pour permettre, entre-autres, le support des commentaires, probablement dans un unikernel construit au moyen de MirageOS. Cependant, même si cette solution est séduisante (parce qu'elle m'oblige à écrire du Caml et que ça pourrait être un bon stress-test pour Nightmare), elle soulève une collection de questions potentiellement ennuyante concernant la notion d'identité ou encore la modération. Je garde l'idée en tête, ceci-dit, car elle est potentiellement très amusante !

Récemment, alors que je réfléchissais toujours à l'intégration de commentaires, je suis tombé sur un article qui présente son utilisation de Mastodon (et donc, par extension, du fediverse) pour embarquer des commentaires dans son site généré statiquement. Comme depuis quelques mois (oui, je ne suis pas très original), j'utilise de plus en plus Mastodon, il m'a semblé que c'était un très bon point de départ !

J'ai donc, à la manière des différents articles qui traitent du sujet, ajouté la possibilité d'attacher un fil de discussion Mastodon à des pages qui sont rendues dans l'interface via un peu de JavaScript (écrit en OCaml, évidemment, via Js_of_OCaml). Actuellement, le support des messages, des mentions et des tags est assez rudimentaire, mais c'est, de mon point de vue, un bon début. Et maintenant, mon minuscule lectorat à l'opportunité de commenter mes articles !

Autres implémentations

L'idée ne vient pas de moi, voici d'autres propositions.

Alternatives

Le Fediverse n'est pas la seule manière d'intégrer des commentaires, voici quelques alternatives.
Cover

Après plusieurs années sans dessiner, j'ai décidé de me relancer ! Quoi de mieux (ou de pire) que de profiter du Inktober pour tâcher de s'y remettre ? J'ai lamentablement abandonné au 6ème jour. Cependant, ça aurait permis de me donner l'occasion de configurer mon environnement de travail pour le dessin et de reconstruire certains automatismes que j'avais quand je dessinais régulièrement. C'est donc une sorte de victoire.

En complément, j'ai décidé de proposer les 6 travaux que j'ai réalisés pendant cette très brève tentative à la vente, sous forme de NFTs. Les prix sont pas mal élevés parce que je n'ai rien compris à la plateforme, mais comme je suis très prétentieux, je pense que je deviendrai célèbre et que l'achat en vaut la peine.

Dans le futur, j'ai l'intention de continuer à dessiner, et probablement d'implanter un système de galeries sur ce site. Et comme la production de dessins thématisés m'amuse, il est probable que je lance d'autres collections de NFTs, parce que j'aime bien prendre les trains après tout le monde — un peu comme intégrer des flux ATOMs ou encore me re-créer un compte Twitter.

Platforme objkt
Floor Price 5ꜩ
Items 6

Liens

Liens relatifs à l'entrée