Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

Nicolas Rinaudo

@NicolasRinaudo@functional.cafe
mastodon 4.8.0-alpha.3+glitch
  • Open on functional.cafe

I write code for a living and for a hobby. Big fan of programming, Scala, and the sound of my own voice.

409 Followers
190 Following
37 Posts
Joined November 23, 2022
Blog:
https://nrinaudo.com/
Github:
https://github.com/nrinaudo/
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 3w ago
Replying to
If you have multiple tests that need to write to a folder, look at the output, then clean it, please consider that sometimes tests are executed in parallel and *use different output directories for each*.
2
1
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 3w ago
Replying to

@danicheg@indieweb.social my point is more - why create a mock of WrappedInt rather than use a WrappedInt?

1
1
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 3w ago
Replying to
However much you love your mocks, if you're mocking a pure data type with no behaviours attached, you're probably doing something wrong.
1
1
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 1mo ago
Replying to
@alexelcu@mastodon.social OCaml and its module language beg to differ
2
0
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 2mo ago
Replying to
@benjamingeer@piaille.fr je pense qu'il y a un juste milieu déplaisant mais acceptable à viser: ne pas rejeter les LLMs en block, au moins pendant l'entretien, mais ne pas non plus promettre des les utiliser pour générer du code. Il est possible, si l'on est forcé d'utiliser des LLMs (et donc de faire fi de ses objections ethiques, ecologiques, morales...), de les utiliser pour. par exemple, se documenter sur des techs qu'on ne souhaite pas apprendre mais devons utiliser. Ou comme moteur de recherche (si tant est qu'on va *systématiquement* valider les résultats à la source). Etc... Après évidemment se pose la question de, serait-on heureux dans une boite qui essaye de forcer les LLMs à tous les niveaux - parce que si c'est pour le code, on peut imaginer aussi que les emails vont etre générés, la documentation, que de nombreuses conversations vont etre "oui mais ChatGPT dit que...", ... Mais c'est parfois préférable à avoir faim...
3
1
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago

Just published the slides to my "Effects as capabilities" talk from BOBKonf and Scalar: https://nrinaudo.github.io/talks/capabilities.html

nrinaudo.github.io
4
0
3
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago

Very glad i started lifting weights again, but i now have muscle pain in some very odd places. Do i really use my armpits? Do i have muscles there!?

3
1
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 7mo ago
Replying to

@mhoye@cosocial.ca so, don't get me wrong, I agree with you wholeheartedly and am making this argument regularly at work. But it's important to view the other perspective: an LLM will follow your instructions far, far faster than a junior developer. Hell, it will follow my own instructions far faster than I would.

It's hard to make the argument that speed is not the important metric here - to show that LLM-generated code is at best average, by definition. That a human gets better every single time they perform a task, in a way LLMs don't. That a trained junior can train other juniors, and if you do it right, you get exponentially more developers, where an LLM stays the same.

The problem is that:

  • managers in our industry often care less about quality than about speed of delivery, because you can always fix later (which means, really, they'll have made a bundle and left before consequences must be dealt with).
  • the asshole developer, which is unfortunately (in my experience) the majority of us, cares about feeling better than the rest, not about making everybody better.
3
2
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 4mo ago

I'm looking at a little bit of code that, in order to do basic auth in a (very simple) web app, requires understanding Kleisli, IO, and a bunch of other rather arcane concepts.

I love to hate on Spring Boot as much as the next guy, but it's hard to justify favouring the Scala complexity (and the, I'm not exagerating, days of work to get this working) over the somewhat black magic of Spring Boot that gets you something working in an hour and you can move on with your life and never look back.

1
4
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago
Replying to
49 minutes 22. Not too bad!
2
3
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 5mo ago
Replying to
@hipsterelectron@circumstances.run ah interesting, that's just what I want to do. What documentation did you follow to achieve this?
1
2
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 5mo ago
Replying to
@hipsterelectron@circumstances.run I mean I'm not going to complain too hard, it's a massive effort and they're, to the best of my knowledge, pillaging my work to feed their models or ad customers...
1
2
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 5mo ago
Replying to
@hipsterelectron@circumstances.run I would have appreciated it if you had, of course, but I can also just wait until the migration to git-page is fully complete :)
1
0
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 5mo ago

Anybody using codeberg pages? I want to move my blog there, but the documentation is confusing - unless I'm mistaken, it documents the git-page method, but tells us to use the legacy v2 method if we want custom domains, and the legacy v2 method isn't documented?

1
2
3
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago
Replying to
@IsomorphicDude@fosstodon.org no, that never happens to me with men. Ahem.
1
0
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago

Oh this was frustrating. I didn't realise have of the lecture was missing.

