This is honestly a very, very naive statement. We are social animals and we naturally gravitate towards devaluing and shaming certain styles of speech. We police speech already! It’s often unfortunate, but it’s not devoid of function. I, for one, am happy with shaming LLM speech. It’s never been so easy to detect lazy thinking.
It’s short term happiness at best, and at the expense of every other possible architectural characteristic (maintainability, performance, reliability, scalability, you name it).
Updating Rails is one of the most painful processes ever. There is no real way to be sure it works. You just have to have 50,000 unit tests, cypress tests, and then hope and pray.
On any sufficiently large and old app, something will always break in a way that isn't caught by your tests or manual testing, and only shows up after it goes out live.
I have taken applications from 2-to-3, 3-to-4, and so on, through 8.X.
If anything it has gotten better/easier over time. The most challenging upgrades were 2.X to 3.X (for reasons I can't recall), and then 6.X to 7.X (for an application that had issues adopting zeitwerk). In both of those situations, there was a lot of rote legwork, but once tests were passing, the application was working reliably. The other upgrades (3-to-4, 4-to-5, 5-to-6, 7-to-8) weren't happy-fun-rainbows-and-unicorns, but they weren't catastrophically complicated? Not even in fairly large codebases.
For each of these, a strong test suite was the best tool, which it sounds like you already know?
In my experience, the other impactful factors were:
(1) Reading the CHANGELOGs and knowing enough about Rails to know what they meant for the application.
(2) Using test fixtures (or fixtures with only some factories) for a quicker feedback loop for engineers.
(3) Having a true QA function in the company that isn't just engineers testing their own code.
Honest question: what’s an example of a fully-featured web framework that makes upgrading a “large & old” application painless? In my experience, upgrading an underlying framework that a piece of complex software depends upon without breaking everything pretty much always requires time & good test coverage.
Why do many people mention the need of tests for types in dynamically typed languages?
In Rails my tests are mostly to ensure that a request to a controller returns the expected response and the expected changes in the database. Unit tests are often on validations and the errors they return for invalid data. Then there are functional tests that drive a headless browser.
A cursory look at the fall of extreme poverty across the world, over the last few decades, is enough to refute the idea that the world is largely based on exploitation.
I agree that things are getting better, but your sentiment feels a bit premature; exploitation is still alive and well in many supply chains. The people who manufacture the products you buy often live much harder lives than you.
You assume that exploitation and material improvement can not coexist. You can be exploited just as well, by that I mean you're not getting a fair share for what you contribute to the system.
That’s really depending on which scale one use. Those who define the terms like "rich" and "poor" are already setting the frame to let the narrative almost only able to go into their specific envisioned perspectives.
Has wealth been distributed from exploiter to exploited? Doesn't seem like it. It just seems like the 99% are being exploited a little more evenhandedly.
A big chunk of it was the improvement in China, which started with a recovery from a previous disastrous decline.
The last 100+ years have also been atypical. Two world wars which disrupted economies in ways that lead to redistribution, huge changes from the end of European empires, the fall of the Soviet Union and communism, and technological advances that automated work but created may new jobs.
I would be very reluctant to assume a continuing trend from that.
I suggest a look at the recent economic development of Bangladesh, if you want something less abstract to illustrate the point that the reduction in poverty is very noticeable.
You would think that a great reduction in extreme poverty would give people pause, but it is almost always barely acknowledged. The strange conclusion is that people who tell you they care the most about poverty do not actually care about it in the slightest. It is just a vehicle for their resentment.
My last impression of Bangladesh was the fire accord stuff, i.e. build emergency exits and get garment factory owners to stop locking their workers inside since they keep going up in flames.
Maybe they've grown. Is Bangladesh at the stage where they outsource labour to other countries yet?
Bangladesh's Human Development Index (HDI) has shown a consistent upward trend, reaching 0.685 in the 2023/2024 report, ranking 130th out of 193 countries. It remains in the "Medium Human Development" category, marking a 72.5% increase in HDI value since 1990 due to significant improvements in life expectancy, education, and GNI per capita.
A nice bonus is that sysadmin tasks tend to be light in terms of token usage, that’s very convenient given the increasingly strict usage limits these days.
No need for any AI-specific tool, this is exactly what devcontainer is for! Just tell your agent to use devcontainer up (and docker compose down the other way).
Devcontainers always disappointed me. The sales pitch is that everyone uses the same container, but that's not accurate. Everyone builds a container from the same config and it'll be similar, but it takes a ton of effort to make sure it's identical.
The idea that a devcontainer gets built on-demand instead of checked out like 'docker pull ..." has always felt weird to me. It's so close to being awesome, but ends up being barely useful.
Or maybe I'm wrong. Is there a way to checkout an immutable devcontainer?
The thing is, with manual coding, you spot a view in the distance, you trek your way for a few hours, and you realize when you get there that the view isn’t as great as you thought it was.
With LLM-assisted coding, you skip the trek and you instantly know that’s not it.
I have Hermes agent run a cron each hour to check if the Steam Controller if finally on sale. I don’t if that resonates with you, I quite like that use case personally :)
Must be some ironic comment that I didn't get, but a simple script (curl calling steam API and sending a notification if the price is set) + cron handle the job perfectly.
EDIT: Giving the keys to an agent for such a trivial work is ... I got your sarcasm I think ^^.
reply