Journal

2024-03-12 13:33:29
cover

Mi-février, j'ai eu l'honneur de présenter la Keynote d'ouverture à l'édition 2024 de la conférence ScalaIO qui avait lieu au Palace, situé dans le coeur de Nantes.

Il y a plusieurs raisons qui font que j'ai été particulièrement flatté, et heureux, d'être présent, en tant qu'orateur, à une conférence dédiée à un langage que je ne pratique pas :

  • ScalaIO 2016 fût mon premier contact avec l'utilisation industrielle de la programmation fonctionnelle dans une conférence ouverte au grand public. Ma présence à la conférence était essentiellement dûe au hasard (quelques jours plus tôt, à la conférence TakeOff, on m'a parlé de la ScalaIO et mon employeur de l'époque, DernierCri avait gentimenent accepté de sponsorisé ma présence). C'est aussi ma première rencontre avec des gens que j'apprécie et avec qui j'ai gardé contact, comme, par exemple, l'inénarrable Nicolas Rinaudo.

  • ScalaIO 2018 fût une de mes premières conférences (avec MixIt et TourraineTech) en tant qu'orateur (j'avais, auparavant, essentiellement agis dans des communautés locales). C'est aussi ma première rencontre avec Didier Plaindoux (même si nous ne nous étions pas vraiment adressé la parole) qui deviendra, plus tard, un complice d'activités ludiques.

J'avais aussi participé à la version 2019, en tant que spectateur et j'ai toujours beaucoup apprécié la conférence ! Bref, avoir l'occasion de donner ma première Keynote, à la première conférence grand public que j'ai fréquentée était un véritable honneur ! De plus, le petit meetup que j'essaie de maintenir avec d'autres, LambdaNantes, était un partenaire officiel, permettant, une fois de plus, de propager notre logo ridicule et ça, c'est un point important.

Concernant ma prestation

Je me suis vraiment bien amusé en préparant ma présentation. Même si OCaml reste mon langage de coeur, il est fort probable que je passe plus de temps sur Scala dont la version 3 engendre, de mon point de vue, une sacrée collection d'améliorations ! Par contre, étant un peu fatigué (diner des orateurs la veille, chez mes copains du Transition, un restaurant que je recommande chaleureusement, et une préparation... as usual, à la bourre), mon débit n'est pas bon et je suis un peu trop sarcastique (comme chaque fois que je suis fatigué). En complément, bien que j'ai eu beaucoup de retours positifs, il est probable que ma présentation n'avait pas un format adapté à une Keynote. Et cette présentation m'a confirmé qu'il est nécéssaire que j'améliore drastiquement mon anglais pour être le plus inclusif possible si j'ai encore la chance de pouvoir donner une keynote.

Mais bon, l'important étant le retour du public, le bilan est plutôt satisfaisant !

Concernant les autres présentations

Comme je ne suis pas un utilisateur réel du langage Scala, je ne suis pas aux faits des déboires de migration de sa version 2 à sa version 3 et je connais globalement mal l'écosystème. Ce qui fait que, même si toutes les présentations que j'ai vues étaient très bien délivrées, certaines, à titre personnelle, ne me parlaient absolument pas (désolé, je reconnais que c'est entièrement de ma faute) ! Voici donc une petite liste des présentations (dont l'ordre est donné par celui du site web) qui m'ont marquées, moi, le spectateur biaisé (et probablement peu pertinent pour parler de Scala) :

  • Logic Meta-Programming for Functional Languages par Enzo Crance
    Ça faisait longtemps que je voulais que Enzo parle de son travail de recherche. Bien que j'avais déjà suivi sa défense de thèse (en streaming), j'étais ravi de voir une élaboration pédagogue et progressive d'un sujet aussi touffu ! En plus, il a, lui aussi, exploité le logo ridicule de LambdaNantes pour son support, ce qui est génial !

  • Types dépendants: de la théorie à la pratique par Didier Plaindoux
    On continue de saucer les copains, avec un sujet qui n'a pas grand chose à voir avec Scala, mais cette présentation est un exercice compliqué et Didier s'en est très bien tiré, en proposant une élaboration progressive, ponctué par son emmerveillement de la beauté des règles qu'il présente, et ça, ça rend la présentation motivante et agréable à suivre. On regrettera peut-être que la présentation soit un tout petit trop dense pour 50 minutes, élaguant la dernière partie, un peu brutalement, et nous interdisant les questions.

  • Armored type safety with Iron par Raphaël Lemaitre et Valentin Bergeron
    J'étais déjà familier avec la liquidité, via Liquid Haskell et Refined (qui m'avait été introduit par Nicolas François). Mais c'était très intéressant de voir ce que Scala 3 apporte et d'observer une collection d'exemples compréhensibles !

  • Contravariance: intuition building from first principles par Sophie Collard
    Étant assez familier avec la variance dans les langages objets, je dois avouer que, prétentieusement, je n'attendais pas grand chose de la présentation (booouh) mais j'ai été très impressionné par la pédagogie de la présentatrice et la pertinence des exemples choisis.

  • Songwriting in Scala - Creating a DSL for writing Music with ADT's par Paul Matthews
    Bon, soyons honnête, avoir l'opportunité de voir une rockstar qui décrit la construction, en live-codant, d'un DSL pour l'organisation et l'interprétation d'arrangements polyphoniques, c'est le feu.

