In the end we can't even tell what's what, it's exhausting.
10,104 karma · joined July 1, 2009
https://monocypher.org
https://elligator.org
In the end we can't even tell what's what, it's exhausting.
https://developer.nvidia.com/gpugems/gpugems2/part-iv-genera...
Err, how exactly does the generation of questionnable material abuses a child? Assuming there's no actual CSAM in the training corpus, the causal link between that and children being actually exploited seems tenuous at best, similar to drawings of Japanese middle schoolers, fictions about underage people...
Those are nothing like purchasing or seeking out pictures, movies, drawings, or depictions of actual abuse of actual children. As disgusting as it may be, not all child porn is CSAM.
Of course, if there is CSAM in the training data set, that's a different story.
And let me be clear: I don't whether, nor how much, the consumption of purely fictional child porn by adults ends up hurting (or helping) actual children. For all I know it normalises associated behaviours and is responsible for a significant portion of incest cases around the world. Or it acts as a safety valve for paedophiles so they don't turn criminal. Or both, or none, I don't know. My guess though is that it's similar to how action flicks and FPS games influence gun violence.
---
That was about the worst I could say about this post. Most of the rest resonated with me. I'm especially scared of the dependence and deskilling.
I believe the need to quickly iterate dropped significantly since we got shaders. I would bet in fact there was few such iterations in the last 10 years. Crazy increases in computing power of course, but big breaking changes in the actual ISA? I'd be surprised.
> to release silicon with bugs that can be papered over with software fixes
Yeah that's actually one of my goals. Only ship stuff that works on pain of embarrassment and prohibitive recall costs. It's crazy hard. It's how CPUs are shipped.
> and undoubtedly to charge more for what looks like a hardware feature but actually is a software feature.
Again, that's good. Such pricing tactics are scummy, I want to end them.
---
Now of course, those reasons you cited are reasons for the vendor not to do what I'm pretty sure is very good for the consumer. I propose we force them. We could start small. Mice and keyboards first. Then printers. Then webcams, wifi modules... until we get to GPUs themselves.
We could possibly make an exception for open source software, or only forbid the distribution of the relevant drivers, or limit the applicability of that law to specific hardware: hard drives, mice, printers, web cams... or GPUs.
Anyway, that should be disruption enough.
Well in that sense, neither will CPUs. Just like GPUs, some workloads are better left to other kinds of hardware.
How many times since we got shaders? And when exactly? I bet each change takes longer to come than the last. I mean, GPUs are increasingly general purpose nowadays. Sure they're optimised to specific kinds of embarrassingly parallel problems, but as more and more of their capabilities move out of the fixed pipeline to shaders, the need to change lessens.
What would be even cooler though would be for GPU vendors to start giving us the user manual. An I mean the real user manual, that explains how to use their piece of metal when all you have is that piece of metal. That means a precise description of the wire protocols, the data format of the buffers we send to & get from the GPU, the ISA of the cores we have access to, the relevant performance characteristics…
In other words, enough information to write a state-of-the-art driver for any OS. That would be cool.
Oh, and also put a hard cap on individual wealth while we're at it. No one, no matter how hard working, deserves a billion dollars. And no one should be trusted with that much power, it's too goddamn dangerous.
(The caps should be indexed to stuff like median income or wealth. Wanna get richer? There's a way: help everyone get richer. That way we're actually in this together.)
Almost my entire career was spent on such custom software. The rest was internal software. And even that one I was doing as a contractor, so in a way we could argue it was custom software even there.
Seriously, what the fuck? So you're supposed to block VPNs as well? What's next, Tor exit nodes? New VPN and Tor nodes as they pop up? I really don't like where this is going.
(Now this is assuming an actual increase in late(er) abortions: I believe I have seen evidence that increased availability tend to lead to earlier abortions, not to mention safer. And we need to couple all that with regular contraceptives and sex education, so unwanted pregnancies don’t happen that often in the first place.)
I feel you. But that right not to kill, conflicts with the autonomy of women. Which is more important?
> I do not trust any state, government or ruler with the power to compel speech or action.
France, and many other countries, makes it a crime (misdemeanour I think?) not to help people. If I see someone about to die, and I could prevent that, and I don’t, then I could go to jail.
This is textbook compelled action, and I fully condone it. If you don’t help someone from immediate danger you’re trash, and you should pay the consequences.
Not all of us I would bet. One can believe the fetus is a human life, and still want to allow the mother ending it. Sure it’s rough, but this is a classic case of conflicting interest. Pretending the fetus isn’t human yet is just one of several ways to side with the mother’s decision. Malformations or danger to the mother’s life are two others. And then there’s the more radical position that as long as the fetus hasn’t left the womb, the mother’s autonomy is still more important than its life.
This last one is less a belief, (one week before birth the baby is clearly viable), than it is a value system. Though I’d be curious to see the statistics on countries that allow abortion up to birth itself. If it turns out practically no one aborts after 4 months or whatever, that particular point would be moot.
The weird thing about Great Replacement bullshit, is how it manages to mix superiority complex with inferiority complex. Like viewing oneself as less attractive than the "inferior" brother accros the street, or believing in the superiority of one’s culture, and in natural selection, and be afraid of being overrun by an "inferior" one…
Indeed, access must be made easy. Abortion, through a pill or otherwise, should be accessible anywhere, freely, and any medical record should be kept absolutely secret, including from the family, especially if she’s underage.
I don’t think that’s the direction they’re headed though. I’m pretty sure in fact the whole point of allowing stuff like objection of conscience is to make abortion less accessible.
C and C++ start out so unsafe, I can hardly use them on substantial projects without sanitisers now. Sanitisers need to be made standard so I can use them everywhere.
Garbage collected languages start out with unpredictable memory usage, making them unusable on constrained environments without the relevant memory analysers (static or dynamic). Such tools need to be made standard so garbage collection may be an option on more platforms.
The problem with overcommit, is that there is no reliable way to know in advance how much memory your program can actually use. That system with 16GB of RAM will allow you to "allocate" 128GB of memory. Just try it, call `malloc()` or the `with_capacity()` constructor, it will return a valid pointer or container. Try to write in that giant "buffer" at the beginning, at the end, somewhere in the middle at random… it will still work. Everything works exactly as if you really had a giant 128GB buffer, that you can write to and read back from…
…Until you hit somewhere below 5M different pages, where instead of getting a new page after the page fault, you get killed by the out of memory killer. With SIGTERM if you have the relevant privilege, so you have at least a chance of exiting cleanly, but user programs just get SIGKILL. No appeal, no way to check.
Well there is a way to check, kinda: allocate a fixed amount of memory up front, hit all the pages, and if your program didn't crash, it really has the amount of memory you just gave it. Then perform all your allocations within this real buffer you really have (this means a custom allocator). Any allocation success will be real, and bounds checks will actually work. It just doesn't play well with programs whose actual memory needs are highly unpredictable: most of the time you'll use much more memory than you need, and sometimes you won't have enough, forcing you to raise the threshold.
It feels dirty, but when your system has overcommit you can’t reliably check that the memory you want is actually there anyway, so you might as well reap the benefits.
They’re defined in the standard all the same. Of course they can be reasoned with. The defined parts at least. You may argue that the undefined parts cannot, but those are explicitly outside the scope of the C standard, no need to discuss them any further.
It’s actually much easier than 95% of programmers think. The trick is to stop using fine grained allocations all the time, which are very difficult without tricks like RAII or a borrow checker (not to mention the high runtime overhead), and start using arenas instead. https://www.rfleury.com/p/untangling-lifetimes-the-arena-all...
My question was genuine. What triggered it is when you wrote "in practice". I myself draw a sharp distinction between a language and its implementation, but the moment "in practice" gets thrown in, I have to assume we’re talking about existing implementations only. And I have to say, as unfamiliar as I am with the Go ecosystem, the existence of a compiler (somewhat?) tailored to embedded use, is deeply surprising to me.
Is that a fact? Are you telling me that today, there's a Go compiler that's best suited for web servers, and a different Go compiler best suited for micro-controllers? Could you name the micro-controller one?
> As we already discussed, one such tradeoff is in GC implementations.
The internals of the GC are less important than how they affect the language itself. When memory is very limited, I need predictable memory usage, so memory usage must be part of the language's semantics. If they're not, I can't use that language in a constrained environment, full stop.
At the very least, I need to know which subset of Go's language and standard library have predictable memory usage. If there is no such clear subset, then Go cannot reliably be used in a constrained environment.