3,343 karma · joined March 5, 2014
Blogging about React and JS at https://daveceddia.com.
Author of Pure React.
dave@daveceddia.com or @dceddia on Twitter
This part hits home for me. I only have 1 app to support and the volume is low, well below the 100/day the author gets, but it can still be a struggle to get myself to get in there and write the replies. It’s all easy “on paper” but it becomes more of a mental game that’s hard to even describe without sounding like an idiot.
I’ve tried hiring some help and ran into the same thing where some problems were just too technical, and I had to hop in. It was wonderful to have their help for all the other stuff, but tough to justify the cost.
It seems like an area where AI could help draft replies that I could read over before sending. If that could even get to 50% correct based on past conversations it’d be pretty great. (Or who knows, maybe this is the kind of thing you build and then realize it creates more problems than it solves)
Control was very good!
Definitely agree I think Ruby's closeness to natural language is a big win, especially with the culture of naming methods in self-explanatory ways. Maybe even moreso than in most other languages. Swift and Objective C come to mind as maybe also being very good for LLMs, with their very long method names.
I just ran into an example of this trying to get it (Windsurf + Claude) to "rewrite this Objective C into Rust using the objc2 crate". It turns out objc2 made some changes and deprecated a bunch of stuff.
It's not figuring stuff out from base principles and reading the types to write this code, it's just going off of all the examples it was trained on that used the old APIs, so there's lots of errors and incorrect types being passed around. Hopefully it'll keep getting better.
Overall with Rails though, testing has always been pretty important partly because of the lack of types. I have noticed Windsurf is pretty good at taking a controller or model and writing tests for it though!
I've heard this criticism a few times – the fear that LLMs will be bad at Rails because there's no types – and I don't think it's accurate.
At least in my experience (using the Windsurf IDE with Claude 3.5 Sonnet) LLMs do a very good job in a Rails codebase for stuff like "I want to create a new page for listing Widgets, and a Create page for those Widgets. And then add pagination.". I've been able to spin up whole new entities with a model/view/controller and database migration and tests, styled with tailwind.
I think the reason strong types don't matter as much as we might assume is because Rails has very strong conventions. Routing lives in routes.rb, controllers go under app/controllers, most controllers or models will look very similar to other ones, etc.
Type information is something that has to be presented to the LLM at runtime for it to be accurate, but convention-over-configuration is stuff that it will have picked up in training data across thousands of Rails apps that look very similar.
On top of that, the core Rails stuff hasn't drastically changed over time, so there's lots of still-accurate StackOverflow questions to train on. (as opposed to something like Next.js which had a huge upheaval over app router vs pages router, and the confusion that would cause in training data).
In my opinion the future of LLM-aided Rails development seems pretty bright.
I miss that feeling. It doesn’t come around as often now, but I still feel like I move fastest when I can shut off the part of my brain that’s been trained on years of online discourse about right and wrong ways to do things, and just… do them.
I suspect they also benefit from the massive amounts of data gathering. A huge portion of the entire internet's traffic is going through Cloudflare, SSL-terminated. It's like being plugged into the server-side (unblockable) access log of every website. That would be worth a lot.
I also suspect their support of web attestation is not benevolent. With the level of control they already have, it's increasingly possible for them to flip a switch, with the full support of Apple and Google and Microsoft, so that only authorized devices have access to the web. curl on Linux? Not authorized. Outdated OS? It's up to Apple whether they feel like signing your request – can't expect them to support it forever! – but also you can't access that website without their approval.
I feel like a conspiracy theorist here but this stuff just seems way too close at hand.
I tend to doubt the LLM when it tells me about some great thing I didn’t know existed, and even though pretty often it’s right, I usually just go and google the thing just to be sure, especially if there’s some risk in being wrong.
In this case I’d have googled “AWS spot instance” and read up on them a bit, and hopefully noticed the clues in the search results that set off alarm bells saying things like “how to save state between spot instances” and “if you do xyz you can use spot instances without losing any data”.
I’m gonna have a go with plain text accounting for the bookkeeping for a bit. Looking at what Bench was doing, and my books in general not being too complicated I think it’ll be fine, maybe better actually because I’ll have a closer eye on things. Still using a CPA to file taxes though.
It feels like market forces can push things in either of 2 directions:
(a) People hate practice X, so they shun companies that do it, and enough go to companies who don't do X, which leads to fewer companies doing X
(b) One company gets away with doing X, and despite some complaints, they do just fine – and other companies realize they can get away doing X too, and soon every company is doing it
“Sorry, we can’t ‘sell’ our cars anymore. The law says we have to call them a ‘lease’ and that’ll be be $X,XXX/year”
Just generally I’d always have an eye on the exit and watch for signs of things going down hill. Anything VC-backed warrants more care. Think about how they could alter the deal and plan accordingly.
In early experiments it feels like Inertia.js be this same feeling but for Rails and Laravel.
I never got very far on the Gatsby train. It always felt so slow and fragile during local dev, and while GraphQL was cool it felt like total overkill for most of the data I needed to grab (like… markdown files from disk).
Another example of this was Apple’s response to being forced to allow alternate app stores, where they added enough fees and restrictions that it was effectively unusable. The spirit of the law (allow anyone to make apps without a gatekeeper and fees) was not what happened.
It feels like one of those situations where we “get exactly what we asked for”. Like those movies with an Evil Genie who delivers on their wishes in the sneakiest way possible. “You wished for $1M, so I burned your house down - but look at all the insurance money you got!”
Or maybe a bit like how everyone wanted their cable bills to be cheaper (“just let me pay for the few channels I watch!”) and what we got was 15 different streaming services at $12/month.
I wonder if it’s a similar thing here. Maybe the lighter embed is small enough that a huge swath of people is actually able to load a video now, but they bounce because playback is too slow on their device/connection. It would shows as a higher percentage of “person stopped watching video” instead of (nothing, because they never fully loaded the player).
And it’s faster to order, too! At least at the Starbucks’ I’ve been to, the barista/cashier will usually turn around and pour it immediately. Other drinks (even iced/cold brew) go into the queue.