1,342 karma · joined February 7, 2008
If you involve five more, the result could be better in theory, but it will certainly take MUCH more time because of communication overhead.
Bugs happen during feature development, as you say, but then Claude is in the context, and I don't need to tell it where to go, it sees the bug with failing tests, or smth similar.
BTW. One thing that helps my Claude with debugging harder problems is that I tell it to apply scientific method to debugging. Generate hypotheses, gather pros/cons evidence, write to a journal file debug-<problem>.md, design minimal experiments to debunk hypotheses.
You can add that as a skill, and sometimes it will pick it up automatically, but it works wonders just as a single sentence in the input.
But during feature development? Not possible. And I consider myself a very fast developer
I made noises with my mouth, and it still sounded cool. Instead of recording those noises into any recording on my phone, I went back to sleep and couldn’t remember it the next morning :(
It’s becoming laughable when people use it to boast about microservices or something :)
I once made a joke during the talk that MongoDB is better than Postgres in two ways, and one of those ways is that it’s faster to say “Mongo” than “Post-gres-Qu-eL”.
Same vibe here. 90krps is not that longer than 90kBq.
With requests per minute, rpm: engine in my car revs up to 9000 requests per minute!
It’s sometimes funny to see some marketing posts like “we built our infrastructure to handle UNREAL load during the event, 100 million of requests during the day.” Which is just a bit more than 1100 rps.
Any kind of customization and I need to go jump through the hoops, I need to go look at the code what exactly happens there. But this class inherits a couple other classes, and I need to go read them as well. What for? Grug not want read seven basic multiple-inherited class just to display a list of objects.
So I disagree that it's a no-brainer. It's a no-no brainer for me.
As for writing the libraries, I have the same problems with all libraries that provide class-based API, where I need to inherit from libraries' classes to do my thing.
I like my code to be stupid and linear, to own the flow, so I can read the code and understand what happens there. Same is true for agents!
I am also willing to accept some LoC penalty for my approach. But it's shorter in practice, so win-win for me.
I was using Django since 2006 up to ~2012, and then again touched in 2014-2015. Never again.
Especially for the so-called AI-ready framework. Because of indirection, you either have to go read all the basic classes, or read documentation three times over. Instead of just reading the self-contained view function itself, once.
Especially true for an agent, it will have to go read the new framework’s docs and source over and over and over…
So I think the system prompt just pushes it way too hard to “simple” direction. At least for some people. I was doing a small change in one of my projects today, and I was quite happy with “keep it stupid and hacky” approach there.
And in the other project I am like “NO! WORK A LOT! DO YOUR BEST! BE HAPPY TO WORK HARD!”
So it depends.
Here is a gist that tries to patch the system prompt to make Claude behave better https://gist.github.com/roman01la/483d1db15043018096ac3babf5...
I haven’t personally tried it yet. I do certainly battle Claude quite a lot with “no I don’t want quick-n-easy wrong solution just because it’s two lines of code, I want best solution in the long run”.
If the system prompt indeed prefers laziness in 5:1 ratio, that explains a lot.
I will submit /bug in a few next conversations, when it occurs next.
> Given its key importance for the EU's competitiveness, the Commission is calling on the European Parliament and the Council to reach an agreement on the EU Inc. proposal by the end of 2026.
Produces a bunch of crap and it’s really hard to convince it that something needs to be changed. “Yep, I looked at the screenshot, it curves, so it’s okay.”
When they’re 30 lines apart, because it’s a function that builds a complex query with joins and filters based on some function arguments: not easy.
I don’t really understand how .pyi will give me proper Find usages here. I haven’t used them a lot, though, and just rely on pycharm Find Usages or just rg.
Also, what about foreign keys? Let’s say it’s a filter on user__email__startswith. Are you able to find it when executing Find Usages on User.email field?
With SQLAlchemy approach I can easily find all usages of a particular column everywhere.
.filter(Folder.user_id == user_id)
Versus .filter(user_id=user_id)
Grepping by user_id will obviously produce hundreds and thousands of matches, probably from dozens of tables.Not that I mind too much, I know how to get around without navigation.
Not that it’s a bad thing. Python removes stuff, and it takes time to upgrade to new versions.