{"version":"https://jsonfeed.org/version/1","title":"Micro.blog - Nicolas Rinaudo","home_page_url":"https://micro.blog","feed_url":"https://micro.blog/posts/NicolasRinaudo@functional.cafe","_microblog":{"about":"https://micro.blog/about/api","id":"734565","username":"NicolasRinaudo@functional.cafe","bio":"I write code for a living and for a hobby. Big fan of programming, Scala, and the sound of my own voice.","pronouns":"","is_following":false,"is_you":false,"following_count":0,"discover_count":0},"author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://micro.blog/photos/200/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg"},"items":[{"id":"87460556","content_html":"<p><span class=\"h-card\"><a href=\"https://neuromatch.social/@jonny\" class=\"u-url mention\">@<span>jonny</span></a></span> *I* am not making that argument. Merely thinking that we're about to hear a lot of \"you tech people complain about the horrible code quality of this software that was generated using Claude - and yet it's great software. You must be full of it\".</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/116335030227584871","date_published":"2026-04-02T12:08:06+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2026-04-02 12:08","date_timestamp":1775131686,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"87454189","content_html":"<p><span class=\"h-card\"><a href=\"https://neuromatch.social/@jonny\" class=\"u-url mention\">@<span>jonny</span></a></span> now here's a genuine question, which I'll preface by stating I'm virulently anti-LLMs in all scenarios I can think of and in code-generation in particular.</p><p>If Claude Code is the mess that everybody seems to say it is, but nobody could tell from using it - most people seem to think it's quite a good piece of software, really, if you ignore the moral, legal, ethical... problems with it - then is it really a self own? Or is that going to convince a lot more people that code quality is not that important after all?</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/116334463654336660","date_published":"2026-04-02T09:44:01+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2026-04-02 09:44","date_timestamp":1775123041,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"85326156","content_html":"<p><span class=\"h-card\"><a href=\"https://floss.social/@josch\" class=\"u-url mention\">@<span>josch</span></a></span> <span class=\"h-card\"><a href=\"https://cosocial.ca/@mhoye\" class=\"u-url mention\">@<span>mhoye</span></a></span> was that ever in doubt?</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/116159073058288054","date_published":"2026-03-02T10:19:53+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2026-03-02 10:19","date_timestamp":1772446793,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"85319682","content_html":"<p><span class=\"h-card\"><a href=\"https://todon.nl/@benjohn\" class=\"u-url mention\">@<span>benjohn</span></a></span> oh that's interesting I hadn't considered the regional aspect, thanks!</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/116158413997807455","date_published":"2026-03-02T07:32:17+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2026-03-02 07:32","date_timestamp":1772436737,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"85056235","content_html":"<p><span class=\"h-card\"><a href=\"https://piaille.fr/@unpied\" class=\"u-url mention\">@<span>unpied</span></a></span> d'accord. Donc j'évite amazon par principe, mais je peux le prendre un peu n'importe où ailleurs. Compris!</p><p>Travail Famille Patron m'a beaucoup plu aussi, merci pour l'eclat de rire.</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/116136024598588042","date_published":"2026-02-26T08:38:21+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2026-02-26 08:38","date_timestamp":1772095101,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"85055488","content_html":"<p><span class=\"h-card\"><a href=\"https://piaille.fr/@unpied\" class=\"u-url mention\">@<span>unpied</span></a></span> voilà qui m'a donné envie de rire et de pleurer en meme temps, je vais donc de ce pas acheter l'ouvrage.</p><p>Ou est-ce que je l'achete pour maximiser la part qui te revient? leslibraires.fr ?</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/116135934019309340","date_published":"2026-02-26T08:15:19+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2026-02-26 08:15","date_timestamp":1772093719,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"84608540","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.social/@vascorsd\" class=\"u-url mention\">@<span>vascorsd</span></a></span> <span class=\"h-card\"><a href=\"https://mastodon.social/@alexelcu\" class=\"u-url mention\">@<span>alexelcu</span></a></span> ocaml: yes and no. OCaml has something different: untracked effects. They’re more powerful than capabilities , at least in their current form, because handlers get access to the continuation. They’re less powerful, at least for the moment, because they’re not tracked in types (think of them as unchecked exceptions).</p><p>This makes it hard to look at what OCaml does and draw conclusions for Scala.</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/116098873582352325","date_published":"2026-02-19T19:10:22+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2026-02-19 19:10","date_timestamp":1771528222,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"84605195","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.social/@vascorsd\" class=\"u-url mention\">@<span>vascorsd</span></a></span> <span class=\"h-card\"><a href=\"https://mastodon.social/@alexelcu\" class=\"u-url mention\">@<span>alexelcu</span></a></span> no, it does not. You’re conflating two unrelated things.</p><p>With capabilities, you keep track of effectful computations just as much as with monads - and often in a more granular way, since there’s no “fuck it let’s make it IO so that i can do all the effects”.</p><p>What you lose is RT - because direct style implies call by value. The argument there is that RT is great when you can have it, necessary in some cases (lazy languages), but often a simple trade off, a matter of personal preference. Do I prefer having it? Sure! But not at any cost.</p><p>What you lose is not the ability to reason about your code and isolate chunks in which you can reason easily. You lose the ability to do some refactorings “thought-free”. What you need to ask is what you gain instead, and whether the tradeoff is worth it.</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/116098715927629978","date_published":"2026-02-19T18:30:16+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2026-02-19 18:30","date_timestamp":1771525816,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"84586143","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.social/@vascorsd\" class=\"u-url mention\">@<span>vascorsd</span></a></span> <span class=\"h-card\"><a href=\"https://mastodon.social/@alexelcu\" class=\"u-url mention\">@<span>alexelcu</span></a></span> there’s a long conversation to be had there, not one suited for social media, but:<br>- i don’t think readability is the selling point. Not having to learn a second language on top of the host language is.<br>- losing RT is definitely a blow, but not the show stopper it’s made out to be. Some invalid refactorings become runtime rather than compile time errors, this is true. But it’s just as easy to find examples where imperative code behaves correctly where the monadic style compiles but does something other than what you want.</p><p>I’m not arguing that one is inherently better, mind. I am, at least until i have more experience and hindsight, arguing that one is NOT inherently better than the other.</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/116097528934302074","date_published":"2026-02-19T13:28:24+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2026-02-19 13:28","date_timestamp":1771507704,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"82114503","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.social/@SusanPotter\" class=\"u-url mention\">@<span>SusanPotter</span></a></span> ah, that's the bit I wasn't too sure about. This is specifically for organisations, not for individuals, right?</p><p>I'm maybe slightly less interested in that, for the very simple reason that there is absolutely 0 chance I'll ever get my employer to change anything in that area.</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/115899459117744863","date_published":"2026-01-15T13:56:39+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2026-01-15 13:56","date_timestamp":1768485399,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"82113584","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.social/@SusanPotter\" class=\"u-url mention\">@<span>SusanPotter</span></a></span> I'm not fully sure I understand that sentence, if I'm being honest - what's a work public cloud habit?</p><p>But if the point is \"how to get off corporate cloud, here are alternatives and how I set them up\", then yup, I'd be interested in that</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/115899392732347278","date_published":"2026-01-15T13:39:46+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2026-01-15 13:39","date_timestamp":1768484386,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"77744721","content_html":"<p><span class=\"h-card\"><a href=\"https://techhub.social/@alexboisvert\" class=\"u-url mention\">@<span>alexboisvert</span></a></span> thank you for the kind words, by the way. This kind of thing is well out of my comfort zone and i’m not at all sure it’s interesting to anyone but me</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/115531641503925203","date_published":"2025-11-11T14:55:47+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-11-11 14:55","date_timestamp":1762872947,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"77744597","content_html":"<p><span class=\"h-card\"><a href=\"https://techhub.social/@alexboisvert\" class=\"u-url mention\">@<span>alexboisvert</span></a></span> to be clear, i don’t argue that working code has no value, merely that code without its Theory is at best dangerous, at worst a trap that will end up costing more than rewriting from scratch</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/115531630444136437","date_published":"2025-11-11T14:52:58+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-11-11 14:52","date_timestamp":1762872778,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"75864805","content_html":"<p><span class=\"h-card\"><a href=\"https://hachyderm.io/@reillypascal\" class=\"u-url mention\">@<span>reillypascal</span></a></span>  not sure it qualifies but the adventures of Thursday Next, by Jasper Fford, where the characters live inside books and use footnotephones, which is exactly what it sounds like - entire phone conversations in the footnotes.</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/115380114291364083","date_published":"2025-10-15T20:40:25+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-10-15 20:40","date_timestamp":1760560825,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"72313058","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.cloud/@neurologo\" class=\"u-url mention\">@<span>neurologo</span></a></span> I'm not complaining, and *have* studied Spanish, it's just that I'm absolutely terrible at it. Which is a shame, because it's a very fun language to be passionate in!</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/115112454630729237","date_published":"2025-08-29T14:11:03+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-08-29 14:11","date_timestamp":1756476663,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"72312857","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.cloud/@neurologo\" class=\"u-url mention\">@<span>neurologo</span></a></span> that second one is probably overestimating my ability to understand Spanish by quite a bit :)</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/115112435951599468","date_published":"2025-08-29T14:06:18+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-08-29 14:06","date_timestamp":1756476378,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"70631347","content_html":"<p><span class=\"h-card\"><a href=\"https://merveilles.town/@d6\" class=\"u-url mention\">@<span>d6</span></a></span> probability distributions is sort of what I do, except I change the distribution every time I go \"one level deeper\": the odds of recursive data types depend on the size, which is reduced each time.</p><p>I used to carry an actual `depth` value in all generators, increasing that all the time and saying it can never go an arbitrary value (the way circe does, I think?), but that just  makes everything a little unpleasant...</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/114982281028520755","date_published":"2025-08-06T14:26:12+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-08-06 14:26","date_timestamp":1754490372,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68290664","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.social/@vascorsd\" class=\"u-url mention\">@<span>vascorsd</span></a></span> I’m trying to teach the joy and art of programming, not the mediocrity of vibe coding</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/114802150795867070","date_published":"2025-07-05T18:56:42+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-07-05 18:56","date_timestamp":1751741802,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"67199265","content_html":"<p><span class=\"h-card\"><a href=\"https://softwaremill.social/@adamwarski\" class=\"u-url mention\">@<span>adamwarski</span></a></span> on the one hand I agree, but then they trickle the releases on linkedin, so I thought better safe than sorry...</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/114714724047795895","date_published":"2025-06-20T08:22:56+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-06-20 08:22","date_timestamp":1750407776,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"67113571","content_html":"<p><span class=\"h-card\"><a href=\"https://hachyderm.io/@nedbat\" class=\"u-url mention\">@<span>nedbat</span></a></span> i’m used to expected == actual because some languages support null and have equality as a method (Java comes to mind).</p><p>actual == expected might then yield a null pointer, where expected == actual would result in a useful error message such as “… was not null”</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/114708346693379305","date_published":"2025-06-19T05:21:05+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-06-19 05:21","date_timestamp":1750310465,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"67070274","content_html":"<p><span class=\"h-card\"><a href=\"https://softwaremill.social/@adamwarski\" class=\"u-url mention\">@<span>adamwarski</span></a></span> oh are we allowed to share these? I thought they were for attendants only for the moment?</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/114705266395328320","date_published":"2025-06-18T16:17:44+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-06-18 16:17","date_timestamp":1750263464,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"64043212","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.social/@sellout\" class=\"u-url mention\">@<span>sellout</span></a></span> <span class=\"h-card\"><a href=\"https://fosstodon.org/@arosien\" class=\"u-url mention\">@<span>arosien</span></a></span> well that depends. Monadic effect tracking has all the problems of coloured functions, for example - working with effectful functions is a pain, they’re weird to call and even weirder to compose, suddenly the order of effects matters…</p><p>I think some flavours of effect tracking work, though. Capability passing style, annoying though their name is, might be an example.</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/114478887920923357","date_published":"2025-05-09T16:46:42+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-05-09 16:46","date_timestamp":1746809202,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"63345612","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/mms@bsd.cafe\" class=\"u-url mention\">@<span>mms</span></a></span> I disagree with the \"no one understands\". If you manage to get the exact same level of drunk, you have a decent shot at understanding it.</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/114427522284817410","date_published":"2025-04-30T15:03:45+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-04-30 15:03","date_timestamp":1746025425,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"61455131","content_html":"<p><span class=\"h-card\"><a href=\"https://hachyderm.io/@janvhs\" class=\"u-url mention\">@<span>janvhs</span></a></span> is it? I thought it might be but the bits on its head don't look quite right...</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/114279603852844062","date_published":"2025-04-04T12:06:09+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-04-04 12:06","date_timestamp":1743768369,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"61447833","content_html":"<p><span class=\"h-card\"><a href=\"https://fosstodon.org/@wimpy\" class=\"u-url mention\">@<span>wimpy</span></a></span> I do not know what that little pink dragon is but it's adorable.</p>","url":"https://functional.cafe/users/NicolasRinaudo/statuses/114279116609195267","date_published":"2025-04-04T10:02:14+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2025-04-04 10:02","date_timestamp":1743760934,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"14715818","content_html":"<p>While I'm asking for hardware recommendations, I'm in the market for a headset:<br>- wireless<br>- no batteries to change (so, rechargeable via USB, I'd say)<br>- comfortable when wearing glasses<br>- works on linux (which probably means \"with a dongle\")</p>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109460594227569047","date_published":"2022-12-05T10:28:37+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-12-05 10:28","date_timestamp":1670236117,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715817","content_html":"Working with juniors, I'm again surprised by how little training people get in data modelling.It's not that I'm particularly upset by seeing tons of product types with dozens of optional fields (although yes, I am, a little bit), but that a lot of people don't seem to see that there mig... <a href=\"https://functional.cafe/@NicolasRinaudo/109456437793560084\">functional.cafe</a>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109456437793560084","date_published":"2022-12-04T16:51:35+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-12-04 16:51","date_timestamp":1670172695,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715816","content_html":"<p>That's the box I mean. You wouldn't believe the mess that's in it.</p><p><img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Ffunctional.cafe%2Fsystem%2Fmedia_attachments%2Ffiles%2F109%2F440%2F648%2F901%2F283%2F617%2Foriginal%2F9d5b8fddfabf8876.jpeg\" loading=\"lazy\"></p>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109440650193650975","date_published":"2022-12-01T21:56:36+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-12-01 21:56","date_timestamp":1669931796,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715815","content_html":"In my long running quest for the most uncluttered desktop possible, I'm now looking for a usb-c docking station that has:- 3+ USB-A connectors (mouse, keyboard, webcam)- gb ethernet- good quality hdmi- power delivery of high enough wattage for a Dell XPSIdeally, it'd be small and with a... <a href=\"https://functional.cafe/@NicolasRinaudo/109440626623851675\">functional.cafe</a>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109440626623851675","date_published":"2022-12-01T21:50:36+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-12-01 21:50","date_timestamp":1669931436,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715814","content_html":"A colleague just pointed out that in Scala, since sum types are encoded as sealed hierarchies, it's possible for multiple sum types to share the same alternatives.I'm not sure it's useful, but I'd never considered it and it rather blew my mind, so here's a concrete example: exclusive an... <a href=\"https://functional.cafe/@NicolasRinaudo/109438766483514133\">functional.cafe</a>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109438766483514133","date_published":"2022-12-01T13:57:33+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-12-01 13:57","date_timestamp":1669903053,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715813","content_html":"<p>I quite like the “A only if B” reading of “A =&gt; B”, because it involves no backtracking. Just replace =&gt; with “only if”.</p><p>“if A then B” requires you to have read =&gt; before you can start reading out loud.</p>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109428439841439834","date_published":"2022-11-29T18:11:20+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-11-29 18:11","date_timestamp":1669745480,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715812","content_html":"<p>For some reason, the fact that “if A then B” and “A only if B” are logically the same sentence is something that I have to think about quite a bit each time I want to convince myself it’s true.</p>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109428427967601850","date_published":"2022-11-29T18:08:19+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-11-29 18:08","date_timestamp":1669745299,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715811","content_html":"<p>One way I’m starting to think about this is, here is good for interactions where twitter was good for building an audience.</p>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109417729017981548","date_published":"2022-11-27T20:47:26+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-11-27 20:47","date_timestamp":1669582046,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715809","content_html":"After a few days on mastodon, I can say that while I find the clients I’ve tried mostly unpleasant, it’s more than made up for by the weird realisation that the lack of counters (number of likes, etc…) is weirdly freeing and encourages a very different tone.In a way, it reminds me of IR... <a href=\"https://functional.cafe/@NicolasRinaudo/109417720954816523\">functional.cafe</a>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109417720954816523","date_published":"2022-11-27T20:45:23+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-11-27 20:45","date_timestamp":1669581923,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715808","content_html":"Just realised I was, maybe, a bit of a hypocrite.Whenever someone starts saying things like “FP is about reflexive transparency” or “FP is about functions whose type don’t lie”, I’ll inevitably end up interjecting that they’re talking about pure FP, or statically checked FP.But for the ... <a href=\"https://functional.cafe/@NicolasRinaudo/109406292835219573\">functional.cafe</a>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109406292835219573","date_published":"2022-11-25T20:19:04+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-11-25 20:19","date_timestamp":1669407544,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715807","content_html":"<p>I noticed a few people with a blue check on here - unexpected, is that an emoji of some sort? I thought this sort of vanity feature wasn’t part of Mastodon?</p>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109404267808913985","date_published":"2022-11-25T11:44:05+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-11-25 11:44","date_timestamp":1669376645,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715806","content_html":"So, as a complete Mastodon newbie - is there a way to explore different instances? Let's say, for example, that I just heard about types.pl, and that I'd like to have a look at what's going on there, maybe find a few people to follow. How would I got about that? Do I need to create an a... <a href=\"https://functional.cafe/@NicolasRinaudo/109395148091997776\">functional.cafe</a>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109395148091997776","date_published":"2022-11-23T21:04:49+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-11-23 21:04","date_timestamp":1669237489,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715805","content_html":"<p>I also just learned that “how to bake pi” was translated to “comment cuire un 9” in French, which, wow, great work feom the translator there.</p>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109394330530277676","date_published":"2022-11-23T17:36:54+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-11-23 17:36","date_timestamp":1669225014,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14715804","content_html":"<p>Didn’t realise Eugenia Cheng had a new book out. Anybody read “the joy of abstraction”? I assume it’s good - it is, after all, by Eugenia Cheng - but is it as introductory as How to bake Pi, or does it go slightly more in depth?</p>","summary":"","url":"https://functional.cafe/@NicolasRinaudo/109394325399260447","date_published":"2022-11-23T17:35:35+00:00","author":{"name":"Nicolas Rinaudo","url":"https://functional.cafe/@NicolasRinaudo","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.functional.cafe%2Faccounts%2Favatars%2F109%2F393%2F657%2F781%2F752%2F469%2Foriginal%2F97b575f3c08052ae.jpg","_microblog":{"username":"NicolasRinaudo@functional.cafe"}},"_microblog":{"date_relative":"2022-11-23 17:35","date_timestamp":1669224935,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}}]}