In my experience trying to outsource to India, there is a strong systemic bias towards lying and cheating to get ahead (and that was even before AI), and a focus on milking as much money as possible rather than building great technology.
While there is real talent there, there is also a lot of overhead to find people you can trust.
This is probably just a reflection of the competitive nature of the market and the social ladder tech salaries enable there.
The main problem is that builds require a variable amount of cores depending on what needs to be (re)built. The ideal thing to do is to have the build system itself orchestrate remote builds, since it actually knows how many things need building and how expensive they are.
This is what nixbuild.net does, it tracks historic CPU and memory usage of individual builds, and takes that into account when deciding what resources to allocate for new builds. You can configure limits on max/min CPUs on your account or individual builds. Also, if a build runs out of memory we simply restart it with more memory. The client will just see that the build log starts over.
Please correct me if I'm wrong, but I assume you mean Nix doesn't have access to the build DAG that may exist inside the hermetic environment of individual Nix builds? If so, that's true, because Nix doesn't do that level of granularity unless you have a way to translate such DAGs into Nix derivations.
But Nix certainly tracks dependencies between Nix packages, and have knowledge about what packages need to be rebuilt if you make a change somewhere. Some of these packages might build config files, while other may build Chromium, ie wildly different CPU+mem needs.
There are plenty of people who use RAII with arenas for nested group of objects.
Bloomberg for example had a strong focus on that, and they enhanced the allocator model quite significantly to be able to standardize this. This was the reason for stateful allocators, scoped allocators, uses-allocator construction and polymorphic memory resources.
Are you sure? It seems as though ultimately Microsoft's STL for example ends up calling std::allocator's allocate function which uses the new operator.
The main problem if you're roaming is that you're considered a lower-priority customer, and since the network is often saturated already, you don't get any bandwidth.
VG10 edge retention isn't that amazing in my experience, and it's harder to sharpen than carbon steel. Burr feels gummy rather than crisp, and carbon steel goes as high as 65 HRC vs 62 for VG10.
It's sad that the market is flooded with high-performance stainless steels which are inherently worse and more expensive, just because the average person is afraid of rust and knife maintenance.
Yeah, My kitchen knives were once auto leaf springs. Soak 'em in the olive oil after use to keep the rust down (the knives, not the leaf springs). Arrr.
While there is real talent there, there is also a lot of overhead to find people you can trust.
This is probably just a reflection of the competitive nature of the market and the social ladder tech salaries enable there.
reply