HNHacker News
TopNewBestAskShowJobs

loup-vaillant

10,104 karma · joined July 1, 2009

http://www.loup-vaillant.fr

https://monocypher.org

https://elligator.org

submissionscomments
loup-vaillant··on Plain text is still one of the best technologies we have
Well, I could be wrong, and it wouldn't be the first time. Besides, some of those "tells" are actually good tricks, when used sparingly enough. And we humans are picking up on them, making us sound a bit more like a chat bot than we used to.

In the end we can't even tell what's what, it's exhausting.

loup-vaillant··on Plain text is still one of the best technologies we have
The whole structure had a faint smell to it. It's hard to put into word, there was no obvious "it's not the quiet part. It's the load bearing bedrock", but the way the thing flowed made me strongly suspect LLM involvement.
loup-vaillant··on Everybody's Lost Their Minds
A starting point: https://en.wikipedia.org/wiki/Relationship_between_child_por... There seems to be conflicting evidence, fraught with spurious correlations on both sides. Honestly, I'm not sure which policy I'd adopt in the face of such uncertainty. I'd probably fund more research.
loup-vaillant··on Nvidia announces native GPU programming in Rust
Anything with branches cannot execute at all on a GPU? You sure about that?

https://developer.nvidia.com/gpugems/gpugems2/part-iv-genera...

loup-vaillant··on Everybody's Lost Their Minds
> these AI models not only lend themselves to generation of Child Sexual Abuse Material

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.

loup-vaillant··on Nvidia announces native GPU programming in Rust
> exposing a stable instruction set would kill their ability to quickly iterate

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.

loup-vaillant··on Nvidia announces native GPU programming in Rust
Or we could regulate. One hammer I'm tempted to use is to simply forbid sales and importation of hardware made by companies that also distribute software. That way the only way to sell you hardware is to make sure its interfaces are both simple and thoroughly documented.

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.

loup-vaillant··on Nvidia announces native GPU programming in Rust
> GPUs will never be general purpose

Well in that sense, neither will CPUs. Just like GPUs, some workloads are better left to other kinds of hardware.

loup-vaillant··on Nvidia announces native GPU programming in Rust
> The way they work under the hood has changed fundamentally maybe 4 times in that span.

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.

loup-vaillant··on Nvidia announces native GPU programming in Rust
Okay, so, GPUs are taking one more step towards being general purpose massively parallel machines. That's cool.

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.

loup-vaillant··on Shutting down our public encrypted DNS
I love the self contradiction in this one.
loup-vaillant··on Shutting down our public encrypted DNS
Then just outlaw big corps. Put a hard cap on company size or capital, possibly on a per-domain basis. Or just put what has to be big infrastructure under direct state control. Worked wonders in practice in France.

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.)

loup-vaillant··on Shutting down our public encrypted DNS
If I recall correctly most software work goes to custom software. Note that in many, possibly most, cases, the (sole) customer retains the exclusive rights to the source code, making the software effectively Free per the FSF definition (because the user is free).

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.

loup-vaillant··on Shutting down our public encrypted DNS
Or have a universal income. Capitalism isn't inevitable. And it will end anyway, at it hits planetary limits. Better start thinking of alternatives before one of the worst ones gets imposed on us.
loup-vaillant··on Shutting down our public encrypted DNS
My fear exactly.
loup-vaillant··on Shutting down our public encrypted DNS
> The German courts entirely disregarded our use of geo-IP lookups on queries, and asserted that since tests via a VPN were able to resolve the domain, we were in breach of court orders

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.

loup-vaillant··on The turbulent AI era is here
Said democracy does have to be real, though. If we're talking about that country between two oceans that waged armed conflicts almost constantly since its very inception, has supported or helped put in place straight-up dictatorships not that long ago, and sports one of the highest wealth inequality in the West, well... I'd think long and hard before I call that a real democracy.
loup-vaillant··on Italy Blocks Reproductive Health Websites Women on Web and Women Help Women
It would, but then there’s another dilemma: in a country where there’s a limit to how far into pregnancy you can abort, that pill could easily be used over that limit, and then you have to question whether the increased availability is worth a possible increase in late(er) abortions. I think I would prioritise availability, but not everyone would want to.

(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.)

loup-vaillant··on Italy Blocks Reproductive Health Websites Women on Web and Women Help Women
> No one, whether a doctor or not, should be forced by the state to end the life of any being.

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.

loup-vaillant··on Italy Blocks Reproductive Health Websites Women on Web and Women Help Women
> Pro-choice people "believe" that it isn't.

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.

loup-vaillant··on Italy Blocks Reproductive Health Websites Women on Web and Women Help Women
There are several aspects to this. One is control over women. Another is panic over the idea that other people with darker skin tone might overrun us with their reproductive might; either by mating like rabbits, or straight up stealing our our women. (They’re ours, right? Riight?) Also, the Book said something like "Be fruitful and multiply".

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…

loup-vaillant··on Italy Blocks Reproductive Health Websites Women on Web and Women Help Women
> If access is not easy, there needs to be a different solution.

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.

loup-vaillant··on Solod: Go can be a better C
I mean it needs to be made standard because of how bloody useful that is. More people need to be made aware (industry knowledge inertia), and it needs to be usable pretty much everywhere (ecosystem inertia).

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.

loup-vaillant··on Everyone should know SIMD
You can kinda do this in C++ too with `std::vector::reserve()`. The thing is if my collection has no known bounds, well, maybe this time it requires 64GB of space? Except RAM is at a premium and I only have 16GB right now, and no swap space to speak of. What am I gonna do?

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.

loup-vaillant··on Everyone should know SIMD
A fourth alternative, in 64-bit systems, is to reserve a stupidly large chunk of memory up front with `mmap()` or equivalent (`malloc()` actually should work about as well). That way you guarantee that any extension will happen in place. There’s a limit to how much you can reserve, but since that limit is much higher than what you can actually use, you can make quite a few of those reservation before you run out of address space.

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.

loup-vaillant··on Solod: Go can be a better C
> malloc/free, not being a language feature, cannot be reasoned about.

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.

loup-vaillant··on Solod: Go can be a better C
> It can be reasoned about, but doing so correctly is very difficult […]. I don’t think this is controversial?

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...

loup-vaillant··on Solod: Go can be a better C
Then it needs to be made standard. Without that, or an equivalent solution, garbage collected languages will remain unusable in constrained environments.
loup-vaillant··on Solod: Go can be a better C
First, I’m not familiar with the Go ecosystem. I have never written a single line of Go, and I learned in this thread that there was more than one compiler. Second, please don’t accuse me of engaging in bad faith. I’m not.

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.

loup-vaillant··on Solod: Go can be a better C
> In practice, if you were going use Go on a microcontroller you would not use the same compiler as you would use if you writing a web server.

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.

Page 1 of 34Next →