We can teach children to be more effectively empirical

We can teach children to smell bullshit - Vox

A good critical thinker is able to keep track of assumptions made when evaluating evidence, and over time builds up a collection of powerful and general assumptions that accelerate their accurate modelling of reality.

Double-blind tests make the least assumptions, but are not the mechanism by which most knowledge is obtained. Teaching children to avoid assumptions altogether is misguided - what they need is to introspect and make more aspects of their own thinking explicit and hence improvable.

Introspecting into motivations and detecting unrealistic wishful thinking is a large part of this. For example, someone with a privileged background has to account for their own propensity to adopt meritocratic world views that tell them they deserve what they have, and someone with a disadvantaged background has to be cautious about attributing too much to bad luck.

Powerful implicit motivations feed the spread of bullshit. Why is bullshit so attractive? What makes something feel like a good explanation? Confirmation of existing beliefs? Simplification of reality? These have to be balanced against "changing your mind" and "accepting that the world is complex and messy", depending on the strength of the evidence.

Nested condition variables are fun!

That release and acquire surrounding the wait are how you allow one of the timelines to start slipping relative to the other one.

def current_updates(self):
    with self.app.cond:
        self.app.cond.wait_for(
            lambda: self.app.positions_ready
        )
        while 1:
            if not self.app.isConnected():
                self.stop()
            if not self.running:
                break
            with self.cond:
                # Skip all position updates while dead-reckoning
                if self.dead_reckoning:
                    self.app.cond.release()
                    self.cond.wait_for(lambda: not self.dead_reckoning)
                    self.app.cond.acquire()
                current = self.app.positions.copy()
                if self.current != current:
                    self.current = current
                    self.cond.notify_all()
            self.app.cond.wait(timeout=2)

Condition variables

Original code on GitHub Gist

Managing cost centers by making them profit centers

https://techcrunch.com/2017/05/14/why-amazon-is-eating-the-world/

Amazon benefits not only from the revenue from externalising its internal services,  but also from the efficiency and oversight induced as a result.

This is similar to the export-driven growth described in Joe Studwell's How Asia Works - East Asian countries gave domestic industries protected markets, conditional on their ability to export and hence prove that they were making goods that were competitive in international markets.