Does anyone know where I can find the rest of Bauer's lecture on algebraic effects, the one that's linked on the Eff resource pages (https://github.com/yallop/effects-bibliography?tab=readme-ov-file#2018)?

github.com
1
0
1
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago
Replying to
The mental model that works for me starts from: we’re simply trying to prevent some variables from escaping their intended scope. That’s it. The way this happens is clever and sometimes a little convoluted, but it’s *not* to do with capabilities. It just so happens that we don’t want capabilities to escape their intended scope. But there are other such things.
1
0
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago

While everybody’s gushing about Project Hail Mary, it might be worth pointing out this tidbit from the book.

1
0
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago
Replying to
@RosaCtrl@social.vivaldi.net you have no control over whether you panic or not, isn't that the entire point? I'm glad you're less anxious now, and that I could at least try to help a little.
1
0
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago

I'm half amused, half appalled by the reactions I'm seeing to Claude's code leak.

Goes from "this is the most impressive piece of code I've ever seen" to "well it *is* april the 1st, surely this must be a joke".

1
1
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago
Replying to
@dwardoric@chaos.social i have another one in 2 weeks, and i’m hoping to do better. This one was on trails in the forest with lots of ups and downs, the next one is a lot more flat around the Fontainebleau castle
1
2
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 7mo ago
Replying to
@josch@floss.social @mhoye@cosocial.ca was that ever in doubt?
1
0
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 8mo ago
Replying to
@cellio@indieweb.social oh right i thought it was your question, sorry! I’m happy to reply with what i just said here, but i don’t have much more to say than that, not sure it’s worth it
1
1
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 1mo ago

I never know quite where I stand on verbose type names that duplicate namespace information.

For example, configuration types. Say I have one for databases, in the db namespace, and one for network, in the net namespace.

Should I call them both Config, or DbConfig and NetworkConfig?

The convention seems to be the latter, but then db.DbConfig is redundant, and while in the db namespace, I need to prefix everything with Db for no particular reason. And I can just locally alias them if I somehow need to use both in the same compilation unit.

So I personally prefer Config for both, but that's going against the general convention of just about every codebase I've ever worked on, and consistency is often better than good taste...

0
1
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago

I just naturally, without thinking, called someone I was on the phone for tech support "young man", and I don't think I'll ever forgive myself for that.

0
2
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 3w ago
Replying to
@custommonkey@fosstodon.org @danicheg@indieweb.social that is my point, yes - why mock data rather use data?
0
1
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 6mo ago
Replying to
@RosaCtrl@social.vivaldi.net no it was a very serious article on hacker news, they were genuinely impressed.
0
2
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 3w ago
Replying to
@custommonkey@fosstodon.org @danicheg@indieweb.social it's a point I made elsewhere in the thread. I'm happily throwing the baby with the bathwater here, because in my personal experience (which doesn't generalise, etc, etc), mocks and their ilks are more often misused than used. To the point that, to a whole set of developers, the misuse *is the point*. So sure, mocks & stuff can be used sanely and, well, usefully. It's just that they're generally not.
0
0
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 4mo ago
Replying to
@NohatCoder@mastodon.gamedev.place I actually think that one is less evil than Google's usual stuff. At least in my case, all services were unlinked by default, which I'm going to assume is a legal requirement because there's no way my opsec is that good, so this email is in fact trying to get you to opt in to the evil stuff. They probably do not want it in the spam folder.
0
0
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 3w ago
Replying to

@danicheg@indieweb.social @custommonkey@fosstodon.org let's say you want WrappedInt(1). You could just literally write that.

Instead, you decide to create a mock of WrappedInt - which might not be the right verb, it's merely the one used by the framework in use - and then configure that mock to return 1 when its internal state is accessed.

0
1
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 1mo ago
Replying to
@trenner@mastodon.social I'd not thought of that. *My* tooling doesn't do that :) But then again aside from some very specific scenarios (Java and Kotlin with IntelliJ, for example), I've found all IDEs I've used clunky, prone to bad automated decisions, and generally unpleasant to use. So this might be more of a me problem.
0
0
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 3w ago
Replying to
If you need to start an application with some configuration, have a test configuration, and a live one. Do not embark test configuration in production.
0
0
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 8mo ago
Replying to on indieweb.social
@cellio@indieweb.social i don’t necessarily have the theoretical background for this, but aren’t dependent types types indexed by values? Scala match types aren’t that, they’re a lot closer to haskell type families
0
1
0
0
Open post
Nicolas Rinaudo @NicolasRinaudo@functional.cafe
· 4mo ago

Oooh lovely: https://github.com/scala/scala3/pull/26246

github.com
0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 22:30:26 UTC