Quand je vois des posts saluant tel ou tel événement où des centaines de personnes payent des sommes conséquentes (80€ !) pour se rassembler et s'adonner à moults ripailles, beuveries et paillardises leur permettant de défouler leur rancoeur envers les-immigrés-qui-mangent-le-pain-des-bons-français et "l'anti-France", événements soutenus par tout ce que notre pays compte de crypto-fascistes, je ne peux m'empêcher de penser aux regrettés Lob et Gotlib (tiens, un fils d'immigré...) et à leur inénarrable Superdupont qui, dans la France de Pompidou, Giscard puis Mitterand, défendait la France de la 2CV, du camembert qui coule, de la baguette et du béret contre l'Anti-France.[^1]
J'ai eu la chance de participer cette année à Alpes Craft en tant qu'orateur. Voici quelques notes prises au grés des sessions auxquelles j'ai assisté ou que j'ai animé.
I have been dabbling in ML every now and then, implementing a Haskell version of Word2Vec, attending ML Week ten (!) years ago to improve my understanding of basic techniques and tools, and occasionaly reading articles and posts. Andrej Karpathy's microgpt blog post is fascinating as it somehow synthesizes decades of experiments and scientific breakthrough in about 200 lines of Python code[^1] and being the coder I am, it seems there's no better way for me to understand something than to build or rebuild it.
I have had the luxury to attend not one but two Open Space conferences in a row, first as a facilitator for SoCraTes France, a 3 days unconference hosted in the beautiful Château de Massillan, near Orange ; then as a participant at SoCraTes Rennes, a one day event in the capital city of Britanny I have been attending for the past four years.
Citation extensive des pages de 'Principes d'une critique de l'économie politique' de Karl Marx
Another experiment where I contrast developing the same feature using Claude Code agent versus manually coding it.
In a previous blog post I wrote about my experience extending Sensei to handle publishing posts like this one to Leaflet. This was an opportunity to dive deeper into AI-assisted development with Claude Code which I also wrote about. In this post I want to recount a more focused experiment I did to understand how Claude code fares on some more complicated issue, and to compare its output with my own efforts to solve the same problem.
Nudged by this post on Blue Sky from Simon Willison, I decided yesterady to give Aider a try while coding some stuff on amaru, and I must say I have been quite impressed by the fluidity of the interaction.
This week I have spent some time off exploring how I could leverage my existing initial support for Bluesky in Sensei (documentation outdated) to publish blog articles with leaflet.pub. I also took this opportunity to better understand how to use coding agents, mostly focusing on Claude Code, and how much of a help it was in implementing features.
Le souverain laborieux, sous-titré "Une théorie normative du travail", n'est pas le premier livre d'Axel Honneth que je lis. J'apprécie le style précis et rigoureux et la qualité de la traduction, étant à mon grand dam bien incapable de lire l'original : ce n'est pas une lecture légère, mais cela se lit très bien.
I got referred to The theory of facilitated variation, by Gerhart and Kirschner, while reading La survie des médiocres de Daniel S. Milo and found it interesting enough in its own right to be worth a short blog post.
Un empire bon marché de Denis Cogneau, s'attaque comme l'indique clairement son sous-titre à l'histoire et à l'économie politique de la colonisation française, du XIXe au XXIe siècle. Les dernières scories bien refroidies du projet colonial et de la "mission civilisatrice de la France", recyclé dans le concept de Françafrique, disparaissent. Et bien que ma famille ait été partie prenante de cette histoire avec notamment un grand-père combattant d'Indochine, puis chargé du démantèlement des batteries côtières de l'AOF/AEF aux indépendance, je ne connaissais pas vraiment l'histoire de la colonisation ni surtout son impact.
Le paradigme de l'art contemporain est un livre relativement court de Nathalie Heinich sociologue française spécialiste du monde l'art et de la création, et par ailleurs ancienne thésarde de Pierre Bourdieu ! C'est aussi un personnage assez controversé dans le milieu de la sociologie et plus généralement intellectuel français, quelqu'un dont les positions anti-islamistes, conservatrices sur les questions de genre, et plus récemment "anti-wokistes" ont suscité des critiques, notamment sur le manque de scientificité de ses travaux sociologiques et un sous-texte très politique dissimulé derrière une prétendue "neutralité axiologique" invoquant les mânes de Max Weber.
Études sur Tchouang-Tseu est un livre de Jean-François Billeter sur une des oeuvres les plus importantes de la "philosophie" classique chinoise. Il fait suite à Leçons sur Tchouang-Tseu et, de la même manière que celui-ci, regroupe des articles et études unis par les thèmes de la traduction, l'accès à la pensée chinoise, et les passerelles avec la philosophie occidentale.
These are my quick notes from NewCrafts Paris 2023 conference which returned as an in-person event after 4 years of interruption.
Le mythe de l'entrepeneur est un livre d'Anthony Galluzo, paru aux éditions de la Découverte en 2022. Au travers de la figure emblématique de Steve Jobs, il se propose de détricoter les mailles du mythe construit par Jobs, ses thuriféraires, et tous ceux qui ont intérêt à promouvoir une certaine conception de l'homme et de la société, et de mettre à nu la réalité sous-jacente à ce mythe, les forces qui le soutiennent et ont contribué à son émergence.
En juillet 1940, Marc Bloch, historien de renom, juif athée et vétéran de deux guerres, est démobilisé suite à la capitulation signée par le maréchal Pétain. Il écrit L'étrange défaite comme un procès-verbal, une déposition, composée à partir de son expérience concrète de la guerre, de la vie sociale et politique de la France des années 20 et 30, et du travail de l'historien et de l'universitaire. Alors que la guerre d'agression et de conquête revient frapper à la porte de l'Europe, ce témoignage sans concession mérite d'être relu.
I have already published some notes on the HaPoP-5 conference, here are more notes from the accompanying PROGRAMme workshop. Tomas Petricek and Liesbeth de Mol kindly asked me to take part in the workshop as a respondent for one of the presentations, of which I am most grateful to them! Note the goal of the PROGRAMme program (!) is to publish a - possibly constantly evolving - book to answer the question "What is a computer program?" This book currently lives in a private wiki as it's still a work-in-progress, with lot of unfinished chapters.
I have a long standing interest for Philosophy, and I was thus delighted when Tomas Petricek proposed me to join the Program Committee for the HaPoP-5 conference, more than two years ago. The conference was initially supposed to take place in 2020, co-located with NCrafts, but both events were cancelled because of You Know What. Here are some notes along with personal comments about each of the conference's sessions. Another blog post will cover my notes from the PROGRAMme workshop which took place in the same location right after HaPoP-5.
Resonance is a book by Harmut Rosa, a famous contemporary German sociologist and philosopher who theorised Acceleration as a core impact modernity has on society in a previous book. I have read the first part of this book in French but the ideas he set forth resonated - pun intended - so much with me I wanted to share them with a wider audience, hence this English summary.
I discovered the concept of Smart Contracts in 2016 in Singapore when I met the nice folks at Legalese, Meng Wong and Alexis Chun. This is what attracted me to blockchain much more than the cryptocurrency and speculation space: The fascinating idea of designing software that would run in a fully decentralised and distributed manner, representing evolving contractual obligations and rights over time, and reacting to consensual events added to the chain.
La lecture récente de Simulacres et simulations de Jean Baudrillard m'a laissée un peu perplexe. Si le livre est très bien écrit et s'il est indéniable que Baudrillard a été visionnaire dans sa critique de l'hypertrophie du sens et du discours qui noie le réel, son nihilisme assumé m'ennuie. J'ai eu envie dans ce court texte de confronter ce que j'ai compris de sa pensée à celle d'un autre grand contempteur de la société capitaliste, Guy Debord.
C'est à Fabien Lamarque et à sa recension du livre de Barbara Stiegler que je dois l'impulsion de sa lecture. Il faut s'adapter est une étude fouillée des écrits de Walter Lippmann considéré comme le père du "néolibéralisme", et sa confrontation avec les écrits de John Dewey, l'un des fondateurs du pragmatisme.
Someone wrote a recent post debunking what the author thinks are Mocks. I say "thinks" because actually, what the author describes are not what Mock objects really are or how they were thought to be used, as this post demonstrates.
J'ai lu L'invention du quotidien, vol.1, de Michel de Certeau, fréquemment cité par Tim Ingold dans Une histoire des lignes. Il me semble aussi que James C. Scott et, de manière allusive, Bourdieu dans ses cours au Collège de France, le citent. Il fait partie de cette famille de penseurs critiques que mai 68 a cristallisée, qui s'est plus tard exportée aux USA sous le nom de "French Theory", produisant les Cultural studies et plus récemment toute la famille des théories critiques de la société moderne : Gender studies, Critical Race Theory,...
Misère de l'historicisme est un livre de Karl Popper, un des plus important philosophe du XXème siècle en particulier dans le domaine de l'épistémologie et de la philosophie des sciences. Popper est célèbre pour son principe de réfutabilité permettant de distinguer les théories scientifiques des autres : une théorie ne peut être scientifique que si elle est est réfutable, c'est à dire s'il est possible de concevoir une expérience permettant de la tester. La conséquence principale de ce principe épistémologique est que toute théorie scientifique est "en sursis", elle conserve toujours le statut d'une hypothèse que des faits futurs pourraient invalider en tout ou partie. C'est arrivé régulièrement au cours de l'histoire, par exemple dans le domaine de la physique avec l'invalidation de la théorie du phlogistique, en astronomie avec la réfutation de l'astronomie Ptoléméenne par Galilée et Copernic, en biologie avec la théorie des humeurs.
I am indebted to Adèle van Reeth's Les chemins de la philotophie for enthusing me in reading Darwin's controversial masterpiece On the Origin of Species. We live in a time when creationism under the guise of so-called Intelligent design is again on the rise, when more and more people from developed countries, including highly-educated people, can believe Earth is flat, when post-truth is a thing, and people can attract and retain the attention of millions with any kind of bullshit. Darwin published his book in the middle of the XIXth century, at a time when creationism was still dominant, and the religious dogma considered relevant on the matter of truth of natural sciences' theories, especially ones dependent on pre-historical and geological times facts. So it seemed important to me to understand how Darwin exposed his theory, how he actually practiced science and conveyed scientific truth.
Le succès du Capital au XXIème siècle de Thomas Piketty a remis à l'ordre du jour la question des inégalités économiques, de leur justification, de leur évolution, et de la manière de lutter contre leur extension voire de les réduire. Capital et idéologie du même auteur, s'intéresse d'ailleurs plus précisèment à la manière dont différentes sociétés justifient, ou pas, les inégalités et leurs trajectoires dans différents pays au cours du siècle précédent.
In a previous post I detailed how to set up a LSP server for Haskell using Emacs as client. Now, despite my good friend Sam Halliday's advice, I wanted to add Nix in the mix. Both standardized and shared development environment and reproducibility of such environments are relevant and important. But I could argue that the wealth of virtualization tools available nowadays, from the humble chroot to full-blown virtual machines through containers of all kind, makes it much easier to produce and reproduce identical environments than when nix was started 15 years ago.
This is another post in a series I plan to write on interesting team-wide practices I have found and still find to be effective to further and support eXtreme Programming. In this post, I present how to promote Collective Code Ownership and Coding Standards to a new level through the use of a Shared Development Environment. The goal is to ensure as much as possible standardization in the process and tools from design to deployment, in order to avoid the all too common “Works on my machine” syndrome that plagues software development teams.
Luc Boltanski est un sociologue dont j'ai beaucoup apprécié Le nouvel esprit du capitalisme - co-écrit avec Eve Chiapello - et Enrichissement - co-écrit avec Arnaud Esquerre. Le complotisme est un sujet d'actualité et ils ne sont pas nombreux les livres qui cherchent à comprendre ce que recouvre cette croyance, quelle est son histoire et sa signification contemporaine. Cet article synthètise quelques unes des réflexions qu'il m'a inspiré, en espérant qu'il donne envie de lire l'original bien sûr.
For a couple of years now there has been an upsurge of activity on the front of Haskell Tooling and IDE support. As explained in this blog post from Neil Mitchell, there is a need, and now a will, to equip Haskell with a more modern development environment based on the now standard Language Server Protocol introduced by Visual Studio Code. This initiative gave rise to the Haskell Language Server which aims at fully supporting LSP for the Haskell eco-system and becoming the standard "IDE".
Writing a personal diary is pretty commonplace and there exists quite a few tools out there to do that. I personally favor Emacs for casual personal journalling and have been using org-mode since at least 2014, and some other tools prior to that like remember.el. For a few years now, I have been trying to extend that practice from the individual to the collective by writing a Team's Log. I stole the idea from a talk Dan North gave where he mentioned the Captain's Log as one of the "advanced agile" or "post-agile" practices he thought effective to improve a team's efficiency and effectiveness.
Le maniement des hommes est un essai de Thibault Le Texier qui est paru en 2016 aux éditions La découverte, et comme le sont très souvent les livres de cet éditeur, c'est un ouvrage intelligent et passionnant. Son propos est d'exposer comment le management à partir des écrits fondateurs de Frederick Taylor constitue une rationalité propre, avec son langage, ses modes de pensées, ses buts. Le management scientifique n'a de fait rien de scientifique, c'est-à-dire qu'il n'est pas une science, qu'il ne fait pas partie du domaine de rationalité spécifique de la science expérimentale[^1], ni d'ailleurs de celui des sciences humaines qui s'élabore à peu près à la même période, au tournant du XXème siècle.
Le livre est une analyse des interactions sociales vues comme une pièce de théâtre, un jeu de rôles dans lequel les membres d'une équipe collaborent pour donner un spectacle à des spectateurs
Libres d'obéir, sous-titré Le management, du nazisme à aujourd'hui est un essai historique qui vise à mettre en lumière la "modernité du nazisme", à analyser comment la vision radicale de la société et de l'humanité promue et développée par les nazis durant les 12 ans qu'aura durant le IIIème Reich n'est par sortie, par quelque portail transdimensionel magique[^4], d'un univers parallèle mais a des racines et des prolongements dans notre modernité.
This year 2019 has been exciting in many respects, but it's coming to an end and the time is ripe to look forward: 2020, here I come! For my own personal records, I have written up a list of things I would like to work on, investigate, learn, discover and more generally spend some time tinkering with. I look forward to the 31st of December, 2020, to check by which margin I overestimated the time I could reasonably put into side projects!
Although it took me more than 2 years to write a sequel to my previous post on the subject of DDD + T(ype)DDD, it's a subject that I keep having in the back of my mind and something I try to apply in my day job wherever it's possible. This time, I am investigating how to write a double-entry bookkeeping module in Idris, in the spirit of ledger and hledger. Of course, what I wrote is nowhere near as full-featured as hledger, it's mostly a proof-of-concept that only allows one to parse a ledger-formatted file and pretty-prints back its content.
En écoutant France inter ce matin j'ai eu immédiatement envie de partager cette lecture collective sur twitter de l'Iliade en français. J'ai donc immédiatement tweeté les premiers vers du premier chant de l'Iiliade, avant de me rendre compte que la contrainte exigeait de twitter un chant par semaine. Il est donc devenu urgent d'écrire un programme pour faire en sorte de pouvoir générer ces tweets automatiquement au lieu de devoir laborieusement les taper un par un. Voici le fruit, brut de décoffrage de cette micro-aventure...
This is the blurb that introduces Agile Software Development with SCRUM, the seminal book by Ken Schwaber and Mike Beedle that explained Scrum, or rather SCRUM as it should be correctly spelled, to a wide audience.
"On ne peut pas réfuter une pensée qui s'ignore elle même." L'empirisme ignore l'expérience, soit la rencontre entre un sujet et le monde. Les constructions théoriques seront toujours plus réels car plus "dures", plus précises que ce dont l'expérience peut rendre compte. L'objectivation est irréfutable car elle supprime la conscience du sujet ou bien plutôt sa relation au monde, et réciproquement la relation que le monde entretient avec le sujet, l'inclusion de celui-ci dans celui-là. L'inévitable conséquence en est le dualisme.
Once again I have been lucky enough to attend this year's codemesh conference, but this time I was not only attending but also presenting with my friend Yann Schwartz, speaking of something we have been working on for a few months and thinking of for a few years: How to leverage the power of those billions of lines of logs our systems generate?
This 2 hours workshop was given by Ian Thomas, CTO of SkyBet. It was a fast-paced overview on how to build modern javascript applications based on FP principles. The workshop is based on his git repo and builds a complete 12 factor app from the ground up. It contains lot of materials and the session was way too short to get more than a glimpse of it, but it's definitely interesting material when one wants to build JS-based microservices.
here are some key takeaways from this year's codemesh conference. i must say i never had such an intense conference, with lot of fascinating and mind-blowing sessions which bred lots of new or old ideas in my mind. thanks a lot to the organisers and the amazing speakers which made this event memorable.
This post is a summary of my activities related to coding and software in the past week. Its purpose is both to serve as a high-level personal log and as a potential source of interesting (or not so interesting) links. Entries are provided in no particular order with minimal comments...
This post is a summary of my activities related to coding and software in the past week. Its purpose is both to serve as a high-level personal log and as a potential source of interesting (or not so interesting) links. Entries are provided in no particular order with minimal comments...
This post is a summary of my activities related to coding and software in the past week. Its purpose is both to serve as a high-level personal log and as a potential source of interesting (or not so interesting) links. Entries are provided in no particular order with minimal comments...
This post is a summary of my activities related to coding and software in the past week. Its purpose is both to serve as a high-level personal log and as a potential source of interesting (or not so interesting) links. Entries are provided in no particular order with minimal comments...
Those notes are my answer to a question asked on the Elm Slack
This post is a summary of links related to coding and software I followed and read (sometimes, skimmed over) in the past week. Its purpose is both to serve as a high-level personal log and as a potential source of interesting (or not so interesting) links. Entries are provided in no particular order with minimal comments…
I was planning to work on the Specification pattern from chapter 9, pp.224 seq. of the book which is something that fits nicely, along with other patterns from this chapter, in a strongly typed purely functional framework. But I was sent off-track and ended up shaving a yak, or more precisely defining a Date type along with an addDays function, because this is something that was needed to define a proper DelinquentInvoice specification. This was a challenging exercise for me to undertake and I learnt a things or two in the process that might be worthwhile to share.
This post is a summary of links related to coding and software I followed and read (sometimes, skimmed over) in the past week. Its purpose is both to serve as a high-level personal log and as a potential source of interesting (or not so interesting) links. Entries are provided in no particular order with minimal comments…
Quelques notes supplémentaires sur Kant, la Critique de la raison pure et les Fondements de la métaphysique des moeurs. Ce billet fait suite à d'autres notes prises lors d'une session d'AOF 2016.
Cela fait désormais de nombreuses années que j'écris du code qui a vocation à se retrouver dans des logiciels, eux-mêmes ayant vocation à répondre à des fonctions diverses et variées. Dans ma relation au code, je fait régulièrement l'expérience d'une véritable difficulté physique, d'une douleur : je suis en train de travailler sur un programme, un algorithme, un bout de truc pour déployer une application ; le temps passe et cela ne fonctionne pas correctement, je m'obstine et c'est comme si je poussais un rocher de plus en plus lourd ; la lucidité s'émousse, la clairvoyance sur les moyens et les fins s'embrume par l'accumulation de détails apparemment absurdes et un dédale de pages web prodiguant des solutions à tel problème qui font naître d'autres problèmes de plus en plus éloignés du but recherché[^2] ; et dans mon cas se manifeste une douleur physique là, entre les omoplates, une tension musculaire dépassant le seuil de l'inconfort pour se transformer en brûlure, et c'est comme si j'avais dû traîner une lourde charge sur plusieurs centaines de mètres, un rocher de Sysiphe en miniature.
Let's go first through some ceremonies in order to please the Gods of programming:
Quelques notes sur un ouvrage d'Axel Honneth, philosophe allemand disciple de l'École de Francfort et de sa philosophie critique, La lutte pour la reconnaissance.
Existential types are a less well-known extension to Haskell's type system and Damas-Hindley-Milner type theory, although they are a logical consequence of the identification of type theory with predicate logic: If type variables can be universally quantified then it seems logical they can also be existentially quantified. I have used existential types in Haskell on several occasions but my brain always struggled to really understand what was going on and how to fix the dreaded error messages I got back from the compiler.
This post is a summary of my activities related to coding and software in the past week. Its purpose is both to serve as a high-level personal log and as a potential source of interesting (or not so interesting) links. Entries are provided in no particular order with minimal comments...
Cette question des après-midi de Simone fait partie du fil vert soit des séances permettant d'articuler des questions philosophiques avec le context professionnel des participants, majoritairement programmeur/euse/s. Elle conjoint deux problèmes philosophiques, celui de l'action et celui de la culpabilité ou responsabilité. La séance s'organise en:
J'ai lu récemment Les Blancs, les Juifs et nous de Houria Bouteldja, fondatrice du Mouvement puis Parti des Indigènes de la République. Les temps que nous vivons sont, comme le dit une fameuse malédiction, intéressants et la question des migrations, des frontières et des nations se repose avec une acuïté renouvellée. Nous croyions les nationalismes et racismes dépassés, au moins en Europe, vestiges d'un ancien monde qui aurait plongé dans l'abyme en 1945, quand ils n'étaient qu'assoupis. Et ces vieux démons nous reviennent en partie sous les mêmes oripeaux - stigmatisation de l'étranger, de l'immigré, peur de l'avenir et du déclassement, exaltation de la grandeur du passé - en partie sous de nouvelles hardes - crise écologique, hyper-technologie, libéralisme dévorant. Essayer de comprendre les alternatives qui s'offrent à nous, les "nouvelles" idéologies qu'il nous faudra fabriquer, diffuser, intégrer pour espérer survivre me semble être un impératif pressant.
A while ago I grew the desire to experiment implementing multi-host docker networking to deploy Capital Match system. This system is made of several interlinked containers and docker-compose does not (did not?) work across several hosts. It seemed to me the official solution based on docker-machine, swarm and service registry was a bit complicated: Our configuration is mostly static, e.g. number, distribution and relationship between containers in known at deploy time. Hence I looked for a simpler solution, something that would be more networky: I am indebted to hashar for suggesting a GRE-based solution and to the following references for actual technical details:
In a previous post I described the overall design and architecture of Capital Match's core system. I now turn to providing more details on our development and operations environment which uses mostly Haskell tools and code. As there are quite a lot of moving parts, this large topic will be covered in two posts: The present one will focus on basic principles, build tools and development environment ; it shall be followed by another post on configuration management, deployment and monitoring. I consider both development and production environments as a single integrated system as, obviously, there is a porous membrane between the two especially in a small company with 4 developers. Although I have been interested in that topic since my first systems programming course in university, some 18 years ago, I do not consider myself a genuine systems administrator and I made a lot of mistakes while building Capital Match platform. But I do believe in the "you build it, you run it" motto and this is all the more true for a small startup team. Hence I have tried to pay attention to building a flexible yet robust system.
I am writing some library to easily implement event sourced services in Haskell based on previous experience at Capital Match, and while doing so I rewrote a simple file-based event store. This store communicates with core service using TBQueue, a bounded queue implemented over Haskell's STM. It took me couple of hours on Friday to solve a BlockedIndefinitelyOnSTM bug I was facing while testing this simple store. So today I posted a question about STM on Stack Overflow, as I did not have a clear intuition on why my code was failing, hence why my fix was correct.
This post contains the code I demonstrated as part of my talk at nCrafts. This work is based on the following references (stepping on the shoulders of giants, as always...):
Ceci est une retranscription d'un cours improvisé par Peggy Penez-Avez lors d'une session d'Agile Open France 2016, conçu plus ou moins comme une expérimentation du Dojo Philo. J'ai pu ajouté quelques notes personnelles...
I have read Matthew Crawford's Éloge du carburateur or Shop Class as Soulcraft a few years ago, in French and really liked the way it praised manual work, of the kind one does in a mechanics shop, and reconciled it with intellectual work. I bought The World Beyond Your Head and read it in English this time.
Une France post-apocalyptique et comme suspendue. Des gangs sillonent l'ex-capitale et le pays pour s'entretuer. Ils ont nom Sang Noir de Bakounine, Docteur Jdanov, Planète Potlatch, Jeunes Hégeliens... Julius Puech est le chef de la Fraction Armée Spinoziste. Il porte des bottes de lézard mauves et voue une haine farouche aux Hégeliens dont le chef s'appelle Thorez. Il aime Spinoza et François. Il a de la sympathie pour le Diable. Tout ça finira très mal.
This post is a follow-up to the session I gave at Devoxx France on MirageOS. It provides detailed instructions on how to setup a development environment to be able to:
I am not a mathematician, and this is probably the only regret of my life. When I was young I was too lazy to work seriously enough in High School to be accepted at one of the "Grandes Écoles". Or rather I was way too much interested by role-playing games to spend time doing homework. And I must say maths were quite boring in High School and Preparatory School, not even talking about Business school's math which barely went beyond basic arithmetics...
From August 2014 to April 2016 I have been working as CTO of a startup based in Singapore, developing a peer-to-peer lending platform using Haskell programming language and environment. This experience has now come to an end and this short blog post is a way for me to look back at those 20 months and reflect on the things I have learnt. I have some vague hopes this experience might be useful to others. But the main goal is for me to make explicit things that have stayed mostly implicit in order to ensure I can benefit from my own experience.
This is the first post of a series I am planning to write about my experience developing software as CTO of Capital Match, a Singapore-based startup providing a peer-to-peer lending marketplace for Small and Medium Businesses and private and corporate investor.
Je suis un grand admirateur de Bruno Latour, même si je ne suis pas certain de comprendre l'ensemble des concepts qu'il développe. Mais il y a une chose que je crois comprendre et qui m'attire dans sa pensée, c'est l'idée, développée en particulier dans Nous n'avons jamais été moderne et bien sûr Enquête sur les modes d'existence que Nature et Culture ne sont pas deux blocs antagonistes mais deux pôles en interaction dont les sciences et les techniques sont, entre autres, des médiateurs dont il faut se préoccuper. Dans EME il identifie un certains nombres d'êtres et de modes d'existence d'iceux. Latour cite régulièrement Gilbert Simondon et lui emprunte d'ailleurs une partie du titre de sa thèse: Du mode d'existence des objets techniques.
From Monday 2/11 to Thursday 5/11 I attended ML Week, a training session lead by Jeff Abrahamson who also organizes the Nantes ML Meetup. This session was great, not only because of its content, mostly an overview of the main techniques available and a hands-on dive into Python's eco-system to support data analysis, but also because of the discussions we had with other attendees and with Jeff whose depth of knowledge on the subject is truely amazing.
Il y a quelques mois j'ai eu l'occasion d'assister à une conférence de Nicolas Collin donnée à l'Hôtel de Département dans le cadre du Comité de Développement de la Loire-Atlantique. Sur les conseils de Nicolas Colin et après une discussion sur twitter, j'ai donc commandé et lu Technological Revolutions and Financial Capital de Carlota Perez, professeure à la prestigieuse London School of Economics. J'en recommande la lecture et j'appelle de mes voeux une traduction qui permettrait de mieux diffuser les hypothèses et le modèle intéressant - et positif - que propose Carlota Perez.
This post has been triggered by a tweet from Eric Torreborre on a talk by David Laing presenting the interaction of Free DSLs and Cofree interpreters at the Brisbane Functional Programming Group. I am currently engaged in the development of a Haskell-based system for Capital Match which is basically an API for managing peer-to-peer lending, and I am trying to formalise the API of the system as the result of a composition of several domain-specific languages.
When trying to introduce Test-Driven Development in a team or company, it is normal to encounter resistance: Change is always hard, whatever it may be, for everybody. It is a transgression of the current norm and rules that most people would not accept readily.
Functional Programming with bananas, lenses, envelopes and barbed wires est un article célèbre qui explore différentes formes (ou patterns) de récursion. C'est à dire que l'on cherche à exprimer la récursion non pas comme une caractéristique du langage mais comme une fonction d'ordre supérieur, ou un combinateur comme un autre, comme tel donc susceptible d'être généralisé, réutilisé, composé. Depuis ma découverte de cet article j'ai été fasciné par ses possibilités sans avoir jamais pris le temps de les comprendre vraiment. Cet article est une tentative d'explication de ce qu'est un catamorphisme, l'une des formes de récursions classifiées dans l'article sus-cité.
The first "agile" conference I attended was SPA 2008 which took place in a nice hotel in the english countryside. And one of the first session I attended at this conference was a session about Real options, initially planned to be run by Chris Matts but actually lead by Pascal Van Cauwenberghe and Portia Tung. I vividly recall that, although the session was far from being perfect, it was fun, intriguing and I learnt quite a few new things.
Qu'y-a-t'il de commun entre l'explosion de la navette Challenger, la collision entre deux pétroliers dans le Golfe Persique, la transformation d'une université d'entreprise en institut de formation externe, la persistance de transparents surchargés et illisibles dans les communications d'entreprise, le pont de la rivière Kwai ? Toutes ces petites et grandes catastrophes, et bien d'autres, sont le résultat de décisions absurdes, des décisions produisant de manière persistante des effets contraires au but initialement recherché, analysées par Chistian Morel dans le livre portant ce titre.
[^1]: Saying that pull system is at the heart of Lean is somewhat controversial, I guess. Some would say that kaizen, the continuous quest for perfection is actually at the heart of Lean.
Some thoughts on accidental vs. essential complexity triggered while reading Out of the Tar Pit by Peter Marks and Ben Moseley
Grâce à j'ai eu l'opportunité avec Cédric Pineau d'animer un atelier Extreme Startup à de Nantes. Voici quelquesnotes sur cette session, sans bien entendu rien dévoiler du contenu de l'extreme startup ! Nous étions une petite dizaine audépart avec des bases de code très diversifiées : 2 équipes en Java, une équipe en PHP, une équipe en node.js.
Je découvre André Gorz par cet ouvrage, Métamorphoses du travail, qui a paru aux éditions Galilée puis en Folio chez Gallimard. Je ne peux qu'en conseiller la lecture et il m'a donné l'envie de lire les autres livres de cet auteur dont j'avais entendu parler, ou qui était cité en référence d'autres auteurs, mais que je n'avais jamais lu.
Like most Java developer I have been accustomed over the years to use the concurrency capabilities of the Java language and platform to build multi-threaded programs. I understand Thread and Runnable, I (think I) know how to use volatile fields and synchronized blocks and methods, I have explored the java.util.concurrent.* utilities and used most of the high-level constructs in it, I even used Google's Guava concurrency features and Akka actors library.
L'innovation n'est pas l'invention mais la pratique sociale par laquelle une invention se diffuse dans une organisation ou unesociété. Innover c'est donc transgresser le jeu social, l'état courant du monde pour le transformer, y apporter de nouvellespratiques - technologiques, organisationnelles, relationnelles, commerciales... peu importe dans le fond. L'innovation réelles'oppose à l'innovation dogmatique qui est imposée par les directions. Cette dernière peut se transformer en innovation réellemais au prix d'une déviance, d'une réappropriation par les "subordonnées" de ce qui leur a été imposé pour l'adapter à leurréalité. Et inversement, une innovation issue de la base peut se voir "récupérée" par le sommet, normalisée et intégrée etdevenir ainsi partie intégrante du processus officiel.
Au départ, puisqu'il faut bien commencer quelque part, est le réseau [RES], plutôt que le "domaine". Un assemblage discontinu et hétérogène à partir duquel des acteurs produisent un domaine qui leur apparaît continu. Le réseau n'est pas fait en droit/religion/science mais en lui circule du droit, de la religion, de la science. Des choses passent et repassent en lui qui adoptent certaines formes d'existence et finissent par délimiter des domaines, abrités par des institutions, mais ce n'est pas le réseau qui délimite le domaine.