Skip to content

Commit

Permalink
Add bilan project
Browse files Browse the repository at this point in the history
  • Loading branch information
xvw committed Dec 30, 2023
1 parent 62effa2 commit 88dda3f
Show file tree
Hide file tree
Showing 2 changed files with 184 additions and 1 deletion.
2 changes: 1 addition & 1 deletion content/journal/2023-12-29_18-23-07.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ brèves et la première portera sur **ce site web** !
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](https:/?xvw.lol).
nom de domaine, le fameux [xvw.lol](https://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é
Expand Down
183 changes: 183 additions & 0 deletions content/journal/2023-12-30_12-02-57.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
---
tags:
- rétrospective
- "2023"
- bilan
- projets
meta:
- key: Rétrospective
value: Sur les projets libres
indexes:
- name: Sources
synopsis: Dépots de sources des différents projets
links:
- name: Nightmare
href: https://github.com/funkywork/nightmare
- name: YourBones
href: https://github.com/funkywork/yourbones
- name: Simulateur du statut
href: https://github.com/funkywork/ladmm-sa
- name: Muhokama
href: https://github.com/xvw/muhokama
- name: Preface
href: https://github.com/xvw/preface
- name: YOCaml
href: https://github.com/xhtmlboi/yocaml
---

Après avoir [brièvment parlé](/journal/2023-12-29_18-23-07.html) 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](https://github.com/xvw/muhokama). Développé en
[OCaml](https://ocaml.org) (évidemment) par dessus le _cadriciel_
[Dream](https://github.com/aantron/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](https://github.com/funkywork) — 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](https://tezos.com)). 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](https://github.com/funkywork/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](https://ocsigen.org/home/intro.html), qui permet de construire des
applications
[_multi-tiers_](https://soft.vub.ac.be/~lphilips/jspdg/stip/stip-web/index.html),
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_](/dapps.html) et les
[commentaires](/journal/2023-11-14_15-20-50.html) 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#](https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/query-expressions)).

#### 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_](/dapps.html) 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](https://github.com/funkywork/tezos-dapps-examples) 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](https://tezos.gitlab.io/active/michelson.html) 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](https://tezostaquito.io/) et idéalement à [Dip
dup](https://dipdup.io/).

##### Note sur Js\_of\_ocaml

Même si je n'ai pas contribué _concrètement_ à
[Js\_of\_ocaml](http://ocsigen.org/js_of_ocaml/latest/manual/overview), 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](https://github.com/hhugo) pour ses _fixes_ rapides !

#### Les Amis d'ma mère

[Les Amis d'ma mère](https://lesamisdmamere.be/) 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](https://github.com/funkywork/ladmm-sa) (é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**](https://github.com/xhtmlboi/yocaml), même si, par l'initiative de
[Romain Calascibetta](https://blog.osau.re/), YOCaml a enfin été publié sur
[OPAM](https://ocaml.org/p/yocaml/latest), 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](https://github.com/xhtmlboi/yocaml#websites-using-yocaml), nous
travaillons actuellement sur une nouvelle version (très inspirée par le papier
["_Build Systems à la Carte: Theory and
Practice_"](https://ndmitchell.com/downloads/paper-build_systems_a_la_carte_theory_and_practice-21_apr_2020.pdf)).


- [**Preface**](https://github.com/xvw/preface) a reçu quelques mises à jours
(notamment l'intégration [d'abstraction
indexées](https://github.com/xvw/preface/pull/183) et l'ajout de
[Lattices](https://github.com/xvw/preface/pulls?q=is%3Apr+is%3Aclosed+lattice)),
un _gros chantier_ est en cours de réflexion. Il est donc probable que l'on y
alloue un peu de temps.

- [**Muhokama**](https://github.com/xvw/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 !

0 comments on commit 88dda3f

Please sign in to comment.