A beatster from nor-easter... assuming you were in Minneapolis... And not going too far north east. I use .rb, .py and .js to power business intelligence apps.
@dhh I’ve been curious of your base prompts. You have a delicious style of domain modeling, “call things what they are”, leveraging the tools of Ruby very well. I find it hard to get LLMs to not program in very “procedural recipe local variable” ways, even under instruction.
@english_rad@nateberkopec Ohhh! A nice phrase for this! Almost every “ugh LLM” conversation I’ve had starts with the other person noting `—`, but those don’t get me as much. For me it’s the “contrastive negation”. Which I guess I just did also. (They also re-enforce in parenthesis in a specific way).
@juliknl@bradgessler Found the smoking gun. At 1:30, Tim noticed a game on Twitter that highlights things Claude says too much. He makes fun of The Smoking Gun with his colleagues constantly, and didn’t see it replied yet.
At 1:31, Tim saw someone had replied that already 9 hrs ago.
Damn.
Ruby on Rails is probably the most token-efficient way to write a real web app together with agents that doesn't immediately fall apart with security holes and unscalable decisions. https://t.co/ql3QEHz0PM
@jeremysmithco I’ll add, I’m using Claude code, not copilot. I don’t know if or how much that matters.
I’ve been really surprised at how good Claude is at getting going with very little info. Sticking to vanilla rails conventions feels like it may be paying dividends.
@jeremysmithco Well, I mean files like https://t.co/n6tqSN6Pfx, https://t.co/k6d11DWXV0, product design docs, etc. I’ve been working in a project very successfully with none of it, which contradicts common wisdom. But I’ve seen a handful of rails people describe a similar sentiment.
@jeremysmithco@jeremysmithco We definitely hit those same type of false positives, but it usually highlights a few notes worth consideration. I’m curious what extra context your review session gets. I’ve been feeling like less is more in my current project.
@jeremysmithco I’ve had a mixed bag, but generally slightly positive. It’s surprising because we aren’t adding any extra context with claude files, and there’s not all the robust PRD docs, etc. Most strangely, the review prompt is literally just “Review this branch against main, output in MD”
@godwincodes@dhh@igor_alexandrov@heyhey@rspec@claudeai When I was a ruby noobie, I was confused by the zealotry of this too. I spent a lot of time feeling bad that I couldn't figure out why people preferred it so strongly.
I do think the rspec runner is generally pretty dope out of the box though.
@Zain_Wania@dhh@igor_alexandrov@heyhey@rspec@claudeai In short: Rails with Minitest runs each test in a transaction, so they all have an isolated view of the db. With fixtures, you create a useful initial state at the beginning of the test run that all tests get to start from instead of creating fresh DB state for each test.
@jorgemanru@dhh We're using Rails more widely in our company on a full team now, but have issues managing schema migration timing between devs and branches. Lately you guys have been pretty open-book on how 37s works. Any chance we can hear how you manage migrations on a team?
@jnunemaker I’ve gone back and forth about what kind of context to create (https://t.co/n6tqSN6Pfx, skills, agents, etc). Sometimes I feel like less is more in Rails. But, managing a team of Claude, surely you’re leveraging those kind of context tools. What balance do you use?
@robbyrussell This talk really helped changed my perspective on legacy code: https://t.co/cwml3KDHi4
Most code never earns a legacy to be frustrated by.
@zilasino Yes. The context is “market definitions” that get registered to customize how data is processed, and each type is essentially a strategy pattern implementation. It feels pretty good!
Upgraded to Rails 8.1 and was exploring `bin/ci`. Tests took 6X longer to run in the new CI tooling.
It turns out the env var `CI` gets set to true in the Ruby class, triggering eager loading. I'd prefer that in `bin/ci` instead. Hard to find difference.
https://t.co/Vf25R8fmsD