Je rappelle que j'ai apprécié une grande partie des présentations que j'ai vues, mais que certaines, bien que très bien délivrées, me parlaient moins de par mon manque d'expérence en Scala et ma méconnaissance de son écosystème.

Concernant la conférence

L'édition 2024, à Nantes, de ScalaIO m'a été annoncée lors de la quatrième édition de LambdaNantes, en octobre 2023. J'étais sceptique sur la possibilité d'organiser une conférence ambitieuse en si peu de temps. J'ai été bien pessimiste, la conférence était vraiment super ! Un très beau programme avec beaucoup d'orateurs et oratrices, un très chouette diner la veille, une community party très sympa, de la bonne nourriture (fournie par des prestataires locaux), Le Palace est un très beau lieu pour accueillir des conférences, les copains (dont le fameux Hakim) bref, une réussite. Mon seul petit regret (qui est très très léger), c'est l'absence de goodies. En tant que bon gros nerd, j'adore avoir des stickers, du swagg des conférences. Cependant, comme je l'ai dit, c'est très léger comme déception et que, au vue de l'accueil et de l'organisation générale, je comprends parfaitement l'utilisation du budget à des raisons plus pertinentes. Je terminerai en disant deux choses, j'apprécie grandement les conférences single-tracks qui ne m'imposent pas de choix compliqués et je remercie énormément Le Palace pour l'accueil, les sponsors pour avoir rendu cet événement possible, l'équipe historique qui a conçu et maintenu une si belle conférence, tous les orateurs et oratrices pour leurs présentations, les spectateurs et spectatrices pour les interactions et les conversations et, évidemment, l'équipe actuelle, qui a vraiment mis en oeuvre une conférence, historiquement importante pour la communauté Scala, à la hauteur des éditions précédentes, avec un gros shout-out pour Jonathan Winandy, pour sa confiance et son implication ! Impatient de voir la suite, et je ferai tout mon possible pour être présent lors des prochaines éditions ! Merci.

2024-01-31 15:41:13

Depuis plusieurs années, je téléchargeais beaucoup de PDFs, essentiellement des publications en rapport avec les sujets qui m'intéresse et j'utilisais une nomenclature de nommage un peu récurrente : nom-auteur-titre-approximatif. Cette approche posait plusieurs problèmes :

  • parfois, certaines publications avaient beaucoup d'auteurs
  • je n'étais pas vraiment consistant sur l'ordre des auteurs, rendant donc l'ordre des publications, dans mon système de fichiers, un peu aléatoire
  • pas de tags, donc impossibilité de trouver rapidement des publications
  • obligé de retrouver la provenance du document quand je voulais le citer.

Il y a plusieurs années, j'avais utilisé le logiciel Papiers, qui avait le bon goût d'être écrit en OCaml, cependant, j'ai, au fil du temps, rapidement perdu l'habitude d'indexer mes documents, me plaçant dans une situation où, à postériori, j'avais beaucoup trop de documents à traiter.

Comme souvent, j'ai pensé réinventer la roue, mais je pense que je n'aurais pas pu faire mieux que Papiers. J'ai donc décidé de me tourner vers une solution existante, dont j'avais déjà entendu parlé, mais que je n'avais jamais essayé !

Zotero

Zotero est un logiciel libre, permettant l'indexation facile de publications scientifiques. Son énorme point fort est qu'il permet d'importer rapidement des documents depuis un ISBN, un identifiant DOI et beaucoup d'autres. De plus, il est possible d'ajouter des tags par entrée et de générer une référence bibliographique (Bibtex, entre autres) très facilement. Il existe des solutions de synchronisation mais j'avoue ne pas m'y être intéressé pour le moment, l'indexation me suffit largement.

Je suis encore loin d'être un expert, mais j'ai pu très rapidement indexer les documents éparses de mon disque. Je suis donc très satisfait du logiciel pour le moment. Si jamais vous connaissez des alternatives qui valent le coup, n'hésitez surtout pas à m'en faire part via les différents canaux de communication par lesquels il est possible de me contacter !

