philh

Comments

Coincidences are Improbable

Seems worth mentioning that the four ways you list for events to be causally linked are the building blocks of d-separation, not the whole thing. E.g. "A causes X, X causes B" is a causal link, but not direct. And "A causes X, B causes X, X causes Y, and we've observed Y" is one as well. Or even: "A causes X, Y causes X, Y causes B, X causes Z, and we've observed Z". (That's the link between s and y in example 3 from your link.)

Yes, words can cause harm

words can cause thoughts, thoughts can cause urges to perform actions which are harmful to oneself, such urges can cause actions which are harmful to oneself. There’s no claim that any of these things is particularly likely, just that they’re possible, and if they’re all possible, then it’s possible for words to cause harm

Without having an object level opinion here (I didn't read the post and I only skimmed the comments), I note that this argument is incomplete. It may be that the set of "urges that cause harmful actions" is disjoint from the set of "urges which can be caused by thoughts which can be caused by words".

Best way to write a bicolor article on Less Wrong?

Markdown also supports underline by surrounding the text with single underscores, though it looks a bit like hyperlink. ... (Edit: looks like LessWrong interprets that as another way to do italic, likely to avoid the hyperlink confusion)

This is actually standard for markdown. I could believe some implementations use underscores for underline but I don't think I've ever seen it.

Your Cheerful Price

This doesn't parse as disagreement - Eukaryote only said that asker should be willing to pay a nonzero amount, not that a nonzero payment should actually happen.

So, according to my read of Eukaryote (and also according to me):

  • "My cheerful price is $0" / "great, will you do it for $0?" - fine.

  • "My cheerful price is $0.01" / "oh, hm, I don't actually want to pay a cent for it" - not cool.

  • "Honestly I'd have done it for free as a favor, but since you ask my cheerful price is $5" / "oh, okay, will you do it for free?" - not cool.

  • (Edited to add:) "Honestly I'd have done it for free as a favor, but since you ask my cheerful price is $5" / "hm, I don't want to pay $5, but will you do it for $2?" - fine.

Shortcuts With Chained Probabilities

You got the wrong answer, but I do like the idea of comparing variances, and at least for this distribution, whichever has greater variance will have more weight on 0. But in this case, the variance of the 50% option is 0.5 and the variance of the 5% option is 0.95. And indeed the 5% option is preferable. ( has variance , if the means are the same then whichever has lower will have higher variance.)

How poor is US vaccine response by comparison to other countries?

And the other eight, at the risk of seeming like a stereotypical American, are tiny places I didn’t even think were countries. (Isn’t the Isle of Man part of the United Kingdom? Why does it get its own row?)

In fact, most of those eight are part of the UK. Seychelles and the UAE are the only actual countries, the rest are British overseas territories. Not that I can tell you exactly what that means for vaccine rollout, but it does seem pretty relevant. (And your inner stereotypical american gets geography points.)

Five examples

More on type checking:

A thing I did recently while working on my compiler was write a "macroexpand" function that wasn't recursive. It macroexpanded once, but didn't macroexpand the result. I think I was like "whatever, I'll come back later and handle that", and maybe I would have done. But shortly afterwards I made the types more specific, using mildly advanced features of Haskell, and now the macroexpand function claimed to return a "thing that has been fully macroexpanded" but in code was returning a "thing containing something that hasn't been macroexpanded". I might have caught this easily anyway, but at minimum I think it would have been harder to track down.

So when the author says "I carry around invariants (which is a fancy name for properties about things in my program) in my head all the time. Only one of those invariants is its type", my reaction is that he probably could put more invariants in the type. Examples of that: you can put "this can't be null" into the type, or more precisely the thing can't be null by default but you can choose to relax that invariant in the type. You can put "this function may only be called from within a transaction of isolation level no weaker than repeatable read" into a type, we've done that at work. You can put "this array has a known length" into a type, and "this function returns an array of the same length it was passed", though I haven't found those useful myself. Similarly "this hash table definitely has a value for key X" and "this function returns a hash table with exactly the same keys". "This list is nonempty" is a type-level invariant I use a lot. You even could put "this is an increasing list of floats with mean X and standard deviation Y" into a type, modulo floating point comparison problems, though I'm not convinced that's a realistic example.

I've also had a lot of cases where I have a type with a limited set of possible values, then I add a new possible value, and all the places that accept the type but don't handle the value complain. This isn't strictly type checking, it's exhaustiveness checking, but I'm not sure you can get it without type checking. Maybe easy to catch through testing for functions that accept the type as input (as long as you have e.g. a random generator for the type, and add this case to it), but I think harder to catch when you call functions that return the type.

So I speculate static typing is more useful the more your domain types can be usefully modeled as tagged unions. If all your types are just "a field for this value, a field for that value, ...", where none of the values depend on the others, the kind of thing modeled by C structs or Python classes or Haskell records, it will mostly catch obvious errors. But if you find yourself writing things like that but with lots of invariants like "foo is true, then bar will be null and baz won't be", then that's a good fit for a tagged union, and you can move that invariant out of your head and into the type checker and exhaustiveness checker.

(There's a related thing that we don't have, I guess I'd call co-exhaustiveness checking. Consider: "I have a random generator for values of this type, if I add a new possibility for the type how do I make sure the generator stays in sync?" Or "how do I check the function parsing it from strings has a way to parse the new value?")

(Also, if the author's never had to spend a long time tracking down "this function should never be called with a null input but somehow it is, wtf is going on"... more power to him, I guess.)

Book review: Sleight of Mind (Matt Cook)

Goodstein's theorem is a theorem about finite numbers that can be proven using infinite ordinals, and can't be proven using just Peano Arithmetic. I take it that's the kind of thing you're asking about? Though I couldn't tell you how useful that in turn is.

Why I Am Not in Charge

There’s a small and decreasing number of people who are still capable of synthesizing information and creating new hypotheses and interpretations.

Then there’s those who are mostly no longer capable of doing that, things got too complicated and weird, and they can’t keep up, but they can read the first group and meaningfully distinguish between people claiming to be in it, and between their individual claims, ask questions and help provide feedback. To them, the first group is legible. This forms a larger second group that can synthesize the points from the first group, and turn it into something that can be read as an emerging new consensus, which in turn can be legible to a third much larger group.

This third group can then be legible to the general public slash general elites, who learn that this is where good new ideas come from. Then the Responsible Authority Figures can feel under public pressure, or see what the emerging new ideas are, and run with the ball from there, and the loop continues.

Somewhat tangential, this is four levels from "people who figure things out" to "general public". I wonder how recently it would have been three. But also, I'm not sure how to tell how many levels there are; if you'd said there were three levels, or five, I don't think that would have seemed particularly off to me.

Free association: this is in some sense "one level of middle management" (the second group). I don't remember back to moral mazes very well, but I feel like that might have been where things start to go really wrong. (It might have been two levels of MM instead.) I'm not sure if this is a meaningful connection to make - if mapping "people who figure things out" to CEOs and "general public" to employees gives us any insights - but if it is... honestly I'm not sure what to do with that.

The Story of the Reichstag

Nitpick:

The iconic photograph of the moment is not entirely truthful though. Hammer and sickle has been added a few days later as was the rising smoke in the background. The editor has also noticed that the soldier securing the soldier who was holding the flag had watches on both wrists. He corrected the error using a needle.

Wikipedia mostly agrees with this, except it says the hammer and sickle was original (and shows what it claims to be the undoctored photo). https://en.wikipedia.org/wiki/Raising_a_Flag_over_the_Reichstag

Load More