Less Wrong is a community blog devoted to refining the art of human rationality. Please visit our About page for more information.

In response to Feedback on LW 2.0
Comment author: Daniel_Burfoot 01 October 2017 05:17:11PM *  14 points [-]

First, I appreciate the work people have done to make LW 2 happen. Here are my notes:

  1. Strong feeling - the links and descriptions of the Sequences, the Codex, and HPMOR (while good) should not be at the top of the page. The top should be the newest material.
  2. Please please please include a "hide subthread" option to collapse a comment and all its responses. That is a dealbreaker for me, if a site doesn't have that feature, I won't read the comments.
  3. Current LW has a really nice alternating color scheme for comment/reply. One comment will have a grey background, the comment below it will have a beige background. That is a key feature for visually parsing a comment thread.
  4. I liked the concept of having a main section and a discussion section, where the bar for posting in the latter is lower. For whatever reason, people seem to get angry if you post something that they feel is low quality or not relevant.
  5. I can't put my finger on it exactly, but somehow I don't quite like the default font. It may be that I like a different font for reading on dead tree paper vs on a computer screen?
  6. It may be slightly evil, but the karma display on the right side of the screen makes the site more addictive, because people love to see if they get upvotes or comment replies.
  7. It seems weird to allow people to upvote/downvote an article right from the home page, do you really want people to vote for an article without reading it?
Comment author: Daniel_Burfoot 12 September 2017 04:36:08PM 2 points [-]

Why do people see Mars as a better target for human colonization than the Moon? Most comments on lunar colonization seem to refer to two facts:

  1. the Moon has quite low gravity, so it cannot maintain an atmosphere for a long period of time.
  2. the Moon has no magnetic field, so it will not protect us from solar radiation.

In my mind, both of these problems can be solved by a ceiling or dome structure. The ceiling both retains the atmosphere and also blocks harmful radiation. Note that a failure in the ceiling won't be catastrophic: the atmosphere won't drain rapidly, and the amount of radiation exposure per unit time isn't disastrously high even without the ceiling.

Comment author: cousin_it 05 September 2017 01:41:28PM *  1 point [-]

I always felt that AVL trees were easier to understand than red-black. Just wrote some Haskell code for you. As you can see, both insertion and deletion are quite simple and rely on the same rebalancing operation.

Comment author: Daniel_Burfoot 09 September 2017 04:13:14AM 0 points [-]

Very nice, thanks. Ahh... Haskell really is quite pretty.

Comment author: gjm 06 September 2017 09:24:34AM 3 points [-]

There are other kinds of binary tree with simpler rebalancing procedures, most notably the AVL tree mentioned by cousin_it. I think red-black tends to dominate for some combination of these reasons:

  • Tradition. Some influential sources (e.g., Sedgwick's algorithms book[1], SGI's STL implementation) used, or gave more visibility to, red-black trees, and others copied them.
  • Fewer rotations in rebalancing. In some circumstances (certainly deletion; I forget whether it's true for insertion too) AVL trees may need to do Theta(log n) rotations, whereas red-black never need more than O(1).
    • Does this mean an actual advantage in performance? Maaaaybe. Red-black trees are, in the worst case at least, worse-balanced, which may actually matter more. Such benchmarks as I've seen don't suggest a very big advantage for either red-black or AVL over the other.
  • Persistence. If you want to make a persistent data structure out of a binary tree, whether for practical reasons or just to show your students in Haskell, it's easier with a red-black tree.
  • Metadata requirements. A red-black tree needs one bit per node, to store the redness/blackness. An AVL tree needs one and a half bits :-) to store the -1/0/+1 height difference. Perhaps in some implementations it's OK to "waste" one bit per node but not two.

[1] I think. I don't have a copy myself. Surely it must at least mention AVL trees too, but my hazy recollection is that the balanced-tree algorithm Sedgwick gives most space to is red-black.

Comment author: Daniel_Burfoot 09 September 2017 04:11:52AM 0 points [-]

Good analysis, thanks. I buy the first two points. I'd be shocked to see an implementation that actually makes use of the lower metadata requirements. Are there languages that provide a boolean primitive that uses a single bit of memory instead of a full byte? Also I don't understand what you mean by persistence.

