Log: 3/19/2021

· 03.19.2021 · log

This week: arenas in Rust, food safety and preservation, Jevons' paradox, Buddhism and empire, climate narratives, and Outer Wilds.

My feelings around the Atlanta shootings this week remind me of this piece by Kali Holloway following the capitol riots: "I’m for Abolition. And Yet I Want the Capitol Rioters in Prison.". Cops are the right hand of white supremacy and patriarchy, the criminal justice system is an embodiment of their violence, but in the immediate present...the "justice" that system offers can feel like all that's available. However, actual justice would mean ameiloriating the harms done (what's possible, at least), and doing what it takes to stop something like this from ever happening again, and I know the justice system won't do that.

The banner reads: "the police do not protect us. we have to protect/support each other." (via Xiaowei Wang)

Evaluating Memory Models for Graph‐Like Data Structures in the Rust Programming Language: Performance and Usability, Rasmus Viitanen.

When I first started picking up Rust a couple years ago, the first application I wanted to make was a multithreaded actor system. In an actor system you work with "actors", which can basically do the following things:

  • Receive messages into an inbox
  • Send messages to other actors
  • Read and act on messages

It's totally possible to do something like this in Rust without anything outside of the standard library, e.g. using Arcs and Mutexs, but at the time it felt so messy. I also played around with tracking actors and their inboxes by indices through a single monolithic vectors, but it seemed so hacky. I thought the language and its concepts just weren't clicking for me. So my first experiences with Rust were very frustrating.

It was only later when I re-visited Rust that I learned that these kind of graph-like structures where there may be cyclical references and unclear ownership is exactly what Rust isn't good at (out-of-the-box, at least). I was encouraged to learn that some of the approaches I tried that felt hacky weren't too far off from the recommended approaches. It was around this time that I learned of the arena data structure which makes these (potentially cyclical) graph structures much easier to work with.

