Recent submissions

Comment · 10 months ago
How do you count how many bugs a program has? If I replace the Clang code base by a program that always outputs a binary that prints hello world, how many bugs is that? Or if I replace it with a program that exits immediately?

Maybe another example is compiler optimisations: if we say that an optimising compiler is correct if it outputs the most efficient (in number of executed CPU instructions) output program for the every input program, then every optimising compiler is buggy. You can always make it less buggy by making more of the outputs correct, but you can never satisfy the specification on ALL inputs because of undecidability.

Comment · 1 year ago
“Expression” is a bit of an overloaded word here. Carrying a swastika is considered similar to hate speech. Just like you cannot just make death threats in the U.S., even though you are just “expressing” yourself as long as you do not carry out the threat. Not saying those are exactly the same, but there are limits to expression, and spreading hate against large swathes of people is considered like that in Europe. Especially because that kind of speech can at some point turn into actual physical violence against the groups in question.
Comment · 1 year ago
With the way things are going with climate change, I think that assuming “extreme climate events in different geographies are independent statistical events” is an extremely flawed assumption to make. You acknowledge that it is a simplified model, but that is not some minor oversight. Any model that does not account for this is deeply flawed, and I think no insurance company would choose to model extreme event risk like that. There are common factors (e.g. global average temperature) that can cause many of these events to be triggered in a correlated way.

A “2% risk of default” on an individual bond is something a retail investor might be able to understand, but no one should be buying a “diversified” bundle of these things if they cannot form a reasonable understanding of how correlated they are. Why should understanding the correlation risk be left up to individual investors building their own portfolios?

I also think forming an intuition for these more “all-or-nothing” type events is more difficult than e.g. understanding that if GOOG goes down 10% then AAPL might do too at the same time because they are both tech stocks.

Comment · 1 year ago
> Isn't the stigma desired anyway? It keeps people from going through with it. That's why society deliberately creates and actively cultivates the stigma.

That’s a very optimistic take on how “rational” society tends to be. The thought that “if things are in a certain way in society, then it must make sense (from a moral or societal point of view) for them to be that way.”

Comment · 1 year ago
The person you are replying to shared some research by experts on the topic giving recommendations. You can argue for or against anything, but it’s useful to at least engage with the evidence being presented.
Comment · 1 year ago
I guess the internal exposure state would be “wrong” if the compiler removes the dead load (e.g in a pass that runs before provenance analysis).

However, if all of the program paths from that point onward behave the same as if the pointer was marked as exposed, that would be fine. It’s only “wrong” to track the incorrect abstract machine state when that would lead to a different behaviour in the abstract machine.

In that sense I suppose it’s no different from things like removing a variable initialisation if the variable is never used. That also has a side effect in the abstract machine, but it can still be optimised out if that abstract machine side effect is not observable.

Comment · 1 year ago
The specification proves a property about an algorithm/function, namely the equivalence between a more complicated memoizing implementation and a simpler direct recursive implementation.

It is also true that no numerical reasoning is happening: the memoized version of any recursive relation will return the same result as the original function, assuming the function is not stateful and will return the same outputs given the same inputs.

However, it is not true to say that it does this by exhaustion, since there are infinitely many possible outputs and therefore it cannot be exhaustively checked by direct computation. The “n” for which we are “taking the proof” is symbolic, and hence symbolic justification and abstract invariants are used to provide the proof. It is the symbolic/abstract steps that are verified by the type checker, which involves only finite reasoning.

Of course, the symbolic steps somewhat mirror the concrete computations that would happen if you build the table, especially for a simpler proof like this. But it also shouldn’t be surprising that a program correctness proof would look at the steps that a program takes and reason about them in an abstract way to see that they are correct in all cases.

Comment · 1 year ago
How could you say that your views are aligned with those of Descartes and Kant if you have not seriously engaged with their works and what others have written about them?

All serious works in philosophy (Kant especially) are subject to interpretation. Whole research programmes exist around the works of major philosophers, interpreting and building on their works.

One cannot really do justice to e.g. the Critique of Pure Reason by discussing it based on a high level summary of the “main ideas” contained in it. These works have had a major impact on the history of Western philosophy and were groundbreaking at the time (and still are).

Comment · 1 year ago
Exceptions, such as the entirety of Europe? This level of privacy violation is truly incomprehensible to most citizens of European countries.
Comment · 1 year ago
I think the issue comes with trying to present a USB mass storage API to the host where you allow the host to write to any arbitrary byte offset of the mass storage device without the structure that is imposed by a file system.

If the host and guest both get presented with the same “array of bytes” mass storage interface, then they will compete and potentially mess up each other’s reads and writes, let’s say if they both treat that array of bytes as an ext4 file system and try to write a file system metadata to the same physical location at the same time.

Of course you have have a “virtual file system” exposed over USB, but isn’t that exactly what MTP is? The point is that USB mass storage is not a virtual file system.

Comment · 1 year ago
It’s not just about the energy usage, but also purchase cost of the GPUs and opportunity cost of not using those GPUs for something more valuable (after you have bought them). Especially if you’re doing this at large scale and not just on a single desktop machine.

Of course you were already saying it’s not a good idea, but I think the above definitely plays a role at scale as well.

Comment · 1 year ago
In many European countries there is an expectation that employers behave in socially responsible ways. In many cases this is also codified into law.

Employers also benefit from government support (e.g. the government sponsors education that ultimately provides the workforce for the employers).

Comment · 1 year ago
Does that make it any better even if it is true? (And I don’t think that it is as true as you make it out to be, e.g. it’s not true for my medium-sized organization)

Just because it’s good for “career optimization” does not make it less of a strange mindset to view your colleagues as predators. The article also puts all of the blame on the so-called “predators”, when it should be blaming the organization’s culture and leadership if helping others is viewed in this way.

Comment · 1 year ago
For every story like this, there’s another story where everything moves in the opposite direction.
Comment · 1 year ago
The data would still be awful, and people would pay less attention to the study because it’s not a priori surprising that ChatGPT would write worse poetry than the most celebrated poets in history.

If I use bad data to conclude that “Java is faster than C++ in most cases” you can be sure it will receive a lot more attention than if I reached the opposite conclusion based on similarly bad data.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton