It’s been meaningless ever since the courts decided the “well-regulated militia” part doesn’t actually mean anything. It was never meant to be carte blanche access to every weapon under the sun
Even if you had access to all the munitions on paper, it would be extraordinarily surprising to wake up one day to the news that US citizens collectively out-gunned the US armed forces. I mean, F35s are not famous for being cheap.
Even if you could spend alike in aggregate, who maintains them? Where is the secondary military drilling people on tactics and/or strategy?
Nah, the 2nd never did what its proponents claimed, not even in the old days.
Regarding who maintains them: that’s my problem to have _after_ I buy them, but today I can’t even buy them! And I picked a high-end example, of course I couldn’t maintain an F35 but maybe I would like some automatic rifles or more realistically some armed drones.
Still I think we’re saying the same thing: the founder’s arguments amount well regulated militias being a check on tyrannical government doesn’t land when the tyrannical government can just drone swarm the country into submission.
Read the second to last slide. What we need now is *imagination*. You assume the need for new software is fixed and that AI is going to satisfy that need with fewer humans (lower cost), but by lowering the cost we can increase the supply of software!
That means software engineers better start getting creative. If you think your job is to wait for a PM to assign you a well-written researched ticket, you're done. Your job is now to figure out how to make these machines (computers) do whatever we need them to do safely, quickly, at scale, and correctly by applying all your knowledge of computer science and the engineering field of software engineering to an AI prompt.
This doesn't scale, because like in a factory that gets replaced by robots, or in a supermarket with self checkouts, not everyone gets to save their job, regardless.
Also, the increase in output is meaningless when the amount of customers doesn't scale in similar size.
Then there are the constraints of physics, there are so many humans in the planet that actually want to pay for a specific product, or consulting services.
I read the "imagination" as prelude to "Jevon's paradox" for AI. It might be that we simply don't know yet what using AI fully means, and where else it can be used and how. Electricity was initially just for lighting, but now it's everywhere...
How do you know it’s installed right without putting power through the thing? You’re going to turn the breaker off an on for every single switch? NOPE!
It’s definitely what I would do, but I can see the disadvantage if your goal is to get in and out quickly and the switch is on the second floor and the breaker is in the basement.
That would be great, if everyone in society thought about each other as altruistically as those pushing for UBI and stronger safety nets. It's probably achievable in small homogenous countries, not in this vast, heterogeneous, central-government-wary USA.
Some PM realized that agents will not push back against waterfall style project planning, so now we get an agent for all possible versions of waterfall projects.
fair critique but copperhead works as a feedback loop: design, verify, revise and repeat. closer to an engineering control loop than waterfall with an agent on top :)
When it gets to the end of the design loops, can it run simulations and tests, or is that out of scope i.e., for another product? (I didn't notice testing on a very quick peruse, but that doesn't mean I didn't simply miss it)
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.
Understanding and deciding to rely upon are not the same. Complexity is one of the biggest challenges in real world software systems. Keeping a subsystem’s responsibilities simple can do a lot for a system’s reliability. Most teams have extremely mature systems for managing complexity in their code - tests, CICD etc. Sure you CAN build all those things for your database too, but it’s more work. Most teams I’ve worked on choose to minimize database migrations because it’s a lot of work to make that part of the system as robust against mistakes as code is. Choosing to ignore a feature in your database is often a very rational pragmatic choice aimed at keeping complexity under control.
Yup. Anymore, “we’ll handle that in code” reads to me as “I don’t understand my tools, and don’t want to learn.” Or hubris. The sheer number of times I’ve seen data integrity errors because someone didn’t think they needed a database-level constraint is too damn high.
The other one (also related) is normalization. They’ll have hundreds of millions of rows of duplicated, low-cardinality strings, because “joins are expensive,” while somehow missing the fact that the increased I/O from reduced page-packing also has a performance cost.
Yeah but the increased I/O is cheaper. It's easier to add another webserver as opposed to upgrading your db server.
And I don't think it's as simple as you make it. So where I work we use amongst other things Rails. There are places in our codebase where using joins just isn't feasable cause the database would use too much memory and let's just say N is large.
But since we use Rails we can have it query the tables apart and join the tables through the defined model. We literally save like 20 seconds in some cases because 1 HUGE query becomes 8 straightforward ones with maximum index usage.
And because we have this capability in Rails we would never use something like this, cause that would neccesate us holding two mental models and have a clear "what do we run where" directive which honestly is a PTA.
That sounds like you’re either joining on an unindexed column, or have outdated statistics. 8 queries implies 8 tables, which is well under the limit for both Postgres and MySQL where the planner may give up and choose a suboptimal plan. You may have something like “SELECT * FROM foo JOIN bar ON foo.id = bar.foo_id WHERE bar.baz = 'qux'”, and if there’s no composite index on (bar.foo_id, bar.baz), the planner will choose whichever column it thinks is more selective; it then has to go get the value for the other one, and that can be quite expensive at scale. Even if you have a separate index on each of those, there’s no guarantee the planner will decide to merge them.
> Yeah but the increased I/O is cheaper. It's easier to add another webserver as opposed to upgrading your db server.
I’m referring to I/O on the DB. Rows are stored in pages that are generally 8 KiB (Postgres and MS SQL Server default) or 16 KiB (InnoDB default). If you can fit 200 rows per page, a given query will probably have to fetch fewer pages than if you can only fit 100 rows per page.
> 8 queries implies 8 tables, which is well under the limit for both Postgres and MySQL where the planner may give up and choose a suboptimal plan.
I'm not sure thats true for Postgres. optimal join ordering is np-hard, and finding an optimal join requires exhaustive search through n! combinations (n=number of joins) - thats why postgres generally uses heuristics to figure out join order. 8 is also the default value of "join_collapse_limit" setting in postgres, so it can't ever reliably optimize over 8 joins at a time. Additionally, postgres starts using "genetic algorithms" aka testing random combinations of joins with 12 joins by default (geqo_threshold setting).
I generally agree its better to use database to its fullest, but I would say 8 joins is probably the "limit". Internally at work I've advised teams to try to avoid anything more than 6 joins for "hot-path" queries.
> literally save like 20 seconds in some cases because 1 HUGE query becomes 8 straightforward ones with maximum index usage.
I don’t understand how splitting a query up would have any relationship to index utilization; the planner should trivially pick up on it?
Also are you sure you’re not solving a different problem[0]? Doing joins manually being faster doesn’t smell right, except in the case of data duplication increasing total resultset size substantially
Like the cost of increased network load from not filtering through the join should outweigh anything else in the equation
Because security fixes don't get backported, when they could, and few are still doing separate security vs. feature updates.
Even Windows is doing it now with CUs, bundling feature & vulnerability patches together, then deprecating the last version. You don't have a choice anymore, it's "accept the features or else"
Until that's true, the 2nd amendment is meaningless when USAF can buy JDAMs and F35s and I, an American citizen, cannot.
reply