-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
184 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 ! | ||
|