Recent submissions

Comment · 10 months ago
> one that every practicing biologist would agree with

Where are you getting this from? As far as I'm aware biologists, practicing or not, are not particularly concerned with the study of human behavior.

Comment · 10 months ago
It depends on what you're working on. If you're doing real algorithmic work, often the algorithm is a lot more complex than its spec because it needs to be fast.

Take sorting a list for example. The spec is quite short.

- for all xs: xs is a permutation of sort(xs)

- for all xs: sorted(sort(xs))

Where we can define "xs is a permutation of ys" as "for each x in xs: occurrences(x, xs) = occurrences(x, ys)"

And "sorted(l)" as "forall xs, x, y, ys: (l = xs ++ [x, y] ++ ys) => x < y".

A straightforward bubble or insertion sort would perhaps be considered as simple or simpler than this spec. But the sorting algorithms in, say, standard libraries, tend to be significantly more complex than this spec.

Comment · 1 year ago
The article does go into cache coherency which is very much intertwined with multicore parallellism:

> The cache coherency protocol is one of the hardest parts of a modern CPU to make both fast and correct. Most of the complexity involved comes from supporting a language in which data is expected to be both shared and mutable as a matter of course.

I feel like we live in a world where everyone works very hard to pretend that C is our best low-level language, when in reality an APL-like purely functional array language would be a better candidate.

Comment · 1 year ago
You are coming to a wrong conclusion due to a misunderstanding of what the separation of powers means. I will first try to illustrate with a thought experiment, after which I believe you will agree that there is something wrong in your reasoning, and then I will demonstrate where your logic went wrong.

---

Thought experiment: Suppose a dear loved one is brutally murdered by a relative of the current democratically elected leader (imagine a hypothetical leader, country, etc). Through various extralegal manipulations, the leader ensures that the murderer is not convicted (evidence disappears, jurors are appointed in a fishy way, the judge turns out to be a family member of the murderer, ...) and you notice that none of the usual paths of recourse work. Perhaps you go to the press, but his supporters just dismiss this as a smear campaign. Crucially, this leader is very popular, their party controls the legislative and has appointed judges for years.

Following the reasoning in your post, which I think can be summarized as "the legislative and judicial branches, which are legitimately elected/appointed, chose not to stop him, therefore the separation of powers is not violated and this is how a democracy is supposed to work", the leader's actions do not constitute a violation of the separation of powers, and this incident does not demonstrate that this country's democracy is unhealthy.

---

I hope you agree that this conclusion is wrong, yet it follows inexorably from the argument you have made (because the sole precondition, that the other branches are legitimately elected/appointed, is satisfied). So we must conclude that there is a mistake in your argument, and I think it originates in the conflation of two of the core features of liberal democracy -- that is (a) leaders are elected and (b) there is a separation of powers. You are essentially saying that (b) holds because (a) holds, but it is important to remember that (a) and (b)are independent features that sometimes oppose each other: it is by design that the system (especially the judiciary) can overrule the majority of the population, at least for some time.

So the question of "are the judiciary and legislative branches effectively enforcing the separation of powers" is not actually related to whether these branches are legitimately appointed/elected, but to whether they are independent. By this I mean that they play their constitutionally prescribed role even if at times this is unpopular. For example, the judiciary's job is to enforce the law. In the thought experiment, they are not independent from the executive, and that is a deep system failure: they should enforce the law (convict the murderer) even if the (popular and legitimate) executive disagrees.

For example, the law is crystal clear wrt who has the authority to enact tariffs on foreign nations. The President cannot legally do this as the Constitution vests the power to raise taxes in Congress; reasonable people cannot disagree about this. Congress has granted him emergency powers on the basis of a fentanyl crisis at the Mexican border; the scope of these emergency powers clearly does not include imposing tariffs on, say, Australia. Again, there is no room for interpretation here, this is all crystal clear. The fact that the tariffs haven't been effectively struck down yet is a clear failure of the separation of powers, because the law is so clear. The popularity of the president or his policy is completely irrelevant to the question of whether he should be stopped by the courts.

