Nicolas Rinaudo
mastodon 4.8.0-alpha.3+glitchI write code for a living and for a hobby. Big fan of programming, Scala, and the sound of my own voice.
@danicheg@indieweb.social my point is more - why create a mock of WrappedInt rather than use a WrappedInt?
Just published the slides to my "Effects as capabilities" talk from BOBKonf and Scalar: https://nrinaudo.github.io/talks/capabilities.html
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!?
@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.
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.
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?
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)?
While everybody’s gushing about Project Hail Mary, it might be worth pointing out this tidbit from the book.
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".
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.
Oooh lovely: https://github.com/scala/scala3/pull/26246
@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.
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...