The most recent This Week in Rust (#381) includes a paper that compares different approaches for these graph structures, and the arena approach (also called "region-based allocation") performs the best, though there is no one-size-fits-all approach when considering pathological cases. Rust's standard Arc and Rc both perform well too, though leave open the possibility of memory leaks. These perform well in single-threaded contexts, which is actually probably fine because often you have one thread deal with the graph structure (e.g. one thread running a simulation that uses the graph) and preserve other threads for e.g. dealing with networking messages or something (for multi-threaded contexts, the author instead recommends an approach called "epoch-based reclamation" though this doesn't perform as well as arena and Arc/Rc in single-threaded environments).

There are a few arena libraries in Rust: generational-arena, thunderdome, rust-typed-arena, and slotmap. I haven't tried any of these yet so I can't speak to their ergonomics and usability, but I'm looking forward to the chance to do so.

I also came across this post that explains arenas in Rust in more detail and also mentions the bumpalo arena library, which has the advantage of faster allocations but loses memory deallocation/re-use for individual objects (so better if working with groups of objects that are allocated/deallocated all at once).

How not to kill people with your food

Great overview on food safety and preservation techniques. When we think of "food preservation" our minds probably jump to refrigeration as the major innovation, but there are so many other approaches to managing the microbial/viral activity in food, each of which sprouted their own culinary traditions and forms (jams, miso, cured meats, and so on). The show Flavorful Origins covers regional Chinese cuisines and many of the best showcased foods have their genesis in some kind of long-term food storage.

Pickled vegetables from Yunnan in Flavorful Origins

The Jevons paradox unravelled: A multi-level typology of rebound effects and mechanisms and Energy efficiency and economy-wide rebound effects: A review of the evidence and its implications

Energy efficiency improvements are usually advocated with the implication that they will lower energy demand (thus lowering e.g. greenhouse gas emissions). The Jevons Paradox describes how such energy efficiency improvements can paradoxically lead to an increase in aggregate energy demand. While it might be easier to see these effects at a large scale, it can be really hard to pull apart specifics or identify them with a lot of certainty at smaller scales. These effects can be really sprawling too: one example mentioned in Timothée Parrique's "The political economy of degrowth" (which has a good section on rebound effects, using an alternative typology to the one described below) is that more fuel efficient cars further entrench car culture and car infrastructure, which in turn increases reliance on cars, making lower-impact alternatives like bicycles or public transit more costly to adopt.

When I was researching "Inside Out" I struggled to find a lot of material on the paradox (I probably wasn't looking in the right places). This week, however, a couple papers came out on the topic.

The first paper, "The Jevons paradox unravelled: A multi-level typology of rebound effects and mechanisms", lays out a new typology of rebound effects (more detailed than the previous popular typology), breaking them down by mechanism (the actual cause of the effect), the effect (the size of the change in energy consumption), the scale (micro:firm or household, meso:market or sector, macro:national economy, or global:world economy), and the time frame (short or long run), summarized in this figure:

A visual summary of the typology in "The Jevons paradox unravelled: A multi-level typology of rebound effects and mechanisms"

The example they offer gives more details about how the typology works:

efficiency improvements in car production can allow companies to increase profits and expand production (output mechanism) – a mechanism at the micro level. When many firms introduce this new technology, price competition may lead to lower prices and, thereby, to higher sales (intermediate goods and services mechanism) – a mechanism at the meso level. This mechanism at the meso level would not have taken place without the mechanism at the micro level. Mechanisms at higher levels can also impact a rebound effect at a lower level. With regard to the car example, an efficiency improvement can lead to decreasing energy demand at the macro level, which can result in a lower energy price in a competitive energy market (overall energy price mechanism). This reduced price, in turn, further decreases the car manufacturer costs and may trigger additional expansion of production (output mechanism at the micro level).

The second paper is "Energy efficiency and economy-wide rebound effects: A review of the evidence and its implications", which reviews 33 studies looking at economy-wide rebound effects and finds that at least 50% of the gains from energy efficiency are negated by rebound effects, and that this relationship is not captured or is underrepresented in the major integrated assessment models. So these models are probably overly optimistic about the effects of energy efficiency improvements. It's a better result than, say, if the rebound effects exceeded 100% (i.e. energy efficiency improvements lead to an overall increase in energy consumption). But I don't think any of the reviewed studies try to measure rebound effects like the car infrastructure one in "The political economy of degrowth".

The Buddha's Footprint: An Environmental History of Asia, Johan Elverskog

As part of my research for Fugue I've been reading more about East Asian Buddhist schools of thought (Pure Land, Chan, Zen, Huayan, and Tiantai). I had a lot of interest in Buddhism when I was a teenager but it was pretty "basic"; I didn't delve at all into the overwhelming strands of Buddhist tradition and thought (especially their dizzying metaphysics) that developed over the thousands of years of its existence. Fugue will be anchored around cycles, which are central to Buddhism, e.g. in samsara/reincarnation, the imagery of the wheel, etc (owing to its antecedent Indian subcontinent religions), and I wanted to better understand the concepts and their surrounding history before relying on them.

The popular reputation of Buddhism and Buddhists is something like: peaceful/pacifist, austere, gentle, jovial, kind, maybe even environmentally-friendly, and persecuted (Tibetan Buddhists specifically). The Rohingya genocide has disrupted that image (there are also claims of Tibetan slavery and serfdom, which, based on this incredibly detailed thread, sounds like it's not totally accurate in that serfdom/slavery in Tibet didn't completely match European serfdom or chattel slavery, but sounds close enough in that they did indeed have serfs and slaves1) but still might be taken as anomalous in the religion's history. Buddhism's spread, though small compared to the major Abrahamic religions, is substantial, and usually that kind of spread has some kind of violence behind it. I listened to this interview with Johan Elverskog on his recent book, The Buddha’s Footprint: An Environmental History of Asia, where he discusses Buddhism's relationship to empire and expansion, which supports this suspicion.

One main point he argues is that Buddhism, despite its reputation as ascetic, is a prosperity theology. Austerity is for the monks and nuns, but for the laity its conception of karma provides a framework for rationalizing/justifying wealth separate from birth/caste. It makes it more "meritocratic"—if you're wealthy, you must have done something to deserve it (good karma). Wealth becomes something you earn based on personal merit, rather than something you're born (or not born) into.

He also mentions Buddhism's role in the expansion of empires: that monasteries are located where they are as part of the development of commodity frontiers and owned tremendous amounts of lane, that monks had an active role in the spread of more intensive agriculture and used slave labor for that agriculture, and that these stem from the fact that Buddhism requires surplus production to support the clergy and devotional displays of large and ornate monasteries and the like. He even goes as far as pointing to European colonialism as a comparison. Buddhism, as an organized entity, is not unlike other major organized religions or states—they have their own interests, and expand to secure those interests.

Along a similar thread: There's a strong impulse to secularize Daoism in the West; it's very common to portray Daoism as a philosophy with no organized component. This is also very far from the historical reality of Daoism, which is an organized religion with its own clergy and temples and gods and scriptures beyond the Dao de jing. It has also been tied up in the history of Chinese empire and certainly has had suffering and blood spilled in its name. For more, see "The Taoism of the Western Imagination and the Taoism of China: De-Colonializing the Exotic Teachings of the East" (with some dunking on Western "Daoist" pop-psychology), "Common misconceptions concerning Daoism (Taoism)" (a much more concise overview), and this encyclopedia entry.

The Ministry for the Future, or Do Authors Dream of Electric Jeeps? Samuel Miller McDonald

A very critical review of Kim Stanley Robinson's Ministry for the Future, which, disclaimer: I haven't yet read, so I can't really comment on the fairness of the review. I found it helpful more for thinking through climate narratives and theories of change around climate change than about the book itself. The reviewer describes the tension between useful present value and abstract future value; i.e. how hard it is to convince someone to give up something in the present for something so far in the future that it feels abstract, that they probably won't be around for. The example given is "fishing plastic out of the ocean", which serves two purposes: keeping the fishing industry employed (valuable politically and preserves livelihoods) and cleaning waste from the oceans (environmentally valuable), contrasted against fishing fish (which gives you fish now, but at the potential expense of fewer or no fish in the future). I don't know if this is the best example to make that point—cleaner oceans have near-term benefit as well (water recreation, there are probably some short-term effects on fish stocks too), but the general framing is helpful for me.

The reviewer also poses another problem very clearly: "how you make the economics of not manufacturing more profitable than manufacturing".

A more constructive piece of criticism:

Utopian imaginaries often set up a dichotomy between a high tech, complex global economy growing ever more complex until it spans the solar system, versus a return to what’s imagined as “primitivism,” foraging for scraps, or toiling as a vast agrarian peasantry. But there’s something in between and beyond that we need to envision. It takes imagination, and for those who make a living using theirs to render it.

I think about this a lot: this dichotomy is really deeply rooted, and it's really hard for people who hear something like the term "degrowth" to envision it as anything other than regression, a suggestion of extreme austerity and poverty. Sure, some degree of re-ruralization/re-agrarianization may be in the cards, but it doesn't mean a life of uncertainty, precarity, and suffering (at least, not any more than what we already have) or a sudden loss of all the knowledge we've accumulated in the past few centuries.

The review also criticizes the book's focus on bureaucratic/technocratic institutions as the main actor in combating climate change, in contrast to (for example) on-the-ground direct action and the like. It was good to read alongside this reflection on forest defense/occupation in Germany, which includes debates on sabotage and militancy's effectiveness in achieving their goals (which go beyond the immediate goal of halting the clearing of trees).

There were also a couple papers referenced in the review that were interesting:

  • "It’s the End of the World and They Know It: How Dystopian Fiction Shapes Political Attitudes": "there are strong reasons to think that ideas contained in fiction may have just as strong an impact on people’s beliefs and attitudes as nonfictional content, given that people tend to incorporate ‘facts’ they learn regardless of whether the source is labeled fiction or nonfiction, and the narrative structure typical of fiction is known to be exceptionally powerful in shaping cognition and persuasion."
    • And: "we find consistent evidence that dystopian narratives enhance the willingness to justify radical—especially violent—forms of political action"
  • "Narrative structure of A Song of Ice and Fire creates a fictional world with realistic measures of social complexity": A social network analysis of the Game of Thrones books: There are roughly 2000 characters mentioned in the books, though each chapter (which are each told from a different character's POV) has around 35 characters on average. 35 people "has been identified as a stable subgrouping within social networks and as the typical size of (contemporary) bands of hunter-gatherers." The POV characters rank high on degree and centrality measures in the complete series' social network; that is, the POV characters are also the ones most important in the social network, and the major POV characters have an average degree of 154 (close to Dunbar's number, "the average number of stable relationships usually maintained at any given point in human life"). These features make the large amount of characters in the series cognitively manageable.

Outer Wilds

Riebeck playing the banjo in Outer Wilds

Possible spoilers for Outer Wilds and The Three-Body Problem

I finished Outer Wilds this week, after first giving it a try maybe a year ago. I had trouble getting into it at first, but the whole thing comes together as the loop of the game becomes familiar (the game is structured around a repeating 22 minute loop) and you start putting together the star system's mysteries. The process of investigation and discovery work really well, as simple as they are. Reading other comments, it seems like a lot of people also found the game to be unassuming and then are struck with how attached they become. The relatively brief encounters you have with the other (living) characters end up being surprisingly powerful by the end. The final sequence will probably stick with me for a long time—I was really struck by how unexpectedly emotional it was, providing small comfort in something as terrifying (but also so distant as to be entirely abstract) as cosmic death. One of the central themes in Fugue is rebirth, and Outer Wilds portrays it beautifully.

It reminded me of the ending for The Three-Body Problem, which now that I'm thinking about it has a very similar, but less moving, end. Interstellar maybe also tried to grapple something similar, what about quantum physics and the scale of space and time and so on, but it didn't land in the same way.

In any case, I highly recommend it.

Me, at the end of Outer Wilds

  1. From the thread: "The situation in Bhutan is still in living memory and we can probably infer that the situation in Tibet wasn't very different. In Bhutan, like Tibet, there was a very rigid aristocratic system. The majority of properties that weren't run-of-the-mill subsistence farmers run by extended families (80% of the population), were either monasteries run by tulkus (meritocratic systems run by knowledge of the Buddhist scriptures, Drukpa Kagyu in Bhutan, Gelukpa or Karma Kagyu in Tibet), or Lamaist choje families. ... So while these large extended aristocratic families ruled estates and concerned themselves with matter of religion and politics, the first set of serfs were lay-followers who didn't want to take the vows of Buddhist monks or nuns but still wanted to live in close proximity to the Lamas. These people became the first class of serfs called "drap." Drap were not hereditary, so while they were not taxed individuals, their children were born free. Drap were also granted less menial jobs in the house and were oftentimes more skilled than their contemporaries. The "Zap," the lower class of serfs/slaves, were a little bit different. ... Bhutan has a long tradition of north-south contact with Assam and Tibet, and less but still prevalent east-west contact with Sikkim. Part of this included the slave trade where parties of Bhutanese raiders would descend into Indian territory and kidnap Assamese, Bengali, Nepalis, etc. and sell or trade them as workers to wealthy families. Note this is not chattel slavery like we're familiar with. The parties of Bhutanese raiders tended to be associated directly with this village or that chöje family and already knew who they were kidnapping Zap for. There were no slave markets. That said, the Zap were hereditary. Their children were born Zap and their descendants still live in Bhutan (and Tibet) today. While the Lamas were required to cordon off a part of their land for Drap to live and provide for their own sustenance, the Lama was given no real obligation to provide the Zap with shelter. They showed up on the Lama's estate, were given three meals, and worked. (I have no idea how this system was enforced. It seems like it would be rather easy to run away and I'm sure there was a lot of that happening."