Liens

Liens relatifs à l'article

2023-12-31 15:22:41
  • rétrospective
  • 2023
  • bilan
  • prise de parole
  • événement

Suivant la rétrospective de mes contributions à des projets libres, voici le bilan de mes présentations et organisation d'événements ! C'est la troisième partie de ma rétrospective de 2023 !

Comme pour 2022, je n'ai pas été très productif en présentations, cependant, reparticiper à des événements m'a beaucoup remotivé à proposer plusieurs sujets dans les semaines/mois à venir pour différentes conférences !

IfThisThenDev sur la Blockchain et Tezos

2023 a été l'année où j'ai pu participer pour la première fois à un podcast ! En effet, Bruno m'a offert l'opportunité de parler de Blockchains et de Tezos dans un épisode de plus d'une heure pour son émission IFTTD.

L'exercice est très intéressant, tout en étant compliqué. En effet, même si la conversation informelle entre deux personnes (Bruno et moi) est un format agréable, je ne suis pas un expert de la synthèse et de la clarté et il faut garder en tête le fil de la conversation. En complément, j'ai eu l'occasion de faire un compilé d'un autre épisode : Mettre le feu aux bases de données, que j'ai fièrement écouté dans le train pour me rendre au studio.

Je suis assez fier de l'épisode, pour lequel j'ai reçu beaucoup de retours positifs. J'ai été très impressionné par l'organisation de l'épisode et la mise en oeuvre logistique et je suis très impatient d'entendre la version compilée. Pour conclure, je suis très heureux d'avoir pu participer à cette série d'épisodes et de parler de Tezos ! J'espère que l'occasion se représentera.

Codeurs en Seine

J'avais déjà parlé de Codeurs en Seine dans un billet précédent mais 2023 fût aussi l'occasion de redonner une présentation à une conférence grand public. En effet, depuis plusieurs années, je ne donnais que des présentations dans des petits événements confidientiels. Codeurs en Seine a été l'occasion de redonner une conférence et c'était très chouette ! Durant cette conférence, j'ai pu parler de Web3 (et de Tezos) et j'ai aussi reçu de très chouettes retours ! Ce qui est très motivant pour soumettre des sujets à pleins de conférences populaires !

Comme très souvent que je fais une présentation, certaines personnes ont trouvé la présentation trop technique (c'est très flatteur). Mais les retours sont assez unanimes, la conférence était fun. J'ai aussi reçu un avis écrit :

Très bon orateur, dynamique et fun. C'était très rythmé et passionné et même si je n'ai pas absolument tout compris, aucun risque de décrocher!

LambdaNantes

Depuis 2022, j'essaie d'organiser des événements à Nantes dédiés à l'usage de la programmation fonctionnelle : LambdaNantes. A l'heure où j'écris ces lignes, nous avons organisé 4 évenements (2 en 2022 et 2 en 2023). Même si le succès des événements est mitigé (je pense que l'on est plus proche de la conversations entre copains plutôt qu'un véritable événement formel), je pense que nous allons continuer en 2024, parce que c'est toujours rigolo de voir des présentations sur des sujets amusants et que le pot de l'amitié, après les présentations, est toujours un chouette moment !

Cette année, je n'ai donné qu'une seule présentation — ce qui est déjà beaucoup sur deux événements — qui portait sur les Build Systems.

OCaml User Group Parisien

J'aurai normalement du passer en 2022, mais ayant été frappé du COVID, ma présentation au OUPS a été repoussée à 2023, où j'ai eu le privilège de parler de YOCaml. C'était la première fois que je participais, en tant qu'orateur, à un OUPS et c'était très sympa. J'ai eu la chance d'avoir de chouettes questions, et les pizzas et les verres post-événement étaient très sympa avec des gens très intéressants. J'ai aussi eu la joie d'être impressionné par la logistique, en effet, l'événement est diffusé en live et la vidéo de ma présentation.

Pour conclure

J'ai aussi eu l'occasion de donner une petite présentation sur Tezos et OCaml pour l'équipe de développement du projet Hydra, sur la chaine Cardano. Même si je n'ai pas eu énormément de temps de préparation, l'expérience était amusante, et les conversations suivants la présentation furent intéressantes !

Même si j'avais un peu délaissé la prise de parole publique ces dernières années, j'espère que 2024 me laissera l'occasion de présenter de nouvelles choses, et probablement d'organiser le plus de LambdaNantes possible !

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 Présentations

Codeurs En Seine

Liens relatifs à Codeurs en Seine

LambdaNantes

Liens relatifs à LambdaNantes

2023-12-30 12:02:57

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