Recent submissions

Comment · 1 day ago
I think one of the primary motivations for cryptocurrency was that legal ≠ moral. Therefore, I think cryptocurrency's best use cases are all explicitly illegal.

For example, you can donate to Sci-Hub with cryptocurrency. Sci-Hub has an ideological mission which is widely supported, but it runs afoul of copyright law and is illegal in nearly every country and sanctioned in many. You cannot donate to Sci-Hub with fiat currency.

Unfortunately, I agree that in practice >99% of cryptocurrency's use is for scams.

Comment · 8 days ago
Comment · 8 days ago
> Somewhere, that line exists where the company would financially benefit, I just wish they'd actually define it.

The line doesn't exists. It's most profitable for the company to repeatedly:

1. Have an ad-supported tier and a no-ads tier

2. Wait for most people to move to the no-ads tier

3. Introduce ads into the no-ads tier

4. Wait for people to get sick of ads

5. Introduce a new, higher cost no ads tier

There is no threshold where it's more profitable for the company to never introduce ads at that price point.

Comment · 14 days ago
Comment · 15 days ago
I regularly fully read and try to understand paper contracts before signing them. Every time, it's clear that no time was set aside for me to read the contract, and the other party expected me to sign the contract within a few seconds of first receiving it. Often, I get the sense that the other party is annoyed or frustrated that I take time to read the contract before agreeing to it.

I've read that contracts fundamentally require a "meeting of the minds", where two parties come to a mutual understanding of an agreement. At the same time, overwhelming people are expected to not read and understand contracts they agree to. I don't understand how these two facts don't combine to mean the vast majority of written contracts are not legally binding, but apparently judges don't share my confusion.

Comment · 16 days ago
It alienates me, because I cannot relate to it. To me, it reads like the author is going around, running some sort of flowchart for every woman they briefly interact with, like:

  [Are they hot?] -No> <Ignore>
         |
        Yes
         v
  [Are they wearing a ring?] -Yes> <Ignore>
         |
         No
         v
         …
I don't even know what that last step would be. It's not going to be sex. The woman is at work and the two don't even know each other.

Maybe that's not what the author is thinking. I don't know, because I can't understand what the author is thinking. I'm alienated.

Comment · 16 days ago
The comments on women's bodies are not relevant to the narrative, and they alienate readers (women and men). It's bad writing.
Comment · 18 days ago
And even if the theorem prover has no errors, the math behind the theorem prover could be inconsistent according to Gödel's incompleteness theorem. So even in principle, we can never be completely certain about the soundness of Rust, though the more theoretical concerns tend to be dwarfed by basic human error.

I think it's a good thing to keep in mind, that the actual implementation of Rust almost certainly isn't sound. Even an "ideal Rust" still has unsafe, which can affect the soundness of even faraway safe code. But I don't think it's nessesarily wrong to talk about Rust as if it were safe. Much of our communication has implicit assumptions, and the way we talk about Rust is no different. It would be exhausting to qualify every discussion of saftey with "assuming the compiler has no bugs", "assuming all unsafe code follows the (not fully specified!) rules", etc.

Ultimately it's like any other implementation of theory into practice. The theoretical model of Rust lets us reason about and design an implementation to achieve certain practical goals even though the model is a simplification of reality. In Rust's case, practical use has demonstrated it achieves design goals like reducing bugs and reducing development time (compared to peers like C++) to a substantial degree.

Comment · 18 days ago
It's surprising this bug went unnoticed for so long, but at least it's easy to fix, since it's not a bug with the type system itself; it's just a bug in the compiler. The compiler should always have been rejecting that code according to lifetime rules of Rust's type system, so the fix is to just make it reject the code, rather than having to change the fundamental rules of lifetimes.
Comment · 22 days ago
Let's take a simple example: writing past the end of an array. Allow me to argue with myself for a moment.

> Surely the compiler can just check if each access is valid.

Well, sometimes it can, but sometimes it doesn't know how long the array is. What if the array is passed as a pointer?

> Maybe each array could be annotated with its size at runtime, and accesses could be checked at runtime too.

That works, but it adds runtime cost that may legitimately be too much for some applications, for example, a Gameboy game (set aside that many Gameboy games were written in assembly).

> Fine, so we'll make the programmer promise to ensure array accesses are always valid. Maybe they'll make a mistake sometimes, but what's the worst that could happen? Throwing your hands in the air and saying the compiler is allowed to do anything, that's just stupid.

Well, maybe it's stupid, but this is one thing that could happen if you accidentally write past the end of an array: https://www.youtube.com/watch?v=Vjm8P8utT5g. I'm sure neither the programmers nor compiler writers intended that.

Ultimately, the compiler can't guarantee any behavior if its assumptions are violated. The example may seem contrived, but it demonstrates that, given the right circumstances, the results of the logical contradiction are unbounded. This is a direct consequence of the "Principle of explosion": https://en.wikipedia.org/wiki/Principle_of_explosion. On second thought, maybe the runtime costs of array bounds checking are an acceptable trade-off after all.

Comment · 24 days ago
Comment · 25 days ago
With or without a comma, without a conjunction like "and" the example is a run on sentence and is ungrammatical. You should join the clauses with a conjunction, and including a comma before the conjunction is a common style.

There's a caveat where some style guides permit using a comma without a conjunction in specific contexts, but most don't.

Comment · 25 days ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton