1,009 karma · joined January 30, 2013
And it happens less than you think too, sometimes, which I think is closer to the original point.
Mentoring/helping others helps solidify your own understanding.
https://docs.podman.io/en/latest/markdown/podman-machine.1.h...
You can add new APIs, etc, instead of breaking existing ones. Anytime you do a major rev because your changing an API or removing one, you could also ship new APIs instead and keep the major version the same.
Look at marijuana, the drug dealer is now a business, and very few people are mad at dispensaries for selling pot.
In the end, if it wasn’t them, it would be someone else. If governments weren’t buying spyware from NSO, they would be making it themselves or finding another group who builds exploits.
In addition to that, with cgroups and namespaces you get a lot of other benefits, which can be used with eg: systemd/etc but it's nice when one tool handles all of it.
Back to your example of shoplifting: If it’s a riot and looting is happening, then even people who normally wouldn’t steal or commit often join in. It’s mob mentality. “If everyone is doing it, why can’t I?”
A tech worker could basically stop paying rent, stating they've been effected by COVID, even if they weren't, or if it was short-term, and then basically collect their tech salary check's while not paying rent.
They _could_ pay, chose not to, and reaped the benefits.
With sufficient caching with and a lot of parallelism makes this possible. That costs money though. Caching means storing data twice. Parallelism means more servers (since you'll probably be aiming to saturate the network bandwidth for each host).
Pre-aggregating data is another part of the strategy, as that avoids using CPU cycles in the fast-path, but it means storing even more copies of the data!
My personal anecdotal experience with this is with SQL on object storage. Query engines that use object storage can still perform well with the above techniques, even though querying large amounts of data from object is slow. You can bypass the slowness of object storage if you pre-cache the data somewhere else that's closer/faster for recent data. You can have materialized views/tables for rollups of data over longer periods of time, which reduces the data needed to be fetched and cached. It also requires less CPU due to working with a smaller amount of pre-calculated data.
Apply this to every layer, every system, etc, and you can get good performance even with tons of data. It's why doing machine-learning in real- is way harder than pre-computing models. Streaming platforms make this all much easier as you can constantly be pre-computing as much as you can, and pre-filling caches, etc.
Of course, having engineers work on 1% performance improvements in the OS kernel, or memory allocators, etc will add up and help a lot too.
You can verify the signature before calling the DB.
Not to mention, many users are paying for a service that provides LFS, and hosting an LFS service isn't crazy hard. It's a file server with a custom API, it's mostly doable using S3 as a backend. It's not like this is crazy complicated stuff.
> This project will compile verilog (a hardware description language) into factorio blueprints.