The main reason this needs to exist is to make sure that, indeed, the next election is a free and fair election. If the separation of powers does not hold, then there is nothing stopping the executive from manipulating the election and hollowing out democracy. This has happened many times in history, and it is exactly what people (rightfully, I believe) fear about the Trump presidency.

Comment · 1 year ago
Your statement is wrong in two distinct ways:

- Fundamentalists never hijacked the FSF, they founded it: Stallman is about as fundamentalist as possible about free software.

- In the case of the FSF, the fundamentalists are absolutely walking the walk, both in terms of contributing software, and in terms of going out of their way to not use proprietary software.

Comment · 1 year ago
> most lived at subsistence levels with starvation always at their doorstep

Genuine question: is this something we know from evidence, or an assumption? I vaguely recall having read that comparison between skeletal remains of early farmers and hunter-gatherers indicated that the latter had a better diet, but I'm not sure if I'm remembering correctly or how much that observation generalizes.

Comment · 1 year ago
Comment · 1 year ago
AFAIK the first somewhat widely-known language to do this was Haskell (through libraries). I'm not 100% clear on the entire history, but I think it goes something like:

1. Initially there was no way to do effects in Haskell, everything was pure.

2. Then it was realized that IO can be modeled with monads, so the IO type and do notation were added.

3. Gradual realization that monads can be used to also constrain effects, ie you can construct a type of "stateful computations" that can read and write to a specific state, but not touch other states or write to disk or something.

4. Monad transformers are invented, which allow stacking monads on top of eachother to support multiple effects. Together with type classes, this gets us pretty close to extensible effects (the approach used in Flix, if I understand it correctly). So for example you can express that your function needs to write to a log and may exit early with an error message with the constraints `(MonadWriter w m, MonadError e m) => ... -> m resultType`, and you can then use monad transformers to build a stack that provides both of these effects.

5. Monad transformers have some issues though: they affect performance significantly and the interaction between effects is tricky to reason about. So an alternative is sought and found in extensible effects. The initial proposals were, iirc, based on free monads, but those aren't great for performance either, so ever since there has been a whole zoo of different effects and handlers implementations that all make different trade-offs and compromises, of which I think the `effectful` library is now the de facto default, and I think what it offers is quite similar to the Flix language's effect system (I'm not sure on what finer points it differs).

Comment · 1 year ago
That's not providing material support. It's just speech.
Comment · 1 year ago
Especially the set example is also just confusing for 7th grade kids (or anyone who doesn't already understand sets, really). It's technically correct to say that you can store the unique ingredients of a recipe in a set, but that's not an obviously useful thing to do (if you want to compose a shopping list, you need the quantities as well), so the example doesn't actually illustrate anything that helps make sets more intuitive to the student. I think many, if not most, kids of that age will also not even correctly parse the phrasing "list all the unique ingredients" (not to speak of the unfortunate phrasing "a set can be used to list all ..." while you're trying to illustrate the difference between a list and a set).
Comment · 1 year ago
I think the primary positive feature of democracy is simply that we have regular peaceful transitions of power. I'm not sure that the fact that the people choose their own leaders by itself leads to higher quality leadership, or even leadership that cares more about said people. But the fact that the baton passes every couple of years is absolutely invaluable.
Comment · 1 year ago
That would be a crime. Khalil was not charged with any crime. The only conceivable reason to not charge him at this point, is because there is no evidence of him committing a crime.
Comment · 1 year ago
Comment · 1 year ago
It's not undemocratic. The behavior of the parliament reflects the reality that only a tiny minority of the population care at all about this issue.

One might be tempted to blame a lack of media attention, but I don't think that's it. For example in the US, the Snowden revelations attracted tons and tons of media attention, yet it never became a major topic in elections, as far as I'm aware. No politician's career was ended over it, and neither did new politicians rise based on a platform of privacy-awareness. No one talks about mass surveillance today. No one cares. There is no reason to believe that the situation is different in Europe.

Comment · 1 year ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton