Because it's less moving pieces to only have one bit of state to think about.
You already have a connection string to your database with a password or authn/z with your cloud provider. If this is a "serious" application, you have backups, monitoring, user roles, pgbouncer, partitioning, and other Postgres-specific things to think about. With just a little bit of care, you can make whatever queries you are running fast enough to not need redis.
But ok, you think adding redis is going to solve your performance problem because you can just cache API responses in redis instead of hitting the DB. Maybe, but now you have to think about cache invalidation, eviction behavior, sizing the redis instance, another set of authn/z roles to think about, and of course more cost.
I realize we're speaking past each other, but IME Postgres will work well into the terabyte range and if you can't tune your database setup for performance then reaching for cache is a form of premature optimization.
FDA does regulate cosmetics components, and FTC regulates what claims they can make. It’s hard to make a binary decision that one thing is a drug and something else isn’t. You can appreciate there is a spectrum of side effects with moisturizer and sunblock on one end, supplements in the middle, and chemotherapy drugs on the other end.
Personally, I think that Americans simply don’t treat skin cancer as seriously as they should, and so the market has not provided more choices.
I bet this is correlated with how much they like/know Postgres already. When people don’t understand their database’s features, they want it to behave like something else they do understand (code). They’re leaving a lot of performance on the table by not leveraging everything their database can do.
You don’t, there’s always a choice about what to include and what to exclude in your system.
Unless you are hand selecting every atom that goes into a thing (maybe you make nuclear weapons?), you always make choices about what you focus on and what is irrelevant to your project.
In my experience, the median user for communication apps is mobile _only_. Before that, it better be a website that works well on phones, and decently on desktop.
As a developer I don't like it, but reality doesn't have to appease me.
In my experience, there is no in-memory database replacement that correctly replicates the behavior of your database. You need to use a real database, or at least an emulator of one.
For example, I have an app that uses Postgres as the database. I have a lot of functions, schemas, triggers, constraints in Postgres for modifying database state, because the database is 100x faster at this than my application will ever be. If I have an in-memory version of Postgres, it would need to replicate those Postgres features, and at that point I really should just be standing up a database and testing against it.
I have worked with people claiming that unit tests need to hermetically run in-memory, because reasons. Ok, I don't disagree, but if my bug or feature requires testing that the database is modified correctly, I need to test against a real database! Your in-memory mock will not replicate the behavior of a database _ask me how I know_ ...
These days, Docker makes this so easy that it's just lazy to not standup a database container and write tests againts it.
The phrase implies that powerful companies know that historically black neighborhoods don’t have the resources to mount a legal defense against abnormal pollution from data center generators, so the smart choice is to put all the pollution near historically black neighborhoods.
The agenda, as it is every day, is how to externalize costs so that megacompanies don’t have to spend more money to keep our environment clean.
“Work best” is giving Apple the benefit of the doubt here. The point of standards like Bluetooth is to avoid vendor lock-in and promote interoperability. If Apple chooses to leverage the spec to produce a product that has degraded functionality when used with other vendors, that goes against the spirit of the spec and makes it worthless.
You might argue, well why did Apple choose to use Bluetooth at all if they’re not going to participate in the interoperability motive? Because initially (think early iPhones) Apple did not design wireless communication modules and benefits from buying COTS from existing vendors.
So would it be easier to just participate in vendor lock-in? Let me ask you, do you enjoy being able to fill up a car at any gas station, or charge your car at any 120V outlet? Standards usually benefit everyone.
You can certainly do that if you restrict software to be a mathematical artifact instead of an executable running on one of 3 kernels with different APIs and behaviors, let alone the mountain of dependencies your code will build and link against.
The reality is that the machines we write software for are complex, and trying to abstract it away and simplify it will introduce more abstractions that someone has to understand and deal with when they inevitably leak. It's not all bad, all this shit we're writing makes a lot of money.
I downvoted you because you are exceptional but the rest of the world is not. Most people benefit from traditional education, software engineering is not different.
You are not technically wrong, but you are economically wrong.
The water cycle _could_ require spending grid energy to filter/pump water into an economically usable state. Instead if water was better managed, we would not need to build additional grid capacity for water management.
Your argument basically boils down to "If energy was unlimited, we could be wasteful!", which, again, is technically true, but ignores the economic reality.
Right, but the genius was in understanding that the dynamics of a system under PID control are predictable and described by differential equations. Are there examples of LLMs correctly identifying that a specific mathematical model applies and is appropriate for a problem?
And it's cheating if you give it a problem from a math textbook they have overfit on.
Government spending isn't immune from opportunity costs. If fewer players receive all the money to provide fewer more expensive goods and services, then revenue may be flowing through the national coffers but the money doesn't cover what the government wants to do.
Unless you forgot a /s, in which case (thumbs up).
I think the governments only role is to guarantee the planes don’t fall out of the sky or crash into each other, and then the airlines can price compete.
I think the latter view is usually held by people who know they won't experience productivity gains from automation.
Say someone who is has driven a taxi all their life or driven a forklift. They can appreciate how adding air-conditioning to their vehicle allows them to drive in hotter days, therefore they can do more work. But automating their whole job away with autonomous vehicles doesn't benefit them, so they don't want it.
Personally, I think those people can't be picky about their jobs. If you do something that is automatable, you will be out of a job sooner or later. When that happens, don't get mad and go find another soon-to-be automated job.
You already have a connection string to your database with a password or authn/z with your cloud provider. If this is a "serious" application, you have backups, monitoring, user roles, pgbouncer, partitioning, and other Postgres-specific things to think about. With just a little bit of care, you can make whatever queries you are running fast enough to not need redis.
But ok, you think adding redis is going to solve your performance problem because you can just cache API responses in redis instead of hitting the DB. Maybe, but now you have to think about cache invalidation, eviction behavior, sizing the redis instance, another set of authn/z roles to think about, and of course more cost.
I realize we're speaking past each other, but IME Postgres will work well into the terabyte range and if you can't tune your database setup for performance then reaching for cache is a form of premature optimization.