• Conservatives Justify Morality With Law and Liberals Justify Law With Morality

    A confounding aspect of conservative politics is how they view the rule of law. Conservatives tend to see laws as being designed for certain kinds of people. In their mind, a terrorist is already a terrorist and if the same law is used to define one of their tribe as a terrorist it’s the left being fascist.

    Liberals tend to see the rule of law justified with moralityβ€”the law defines people and is justified through morality. Acts of terrorism are defined by the law. An American can be held to the same standard (domestic terrorism) because terrorism is morally wrong.

    Read the Reddit thread

    See also:

    • This is also in-group favoritism, a conservative doing bad things is still part of the tribe because of morality (not legality)

  • Exporting Org-Mode Documents With Many Org-Id Links Is Slow

    Exporting org-mode documents using ox is very slow when there are many org-id links in the contents.

    After some profiling I found the following code is called during export in a loop over each org-id link which returns the link’s file location.

    (car (org-id-find id))
    

    Unfortunately, org-id-find will load the file and all of it’s associated modes. This is very slow when all it needs is the file location.

    Replacing it with the following makes the code roughly 10x faster.

    (org-id-find-id-file id)
    

    As a temporary workaround, you can overwrite org-export--collect-tree-properties:

    (eval-after-load "ox"
      ;; Org export is very slow when processing org-id links. Override it
      ;; to skip opening the file and loading all modes.
      (defun org-export--collect-tree-properties (data info)
        "Extract tree properties from parse tree.
    
        DATA is the parse tree from which information is retrieved.  INFO
        is a list holding export options.
    
        Following tree properties are set or updated:
    
        `:headline-offset' Offset between true level of headlines and
                           local level.  An offset of -1 means a headline
                           of level 2 should be considered as a level
                           1 headline in the context.
    
        `:headline-numbering' Alist of all headlines as key and the
                              associated numbering as value.
    
        `:id-alist' Alist of all ID references as key and associated file
                    as value.
    
        Return updated plist."
        ;; Install the parse tree in the communication channel.
        (setq info (plist-put info :parse-tree data))
        ;; Compute `:headline-offset' in order to be able to use
        ;; `org-export-get-relative-level'.
        (setq info
              (plist-put info
                         :headline-offset
                         (- 1 (org-export--get-min-level data info))))
        ;; From now on, properties order doesn't matter: get the rest of the
        ;; tree properties.
        (org-combine-plists
         info
         (list :headline-numbering (org-export--collect-headline-numbering data info)
               :id-alist
               (org-element-map data 'link
                 (lambda (l)
                   (and (string= (org-element-property :type l) "id")
                        (let* ((id (org-element-property :path l))
                               (file (org-id-find-id-file id)))
                          (and file (cons id (file-relative-name file))))))))))
    

    See also:


  • Illusory Truth Effect

    Repeated information is perceived to be more truthful than new information. Prior knowledge does not reduce the significance of the effect. Basically the more someone repeats something the more it will be believed.

    See also:

    • Trump paradox is even more interesting because he tells the truth about things he shouldn’t and lies awfully about things he should.

  • Org-Roam-Ui Helps You Peer Into Your Brain

    The org-roam-ui is a visualization and exploration companion to org-roam. The force-directed graph of notes (nodes) and links (edges) shows how concepts fit together and relate. I thought it was primarily eye candy, it’s useful for 1) spotting connections you haven’t already made and 2) identifying orphaned notes that could be linked to other notes.

    By looking at a subgraph and increasing the number of neighbor nodes rendered you can see Nth degree connections to a note. This is handy for linking related notes together or simply to think about the through-line that brings seemingly disparate ideas together.

    By looking at the edges of the overall graph, it’s easy to spot orphaned notes that don’t connect to anything. These are worth revisiting and linking them or maybe deleting.

    See also:


  • Collaborate at the Contractual Boundaries

    A team of engineers working together on the same project should divide up their work at the contractual boundaries. This avoids rework because choosing an arbitrary point to split up the work can be difficult to specify and more susceptible to breaking changes introduced by the other team members.

    A simple example is dividing work up by frontend and backend where the API serves as a contractual boundary. It’s simple to understand which work each person is responsible for and results in less rework. (It’s still important to specify the API contact, but you can be more hand-wavy about the rest).


  • Nazi Bar Theory

    The way to prevent a bar from turning into a Nazi bar is by nipping it in the bud. You need to ignore their reasonable sounding arguments in the moment because their end goals are so terrible. For example, the first Nazi in the bar who is nice to everyone who is getting kicked out might say, “Hey I’m not doing anything wrong!”. However, if you don’t do that, they bring their friends, and friends of friends, and eventually you end up being a Nazi bar.

    Online communities function similarlyβ€”the moment you let them in the sooner you become a bastion of hate.

    Read the Twitter thread.