Comment author: Lumifer 07 September 2017 12:00:09AM *  6 points [-]

I'm sorry, this is an armchair-businessing load of rubbish.

You write:

I have no idea about most of this.

This seems correct.

Comment author: Daniel_Burfoot 07 September 2017 04:57:18AM 10 points [-]

-1, this is pointlessly negative. There's a disclaimer at the top (so it's not like he's claiming false authority), the title is appropriate (so it's not like you were tricked into clicking on the article), and it's reasonably on-topic because LW people are in the software/AI/entrepreneurship space. Sure, maybe most of the proposals are far-fetched, but if one of the ideas sparks an idea that sparks an idea, the net value could be very positive.

Comment author: Daniel_Burfoot 04 September 2017 09:57:11PM *  1 point [-]

Has anyone studied the Red Black Tree algorithms recently? I've been trying to implement them using my Finite State technique that enables automatic generation of flow diagrams. This has been working well for several other algorithms.

But the Red Black tree rebalancing algorithms seem ridiculously complicated. Here is an image of the deletion process (extracted from this Java code) - it's far more complicated than an algorithm like MergeSort or HeapSort, and that only shows the deletion procedure!

I'm weighing two hypotheses:

  1. Keeping a binary tree balanced in N log N time is an intrinsically complex task.
  2. There is some much simpler method to efficiently maintain balance in a binary tree, but nobody bothered looking for it after the RB tree algorithms and analysis were published.

I'm leaning toward the latter theory. It seems to me that most of the other "elementary" algorithms of computer science are comparatively simple, so the weird overcomplexity of the tool we use for binary tree balancing is some kind of oversight. Here is the Wiki page on RB trees - notice how the description of the algorithm is extremely hard to understand.

Comment author: Daniel_Burfoot 15 August 2017 04:52:53AM *  0 points [-]

Can anyone offer a linguistic explanation for the following phenomenon related to pronoun case and partial determiners:

  1. None of us want to go to school tomorrow.
  2. None of we want to go to school tomorrow (**).
  3. We want to go to school tomorrow.
  4. Us want to go to school tomorrow (**).
Comment author: Daniel_Burfoot 08 August 2017 11:24:59PM *  3 points [-]

Theory of programming style incompatibility: it is possible for two or more engineers, each of whom is individually highly skilled, to be utterly incapable of working together productively. In fact, the problem of style incompatibility might actually increase with the skill level of the programmers.

This shouldn't be that surprising: Proust and Hemingway might both be gifted writers capable of producing beautiful novels, but a novel co-authored by the two of them would probably be terrible.

Comment author: Wei_Dai 03 August 2017 10:02:06AM 0 points [-]

I'm curious about your "system that doesn’t require a strict taxonomy". Is that written up anywhere? Also, does your work have any relevance to how children should be taught grammar in school?

Comment author: Daniel_Burfoot 06 August 2017 10:47:17PM 1 point [-]

I haven't written it up, though you can see my parser in action here.

One key concept in my system is the Theta Role and the associated rule. A phrase can only have one structure for each role (subject, object, determiner, etc).

I don't have much to say about teaching methods, but I will say that if you're going to teach English grammar, you should know the correct grammatical concepts that actually determine English grammar. My research is an attempt to find the correct concepts. There are some things that I'm confident about and some areas where the system needs work.

One very important aspect of English grammar is argument structure. Different verbs characteristically can and cannot take various types and combinations of arguments, such as direct objects, indirect objects, infinitive complements, and sentential complements. For example, the word "persuade" takes a sentential (that-) complement, but only when also combined with a direct object ("I will persuade [him] that the world is flat" is incorrect without the direct object). In contrast, the verb "know" can take either a direct object or a that-complement, but not both. To speak English fluently, you need to memorize all these combinations, but before you memorize them, you need to know that the concept exists.

Comment author: Daniel_Burfoot 31 July 2017 11:04:18PM *  2 points [-]

Against Phrasal Taxonomy Grammar, an essay about how any approach to grammar theory based on categorizing every phrase in terms of a discrete set of categories is doomed to fail.

View more: Next