12,829 karma · joined March 7, 2013
Sometimes things are actually just finished. They don't need to treadmill.
I'm not finding many benchmarks but looking at this https://chipsandcheese.com/p/loongson-3a6000-a-star-among-ch...
it looks like it's right around Zen 1 class performance. Which I hate to tell you is 10 years old already...
Eh? The entire CPU & GPU wars for the last 30 years consistently rewarded the top performer above all else. Price/performance has always been the consolation prize of the loser of any given generation, and sitting in the price/performance pit for several generations in a row results in being essentially out of money in a fringe position. Like, for example, AMD's GPU division currently but also AMD's CPU division before Athlon 64 and also Phenom up through Ryzen.
It'll be visibly low-res and blurry until the full size decodes for full screen. Hence why I said "when tapping on a thumbnail"
A modern iPhone can capture at up to 48MP. If the performance scales linearly with pixel count, that would put tapping on a thumbnail to the full size being ready at over half a second. That's going to feel laggy. Now you can throw storage at the problem and pre-compute a downscaled intermediate, sure, but that doesn't fix it when you send the photo to someone else or whatever.
And competitive phones are doing 200mp captures (which is stupid in its own right but phone manufacturers and doing stupid things, name a more iconic duo)
Might have some sequential section or a block size that struggles to fill a V100 or a large chunk of CPU-only work or any number of things like that.
150ms to decode 12mp is also incredibly slow. That's like PNG territory of slow. A more flagship 50mp image would be... oof.
https://www.flyingpenguin.com/mythos-mystery-in-mozilla-numb...
Google did, as they already said.
OpenAI was better at marketing and a lot more willing to cannibalize the search market as a newcomer. So Google blew their lead in research by not recognizing the product value quickly enough, or failing to win an internal political war on it anyway
As a much more immediate practical matter, LLMs trained on LLM output makes them worse overall, they degrade from doing that. So the more LLM-prodoced content fills the web, the less useful it is as a data source for future LLM training. In addition to just being increasingly boring and vapid.
I think Zig has the most interesting approach here with 3 different "+" operators (+ aborts on overflow, +& wraps, and +| saturates) along with addWithOverflow builtin. It'd probably be a challenge for Rust to adopt that at this point, but it'd be a great improvement
That's not entirely true. At a certain scale, some languages start becoming increasingly more of a factor. Memory issues in C/C++ codebases, for example. This is pretty well established at this point, which is why there's a push to move away from memory-unsafe languages. Which likely would include Zig, for better or worse.
Game engines moved to C++ over 20 years ago.
Most major compilers are also in C++, including GCC (it switched over a decade ago). Which means the two largest C compilers are themselves not written in C. They have un-bootstrapped.
> That all said, I do agree that manual memory management is really hard to do if you are used to just sweeping gigabytes of memory under rug, hoping the GC vacuum cleaner slurps it afterwards. It takes a mindset and a set of practice. But once you internalized it, it becomes second nature.
Sorry, but no, you cannot internalize this. Nobody can. Once a program grows past some point, purely manual memory management & "git gud" are simply not practical. The amount of evidence against this is beyond any doubt.
Zig's emphasis on cross compilation seems like it's a better fit for embedded than anything else, which is where things shouldn't realistically grow to be huge projects, but with how coding efficiency (or lack thereof) works today along with microcontrollers getting ever more powerful... who knows.
Prusa's MK3S delivered consistently good, zero fuss, straight out of the box prints with auto bed leveling for $999 before Bambu labs even existed at all.
Bambu brought Core XY & multi-filament to the "mainstream" (for however mainstream 3D printing is at all), absolutely, but if you just wanted a 3D printer that consistently worked for an affordable price? Prusa beat them to that by years. They just didn't advertise the shit out of it on YouTube like Bambu did.
Prusa unfortunately then kinda just... relaxed? Not sure what happened, but MK3 -> MK4 was pretty meh, the XL was delayed, the Core One a good response but still lacking on the multi-material front, etc...
Right, it's exactly like C, and we kinda all know how that worked out in practice already...
Hence why I called Zig a "love letter to C". If all you want is C with a dash of zest, that's Zig. If you want a modern language that has learned from the many hard lessons the industry has dealt with over the years... well, Zig ain't it. Which is a perfectly fine thing for Zig to be, it doesn't have to be a good general purpose language. We have plenty of those already from Rust to Go to Java/C#/Kotlin to etc...
> arenas are useful for temporary allocations with poorly defined intermediate scope or lifetime (think functions directly or indirectly called by the arena owner).
Arenas are not good for that because the arena as a whole has to outlive all of those poorly defined scopes & lifetimes, which is hard to do. Especially if you later go add on something like an retry-with-backoff or asynchronous metrics/tracing or caching or whatever. Then suddenly you're either fighting use-after-frees or doing deep-copying of data.
Video games are large and have lots of state and lots of threads. Zig's lack of ownership here with fully manual memory management is overall a poor fit.
The rest of your rant seems mostly anchored around the fact that most things still produce sRGB, which is true, but they still typically map inputs into sRGB appropriately (that is, they get clipped). Which still is being properly color managed.
That would be calibration and it's still necessary if you want color accuracy. That's about ensuring that what your monitor thinks it's displaying and what it's actually physically emitting are the same. The main thing that's changed here is that factory calibration has become a lot more common and is often more than good enough for anything short of serious professional work. Even for things that aren't professional displays. Like most flagship or even midrange smartphones are factory calibrated with dE values that would make reference monitors from 20 years ago blush. Right up until the OEM shoves a shitty color curve on it intentionally to make it "pop" or be more "vibrant" (Samsung calls this "Vivid", Pixel calls it "Adaptive", etc.. - but they at least usually have a "natural" option that gets you back to the properly calibrated display)
But for the most part this shouldn't really matter much. A huge amount of things these days are properly color managed, so as long as the thing that wrote the profile actually, you know, wrote what it actually wanted then it'll display just fine regardless of how many different "sRGB" profiles there are floating around. We're largely past the days of just hoping that the image and the display happen to agree on roughly the same colors.
However for the container/extractor... those should absolutely be in a memory safe language, and those are were a lot of the exploits/crashes are, too, as metadata is more fuzzy.
As a practical example of this see something like CrabbyAVIF. All the parser code is rust, but it delegates to dav1d for the actual codec portion
Noctua talks about it on this page: https://www.noctua.at/en/expertise/tech/sterroxr-liquid-crys...