<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Daniel Saunders • Designer &amp; Developer</title><description>The personal website of web designer &amp; developer Daniel Saunders.</description><link>https://daniel-saunders.com/</link><atom:link href="https://daniel-saunders.com/feed.xml" rel="self" type="application/rss+xml"/><language>en-us</language><generator>Astro v.5</generator><lastBuildDate>Sat, 04 Jul 2026 21:02:05 GMT</lastBuildDate><item><title>My Year in Reading, 2025</title><link>https://daniel-saunders.com/posts/lists/my-year-in-reading-2025/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/lists/my-year-in-reading-2025/</guid><description>Challenging stale histories through fresh narratives, and how new worlds are formed.</description><pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reading-poliphilus.B577zGbi_Z1wHb1Y.webp&quot; /&gt; &lt;figcaption&gt;Hypnerotomachia Poliphili (1499), via Public Domain Image Archive.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;h2&gt;Favorites&lt;/h2&gt;
&lt;p&gt;These are the books that I spent a lot of time with this year, that shaped my thinking in a significant way, and that I wanted to write about (even if some of them aren’t my &lt;em&gt;absolute&lt;/em&gt; favorites).&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/reccKR86Pu5MMWcOU&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reccKR86Pu5MMWcOU.CgrJvcnQ_JeWwb.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/reccKR86Pu5MMWcOU&quot;&gt;Ancient Christianities: The First Five Hundred Years&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Paula Fredriksen&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; History, Religion &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Early Christianity and Second Temple Judaism; revisionist history (good); the social and political aspects of religion&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The traditional history told about the birth and early growth of Christianity—from sources spanning antiquity up through today—has largely resembled the “orthodox” telling. This is an insiders’ view of the story, one in which Christianity develops monolithically and inexorably from a single, pure “deposit of faith,” and that ends in the conversion of the entire civilized world under a unified banner (“by this sign you shall conquer” was the divine message which Constantine supposedly received).&lt;/p&gt;
&lt;p&gt;Along the way, dissident voices, sects, and communities strayed from the one, true path. Their &lt;em&gt;heresies&lt;/em&gt; (which originally meant simply “schools of thought”) were so many failed assaults on the fortress of this unchanging, core belief system. Orthodoxy is a rule and a boundary; and the true, public history of the faith coincided with this narrow line. This, at least, was the story that I learned in college when I studied early Christian history and Patristic theology, and it is still a widely prevailing narrative among faithful and secular alike.&lt;/p&gt;
&lt;p&gt;Within the last few decades, however, advances in archaeology, social sciences, and comparative religious studies have complicated this picture in profound and welcome ways. The title of Paula Fredriksen’s excellent new book, &lt;em&gt;Ancient Christianities&lt;/em&gt;, signals the monumental shift that is happening in our understanding of the origins of this religion—not just one, but &lt;em&gt;many&lt;/em&gt; faiths are the subject of this complex socio- and theologico-historical phenomenon.&lt;/p&gt;
&lt;p&gt;From the very beginning, Christianity has been a contested site among many, often divergent beliefs, practices, interpretations, theologies, and communities—all with basically equal justification for their positions. (Heresy, of course, is a word coined by the victors, who claimed for themselves the mantle of &lt;em&gt;orthodoxy&lt;/em&gt;, or “correct opinion,” and marked their opponents as deviants.) Fredriken’s is a thematic, rather than chronological, history, which hits all of the classic moments, disputes, and personas of the era, but it does so with the renewed vision of a framework that highlights this diversity. Not only does this make for a far more interesting history, it also uncovers the often-missed social and political realities that went hand-in-hand with disagreements on the finer points of academic doctrine. “Orthodoxy” and “heresy” aren’t inherent ontological categories, but are contingent labels that result from the shifting boundary of power and influence that is always being negotiated.&lt;/p&gt;
&lt;p&gt;To mention just one example from the book that has stuck with me: Fredriksen argues convincingly that early Christians practiced and thus legitimated coercion and violence against &lt;em&gt;themselves&lt;/em&gt; first, in an effort to mark out communal boundaries of orthodox purity against heresy—a technique which was then quickly turned against Jews and, in the hands of Christianized empire, against the “heathen” other in general. (It’s not hard to see where that led.)&lt;/p&gt;
&lt;p&gt;There is at the same time a disturbing persecution/martyrdom complex evident from the very beginning among the loudest and most belligerent voices of orthodoxy. Fredriksen shows how eager some early Christians were to align themselves with imperial power if it meant that their ideological enemies would be crushed. This did indeed have the intended effect, with the added consequence of giving the emperor new avenues for domination via religious coercion. Such a dynamic would never play out in history ever again, and definitely not now!&lt;/p&gt;
&lt;p&gt;What this book shows above all is how complex a beginning Christianity had, and how much is at stake in the way we continue to tell its origin story. The ancients saw religion and politics as melded categories, bound together in a web of social and ideological forces, and we would do well to understand that today.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recyHO4hSXjAZ1D4g&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recyHO4hSXjAZ1D4g.D2sw8GmI_1gltoC.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recyHO4hSXjAZ1D4g&quot;&gt;The Dawn of Everything: A New History of Humanity&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;David Graeber&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; History, Philosophy, Social Change &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Witty, sharp prose that makes you feel like you’re following a continuously unraveling logical thread; archaeology and anthropology; saying the phrase “what if everything you thought you knew was actually wrong” repeatedly to your friends and family&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;But why stop at the origins of Christianity when you could go all the way back to the beginning of human history itself? This is the ambition behind David Graeber and David Wengrow’s &lt;em&gt;The Dawn of Everything&lt;/em&gt;, which may be remembered as Graeber’s magnum opus after being published posthumously in 2021.&lt;/p&gt;
&lt;p&gt;The book is sprawling, enlightening, funny, convincing, exhaustive, exhausting, and, at times, exasperating. It took me about nine months to complete, first through a superb audiobook edition and then with the help of a small but dedicated book club, in part because every page feels like it holds an academic monograph’s amount of information. I’m not sure that I &lt;em&gt;loved&lt;/em&gt; it as a whole, although there are plenty of worthwhile sections, especially the first few chapters on critiquing Enlightenment narratives of the human condition. (Honestly, the last third feels skippable?)&lt;/p&gt;
&lt;p&gt;Part of the problem is that there is too much going on—as is clear from the introduction by David Wengrow, the book seems to be a repository for the two Davids’ multi-decade collaboration on a number of different topics spanning their fields of archaeology and anthropology. But something more focused soon emerges: as the authors write in the brilliant first chapter, they began with the question, “what is the origin of inequality?” only to confront something much deeper and more interesting to take up—namely, “what assumptions about history and the development of civilization lead moderns to ask this question in the first place?”&lt;/p&gt;
&lt;p&gt;This, then, is the book’s most persuasive, critical thesis: the authors deconstruct the nineteenth- and twentieth-century social-scientific “myth” that human beings naturally progressed from small, egalitarian hunter-gatherer bands to large-scale societies dominated by hierarchies, states, and kings. In this telling, we were destined to trade freedom for rule and inequality, but in the tradeoff we reaped the advancements of civilization. (I call this the &lt;a href=&quot;https://archive.org/details/msdos_sid_meier_civilization&quot;&gt;Sid Meier Civilization&lt;/a&gt; Theory of History.)&lt;/p&gt;
&lt;p&gt;Against this analogue of the “fall from the Garden of Eden,” Graeber and Wengrow marshal a mountain of evidence to show that, in fact, there is no basis for a Rousseauian “state of nature” or even a vulgar Marxist “stages of history” in the archaeological record. Instead, human beings were always complex animals that exercised choice and existed in ambivalent societies. Even prehistoric humans lived in history. At different times and in different places, they changed social and economic arrangements with the seasons (the authors’ theory on how Stonehenge was built), held slaves and abolished money, and adopted farming or threw it away as a waste of time. Contrary to the prevailing orthodoxies, then, there is no inherent link between history, progress, and social system.&lt;/p&gt;
&lt;p&gt;This point underscores what I think is the true meaning of the book. It is a mistake to read this as &lt;em&gt;history&lt;/em&gt; &lt;em&gt;per se&lt;/em&gt;, not least because the authors often put themselves on shaky footing by extrapolating a bit too eagerly and imaginatively from minimal evidence (queue the exasperating parts). Rather, I think this book is a laudable instance of &lt;em&gt;utopianism&lt;/em&gt;—not in the traditional, sci-fi mode of “looking ahead,” but in the less explored mode of &lt;em&gt;”looking behind.”&lt;/em&gt; In a way, this book is the authors’ rebuttal to &lt;a href=&quot;https://daniel-saunders.com/library/books/recIG2XGygzjXv9Hk&quot;&gt;capitalist realism’s&lt;/a&gt; dire pronouncement that “there is no alternative” to our contemporary predicament. With the zeal of their anarchist convictions, Graeber and Wengrow answer by gesturing back at the entirety of human (pre)history. Nothing is or has ever been inevitable, they seem to say, as they show us countless alternative visions of what it means to live and work together.&lt;/p&gt;
&lt;p&gt;A final note: both &lt;em&gt;Ancient Christianities&lt;/em&gt; and &lt;em&gt;The Dawn of Everything&lt;/em&gt; are approachable distillations of academic work from the last 30–50 or so years that is just now appearing as fresh scholarship. What I kept thinking about when reading both of these books is how &lt;em&gt;slowly&lt;/em&gt; it takes for ground-breaking research to filter down into popular, everyday understanding. We are only now beginning to understand the importance of discoveries from a generation or more ago. It makes me excited to see someday the fruits of what is &lt;em&gt;now&lt;/em&gt; on the cutting edge.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recMVgpx7yQxmkpvj&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recMVgpx7yQxmkpvj.CnadhpBq_ZT7XOr.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recMVgpx7yQxmkpvj&quot;&gt;Dhalgren&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Samuel R. Delany&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Fiction, Sci-Fi, Theory &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Being bludgeoned over the head with postmodern theory; poststructuralism and linguistics; experimental fiction; kink&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Utopias, Fredric Jameson argues in &lt;a href=&quot;https://daniel-saunders.com/library/books/recmpq6x25WVaiYm0&quot;&gt;&lt;em&gt;Archaeologies of the Future&lt;/em&gt;&lt;/a&gt;, are always ambivalent, often appearing as &lt;em&gt;dys&lt;/em&gt;topias if you squint hard enough. This is because utopias are attempts at depicting a rupture out of our current “inescapable situatedness”; apart from any content, they “force us to think the break itself,” to conceive of this violent rupture &lt;em&gt;as the form of Utopia&lt;/em&gt;, which pushes back on the notion that “there is no alternative” to present circumstances.&lt;/p&gt;
&lt;p&gt;It is one thing to try to enact this kind of utopian vision in a traditional sci-fi or fantasy setting; it is quite another to use the vehicle of the &lt;em&gt;novel itself&lt;/em&gt; as the starting point for this experimentation. Enter &lt;em&gt;Dhalgren&lt;/em&gt;, a strange, confounding, but mesmerizing work by Samuel R. Delany, who is something like a cross between the god Pan and a precocious beatnik.&lt;/p&gt;
&lt;p&gt;As William Gibson writes in the introduction, from the first page, &lt;em&gt;Dhalgren&lt;/em&gt; heads straight for the line delineating the contractual boundary between author and reader and ruthlessly, endlessly transgresses it (Delany, evidently, delights in transgression). This is not actually a “sci-fi novel”; according to Delany, &lt;em&gt;Dhalgren&lt;/em&gt; is 800 pages of Theory presented in a “fictive mode.” You will immediately find this to be either the most pretentious and tiresome exercise imaginable, or something intriguing and worth exploring, whatever its faults (and there are many). Maybe a bit of both! It certainly provoked a lot of different reactions in our book club.&lt;/p&gt;
&lt;p&gt;How do you even write about this book? I won’t bother to summarize the “plot” or characters, only to mention that the book centers around a foggy, shifting, atemporal city that has experienced some sort of apocalyptic disaster—one that has fundamentally altered the fabric of reality. This city is &lt;em&gt;maybe&lt;/em&gt; late 1960s “America.” There are &lt;em&gt;maybe&lt;/em&gt; ominous astrological portents that recur. Its residents, all mostly adolescents, &lt;em&gt;maybe&lt;/em&gt; live in a kind of frozen, post-Sexual Revolution realm of anarchy and libertinism. The book follows the inner experience of (The) Ki(d)d, a mixed-race, cryptic, would-be poet who has no fixed points of identity but exists as a living black hole, a walking assemblage of perceptions and thoughts with a void at his center.&lt;/p&gt;
&lt;p&gt;Delany loves to write as a critic of his own work (often playfully under the gender-swapped &lt;em&gt;nom-de-plume&lt;/em&gt; of &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Straits_of_Messina&quot;&gt;K. Leslie Steiner&lt;/a&gt;), and he has mercifully provided some interpretive clues for readers of &lt;em&gt;Dhalgren&lt;/em&gt; in an essay entitled, “Of Sex, Objects, Signs, Systems, Sales, SF, and Other Things” (in case you were wondering what the book is all about). Once I read this essay, I stopped reading &lt;em&gt;Dhalgren&lt;/em&gt; as a novel and started thinking about it as a text obsessed with &lt;em&gt;inhabiting&lt;/em&gt;, and not trying to solve, certain theoretical problems.&lt;/p&gt;
&lt;p&gt;Its world revolves around the post-structuralist ideas of Foucault, Kristeva, and Lacan, all of whom Delany was preoccupied with at the time of writing, and it shares with these authors a suspicion of philosphical systems which posit a one-to-one relationship between concrete reality and socio-linguistic meaning. The ambiguity surrounding the aforementioned “maybe”s of the book is calculated technique, driving toward a specific end—one that, Delany maintained, science fiction readers at the time were more equipped to take up and see all the way through. (So it &lt;em&gt;is&lt;/em&gt; sci-fi after all!)&lt;/p&gt;
&lt;p&gt;Fundamentally, &lt;em&gt;Dhalgren&lt;/em&gt; explores the ambivalent fallout that results from this utopian/dystopian rupture of “signifier” from “signified.” As a semiotic proposition, this is like saying, “the map and its symbols no longer correspond to the geography—and maybe they never have in precisely the way we think.” What happens, Delany asks, when this link is broken? What might be &lt;em&gt;gained&lt;/em&gt;? What alternatives in human behavior, social structure, and artistic form are possible when suddenly there are no “fixed meanings” in our linguistic universe?&lt;/p&gt;
&lt;p&gt;In his essay, Delany critiques a modernist, heteronormative literature which assumes a monolithic “sex act” that molds all of society to its shape. (Sex is a central metaphor and, uh, pastime in &lt;em&gt;Dhalgren&lt;/em&gt;.) In this Freudian conception, sex is an ontological given, a fixed point with deterministic meanings that people either take on, repress, or fall short of. Civilization mirrors this ideal and is dependent on it in an absolute way to function.&lt;/p&gt;
&lt;p&gt;In contrast, Delany wants to flip the “causal arrows” of this equation: it is instead the particular social arrangements and histories of any given society that shape what sexual expressions are possible in that society—an insight whose logic is then extended to all categories of identity like gender, race, and class. (Characters in the novel are constantly passing as or being misinterpreted as something in all of these categories, showing their inherent fluidity.) For Delany, a society resulting from radical semiotic rupture would necessarily have a sexuality, a politics, and an art &lt;em&gt;also&lt;/em&gt; reflecting a kind of radical rupture—which might be both alarming and exhilarating.&lt;/p&gt;
&lt;p&gt;In this same vein, &lt;em&gt;Dhalgren&lt;/em&gt; is an experiment—radical for the time but in its postmodern register perhaps more intelligible now—in how changing the structure of the social might change the perceptions, experiences, language, and meanings of the world itself. Not only in content, but in form: what remains interesting about this novel is that Delany tries to show &lt;em&gt;what that rupture would be like&lt;/em&gt;, with absolutely no prior signposts or guides. He forces us to think the break itself.&lt;/p&gt;
&lt;p&gt;This is why the book is so full of layers, fragments, &lt;a href=&quot;https://hum54-15.omeka.fas.harvard.edu/exhibits/show/the-urban-city-as-a-palimpsest/the-palimpsest-in-urbanism&quot;&gt;palimpsests&lt;/a&gt;, and puzzles (first among them its own title) that are not and cannot be solved in the text. This is how Delany puts it, in his rather tortuous manner:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Kid’s sanity remains in question (and hopefully is never fixed to the circumscribed area of meaning that respectively overshadows the officially “sane” or the officially “insane”) for the same reason the disaster of the city is unexplained: such explanations would become a fixed signified straiting the play and interplay of the signifier—the city of signs—that flexes and reflexes above it. To “clear up” either question … would prevent us from apprehending &lt;em&gt;Dhalgren&lt;/em&gt;’s real/true(?) topic: the organizing and reorganizing transformations we are free to view and experience once these restraining models are tossed aside.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So what is it actually like to read? With &lt;em&gt;Dhalgren&lt;/em&gt;, the act of reading itself becomes part of the process of understanding it. The book works &lt;em&gt;on you&lt;/em&gt;. I felt a lot of things when I picked it up: curiosity, confusion, disgust, desire, boredom, anxiety. At times it was like being stuck in an endless, sordid dream; at other times, it felt like an endless chain reaction of near epiphanies. It occupied my thoughts for many days.&lt;/p&gt;
&lt;p&gt;For me it was quite successful, as an experimental text, in unmooring me as a reader from fixed concepts and meanings, forcing me into a kind of existential limbo. In this way I felt like I entered into the predicament of Kid and the autumnal city. Whether or not it is a “good novel,” I can’t really say. But I think I would still take it over Deleuze and Guattari.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recLWOx6CHyjIq638&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recLWOx6CHyjIq638.DreefM8A_Z1KQkHM.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recLWOx6CHyjIq638&quot;&gt;The Night Watchman&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Louise Erdrich&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Fiction, Native American Literature &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Historical fiction; well-crafted, poetic prose; magical realism; indigenous worldviews&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In contrast to the labyrinthine entanglements of &lt;em&gt;Dhalgren&lt;/em&gt;, &lt;em&gt;The Night Watchman&lt;/em&gt;, a Pulitzer Prize winner, is a perfectly constructed novel. This was my first book by Louise Erdrich, and it is clear that she is a master of the craft. Like other great poet-novelists—such as Boris Pasternak, also on this year’s reading list below—she has a depth and sensitivity that lends a visionary quality to her prose. In Erdrich’s hands, real-world places, events, and people are spiritually expanded, transforming history into communal saga.&lt;/p&gt;
&lt;p&gt;The year is 1954, and the setting is the Turtle Mountain Reservation in North Dakota, home of the Ojibwe/Chippewa people. The historical narrative primarily follows the warm and immensely likable Thomas Wazhask, a figure closely based on Erdrich’s grandfather Patrick Gourneau, who is a security guard at a jewel bearing plant. Thomas has just learned about the United States government’s new policy to “terminate” existing Native American tribes then supported by federal resources. While the government claimed this would assimilate indigenous peoples into “real taxpaying citizens,” in practice it meant cutting off services, disavowing the historic sovereignty of tribes, and privatizing formerly protected lands. (&lt;a href=&quot;https://daniel-saunders.com/library/books/rec6DTiOyBbLCMljV&quot;&gt;Vine Deloria, Jr.&lt;/a&gt; remarked that “were an individual citizen to do this it would be classified as cold-blooded murder.”) Thomas is unsettled and immediately sets about trying to rouse the poor, tired community to resist.&lt;/p&gt;
&lt;p&gt;The genius of &lt;em&gt;The Night Watchman&lt;/em&gt; is that Erdrich presents this not just as a political battle for survival, but as an irreconcilable conflict between two opposing worldviews. On the one hand is the cynical, settler-colonial world of the whites, typified by the conservative Mormon senator from Utah, Arthur V. Watkins, who was the main proponent of the termination policy in real life. This world is cold, disenchanted, self-serving; in Marx’s phrase, it “has left remaining no other nexus between man and man than naked self-interest.” It aims to isolate and divide the tribal peoples, to separate them from each other like good Western, individual subjects. It severs the ties of place and home that inhere between the people and the land, and destroys self-determination out of a desire for profit.&lt;/p&gt;
&lt;p&gt;This world is unintelligible to Thomas Wazhask, whose name comes from the heroic muskrat who, in Anishinaabe myth, saved the entire world in an act of self-sacrifice. There is a different spiritual-temporal physics at work in his universe, where everything is animated and connected to everything else. The sacred is not a thing cordoned off in some separate, inaccessible place, but is manifest in every part of nature, in the &lt;em&gt;land itself&lt;/em&gt;, easily recognizable to those who are attuned to see it. (One of the book’s most remarkable passages is of a dream Thomas has, outside in the freezing winter night, in which he communicates directly with the unseen world.)&lt;/p&gt;
&lt;p&gt;While Thomas is the main focus, Erdrich divides the narrative among many different characters—members of the community, ghostly ancestors, and even animals, all of whom are endowed with the gifts of self-determination and communication. The effect is like a piece of classical music, where each individual part sounds its own melody while slowly building to a profound, graceful, and powerful whole.&lt;/p&gt;
&lt;p&gt;Unlike the stereotypical Western narrative, there are no purely evil antagonists in &lt;em&gt;The Night Watchman&lt;/em&gt;; even the Mormons can be (barely) sympathetic. There are simply two kinds of spirits at work among the overlapping planes of past, present, and future: those who are lost, cut off from their own roots and purpose, and those who know where they come from and how to find their way home.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Night Watchman&lt;/em&gt; succeeds in telling an important piece of history with direct political relevance today, through a moving narrative of a family and community. And it also shows how an expansive solidarity, one in tune with all of life and the land itself, is one of the most powerful forces in the universe.&lt;/p&gt;
&lt;h2&gt;Books I Enjoyed but Didn’t Want to Write About&lt;/h2&gt;
&lt;p&gt;I have run out of words to say anything substantive about these books that I enjoyed, other than that I enjoyed them. Maybe I’ll write &lt;a href=&quot;https://daniel-saunders.com/library/reviews&quot;&gt;shorter reviews&lt;/a&gt; of them sometime. I blame &lt;em&gt;Dhalgren&lt;/em&gt; for stripping away all of the faculties I had for understanding what a novel is.&lt;/p&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recbQiWrJshNz7x5U&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recbQiWrJshNz7x5U.CUM_gGAK_eKwAb.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recbQiWrJshNz7x5U&quot;&gt;Foucault&apos;s Pendulum&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Umberto Eco&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recgUE0iqtQBYcieN&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recgUE0iqtQBYcieN.Ap0RujtS_ZcVUsf.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recgUE0iqtQBYcieN&quot;&gt;Doctor Zhivago&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Boris Pasternak&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;h2&gt;Reading Paths&lt;/h2&gt;
&lt;h3&gt;The Social Novel 2 (Book Club)&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/reczll452RUZLCGYw&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reczll452RUZLCGYw.BUr-JHFC_2laqH9.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/reczll452RUZLCGYw&quot;&gt;Mornings in Jenin&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Susan Abulhawa&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recLWOx6CHyjIq638&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recLWOx6CHyjIq638.DreefM8A_RhaRG.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recLWOx6CHyjIq638&quot;&gt;The Night Watchman&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Louise Erdrich&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/reckBd9Vn7aNtj4h0&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reckBd9Vn7aNtj4h0.B9-6X1zj_Z1kGfu0.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/reckBd9Vn7aNtj4h0&quot;&gt;Yonnondio&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Tillie Olsen&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recMVgpx7yQxmkpvj&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recMVgpx7yQxmkpvj.CnadhpBq_1J0wL2.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recMVgpx7yQxmkpvj&quot;&gt;Dhalgren&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Samuel R. Delany&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recgUE0iqtQBYcieN&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recgUE0iqtQBYcieN.Ap0RujtS_ZcVUsf.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recgUE0iqtQBYcieN&quot;&gt;Doctor Zhivago&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Boris Pasternak&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;My primary book club continued this year along &lt;a href=&quot;https://daniel-saunders.com/posts/lists/my-year-in-reading-2024/#the-social-novel-book-club&quot;&gt;the path of “the social novel”&lt;/a&gt; with books that, each in their own way, deal with social and political themes. It was quite an eclectic collection this year, with stories ranging from the multi-generational struggle of Palestinians for survival (&lt;em&gt;Mornings in Jenin&lt;/em&gt;) to the brutality of working-class poverty during the Great Depression (&lt;em&gt;Yonnondio&lt;/em&gt;) to the conflict between revolutionary ideals and duty in the Russian Civil War (&lt;em&gt;Doctor Zhivago&lt;/em&gt;). I’m incredibly grateful to have such an intelligent and committed group of comrades to read these books with, and I’m looking forward to another year!&lt;/p&gt;
&lt;h3&gt;“Enchanted” Worlds&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/reccKR86Pu5MMWcOU&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reccKR86Pu5MMWcOU.CgrJvcnQ_w0DEi.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/reccKR86Pu5MMWcOU&quot;&gt;Ancient Christianities&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Paula Fredriksen&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recfTBwAVHzYYXvoT&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recfTBwAVHzYYXvoT.CulmavrK_Z1D8zJW.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recfTBwAVHzYYXvoT&quot;&gt;The Dead Sea Scrolls&lt;/a&gt;&lt;/p&gt; &lt;p&gt;John J. Collins&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recLWOx6CHyjIq638&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recLWOx6CHyjIq638.DreefM8A_RhaRG.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recLWOx6CHyjIq638&quot;&gt;The Night Watchman&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Louise Erdrich&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recbQiWrJshNz7x5U&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recbQiWrJshNz7x5U.CUM_gGAK_eKwAb.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recbQiWrJshNz7x5U&quot;&gt;Foucault&apos;s Pendulum&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Umberto Eco&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recgUE0iqtQBYcieN&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recgUE0iqtQBYcieN.Ap0RujtS_ZcVUsf.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recgUE0iqtQBYcieN&quot;&gt;Doctor Zhivago&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Boris Pasternak&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;This is a fun collection of books that embodies the Pauline phrase, “for we walk by faith, not by sight.” All of these books are about or have characters who believe in otherworldly forces that animate and direct events among the visible world. These forces can be ominous and paranoia-inducing (&lt;em&gt;Foucault’s Pendulum&lt;/em&gt;), apocalyptic and prophetic (&lt;em&gt;The Dead Sea Scrolls&lt;/em&gt;), or demonstrative of a poetic gratuitousness which stands in opposition to the iron laws of history (&lt;em&gt;Doctor Zhivago&lt;/em&gt;). In every case, there are more things in heaven and earth than are dreamt of in our philosophy.&lt;/p&gt;
&lt;h3&gt;Hard-Boiled Fiction&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recxiD0PBCGzgaPIz&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recxiD0PBCGzgaPIz.DUL-gcTt_f4qJa.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recxiD0PBCGzgaPIz&quot;&gt;Babylon Berlin&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Volker Kutscher&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recUnWcDqHOYzwrpr&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recUnWcDqHOYzwrpr.XlbFhtqi_EM5XC.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recUnWcDqHOYzwrpr&quot;&gt;Neuromancer&lt;/a&gt;&lt;/p&gt; &lt;p&gt;William Gibson&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/reckBd9Vn7aNtj4h0&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reckBd9Vn7aNtj4h0.B9-6X1zj_Z1kGfu0.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/reckBd9Vn7aNtj4h0&quot;&gt;Yonnondio&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Tillie Olsen&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;Standing as a (perhaps subconscious) rebuttal to the previous category, these novels are firmly grounded in the mundane, sordid reality of the kingdom of this world, even if extrapolated into the future (&lt;em&gt;Neuromancer&lt;/em&gt;). There is a feeling of claustrophobia in all of these books, as if life is aware of death encroaching on more and more of its domain. For all that, these are all absorbing, well written stories.&lt;/p&gt;
&lt;h2&gt;2025 Reading Stats&lt;/h2&gt;
&lt;p&gt;Compared to the previous year (in parentheses), I read less books over a longer period of time, but curiously kept my page per day average almost exactly the same (again, I blame &lt;em&gt;Dhalgren&lt;/em&gt;):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Books read from:&lt;/strong&gt; 17 (-30%)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Books finished:&lt;/strong&gt; 12 (-15%)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unique authors:&lt;/strong&gt; 17 (-21%)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average reading time (finished books):&lt;/strong&gt; 10 weeks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pages read:&lt;/strong&gt; 5,838 (-0.1%)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pages per day:&lt;/strong&gt; 15.9 (-0.6%)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;If you liked this post, consider showing your support with &lt;a href=&quot;https://ko-fi.com/dsaunders88&quot;&gt;a small tip or coffee&lt;/a&gt;. This goes a long way toward fueling more of my reading and writing, and it is much appreciated!&lt;/em&gt;&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Year in Review, 2025</title><link>https://daniel-saunders.com/posts/notes/year-in-review-2025/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/year-in-review-2025/</guid><description>A look back at the exhasuting but resilient year that was 2025.</description><pubDate>Thu, 08 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In addition to my annual &lt;a href=&quot;https://daniel-saunders.com/posts/tags/year-end-list&quot;&gt;“year in reading” post&lt;/a&gt;, which is hopefully to come soon, I thought I would put together a more personal reflection on the year that was 2025 and intentions for 2026. It feels strange to do at this moment, given the daily horror show of American fascism (fuck ICE) and the steady untethering of our already frail social fabric. I’m also writing this a year to the day from the devastating Los Angeles wildfires, which directly impacted our entire city and many I know personally. Despite all this, 2025 felt like a year of finding my ground, often in very literal ways (thanks in large part to tai chi).&lt;/p&gt;
&lt;p&gt;Precisely because of these desperate times, I tried to be more intentional about plugging into local community, focusing on my mental/emotional/spiritual health and self-development, and cultivating relationships with my partner, our cats, our friends, and the earth itself. It wasn’t always easy, but each of these actions helped to build resilience and hope.&lt;/p&gt;
&lt;p&gt;On top of that, I’m officially in my late 30s, and I feel the rapid approach of a “give no fucks” attitude to the wide world of nonsense that seems to be everywhere in our present moment. It’s time to rise above the &lt;em&gt;slop&lt;/em&gt; and focus on what really matters. Although it’s important to recognize that the interrelated material effects of &lt;a href=&quot;https://us.macmillan.com/books/9780374619329/enshittification&quot;&gt;tech enshittification&lt;/a&gt;, political destabilization, and regular climate disaster all require &lt;em&gt;collective action&lt;/em&gt; to effectively oppose, I feel increasingly called to do everything in my personal power to “de-enshittify” the world around me.&lt;/p&gt;
&lt;p&gt;This means striving for excellence and a sense of craft in everything I make, whether professionally or recreationally, and not giving up hard-won skills to senseless, spammy AI cruft (looking at you, ✨vibe coding✨ and most social media). It means living and acting from our interconnected humanity and taking every opportunity, however small, to ask of the decisions, tools, and paths in front of us, “is this helping to bring people together or to drive us apart?” In 2026, it is the former that I hope more and more people will choose to follow.&lt;/p&gt;
&lt;h2&gt;UCLA&lt;/h2&gt;
&lt;p&gt;I completed my first full year (both academic and solar) at the University of California, Los Angeles since starting there in 2024, working as a part-time web developer, digital designer, and all-around tech generalist with the &lt;a href=&quot;https://pourdavoud.ucla.edu&quot;&gt;Pourdavoud Institute for the Study of the Iranian World&lt;/a&gt;. Apart from the truly terrible cross-L.A. commute (which averages 1 hour and 15 minutes each way) and the tepid institutional leadership on the national stage, this has been far and away the best job I’ve had since…maybe ever? In the current climate, both at UCLA and elsewhere, I’m so grateful to have a job (with UC benefits!) in my chosen profession—especially one where I have broad leeway to work on many different kinds of projects and to exercise my creativity in service of the noble mission of disseminating open-access knowledge.&lt;/p&gt;
&lt;p&gt;I have also loved being on a beautiful campus in an academic setting. Even though I applied to the job somewhat arbitrarily, the research focus of the institute on ancient/pre-Islamic Persia has proved to be remarkably compatible with many of my long-standing interests, and has sparked new areas of exploration. Given the intersection of antiquity, religious studies, and literary traditions, I’ve particularly enjoyed learning more about the impact of the Persian Empire on Second Temple Judaism and early Christianity. And in general, I have appreciated just being on a good team again after years of solo freelancing, especially with people who get excited by things like etymological discussions and mapping ancient worlds.&lt;/p&gt;
&lt;p&gt;In terms of projects, the big one I worked on was a complete redesign/rebuild of the institute’s two main websites (for the &lt;a href=&quot;https://pourdavoud.ucla.edu&quot;&gt;Pourdavoud Institute&lt;/a&gt; and the &lt;a href=&quot;https://yarshater.ucla.edu&quot;&gt;Yarshater Center&lt;/a&gt;). I moved them off of a broken and literally decade-old WordPress instance to a headless/static-site setup powered by &lt;a href=&quot;https://astro.build&quot;&gt;Astro&lt;/a&gt; and &lt;a href=&quot;https://www.sanity.io&quot;&gt;Sanity&lt;/a&gt;. This took me the better part of the year, as I was solely responsible for everything from building the site to migrating content, but I think it was a huge success. Not only were there massive improvements for accessibility and performance (the old site had a ~7 second home page load, which was shaved down to milliseconds), but everyone is now much happier with the content workflow, site navigability, and ease of adding custom integrations. I also had fun writing a mini &lt;a href=&quot;https://hono.dev&quot;&gt;Hono server&lt;/a&gt; to listen for webhooks to trigger and log site builds from the Sanity dashboard.&lt;/p&gt;
&lt;p&gt;Through a series of unforeseen events that can only happen at a university, I also found myself in the position of layout designer and technical editor on an academic journal which has passed into our hands. This was quite serendipitous, as before I pivoted to web development I had done some publication design work and found it to be really fun (although often grueling). I even got the chance to alter the journal’s font, as we needed to add in certain diacritical markings for transliterations. Maybe 2026 is the year I take a stab at type design!&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/ucla-window.B-r3NUoT_ZVqBKh.webp&quot; /&gt; &lt;figcaption&gt;View from my window at UCLA.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;h2&gt;Freelance&lt;/h2&gt;
&lt;p&gt;I continued to build and manage websites as a freelancer, but because of the UCLA job, I was able to devote only about 25% of my time to these projects. Honestly, this was a welcome change from prior years, because it meant I could focus on a handful of bigger projects and not worry about finding smaller things to fill in the cracks. The downside was that projects tended to take longer and were fewer in number, but scaling back felt necessary to avoid burnout.&lt;/p&gt;
&lt;p&gt;I’m feeling somewhat ambivalent about freelancing these days, and I’m reevaluating how I want to balance this work with UCLA work in the coming year. But I was very proud of the projects that I did get to work on. In particular, it was another successful year of collaborating with Haymarket Books, an independent, leftist publisher based in Chicago. This year I helped them redesign their site for &lt;a href=&quot;https://www.haymarkethouse.org/&quot;&gt;Haymarket House&lt;/a&gt;, a community organizing space. I had to build a custom WordPress block theme for this, which was wild and which I’ll never do again (encoding JSON in HTML comments, are you out of your damn mind, WordPress?), but nevertheless I’m happy with how it turned out. It is a gift to work on creative projects with such a strong mission for social and economic justice, especially in these times.&lt;/p&gt;
&lt;p&gt;Otherwise, I perfected what I think is the Platonic form of &lt;a href=&quot;https://stalbanswestwood.org&quot;&gt;the Episcopal Church website&lt;/a&gt; and built a few decently sized non-profit sites. I will also include in this category the redesign of &lt;a href=&quot;https://daniel-saunders.com/posts/notes/new-astro-site-2025&quot;&gt;my own personal site/blog&lt;/a&gt; and the site for &lt;a href=&quot;https://movewithcait.com&quot;&gt;my partner’s yoga practice&lt;/a&gt; (which apparently always makes a good impression on her teacher peers).&lt;/p&gt;
&lt;p&gt;My go-to web framework is definitely &lt;a href=&quot;https://astro.build&quot;&gt;Astro&lt;/a&gt;, and I always try to find a way to build sites with a static-first aproach. But this year I fully embraced &lt;a href=&quot;https://statamic.com&quot;&gt;Statamic&lt;/a&gt; for building dynamic CMS sites that are meant to be handed off to teams to update frequently, which is most of what I build. PHP might be unsexy (and boy do I hate writing it), but it still has one of the best ecosystems for managing content and administering servers (shoutout to &lt;a href=&quot;https://ploi.io&quot;&gt;Ploi&lt;/a&gt;), and Statamic is a solid product with a very helpful community. It’s also nice just to take a temporary breather from the shitshow that is the JavaScript world.&lt;/p&gt;
&lt;h2&gt;Interests/Projects/Creativity&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Coding.&lt;/strong&gt; I spent more time with the &lt;a href=&quot;https://go.dev&quot;&gt;Go programming language&lt;/a&gt;, which I really like and want to use more of in my webdev work and everyday tasks. I’m sure its meme/hype status has been eclipsed compared to where it was a few years ago, but—and I say this as someone with no computer science background—it feels like what a “real,” modern programming language should be. Static types are amazing compared to JavaScript, and you don’t have to deal with all of the fussy annoyances of TypeScript. It’s simple enough to learn coming from a JS background, but it’s getting me to dive a lot deeper into the underlying fundamentals of what I’m doing. Among other little side projects, I built myself a command line library in Go to handle some scripting/templating tasks, and I also completed 75% of the &lt;a href=&quot;https://github.com/dsaunders88/advent-of-code-2025&quot;&gt;Advent of Code puzzles using Go&lt;/a&gt; (I tapped out as soon as linear algebra was introduced). I’m hooked!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Music/singing.&lt;/strong&gt; I returned to choral singing after taking a few years off. I feel like I have finally reached a point where music, especially singing, feels fun and spontaneous and enjoyable again, which was previously hampered by years of perfectionism and the super-spreader risks of the pandemic. I was also very grateful to rediscover, after an absence of about a decade, the joys of &lt;a href=&quot;https://en.wikipedia.org/wiki/Sacred_Harp&quot;&gt;Sacred Harp&lt;/a&gt; singing. There is a local meetup near us, and it’s been a blast to participate in this unique art form and make new friends in an incredibly kind and welcoming community. (For those unfamiliar with Sacred Harp, &lt;a href=&quot;https://youtu.be/m34OaYzG9NE&quot;&gt;here is what you’re missing&lt;/a&gt;.) I’m also very excited to experiment with a Roland digital piano that I bought at the end of the year.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Physical media.&lt;/strong&gt; 2025 was a year of physical media, which I think is on the rise across all fronts, not least because of the abysmal state of AI-powered apps™️. I listened to CDs and vinyls, created collages, and ditched most digital time-tracking/task apps for the sensory pleasures of pen and paper—although I still use the amazing (and free) &lt;a href=&quot;https://obsidian.md/&quot;&gt;Obsidian app&lt;/a&gt; for compiling/archiving notes. It turns out physical paper and writing by hand is also good for my neurodivergent brain. I like repeating the same bits of information and having them exist in many places/forms at once, as it helps me to actually remember and prioritize information. (I think I’m currently using about 4 &lt;a href=&quot;https://www.leuchtturm1917.us/&quot;&gt;Leuchtturm1917&lt;/a&gt; notebooks for various areas of work and life.) In 2026, I would love to find more creative outlets in print media, and want to take a class in printmaking/risograph or some similar technique.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Language.&lt;/strong&gt; Partly because of the occasional Persian I come across in connection with my UCLA job, I decided to start decoding the Arabic alphabet (which the Persian language uses). It feels like a superpower to look at a foreign alphabet/script and be able to sound out words, even if the meaning is still obscure. So I have been practicing writing and sounding out the &lt;em&gt;abjad&lt;/em&gt;, which is absolutely beautiful. I did a few deep dives into Arabic itself and I think I want to focus on learning a bit of it in the next year,&lt;br /&gt; إن شاء اللّه.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/collage.BidMUjjA_ERSM9.webp&quot; /&gt; &lt;figcaption&gt;Collaging.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;h2&gt;Well-being/Community&lt;/h2&gt;
&lt;p&gt;I did a lot to take care of myself in 2025. Primarily, I continued to practice tai chi (or &lt;em&gt;tàijíquán&lt;/em&gt; in pinyin) a few times a week, which has been a source of physical, mental, and spiritual nourishment. I’m mentored by a Sifu who teaches the 108-form &lt;a href=&quot;https://en.wikipedia.org/wiki/Wu-style_tai_chi&quot;&gt;Wu style&lt;/a&gt; of traditional tai chi, which is &lt;a href=&quot;https://youtu.be/v4pezeJWpVM&quot;&gt;martial arts-focused&lt;/a&gt; and which develops strong roots and fluid movements. It’s been a hugely positive source of strength, focus, and adaptability in my everyday life—tai chi is all about “firm softness” and redirecting aggressive energy, something we all need a lot more of. I’m also learning a sword form featuring the Chinese straight sword (&lt;em&gt;jian&lt;/em&gt;), which, let’s be honest, looks pretty badass.&lt;/p&gt;
&lt;p&gt;Towards the end of the year, I started working with a creative coach/mentor who specializes in neurodivergence. The latter is still a pretty new thing I’m exploring in general, but this process has been validating, challenging, and inspiring all at once. I’ve never been so intentional and systematic in trying to understand both my specific struggles and my strengths/life purpose, and I’m excited to see where this focus leads in the new year.&lt;/p&gt;
&lt;p&gt;My wife Caitlyn and I marked our tenth anniversary this last summer (where did that time go??), and we tried to take some space out of a busy year to celebrate in a few different ways. (We’re doing that more fully this month with a trip to Mexico City!) We experienced the mind-blowing magic of Evan Funke’s Italian comfort food at &lt;a href=&quot;https://felixla.com&quot;&gt;Felix Trattoria&lt;/a&gt; in Venice Beach; I still think about the insanely delicious &lt;em&gt;sfincione&lt;/em&gt;, or Sicilian focaccia, all the time. Then we decamped to the oddly hip Pioneertown out in the desert near Joshua Tree, in the middle of summer, for a Gogol Bordello show. It was of course wonderfully nostalgic (they were one of Caitlyn’s favorite bands in college), but it was also profoundly cathartic to mosh and scream to Ukrainian anarchist punk with a throng of other people under a desert sky. A few other notable reprieves included a weekend trip to Pismo Beach/San Luis Obispo to experience the glory of the central California coast, and camping in a big meadow (aptly named Big Meadow) in the Sequoia National Forest.&lt;/p&gt;
&lt;p&gt;Finally, there were all the myriad ways we deepened and expanded our community. I branched out and started attending my local &lt;a href=&quot;https://www.typethursday.org&quot;&gt;TypeThursday meetup&lt;/a&gt;, to make connections with other designers and to do the vulnerable work of sharing works in progress. As a small gesture of solidarity with Palestinians, I cooked Levantine food for friends on Thanksgiving and designed fancy menu cards, just because it’s nice to have nice things.&lt;/p&gt;
&lt;p&gt;I somehow found the time to be a part of not one, but two book clubs—the first following on a great &lt;a href=&quot;https://daniel-saunders.com/posts/lists/my-year-in-reading-2024/#the-social-novel-book-club&quot;&gt;first year in 2024&lt;/a&gt; with more interesting fiction from around the world, and the second with three of us slogging through David Graeber and David Wengrow’s &lt;em&gt;The Dawn of Everything&lt;/em&gt; (more on books to come in the year in reading post). It’s such a pleasure to expand your own experience of a text alongside other dedicated, smart, like-minded people—something I don’t take for granted!&lt;/p&gt;
&lt;p&gt;I also inaugurated the first of what will hopefully be many more experimental/ambient listening sessions with other music aficionados. The first Los Angeles Listening Party (LA/LP) brought together a dozen of us to sit awkwardly in a room together, without phones, to have our minds melted by the psychedelic looping organs of &lt;a href=&quot;https://youtu.be/ZfHmEblM1Dk&quot;&gt;Terry Riley’s &lt;em&gt;Shri Camel&lt;/em&gt;&lt;/a&gt;. Again, just the act of experiencing art together in person with others feels profound and even revolutionary these days, and I want so much more of it in 2026.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/cats.Bit-bZjw_212AnP.webp&quot; /&gt; &lt;figcaption&gt;And I can’t forget our wonderful cats, one a beautiful tsarina and one a strange little Narodnik.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;h2&gt;Media&lt;/h2&gt;
&lt;p&gt;To close out this over-long post, here is my shortlist of favorite media I spent time with last year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Books:&lt;/strong&gt; A longer post to come, but notably &lt;em&gt;Ancient Christianities: The First Five Hundred Years&lt;/em&gt; by Paula Fredriksen (2024), for its portrayal of the complex diversity and social expressions of early Christian communities; and &lt;em&gt;The Night Watchman&lt;/em&gt; by Louise Erdrich (2020), for its moving story of an Ojibwe community fighting against the Indian termination policies of the US government in the 1950s&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TV/Film:&lt;/strong&gt; &lt;em&gt;The Barchester Chronicles&lt;/em&gt; (1982), an all-time great BBC production about English church drama, with Alan Rickman in his best role as the chaplain Obadiah Slope; &lt;em&gt;Conclave&lt;/em&gt; (2024) and &lt;em&gt;Wake Up Dead Man&lt;/em&gt; (2025) both had surprisingly nuanced depictions of religion; &lt;em&gt;Severance&lt;/em&gt; (2022) is heady sci-fi at its best&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Music:&lt;/strong&gt; &lt;em&gt;Mayhem&lt;/em&gt; by Lady Gaga (2025) was on repeat for me all year for its roster of insanely catchy and dynamic songs; a lot of Pete Seeger, for songs of hope and resistance; a lot of metal, as an outlet for all the rage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Games:&lt;/strong&gt; &lt;em&gt;The Legend of Zelda: Tears of the Kingdom&lt;/em&gt;
(2023), &lt;em&gt;Hollow Knight: Silksong&lt;/em&gt; (2025) (too hard to finish), &lt;em&gt;Hades 2&lt;/em&gt; (2025)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What a post—if you made it all the way here, we are now friends if we weren’t already.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>The Maximal Minimalism of Terry Riley’s Shri Camel</title><link>https://daniel-saunders.com/posts/notes/terry-riley-shri-camel-review/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/terry-riley-shri-camel-review/</guid><description>Terry Riley’s music strains boundaries and calls forth a sense of multitudinousness.</description><pubDate>Wed, 01 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I recently procured a new vinyl pressing of the third-eye-opening &lt;a href=&quot;https://www.discogs.com/master/49959-Terry-Riley-Shri-Camel&quot;&gt;&lt;em&gt;Shri Camel&lt;/em&gt;&lt;/a&gt; (1980), a landmark composition by the Grandfather of Electronic Music, Terry Riley, and had some friends over to listen to the masterpiece. (Side note: be sure to check out his amazing &lt;a href=&quot;http://terryriley.net/&quot;&gt;web 1.0 website&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://daniel-saunders.com/_astro/terry-riley-shri-camel.Bpyohfu9_2uw4UH.webp&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The last in a triptych of albums he recorded for CBS Records, &lt;em&gt;Shri Camel&lt;/em&gt; is the culmination of improvisational experiments with electronic keyboards and tape loops that Riley began conducting in live settings as early as the 1950s. The &lt;a href=&quot;https://youtu.be/ZfHmEblM1Dk?si=emAVNN1bIGwMOViP&amp;amp;utm_source=la_lp&amp;amp;utm_medium=email&quot;&gt;version of the piece&lt;/a&gt; captured on the record was at least five years in the making and is likely never to be performed in the same way again (although, incidentally, his son Gyan performed an arrangement of Riley’s earlier &lt;em&gt;Rainbow in Curved Air&lt;/em&gt; &lt;a href=&quot;https://www.theford.com/events/performances/4108/2025-09-07/terry-riley-90th-birthday-celebration&quot;&gt;at the Ford Theater in September&lt;/a&gt;, in honor of Terry’s 90th birthday.) The piece is the crystallization of avant-garde compositional techniques, San Francisco bohemianism, LSD, and the music and philosophies of the Indian subcontinent. (&lt;em&gt;Shri&lt;/em&gt; is a Sanskrit honorific. &lt;em&gt;Camel&lt;/em&gt; is… a camel?)&lt;/p&gt;
&lt;p&gt;While this combination and era of music is often presented under the amorphous term of “minimalism,” that term feels particularly inadequate when applied to Riley, as anyone who is familiar with the extravagance of &lt;em&gt;In C&lt;/em&gt; can attest. This is because Riley’s music strains the boundaries traditionally set by Western music. In &lt;em&gt;Shri Camel&lt;/em&gt;, from the braying fanfare of Riley’s justly tuned* Yamaha organ at the piece’s start to the endlessly evolving melodic textures that emerge later on, we find ourselves in a shifting aural landscape variously reminiscent of early medieval instrumental forms (think &lt;a href=&quot;https://en.wikipedia.org/wiki/Shawm&quot;&gt;shawms&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Sackbut&quot;&gt;sackbuts&lt;/a&gt;), mictotonal Indian &lt;a href=&quot;https://en.wikipedia.org/wiki/Raga&quot;&gt;ragas&lt;/a&gt;, and even hard bop.&lt;/p&gt;
&lt;p&gt;(*If you want to go down a music nerd’s rabbit hole, check out the Wikipedia entry for &lt;a href=&quot;https://en.wikipedia.org/wiki/Just_intonation&quot;&gt;just intonation&lt;/a&gt;; the quick summary is that it uses simple ratios for the intervals between notes, giving the instrument’s sound a more raw, mictrotonal feel than modern Western tuning—which in its “&lt;a href=&quot;https://youtu.be/Mia9woisQZo?si=BxsrK3vLu2IbV1tq&quot;&gt;equal tempered&lt;/a&gt;” philosophy mathematically evens out the distances between intervals.)&lt;/p&gt;
&lt;p&gt;The simple repetitions and drones typical of minimalism are evident throughout Riley’s work, of course, but the overall effect in &lt;em&gt;Shri Camel&lt;/em&gt; is rather one of maximal sonic effusiveness, rather than the cold emptiness evoked by academic composition. Individual notes seem uninterested in the concept of “precision,” leading to a constant wave of crunchy dissonances that chafe against the pop sensibilities our ears are accustomed to. But the piece as a whole still manages to be consonant and incredibly melodic.&lt;/p&gt;
&lt;p&gt;Riley’s virtuosic solo performance transcends individuality; it is often hard to believe that the ecstatic glossolalia pouring forth from the refracted organ loops is the product of one mind and set of hands (with no digital effects!!), and not the angelic babbling of a host of divinities—an effect that is further enhanced by esoteric track titles such as “Anthem of the Trinity” and “Across the Lake of the Ancient World.” An objective sense of &lt;em&gt;multitudinousness&lt;/em&gt; is what &lt;em&gt;Shri Camel&lt;/em&gt; most imparts to the listener.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>New Astro Site, 2025</title><link>https://daniel-saunders.com/posts/notes/new-astro-site-2025/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/new-astro-site-2025/</guid><description>A new redesign and build of this site with Astro.</description><pubDate>Wed, 23 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;After what has felt like a long period of stagnation, I finally found the motivation to reinvigorate this website with some much-desired changes to its design and architecture. This version is newly built with &lt;a href=&quot;https://astro.build/&quot;&gt;Astro&lt;/a&gt; and is hosted for free on &lt;a href=&quot;https://developers.cloudflare.com/workers/framework-guides/web-apps/astro&quot;&gt;Cloudflare Workers&lt;/a&gt;, a setup that is one of the smoothest I’ve used in recent years. The &lt;a href=&quot;https://github.com/dsaunders88/ds-blog-astro&quot;&gt;source code&lt;/a&gt; is public on GitHub for those who like to take a look under the hood.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/ds-astro-2025-1.BE47IKa-_Zlu5yM.webp&quot; /&gt; &lt;figcaption&gt;The home/index page, anchored by the delightfully eccentric Kensington typeface.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;h2&gt;Motivation&lt;/h2&gt;
&lt;p&gt;In many ways, I’m never &lt;em&gt;not&lt;/em&gt; in the process of redesigning my personal site. Constant tinkering is an excellent excuse for experimenting with new ideas and technologies (and generally procrastinating on other things). So it was not too much of a surprise when, right on cue, I began to feel like I wanted to make a fresh start almost immediately after I launched the last version of this site in &lt;a href=&quot;https://daniel-saunders.com/posts/notes/new-site-design-for-2024&quot;&gt;January 2024&lt;/a&gt; (these are the travails, and joys, of a designer/developer).&lt;/p&gt;
&lt;p&gt;The reasons for a change were manifold, but primarily I have been conscious of simply wanting to contribute &lt;em&gt;less noise&lt;/em&gt; to the web, both visually and informationally. In an ongoing cultural moment of gross usurpation of digital space by AI bloatware, meaningless media opinionating, ad blitzkriegs, and everyone feeling like they have to constantly sell their own personal brand, I feel the need instead to step back and cultivate my own Zen-like corner of &lt;em&gt;simplicity&lt;/em&gt; and &lt;em&gt;thoughtfulness&lt;/em&gt; on the web. (A big reason why I have also stepped away from most social media platforms.)&lt;/p&gt;
&lt;p&gt;Here, if nowhere else, there can exist a truly well-ordered universe of my own making, a &lt;em&gt;cosmos&lt;/em&gt; where things are as they appear and where artifice gives way to the sincerity of the original &lt;em&gt;amateur&lt;/em&gt;—I title I gladly claim, as it just means someone who does things solely for the love of it. I’m also not going to track you (I use a minimal, privacy-first &lt;a href=&quot;https://usefathom.com&quot;&gt;analytics tool&lt;/a&gt;), serve you ads, or hijack your screen with a newsletter popup.&lt;/p&gt;
&lt;p&gt;I’m inspired by the &lt;a href=&quot;https://maggieappleton.com/garden-history&quot;&gt;digital garden ethos&lt;/a&gt;, but other reference points include the commonplace book, the literary index, the old-fashioned blog (à la &lt;a href=&quot;https://www.penguinrandomhouse.com/books/592331/k-punk-by-mark-fisher&quot;&gt;k-punk&lt;/a&gt;), and the world wide web in its original formulation—a network of hyperlinked texts that plays to the strengths of the medium, which is creating associations between ideas that might not have been otherwise evident. I’ll be happy if I’m able to pass on even a fraction of this sense to a visitor who happens upon this site.&lt;/p&gt;
&lt;h2&gt;Design &amp;amp; Layout&lt;/h2&gt;
&lt;p&gt;To these ends, I wanted a more pared-down visual design for this version of the site, with a primary focus on typography. Text, after all, is the focus of a blog. I am proud of the writing I choose to share here, and thus I think the overall design should be in the service of a dignifying and engaging reading experience.&lt;/p&gt;
&lt;p&gt;I fell in love with &lt;a href=&quot;https://fortfoundry.com/fonts/kensington&quot;&gt;Fort Foundry’s Kensington&lt;/a&gt; a while ago and have been waiting for the right project to use it in. In its “black” weight, it checks all of the boxes I have for striking headings—bold, eccentric, literary, approachable, and just a bit pretentious (not necessarily a bad thing!). Kensington also comes with a delightful set of ornaments, florals, cartouches, and manicules, which are a lot of fun to play with and which I’m using as icons throughout the site.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/ds-astro-2025-3.G6zbkjDZ_Z135SJY.webp&quot; /&gt; &lt;figcaption&gt;A sampling of the various Kensington ornaments as seen in this site&apos;s post categories list.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;To complement Kensington, for setting body text I chose &lt;a href=&quot;https://www.zetafonts.com/ambra-sans&quot;&gt;Zetafonts’ Ambra Sans&lt;/a&gt;, whose graceful fluidity I find to be very pleasant for online reading (and really, who can resist the descenders on these “f”s). With the indispensable &lt;a href=&quot;https://utopia.fyi&quot;&gt;Utopia&lt;/a&gt; tool, I’m able to set a fluid scale of sizes for these fonts across screen sizes.&lt;/p&gt;
&lt;p&gt;For the layout, I again wanted to keep things very simple. I opted to forego any kind of persistent global navigation (death to the hamburger menu!) in favor of a contextual, “breadcrumbs”-only style navigation header. I really like the simplicity of this, and my hope is that it fosters more exploration of the site for visitors, using the home page “index” as a true central routing station to all of the site’s content areas.&lt;/p&gt;
&lt;p&gt;Implementing this idea in Astro was also intuitive and fun; I created a &lt;a href=&quot;https://github.com/dsaunders88/ds-blog-astro/blob/main/src/components/navigation/Breadcrumbs.astro&quot;&gt;component&lt;/a&gt; to dynamically build the breadcrumb links from the current URL path and assign titles by querying entries in Astro’s content collections (all accomplished at build time, with no client-side JavaScript).&lt;/p&gt;
&lt;h2&gt;Backlinks &amp;amp; Books Library&lt;/h2&gt;
&lt;p&gt;Another feature I knew I wanted to implement in this version of the site was &lt;a href=&quot;https://help.obsidian.md/plugins/backlinks&quot;&gt;Obsidian-style backlinks&lt;/a&gt;. Given the interconnectedness of all of the pieces of this site, I wanted an easy way to see when a certain post or book is referenced by any other entry on the site. Building this feature required some research and trial and error, and I’m not confident I’m doing it in the most efficient way, but … it works! I’m planning a tutorial post where I’ll go into more detail on how this works.&lt;/p&gt;
&lt;p&gt;Backlinks are especially important for the &lt;a href=&quot;https://daniel-saunders.com/library/books&quot;&gt;books&lt;/a&gt; that I reference throughout my &lt;a href=&quot;https://daniel-saunders.com/posts&quot;&gt;posts&lt;/a&gt; and &lt;a href=&quot;https://daniel-saunders.com/library/reviews&quot;&gt;reviews&lt;/a&gt;—part of my single-minded pursuit of modeling a digital version of my real-life library. This is a feature that not only facilitates easy navigation between various parts of the site, but also helps &lt;em&gt;me&lt;/em&gt; see how and where I am making references between my writing and the books that I’m reading. It’s a powerful design pattern that, in my opinion, greatly enhances both the user experience of the site and my own understanding of my writing.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/ds-astro-2025-2.BgWBSNS2_Z1LG47q.webp&quot; /&gt; &lt;figcaption&gt;A library book detail page showing a backlink to another post which references the book.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;All of the library book data lives in an Airtable base, which is integrated into Astro using &lt;a href=&quot;https://github.com/ascorbic/astro-loaders/tree/main/packages/airtable&quot;&gt;@ascorbic’s Airtable loader&lt;/a&gt;. In the past, I’ve done all of this work myself using Airtable’s raw HTTP API, which isn’t the most intuitive. It’s pretty amazing when a community solution comes along that &lt;em&gt;just works&lt;/em&gt; (and, in Astro, gives you fully typed data to work with). Thanks to the community!&lt;/p&gt;
&lt;h2&gt;Technical Details&lt;/h2&gt;
&lt;p&gt;As mentioned, this site is &lt;strong&gt;built with Astro&lt;/strong&gt; (using Typescript features) and deployed on Cloudflare Workers. While I have enjoyed building previous versions of this site with &lt;a href=&quot;https://www.11ty.dev&quot;&gt;Eleventy&lt;/a&gt; and &lt;a href=&quot;https://lume.land&quot;&gt;Deno Lume&lt;/a&gt;, Astro is one of my go-to tools for &lt;a href=&quot;https://ds-design-studio.com/services/frontend-development&quot;&gt;building client sites&lt;/a&gt;, and so it was the obvious choice for this version of the site. Its amazing schema-typed &lt;a href=&quot;https://docs.astro.build/en/guides/content-collections&quot;&gt;content collections&lt;/a&gt; are perfect for building a blog-based site. Moreover, beyond the great “developer experience” if offers, I find that it just makes it easy to build &lt;em&gt;user-oriented sites&lt;/em&gt;—sites that are accessible, content-focused, and minimally JavaScripted.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pages&lt;/strong&gt; are statically generated/prebuilt, and for “deployment” I’m simply using Cloudflare’s &lt;a href=&quot;https://developers.cloudflare.com/workers/wrangler&quot;&gt;Wrangler CLI package&lt;/a&gt; to upload the build directory straight from my local machine. The ease of this workflow is a breath of fresh air, especially since my last site used a complicated, error-prone, and time-consuming GitHub action to deploy to Deno Deploy.&lt;/p&gt;
&lt;p&gt;I actually like this workflow better than the “auto deploy from GitHub repository” model as well, which is partly why I decided not to use Netlify. For one, it means that I don’t have to wait for some slow cloud process to build the site, but can instead use my fast local machine (it currently takes about 30 seconds in total to build and upload ~200 files, and there are some definite improvements that could make it faster). It also allows me to keep my git commits separate from my site deploys (e.g., I don’t need to commit my weighty assets/images directory to GitHub).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Content&lt;/strong&gt; is mostly written in Markdown files, with many entries using &lt;a href=&quot;https://mdxjs.com&quot;&gt;MDX&lt;/a&gt; to add Astro components and other dynamic elements. The primary example of this is the &lt;code&gt;FeaturedBook&lt;/code&gt; Astro component. In any post or review where I want to reference a book from the library (and thus add it to that book’s backlinks), I simply have to import the component and pass it a book reference id (which comes from Airtable).&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/content/posts/new-post.mdx&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// YAML frontmatter&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; FeaturedBook &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;@components/books/FeaturedBook.astro&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;Here is an inline MDX reference to a &lt;/span&gt;&lt;span&gt;book&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;FeaturedBook&lt;/span&gt;&lt;span&gt; id=&lt;/span&gt;&lt;span&gt;&quot;recx7LZurVPABhi99&quot;&lt;/span&gt;&lt;span&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;The &lt;code&gt;FeaturedBook&lt;/code&gt; component then uses Astro’s &lt;code&gt;getEntry&lt;/code&gt; function to look up the id in the &lt;code&gt;books&lt;/code&gt; content collection and render the book data.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/components/FeaturedBook.astro&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { getEntry } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;astro:content&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;interface&lt;/span&gt;&lt;span&gt; Props&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    id&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; string&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    HeadingLevel&lt;/span&gt;&lt;span&gt;?:&lt;/span&gt;&lt;span&gt; &quot;h2&quot;&lt;/span&gt;&lt;span&gt; |&lt;/span&gt;&lt;span&gt; &quot;h3&quot;&lt;/span&gt;&lt;span&gt; |&lt;/span&gt;&lt;span&gt; &quot;p&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; { id, HeadingLevel &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &quot;h3&quot;&lt;/span&gt;&lt;span&gt; } &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; Astro.props;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; book &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; getEntry&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;books&quot;&lt;/span&gt;&lt;span&gt;, id);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;article&lt;/span&gt;&lt;span&gt; class&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&quot;featured-book&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;	&amp;lt;!-- other markup --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;	&amp;lt;&lt;/span&gt;&lt;span&gt;RemoteImage&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        alt&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;(book?.data[&lt;/span&gt;&lt;span&gt;&quot;Full Title&quot;&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; string&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;??&lt;/span&gt;&lt;span&gt; &quot;&quot;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        src&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;book?.data.Cover?.[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].url &lt;/span&gt;&lt;span&gt;??&lt;/span&gt;&lt;span&gt; undefined&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    /&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;	&amp;lt;&lt;/span&gt;&lt;span&gt;HeadingLevel&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;		&amp;lt;&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt; href&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;`/library/books/${&lt;/span&gt;&lt;span&gt;book&lt;/span&gt;&lt;span&gt;?.&lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;}`&lt;/span&gt;&lt;span&gt;}&amp;gt;{&lt;/span&gt;&lt;span&gt;book?.data[&lt;/span&gt;&lt;span&gt;&quot;Full Title&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;}&amp;lt;/&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;	&amp;lt;/&lt;/span&gt;&lt;span&gt;HeadingLevel&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;article&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;An interesting problem arises with the book covers; &lt;a href=&quot;https://support.airtable.com/v1/docs/airtable-attachment-url-behavior&quot;&gt;Airtable attachment URLs&lt;/a&gt; expire after a two-hour window, so using default image links from Airtable, while convenient, would mean every book image would break when that limit is hit (unless I rebuild my site every two hours, which, given my local-first setup, isn’t really an option at the moment).&lt;/p&gt;
&lt;p&gt;To fix this, I created an &lt;a href=&quot;https://github.com/dsaunders88/ds-blog-astro/blob/main/src/components/document/RemoteImage.astro&quot;&gt;Astro component&lt;/a&gt; that uses Eleventy’s magical &lt;a href=&quot;https://www.11ty.dev/docs/plugins/image&quot;&gt;Image plugin&lt;/a&gt; under the hood to fetch and cache local copies of the images, while also providing all of the image metadata to the markup. The component writes images directly to the static site build directory, which is uploaded to Cloudflare along with the rest of the site’s pages and assets.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/components/RemoteImage.astro&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;/* Wrapper around &amp;lt;img&amp;gt; using 11ty Image to generate local&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;*  files and formats from a remote source&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;*/&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// @ts-expect-error - no types for 11ty Image&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; EleventyImage &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;@11ty/eleventy-img&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;interface&lt;/span&gt;&lt;span&gt; Props&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    src&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; string&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    alt&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; string&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    width&lt;/span&gt;&lt;span&gt;?:&lt;/span&gt;&lt;span&gt; number&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    loading&lt;/span&gt;&lt;span&gt;?:&lt;/span&gt;&lt;span&gt; &quot;lazy&quot;&lt;/span&gt;&lt;span&gt; |&lt;/span&gt;&lt;span&gt; &quot;eager&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    aspectRatio&lt;/span&gt;&lt;span&gt;?:&lt;/span&gt;&lt;span&gt; Record&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;number&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;number&lt;/span&gt;&lt;span&gt;&amp;gt;; &lt;/span&gt;&lt;span&gt;// width / height&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; { src, alt, width &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; 900&lt;/span&gt;&lt;span&gt;, loading &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &quot;lazy&quot;&lt;/span&gt;&lt;span&gt;, aspectRatio } &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; Astro.props;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// get image metadata with 11ty Image&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; imageMetadata &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; EleventyImage&lt;/span&gt;&lt;span&gt;(src, {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    widths: [width],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    formats: [&lt;/span&gt;&lt;span&gt;&quot;webp&quot;&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    outputDir: &lt;/span&gt;&lt;span&gt;&quot;./dist/img-opt&quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// save directly to build dir&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    urlPath: &lt;/span&gt;&lt;span&gt;&quot;/img-opt/&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // use the sharp processor to resize to a specific aspect ratio&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    transform&lt;/span&gt;&lt;span&gt;: (sharp&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; any&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        if&lt;/span&gt;&lt;span&gt; (aspectRatio) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            const&lt;/span&gt;&lt;span&gt; ratio &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; aspectRatio[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt; aspectRatio[&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            sharp.&lt;/span&gt;&lt;span&gt;resize&lt;/span&gt;&lt;span&gt;(width, Math.&lt;/span&gt;&lt;span&gt;round&lt;/span&gt;&lt;span&gt;(width &lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt; ratio));&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    },&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // dryRun: true,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;});&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; image &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; imageMetadata.webp[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;img&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    alt&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;alt&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    decoding&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;loading &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &quot;lazy&quot;&lt;/span&gt;&lt;span&gt; ?&lt;/span&gt;&lt;span&gt; &quot;async&quot;&lt;/span&gt;&lt;span&gt; :&lt;/span&gt;&lt;span&gt; &quot;auto&quot;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    height&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;image.height&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    loading&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;loading&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    src&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;image.url&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    width&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;image.width&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;For &lt;strong&gt;styling&lt;/strong&gt;, in my opinion you can’t do better than modern vanilla CSS, enhanced with &lt;a href=&quot;https://lightningcss.dev&quot;&gt;Lightning CSS&lt;/a&gt; features like minification and &lt;a href=&quot;https://lightningcss.dev/transpilation.html&quot;&gt;transpilation&lt;/a&gt;. CSS has become a powerful programming language in the last few years, and new features are constantly being added. I have yet to run into a single design idea or layout that I can’t accomplish with the above setup.&lt;/p&gt;
&lt;p&gt;Many of my core layout compositions are influenced by the highly efficient patterns from &lt;a href=&quot;https://every-layout.dev&quot;&gt;Every Layout&lt;/a&gt; (definitely worth a purchase to support the superb work of &lt;a href=&quot;https://andy-bell.co.uk&quot;&gt;Andy Bell&lt;/a&gt; and &lt;a href=&quot;https://heydonworks.com&quot;&gt;Heydon Pickering&lt;/a&gt;). One of my personal favorite tricks is to extend Andy’s quintessential &lt;a href=&quot;https://piccalil.li/blog/my-favourite-3-lines-of-css&quot;&gt;flow spacing composition&lt;/a&gt; with musical “tempo” modifiers inspired by &lt;a href=&quot;https://classnames.paulrobertlloyd.com/&quot;&gt;Classnames&lt;/a&gt;. The &lt;code&gt;flow&lt;/code&gt; class sets automatic spacing for its child elements, and paired with HTML data attributes and CSS custom properties, you can quickly set various tempo levels based on a preset spacing scale:&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/styles/layout.css&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;.flow&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &amp;amp; &amp;gt; * + * {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        margin-block-start&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; var&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;--flow-space&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;1rem&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &amp;amp;&lt;/span&gt;&lt;span&gt;[data-tempo=&lt;/span&gt;&lt;span&gt;&quot;andante&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        --flow-space&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; var&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;--space-l&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &amp;amp;&lt;/span&gt;&lt;span&gt;[data-tempo=&lt;/span&gt;&lt;span&gt;&quot;moderato&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        --flow-space&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; var&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;--space-m&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &amp;amp;&lt;/span&gt;&lt;span&gt;[data-tempo=&lt;/span&gt;&lt;span&gt;&quot;allegro&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        --flow-space&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; var&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;--space-s&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;Then, if I want a certain element to have flow spacing with a “quick tempo”, it’s easy to add the class with its corresponding data attribute. It’s also just nice to see musical terms sprinkled throughout my codebase.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/components/AlbumTrack.astro&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;article&lt;/span&gt;&lt;span&gt; class&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&quot;flow&quot;&lt;/span&gt;&lt;span&gt; data-tempo&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&quot;allegro&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;h3&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;Brahms: Symphony No. 1 in C Minor, Op. 68: Movement I&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;h3&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;Un poco sostenuto — Allegro&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;article&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;And as for the site’s &lt;strong&gt;JavaScript&lt;/strong&gt;, well, it’s basically nil—the site currently serves less than ~5kb, which is mostly Astro’s &lt;code&gt;prefetch&lt;/code&gt; functionality loading page data in the background when you hover over a link, for a progressively enhanced user experience.&lt;/p&gt;
&lt;p&gt;That’s it for a quick tour of the site—thanks for checking it out and reading this far, and let me know on &lt;a href=&quot;https://bsky.app/profile/daniel-saunders.com&quot;&gt;Bluesky&lt;/a&gt; on &lt;a href=&quot;https://mstdn.social/@dsaunders&quot;&gt;Mastodon&lt;/a&gt; what you think!&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>July 2025 Update</title><link>https://daniel-saunders.com/now#2025-07-10/</link><guid isPermaLink="true">https://daniel-saunders.com/now#2025-07-10/</guid><description>Update for July 2025</description><pubDate>Thu, 10 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A brief update to accompany the redesign of this site in the summer of 2025: I continue to split my work time between my freelance &lt;a href=&quot;https://ds-design-studio.com&quot;&gt;web design studio&lt;/a&gt; and the &lt;a href=&quot;https://pourdavoud.ucla.edu&quot;&gt;Pourdavoud Institute&lt;/a&gt; at UCLA, as their Digital Designer and Web Developer. My main extracurricular activity at the moment is practicing tai chi in the &lt;a href=&quot;https://en.wikipedia.org/wiki/Wu-style_tai_chi&quot;&gt;Wu style&lt;/a&gt;; I attend an &lt;a href=&quot;https://www.yelp.com/biz/eagle-claw-kung-fu-and-tai-chi-chuan-san-gabriel-2?osq=Eagle+Claw+Tai+Chi+Chuan&quot;&gt;excellent studio class&lt;/a&gt; a few times a week to hone the 108-form sequence. I am also learning a weapon form using the Chinese straight sword (&lt;em&gt;jian&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;In June, my partner Caitlyn and I celebrated our 10-year wedding anniversary and promptly got Covid. Even with the latest vaccine, it’s still a beast—I was laid out for about a week. Stay careful out there!&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>My Year in Reading, 2024</title><link>https://daniel-saunders.com/posts/lists/my-year-in-reading-2024/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/lists/my-year-in-reading-2024/</guid><description>A tour through the Social Novel, Victorian(-ish) literature, and Weimar Autumn.</description><pubDate>Mon, 17 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reading-philosopher.BfIwSMTo_HbcqA.webp&quot; /&gt; &lt;figcaption&gt;Maria Catharina Prestel, “Philosopher” (1783), via Public Domain Image Archive.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;Although disasters—both natural and political—have made this annual post of mine very late, here is my year in reading for 2024, better late than never.&lt;/p&gt;
&lt;h2&gt;Favorites&lt;/h2&gt;
&lt;p&gt;My favorites from this year, in no particular order:&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recx7LZurVPABhi99&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recx7LZurVPABhi99.C8jaIGIK_Z1wkvE.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recx7LZurVPABhi99&quot;&gt;Berlin Alexanderplatz&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Alfred Döblin&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Fiction, German Literature &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Berlin; literary modernism; linguistic exuberance; epic stories about the little guy&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Alfred Döblin’s modernist masterpiece hits you like a hammer—indeed the very same hammer that its narrator warns from the first page of the novel will come down upon its main character, Franz Biberkopf, “with monstrous and extreme violence.” Already we appear to know the whole story about this obstinate, child-like, small-time criminal, who has just served time for killing his girlfriend in a fit of rage and who is back on the street, seeking the straight and narrow (albeit not for long). But, like the traditional &lt;em&gt;Bildungsroman&lt;/em&gt;, of which this story is both an indirect example and an ironic travesty, the narrator has a moral purpose in mind. We are meant to learn something from Franz’s woes; &lt;em&gt;what&lt;/em&gt; and &lt;em&gt;how&lt;/em&gt; we are meant to learn is what makes this novel different from its literary predecessors.&lt;/p&gt;
&lt;p&gt;The hammer is the cacophony of Berlin in 1927: the tumult of its trolleys and construction piledrivers and police raids shaking up the city; the specter of PTSD stalking its veterans of the Great War; the martial drumbeat of its nationalists declaring themselves openly in the streets at the beginning of the end of Weimar. Above all, the hammer is the brute fact of destiny, which, like the God of Job, hovers in the background like a mute shadow until the moment he unleashes a wind-blown clamor of suffering:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Water in the thick dark woods, terrible black water, you are so quiet. You lie there quiet and terrible. Your surface is not moved, no, not when the forest is hit by storm and the pines begin to bend and the spiders’ webs between their branches tear and the branches themselves begin to crack. Then you lie down in the hollow, you black waters, and the boughs fall. (187)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Now we have the boom-boom, without drums and fifes. The trees swing left and right. Boom-boom. But they can’t keep time. When the trees are just leaning left, the it’s boom-by-the-left, they bend over, crack, clatter, burst, shear, clump down. Timing. Boom goes the storm, you go left. Hoo-hoo-ah-oo-hoo, back, that’s over, it’s gone, you just need to catch the right moment. Boom, here it is back again, watch out, boom, boom, boom, those are bombs, the fighter plane wants to knock over the wood, it wants to bomb the whole forest. &lt;br /&gt;&lt;br /&gt; The trees draft and sway, there’s a rustle, they break, a clatter, boom, life is at stake, boom-boom, the sun is gone, weights crash, night, boom-boom. (339)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Michael Hofmann’s excellent translation makes this text feel alive, and the experience of reading it is almost like inhabiting the &lt;em&gt;Geist&lt;/em&gt; or electric current that flows between all of the component parts of the great city, human and non-human. We jump back and forth between perspectives and scenes and places, sometimes at random, often not knowing who exactly is doing the talking or sounding. Fragments and premonitions of future and past events slip their way into the flow of consciousness and lend a sense of inexorable pull to Franz’s prophesied fate.&lt;/p&gt;
&lt;p&gt;In its avant-garde techniques, the novel is much like Joyce’s &lt;em&gt;Ulysses&lt;/em&gt;, its modernist counterpart which also plays with language and form. But while &lt;a href=&quot;https://daniel-saunders.com/posts/lists/my-year-in-reading-2022/#ulysses-and-ulysses&quot;&gt;Joyce, it seems to me&lt;/a&gt;, is more attuned to the aural landscape of speech and language as such, Döblin’s text is experienced like a film montage, another modernist innovation: scenes, images, and fragments—whether of news headlines in Berlin, Greek tragedy, or biblical legends—are spliced next to one another to create a visual whole greater than the sum of its parts.&lt;/p&gt;
&lt;p&gt;This book is rich, funny, and deeply moving, and its images are hard to forget. Its inner core reveals a profound empathy for and psychological understanding of Franz’s existential predicament, which stands, I think, as a proxy for the German people. They too have no idea what is about to hit them a few years after the events of the book. Döblin’s gift of sight as a an outsider—an intellectual Jewish agnostic who later &lt;a href=&quot;https://www.ucpress.edu/books/weimar-on-the-pacific/paper&quot;&gt;converted to Catholicism in exile in Los Angeles&lt;/a&gt; while writing dime-a-dozen film scripts—gives this book a depth that is only magnified with the hindsight of the coming historical tragedies.&lt;/p&gt;
&lt;p&gt;Despite all of that, Döblin leaves us with a resolute rejoinder to the twin angels of Death and History, the true lesson learned after a modern-day descent into Hell: “You don’t need to respect something as destiny, you should look at it, turn it over in your hand and destroy it.” A motto for anti-fascist resistance.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/reckGioaKyeEamvbn&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reckGioaKyeEamvbn.UOrkKE67_Z2l8Ljx.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/reckGioaKyeEamvbn&quot;&gt;The Tender Passion: The Bourgeois Experience: Victoria to Freud&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Peter Gay&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; History, Literary Criticism, Psychology &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Overwrought nineteenth-century prose; psychoanalysis as applied to history and literature; spicy details about the emotional and erotic lives of people 150 years ago&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you thought a 500-page book about the erotic lives of Victorians would be boring (or the punchline of a joke), you would be wrong. This is the subject of historian Peter Gay’s book &lt;em&gt;The Tender Passion&lt;/em&gt;, the second entry in his five-volume series, &lt;em&gt;The Bourgeois Experience: Victoria to Freud&lt;/em&gt;. Gay’s works are endlessly fascinating, because he examines the assemblage of thoughts, experiences, and lives that form the constellation of the period under consideration. Although it can be helpful to speak in historical shorthands, there is no one, overarching truth or theme that emerges as a neat summary of Victorian life. Instead, there is only the immense variety of experience and the anxious strivings of the Victorians themselves to make some kind of unified sense of their time.&lt;/p&gt;
&lt;p&gt;The Victorian era is a prime subject for a historian like Gay, who brings a committed Freudian lens to the writing of history. This allows him to plumb the culture’s unconscious, literally reading between the lines of novels, essays, pamphlets, and even personal letters to find the unstated, and thereby truly representative, preoccupations of the psyche. For the Victorians, the central struggle on an individual and collective level was between the conflicting emotional spheres of “tenderness”—the safe haven of bourgeois domesticity—and “passion”—the tumultuous &lt;em&gt;Sturm und Drang&lt;/em&gt; inherited from Romanticism. As Gay notes, “the question that remained was whether middle-class lovers, supremely rule-bound and conventional as they appeared to their critics, could ever attain this exalted ideal, the perfect compound,” between tenderness and passion (46). Although they might not have attained the ideal, Gay rescues their experience as one that had significant leeway, within culturally established forms, to &lt;em&gt;attempt&lt;/em&gt; the ideal, more so than we might think today.&lt;/p&gt;
&lt;p&gt;Just because the Victorian era was a society that did not leave conspicuous records of everything it thought or experienced doesn’t mean that its people weren’t thinking or experiencing them. Literature was one sublimated realm where much could be explored and voiced, from anxieties about the breakdown of old certainties and mores to more taboo subjects like homoerotic desire and other “problematic attachments.” These “fantasies” stand at the boundary between individual and collective life, and bear witness “far less to journalistic precision” than to fiction’s “capacity for analyzing, representing, and in significant ways distorting the erotic experience of contemporary culture” (142).&lt;/p&gt;
&lt;p&gt;And so this book offers up a menagerie of texts and cultural artifacts, which are amusing, touching, and poignant all at the same time, because they reflect the real dilemmas of real individuals: the vehement love letters of the erstwhile phlegmatic economist &lt;a href=&quot;https://www.britannica.com/money/Walter-Bagehot&quot;&gt;Walter Bagehot&lt;/a&gt;; the private diaries of &lt;a href=&quot;https://www.britannica.com/biography/Sidney-and-Beatrice-Webb&quot;&gt;Beatrice Webb&lt;/a&gt;, who after suffering the “devastating erotic injury” of a failed affair with the dashing Joseph Chamberlain, found a tempered happiness and life partner in her husband Sidney Webb, the “ugly little socialist” (her words); the stuffy English tirades against French decadence in journals of literary criticism that read like emissions of the modern-day mano-sphere; the cheeky and didactic &lt;a href=&quot;https://www.theparisreview.org/blog/2014/05/20/the-physiology-of-marriage/&quot;&gt;treatise on seduction and marriage&lt;/a&gt; by Balzac; the novels of George Eliot, Marcel Proust, Henry James, José Maria de Eça de Queirós, and many others that chart a tenuous path between “erotic expressiveness and reserve.” All in all, a superb book that suggests we in our age are closer to the Victorians in our inner lives than we might like to think.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recfxtYWvJxRmhxua&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recfxtYWvJxRmhxua.BWtXoYeJ_Z16VW75.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recfxtYWvJxRmhxua&quot;&gt;Atheism in Christianity: The Religion of the Exodus and the Kingdom&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Ernst Bloch&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; German Literature, Marxism, Philosophy, Religion, Theology &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Theology that doesn’t suck; highly creative interpretive readings of the Bible; the Marxism-religion synthesis&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“The best thing about religion is that it makes for heretics.” (epigraph)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A prime example of Bloch’s own definition of the &lt;a href=&quot;https://plato.stanford.edu/entries/bloch/#GeneIdeaPracPhil&quot;&gt;“warm current” of Marxism&lt;/a&gt;, this book—dense, often opaque, but highly original and stimulating—seeks to rescue the liberatory, utopian impulse veiled behind religious expression, while at the same time vaunting atheism beyond a simple anti-religious sentiment. For Bloch, the two are inextricably intertwined: “only an atheist can be a good Christian; only a Christian can be a good atheist.” Rejecting “just another grey and compromising dialogue” between two opposing orthodoxies, he instead attempts to construct an &lt;a href=&quot;https://daniel-saunders.com/posts/essays/ideology-fetishism-apophaticism-marxist-criticism-and-christianity&quot;&gt;alternative, dialectical understanding&lt;/a&gt; of the Christian gospel as the fullest expression of an atheistic current that runs through the entirety of scripture. Rather than contradict each other, the two strands combine to form the true idea of utopian becoming—a transformed, unalienated world that we embrace as home.&lt;/p&gt;
&lt;p&gt;As a Marxist-Jewish philosopher writing in the mode of a mid-century Protestant theologian, Bloch’s vision—draped in untranslated Latin phrases and allusions to Blake and Gnosticism—stems from a particularly interesting, “rebelliously different” reading of the Bible. The Old and New Testaments do not present a unified narrative of &lt;em&gt;one&lt;/em&gt; God. Instead, they unconsciously record a long-standing conflict between dichotomous forces: on the one hand, a static, theocratic religion of priests and prophets, whose mythic Creator-God imposes an authoritarian order of sin, law, and social control from above; and on the other, a subterranean, revolutionary movement of exodus and liberation from below. The latter is found in the discontented “murmurings of the people,” the slaves of Egypt released from bondage, whose hidden God is not the imperative “I am who I am,” but the more dynamic promise, “I will be what I will be.” This God is not the same for all eternity, but grows and changes in tandem with the growth of revolutionary consciousness.&lt;/p&gt;
&lt;p&gt;Remarkably, traces of this heterodox tradition are evident in the text (most prominently in the book of Job), but require “detective work” to draw out—namely, &lt;a href=&quot;https://daniel-saunders.com/posts/reviews/the-historical-figure-of-jesus/&quot;&gt;source criticism&lt;/a&gt; and a Hegelian master-slave dialectic. Bloch draws attention to the meaning of the word religion itself: &lt;em&gt;re-ligio&lt;/em&gt;, or a “binding back” to a mythical Creator-God, who in Bloch’s schema is the opposite of the future-oriented Exodus-God. And so, Bloch asks, to which direction do we turn? Back, to the beginning and all the limitations of nature and history? Or forward, to the future and the exodus out of all oppressions, including that of the concept of God itself?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The exodus begun by Job from the Caesar-like concept of God, when he placed [humankind] above all forms of tyranny—above the very questionable tyranny of righteousness from on-high and the neo-mythical tyranny of majestic nature—&lt;em&gt;this exodus is not one away from Exodus itself&lt;/em&gt;. Far from it: it is precisely the rebel who has trust in God, without believing in him. (107)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This exodus from God is continued by Jesus (whose full human equality with God thereby abolishes God as “on-high,” as a being existing &lt;em&gt;over&lt;/em&gt; humanity) and must be taken up by contemporary Christianity as a new and different kind of atheistic faith. This tradition is atheistic precisely because it is positioned against the social and political order of theistic religion, upheld by its ruling classes; theism is inseparable from this privileged position as status quo.&lt;/p&gt;
&lt;p&gt;Although Bloch can be a demanding writer, he is bracing to read and still speaks to the current moment (and reading him alongside my good friend Ben was a great pleasure and advantage). He skirts possibly a little too closely to a kind of supersessionism or problematic dualism that reads the Old—i.e., Jewish—Testament as suspect, and finds in Christianity a more progressive realization of its ideals, a standpoint which has fueled anti-Semitism for centuries. But, even if he privileges Christianity in a sense (or at least in the title of this book), Bloch is aware of this danger, and I think he is trying to accomplish something more nuanced. He does not present a linear progression from an old, bad God to a new and better God; rather, he charts a theological-social struggle between varying conceptions of God that is baked into religion from the start. And none of those conceptions of God survive if we take the true substance of what they promise seriously.&lt;/p&gt;
&lt;p&gt;Bloch communicates, through a glass darkly, all of the hopeful longing for a better, more dignified world that religion (both Judaism and Christianity) promises, but can’t deliver on its own—“a world as yet still undiscovered, but already somehow sensed.” And he exhorts Marxism, in turn, to take on the depths of the foreign utopian vision of religion, which it is often lacking in itself. Above all, Bloch leaves it up to us to continue the undoing of religion by religion, of resisting things like Christian nationalism through faithfulness to Christianity’s own subterranean tradition of godless rebellion.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recbNkkWVkHPjKXMl&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recbNkkWVkHPjKXMl.CpYdE6Vi_Z1recIs.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recbNkkWVkHPjKXMl&quot;&gt;The Stone Face&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;William Gardner Smith&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Anti-imperialism, Fiction &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Existentialism in fiction; Black internationalism; Richard Wright and Chester Himes, Fanon and Sartre&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This semi-autobiographical novel by the African-American writer William Gardner Smith follows a young Black man named Simeon who, fleeing the hatreds of American racism in Philadelphia, emigrates to France to seek out the cultured sphere of Black intellectuals in Paris. Among fictional stand-ins for such figures as Richard Wright, James Baldwin, and Chester Himes, Simeon is astonished to discover that in France, in stark opposition to America, he is afforded the full dignity of personhood: white French people treat him as an equal citizen, and he has the full freedom of movement and being that constitutes the freedom of the subject as such.&lt;/p&gt;
&lt;p&gt;This seemingly enlightened and progressive veneer is shattered as Simeon encounters the Algerian population of Paris, who are treated as subhuman. The Algerian War had been raging since 1954, and France’s tactics to crush the independence of its former colony were increasing in their brutality at home and abroad. After witnessing all-too-familiar police brutality against a group of Algerians, and when one of the Algerians later accosts Simeon in the street—“hey white man!”—he is suddenly thrown into the experience of the oppressor. Simeon becomes the perpetrator, rather than the recipient, of the &lt;a href=&quot;https://existentialcomics.com/comic/235&quot;&gt;Sartrean “look”&lt;/a&gt; against the Other, and is complicit in the act of social alienation he knows too well. In a complex social alchemy, he has “become white”—not in a racial sense, but exactly in the sense of his relative, “situational privilege,” as Adam Shatz remarks in the introduction.&lt;/p&gt;
&lt;p&gt;What follows is Simeon’s struggle to come to terms with this “double perspective” of oppressor and oppressed, and to move from an inner self-disposition of &lt;em&gt;exile&lt;/em&gt; to that of &lt;em&gt;comrade&lt;/em&gt;. Essentially, the novel presents Simeon’s narrative in terms of the &lt;a href=&quot;https://en.wikipedia.org/wiki/Situation_(Sartre)&quot;&gt;“situation” of existentialism&lt;/a&gt;—given this contingent set of circumstances, what do you choose to be? Do you remain complacent, as many of Simeon’s artist and intellectual friends choose? Do you escape into celebrity and materialism, as Simeon’s girlfriend, a Jewish survivor of the Holocaust, chooses? Or do you find a way to shatter the binary, to break the “stone face” of hatred that comes from alienation by the Other?&lt;/p&gt;
&lt;p&gt;Simeon comes to understand that there is no true inner, metaphysical reality of “blackness” or “Algerian-ness” or any other label &lt;em&gt;as such&lt;/em&gt;, but that these categories are imposed from the outside, always in contextual and situational ways. But this insight allows him to choose a position of solidarity with the oppressed that threads together anti-racism, anti-imperialism, and anti-fascism à la the &lt;a href=&quot;https://daniel-saunders.com/posts/essays/the-tricontinental-conference-and-latin-american-liberationist-christianity&quot;&gt;Tricontinental Conference&lt;/a&gt;. &lt;em&gt;The Stone Face&lt;/em&gt; is a challenging and highly relevant novel, an education about how to choose humanness in the face of inhumanity.&lt;/p&gt;
&lt;h2&gt;Reading Paths&lt;/h2&gt;
&lt;h3&gt;The Social Novel (Book Club)&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recUiw8DN9iQST7Ka&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recUiw8DN9iQST7Ka.C4rjiAKb_WaNYA.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recUiw8DN9iQST7Ka&quot;&gt;Felix Holt, the Radical&lt;/a&gt;&lt;/p&gt; &lt;p&gt;George Eliot&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recbNkkWVkHPjKXMl&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recbNkkWVkHPjKXMl.CpYdE6Vi_Z1EsvAl.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recbNkkWVkHPjKXMl&quot;&gt;The Stone Face&lt;/a&gt;&lt;/p&gt; &lt;p&gt;William Gardner Smith&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recpCeK6yhwFkOKfe&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recpCeK6yhwFkOKfe.-rXVqQYm_Z1icOdd.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recpCeK6yhwFkOKfe&quot;&gt;Boys Alive&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Pier Paolo Pasolini&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recNAZLQh2fV1E551&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recNAZLQh2fV1E551.Dlu68dW8_ZkVo1S.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recNAZLQh2fV1E551&quot;&gt;Père Goriot&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Honoré de Balzac&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recx7LZurVPABhi99&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recx7LZurVPABhi99.C8jaIGIK_2w9LCf.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recx7LZurVPABhi99&quot;&gt;Berlin Alexanderplatz&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Alfred Döblin&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;This year I was part of an amazing book club that set out to read “the classics” but ended up following, intentionally or not, an interesting path of what I think can be called “the social novel,” including some of the favorites I have already mentioned. From George Eliot’s examination of how public and private life are linked together by authenticity and integrity; to Balzac’s skewering of the vanities and insensitivities of the upper classes (showing why he was one of Marx’s favorite writers); to Pier Paolo Pasolini’s unflinching, neo-realist look at post-war Roman poverty—these novels all, in their own way, analyze and reflect social structures and chart how individual characters respond to them.&lt;/p&gt;
&lt;h3&gt;Victorian-ish&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/reckGioaKyeEamvbn&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reckGioaKyeEamvbn.UOrkKE67_hYJgV.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/reckGioaKyeEamvbn&quot;&gt;The Tender Passion&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Peter Gay&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recUiw8DN9iQST7Ka&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recUiw8DN9iQST7Ka.C4rjiAKb_WaNYA.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recUiw8DN9iQST7Ka&quot;&gt;Felix Holt, the Radical&lt;/a&gt;&lt;/p&gt; &lt;p&gt;George Eliot&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recNAZLQh2fV1E551&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recNAZLQh2fV1E551.Dlu68dW8_ZkVo1S.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recNAZLQh2fV1E551&quot;&gt;Père Goriot&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Honoré de Balzac&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recTjWk65ulfoBZDq&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recTjWk65ulfoBZDq.CVvYsii3_ZuUxFu.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recTjWk65ulfoBZDq&quot;&gt;The Turn of the Screw&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Henry James&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;I spent a lot of time with nineteenth-century writers this year. &lt;em&gt;The Tender Passion&lt;/em&gt; was an excellent companion to the novels I read in book club, and it put a lot of things on my reading list. &lt;em&gt;The Turn of the Screw&lt;/em&gt; stands out as one of the best novellas I have ever read: formally perfect, unsettling, and ripe with interpretive possibilities. Fredric Jameson remarks of the “Jamesian sentence” that, in its endless equivocations and deferrals, it reflects&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;…voyeurism and suspicion, the hermeneutic ferreting out, the curiosity of a self-doubting speculation that must both keep itself alive by remaining in the dark, by preserving the secret of the primal scene, at the same that it enlists our own commitment to the urgency of the search. (&lt;em&gt;Inventions of a Present&lt;/em&gt;, 56)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In &lt;em&gt;The Turn of the Screw&lt;/em&gt; this style is perfectly matched to its subject, the creepiest ghost story you can imagine. I highly recommend the novella and the &lt;a href=&quot;https://www.criterion.com/films/28569-the-innocents&quot;&gt;1961 film adaptation&lt;/a&gt;, &lt;em&gt;The Innocents&lt;/em&gt;, for a Gothic fix.&lt;/p&gt;
&lt;h3&gt;Weimar Autumn&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recqvY5trkMVAxk8C&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recqvY5trkMVAxk8C.BLgI9YJ9_Z21b1c4.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recqvY5trkMVAxk8C&quot;&gt;Weimar Culture&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Peter Gay&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recx7LZurVPABhi99&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recx7LZurVPABhi99.C8jaIGIK_2w9LCf.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recx7LZurVPABhi99&quot;&gt;Berlin Alexanderplatz&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Alfred Döblin&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recMLF7Isc7x0MF9B&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recMLF7Isc7x0MF9B.D-5Mh9Pi_Z2sDiKu.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recMLF7Isc7x0MF9B&quot;&gt;A Short History of the Weimar Republic&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Colin Storer&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;As the &lt;a href=&quot;https://pitchfork.com/thepitch/brat-summer-is-dead-long-live-brat-summer/&quot;&gt;Brat Summer raves&lt;/a&gt; began to wane last fall, I started joking to friends that its natural successor, given the failing state of our country, should be Weimar Autumn. Well, we appear to have blown through our own Weimar Republic to outright fascism, but I still read a number of books from this period as a way of coping, led yet again by the inimitable Peter Gay and his excellent survey, &lt;em&gt;Weimar Culture&lt;/em&gt;. Gay reflects that Weimar was a period in which the “outsider became insider”; those formerly at the margins—including socialists, artists, and Jewish intellectuals and politicians (including Alfred Döblin)—were suddenly thrust into positions of leadership and influence without any true base of power. A historical picture emerges of an imperfect, contradictory, and vulnerable society which long foresaw coming doom but couldn’t do anything about it—sounds about right!&lt;/p&gt;
&lt;h2&gt;2024 Reading Stats&lt;/h2&gt;
&lt;p&gt;Compared to previous year (in parentheses):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Books read from:&lt;/strong&gt; 23 &lt;span&gt;(-15%)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Books finished:&lt;/strong&gt; 14 &lt;span&gt;(-22%)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unique authors:&lt;/strong&gt; 21 &lt;span&gt;(0%)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average reading time (finished books):&lt;/strong&gt; 7 weeks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pages read:&lt;/strong&gt; 5,849 &lt;span&gt;(-19%)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pages per day:&lt;/strong&gt; 16.0 &lt;span&gt;(-19%)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>July 2024 Update</title><link>https://daniel-saunders.com/now#2024-07-16/</link><guid isPermaLink="true">https://daniel-saunders.com/now#2024-07-16/</guid><description>Update for July 2024</description><pubDate>Tue, 16 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;After nearly 8 years of working for myself as a full-time freelancer, I am switching things up in a pretty big way. As of July, I am now an official employee of the University of California, Los Angeles (I guess I’m a Bruin now!). The role is perfectly suited to me—it is part time, so I am still able to freelance; it combines graphic design and web development responsibilities, which are my bread and butter; and it supports the &lt;a href=&quot;https://pourdavoud.ucla.edu&quot;&gt;Pourdavoud Institute&lt;/a&gt; in the department of Ancient Near Eastern Languages and Cultlures, a world which overlaps with &lt;a href=&quot;https://daniel-saunders.com/posts/tags/religion&quot;&gt;some of my interests&lt;/a&gt;. The UCLA campus is absolutely gorgeous, and it feels great to be in an academic setting. I’m looking forward to the opportunity!&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>The Historical Figure of Jesus</title><link>https://daniel-saunders.com/library/reviews/the-historical-figure-of-jesus/</link><guid isPermaLink="true">https://daniel-saunders.com/library/reviews/the-historical-figure-of-jesus/</guid><description>E. P. Sanders&apos; measured review of a still-interesting field.</description><pubDate>Wed, 17 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recnFAVyitd46YxPF&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recnFAVyitd46YxPF.onQouww__Z6z0Hf.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recnFAVyitd46YxPF&quot;&gt;The Historical Figure of Jesus&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;E. P. Sanders&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; History, Religion &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;I first became interested in the “quest for the historical Jesus” in college, when I studied early Christianity and read Albert Schweitzer’s famous book of the same name. Coming from a religious background, I was fascinated then (as I am now) with the distinction between Jesus as he appears in the gospels and Jesus as he really existed in history. The gospels present their text as documentary evidence, even though they were written a generation later based on fragments of oral tradition, and I think most people still think of the basic life and teachings of Jesus as a first-hand report.&lt;/p&gt;
&lt;p&gt;But start to pull at any of the conspicuous threads—for one, the gospel accounts do not all agree on what happened or what was said—and suddenly you are knee-deep in literary criticism, theology, psychology, history, and a host of other disciplines that complicate the picture (often in very fruitful ways). E.P. Sanders, a legend in the field, is an excellent guide through the latter discipline, keeping the frame strictly limited to what the historian can know given the limited source material (basically, the gospels and Josephus, a first-century Jewish historian).&lt;/p&gt;
&lt;p&gt;From this vantage, Sanders maintains, there is quite a lot we do know about Jesus in a general sense, despite the qualifications that have to be attached to most of the details. What makes this case particularly difficult is that, as Sanders remarks, not only were the gospel writers theologians, casting Jesus’ life and words into a larger narrative about salvation history, but Jesus himself was a theologian, most likely interpreting many of the Hebrew scriptures in ways that placed himself within that narrative. In the principal sources, we are never dealing with straight fact, but with layers upon layers of interpretation and meaning, compounded by distance and time from the actual events. In other words, a dream for the Derridean deconstructionist, but more of a headache for the historian.&lt;/p&gt;
&lt;p&gt;The clearest picture that emerges of the historical Jesus is that of a thoroughly Jewish eschatological prophet, of a quite well-known type, who expected God’s immediate and visible transformation of the world—albeit in an ambiguous way. The fact that Jesus was essentially wrong and that his expectations were cut short prematurely makes the gap between his failure and the early community of his followers all the more interesting.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>The Non-Jewish Jew &amp; Other Essays</title><link>https://daniel-saunders.com/library/reviews/the-non-jewish-jew-and-other-essays/</link><guid isPermaLink="true">https://daniel-saunders.com/library/reviews/the-non-jewish-jew-and-other-essays/</guid><description>Isaac Deutscher’s prescient, judicious, and deeply humane essays on left-wing politics and Jewish experience.</description><pubDate>Sun, 28 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recAvQvaXhHKfLi84&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recAvQvaXhHKfLi84.DD_urWCp_6gmX2.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recAvQvaXhHKfLi84&quot;&gt;The Non-Jewish Jew and Other Essays&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Isaac Deutscher&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Essays, Marxism, Politics &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;Prescient, judicious, and deeply humane essays from Deutscher, the “Non-Jewish Jew,” who placed his internationalism, atheism, and Marxism within the tradition of other heretical Jewish figures in history—Spinoza, Marx, Luxemburg, and others. What binds these figures together is not a racial essence, but their shared location at the interstices of thought and culture, which gives them a critical vantage for interpreting and changing history. The deeply rooted themes of justice and human solidarity in their experience led them away from the narrow strictures of nationalism and religious obscurantism and toward the gleaming light of socialism.&lt;/p&gt;
&lt;p&gt;The essays in this book, movingly introduced and edited by Deutscher’s wife Tamara, range from reflections on European anti-Semitism to remembrances of &lt;a href=&quot;https://www.versobooks.com/products/254-revolutionary-yiddishland&quot;&gt;revolutionary Yiddishkeit&lt;/a&gt; to analyses (from the 1950s and 60s) of the nascent and already problematic state of Israel. The totality is a critical and visionary testimony of a discerning thinker that is still hugely relevant at the cross section of left-wing politics and Jewish experience.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>New Site Design for 2024</title><link>https://daniel-saunders.com/posts/notes/new-site-design-for-2024/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/new-site-design-for-2024/</guid><description>A new redesign of this site using Deno Lume, plus some fun server(less) interactions.</description><pubDate>Sat, 20 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;aside&gt; &lt;div&gt; &lt;span&gt;Context&lt;/span&gt; &lt;/div&gt; &lt;div&gt; &lt;p&gt;This post references a previous design/version of this website.&lt;/p&gt; &lt;/div&gt; &lt;/aside&gt;
&lt;p&gt;To ring in the new year, I’m excited to share a new version of this site (something like the 5th version in as many years, but who’s counting) that I’ve been working on for what feels like way too long.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://daniel-saunders.com/_astro/mastodon-site-post.Db__btN5_1H2R2l.webp&quot; /&gt;&lt;/p&gt;
&lt;p&gt;But, here it is, and I’m quite happy with where things are at and where things are headed as I continue to think up fun additions. Let me give you a quick tour of everything, and if you’d like, let me know what you think of it! Those interested can also check out the &lt;a href=&quot;https://github.com/dsaunders88/ds-blog-lume&quot;&gt;source code on GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;The Design&lt;/h2&gt;
&lt;p&gt;The design coalesces a bunch of different themes that I have been exploring over the last few years in both my graphic and web design work, and definitely feels like an authentic expression of “my style” at the moment: a primary focus on considered, timeless, and legible typography, in this case anchored by the inimitable &lt;a href=&quot;https://daniel-saunders.com/posts/notes/new-site-typeface-brix-sans&quot;&gt;Brix Sans&lt;/a&gt; and spiced up with &lt;a href=&quot;https://fonts.google.com/specimen/Fjalla+One&quot;&gt;Fjalla One&lt;/a&gt;; a color scheme rooted in historical graphic design expressions; layouts reminiscent of book side margins, rules, and indexes; an overall sense of sophistication-meets-approachability, something that doesn’t take itself quite so seriously and that, most importantly, doesn’t get in the way of the content.&lt;/p&gt;
&lt;p&gt;Although I have always striven to realize many of these elements in my designs, the thing that made the biggest difference with this iteration of the site is that I spent a lot of time intentionally experimenting with and planning out design ideas before building anything. It’s something that is obviously baked into the process when I’m working with a client, but when it comes to my own work, I tend to overlook this phase, which makes no sense! All design is intention and planning, and busting out Figma to prototype a handful of ideas before going to code is for me always a great way to visually solidify what I am envisioning.&lt;/p&gt;
&lt;p&gt;I also want to shout out some of the inspirations for this site. There are a lot of cool people out there making some very cool personal sites. Go check them out!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://robinrendle.com/&quot;&gt;Robin Rendle&lt;/a&gt; — A prolific writer and “designer’s designer”; I especially love Robin’s idea of the conscientious designer/developer as being an independent &lt;em&gt;publisher&lt;/em&gt; for the web.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://davesmyth.com/&quot;&gt;Dave Smyth&lt;/a&gt; — I love Dave’s minimalism and focus on typography, and how both of these serve to foreground the meaning of the message being conveyed.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ryanmulligan.dev/&quot;&gt;Ryan Mulligan&lt;/a&gt; — Ryan’s CSS mastery is a source of boundless fascination and desire to do other cool things with what might be the coolest language for the web at the moment.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Site&lt;/h2&gt;
&lt;p&gt;I used &lt;a href=&quot;https://lume.land/&quot;&gt;Lume&lt;/a&gt; to build this site, a static site generator (SSG) for Deno. Although it’s a relatively small project at the moment (one which I’m happily contributing to), I loved working with it because of the native Deno environment and all of the features Lume comes with. Lume’s creator &lt;a href=&quot;https://oscarotero.com/&quot;&gt;Óscar Otero&lt;/a&gt; has done a fantastic job building on other SSGs and designing an ergonomic, robust piece of software that feels very intuitive to use.&lt;/p&gt;
&lt;p&gt;The last version of my site was built with &lt;a href=&quot;https://www.11ty.dev/&quot;&gt;11ty&lt;/a&gt;, which is also a fantastic SSG, and there were definitely some tradeoffs involved in making the switch (one thing I’m ambivalent about at the moment is having to use Deno Deploy to host the site). But I enjoyed working with Lume for a handful of reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No npm or &lt;code&gt;node-modules&lt;/code&gt; folders, just clean, built-in solutions and plugins.&lt;/li&gt;
&lt;li&gt;Speaking of plugins, there are some &lt;a href=&quot;https://lume.land/plugins/?status=all&quot;&gt;great options&lt;/a&gt; for Lume that are really painless to use. From building RSS feeds and navigation trees to minifying HTML and transforming images, Lume has everything I needed right at hand without reaching for another package or library.&lt;/li&gt;
&lt;li&gt;Óscar has also created a templating language called &lt;a href=&quot;https://vento.js.org/&quot;&gt;Vento&lt;/a&gt; that is a lot like Nunjucks or Liquid, but in my opinion is far easier to comprehend and use (well done, Óscar!). I love that in Vento you can do everything you’d ever want to with a templating language but also dip into JavaScript at any time by doing something like this: &lt;code&gt;&amp;gt; console.log(&quot;Lume is great!&quot;)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Lume’s built-in &lt;code&gt;search&lt;/code&gt; function is also kind of a game-changer in the static site world. This function basically lets you query data of any format in your project to create filterable, sortable collections on the fly. Paired with Vento, you can do some pretty powerful things with it, as for instance in the below example where I’m using a JavaScript function to group an array of objects by a shared property value, then piping a search query for all my posts through it with the &lt;code&gt;|&amp;gt;&lt;/code&gt; operator. The result is a grouped and sorted list of posts archived by year.&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/_includes/layouts/archive.vto&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;{{ set archivedPosts &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; search.pages(&lt;/span&gt;&lt;span&gt;&quot;type=posts&quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&quot;date=desc&quot;&lt;/span&gt;&lt;span&gt;) |&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt; groupby(&lt;/span&gt;&lt;span&gt;&quot;archiveYear&quot;&lt;/span&gt;&lt;span&gt;) }}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  &amp;lt;div class=&quot;archive&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    {{ for year of archivedPosts }}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &amp;lt;details&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &amp;lt;summary&amp;gt;{{ year.type }} Posts&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &amp;lt;div&amp;gt;...&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &amp;lt;/details&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    {{ &lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;for }}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  &amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;h2&gt;Overall Improvements&lt;/h2&gt;
&lt;p&gt;A new design was also a chance to make a bunch of improvements to the site’s organization, content, and overall code. Some of this was just a result of experience and wanting to do things in more efficient and sensible ways, and some was wanting to pare down and clean up some detritus that had accumulated over time.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Posts.&lt;/strong&gt; I went through every Markdown file for every post and page, cleaning up a bunch of extraneous material and standardizing frontmatter (why did I once decide to use &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tags for links instead of using Markdown’s link syntax??). It was a huge pain, but it feels good to have everything unified.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Categories.&lt;/strong&gt; I also simplified post categories and added a year by year archive.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Styling.&lt;/strong&gt; The last version of my site was designed a few years ago and thus was part of the Tailwind CSS craze. Back then I wanted to try it to see what all the hype was about, and it was mostly fine. But at some point in the last year that whole world became really tiresome to me, and I started to see how much of an annoyance it is to maintain Tailwind code. Not to mention that &lt;em&gt;you don’t get to write CSS&lt;/em&gt;, which is having a genuine renaissance right now. So early on in this redesign/rebuild, I decided to ditch Tailwind, and boy was that a huge dam released on my creative process. Paired with &lt;a href=&quot;https://lightningcss.dev/&quot;&gt;LightningCSS&lt;/a&gt; as an optimizer, this site’s CSS feels really powerful.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Projects.&lt;/strong&gt; Like anyone in my position, I had been maintaining a few different sites for my portfolio, writing, etc. That wasn’t ideal, and for this site I knew I wanted to combine those aspects and incorporate some of my freelance work here. The &lt;a href=&quot;https://daniel-saunders.com/projects&quot;&gt;projects page&lt;/a&gt; has a list of selected recent projects that I’m particularly proud of.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Highlights and Fun Stuff&lt;/h2&gt;
&lt;p&gt;My website has always been a place for me to try out new things and play around with whatever is interesting at the moment, and this iteration of the site is chock-full of my random little experimentations:&lt;/p&gt;
&lt;h3&gt;CSS&lt;/h3&gt;
&lt;p&gt;As mentioned above, the CSS for the site is living on the cutting-edge, and it’s been super fun to write. We’ve got &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_nesting&quot;&gt;nesting&lt;/a&gt;, the &lt;code&gt;:has()&lt;/code&gt; selector, &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_container_queries&quot;&gt;container queries&lt;/a&gt;, and custom properties out the wazoo; using LightningCSS also lets me use colors in the &lt;a href=&quot;https://accessiblepalette.com/&quot;&gt;lch space&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One of the major styling features is not only a light/dark/system theme toggler, but an accent color toggler that enables you to cycle through a total of 10 different color schemes. The theme toggles use the native &lt;code&gt;details&lt;/code&gt; HTML element, which means no JavaScript needed. I love how this turned out! There are lots of other fun little CSS moments and animations throughout the site as well.&lt;/p&gt;
&lt;h3&gt;Books&lt;/h3&gt;
&lt;p&gt;I have incorporated elements of my &lt;a href=&quot;https://daniel-saunders.com/posts/tutorials/airtable-reading-tracker-frontend&quot;&gt;Airtable reading tracker&lt;/a&gt; into the site—on the home page, I’m fetching some of my latest reading activity records to show a glance at my bookshelf. These entries pull data from Airtable, and, as a bonus, link to the associated books in the &lt;a href=&quot;https://long-wasp-15.deno.dev/&quot;&gt;counterpart website&lt;/a&gt;, which I’m continuing to build out.&lt;/p&gt;
&lt;p&gt;A fun part of this was writing a function to download the images from Airtable after the fetch response and write them to the project directory, since Airtable’s media links expire after a few hours. This way, I could save them locally, run them through the Lume image transforms, and finally display them in templates.&lt;/p&gt;
&lt;h3&gt;HTMX&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://htmx.org/&quot;&gt;HTMX&lt;/a&gt; is getting a lot of buzz at the moment, and it has been interesting to learn more about the philosophical underpinning of a client-server interaction model that is in many ways fundamentally at odds with the React-driven world we’ve lived in for last decade.&lt;/p&gt;
&lt;p&gt;You can see my small implementation of this in the “current interests” block on &lt;a href=&quot;https://daniel-saunders.com/&quot;&gt;the home page&lt;/a&gt;. This block has a button that sends a &lt;code&gt;GET&lt;/code&gt; request to a Deno server running in the background; rather than returning &lt;code&gt;JSON&lt;/code&gt; data, the server responds with HTML that live replaces the targeted HTML on the page, complete with a nifty animation and no page reload. This is HTMX in a nutshell, and it’s really kind of mind-blowing when you see how easy it is.&lt;/p&gt;
&lt;p&gt;After compiling the data for the different categories (thoughts and tools come from manually edited &lt;code&gt;.yaml&lt;/code&gt; files, and music comes from making a fetch request to my scrobbles from the Last.fm API), I run a simple randomizing function to get a new item on each click of the “Refresh” button. Then each of the items is inserted in an HTML template that gets sent down to the page via HTMX.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;server.js&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { Application, Router } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;https://deno.land/x/oak@v10.2.0/mod.ts&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { list &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; thoughtsList } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;../src/_data/thoughts.js&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { albums } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;../src/_data/music.js&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { list &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; toolsList } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;../src/_data/tools.js&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; getRandomItem &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;../src/utils/getRandom.js&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Use Deno Oak to start a new application server&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; app &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; new&lt;/span&gt;&lt;span&gt; Application&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; htmxResponse&lt;/span&gt;&lt;span&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; randomThought &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getRandomItem&lt;/span&gt;&lt;span&gt;(thoughtsList);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; randomAlbum &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getRandomItem&lt;/span&gt;&lt;span&gt;(albums);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; randomTool &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getRandomItem&lt;/span&gt;&lt;span&gt;(toolsList);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Some HTML elements below edited out for brevity&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    return&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        `&amp;lt;p id=&quot;thoughts&quot; class=&quot;animate-reponse&quot;&amp;gt;${&lt;/span&gt;&lt;span&gt;randomThought&lt;/span&gt;&lt;span&gt;}&amp;lt;/p&amp;gt;`&lt;/span&gt;&lt;span&gt; +&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        `&amp;lt;p id=&quot;albums&quot; hx-swap-oob=&quot;true&quot; class=&quot;animate-response&quot;&amp;gt;${&lt;/span&gt;&lt;span&gt;randomAblum&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;}&amp;lt;/p&amp;gt;`&lt;/span&gt;&lt;span&gt; +&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        `&amp;lt;p id=&quot;tools&quot; hx-swap-oob=&quot;true&quot; class=&quot;animate-response&quot;&amp;gt;${&lt;/span&gt;&lt;span&gt;randomTool&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;}&amp;lt;/p&amp;gt;`&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    );&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Initialize an app router with Deno Oak&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; router &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; new&lt;/span&gt;&lt;span&gt; Router&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// This is the endpoint that HTMX hits when a user clicks the &quot;Refresh&quot; button&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;router.&lt;/span&gt;&lt;span&gt;get&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;/api/interests&quot;&lt;/span&gt;&lt;span&gt;, (ctx) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    ctx.response.body &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; htmxResponse&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;});&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;The great part about this is that the Vento templates can use the same data sources to build for the initial state of the static site. A button then uses &lt;code&gt;hx-get&lt;/code&gt; to send a request to the endpoint defined above. Using &lt;code&gt;hx-swap=&quot;outerHTML&quot;&lt;/code&gt; in conjunction with the response items having an attribute of &lt;code&gt;hx-swap-oob=&quot;true&quot;&lt;/code&gt; means the targeting/replacement can happen “out-of-band”, i.e., at different parts of the DOM tree.&lt;/p&gt;
&lt;p&gt;I’m excited to play around with this further to see how else I can extend the interactivity of this site.&lt;/p&gt;
&lt;p&gt;Hav a look around the rest of the site!&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>My Year in Reading, 2023</title><link>https://daniel-saunders.com/posts/lists/my-year-in-reading-2023/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/lists/my-year-in-reading-2023/</guid><description>From the nested puzzles of a Parisian flat to the utopian vistas of a terraformed Mars.</description><pubDate>Fri, 05 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reading-saint.DZYuQDRB_167QrX.webp&quot; /&gt; &lt;figcaption&gt;Bartolomeo Vivarini, painting of a saint reading ca. 1470, via Wikimedia Commons.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;This year I devoted almost as much time to building a &lt;a href=&quot;https://daniel-saunders.com/posts/notes/building-myself-a-reading-tracker-app-with-airtable-and-deno-fresh-part-1&quot;&gt;custom reading tracker app&lt;/a&gt; as I did to reading, but I’m still pleased with the quantity and quality of what I read.&lt;/p&gt;
&lt;h2&gt;Favorites&lt;/h2&gt;
&lt;p&gt;These were some of my favorite books of the year (because I simply can’t write about all of them, I’m limiting myself to a few):&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recJSxTLJxRnVeXpr&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recJSxTLJxRnVeXpr.BYwLkrAY_Z67PYJ.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recJSxTLJxRnVeXpr&quot;&gt;Postmodernism, or, the Cultural Logic of Late Capitalism&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Fredric Jameson&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Marxism, Philosophy, Theory &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Postmodern critiques of postmodernism theory; literary criticism and media studies; the avant-garde; sentences that must be read a minimum of 3 times to fully comprehend&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;All I could say about this masterpiece I tried to say in &lt;a href=&quot;https://daniel-saunders.com/posts/essays/the-three-stages-of-capitalist-space&quot;&gt;my review essay here&lt;/a&gt;. Moving on!&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recGXoonOB53egYa4&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recGXoonOB53egYa4.C2doCe_S_Z1L1ywe.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recGXoonOB53egYa4&quot;&gt;Blue Mars&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Kim Stanley Robinson&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Fiction, Sci-Fi &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Science fiction that has tons of actual science; planets; terraforming and ecology; sprawling narratives that span hundreds of years; revolution and evolution&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I had been dancing around Kim Stanley Robinson for a while before this year, both because of Fredric Jameson (who discusses his former advisee’s work in a number of places) and because of recommendations from my friend Christopher and others. So this was the year I decided to take on the 2,000+ pages of Robinson’s Mars Trilogy, his &lt;em&gt;magnum opus&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The trilogy follows the stories of the First Hundred, a group of scientists who set out from earth in 2026, not so much to “colonize” Mars but to establish an entirely new world on a barren rock. That world-making is described in incredible scientific and civilizational detail—from the guided formation of a viable biosphere through the complex interplay of ecology and technology, to the decades-long process of political and cultural revolution, which brings about deep changes in values and material possibility on Mars and beyond.&lt;/p&gt;
&lt;p&gt;Woven throughout these two poles is the broader theme of “the green and white” in tension: how the forces of life, energy, and dynamism (&lt;em&gt;viriditas&lt;/em&gt;), exist in a dialectical relationship with the progressive, illuminating, and sometimes cold light of science. What some of the more mystical characters in the novels anoint as the “the areophany” (from the fiery namesake of the planet) is an attempt to fuse these worlds into a multifaceted, meta-philosophical understanding of both the mystery and rationality of an entirely new world-in-the-making. The areophany is ultimately about the transformation of the red planet to a green and blue world teeming with life and water, while still maintaining some of the primordial aspects the ancient rock bears witness to.&lt;/p&gt;
&lt;p&gt;This maximalism and philosophical depth is what makes Robinson such a joy to read; as Jameson remarks, the novels’ utopian vision is not so much “the representation of radical alternatives,” but “rather simply the imperative to imagine them.” Of all that could be said about these ambitious, sometimes flawed, but probing novels, the myriad experiments, possibilities, and mental shifts that stem from Robinson’s “imperative to imagine” is what stands out to me as their greatest feature.&lt;/p&gt;
&lt;p&gt;The trilogy’s utopian form is not a reductive portrait of a simplistic or blindly “optimistic” future. Rather, its vision is more in line with how Marx characterized a post-capitalist future—a future that has &lt;em&gt;real history&lt;/em&gt; precisely because it operates from the realm of post-capitalist and post-feudal class relations, when the associations of people, biospheres, and planets are finally—although still ambiguously—linked together in freedom in place of necessity.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recjeWIBTFNcffbWx&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recjeWIBTFNcffbWx.B-1f4tZo_1NvxoH.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recjeWIBTFNcffbWx&quot;&gt;Life A User&apos;s Manual&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Georges Perec&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; European Literature, Fiction &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Nested stories, novels within novels; puzzles; lists and catalogues; pictorial writing&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The manner in which I received this fabulous novel could be a vignette straight from its pages: in the early days of the pandemic, I purchased a &lt;a href=&quot;https://www.lastbookstorela.com/shop-books/Book-Bundles-p213551816&quot;&gt;curated book bundle&lt;/a&gt; from the Last Bookstore, one of L.A.’s greatest bookstores. After submitting an online form listing my genre and author preferences, I was sent a package of a half-dozen books selected for me by the staff. It was a wonderful idea in a pretty bleak time. The package took so long to arrive (no shade, things were like that then) that I forgot about it, and the surprise, consideration, and randomness of the books I received have earned them a special place on my shelf.&lt;/p&gt;
&lt;p&gt;At the bottom of the pile was &lt;em&gt;Life; A User’s Manual&lt;/em&gt;, and while it seemed up my alley, it took me a few years to get around to it. I’m glad I did, because even though it’s not well known, it is a work of virtuosic &lt;em&gt;cataloguing&lt;/em&gt; of daily life on par with Joyce and Proust.&lt;/p&gt;
&lt;p&gt;Perec was an eccentric French writer who was part of Oulipo, a group of avant-garde writers that included Italo Calvino. This playful, empathetic, and at times melancholy novel is like a series of nesting dolls, or, to use the novel’s own metaphor, a set of puzzles within puzzles within puzzles. (The novel is rife with lists, grids, mathematics, and palindromic structures, and I’m sure there are dozens of “structural puns” that I wasn’t even aware of while reading.)&lt;/p&gt;
&lt;p&gt;The “action” takes place on a single day, in a single location—11 rue Simon-Crubellier, a faded Parisian apartment block whose every room we are allowed to see into, like the many minds of one aging super-character. The residents of the building and their interconnected histories come to life through painstaking, exhaustive description of visual detail; each chapter opens on a close-up image of one part of one room, slowly revealing more and more pieces of the puzzle the larger the vantage becomes as the novel goes on.&lt;/p&gt;
&lt;p&gt;The side effect of Perec’s intensely documentary and pictorial style (many of the main characters in the novel are painters) is that even though we see all of the external expressions of the lives of many characters, their inner motivations and a sense of deeper connected meaning between them all appear as vastly inscrutable as real life.&lt;/p&gt;
&lt;p&gt;Nowhere is this more evident than in the novel’s cryptic main story, a tragi-comic tale of an eccentric and wealthy aristocrat named Bartlebooth who spends 20 years of his life traveling to 500 different seaports, to paint one watercolor at each location. Bartlebooth sends these watercolors back to 11 rue Simon-Crubellier, where the jigsaw puzzle-maker Gaspard Winckler is tasked with crafting wooden puzzles out of the paitings; upon Bartlebooth’s return from his travels, he will then spend the remainder of his life completing the puzzles, gluing the pieces together, and sending them back to the ports where they were painted. 20 years from the day they were painted, each watercolor is to be dissolved, the canvas’s cuts restitched, and the blank paper returned to Bartlebooth, who will have thus left no material trace behind in this utterly superfluous display of effort.&lt;/p&gt;
&lt;p&gt;Whether out of resentment or mischief, the puzzle-maker Winckler starts to mess with Bartlebooth, making the puzzles too clever and enigmatic for Bartlebooth to keep up with. The only “plot” in the present time of the novel is that Bartlebooth fails to complete his puzzle quest and dies, a wrong puzzle piece in his hand at the very end. Given the novel’s postmodernist outlook, I doubt if there is some deeper message here, but the totality of scenes leaves a poignant sense of the playful futility of all our effort, especially artistic, and that we might as well find or make puzzles out of the stuff of life while we can.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recHdoG8inuk0wv4V&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recHdoG8inuk0wv4V.BMDUiZA0_Za8QHY.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recHdoG8inuk0wv4V&quot;&gt;Shakespeare Was a Woman and Other Heresies&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Elizabeth Winkler&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Biography, History, Literary Criticism &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;The sonnets and the plays; committed Stratfordians; committed anti-Stratfordians; going down the rabbit hole&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you had asked me about the puzzle surrounding the “Shakespeare authorship question” before December, I would have given the bemused reaction that apparently most people do. But that is why a new, exhaustive book on the topic by journalist Elizabeth Winkler (how about that name coincidence!) is so enjoyable. She expertly, entertainingly, and, it turns out, convincingly, leads the questioning reader through the centuries of debate on whether the “man from Stratford” (the man we know as William Shakespeare) actually wrote the plays &lt;em&gt;attributed&lt;/em&gt; to him. (The book builds on a &lt;a href=&quot;https://www.theatlantic.com/magazine/archive/2019/06/who-is-shakespeare-emilia-bassano/588076/&quot;&gt;brilliant essay&lt;/a&gt; she wrote in &lt;em&gt;The Atlantic&lt;/em&gt;, for which she was unfairly personally attacked by certain experts).&lt;/p&gt;
&lt;p&gt;If it already sounds like a conspiracy theory, this is the time to mention that not only some of the subtlest minds of literary history (Walt Whitman, Mark Twain, Sigmund Freud, Henry James) but also some of the &lt;a href=&quot;https://youtu.be/7ZNYifQfYiE?si=vZc5JJqc4asA0lGl&quot;&gt;best contemporary Shakespearan actors&lt;/a&gt; have shared these doubts. I think I have come to my own theory, but I’ll not take the fun away from anyone else.&lt;/p&gt;
&lt;p&gt;Winkler, however, is less concerned with putting forward a particular candidate than she is interested in deconstructing how the “orthodox” institution of Stratfordianism has sealed off any room for heretical doubt regarding the authorship question, despite a multitude of nagging biographical, historical, and textual problems that don’t seem to go away (and despite newer research that &lt;em&gt;does&lt;/em&gt; challenge the idea of a “sole author”; even if Stratford Shakespeare is the primary author, it is likely that others had a hand in the crafting or editing of the plays, much like how modern TV writers’ rooms work—this is theater, after all).&lt;/p&gt;
&lt;p&gt;The religious metaphor of “orthodoxy” and “heresy” is at first mostly just amusing, but as Winkler ventures deeper into the hallowed halls of “bardolatry,” it becomes clear that the comparison is not only apt, but revealing. The scholar-priests of the Shakespearean &lt;em&gt;magisterium&lt;/em&gt; have built and maintained a myth over time (witness the Disney-esque “birthplace” of Shakespeare, a retroactively manicured prop that is most likely not even in the right location)—a myth that in turn has vaunted the importance of the literary scholar and has been used in the export of some good old fashioned British imperialism (the sun never sets on Shakespeare).&lt;/p&gt;
&lt;p&gt;Most tellingly, the contemporary keepers of the orthodox flame, whom Winkler tries to interview numerous times in the book, come off very poorly—they condescend, they avoid questions, they appear boorish, defensive, and ignorant. By contrast, the anti-Stratfordians she talks to are questers in search of truth, deeply passionate searchers who feel their legitimate questions have been steamrolled by institutional power.&lt;/p&gt;
&lt;p&gt;At the heart of the authorship question revolves a bigger philosophical problem: how much does an author’s biography really matter for the interpretation of a text? Isn’t it all trivial, incidental to the main task? But as Fredric Jameson reminds us, we are all inescapably postmodernist, and the days of approaching a text as completely divorced from any context or experience are long behind us. If the great conceit of the Western canon—that the endless parade of “universal,” “timeless” texts that speak of one shared human (white, male) experience—have been exposed as a lie, why shouldn’t an author’s learning, experience, and life shape what he, she, or they wrote?&lt;/p&gt;
&lt;p&gt;At the very least, exploring these questions opens up new avenues for the present experience and performance of the texts. After all, Winkler points out, even the scholars make up imagined details when there is a lack of evidence; how else do we square the mute historical record with these works of genius?&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recr1YkRQp75h6pGs&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recr1YkRQp75h6pGs.DKqi4RII_Z1yghNS.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recr1YkRQp75h6pGs&quot;&gt;The Truth and Other Stories&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Stanisław Lem&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Fiction, Sci-Fi &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Mind-bending philosophical sci-fi; mad scientists; rogue artificial intelligence; short stories that hit like a shot of vodka&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I would have written here about Lem’s excellent novel &lt;em&gt;Solaris&lt;/em&gt;, which I read early in the year, had I not then gone on to read this collection of simply perfect short stories. These stories are the minimalist counterparts to Perec’s and Robinson’s maximalism; like the Big Bang, each one starts from nothing, with perhaps only a few scraps of conversation between two unknown characters in an unknown place to give the reader any sense of what is going on. Pages later, details start to emerge that change the entire tenor of the narrative, every sentence a revelation that necessitates a re-reading up until that point. (I must have read each of these stories three times because of this.)&lt;/p&gt;
&lt;p&gt;The best of the stories (“The Friend,” “The Journal,” “One Hundred and Thirty-Seven Seconds”) deal with epistemological themes familiar to a reader of &lt;em&gt;Solaris&lt;/em&gt; and Lem’s other work—what &lt;em&gt;really&lt;/em&gt; is intelligence, and how can we be sure that the human mind can really comprehend something completely external, artificial, or &lt;em&gt;alien&lt;/em&gt; to it, which the mind may have no phenomenological basis for grasping as it “really is”? With darkly humorous irony, Lem leads his characters to believe that human rationalism and naively optimistic science will be able to offer satisfactory answers to the baffling paradoxes of the universe, but they are just humans, after all—fallible, ignorant, and yet stubbornly curious.&lt;/p&gt;
&lt;p&gt;In an age of Elon Musk and trashy AI spam, Lem is vindicated as a prophet who skewers the charlatans and slick technological veneers of our time, offering instead a critical and ironic standpoint that out-rationalizes rationalism itself. But this irony evinces less bitterness than a tempered humanism, one that has to shake its head and chuckle at the wonder and enigma of the cosmos and our repeatedly failed efforts to understand it.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recmV06sHmTUdfbGL&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recmV06sHmTUdfbGL.CwRvpeSU_Z1UYf8f.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recmV06sHmTUdfbGL&quot;&gt;Revolution: An Intellectual History&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Enzo Traverso&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; European Literature, History, Marxism, Socialism &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; &lt;em&gt;Intellectual history; socialist and communist movements; art history; nuanced historiography; “theoretical polyamory” (Wendy Brown)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I was turned on to this magisterial book by my friend and comrade Ben, who read it with the guys at the &lt;a href=&quot;https://patreon.com/theregrettablecentury&quot;&gt;Regrettable Century podcast&lt;/a&gt;. Traverso authoritatively examines the multifaceted intellectual, cultural, and symbolic legacies of historical acts of revolutionary rupture; although he prioritizes the grand-daddies of them all, the French (1789) and Russian (1917) Revolutions, his work extrapolates from these origins into the twentieth century and around the world. (And it case it wasn’t clear, we’re talking pretty exclusively here about socialism and the utopian dreams and failures of militant, state-directed communism.)&lt;/p&gt;
&lt;p&gt;As the book’s subtitle heralds, this is quite a different sort of beast than a straight-up history of revolution(s), such as the &lt;a href=&quot;https://daniel-saunders.com/posts/notes/the-age-of-extremes&quot;&gt;four-volume history of the modern age&lt;/a&gt; written by Traverso’s interlocutor, Eric Hobsbawm. Instead, Traverso looks at philosophies of history, conceptions of the body, symbolic metaphors and associations, and artistic expressions generated by moments of sudden discontinuity in the flow of progressive time. For these are ultimately what revolutions are: completely new ways of seeing, being, and shaping the world, violent breaks that in a moment foreclose possibilities while opening others.&lt;/p&gt;
&lt;p&gt;Traverso is lucid on typologies of the revolutionary intellectual—those intense and committed souls caught between the poles of cosmopolitanism and rootedness, bohemianism and partisanship, freedom and liberation, an ethics of conviction and an ethics of responsibility. He is also excellent in pulling from a wide range of subjects to illuminate his themes (his detailed expositions of painting and visual art in the revolutionary tradition are unique in this kind of work) and in historicizing the ambiguous legacy of a twentieth-century communism shaped by decades of world war.&lt;/p&gt;
&lt;p&gt;One particularly profound theme concerns the “realms of memory” which revolutionary moments create and continue to cultivate as their initial fervor wears off. These realms are probed and passed down in art, intellectual debate, and ways of living. Traverso eloquently stakes out an essential responsibility for the historian in reviving these memories for the present. Not only can these stories shed new light on &lt;em&gt;why&lt;/em&gt; revolutionaries fought for what they did, they also signify “a possible and concrete utopia,” “an end inscribed within historical time” that we here and now can take up and keep alive.&lt;/p&gt;
&lt;h2&gt;Reading Paths&lt;/h2&gt;
&lt;p&gt;These are some of the main themes, currents, and genres I read this year, which also gives me a chance to highlight other great books:&lt;/p&gt;
&lt;h3&gt;Utopian Horizons in Sci-Fi&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recFd1Tla7u58LMpy&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recFd1Tla7u58LMpy.D2kpLXIU_1gB6A0.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recFd1Tla7u58LMpy&quot;&gt;The Left Hand of Darkness&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Ursula K. Le Guin&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recJBpp0sV8tfutRe&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recJBpp0sV8tfutRe.c07k5Xvq_1gQRcJ.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recJBpp0sV8tfutRe&quot;&gt;The Word for World Is Forest&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Ursula K. Le Guin&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recIVxkZRnIEdoc72&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recIVxkZRnIEdoc72.CWf_X7Ts_2riwlq.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recIVxkZRnIEdoc72&quot;&gt;Red Mars&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Kim Stanley Robinson&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recSV3gcH88lJ5sY6&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recSV3gcH88lJ5sY6.ClpHR4i7_Z1dEpir.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recSV3gcH88lJ5sY6&quot;&gt;Green Mars&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Kim Stanley Robinson&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;Echoing Fredric Jameson’s conception of the utopian, these speculative books carve out imaginative spaces of possibility, which perform a double function: critique of our present, and the impetus to imagine how things could be otherwise.&lt;/p&gt;
&lt;h3&gt;Earthbound Politics&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recJ2XZwCGcs5lZom&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recJ2XZwCGcs5lZom.uLWyW702_oa7Qz.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recJ2XZwCGcs5lZom&quot;&gt;Down to Earth&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Bruno Latour&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recPAfpNCqmbgeOlh&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recPAfpNCqmbgeOlh.CaRR3zpj_Z2ufRmF.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recPAfpNCqmbgeOlh&quot;&gt;Staying with the Trouble&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Donna  J. Haraway&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recyLzc11DLVUrdR2&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recyLzc11DLVUrdR2.BEuQDhds_Z1vxmUV.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recyLzc11DLVUrdR2&quot;&gt;The Red Deal&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The Red Nation&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;Coming “down to earth” is an evocative image shared by the post-Catholic, environmentally minded writers Haraway and Latour (although &lt;a href=&quot;https://www.vatican.va/content/francesco/en/apost_exhortations/documents/20231004-laudate-deum.html#_ftnref41&quot;&gt;only one of them&lt;/a&gt; was quoted in one of the pope’s latest apostolic exhortations; sorry Bruno!). For both it means a paradigm shift in response to climate change, but it really touches on all aspects of interconnected life—the imperative to abandon the destructive path of capitalism and imperialism, and to adopt a capacious, earth-minded approach to science, knowledge, and culture. One practical political expression of this might be the Red Deal, an indigenous-led critique and expansion of the Green New Deal that prioritizes land-back and tribal self-determination in the action to save our common home.&lt;/p&gt;
&lt;h3&gt;Radicalisms&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recvvixBoLNkIMNc3&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recvvixBoLNkIMNc3.DkhAN-xR_Z12QAAm.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recvvixBoLNkIMNc3&quot;&gt;The Marquise of O—&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Heinrich von Kleist&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recfxtYWvJxRmhxua&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recfxtYWvJxRmhxua.BWtXoYeJ_1wbyto.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recfxtYWvJxRmhxua&quot;&gt;Atheism in Christianity&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Ernst Bloch&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recNQowd6B9k1jRjU&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recNQowd6B9k1jRjU.pPvLlwFK_Z1ChPuT.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recNQowd6B9k1jRjU&quot;&gt;Report to Greco&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Nikos Kazantzakis&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recIG2XGygzjXv9Hk&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recIG2XGygzjXv9Hk.CnEq3jgE_2uEqKS.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recIG2XGygzjXv9Hk&quot;&gt;Capitalist Realism&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Mark Fisher&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;These books embody the essence of radicalism—whether literary, spiritual, political, or all of the above—as grasping at the root of the matter at hand. Part of me identifies in some way with the spirit of these writers, who challenged convention and forged a singular path in their understanding of the world; their works are fiery beacons which surprise and sharpen the soul.&lt;/p&gt;
&lt;h2&gt;2023 Reading Stats&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Books read from:&lt;/strong&gt; 27&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Books finished:&lt;/strong&gt; 18&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unique authors:&lt;/strong&gt; 21&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Average reading time (finished books):&lt;/strong&gt; 5 weeks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pages read:&lt;/strong&gt; 7,222&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pages per day:&lt;/strong&gt; 19.8&lt;/li&gt;
&lt;/ul&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Airtable Reading Tracker: The Front-end</title><link>https://daniel-saunders.com/posts/tutorials/airtable-reading-tracker-frontend/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/tutorials/airtable-reading-tracker-frontend/</guid><description>Building a dynamic front-end website for an Airtable reading tracker using the Deno Fresh server-side rendering framework.</description><pubDate>Wed, 22 Nov 2023 00:00:00 GMT</pubDate><content:encoded>&lt;aside&gt; &lt;div&gt; &lt;span&gt;Context&lt;/span&gt; &lt;/div&gt; &lt;div&gt; &lt;p&gt;This post about web development is a few years old and shows processes and
code that may be significantly out of date or broken. Feel free to make use
of it, but tread carefully.&lt;/p&gt; &lt;/div&gt; &lt;/aside&gt;
&lt;p&gt;In &lt;a href=&quot;https://daniel-saunders.com/posts/tutorials/airtable-reading-tracker-backend&quot;&gt;my last post&lt;/a&gt;, I looked at how to use Airtable to build out a back-end database for a reading tracker app. That works perfectly on its own to manage my reading data, but let’s face it—I want to be able to show off this data, too. This is where Deno Fresh comes in as a framework to render my reading data in a dynamic website.&lt;/p&gt;
&lt;h2&gt;Site Features&lt;/h2&gt;
&lt;p&gt;Before I jump into the background and details of the implementation, here is an overview of the site features and functionality:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A main &lt;strong&gt;activity feed&lt;/strong&gt; with the latest reading activity entries showing top-level information about a book, filterable by status and sortable by date&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;shelf index&lt;/strong&gt; featuring all books within a shelf and the total book count per shelf&lt;/li&gt;
&lt;li&gt;A list of all &lt;strong&gt;reviews&lt;/strong&gt; attached to books/reading activity&lt;/li&gt;
&lt;li&gt;Individual &lt;strong&gt;detail pages&lt;/strong&gt; for every book, including in-depth information like publication info, shelves, reading activity, and reviews&lt;/li&gt;
&lt;li&gt;The whole site is designed to make it intuitive to jump between activity entries, shelves, book details, and reviews, while keeping the books themselves at the center of focus&lt;/li&gt;
&lt;li&gt;The best part is that new, uncached data from Airtable is fetched on every request, so any updates I make on the back-end will be immediately viewable on the front-end 💯&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Check out the &lt;a href=&quot;https://long-wasp-15.deno.dev/&quot;&gt;working model of the site here&lt;/a&gt;!&lt;/strong&gt; (Caveat: this is a work-in-progress and may be buggy, and, because I’m lazy, is not currently optimized for small screen sizes. But I hope it’s interesting to peruse!)&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reading-app-shelves.qvpZvtuf_Z1WqsGx.webp&quot; /&gt; &lt;figcaption&gt;Reading tracker front-end&lt;/figcaption&gt; &lt;/figure&gt;
&lt;h2&gt;Design&lt;/h2&gt;
&lt;p&gt;For the design of the site, I took a lot of inspiration from other tracker sites like &lt;a href=&quot;https://literal.club/&quot;&gt;literal.club&lt;/a&gt;, as well as publisher sites like &lt;a href=&quot;https://www.versobooks.com/products/2783-revolution&quot;&gt;Verso&lt;/a&gt; and &lt;a href=&quot;https://press.princeton.edu/books&quot;&gt;Princeton University Press&lt;/a&gt;. I wanted a minimalist feel with a focus on typography, and I think I achieved this pretty well with the fantastic serif typeface &lt;a href=&quot;https://www.type-together.com/garalda-font&quot;&gt;Garalda&lt;/a&gt; for the headings and one of the absolute best typefaces for user interfaces, &lt;a href=&quot;https://fonts.google.com/specimen/IBM+Plex+Sans&quot;&gt;IBM Plex Sans&lt;/a&gt;, for everything else. These two typefaces strike a very neat balance between “literariness” and practical readability/typographic versatility, and I think they work pretty well together.&lt;/p&gt;
&lt;p&gt;I also wanted to showcase the sumptuousness of the book covers themselves, particularly on the shelf sliders (pulling a bit of inspiration from media streaming services) and book detail pages. These detail pages show a lot of information, and I’m still playing around with how best to represent all of that, but I like where things are for the moment.&lt;/p&gt;
&lt;p&gt;Still to come: I’m not totally wild about the reviews page feed, so I’d like to come up with a better way to display that. And I’m working on an interesting way to show data from the &lt;a href=&quot;https://daniel-saunders.com/posts/notes/building-myself-a-reading-tracker-app-with-airtable-and-deno-fresh-part-2&quot;&gt;Reading Paths table&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Why Deno Fresh?&lt;/h2&gt;
&lt;p&gt;One of the reasons I love personal projects like this is that they give me an opportunity to experiment with new tools and technologies that I’m curious about. Even though I often go overboard on this (like trying four new things at once 😅), it’s a fun way to learn more about coding and the web as a whole.&lt;/p&gt;
&lt;p&gt;For this stage of the custom reading tracker, I knew I wanted to delve into a framework that focused on &lt;a href=&quot;https://www.sanity.io/glossary/server-side-rendering&quot;&gt;server-side rendering&lt;/a&gt; (SSR), which, in the JavaScript world, is having a &lt;a href=&quot;https://youtu.be/kUs-fH1k-aM?si=-64o9ihIn0fdNuXc&quot;&gt;bit of a moment right now&lt;/a&gt;. In contrast to other modern techniques and tools (i.e., React/Vue/single-page applications, static site generators, etc.), SSR frameworks dynamically serve content at the time of user request, ideally improving user experience by optimizing performance and reducing the JavaScript needed on any given page (which in the best case scenario is zero).&lt;/p&gt;
&lt;p&gt;Ironically, this model is much closer to older server-first tools (such as Laravel for PHP or Django for Python) than to what the JavaScript world has become in the era of React, in that it moves content rendering back to the server. This is good, as it better leverages the &lt;a href=&quot;https://blog.developer.adobe.com/the-web-platform-is-back-fa5752fabdfc&quot;&gt;Web Platform itself&lt;/a&gt;. And it also makes a lot of sense for something like a reading tracker, where hundreds of page views might need to be rendered, one for each book: dynamically generating pages on the fly can be much faster and more performant than either fetching everything from the browser (the single-page app model) or pre-building those pages beforehand (the static site model, even if you are using something as fast as Eleventy). And, as a further bonus over some of the older tools, you get access to newer technologies like global edge networks, which can speed up content delivery even more.&lt;/p&gt;
&lt;p&gt;So, knowing that I wanted to use an SSR framework, I had to pick one of many currently getting hyped out there (which is par for the course in the JavaScript world)—I considered Remix, SvelteKit, Astro SSR, and Next v.13 before settling on &lt;a href=&quot;https://fresh.deno.dev/&quot;&gt;Deno Fresh&lt;/a&gt;. Fresh was compelling in large part because of my interest in Deno itself. Deno is a &lt;a href=&quot;https://deno.com/&quot;&gt;JavaScript runtime&lt;/a&gt;, like Node.js (and created by the same author, Ryan Dahl), but it differs from Node in its “browser-like programming environment.” For example, in Deno you can use the standard &lt;code&gt;fetch&lt;/code&gt; API and HTTP requests in server-side code, just as you would in a browser.&lt;/p&gt;
&lt;p&gt;What I like about Deno is that I don’t have to think about a lot of the messy configuration or abstraction that distracts from the actual project: no build/compilation step, no package manager (goodbye npm!), no thinking too hard about what is being done on the server and what the view of a web page will be, a robust standard library that utilizes native web APIs. In other words, it is built to accommodate the Web Platform, and is thus inherently suited to the SSR model, and to easier experimentation if you are already familiar with the underlying core concepts of the web (and if you’re not, it will help you learn them!).&lt;/p&gt;
&lt;p&gt;Fresh is Deno’s entry in the SSR framework sphere, and I like it because it extends all of these aspects of Deno, while adding many framework conveniences, like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TypeScript support (which is natively supported in Deno and which I forced myself to try for the first time for this project—it was a mixed bag the first time out, but I can definitely see the benefit for a project with complex data like this; and again, because there is no compilation step, you can just start using it)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fresh.deno.dev/docs/concepts/islands&quot;&gt;“Islands” architecture&lt;/a&gt; for adding efficient interactive components, similar to the Astro framework model&lt;/li&gt;
&lt;li&gt;Route handlers and asset caching to efficiently handle fetching data on pages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, there are a few things in Fresh I’m not wild about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fresh’s use of Preact under the hood means you have to write JSX for everything, which is not my favorite&lt;/li&gt;
&lt;li&gt;The trade-off of having no build step means a trickier process of efficiently organizing front-end resources like styles and third-party scripts; but the platform’s default support of a “Tailwind-in-JS” further abstraction of Tailwind (not kidding) for styling is annoying. I’d love to see a default set up with something like &lt;a href=&quot;https://lightningcss.dev/docs.html&quot;&gt;Lightning CSS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But all in all, I’ve found that Fresh actually makes more complex/full-stack development more accessible by removing many of the tooling roadblocks and abstractions presented by something like React/Next, and by adhering closer to how the web works in general. It feels like a glimpse of where front-end web development might be headed!&lt;/p&gt;
&lt;h2&gt;Case Study: Reading Activity Feed &amp;amp; the URL API&lt;/h2&gt;
&lt;p&gt;As a case study in how Fresh works and utilizes native web APIs to create a dynamic user experience, I’ll walk through a little bit of the code for the home page of my reading tracker. For this page, I wanted the main focus to be a feed of my latest reading activity that was filterable by reading status and sortable by date. Using a combination of Fresh’s &lt;a href=&quot;https://fresh.deno.dev/docs/concepts/routes&quot;&gt;route handlers&lt;/a&gt;, the &lt;code&gt;fetch&lt;/code&gt; API, and the &lt;code&gt;URL&lt;/code&gt; API, it’s possible to make this happen in a way that ditches client-side JavaScript for the much smarter pattern of leveraging the URL itself to “manage state.”&lt;/p&gt;
&lt;p&gt;When looking at a URL for say, a video streaming site, you may have noticed some odd-looking text appended to the end of something like a category page, like this: “?category=series&amp;amp;genre=80s-action”. These “search parameters” can actually store all sorts of useful data on a URL (as well as “track” their mutation in browser history), and can be manipulated and parsed by the search parameters &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams&quot;&gt;web interface&lt;/a&gt;. In Fresh, you have access to this interface &lt;em&gt;in a server context&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Another huge benefit of URL search parameters is the inherent shareability they offer. Whatever page view you might be looking at with the parameters “?category=series&amp;amp;genre=80s-action” (hopefully some bad-ass Kurt Russell movies) you could send to someone else and they would see the &lt;em&gt;same thing&lt;/em&gt;. This is what the web is all about—creating and referencing hypertext to build a more connected world.&lt;/p&gt;
&lt;p&gt;For my case, I want to use search parameters to filter my reading activity feed, using strings like “filter=currently-reading” and “sort=desc”. Fresh makes this incredibly easy to do within a page component’s “route handler”—really just a wrapper for an HTTP method, whose response can then be passed down to other components on the page. The handler for my home page (located in the project’s &lt;code&gt;routes/index.tsx&lt;/code&gt; file) does a few important things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Makes an async request to the Airtable endpoint for the book data I want—in this case, all of the reading activity data, which includes dates read and information on books&lt;/li&gt;
&lt;li&gt;Uses the &lt;code&gt;URL&lt;/code&gt; interface at the same time to get any search parameters in the URL&lt;/li&gt;
&lt;li&gt;Returns an object consisting of the Airtable data and URL search parameters in JSON format&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Another caveat: I’m not too concerned with error handling in the following examples, because I have a good idea of what is coming from the Airtable data I am creating. But in a real-world case I’d want to bake that in from the start. I’m also ommiting import statements and type declarations for the sake of brevity&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;routes/index.tsx&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; const&lt;/span&gt;&lt;span&gt; handler&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; Handlers&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // The handler is essentially a wrapper for an async HTTP request&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    async&lt;/span&gt;&lt;span&gt; GET&lt;/span&gt;&lt;span&gt;(request&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; Request&lt;/span&gt;&lt;span&gt;, context&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; HandlerContext&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // Request a new URL object from our route&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        const&lt;/span&gt;&lt;span&gt; urlParams &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; new&lt;/span&gt;&lt;span&gt; URL&lt;/span&gt;&lt;span&gt;(request.url);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // Convert the search params in the current URL into JSON for ease of use later;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // this will give us a key-value structure, where the key is&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // the name of the parameter (i.e., &quot;filter&quot;) and&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // the value is the category name (i.e., &quot;currently-reading&quot;)&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        const&lt;/span&gt;&lt;span&gt; paramsObject&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; Record&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt;&amp;gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; item &lt;/span&gt;&lt;span&gt;of&lt;/span&gt;&lt;span&gt; urlParams.seachParams) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            paramsObject[item[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;]] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; item[&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // Use a function from ../server/airtable.ts that fetches from the&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // Airtable API endpoint and returns a JSON response;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // the function takes in a table name/ID and optional parameters&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // and constructs a URL to fetch&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        return&lt;/span&gt;&lt;span&gt; context.&lt;/span&gt;&lt;span&gt;render&lt;/span&gt;&lt;span&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            activity: (&lt;/span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; getAirtableData&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;                &quot;Reading Activity&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            )) &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; AirtableResponse&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            filterParams: JSON.&lt;/span&gt;&lt;span&gt;stringify&lt;/span&gt;&lt;span&gt;(paramsObject),&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        });&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    },&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;};&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;Then, further down in the same file, the main &lt;code&gt;Home&lt;/code&gt; component for rendering the page will receive this object response as props (in the &lt;code&gt;data&lt;/code&gt; variable):&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;routes/index.tsx&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; default&lt;/span&gt;&lt;span&gt; function&lt;/span&gt;&lt;span&gt; Home&lt;/span&gt;&lt;span&gt;({ data }&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; PageProps&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;HomeData&lt;/span&gt;&lt;span&gt;&amp;gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; { activity, filterParams } &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; param&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; Record&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt;&amp;gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; JSON.&lt;/span&gt;&lt;span&gt;parse&lt;/span&gt;&lt;span&gt;(filterParams);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    console.&lt;/span&gt;&lt;span&gt;log&lt;/span&gt;&lt;span&gt;(param);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // ...&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // ...&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;When we log that &lt;code&gt;param&lt;/code&gt; variable, we’ll see something very interesting: if we’re on the home page route (”/”) and manually add any search parameters to the URL in the browser’s address bar, we’ll get those parameters returned as a handy object. So adding “?filter=currently-reading&amp;amp;sort=desc” to the URL will log the object &lt;code&gt;{ filter: &apos;currently-reading&apos;, sort: &apos;desc&apos; }&lt;/code&gt;, which we’ll have acces to anywhere in our component template. That’s a really convenient format with which to manipulate our page’s data on the fly.&lt;/p&gt;
&lt;p&gt;Here is where we can start to do some fun things in the &lt;code&gt;Home&lt;/code&gt; component, before we actually render the final markup. First, using the search parameters from our current URL structure, we can filter and sort the Airtable records based on their status and date properties:&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;routes/index.tsx&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; default&lt;/span&gt;&lt;span&gt; function&lt;/span&gt;&lt;span&gt; Home&lt;/span&gt;&lt;span&gt;({ data }&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; PageProps&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;HomeData&lt;/span&gt;&lt;span&gt;&amp;gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // ...&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // ...&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Extract the current seach params to variables for ease of reference;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // also set defaults in case no params are in the URL&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; currentFilter &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; param.filter &lt;/span&gt;&lt;span&gt;||&lt;/span&gt;&lt;span&gt; &quot;all&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; currentSort &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; param.sort &lt;/span&gt;&lt;span&gt;||&lt;/span&gt;&lt;span&gt; &quot;desc&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Use the filter array method on the Airtable data&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // to filter out status based on the current filter&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; filteredActivity &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; activity?.records.&lt;/span&gt;&lt;span&gt;filter&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        (record) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; record.status &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; currentFilter&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    );&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Then, sort the filtered records by date, using a handy Deno&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // standard library function to sort an array based on a shared property&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; sortedAndFilteredActivity &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        currentSort &lt;/span&gt;&lt;span&gt;===&lt;/span&gt;&lt;span&gt; &quot;asc&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            ?&lt;/span&gt;&lt;span&gt; sortBy&lt;/span&gt;&lt;span&gt;(filteredActivity, (item) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; item.dateUpdated, {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;                  order: &lt;/span&gt;&lt;span&gt;&quot;asc&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              })&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            :&lt;/span&gt;&lt;span&gt; sortBy&lt;/span&gt;&lt;span&gt;(filteredActivity, (item) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; item.dateUpdated, {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;                  order: &lt;/span&gt;&lt;span&gt;&quot;desc&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              });&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Finally, use another Deno standard library function to group an&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // array of objects by a shared property, in this case the status,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // to build out counts for the feed sidebar&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // This outputs an object where keys are the status and values are an array&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // of the records with that status, i.e.:&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // { &quot;Currently Reading&quot;: [// records with status of currently reading],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // &quot;Have Read&quot;: [// records with status of have read] }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // I love this amazing little function&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; sidebarActivity &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; groupBy&lt;/span&gt;&lt;span&gt;(preparedActivity, (item) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; item.status);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // ...&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // ...&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;Again, it’s worth reiterating that all of this is accomplished on the server, without using &lt;em&gt;any&lt;/em&gt; client-side JavaScript.&lt;/p&gt;
&lt;p&gt;Finally, we can return the markup for the &lt;code&gt;Home&lt;/code&gt; component, which will dynamically update the records in a list of &lt;code&gt;FeedItem&lt;/code&gt; components, depending on the current URL search parameters. Here is the simplified structure of the entire &lt;code&gt;Home&lt;/code&gt; component following the route handler (with some HTML and classes stripped for better readability):&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;routes/index.tsx&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; default&lt;/span&gt;&lt;span&gt; function&lt;/span&gt;&lt;span&gt; Home&lt;/span&gt;&lt;span&gt;({ data }&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; PageProps&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;HomeData&lt;/span&gt;&lt;span&gt;&amp;gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; { activity, filterParams } &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; param&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; Record&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt;&amp;gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; JSON.&lt;/span&gt;&lt;span&gt;parse&lt;/span&gt;&lt;span&gt;(filterParams);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; currentFilter &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; param.filter &lt;/span&gt;&lt;span&gt;||&lt;/span&gt;&lt;span&gt; &quot;all&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; currentSort &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; param.sort &lt;/span&gt;&lt;span&gt;||&lt;/span&gt;&lt;span&gt; &quot;desc&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; filteredActivity &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; //...&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; sortedAndFilteredActivity &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; //...&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    return&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &amp;lt;&lt;/span&gt;&lt;span&gt;main&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &amp;lt;&lt;/span&gt;&lt;span&gt;Sidebar&lt;/span&gt;&lt;span&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &amp;lt;&lt;/span&gt;&lt;span&gt;section&lt;/span&gt;&lt;span&gt; aria-labelledby=&lt;/span&gt;&lt;span&gt;&quot;reading-activity&quot;&lt;/span&gt;&lt;span&gt; class=&lt;/span&gt;&lt;span&gt;&quot;feed&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;          &amp;lt;&lt;/span&gt;&lt;span&gt;h2&lt;/span&gt;&lt;span&gt; id=&lt;/span&gt;&lt;span&gt;&quot;reading-activity&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;Reading Activity&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;h2&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;          &amp;lt;&lt;/span&gt;&lt;span&gt;ul&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            {&lt;/span&gt;&lt;span&gt;sortedAndFilteredActivity.&lt;/span&gt;&lt;span&gt;map&lt;/span&gt;&lt;span&gt;((book) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              &amp;lt;&lt;/span&gt;&lt;span&gt;li&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;                &amp;lt;&lt;/span&gt;&lt;span&gt;FeedItem&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;                  book={&lt;/span&gt;&lt;span&gt;book&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;                /&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              &amp;lt;/&lt;/span&gt;&lt;span&gt;li&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            ))&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;          &amp;lt;/&lt;/span&gt;&lt;span&gt;ul&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &amp;lt;/&lt;/span&gt;&lt;span&gt;section&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &amp;lt;/&lt;/span&gt;&lt;span&gt;main&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    );&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;The result is a simple but powerful way of filtering and sorting a big list of reading activity without any client-side JavaScript!&lt;/p&gt;
&lt;h2&gt;Things to Add/Improve&lt;/h2&gt;
&lt;p&gt;As I continue to tinker with this site, there are few things I want to add/improve:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add sitewide search&lt;/li&gt;
&lt;li&gt;Implement new Fresh features like &lt;a href=&quot;https://fresh.deno.dev/docs/concepts/partials&quot;&gt;partials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Design and build a section for Reading Paths data&lt;/li&gt;
&lt;li&gt;Add Author pages&lt;/li&gt;
&lt;li&gt;Implement pagination/splitting large server requests into smaller pieces&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Again, &lt;a href=&quot;https://deep-pheasant-69.deno.dev/&quot;&gt;here is the link to the site&lt;/a&gt; if you want to peruse. I’d be interested to know what you think of this whole project!&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Airtable Reading Tracker: The Back-end</title><link>https://daniel-saunders.com/posts/tutorials/airtable-reading-tracker-backend/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/tutorials/airtable-reading-tracker-backend/</guid><description>Using Airtable as a back-end to build out a custom reading tracker app.</description><pubDate>Sun, 24 Sep 2023 00:00:00 GMT</pubDate><content:encoded>&lt;aside&gt; &lt;div&gt; &lt;span&gt;Context&lt;/span&gt; &lt;/div&gt; &lt;div&gt; &lt;p&gt;This post about web development is a few years old and shows processes and
code that may be significantly out of date or broken. Feel free to make use
of it, but tread carefully.&lt;/p&gt; &lt;/div&gt; &lt;/aside&gt;
&lt;p&gt;As is evident from this blog, I’m a big fan of Airtable, and so as I set out to build myself a custom reading tracker, it was naturally my first choice for a hybrid back-end/administrative interface to use for &lt;a href=&quot;https://daniel-saunders.com/posts/notes/imagining-the-ideal-reading-tracker-app&quot;&gt;a custom reading tracker&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Airtable’s friendly UI makes structuring relational data fast and easy, and its support for automations, scripting, and webhooks, as well as its robust &lt;abbr&gt;API&lt;/abbr&gt;, means that you can make it the backbone of sophisticated custom apps. This combination of customization, ease-of-use, and web interoperability makes it almost too good to be true for this type of scenario.&lt;/p&gt;
&lt;h2&gt;Et tu, Airtable?&lt;/h2&gt;
&lt;p&gt;Well, it turns out “too good to be true” is pretty accurate, because Airtable knows how powerful their platform is, and apparently they don’t believe this power should be wielded by mere individuals. (&lt;em&gt;Incipit&lt;/em&gt; rant—feel free to skip ahead.) As I was working on this project and writing this series of posts, Airtable &lt;a href=&quot;https://support.airtable.com/docs/changes-to-airtable-plans&quot;&gt;rolled out a new pricing structure&lt;/a&gt; that effectively quashes hobby use-cases like this.&lt;/p&gt;
&lt;p&gt;Previously, the free plan gave you access to scripting and unlimited API calls; on the new free plan, however, scripting and indeed &lt;em&gt;all&lt;/em&gt; of the dozens of extensions (like base-wide searching and schema visualizations) have been removed, and API calls have been severely limited (from &lt;em&gt;unlimited&lt;/em&gt; to 1,000/month). The next plan up which unlocks these features is now a steep $24/month.&lt;/p&gt;
&lt;p&gt;This all feels like corporate arbitrariness (and greed) designed to cater to business teams/enterprise users. In a way, I get it; &lt;a href=&quot;https://chriscoyier.net/2023/09/18/how-long-does-free-hosting-last/&quot;&gt;the free model seems ultimately untenable&lt;/a&gt; for fast-growing services like this. But it’s a weird feeling when you can tell a product doesn’t want you to use its product.&lt;/p&gt;
&lt;p&gt;Luckily, I have a paid Airtable plan that I use for other work-related bases, and so I was able to retain the full power of my reading tracker setup. But it’s disappointing, not to say extremely frustrating, that this is the new reality. It now means that the setup I share below (as well as &lt;a href=&quot;https://daniel-saunders.com/posts/notes/using-airtable-as-a-jamstack-cms&quot;&gt;similar setups I’ve written about&lt;/a&gt;) is not replicable unless you have a paid plan. Had I started this project after the pricing restructure, I might have opted instead to use something else out of principle—but alas. Never lean too hard on a corporate service. (Or maybe it’s time to just dive full-on into &lt;abbr&gt;SQL&lt;/abbr&gt; and relational databases…)&lt;/p&gt;
&lt;h2&gt;Base and Table Setup&lt;/h2&gt;
&lt;p&gt;All that said, Airtable works really well as a database for tracking reading activity. Within the base, I have a number of tables set up for each type of data I want to track; this granular approach means that a record in any table can be associated in various ways with any the others. Book records can be a part of author and shelf records, but they also are a part of reading activity records.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reading-app-airtable-backend-2.C1EssXOq_1yGvvS.webp&quot; /&gt; &lt;figcaption&gt;The interconnections between all of the tables in the base.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;Here is a breakdown of tables in the base:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Books.&lt;/strong&gt; As might be expected, this is the core building block of the reading tracker—everything starts with a book. Fields include basic book information like title, cover, and publisher, as well as other metadata like page count, format, series, ISBN number, edition notes, etc. (more on getting those below). Connected fields linked to other tables include authors, shelves, and reading activity instances. This allows for some other interesting metadata to be calculated using &lt;a href=&quot;https://support.airtable.com/docs/rollup-field-overview&quot;&gt;Airtable’s “rollup” fields&lt;/a&gt;, like “belongs to (x) number of shelves” and “(x) times read”.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Authors.&lt;/strong&gt; Pretty straightforward (at least for now), showing author records with simply a name and linked books.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shelves.&lt;/strong&gt; Shelves are low-level tags grouping associated books. I’m trying not to be too precious with these, adding records of anything and everything that might be an interesting grouping: biography, capitalism, European literature, sci-fi, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reading Activity.&lt;/strong&gt; A reading activity record marks every “instance” of an interaction with a book, so one book can have many activities on it. This is one of the secrets of working with relational data; it might make sense at first to track this information directly on book records themselves. But separating out a new table with distinct fields gives you much more control and flexibility when dealing with the data. Fields on a reading activity record include status (read next, currently reading, have read), date started/finished, and pages read. Because this table can “look into” fields on the associated book records, I can also calculate other items like “percentage read” to see whether or not a book was finished (if percentage read equals 100%) or just “read” in any form (if percentage read is less than 100%).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reviews.&lt;/strong&gt; Reviews are linked to reading activity instances and not books themselves, with the reasoning that thoughts and reactions to a book are highly specific to the time and place the book was encountered. This lets reviews be a snapshot in time, with the ability to add new or updated views on the book on subsequent reading instances.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reading Paths.&lt;/strong&gt; Finally, there is the reading paths table, which, as I mentioned &lt;a href=&quot;https://daniel-saunders.com/posts/notes/building-myself-a-reading-tracker-app-with-airtable-and-deno-fresh-part-1&quot;&gt;in the first post&lt;/a&gt;, is my favorite table because it opens up really exciting connections between the books I’m reading. Each record in a reading path is like a “meta shelf,” a broad theme that either was set in an intentional reading plan or has emerged organically from the reading of the books themselves. The paths not only group books together, like a shelf does, but they also track the dates of interaction as linked from the activity instances. A path then becomes a chronological journal of how and when books have influenced the reading of other books—a shelf through time, as it were. Some examples of paths I have identified and named include “Utopian Horizons” (&lt;a href=&quot;https://daniel-saunders.com/posts/lists/my-year-in-reading-2022&quot;&gt;philosophical investigations of utopia&lt;/a&gt; and its possibilities in sci-fi and other literature) and “Smog City” (radical histories and stories of Los Angeles).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Getting Public Book Data&lt;/h2&gt;
&lt;p&gt;When it comes to actually populating the base with records, one option, of course, is to do so manually. There is a certain meditativeness for me in actually pulling a book of a shelf, looking through it, and adding information to a record. But as far as possible it would be great if most of this already-existing data could come from somewhere. And so in the programming spirit of “how can I spend hours figuring out a way to automate a process that might only take a few extra seconds anyway,” I set about trying to hack together a book metadata fetcher to build into the Airtable base.&lt;/p&gt;
&lt;p&gt;The first and biggest problem was to find a reliable, open-source database or API from which to get the data. As I mentioned &lt;a href=&quot;https://daniel-saunders.com/posts/notes/building-myself-a-reading-tracker-app-with-airtable-and-deno-fresh-part-1&quot;&gt;in the last post&lt;/a&gt;, Goodreads took their API offline years ago, so that route was closed, and the only other option I knew of was the &lt;a href=&quot;https://developers.google.com/books/docs/overview&quot;&gt;Google Books API&lt;/a&gt;. That initially seemed like a good solution, but I ultimately decided against it because (1) it’s Google and also because (2) it was overly complicated and inconsistent. Searching for a book might return one of many different editions, each with its own idiosyncratic (and sometimes conflicting!) data—a fact you may have experienced if you’ve ever perused the &lt;a href=&quot;https://www.google.com/books/edition/Dune/B1hSG45JCX4C?hl=en&amp;amp;kptab=overview&quot;&gt;Google Books previewer&lt;/a&gt; from search results.&lt;/p&gt;
&lt;p&gt;I was about to give up hope when I stumbled upon &lt;a href=&quot;https://openlibrary.org/&quot;&gt;Open Library&lt;/a&gt;, which is an initiative of the Internet Archive. While far from perfect (anyone can contribute to it, so it still has a lot of the same consistency and missing data issues), the &lt;a href=&quot;https://openlibrary.org/dev/docs/api/books&quot;&gt;Open Library Books API&lt;/a&gt; provides access to a lot of the book data I wanted and is really easy to use. (The Internet Archive remains undefeated.)&lt;/p&gt;
&lt;p&gt;To incorporate this API into my Airtable base, I wrote a script to run a web fetch request to Open Library and save the returned data to various fields in Airtable. The script is attached to a button field in the Books table with the title “Lookup Metadata” and runs when clicked. Here is a look at the first part of the script:&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;Airtable Scripting Extension&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;// Airtable&apos;s scripting extension has an interface which allows user input&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// through text, buttons, and selections, and which can output data as well.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// The first line presents a choice of button options to search books by ISBN&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// number or Open Library&apos;s ID system, and saves it to a variable &apos;searchInput&apos;.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; searchInput &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; input.&lt;/span&gt;&lt;span&gt;buttonsAsync&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;Search by&quot;&lt;/span&gt;&lt;span&gt;, [&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &quot;ISBN&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &quot;Open Library ID&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;]);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Initialize variables to hold the user selection so we can use it&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// in the fetch call.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;let&lt;/span&gt;&lt;span&gt; searchMethod &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &quot;&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;let&lt;/span&gt;&lt;span&gt; searchValue &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &quot;&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (searchInput &lt;/span&gt;&lt;span&gt;===&lt;/span&gt;&lt;span&gt; &quot;ISBN&quot;&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    searchMethod &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &quot;ISBN&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Captures user text input and logs/saves the choice.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    searchValue &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; input.&lt;/span&gt;&lt;span&gt;textAsync&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;Search by ISBN&quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;} &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    searchMethod &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &quot;OLID&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    searchValue &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; input.&lt;/span&gt;&lt;span&gt;textAsync&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;Search by OLID&quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;output.&lt;/span&gt;&lt;span&gt;text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;`Fetching with ${&lt;/span&gt;&lt;span&gt;searchMethod&lt;/span&gt;&lt;span&gt;}: ${&lt;/span&gt;&lt;span&gt;searchValue&lt;/span&gt;&lt;span&gt;}...`&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Function to fetch the data.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;async&lt;/span&gt;&lt;span&gt; function&lt;/span&gt;&lt;span&gt; getBookData&lt;/span&gt;&lt;span&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; url &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &quot;https://openlibrary.org/api/books&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Using the URLSearchParams web interface, add parameters to the API url&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // to filter the data requested. The interface constructor will return an&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // object that will automatically encode the proper URL components for us,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // as shown in the console.log().&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; new&lt;/span&gt;&lt;span&gt; URLSearchParams&lt;/span&gt;&lt;span&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        bibkeys: &lt;/span&gt;&lt;span&gt;`${&lt;/span&gt;&lt;span&gt;searchMethod&lt;/span&gt;&lt;span&gt;}:${&lt;/span&gt;&lt;span&gt;searchValue&lt;/span&gt;&lt;span&gt;}`&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        jscmd: &lt;/span&gt;&lt;span&gt;&quot;data&quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// Format specified by Open Books to return book data.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        format: &lt;/span&gt;&lt;span&gt;&quot;json&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    });&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    console.&lt;/span&gt;&lt;span&gt;log&lt;/span&gt;&lt;span&gt;(params.&lt;/span&gt;&lt;span&gt;toString&lt;/span&gt;&lt;span&gt;());&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Example log: &quot;bibkeys=ISBN%3A0441013597&amp;amp;jscmd=data&amp;amp;format=json&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Try getting the data using fetch().&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    try&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        const&lt;/span&gt;&lt;span&gt; response &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; fetch&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;`${&lt;/span&gt;&lt;span&gt;url&lt;/span&gt;&lt;span&gt;}?${&lt;/span&gt;&lt;span&gt;params&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;toString&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span&gt;}`&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        const&lt;/span&gt;&lt;span&gt; data &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; response.&lt;/span&gt;&lt;span&gt;json&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;span&gt;data) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            output.&lt;/span&gt;&lt;span&gt;text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;No results returned - check the inputs.&quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        } &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            // The API returns an object with the key being the ISBN, which&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            // is a bit unwieldy - extract this to a variable.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            const&lt;/span&gt;&lt;span&gt; result &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; Object.&lt;/span&gt;&lt;span&gt;values&lt;/span&gt;&lt;span&gt;(data)[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            // Lets the user know the title of the result that was found&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            // and if there is a cover image in the returned metadata or not.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            output.&lt;/span&gt;&lt;span&gt;text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;                `Returned results for ${&lt;/span&gt;&lt;span&gt;result&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;title&lt;/span&gt;&lt;span&gt;} (${&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;                    result&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;cover&lt;/span&gt;&lt;span&gt; ?&lt;/span&gt;&lt;span&gt; &quot;includes cover&quot;&lt;/span&gt;&lt;span&gt; :&lt;/span&gt;&lt;span&gt; &quot;no cover&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;                }).`&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            );&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            return&lt;/span&gt;&lt;span&gt; result;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    } &lt;/span&gt;&lt;span&gt;catch&lt;/span&gt;&lt;span&gt; (error) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        console.&lt;/span&gt;&lt;span&gt;log&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;Error fetching data:&quot;&lt;/span&gt;&lt;span&gt;, error);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Call the function.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; book &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; getBookData&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Sample return object:&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;//    url: &apos;https://openlibrary.org/books/OL17952222M/Dune&apos;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;//    title: &apos;Dune&apos;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;//    authors: Array(1),&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;//    number_of_pages: 528,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;//    publish_date: &apos;2005&apos;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;//    cover: Object,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;//    ...etc&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;//  }&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;This works pretty well and usually provides enough of a start for getting all the fields I want—especially the book covers, which saves some time having to look them up.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reading-app-fetch.DBxus8a__1VNTVh.webp&quot; /&gt; &lt;figcaption&gt;The Airtable scripting interface and sample test run of the fetch code
above.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;The second part of the script takes the returned data and maps it onto the appropriate fields in the Books table, using some of Airtable’s helper methods.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;Airtable Scripting Extension&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;// Exit if no data is fetched or nothing is returned.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;span&gt;book &lt;/span&gt;&lt;span&gt;||&lt;/span&gt;&lt;span&gt; Object.&lt;/span&gt;&lt;span&gt;keys&lt;/span&gt;&lt;span&gt;(book).length &lt;/span&gt;&lt;span&gt;===&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    output.&lt;/span&gt;&lt;span&gt;text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;Record not populated.&quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;} &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // First, get the Books table in our base.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; booksTable &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; base.&lt;/span&gt;&lt;span&gt;getTable&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;Books&quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Second, get the currently selected record that the &apos;lookup metadata&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // button was clicked on.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; thisRecord &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; input.&lt;/span&gt;&lt;span&gt;recordAsync&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;Select record&quot;&lt;/span&gt;&lt;span&gt;, booksTable);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // This function (not shown) does some logic to see if the main author&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // attached to the Open Library result (always an array) matches an&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // author that already exists in the authors table. If it doesn’t exist,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // it creates a new author record and returns the Airtable record.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; linkedAuthor &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; getLinkedAuthor&lt;/span&gt;&lt;span&gt;(book.authors[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].name);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Update the current record&apos;s fields with the fetched data&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // and any linked author record.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    await&lt;/span&gt;&lt;span&gt; booksTable.&lt;/span&gt;&lt;span&gt;updateRecordAsync&lt;/span&gt;&lt;span&gt;(thisRecord.id, {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        Title: book.title,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        Cover: book.cover &lt;/span&gt;&lt;span&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span&gt; [{ url: book.cover.large &lt;/span&gt;&lt;span&gt;||&lt;/span&gt;&lt;span&gt; book.cover.medium }],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;Author(s)&quot;&lt;/span&gt;&lt;span&gt;: [{ id: linkedAuthor.id }],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;Page Count&quot;&lt;/span&gt;&lt;span&gt;: book.number_of_pages,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;Publish Date&quot;&lt;/span&gt;&lt;span&gt;: book.publish_date,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // etc.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    });&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    output.&lt;/span&gt;&lt;span&gt;text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;Record populated.&quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reading-app-airtable-backend-3.D5c066Rb_2sTk6s.webp&quot; /&gt; &lt;figcaption&gt;Mapping the returned fetch results to the record’s fields.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;h2&gt;To the Front-End&lt;/h2&gt;
&lt;p&gt;In the &lt;a href=&quot;https://daniel-saunders.com/posts/tutorials/airtable-reading-tracker-frontend&quot;&gt;next post&lt;/a&gt;, I’ll look at how I used the &lt;a href=&quot;https://fresh.deno.dev/&quot;&gt;Deno Fresh framework&lt;/a&gt; to build a server-side-rendered front-end to visually display all the reading data.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Imagining the Ideal Reading Tracker App</title><link>https://daniel-saunders.com/posts/notes/imagining-the-ideal-reading-tracker-app/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/imagining-the-ideal-reading-tracker-app/</guid><description>An effective reading tracker would not only provide a chronological list of titles read, but would uncover the manifold associations of influence and interest that are constantly being formed from the books I read.</description><pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I’m a bit of a fanatic when it comes to my library of books. When I’m not reading, I’m obsessing over which editions are the best, what shelf organization method to employ on any given week, and how I can best keep track of what I read.&lt;/p&gt;
&lt;p&gt;For me, an effective reading tracker would not only provide a chronological list of titles read, but would uncover the manifold associations of influence and interest that are constantly being formed from the books I read. Like all libraries, my library carries a unique personal signature that has developed out of such a web of connections, and part of the joy of reading is the continual rediscovery of how and where ideas and themes overlap, especially when such connections might not immediately be evident.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://daniel-saunders.com/_astro/reading-app-left-hand.BGtZRWM1_ZH6Tta.webp&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On a less lofty note, there are a number of other considerations—some practical, some aesthetic, some undoubtedly vain—that I’ve collected from experiences with all the ways I’ve tried to track my reading, whether that is a simple spreadsheet or a site like Goodreads. Here is a list of some of those considerations, or what is essentially my wishlist for the ideal reading tracker app (with the open acknowledgment that many of these are gripes directed specifically at Goodreads):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sensible feeds.&lt;/strong&gt; In my opinion, the most annoying thing about Goodreads is how its social media-type activity feed logs a date for every possible user update or interaction. Here is a novel idea (sorry for the pun): when I track reading activity, I want to track when I start or finish a book, or when I post a review. In other words, I want the feed to reflect the &lt;em&gt;actual dates I interacted with the book&lt;/em&gt; in my day-to-day life, and not &lt;em&gt;when I made the change to the underlying data&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Linked but separate category types like activity, shelves, and reading paths.&lt;/strong&gt; A book can be categorized in many ways. Goodreads treats everything under one big umbrella of “shelf,” but I want simultaneously more separation and more fluidity in how books are categorized. In my ideal schema, an &lt;em&gt;activity&lt;/em&gt; would track if and when a book was read; a &lt;em&gt;shelf&lt;/em&gt; would associate books of a particular theme; and a &lt;em&gt;reading path&lt;/em&gt; would group books of any shelf in a larger meta-category incorporating both chronology &lt;em&gt;and&lt;/em&gt; theme. This last idea is the most exciting to me, as it traces the chronological development of reading in a given area—how &lt;em&gt;this&lt;/em&gt; book led to &lt;em&gt;that&lt;/em&gt; book led to &lt;em&gt;this&lt;/em&gt; author, and so on. But despite their definitional separation, these categories would all be linked in an organic way with each other.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A way to track progress beyond the “reading” and “finished” binary.&lt;/strong&gt; “I read this book” can be an ambiguous statement. Well, at least for me—I’ve recently made peace with the fact that I don’t read all my books cover to cover. But that doesn’t mean I didn’t get something, or even the main argument/theme/message, out of a particular book. (A lot hinges on type and genre. I couldn’t leave a novel unfinished, for example, but a tortuous book on theory might lend itself to skipping around.) So in some cases I would want a way to mark a book as “read” but not necessarily “finished.”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data customization.&lt;/strong&gt; There is a lot of data out there, some of it good and some of it bad or superfluous. It would be great to have available a lot of meta-information about the books I’m tracking (publisher, publish date, edition info, etc.), but it would also be nice to be able to exclude or edit some of that data (e.g., if it’s inaccurate data or if I want information about a different edition).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Public APIs.&lt;/strong&gt; How to get book data in the first place? And how to use my reading data where I want, for example &lt;a href=&quot;https://daniel-saunders.com/library&quot;&gt;on this blog to show my current reading list&lt;/a&gt;? Both of these problems can be solved with public APIs that make data accessible to other parts of the web. As many companies increasingly put up walls around what can accessed (Goodreads, which is owned by Amazon, yanked all access to their API years ago), it is imperative for me to have some measure of access to and control over the data I’m using and creating.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Good design and luxurious displays.&lt;/strong&gt; Good design is a matter of both compelling visuals/typography and intuitive functionality, and the lack of both is a big reason why it hurts to use Goodreads, whose cramped style is a major eyesore and whose navigation is confusing. Also, book covers: covers are magnificent, and I want to be able to see them in all their glory. When browsing through my reading data, I want it to feel akin to stepping into an actual room and looking at my actual books, but with hypertext goggles on.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Control over social interactions.&lt;/strong&gt; This might not be true for everyone, but I don’t get much out of the social component of sites like Goodreads. It’s nice to read a few comments and have someone like your review, but that’s about it. When I think about what real social engagement with my books looks like, it would be cool for people to offer recommendations and like or maybe respond to my reviews—something more akin to a blog or traditional feed than a social media experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I gave Goodreads a good try for a long while, but its limitations and the considerations above made me look elsewhere for a better reading tracker experience. I also tried some of the the newer and more stylish Goodreads replacement sites like &lt;a href=&quot;https://literal.club/&quot;&gt;literal.club&lt;/a&gt; and &lt;a href=&quot;https://www.libib.com/&quot;&gt;libib&lt;/a&gt;, but I think they too have some of the same shortcomings. So it was out of necessity that I did what any normal person would do—I set to work building my own reading tracker app. 😅&lt;/p&gt;
&lt;p&gt;In the next few posts, I’ll unpack more about how I set things up, and how I am using &lt;a href=&quot;https://daniel-saunders.com/posts/tutorials/airtable-reading-tracker-backend&quot;&gt;Airtable as a backend&lt;/a&gt; and the &lt;a href=&quot;https://daniel-saunders.com/posts/tutorials/airtable-reading-tracker-frontend&quot;&gt;Deno Fresh framework as a frontend&lt;/a&gt; for my own customized reading tracker app.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>My PC Apostasy: On Converting to the Cult of MacOS</title><link>https://daniel-saunders.com/posts/notes/my-pc-apostasy-on-converting-to-the-cult-of-macos/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/my-pc-apostasy-on-converting-to-the-cult-of-macos/</guid><description>Crossing the operating system Tiber.</description><pubDate>Tue, 04 Jul 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It finally came to pass—I am now the owner of an Apple product (an insanely performant, M2-chipped MacBook Pro) for the first time in almost two decades, when the iPod Classic brought my massive library of crappy Green Day and Metallica mp3s to the palm of my hand.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/trent-featured.D0izUT-O_ZcgHjV.webp&quot; /&gt; &lt;figcaption&gt;Apple users.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;During that intervening time, I maintained the stubborn attitude of a PC dogmatist. After all, PCs could be custom-built and endlessly modified (something I did in high school, with the help of a family member), they were better for games (except for that Spiderman game I dropped $50 on in 2006, which never worked on my graphics card), and they were always just more intuitive to me (speaking for Windows, anyway, whose folder/file system I still prefer to MacOS).&lt;/p&gt;
&lt;p&gt;Of course, there was always also the perverse pride in not giving in to the hype, of decrying the decadence and thoughtlessness of both the masses and “creative types” who gave up their free choice of software and hardware to a marketing-savvy corporate giant, of feeling like one of the true holdouts to defend…what? A Windows user-interface that hasn’t established a good or even consistent design in 30 years? A bland aesthetic redolent of bureaucratic senescence? An operating system whose frequent crashes and bugs caused an untold number of desperate hours trying to troubleshoot fixes? A chaotic ecosystem and knowledge base where there was never less than 10 different ways to do something relatively simple?&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/windows-menu.DJeojymr_ZEGFSN.webp&quot; /&gt; &lt;figcaption&gt;Windows context menu hell, via Reddit.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;This pietistic streak on my part, a “Here I stand, I can do no other” mentality, if you will, was an unwitting embodiment of a &lt;a href=&quot;https://www.simongrant.org/web/eco.html&quot;&gt;canny and insightful comment&lt;/a&gt; made by semiotician and novelist Umberto Eco all the way back in 1994—that “the Macintosh is Catholic and that &lt;abbr&gt;DOS&lt;/abbr&gt; is Protestant” (and I, for my part, was as Protestant as Luther or Calvin):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Indeed, the Macintosh is counterreformist and has been influenced by the “ratio studiorum” of the Jesuits. It is cheerful, friendly, conciliatory, it tells the faithful how they must proceed step by step to reach—if not the Kingdom of Heaven—the moment in which their document is printed. It is catechistic: the essence of revelation is dealt with via simple formulae and sumptuous icons. Everyone has a right to salvation.&lt;br /&gt;&lt;br /&gt;DOS is Protestant, or even Calvinistic. It allows free interpretation of scripture, demands difficult personal decisions, imposes a subtle hermeneutics upon the user, and takes for granted the idea that not all can reach salvation. To make the system work you need to interpret the program yourself: a long way from the baroque community of revelers, the user is closed within the loneliness of his own inner torment.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It is, I admit, something like a Puritan’s envy for that cheerful and conciliatory user experience of the Mac that finally led me to forsake the dour Northern lands of PC-dom and cross the operating-system Tiber. Not only did I want a better-performing machine—and the M2 MacBook Pro with 32GB of memory is certainly the most powerful I’ve ever used—but, as a begrudgingly acknowledged “creative type” myself, I wanted access to the sensory wonders of that “baroque community of revelers” I had previously only pined after.&lt;/p&gt;
&lt;p&gt;In general, tools and workflows for design and coding just appear to be smoother, simpler, and prettier. There’s also the handy &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt; command line tool, which makes installing and managing software packages and tools for coding much easier; there’s all of the default and programmable keyboard shortcuts, the initiation into which is like learning to genuflect and make the sign of the cross; and of course, there’s the vividness of the colors, fonts, and sumptuous icons.&lt;/p&gt;
&lt;p&gt;The truth is that I still have and use my PC regularly. Lest I fall into the sin of a purely works-based salvation, the radical Reformationist that lives deep in my Pennsylvania Dutch ancestry has to step in to regulary chasten this seduction by the purely aesthetic trappings of religion…er, I mean operating systems. And there are some things I will always prefer on Windows (for one, the default text size for menus and folders on MacOS is abysmally small at normal resolution). So for now, I’m both Catholic and Protestant—in other words, an Anglican.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>The Three Stages of Capitalist Space</title><link>https://daniel-saunders.com/posts/essays/the-three-stages-of-capitalist-space/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/essays/the-three-stages-of-capitalist-space/</guid><description>Thinking through the contradictions and cognitive terrain of postmodernism with Fredric Jameson.</description><pubDate>Sun, 21 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;What is postmodernism? By now, we all know that we’re in it and that there’s no getting out of it—even if, like all periods as they’re being experienced, we can’t exactly define it from the inside, without the benefit of hindsight (nor can we tell if we haven’t indeed progressed to something beyond, like “post-postmodernism”).&lt;/p&gt;
&lt;p&gt;Getting at the heart of &lt;em&gt;what&lt;/em&gt; and &lt;em&gt;why&lt;/em&gt; postmodernism is remains a challenge that few thinkers have been able to face with as much brilliance and perspicacity as Fredric Jameson, notably in his &lt;a href=&quot;https://www.dukeupress.edu/postmodernism-or-the-cultural-logic-of-late-capitalism&quot;&gt;&lt;em&gt;Postmodernism, or, the Cultural Logic of Late Capitalism&lt;/em&gt; (1991)&lt;/a&gt;, which still reads as timely over 30 years later. Part of what makes this book great is that Jameson tackles not only postmodernism itself but also postmodernism &lt;em&gt;theory&lt;/em&gt;—the two have become largely synonmyous, and not without reason, but there is a wealth of insight to be gained from questioning not only the form but also &lt;em&gt;how&lt;/em&gt; we think about the form.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recJSxTLJxRnVeXpr&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recJSxTLJxRnVeXpr.BYwLkrAY_Z67PYJ.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h2&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recJSxTLJxRnVeXpr&quot;&gt;Postmodernism, or, the Cultural Logic of Late Capitalism&lt;/a&gt; &lt;/h2&gt; &lt;p&gt;Fredric Jameson&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Marxism, Philosophy, Theory &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;Very late in the book (410-418), Jameson offers a brief account of what he calls the “three stages of capitalist space,” which for me clarifies the preceding 400 pages of dense analysis and underscores how Jameson conceives the core elements of postmodernism.&lt;/p&gt;
&lt;p&gt;(This is not the place to dwell on Jameson’s style, but suffice it to say that reading him is to experience a &lt;a href=&quot;https://daniel-saunders.com/posts/lists/my-year-in-reading-2022/#archaeologies-of-the-future-the-desire-called-utopia-and-other-science-fictions&quot;&gt;constant stream of mini-epiphanies&lt;/a&gt;; his sentences need to be read and re-read to do their work on you, and in a sense you cannot fully grasp them until the very end (of the sentence, paragraph, book), at which point you must circle back to start again with that knowledge to track the thrust of the argument. It is the very model of the dialectal method he wants to instill in his readers as a form of thought adequate to confronting the “totality” that characterizes the capitalist mode of production. This kind of writing, apart from being an exhilarating challenge, is meant to awaken us out of our “dogmatic slumber” of theoretical discourse into the very materiality of language and thought itself, to fold us back into the complexities of the world so we can better understand and change it.)&lt;/p&gt;
&lt;p&gt;So, the “three stages of capitalist space”—for Jameson, this is the kind of “history by allegory” that he is so fond of; earlier in the book, he tells a similar version of this history, which he there frames specifically as a “myth” of periods of cultural production in modernity (95-96). That the concept of “myth” is the vehicle whereby we can trace the outline of the development of capitalist modernity—a covert, rather than frontal attack, philosophically speaking—is significant and clues us into the subtle operations of Jameson’s dialectical method.&lt;/p&gt;
&lt;p&gt;For Jameson, it is through this kind of suggestive narrative that we get the most basic definition of postmodernism: &lt;em&gt;it is the very form of late capitalism itself&lt;/em&gt;, the “mirror image” of our contemporary mode of production, which is different from but at the same time an outgrowth of capitalism’s previous stages. As this frame suggests, the &lt;em&gt;spatial&lt;/em&gt; is another important allegory for Jameson, one that reveals how capital operates, is registered culturally, and is &lt;em&gt;felt&lt;/em&gt; subjectively.&lt;/p&gt;
&lt;p&gt;The cultural products or ideologies of postmodernism are thus not some free-floating, independent thing; they are intimately related to, indeed are &lt;em&gt;alternative expressions of&lt;/em&gt;, the complex of forces that coalesce in that all-encompassing Marxist term, “mode of production.”&lt;/p&gt;
&lt;p&gt;Another way of saying this is that everything is both material and ideological at the same time. This is very evidently so in the case of the “market,” which is both fundamentally an ideology (in the form of economic theory) and also a material reality (as a nexus of economic and social determinants), which resists and even shapes ideological concepts. This, then, is part of what Jameson (per Marx) means by a &lt;em&gt;totality&lt;/em&gt;—an interlinked set of economic, social, cultural, and ideological forces that is quite a bit more nuanced and complex than the dogmatic “base” and “superstructure” of some vulgar Marxist explanations.&lt;/p&gt;
&lt;p&gt;If there is an agent here, the subject of the narrative of modern history, it seems to be &lt;em&gt;capital itself&lt;/em&gt;, and the &lt;a href=&quot;https://daniel-saunders.com/posts/essays/ideology-fetishism-apophaticism-marxist-criticism-and-christianity&quot;&gt;driving force is its “universalizing logic,”&lt;/a&gt; which advances through each historical stage like a wind-borne wild yeast, leading to cultural productions which are like fermentations that differ according to time and place but are “caused” by the same agent. Jameson, like the Marxists of the Lukács-Frankfurt School lineage, at times refers to this force as &lt;em&gt;reification&lt;/em&gt;—the process of everything falling under the totalizing logic of capital.&lt;/p&gt;
&lt;p&gt;The postmodern can thus be characterized as that stage of capitalism where reification has reached saturation; the totality that Marx saw as constitutive of the capitalist mode of production at its nascent stage is now fully realized.&lt;/p&gt;
&lt;p&gt;For Jameson, the only way through this murky narrative is the recovery of a critical historical faculty—something that appears to have dissolved in the postmodern, the period when we find ourselves unable to see the past as prelude to our present, or to see the present as our future’s past. On the last page of the book, Jameson finally shows his cards, and concludes with a clear and beautiful revelation of his method, one that characterizes his work as a whole:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The rhetorical strategy of the preceding pages has involved an experiment, namely the attempt to see whether by systematizing something that is resolutely unsystematic, and historicizing something that is resolutely ahistorical, one couldn’t outflank it and force a historical way at least of thinking about that. “We have to name the system”: This high point of the sixties finds an unexpected revival in the postmodernism debate. (418)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To that end, the following is my brief outline (not much more than a handful of notes) of Jameson’s own “three stages of capitalist space”—the historical narrative of capital as a mode of production (as distinct from ancient or feudal modes of production, for example), and as this mode of production comes to be expressed &lt;em&gt;as&lt;/em&gt; postmodernism.&lt;/p&gt;
&lt;p&gt;I am here using an experimental rubric which I call “Secularization,” “Structuration,” and “Saturation”; I’m playing around with the terms themselves (the second one in particular is not ideal), but as a first pass I think it accurately captures Jameson’s main thrust. (It should also be noted that most of the phrases and terms below are directly from Jameson.)&lt;/p&gt;
&lt;p&gt;Within each of the three stages, the following themes serve to focus this exercise of “&lt;a href=&quot;https://cla.purdue.edu/academic/english/theory/marxism/modules/jamesonideology.html&quot;&gt;cognitive mapping&lt;/a&gt;”:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stage of capitalism:&lt;/strong&gt; The particular nature of capital at this stage and how it operates as a variation of its own mode of production&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spatial logic:&lt;/strong&gt; A symbol for the re-organization of time and space that follows from the development of the mode of production&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Historical/cultural period:&lt;/strong&gt; The stage’s relative position on the cultural-historical spectrum of “modernism” as a late-19th to mid-20th century phenomenon&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cultural production:&lt;/strong&gt; The characteristics of the art, literature, architecture, etc. that express the logic and spatial orientation of this stage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aporia:&lt;/strong&gt; The stage’s “blind spot” on which its cultural production focuses, propelling it to the next form/stage&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;The three stages of capitalist space: Or, a journey toward reification.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Secularization (Grid)&lt;/h2&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/paris-haussmann-plan.RZQ5nDFU_eUKfn.webp&quot; /&gt; &lt;figcaption&gt;1867 Ledot Pocket Map of Paris, France&lt;/figcaption&gt; &lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stage of capitalism&lt;/strong&gt;: Classical (market) capitalism—the emergence of world markets and a system of production based on wage labor. “Exchange value” supersedes “use value” as the “goal” of production, leading to the inscription of universality and equivalence into the cycle of production, exchange, and distribution&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spatial logic&lt;/strong&gt;: &lt;em&gt;Grid&lt;/em&gt;—the reorganization of sacred/primordial space into “geometric, Cartesian homogeneity.” Into this “space of infinite equivalence” is born the bourgeois subject and the ideological ideals of property and juridical rights—what Marx derided as “Freedom, Equality, Property, and Bentham.” In other words, the universal logic of the market begins to erode the uneven spaces of pre-modern and religious history; in its place, it sets up the ideals of freedom and equality, which are mirror images of the commodity form.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Historical/cultural period&lt;/strong&gt;: Enlightenment modernity, pre-modernism (mid-18th to late-19th century)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cultural production&lt;/strong&gt;: The Enlightenment theme of demystification/desacralization; the “gap” left by the replacement of older ways of life by capital; the impulse to depict “real life” in the face of the ravages of industrialization and proletarianization, as expressed in the great realist artists (Zola, Balzac, Ibsen)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aporia&lt;/strong&gt;: “Problems of figuration” in reconciling with the new spatial logic that only become apparent later; how socialism (as a triumph of Enlightenment ideals) is to be born in a world in the grip of capital.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Structuration (Network)&lt;/h2&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/paris-le-corbusier.DV14jK6i_VhfdS.webp&quot; /&gt; &lt;figcaption&gt;Plan Voisin in Paris, Le Corbusier&lt;/figcaption&gt; &lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stage of capitalism&lt;/strong&gt;: The transition from market to monopoly capitalism—what Lenin called the imperialist stage of development. Capital extends over the globe at the same time that it is concentrated in the hands of a few national powers, leading to a vast interconnection of value chains.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spatial logic&lt;/strong&gt;: &lt;em&gt;Network&lt;/em&gt;—The ever-expanding “new colonial network” of the market and the media creates a contradiction between the lived experience of the individual and the massive structures that are emerging as subterannean drivers of social reality (and which are now revealed to have been there the whole time). This is a time of fracturing, of explosion, of the “&lt;a href=&quot;https://press.princeton.edu/books/hardcover/9780691146393/the-age-of-the-crisis-of-man&quot;&gt;age of the crisis of man&lt;/a&gt;,” of the old existing alongside the new, and of the global “uneven development” which reinforces colonial dependencies. &lt;br /&gt;&lt;br /&gt;This dizzying parallax of experience prompts intellectual responses that seek to make sense of systemic complexity—Freudianism, existentialism, structuralism—but all of these still focus on the bourgeois individual and the subject’s misplacement in these structures (alienation). The Althusserian branch of Marxism attempts its own critique of these responses, but also remains indelibly tied to the framing of structuralism.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Historical/cultural period&lt;/strong&gt;: High modernism (early to mid-20th century)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cultural production&lt;/strong&gt;: Simultaneous existence or overlap of multiple temporalities (&lt;a href=&quot;https://daniel-saunders.com/posts/notes/the-age-of-extremes&quot;&gt;feudalism in the countryside, modernism in the cities&lt;/a&gt;), an unprecedented situation which leads to an emphasis on the &lt;em&gt;Novum&lt;/em&gt;, a completely new way of being; Utopia as a literally realizable ideal in architectonic artistic “works,” which are suffused with an authorial will; figuration based on the dissolution of the “privatized middle-class life,” as bourgeois subjectivity is confronted with the strucutral complexity of the world system. From Joyce in literature to Le Corbusier in architecture to Picasso in painting; Pound’s exhortation to “make it new”.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aporia&lt;/strong&gt;: Utopia as ultimately unrepresentable in art, which is the counterpart of the failure of 20th century state socialist projects; the paradox of “monadic relativism,” which Jameson describes thus—“a representation of the social totality now must take the (impossible) form of a coexistence of those sealed subjective worlds and their peculiar interaction, which is in reality a passage of ships in the night, a centrifugal movement of lines and planes that can never intersect” (in other words, art in the “in-between” land of ironic detachment, where no resolution of paradox is possible, a mood and technique perfected by masters like Thomas Mann).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Saturation (Quantum Field)&lt;/h2&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/paris-disneyland.DAFP2lES_ZT3lSS.webp&quot; /&gt; &lt;figcaption&gt;Disneyland Hotel, Paris&lt;/figcaption&gt; &lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stage of capitalism&lt;/strong&gt;: Late or neoliberal capitalism—the triumph of consumer society; capital in perpetual crisis and motion; the invasion of capital into all economic, social, and personal spheres (akin to what David Harvey calls the “spatial fix”); market capture of political governance; capital as subject of history.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spatial logic&lt;/strong&gt;: &lt;em&gt;Quantum Field&lt;/em&gt;—Jameson doesn’t use this term and I’m not confident I’m using it correctly either, but quantum theory is the closest analogy I could come up with for what Jameson describes as a “multidimensional set of radically discontinuous realities, whose frames range from the still surviving spaces of bourgeois life all the way to the unimaginable decentering of global capital itself…not even Einsteinian relativity…is capable of giving any kind of adequate figuration to this process” (412). Elsewhere in the book, Jameson describes this “hyerspace” as “smooth,” “reflective”, “saturated” (think glossy magazine photos or the Westin Bonaventure Hotel); it “suppresses distance” and maintains a multiplicity of overlapping and nested contexts that occupy the same space (think the Internet). &lt;br /&gt;&lt;br /&gt;Like a quantum phenomeon, there is seemingly no external basis for its form; rather, it is in the fundamentally contradictory situation of creating its own ground of being. The effect of all this is to obliterate the formerly solid boundaries of the bourgeois subject and the diachronic sense of history; what emerges now is a fragmented subjectivity that knows only the immediacy of incompatible synchronicities, or in other words, the &lt;a href=&quot;https://www.penguinrandomhouse.com/books/305132/anti-oedipus-by-gilles-deleuze-and-felix-guattari-preface-by-michel-foucault-introduction-by-mark-seem-translated-by-robert-hurley-mark-seem-and-helen-r-lane/&quot;&gt;Deleuzian schizophrenic&lt;/a&gt;. The tools of structuralism appear to be no longer useful, because the foundation on which they stood no longer exists.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Historical/cultural period&lt;/strong&gt;: Postmodernism (mid-20th to 21st century)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cultural production&lt;/strong&gt;: The bulk of Jameson’s book is dedicated to exploring the characteristics of postmodernist cultural production, so I can only give a few brief highlights here. Besides the more well-known features or techniques of postmodernist art—pastiche, bricolage, play, imitation, deconstruction, relativism—Jameson focuses primarily on the concept of intertextuality (although he doesn’t like the term). In postmodernism, “works” have been replaced by “texts” (of any medium); unlike the terrible authorial burden of modernist works, the production of texts offers relief, because everything now is simply a comment on something else, rather than a radically new insertion into the stream of history. &lt;br /&gt;&lt;br /&gt;In contrast to modernism’s obsession with temporality and Utopia, the brute force of the &lt;em&gt;spatial itself&lt;/em&gt; here wins out: texts exist all at once in relation to all other texts; hiearchy gives way to precedence in an interminable series of which any element might be the starting point for a new series. There is no escape from the self-reflexivity of texts; everything ends up as an advertisement. &lt;br /&gt;&lt;br /&gt;But this last concept of “wrapping” is probably the most interesting and potentially radical technique of postmodernist art. Jameson’s primary example here is of &lt;a href=&quot;https://archeyes.com/frank-gehry-house-santa-monica/&quot;&gt;Frank Gehry’s house in Santa Monica&lt;/a&gt;, an “attempt to think a material thought,” in which a wall of hodgepodge materials literally wraps around a modernist suburban home. Regardless of the medium, successful wrapping pushes the boundaries of postmodern cliches at the same time that it recapitulates them—wrapping dissolves unities, opens up new vantages, and renews perception in potentially radical ways.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aporia&lt;/strong&gt;: To think the unthinkable thought, to systemize the unsystemizable, to renew historical analysis, to break out of “capitalist realism” with a renewal of revolutionary politics—goals shared by Marxist critique, science fiction novels, and other radical experiments challenging the boundaries of capitalism.&lt;/li&gt;
&lt;/ul&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>The Christ of Nikos Kazantzakis</title><link>https://daniel-saunders.com/posts/essays/the-christ-of-nikos-kazantzakis/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/essays/the-christ-of-nikos-kazantzakis/</guid><description>Nikos Kazantzakis’ towering literary output reflects a lifelong effort to articulate both spiritual and political radicalisms—embodied in the figure of Christ.</description><pubDate>Sat, 08 Apr 2023 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/kazantzakis-featured.BJ2m8GuF_Z2XCAN.webp&quot; /&gt; &lt;figcaption&gt;Nikos Kazantzakis in his study.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;Few atheists have been as Christ-haunted as Nikos Kazantzakis (1883–1957), the Greek writer perhaps best known as the author of &lt;em&gt;Zorba the Greek&lt;/em&gt; and &lt;em&gt;The Last Temptation of Christ&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Besides being the eponymous (and infamous) protagonist of the latter novel, Christ appears as a subject or driving idea of numerous personal letters, plays, and novels, standing alongside the similar self-actualizing figures of Buddha, Nietzsche, and Lenin as one of Kazantzakis’ guiding luminaries.&lt;/p&gt;
&lt;p&gt;As is evident from this eclectic list, Kazantzakis was a complex individual with often contradictory views. Like one of his other heroes, Odysseus, he was a volatile itinerant, liable to be misunderstood by his contemporaries and by later readers. Called a Bolshevik by the right and a bourgeois mystic by the left—both accusations he partly welcomed—Kazantzakis was a political writer who aimed his political art at something beyond the purview of everyday factionalism.&lt;/p&gt;
&lt;h2&gt;The Transubstantiation of Flesh into Spirit&lt;/h2&gt;
&lt;p&gt;Kazantzakis’ towering literary output reflects a lifelong effort to articulate both spiritual and political radicalisms, for which the figure of Christ is often the embodiment. What his &lt;a href=&quot;https://press.princeton.edu/books/paperback/9780691128801/kazantzakis-volume-1&quot;&gt;biographer Peter Bien&lt;/a&gt; calls an “eschatological politics” found expression in his art, in his participation in political activities, and in his idiosyncratic faith—which, while atheistic, never truly left a Christian orbit. Flitting between various forms of partisanship throughout his life, Kazantzakis never arrived at an exterior home for his beliefs. Instead, argues Bien, he sought a particular form of “personal salvation by political engagement,” in which the self-conscious Nietzschean individual, remade by a tragic acceptance of life, brings his worldly actions into harmony with the ever-progressing evolution of an immanent Spirit.&lt;/p&gt;
&lt;p&gt;This was the new post-Christian religion Kazantzakis developed from the philosopher Henri Bergson, whose lectures he attended in Paris in 1908. Bergson’s concept of a vital force directing the evolution of all matter toward spiritual refinement—the “transubstantiation of flesh into spirit,” in Bien’s phrase—became the overarching obsession of Kazantzakis’ life and art. This belief, far from being a source of consolation, was rather an attempt to make sense of his chaotic struggle with the material world, most especially in the failures he experienced in politics. Crucially, the “eschatological” element of his mature worldview meant that Kazantzakis pessimistically deferred the transformative rebirth of all structures and values that he so desired until a future always just beyond reach—a consequential view which I will consider more below.&lt;/p&gt;
&lt;p&gt;It must be emphatically stated up front that while Kazantzakis’ philosophical and political views often aimed at a radical transformation of exploitative systems in ways that overlap with positive social change (he remained committed to socialism as an ideal throughout his life), I don’t think they offer any kind of model to emulate. The suspect nature of his Bergsonian-Nietzschean system of values is readily seen in his early belligerent nationalism, his frequent praise of violent force, and his one-time attraction to Italian fascism.&lt;/p&gt;
&lt;p&gt;Such dangerous chauvinism attested to the belief that the modern soul was caught in a “transitional age,” a time marked by decadence of the spirit that must be overcome through the assertion of new universal myths and values. Like his contemporary Thomas Mann, Kazantzakis was a child of the &lt;em&gt;fin de siècle&lt;/em&gt;; both writers detested the “sickliness” and “flabbiness” of nineteenth-century liberal-bourgeois civilization and yearned for a violent, decisive transformation that would remake the world. Although both mellowed in their later years and displayed varying degrees of remorse for their earlier contributions to the twentieth-century conflagration that found its basis in such apocalyptic views, it is telling that they vacillated so easily between the left and right on their political journeys. Kazantzakis’ politics tended to laud the &lt;em&gt;form&lt;/em&gt; of cataclysm and renewal, apart from any content. Yet, like Mann, his ambivalence in political matters, despite its manifestations which are so off-putting today, is paradoxically the source of his artistic strength.&lt;/p&gt;
&lt;h2&gt;Literature as Contradiction and Cry&lt;/h2&gt;
&lt;p&gt;Kazantzakis’ life was an &lt;em&gt;agon&lt;/em&gt;, the journey of an unsettled radical through the many contradictions of politics, religion, and the artistic life. His great value as a writer is that he enshrined these contradictions in his own narratives. These remain a profound source of reflection for contemporary religious faith at the intersection of social and political transformation.&lt;/p&gt;
&lt;p&gt;Two novels in particular, both written in view of the Nazi occupation of Greece and the subsequent Greek Civil War (1943–1949), use Christ and Christian imagery to explore these themes, and it is on these that I want to focus rather than the more popular &lt;em&gt;Last Temptation&lt;/em&gt; (whose Jesus is more concerned with religious belief as such and its corresponding psychological questions than with political questions). &lt;em&gt;Christ Recrucified&lt;/em&gt; (composed in 1948, translated as &lt;em&gt;The Greek Passion&lt;/em&gt; in English) and &lt;em&gt;The Fratricides&lt;/em&gt; (composed in 1949) are mirrors of each other, the former wrapped in a mythical shell and the latter reduced to the bare elements of realism (a genre Kazantzakis otherwise detested), but both encompassing Kazantzakis’ political and spiritual preoccupations. Both feature Christ-like protagonists caught in the middle of a web of destruction: brother devouring brother, Greek fighting Greek, communists, nationalists, and apolitical bystanders all bent on self-annihilation. In these two novels, character and plot bring together all of Kazantzakis’ previous experiences and political fluctuations.&lt;/p&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recOSKuqY6R4S4kwJ&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recOSKuqY6R4S4kwJ.DZ3C6D0h_D7YGh.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recOSKuqY6R4S4kwJ&quot;&gt;Christ Recrucified&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Nikos Kazantzakis&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recLhQzLKlAoe2yaR&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recLhQzLKlAoe2yaR.BGB6MXzQ_Wcfyr.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recLhQzLKlAoe2yaR&quot;&gt;The Fratricides&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Nikos Kazantzakis&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;What happens in his art as a result is perhaps beyond even Kazantzakis’ control. Although he undoubtedly wished to inscribe the “lesson” of his philosophical commitments in his novels, the Christ figure complicates all easy readings. What is certain is that Christ is the figure who upends, who remakes, who stands exactly at the unbearable point of transition to a new age, the contradiction between present reality and future possibility.&lt;/p&gt;
&lt;p&gt;As such, Christ is the embodiment of political and spiritual struggle, a figure whose actions represent a cry (&lt;em&gt;kravgí&lt;/em&gt;) of solidarity with the broken world which is simultaneously a cry of desperation and hope. The cry was for Kazantzakis the only worthy artistic and spiritual act in a world that had crushed all material attempts to remake it; more than anything, it was his way of communicating to future generations of readers that they too must take up the urgency of the task that he and his generation could not complete.&lt;/p&gt;
&lt;h2&gt;The Four Great Pillars of the World&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Christ Recrucified&lt;/em&gt; is a many-layered novel which at first appears to follow a simple schema. Lycóvrisi is a fictional village in Anatolia circa 1922, where Greeks live in uneasy subjection to their Ottoman rulers. The village is preparing an ambitious reenactment of the Passion for Holy Week, and its elders select villagers to incarnate the apostles—the shepherd Manoliós as Christ, the high-born Mihelís as John, the traveling merchant Yannakós as Peter, the cafe owner Kostandís as James. Almost immediately, these modest villagers inhabit their roles quite literally, sparking conflict with the elders, who, for their part, are drawn as caricatures of the deadly sins and represent the dominant institutions—the wrathful local Orthodox priest, Father Grigóris; the gluttonous hereditary &lt;em&gt;archón&lt;/em&gt; Patriarchéas; the “arch-miser,” Ladás; the cowardly schoolmaster, Hadji-Nikolís.&lt;/p&gt;
&lt;p&gt;The conflict between the groups quickly comes to a head with the arrival of Greek refugees to the village. Here the novel echoes an historical event that played a momentous role in Kazantzakis’ life. Since the Greek War of Independence in the early nineteenth century, irredentist nationalists had been motivated by the &lt;em&gt;Megáli Idéa&lt;/em&gt;, the “Great Idea” that would restore the dominion of the Byzantine Empire by retaking “Greek” lands currently ruled by Turks. Foremost on the agenda was the recapture of the region of Anatolia (the Western part of modern Turkey).&lt;/p&gt;
&lt;p&gt;The inflammatory rhetoric took on renewed significance after the First World War, when Allied support promised decisive action against the crumbling Ottoman Empire. The Greeks made inroads into Anatolia in 1919, sparking a war with the fledgling Turkish National Movement. Kazantzakis was firmly in the nationalist camp at this time in his life, but what happened in 1922 dealt an irreparable blow to the &lt;em&gt;Megáli Idéa&lt;/em&gt; and is &lt;a href=&quot;https://greekreporter.com/2021/09/10/fire-smyrna-darkest-moment-greek-history/&quot;&gt;still considered the greatest catastrophe&lt;/a&gt; to befall modern Greece. Late in that year, Mustafa Kemal Atatürk drove across Anatolia and set fire to the city of Smyrna (İzmir), precipitating a wave of over one million refugees across the Mediterranean.&lt;/p&gt;
&lt;p&gt;In &lt;em&gt;Christ Recrucified&lt;/em&gt;, Kazantzakis uses the arrival of similar war-torn Greek refugees to Lycóvrisi as the impetus for the spiritual and political conflict that forms the core of the novel. On the meta level of Kazantzakis’ Bergsonian philosophy, Peter Bien reads the refugees as synonymous with the evolution of Spirit; they arrive at the beginning of the novel, endure a crucible, and continue on their way at the close, propelled in a never-ending transformation. Such a reading is strengthened by Kazantzakis’ identification with the leader of the refugees—the inspired but outsider priest Fótis, “unconquerable, great-souled”—who acts as a thematic counterpart to Manoliós’ Christ.&lt;/p&gt;
&lt;p&gt;Fótis, whose name recalls the elemental “gladdening light” (&lt;em&gt;Fόs Ilarόn&lt;/em&gt;) of the Orthodox vesper hymn, is Kazantzakis’ ideal Nietzschean hero, one who in full self-actualization battles with materiality and loses, and yet whose unbending witness allows the “transubstantiation of flesh into spirit” to continue unto further generations. Reading the novel purely as a philosophical exercise as Bien does, however, misses the pathos that arises from the novel’s structure and plot. These point to a deeper concern with the profoundly personal and spiritual nature of political struggle, where neighbor is set against neighbor.&lt;/p&gt;
&lt;p&gt;Fótis and the refugees encamp on a mountain above the village, near a chapel of Elijah, the saint whose chariot of fire harmonizes with Fótis’ elemental light. Having been deprived of everything, they implore the village for simple necessities—food, shelter from the coming winter, land to sustain themselves—which all go ignored. At the midpoint of the novel, the elders, the group of apostles, the villagers, and the refugees all find themselves on the mountain during the festival of Elijah. There, the growing conflict is uncovered by Manoliós, who is transfigured into Christ in the eyes of the villagers.&lt;/p&gt;
&lt;p&gt;Manoliós implores the villagers to follow the example of Christ—to clothe the poor and feed the hungry, to give a tenth of their labor to the refugees to sustain them—and wonders why belief in an eternal afterlife does not spur them to righteous action in this life. Their selfish attachment to material goods has caused them to blaspheme against Christ. The villagers are initially shocked, but they gradually come to realize that Manoliós is speaking the truth. The anxious elders try to interrupt this Sermon on the Mount and the spell being placed over the villagers, claiming:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There’s nothing now but grievances, scandals, thefts. The poor have grown bold and wish to raise their heads, the rich cannot sleep.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Against such impudence, the village priest, Father Grigóris, derides the crowd and cries:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The world, remember, rests on four pillars. Along with faith, country, and honor, the fourth great pillar is property: don’t lay hands on it! (260)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This scene is another familiar specter from Kazantzakis’ life. In the middle 1920s, when Kazantzakis considered himself a revolutionary communist and was becoming enamored with the Soviet experiment, his hometown of Iráklio on Crete was the setting for an almost verbatim exchange between the authorities and a group of radicals. After the defeat of Greek nationalism in Anatolia, many veterans returned home radicalized and tried to foment communist movements in local areas. It appears from biographical documents that Kazantzakis personally tutored a group of these communists, whom he lauded as true “fishers of men.” The incident turned into a public scandal when the local press denounced Kazantzakis and the group as “against worship of God, against respect for the family, against obedience to the law, against love of the fatherland, and against respect for private property.” Kazantzakis agreed, and derided the bourgeois morality that claimed Christian values but that was in reality “always the image and likeness of the class that dominates” (Bien vol. 1, 94).&lt;/p&gt;
&lt;p&gt;Like Kazantzakis in Iráklio, the itinerant priest Fótis and the refugees are condemned as “Bolsheviks” for occupying a position outside the bourgeois order of religion, nation, honor, and property. And both accept the label insofar as it names the demand for “new foundations,” the making of a new spiritual humankind by tearing down the false idols of superficial morality and petrified values—a Nietzschean quality Kazantzakis ascribed specifically to Lenin.&lt;/p&gt;
&lt;p&gt;In this sense, religion betrays its own radical instinct, substituting its origins based in material transformation for the comfortable hypocrisy of class position. &lt;em&gt;This&lt;/em&gt; is the atheism that is an affront to the person of Christ. What is needed is the hammer of “Bolshevism” to break the hold of the “four great pillars of the world.” The novel’s true genius is that it imbues this theme with a mythic timelessness by layering multiple eras and places into one, superimposed narrative of radical social-religious struggle. I think that this layering device counteracts the unsavory Nietzschean undertones of Kazantzakis’ philosophy, and instead leaves us to grapple with the inherent contentiousness of the Gospel itself.&lt;/p&gt;
&lt;h2&gt;The Politics of the Passion&lt;/h2&gt;
&lt;p&gt;There are at least three spatio-temporal layers in &lt;em&gt;Christ Recrucified&lt;/em&gt;. First, of course, there is the timeframe of the novel’s &lt;em&gt;“mythic” base&lt;/em&gt;, the Gospels and the historical Jesus. Then there is the timeframe of the novel’s &lt;em&gt;plot&lt;/em&gt;, which replicates the nationalist upswell of the Mediterranean in the 1920s. Finally, there is the timeframe of the novel’s &lt;em&gt;composition&lt;/em&gt;—the era of the Greek Civil War two decades later, in which the Communist Party of Greece was effectively decimated by anti-communist Western forces. (Kazantzakis was publicly on the side of the losing Communists.) This contemporary event also forms the direct setting for the plot of the novel &lt;em&gt;The Fratricides&lt;/em&gt;, which features another unruly priest named Yánaros.&lt;/p&gt;
&lt;p&gt;Father Yánaros is pulled between the communist guerrillas holed up in the mountains and the anti-communist brigades that defend his town below. If the priest Fótis is the positive model of Kazantzakis’ philosophical-political Christ, Yánaros is the negative. Haunted by visions of “the Great Comforter Lenin” and the supersession of Christian faith by atheistic materialism, on the one hand, and the destructive nihilism of fascist anti-communism on the other, his futile &lt;em&gt;kravgí&lt;/em&gt; for a world of justice and harmony ends in ineffectual silence.&lt;/p&gt;
&lt;p&gt;Like Kazantzakis’ other Christs, Yánaros—who “looked at his guts and the guts of the world and was sickened”—also longs for the world to be purified, but, in the reverse Bergonsian formula, he is defeated by the downward-driving cycle of destructive matter that inhibits the upward motion of Spirit. Christ is recrucified here, too—just as the &lt;em&gt;Megáli Idéa&lt;/em&gt; and Greek communism had been crushed—when Yánaros is murdered by the guerrillas on Easter in a brutally ironic scene. The pessimism of &lt;em&gt;The Fratricides&lt;/em&gt; is a more accurate representation of Kazantzakis’ attitude toward political affairs by the late 1940s. For this Kazantzakis, no human philosophy or political program—and he had tried many—offered any hope of radical renewal. The only possibility of transformation was eschatological and apocalyptic.&lt;/p&gt;
&lt;p&gt;However, this is not where the art itself stops. These two contemporary timeframes allowed Kazantzakis to speak directly to his own experience and the tumult of his own times, and thus they shed partial insight on his politics. But returning to the first timeframe of the Gospels themselves as it echoes in the novel &lt;em&gt;Christ Recrucified&lt;/em&gt; reveals a latent radical hope, which perseveres despite Kazantzakis’ personal pessimism. I contend that, apart from Kazantzakis’ idiosyncratic philosophy, the mythic layering of &lt;em&gt;Christ Recrucified&lt;/em&gt; invites us to understand the radical political implications of the Passion narrative itself, and how it resurfaces again and again as a symbol of social transformation.&lt;/p&gt;
&lt;p&gt;The actions of the Christ-figures Manoliós and Fótis, and their confrontations with the reigning institutions of power, point to the inherently political shape of Jesus’ life and death. There is a common way of presenting this political aspect of the life of Jesus, especially in progressive discourse, that manages to be both anachronistic and reductive: &lt;a href=&quot;https://www.goodreads.com/en/book/show/17568801&quot;&gt;according to this version&lt;/a&gt;, Jesus was a dark-skinned, first-century Palestinian who bravely resisted a hegemonic Empire through an act of rebellion. Although such a sloganized formulation may have limited use today for a politics of identity, it seems to me to mischaracterize the more complex and contradictory layers of the Gospel narrative. At the very least, it is liable to the ambiguity that characterizes identity: Jesus can be, and is, just as easily appropriated for chauvinistic nationalism on the Right. In contrast, Kazantzakis’ Christ narrows and at the same time deepens the frame.&lt;/p&gt;
&lt;p&gt;For Kazantzakis, the real struggle the Gospels narrate is not of an abstract revolutionary against an abstract Empire—aptly symbolized and passed over in &lt;em&gt;Christ Recrucified&lt;/em&gt; by the agha, the sanguine and Pontius Pilate-like Ottoman overruler of Lycóvrisi who cares nothing for the Greek refugee affair—nor is the struggle primarily religious. There is no separation between the religious and the political; both are united in an insistence on the destruction of the old and the birth of the new (another point of overlap between Christ and Lenin). Rather, the struggle occurs &lt;em&gt;within the prevailing social reality&lt;/em&gt;, whose boundaries encompass the family, church, state, in fact all of everyday life: brother against brother, son against father, the faithful against the hypocritical, the radical against the ossified. This is the struggle of a normally invisible social reality &lt;em&gt;with and against itself&lt;/em&gt;, not of a community with an outside force—and a struggle that breaks the occluding mists of ideology to take place out in the open.&lt;/p&gt;
&lt;p&gt;The deeply personal questions of “who provides,” “who benefits,” and “who decides” the issues of material life—questions Manoliós and his disciples raise simply by taking on the plight of the refugees—are those which outline what can only be called a class struggle. If the figure of Christ can be adapted into any factional view, this is a Christ which lies beyond all such attempts and yet fundamentally embodies the cry of the poor. Not only the hypocrisy but also the futility of those who defend the “four pillars of the world” are revealed in the harsh light of Gospel truth. These are tied to the way of death, whereas Christ brings new life.&lt;/p&gt;
&lt;p&gt;Christ is thus a paradox: in confronting the “class that dominates,” Christ appears as the true God who breaks the atheistic pillars of the world and reorients the people to divine justice. But in a striking dialectical reversal, it is precisely this confrontation which makes Christ &lt;em&gt;himself&lt;/em&gt; the atheist from the standpoint of the four pillars—which is in fact the more compelling standpoint, because it is the one that arises from objective social relations anchored in history. (Remember also that the early Christians were accused of being atheists for refusing to worship the Imperial cult.) Despite their yearly Passion Play, the villagers of Lycóvrisi have &lt;em&gt;in fact&lt;/em&gt; lived in subjection to the four pillars by virtue of their inherently oppressive class structure, of which religion is a major part. Christ is the social nexus where ideology is revealed &lt;em&gt;as&lt;/em&gt; ideology; Christ is the one who transvaluates all values. In an unequal class society, that means Christ is necessarily a Bolshevik.&lt;/p&gt;
&lt;p&gt;Further, this Christ consciously understands the enormous stakes of challenging the four pillars. Christ is not recrucified because of opposition to “the world” or to authority &lt;em&gt;per se&lt;/em&gt;. Rather, Christ is put to death &lt;em&gt;by leaders in his own community&lt;/em&gt; in retaliation for the fact that “the poor have grown bold” and have attacked the foundation of worldly power—because to attack the foundation &lt;em&gt;is&lt;/em&gt; the Gospel. But what is being attacked is the reality of hate and domination itself, the destruction of which is the only way to release the cry, to end the division of class struggle, out of a commitment to a greater power. This calls to mind a saying by the great Dominican-Marxist priest, Herbert McCabe, &lt;a href=&quot;https://www.youtube.com/watch?v=QCqHnwIR1PY&amp;amp;ab_channel=TheUniversityofEdinburgh&quot;&gt;as told by Terry Eagleton&lt;/a&gt;: “If you don’t love, you’re dead, and if you do, they’ll kill you.”&lt;/p&gt;
&lt;p&gt;This is why Kazantzakis places the same bloody denouement of &lt;em&gt;Christ Recrucified&lt;/em&gt; in a church, just as in &lt;em&gt;The Fratricides&lt;/em&gt;. Things turn quickly for Manoliós when the authorities make a concerted effort to silence him after the refugees, emboldened by the incident on the mountain, decide to raid the village. Father Grigóris interrogates Manoliós in the village church on Christmas (the subtly altered counterpart to Easter in &lt;em&gt;The Fratricides&lt;/em&gt;) while the crowd calls for his death. After repeated accusations of Bolshevism for his standing by the refugees, Manoliós answers: “If Bolshevik means what I have in my spirit, yes, I am a Bolshevik, Father; Christ and I are Bolsheviks.” In the following moments, Manoliós is lynched in the church by Christians. But unlike the bitter and pessimistic ending of &lt;em&gt;The Fratricides&lt;/em&gt;, here the martyrdom allows Fótis and the refugees to escape. They have not succeeded in destroying the foundation of the old world, but they have not perished, either.&lt;/p&gt;
&lt;h2&gt;Kazantzakis Against Kazantzakis&lt;/h2&gt;
&lt;p&gt;What are we to make of Kazantzakis’ agonized writings? The novels are worth reading, although there is much in them to view critically. Kazantzakis placed a foolish hope in martyrdom for martyrdom’s sake; his Bergonism took St. Paul’s admonishment in 1 Corinthians literally: “the seed you sow does not germinate unless it dies.” Kazantzakis adopted a tragic outlook of politics because all of the factions he had participated in failed. He and his characters can only utter a &lt;em&gt;kravgí&lt;/em&gt;, a blind cry of despair and hope, before being snuffed out. Their true hope is eschatological, and in that sense they are excused from the nightmare of history. Their only authentic action is to &lt;em&gt;endure&lt;/em&gt; in the struggle that extends to future generations.&lt;/p&gt;
&lt;p&gt;But as later readers of Kazantzakis, I think we are in a position to appreciate his art as a vessel that keeps the flame of radical, even utopian transformation alive. An eschatological horizon can impart a necessary goal toward which efforts at socialist transformation can strive, but it does not mean resignation to tragic endurance. Stasis and immobility is death, in politics as in religion, as the defenders of the four pillars evince. Against Kazantzakis’ own personal beliefs, the world is not remade in an instant or in an apocalyptic end to a “transitional age.” Rather, this remaking requires patient and active work to realize.&lt;/p&gt;
&lt;p&gt;This is the power of Kazantzakis’ Christ: he is a figure who shows that this is a process that can be carried forth from within the seemingly closed and unquestionable system of the existing social fabric, drawing from past struggles and extending them to the future. This is a Christ who by his very nature is a contentious challenge to the atheism of the four pillars of the world, the forces that destroy and oppress life.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>New Site Typeface: Brix Sans</title><link>https://daniel-saunders.com/posts/notes/new-site-typeface-brix-sans/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/new-site-typeface-brix-sans/</guid><description>Add a summary</description><pubDate>Sun, 26 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;aside&gt; &lt;div&gt; &lt;span&gt;Context&lt;/span&gt; &lt;/div&gt; &lt;div&gt; &lt;p&gt;This post references a previous design/version of this website.&lt;/p&gt; &lt;/div&gt; &lt;/aside&gt;
&lt;p&gt;Choosing the right typeface for a website or project is an inexact science that often seems wholly subjective or arbitrary. For me, it’s a mostly intuitive process that involves a lot of trial and error. But sometimes things just click.&lt;/p&gt;
&lt;p&gt;That’s how I felt about choosing to re-typeset this site in &lt;a href=&quot;https://www.hvdfonts.com/fonts/brix-sans&quot;&gt;Brix Sans&lt;/a&gt;, a fantastic sans-serif from the Berlin-based studio HvD Fonts. For many, HvD might be synonymous with &lt;a href=&quot;https://typ.io/fonts/brandon_grotesque&quot;&gt;Brandon Grotesque&lt;/a&gt;, that darling geometric sans which graced every single best-selling book cover, hip new eatery logo, design-forward product, and boutique website from about 2010 to 2015 (granted, I don’t see it as much anymore). But primary designer Hannes von Döhren consistently puts out some real gems that can easily win a featured spot in a designer’s typographic arsenal. (These fonts don’t break the bank either — licensing for single styles runs from about €15 to €35 for most typefaces, which is more affordable than many foundries.)&lt;/p&gt;
&lt;p&gt;Brix Sans is one of my favorite typefaces, period. It’s been around since 2014, but I don’t see it in use much on the web, which doesn’t make sense to me because I think it reads far better on screens than many commonly used sans typefaces. (And it has &lt;em&gt;a lot&lt;/em&gt; more character than the ubiquitous tech favorites Inter or “System UI”.) An exception is the HvD website itself, which uses Brix Sans as its primary typeface — which tells me something about its quality. If it’s the designer’s favorite, it’s definitely special.&lt;/p&gt;
&lt;p&gt;HvD &lt;a href=&quot;https://www.hvdfonts.com/fonts/brix-sans&quot;&gt;describes the typeface like this&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The concept was to create a pure, distinctive and timeless typeface for the digital age: a typographic tool “from designers for designers” with a maximum of clarity, precision, legibility and unique — some might say German — character. A simple, essential and fluid visual language at first glance, Brix Sans reveals countless subtle, handcrafted and vivid details that its designers call “heart and soul.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Well, that’s a lovely description, and those are things that I strive for in my design work constantly. So it’s a perfect fit.&lt;/p&gt;
&lt;h2&gt;Self-Hosting Fonts&lt;/h2&gt;
&lt;p&gt;The other main reason I wanted to update the typeface(s) on this site (I’m also using &lt;a href=&quot;https://www.jetbrains.com/lp/mono/&quot;&gt;JetBrains Mono&lt;/a&gt; for code syntax highlighting) was so that I could self-host font files. Previously, I had been using Adobe Typekit/Fonts and Google Fonts for this and a few other sites, mostly out of laziness. The immediate access you get to hundreds of professionally crafted fonts through Adobe works well when designing in Adobe applications like Illustrator and InDesign. And there are dozens of great, workhorse fonts available for free via Google Fonts. But when you try to use these companies’ own font services on the web (in the form of the embedded source links they provide), there are two major problems and one philosophical principle to consider.&lt;/p&gt;
&lt;p&gt;The first problem is ethical: ceding control of any kind to massive corporations with terrible track records like Adobe and Google is a bad idea, even if they don’t directly breach privacy laws through their font services (although it appears, unsurprisingly, that Google in fact &lt;a href=&quot;https://www.brycewray.com/posts/2020/08/google-fonts-privacy/&quot;&gt;does breach European privacy laws&lt;/a&gt; with its fonts API). For me, it’s also about extracting as much of my design work as I can from an ecosystem that is built on harmful and monopolistic capitalist practices that ultimately redound to the power and gain of those same terrible corporations. It’s too easy to forget that digital fonts are software products made by people and studios, and the less we can rely on giant corporate middlemen to facilitate our use of them on the web, the better the design industry will be.&lt;/p&gt;
&lt;p&gt;The second problem is performance: it’s just faster to load fonts on a site when you’re doing it yourself, and if you do it correctly, you can minimize or avoid entirely that dreaded &lt;abbr&gt;FOIT&lt;/abbr&gt;/&lt;abbr&gt;FOUT&lt;/abbr&gt;. I learned a lot about this from many of Zach Leatherman’s posts about developing &lt;a href=&quot;https://www.zachleat.com/web/css-tricks-web-fonts/&quot;&gt;loading strategies for self-hosted fonts&lt;/a&gt;. Most of these tactics are easy to implement and should be a baseline when using fonts from Google Fonts or any other source.&lt;/p&gt;
&lt;p&gt;(As an aside, it’s hilarious to me that Google’s own embedded fonts API gets tagged as a “render-blocking resource” when you run a Google Lighthouse performance audit. In other words, Google’s method for providing fonts fails Google’s own performance test.)&lt;/p&gt;
&lt;p&gt;And finally, there’s the philsophical principle: that graphic and web designers should just be in the practice of licensing fonts ourselves, whenever financially feasible and whenever a project allows it. As type designers and typographers constantly remind us, fonts are software products as well as artistic/service products, and designers should think of them as they would any other design tool or asset. Shelling out $100–$200 to license unique, professional-grade fonts for a project is a relatively small price to pay for the sense of ownership and control over a tool which Adobe and Google can never give.&lt;/p&gt;
&lt;p&gt;Supporting small type foundries whenever you can also helps keep those designers independent and producing more cool fonts. I don’t know the exact economics for type designers in terms of direct licensing vs. licensing through something like Adobe Fonts, but I suspect it’s probably akin to selling an album directly on Bandcamp vs. making an album available for streaming on Spotify. Not only is the first option a more human and connected way to do it, the creators probably get a greater financial benefit when you buy to own. And we cut out the middleman.&lt;/p&gt;
&lt;h2&gt;Favorite Type Designers/Foundries&lt;/h2&gt;
&lt;p&gt;These are some of my favorite independent type designers/foundries to check out (and I just realized that all of these, with the exception of DJR, are based in Europe — I wonder what that says about my tastes 😅):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.hvdfonts.com/&quot;&gt;HvD Fonts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://djr.com/&quot;&gt;DJR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://capitalics.wtf/en&quot;&gt;Capitalics Warsaw Type Foundry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://klim.co.nz/&quot;&gt;Klim Type Foundry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.type-together.com/&quot;&gt;TypeTogether&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.zetafonts.com/&quot;&gt;Zetafonts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Mapping Meteorites</title><link>https://daniel-saunders.com/posts/tutorials/mapping-meteorites/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/tutorials/mapping-meteorites/</guid><description>Playing around with the Mapbox GL JS API and plotting observed meteorite falls.</description><pubDate>Tue, 07 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;aside&gt; &lt;div&gt; &lt;span&gt;Context&lt;/span&gt; &lt;/div&gt; &lt;div&gt; &lt;p&gt;This post about web development is more than 2 years old and shows processes
and code that may be significantly out of date or broken. Feel free to make
use of it, but tread carefully.&lt;/p&gt; &lt;/div&gt; &lt;/aside&gt;
&lt;p&gt;I’ve been playing around with the Mapbox GL mapping library, both as a way to practice my JavaScript and because maps are just dang cool. Building a complex map can be a little bit of a learning curve, but with the help of some examples, I was able to create a few that I think are pretty interesting.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/meteorite-map-2-featured.Bo1wYWWU_Z10yV9E.webp&quot; /&gt; &lt;figcaption&gt;Map of the United States showing meteorite falls.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;View the map at &lt;a href=&quot;https://z4q4to.csb.app&quot;&gt;https://z4q4to.csb.app&lt;/a&gt; 🗺️&lt;/p&gt;
&lt;h2&gt;The Dataset&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.mapbox.com/help/glossary/mapbox-gl&quot;&gt;Mapbox GL&lt;/a&gt; is a set of open-source libraries for creating client-side maps. It’s a fantastic alternative to Google Maps, both because it is incredibly comprehensive and customizable, and because, well, it’s not Google.&lt;/p&gt;
&lt;p&gt;As I was exploring Mapbox, I started thinking about a potential dataset that would be fun to display. Many of the Mapbox examples use earthquake data, so I did some research on a few sites and pretty quickly found a perfect candidate that I thought would be super interesting—a set of observed meteorite landings (going back to the fifteenth century!) which is available on NASA’s &lt;a href=&quot;https://data.nasa.gov/Space-Science/Meteorite-Landings/gh4g-9sfh/data&quot;&gt;Open Data Portal&lt;/a&gt;. This dataset includes a &lt;a href=&quot;https://data.nasa.gov/resource/gh4g-9sfh.json&quot;&gt;public API endpoint&lt;/a&gt; that allows the data to be fetched with a JavaScript data fetching method.&lt;/p&gt;
&lt;p&gt;While it’s great that the data is just there and ready to use, I had to do a number of transformations to get it into the shape I wanted. Mapbox accepts a few different source types to use for mapping points, lines, or vectors, but a common, versatile (and very comprehensible) type is the &lt;a href=&quot;https://geojson.org&quot;&gt;GeoJSON format&lt;/a&gt;. I set up a function to map (pun not intended) the NASA data onto a GeoJSON object; an array of these objects assembled later then comprise the source for the map.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;script.js&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;// Function to create a GeoJSON object from fetched data,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// where the data properties match those from the API endpoint&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; createGeoJSONObj&lt;/span&gt;&lt;span&gt;(data) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    return&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        type: &lt;/span&gt;&lt;span&gt;&quot;feature&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        geometry: {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            type: &lt;/span&gt;&lt;span&gt;&quot;Point&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            // GeoJSON is longitude first&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            coordinates: [data.reclong, data.reclat],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        },&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // Properties can be any type and value&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        properties: {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            title: data.name, &lt;/span&gt;&lt;span&gt;// Name of the meteorite fall location&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            type: data.recclass, &lt;/span&gt;&lt;span&gt;// Meteorite classification&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            year: data.year, &lt;/span&gt;&lt;span&gt;// Year observed&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            // Since the incoming meteorite mass value is a string, convert&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            // it to a number with parseInt() — this is important because&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            // I want to use meteorite mass as a major focus of the map styles&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            mass: &lt;/span&gt;&lt;span&gt;convertToNum&lt;/span&gt;&lt;span&gt;(data.mass),&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        },&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;h2&gt;Building the Map&lt;/h2&gt;
&lt;p&gt;It’s straightforward to get the Mapbox map itself up and running. Mapbox is all client-side, so you just add a &lt;code&gt;div&lt;/code&gt; with an id of “map” or whatever else you want, and then initialize it with a script somewhere on your page (and don’t forget to add the CDN links to its script and css files). Voila!&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;script.js&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;mapboxgl.accessToken &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; YOUR_TOKEN;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; map &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; new&lt;/span&gt;&lt;span&gt; mapboxgl.&lt;/span&gt;&lt;span&gt;Map&lt;/span&gt;&lt;span&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    container: &lt;/span&gt;&lt;span&gt;&quot;map&quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// Container ID&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    style: &lt;/span&gt;&lt;span&gt;&quot;mapbox://styles/mapbox/dark-v11&quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// Map style URL — there are some cool defaults, or you can make your own!&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    projection: &lt;/span&gt;&lt;span&gt;&quot;mercator&quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// How the map sizes and shapes are rendered — some interesting options here too&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    center: [&lt;/span&gt;&lt;span&gt;60&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;25&lt;/span&gt;&lt;span&gt;], &lt;/span&gt;&lt;span&gt;// Starting position [lng, lat]&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    zoom: &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// Starting zoom,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    cooperativeGestures: &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// Adds zoom and movement hints&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;});&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;h3&gt;Adding the Source&lt;/h3&gt;
&lt;p&gt;Adding the source data is also pretty simple. The &lt;code&gt;addSource&lt;/code&gt; method takes as arguments an &lt;code&gt;id&lt;/code&gt;, here called “points”, and a &lt;code&gt;source&lt;/code&gt;, here a GeoJSON collection. First, I’m fetching the NASA data, then using our &lt;code&gt;createGeoJSONObj&lt;/code&gt; function to create objects for each piece of data, then assembling an array we can use in the GeoJSON collection.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;script.js&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;// The whole thing is wrapped in a self-invoking async function, which is called&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// immediately — it&apos;s asynchronous since we have to await the fetch results&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;async&lt;/span&gt;&lt;span&gt; () &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; request &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; fetch&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;https://data.nasa.gov/resource/gh4g-9sfh.json&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    );&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; data &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; request.&lt;/span&gt;&lt;span&gt;json&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; mapPoints &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; [];&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Create new objects and add each one to the mapPoints array&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    data.&lt;/span&gt;&lt;span&gt;forEach&lt;/span&gt;&lt;span&gt;((item) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; mapPoints.&lt;/span&gt;&lt;span&gt;push&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;createGeoJSONObj&lt;/span&gt;&lt;span&gt;(item)));&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    map.&lt;/span&gt;&lt;span&gt;addSource&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;points&quot;&lt;/span&gt;&lt;span&gt;, {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        type: &lt;/span&gt;&lt;span&gt;&quot;geojson&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        data: {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            type: &lt;/span&gt;&lt;span&gt;&quot;FeatureCollection&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            features: mapPoints, &lt;/span&gt;&lt;span&gt;// Use our array here&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        },&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    });&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;})();&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;h2&gt;Styling Layers&lt;/h2&gt;
&lt;p&gt;At this point, we have a source of about 1,000 meteorite coordinate points, each with associated metadata like title, mass, and year. Pretty cool! But nothing will show up on our map until we add a &lt;a href=&quot;https://docs.mapbox.com/mapbox-gl-js/style-spec/layers&quot;&gt;style layer&lt;/a&gt; (or many) with the &lt;code&gt;addLayer&lt;/code&gt; method. This is where the real fun—and the real headaches—start. The simplest solution is to plot the points using circles or symbols, and having everything be a uniform size.&lt;/p&gt;
&lt;p&gt;But I think that’s pretty boring! So I decided (with &lt;em&gt;a lot&lt;/em&gt; of help from &lt;a href=&quot;https://docs.mapbox.com/mapbox-gl-js/example&quot;&gt;the Mapbox examples&lt;/a&gt;) to dynamically render the point sizes based on the mass of the meteorite—so heavier meteorites would show up as larger circles, while lighter meteorites would be smaller circles. After hours of trying to understand Mapbox’s &lt;code&gt;interpolate&lt;/code&gt; expression, and a lot of trial and error, I finally got something that I’m (mostly) happy with.&lt;/p&gt;
&lt;p&gt;Essentially, &lt;code&gt;interpolate&lt;/code&gt; lets you take in a value from a source (here, the mass of the meteorite, which is why we had to change it to a &lt;code&gt;number&lt;/code&gt; type earlier), and then use that as a kind of index to generate “stops” that the output will fluctuate between (it’s the same idea as gradient color stops, but with pure numbers—but Mapbox’s documentation is pretty confusing on how it works). I wanted the circle radius to change based on each meteorite’s mass, so I interpolated on the mass value. For an input of a mass of 10, the circle radius outputs to 1; for a mass of 100, 2; and so on, as you can see below.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;script.js&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;map.&lt;/span&gt;&lt;span&gt;addLayer&lt;/span&gt;&lt;span&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    id: &lt;/span&gt;&lt;span&gt;&quot;meteorites-point&quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// Name of the layer&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    type: &lt;/span&gt;&lt;span&gt;&quot;circle&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    source: &lt;/span&gt;&lt;span&gt;&quot;points&quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// Name of our source id which will be styled&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    minzoom: &lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// Minimum map zoom level for the layer to render&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    paint: {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // The paint property determines everything about the styling&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // for the layer — the properties are different depending&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // on the layer type&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;circle-radius&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            // Size the circle radius by mass level&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &quot;interpolate&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            [&lt;/span&gt;&lt;span&gt;&quot;linear&quot;&lt;/span&gt;&lt;span&gt;], &lt;/span&gt;&lt;span&gt;// Interpolation type&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            [&lt;/span&gt;&lt;span&gt;&quot;get&quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&quot;mass&quot;&lt;/span&gt;&lt;span&gt;], &lt;/span&gt;&lt;span&gt;// Use the mass value from our dataset&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            10&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// &quot;stop 1&quot; input — meteorites with a mass of 10&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// &quot;stop 1&quot; output — circle radius of 1&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            100&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// &quot;stop 2&quot; input&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            2&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// &quot;stop 2&quot; output&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            500&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;// etc.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            3&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            1000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            5&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            10000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            8&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            100000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            15&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            500000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            25&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            1000000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            50&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            2000000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            80&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            4000000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            100&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            10000000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            150&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        ],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;circle-color&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;#f04800&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;circle-stroke-color&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;#ffc8b0&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;circle-stroke-width&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;circle-stroke-opacity&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;0.6&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;circle-opacity&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;span&gt;&quot;interpolate&quot;&lt;/span&gt;&lt;span&gt;, [&lt;/span&gt;&lt;span&gt;&quot;linear&quot;&lt;/span&gt;&lt;span&gt;], [&lt;/span&gt;&lt;span&gt;&quot;zoom&quot;&lt;/span&gt;&lt;span&gt;], &lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;4&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0.9&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    },&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;});&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;A big part of the problem I had with this is that, as an American, I have a terrible sense of metric system values (I hate to admit it, but I had to triple check that the incoming meteorite mass values were indeed in grams 😅). There’s also just a massive range of mass values for these meteorites—and figuring out how to display that visually was part of the fun of building this map! It’s obviously very challenging to show the drastic difference between 10 and 10,000,000 on the same map, while retaining readability. So again, it was a lot of trial and error.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/meteorite-map-3.BapDpDhn_Z5Cq9T.webp&quot; /&gt; &lt;figcaption&gt;Are they meteorites or planet-sized asteroids...?&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;I also had to have a unit converter up constantly (because dumb American), but I really wanted to get a sense for what these meteorites actually weighed in relative terms. After all, grapsing details like this is part of the whole point of the map. So, with the help of &lt;a href=&quot;https://weightofstuff.com&quot;&gt;weightofstuff.com&lt;/a&gt;, here’s my little conversion chart (and I really do want you to imagine these items hurling down at you from outer space at terminal velocity):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1 kg:&lt;/strong&gt; Quart of milk&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;10 kg:&lt;/strong&gt; Sledgehammer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;50 kg:&lt;/strong&gt; 60” flatscreen TV&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;100 kg:&lt;/strong&gt; Giant panda&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;500 kg:&lt;/strong&gt; Concert grand piano&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1,000 kg:&lt;/strong&gt; 2016 Chevy Spark&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;5,000 kg:&lt;/strong&gt; Elephant&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;20,000 kg:&lt;/strong&gt; Fire truck (yes, that iron meteorite in &lt;a href=&quot;https://en.wikipedia.org/wiki/Sikhote-Alin_meteorite&quot;&gt;Sikhote-Alin&lt;/a&gt; is an absolute beast)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Heatmap Layer&lt;/h3&gt;
&lt;p&gt;While the dynamic circle sizes were great, I wanted something a bit more, especially for the initial view of the entire earth at zoom level 0. At that view, the various sizes are too jumbled anyway to make visual sense of them. So I added an additional heatmap layer (I also could have gone with a &lt;a href=&quot;https://docs.mapbox.com/mapbox-gl-js/example/cluster&quot;&gt;cluster layer&lt;/a&gt;). I hadn’t considered a heatmap initially as a way to show this data, but its definition as a technique that “shows magnitude of a phenomenon as color in two dimensions” was exactly what I was looking for.&lt;/p&gt;
&lt;p&gt;With another &lt;code&gt;addLayer&lt;/code&gt; method, we can add a second map layer on top of the dynamically sized points. The &lt;code&gt;interpolate&lt;/code&gt; expression for &lt;code&gt;&quot;heatmap-weight&quot;&lt;/code&gt; works just as before, except here it is multiplied by a second &lt;code&gt;interpolate&lt;/code&gt; on the &lt;code&gt;&quot;heatmap-intensity&quot;&lt;/code&gt; property. Then, another &lt;code&gt;interpolate&lt;/code&gt; handles the color gradient so that denser areas get dark/opaque colors, while less dense areas get lighter/transparent colors. Finally, a &lt;em&gt;fourth&lt;/em&gt; &lt;code&gt;interpolate&lt;/code&gt; handles a smooth opacity transition between this layer and the dynamically sized points on a closer zoom.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;script.js&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;map.&lt;/span&gt;&lt;span&gt;addLayer&lt;/span&gt;&lt;span&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    id: &lt;/span&gt;&lt;span&gt;&quot;meteorites-heat&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    type: &lt;/span&gt;&lt;span&gt;&quot;heatmap&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    source: &lt;/span&gt;&lt;span&gt;&quot;points&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    maxzoom: &lt;/span&gt;&lt;span&gt;6&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    paint: {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;heatmap-weight&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &quot;interpolate&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            [&lt;/span&gt;&lt;span&gt;&quot;linear&quot;&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            [&lt;/span&gt;&lt;span&gt;&quot;get&quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&quot;mass&quot;&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            10&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            0&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            500000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            1&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            3000000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            2&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            10000000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            3&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            20000000&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            4&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        ],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;heatmap-intensity&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;span&gt;&quot;interpolate&quot;&lt;/span&gt;&lt;span&gt;, [&lt;/span&gt;&lt;span&gt;&quot;linear&quot;&lt;/span&gt;&lt;span&gt;], [&lt;/span&gt;&lt;span&gt;&quot;zoom&quot;&lt;/span&gt;&lt;span&gt;], &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;5&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;heatmap-color&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &quot;interpolate&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            [&lt;/span&gt;&lt;span&gt;&quot;linear&quot;&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            [&lt;/span&gt;&lt;span&gt;&quot;heatmap-density&quot;&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            0&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &quot;hsla(18, 100%, 97%, 0)&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            0.2&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &quot;hsla(18, 100%, 87%, 0.5)&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            0.4&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &quot;hsla(18, 100%, 77%, 0.7)&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            0.6&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &quot;hsla(18, 100%, 67%, 0.8)&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            0.8&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &quot;hsla(18, 100%, 57%, 0.9)&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            1&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &quot;hsla(18, 100%, 47%, 1)&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        ],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // Transition from heatmap to circle layer by zoom level&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &quot;heatmap-opacity&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;span&gt;&quot;interpolate&quot;&lt;/span&gt;&lt;span&gt;, [&lt;/span&gt;&lt;span&gt;&quot;linear&quot;&lt;/span&gt;&lt;span&gt;], [&lt;/span&gt;&lt;span&gt;&quot;zoom&quot;&lt;/span&gt;&lt;span&gt;], &lt;/span&gt;&lt;span&gt;4&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;6&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    },&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;});&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;The combined effects of all of these styles renders a layer that shows us at a glance &lt;em&gt;how much meteorite mass&lt;/em&gt; has fallen on a given area. That’s a lot of fire trucks.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/meteorite-map-earth.pWlgwJew_2iRgSx.webp&quot; /&gt; &lt;figcaption&gt;Heatmap layer&lt;/figcaption&gt; &lt;/figure&gt;
&lt;h2&gt;Popups&lt;/h2&gt;
&lt;p&gt;Finally, we still have all of that metadata to display for each meteorite. So I used Mapbox’s &lt;code&gt;Popup&lt;/code&gt; component to add custom info cards to each meteorite point when the view is showing the circle layer. (The code is too long and messy but you can check it out in the &lt;a href=&quot;https://codesandbox.io/s/mapbox-meteorites-z4q4to?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot;&gt;Codesandbox&lt;/a&gt;.)&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/meteorite-map-1.5GZ2OO1W_1VvJA.webp&quot; /&gt; &lt;figcaption&gt;From 1492!&lt;/figcaption&gt; &lt;/figure&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>The Weird and the Eerie</title><link>https://daniel-saunders.com/library/reviews/the-weird-and-the-eerie/</link><guid isPermaLink="true">https://daniel-saunders.com/library/reviews/the-weird-and-the-eerie/</guid><description>Mark Fisher’s taxonomies of the unheimlich.</description><pubDate>Thu, 12 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recmS6n7fvQxwhBid&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recmS6n7fvQxwhBid.BvAWSCZC_M4B85.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recmS6n7fvQxwhBid&quot;&gt;The Weird and the Eerie&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Mark Fisher&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Essays, Literary Criticism, Sci-Fi, Theory &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;This short book is Fisher at his best, critically thinking through (and helping to define) the distinct literary/textual genres of the weird and the eerie. The weird, says Fisher, is concerned primarily with “that which does not belong,” while the eerie asks, “why is there something here when there should be nothing?” (or vice versa).&lt;/p&gt;
&lt;p&gt;From these two starting points, Fisher leads an entrancing tour through the genres’ trailblazers, touching on figures like H.P. Lovecraft (naturally), David Lynch, Daphne du Maurier, Stanley Kubrick, and many more (the book is worth it for the bibliography of books, music, and films to further explore).&lt;/p&gt;
&lt;p&gt;As always, Fisher is at home discussing both Christopher Nolan and Lacan, punk rock and Deleuze, and this versatility is one of the reasons he is a delight to read. In these investigations, he also probes how art which pushes up against the boundaries of both genre and intelligibility can show us something true about the mysteries of existence.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>My Year in Reading, 2022</title><link>https://daniel-saunders.com/posts/lists/my-year-in-reading-2022/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/lists/my-year-in-reading-2022/</guid><description>Gesamtkunstwerke and politics as worldmaking.</description><pubDate>Wed, 28 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/reading-poet.CBJqCcyI_Z1iJYkK.webp&quot; /&gt; &lt;figcaption&gt;Domenico di Michelino&apos;s “La commedia illumina Firenze” on the wall of Florence Cathedral, via Wikimedia Commons.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;While my “books to read” list seems to grow ever greater than my “books finished” list, this year I still managed to complete some books that have been sitting on my shelf for a while. I also fell in love again with some old favorites and discovered some gems that had not been on my radar before.&lt;/p&gt;
&lt;p&gt;So as the year closes, here is my entirely not-of-the-moment, provisional list of favorite reads from 2022, the books that most shaped my thinking this year.&lt;/p&gt;
&lt;h2&gt;Favorite Books&lt;/h2&gt;
&lt;p&gt;My favorite reads of the year, ones that prompted prolonged or critical reflection (in no particular order):&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/rec2kPSKqLhQvIuX7&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/rec2kPSKqLhQvIuX7._YIRam95_NMjj0.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/rec2kPSKqLhQvIuX7&quot;&gt;Wagnerism: Art and Politics in the Shadow of Music&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Alex Ross&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Biography, History, Literary Criticism, Music &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;em&gt;Wagnerism: Art and Politics in the Shadow of Music&lt;/em&gt;, by Alex Ross • 2020, Farrar, Straus and Giroux&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;For fans of:&lt;/em&gt; Wagner who know he’s problematic, opera/music history that isn’t gossipy, “histories of influence,” miniature biographies of artists, the concept of decadence, the occult&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I confess that, as an avid classical music listener with a penchant for the baroque and early Romantic, I considered myself to be above Wagner for the longest time. I half-blame Nietzsche’s tortured but compelling diatribe in &lt;em&gt;The Case of Wagner&lt;/em&gt;: “&lt;em&gt;The artist of decadence&lt;/em&gt;. That is the word … All that the world most needs to-day, is combined in the most seductive manner in his art—the three great stimulants of exhausted people: brutality, artificiality and innocence (idiocy).” (Now &lt;em&gt;that’s&lt;/em&gt; a hot take.) But this book, accompanied by a deep-dive in listening, has changed that earlier opinion. (I’ve now listened to the full Ring Cycle multiple times.)&lt;/p&gt;
&lt;p&gt;The wide range of evaluations and interpretations of this most towering of musical figures—spanning Nietzsche, Nazism, Bolshevism, and everything in between—is precisely the subject of &lt;em&gt;New Yorker&lt;/em&gt; critic Alex Ross’s informative, entertaining overview of Wagner’s legacy. As its title implies, the book is less about Wagner himself and more about the many ways his music and ideas about art have supplied the raw material for many other creative undertakings over the last century and a half.&lt;/p&gt;
&lt;p&gt;In this way, the book is a kind of associative history of influence, tracing Wagner’s impact on everyone from Baudelaire and the decadent Symbolists of 19th-century France to the avant-garde, neo-expressionist artworks of &lt;a href=&quot;https://gagosian.com/artists/anselm-kiefer/&quot;&gt;Anselm Keifer&lt;/a&gt;. Wagner’s concept of the &lt;em&gt;Gesamtkunstwerk&lt;/em&gt;, or “total work of art,” looms large—a kind of Platonic ideal against which artificers of words, images, and sounds have striven to realize the unrealizable.&lt;/p&gt;
&lt;p&gt;Along the way, Ross attempts to assess the nebulous political undertones of Wagner’s legacy, which has appealed to both the left (Wagner was an active participant in the revolutionary fervor that rocked Europe in 1848) and right wings (Wagner was also, infamously, one of the most vile anti-Semites in music history). Against the mistaken but prevailing view that Wagner was nothing but a precursor to the Third Reich, Ross marshals an array of “alternative Wagners”—Satanic Wager, Jewish Wagner, Black Wagner, Gay Wagner, and Feminist Wagner, among others. But while a helpful starting point in complicating the picture, the conclusion that Wagner is nothing but a reflection of our own ambiguities falls a bit flat.&lt;/p&gt;
&lt;p&gt;As &lt;a href=&quot;https://thebaffler.com/salvos/wagnermania-shields&quot;&gt;Nathan Shields writes&lt;/a&gt; in an excellent critical rejoinder, Ross ironically fails to plumb the depths and contradictions of the &lt;em&gt;music itself&lt;/em&gt;: “This is the idea that music shows us something far grander, and more dangerous, than our own reflection. It shows us the world as it could be.” The music, so full of the apocalyptic attitude of the &lt;em&gt;fin-de-siècle&lt;/em&gt;, seems to foreground a more compelling, and more ominous, political question, oscillating between the twin collective visions of utopia and fascism: what is it in Wagner that simultaneously promises both liberation and annihilation, decadence and transcendence? And why does that abyss hold such power over us? Maybe Nietzsche was onto something after all.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recsDjs1zmRifCW9c&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recsDjs1zmRifCW9c.D93MojnT_18S8JM.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recsDjs1zmRifCW9c&quot;&gt;Ulysses&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;James Joyce&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Fiction, Modernism &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;em&gt;Ulysses&lt;/em&gt;, by James Joyce • 2013, Vintage Classics &amp;amp; &lt;em&gt;Ulysses&lt;/em&gt;, by Hugh Kenner • 1987, Johns Hopkins University Press&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;For fans of:&lt;/em&gt; The greatest novel ever written, stories about wandering cuckolds, the sheer delight of language&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Wagner was a luminary for the Modernist movement, whose greatest representatives were Eliot and Joyce. In &lt;em&gt;Ulysses&lt;/em&gt;, Ross reads the ghostly ship that appears to Stephen Dedalus early in the novel as a reference to the Flying Dutchman, a legend about an eternally doomed mariner that was also the source for an early Wagner opera. The legend in turn reinforces another of the book’s &lt;em&gt;leitmotifs&lt;/em&gt;, that of the Wandering Jew, cursed to roam the earth forever. As Ross notes, the novel delights in ironically playing up the dread of a dark, vampiric, conspiratorial specter looming at the edge of Stephen’s consciousness (descriptors redolent of the era’s anti-Semitism), before abruptly pivoting to the dry ordinariness of Leopold Bloom’s daily life (which is now amusingly vampiric): “Mr Leopold Bloom ate with relish the inner organs of beasts and fowls.”&lt;/p&gt;
&lt;p&gt;The first time I read the novel, I did it line by line with the Gifford annotated guide, wanting to catch every single reference like those above. It’s an exhausting way to read with few true payoffs, apart from being able to say that you got every reference (you definitely didn’t). This time around, however, I read it only with Hugh Kenner’s short, excellent work as a companion, which allowed me to read &lt;em&gt;Ulysses&lt;/em&gt; above all &lt;em&gt;as a novel&lt;/em&gt;.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recyEioDb2o7g000h&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recyEioDb2o7g000h.CYi7Be-4_Z2iGn16.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;p&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recyEioDb2o7g000h&quot;&gt;Ulysses: (Essays)&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Hugh Kenner&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Essays, Literary Criticism, Modernism &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;Kenner, one of the great critics of English literature, is less interested in the myriad references and Homeric analogies of character than he is in analogies of &lt;em&gt;situation&lt;/em&gt;. Bloom is not so much Odysseus incarnate (although he might be, &lt;a href=&quot;https://www.bloomsandbarnacles.com/blog/2020/04/13/met-him-pike-hoses&quot;&gt;via metempsychosis&lt;/a&gt;) as he is a wandering and scorned man in search of home. Stephen is not so much Bloom’s metaphorical son as he is an immature and lost literary aspirant wrestling with all kinds of difficult fatherly inheritance—emotional, spiritual, and intellectual. This reading transforms the novel’s episodes from formulaic, one-to-one allegories (as in Stuart Gilbert’s &lt;a href=&quot;https://en.wikipedia.org/wiki/Gilbert_schema_for_Ulysses&quot;&gt;somewhat tedious original guide&lt;/a&gt;) to a complex narrative web with layers of meaning. Turns out, Joyce wasn’t just a smarty-pants, but could actually write a good story, too!&lt;/p&gt;
&lt;p&gt;Kenner’s book is alive with responsiveness to Joyce’s created world, which comes out not only in the big picture themes but also in all of the novel’s delicious details—for example, the slow revelation of Stephen’s truly bizarre outfit, complete with &lt;a href=&quot;https://www.joyceproject.com/notes/010097latinquarterhat.htm&quot;&gt;Latin-quarter hat that gets him mistaken for a priest&lt;/a&gt; and his sword-like ashplant (in another Wagner reference, he brandishes it like Siegried in the hilarious brothel scene, crying “&lt;em&gt;Nothung!&lt;/em&gt;” before smashing a chandelier).&lt;/p&gt;
&lt;p&gt;But the most exciting aspect of &lt;em&gt;Ulysses&lt;/em&gt; is what Joyce does to revolutionize the novel form itself. Kenner describes how, halfway through what might be a strange but relatively straightforward novel, there comes an “intrusion of consciousness … something new in fiction … as though a giant were slowly coming awake” (64-65). This is the advent of “the Arranger,” &lt;a href=&quot;https://www.ulyssesguide.com/voices-in-the-text&quot;&gt;one of the many voices&lt;/a&gt; in the text that is not the narrator, but also not the author, a voice that compiles, interpolates, contradicts, ornaments, mocks, and corrects all manner of narrative detail, all with an omniscient, omnipresent irony: “Some mind, it is clear, keeps track of the details of this printed cosmos, and lets escape from its scrutiny the fall of no sparrow” (64).&lt;/p&gt;
&lt;p&gt;It is as though Joyce, in his act of creation, had also given birth to a brazen Demiurge that went on to create more of this fictional world, beyond even the reach of the original creator. (In a true instance of Homeric analogy of character, the Arranger is like Penelope, who undoes at night what she has woven during the day.) It is this, and not the stream-of-consciousness style typically associated with the novel, that is its true innovation.&lt;/p&gt;
&lt;p&gt;The effect of the Arranger on the reader is to cause us to become aware of both the limitations and the unboundedness of art, and of language in general. Above all we realize that there is far more here than meets the eye: “There has been a look of autonomy for the initial style to serve and transcribe, but under close inspection this autonomy is compromised” (70). Just like in our physical cosmos, there is, contrary to seeming appearances, no great Artificer in the sky, no static Book of Nature from which all can read. And there is no single identity that holds us together. Instead, there are a multiplicity of voices, manifold viewpoints constructing the determined chaos of reality (a truth of quantum physics, which has playfully recognized its affinity with Joyce by borrowing his term &lt;em&gt;quark&lt;/em&gt;). This is the &lt;em&gt;parallax&lt;/em&gt; that &lt;em&gt;Ulysses&lt;/em&gt; achieves in both form and content—an over-layering of visions, encompassing both specter and living presence.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recsBACDunKvwKbIu&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recsBACDunKvwKbIu.7_UbIYr__Z27P1PC.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recsBACDunKvwKbIu&quot;&gt;Marx’s Inferno: The Political Theory of Capital&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;William Clare Roberts&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Capitalism, Literary Criticism, Marxism, Political Theory, Socialism &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;em&gt;Marx’s Inferno: The Political Theory of Capital&lt;/em&gt;, by William Clare Roberts • 2016, Princeton University Press&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;For fans of:&lt;/em&gt; Fresh takes on Marxist thought, creative uses of the Divine Comedy, not terrible political theory, hating on anarchists&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As Marx well knew, the true specter haunting Europe in the mid-19th century (and us now) was the harrowing reality wrought by the capitalist mode of production, from environmental degradation to extreme poverty to the obliteration of traditional social ties. The resulting “social hell,” as William Clare Roberts advances in this book, was a popular topic for utopians, communists, anarchists, and reformists of the day; it was a trope for thinkers to frame the struggle for a better world in terms of salvation from this social hell by means of a democratically enacted social republic (which of course varied widely in form). It is on this and other specifics that Roberts bases his proposal to read &lt;em&gt;Capital: Volume I&lt;/em&gt; through the lens of Dante’s &lt;em&gt;Inferno&lt;/em&gt;, as both an entry in and critique of this long line of commentators on the social hell—a provocative and fruitful reading that has changed many aspects of how I understand Marx’s project.&lt;/p&gt;
&lt;p&gt;Roberts is somewhat unique in reading &lt;em&gt;Capital: Volume I&lt;/em&gt; as a standalone text, and as a work primarily of &lt;em&gt;political theory&lt;/em&gt;, not of economics, history, or social theory. This is an especially interesting angle given the “how to read &lt;em&gt;Capital&lt;/em&gt;” cottage industry that is currently en vogue—and Roberts does valiantly stake out his reading against those of David Harvey, Michael Heinrich, and others. Forming the crux of Roberts’s view is the intriguing claim that the author of &lt;em&gt;Capital&lt;/em&gt; is best read as a representative of an “alternative republicanism,” one that merges a central commitment to “freedom as non-domination” with the Owenite tradition of communism as a free association of producers.&lt;/p&gt;
&lt;p&gt;Roberts is excellent at positioning Marx’s position against the prevailing alternatives by his socialist rivals, many of whom are the focus of Marx’s savage criticism in the text—much like Dante places his enemies in various levels of hell. The &lt;em&gt;Inferno&lt;/em&gt; here acts as a guide for the thematic aspects of the critique, from the impersonal domination of the market (the outer circles of Hell) to the violence and fraud inherent in the capitalist mode of production itself (the Malebolge).&lt;/p&gt;
&lt;p&gt;What truly sets Marx’s critique apart from his contemporaries is that he disdains the &lt;em&gt;moral aspect&lt;/em&gt; of political economy that is traditionally called upon to rectify capitalism’s obvious ills, even as it covers for its continued exploitation (a basic function of ideology). For Marx, it is not enough simply to decry the injustice or immorality of the social hell wrought by capitalism. Like original sin, the systemic imperatives are greater than the vices of any single individual.&lt;/p&gt;
&lt;p&gt;The impersonal domination of the market compels not only workers but also &lt;em&gt;capitalists themselves&lt;/em&gt; to act in accordance with market imperatives to exploit labor and maximize value; not even the capitalist has freedom. While class struggle is a key feature of social relations under capitalism, there is thus no single agent or class that we can point to and hold responsible for the social hell that capitalism generates. This is a lesson that is also well worth hearing today. While convenient targets for public loathing, Bezos and Musk are merely symptoms, not authors, of the logic of late capitalism. So, like Dante, “Marx … sees the necessity of going through political economy in order to get beyond it” (3).&lt;/p&gt;
&lt;p&gt;This is how Roberts arrives at his view of Marx as a radical republican, concerned above all with freedom from the tyrannical and impersonal structure of capitalism. It is a Marx who certainly has much to say to our current moment, especially after the &lt;a href=&quot;https://daniel-saunders.com/posts/notes/the-age-of-extremes/&quot;&gt;failure of so many state socialist projects&lt;/a&gt;. Moreover, it is a Marx who returns the focus to the laboring classes themselves, who, “if they want to free themselves from this domination … must get to the bottom of political economy itself, and destroy the social basis of its existence as a scientific discourse” (17).&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recmpq6x25WVaiYm0&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recmpq6x25WVaiYm0.BL2zhmdX_14yEEO.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recmpq6x25WVaiYm0&quot;&gt;Archaeologies of the Future: The Desire Called Utopia and Other Science Fictions&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Fredric Jameson&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Literary Criticism, Marxism, Sci-Fi, Theory &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;em&gt;Archaeologies of the Future: The Desire Called Utopia and Other Science Fictions&lt;/em&gt;, by Frederic Jameson • 2007, Verso&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;For fans of:&lt;/em&gt; Tour de force literary theory, Greimas squares (so many of them), utopia/dystopia, Kim Stanley Robinson/Ursula Le Guin, pithy off-hand remarks that cause you to rethink entire movements or individuals&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Having gone through the social hell, what then &lt;em&gt;does&lt;/em&gt; the longed-for social republic on the other side look like, exactly? As everyone knows, it is far easier to critique the world-as-it-is than to imagine the world-as-it-might-be. But the impulse to think the unthinkable, to carve out an “enclave” from the “nightmare of history” (Stephen Dedalus in &lt;em&gt;Ulysses&lt;/em&gt;), is an act which generates the kind of text which is not quite wholly fiction, not quite wholly social/political theory, but an explosive, protean thing filled with the unique social desires that attend each particular era (and here we’re back to Wagner). Following its grand inaugural iteration by Thomas More, this is the kind of text we call the Utopian.&lt;/p&gt;
&lt;p&gt;(More’s Utopia is a text which I have a particular interest in, as it plays a crucial role in &lt;a href=&quot;https://daniel-saunders.com/posts/essays/ideology-fetishism-apophaticism-marxist-criticism-and-christianity/&quot;&gt;my paper on Christianity, capitalism, and anti-fetishism&lt;/a&gt;. I only wish I could have read this book before writing the paper!)&lt;/p&gt;
&lt;p&gt;Jameson unpacks the historiography (utopiography?) of the Utopian text in this impressive book, following its expression particularly in waves of 19th- and 20th-century science fiction. In doing so, he draws out the distinction between Utopia as program and formal structure, and Utopia as the trappings of an utterly transformed everyday life, both concerned in their own way with horizons of social desire (the distinction loosely follows Coleridge’s definitions of &lt;a href=&quot;https://www.britannica.com/science/fancy&quot;&gt;Imagination and Fancy&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;It’s the first book by Jameson I’ve read, and it is one that spoke to me immediately as a fan of Freudo-Marxist-tinged literary theory. Like a novelist, Jameson can conjure worlds with just a few sentences, and it was often his incidental remarks about a thinker or idea that sent me down feverish rabbit holes or side reading quests (see the science fiction section below).&lt;/p&gt;
&lt;p&gt;One example: an extended reflection on the “great schism” between fantasy and sci-fi, both of which probe the Utopian in their own way, reveals a fundamental incongruity between the two. Whereas the former deals in ethical binaries of good and evil and the limitations of the organic (both summed up in the concept of &lt;em&gt;magic&lt;/em&gt;), the latter is “determined by concepts of the mode of production rather than those of religion” (58). This means that fantasy, more often than not, “looks back” in nostalgic and dubious political (if not outright reactionary) ways, whereas sci-fi tends to be concerned with historicism, the &lt;em&gt;longue durée&lt;/em&gt;, and how a radically new Utopian world can erupt out of the strictures of history. Maybe it’s oversimplified, but it goes a long way in explaining why &lt;em&gt;Lord of the Rings&lt;/em&gt; and &lt;em&gt;Harry Potter&lt;/em&gt; are not Utopian, but &lt;a href=&quot;https://www.marxists.org/archive/morris/works/1890/nowhere/nowhere.htm&quot;&gt;William Morris’s &lt;em&gt;News from Nowhere&lt;/em&gt;&lt;/a&gt; is.&lt;/p&gt;
&lt;p&gt;Jameson gives a compelling example of this by glossing Ursula K. Le Guin’s &lt;em&gt;The Wizard of Earthsea&lt;/em&gt;, quipping that it “starts in ethics and ends in history,” pivoting from a quasi-religious rumination on evil to a materialist critique of imperialism (67). The distinction also helps underline what really constitutes the Utopian—a radical rupture from the present in a manner that incorporates past and present but transcends it (that good old German &lt;em&gt;&lt;a href=&quot;https://plato.stanford.edu/entries/hegel-dialectics/&quot;&gt;Aufhebung&lt;/a&gt;&lt;/em&gt; at work again), versus “returning to the former glory days.” We all know what that means by now.&lt;/p&gt;
&lt;p&gt;Even amid such interesting details, the book’s overarching theme is also one that captivates. Utopia is a mirror of a society at any given moment in its place/history. This “inescapable situatedness” means Utopia is always about both what is wrong with society and what transformed life could look like, and about how such continued attempts to think the unthinkable build up and change the very meaning of Utopia. It also means that dystopia/utopia are actually synonyms, and that the true enemy of Utopian desire is the “anti-utopia,” almost always paired with paranoid anti-communism (looking at you, Orwell). Certain touchpoints remain—the abolition of money, the abolition of property—but what matters is the &lt;em&gt;act of rupture&lt;/em&gt; itself. This is the antidote to the cynical “realism” that sees no possible alternative to the hell of late capitalism:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For it is the very principle of the radical break as such, its possibility, which is reinforced by the Utopian form, which insists that its radical difference is possible and that a break is necessary. &lt;strong&gt;The Utopian form itself&lt;/strong&gt; is the answer to the universal ideological conviction that no alternative is possible, that there is no alternative to the system. But it asserts this by &lt;strong&gt;forcing us to think the break itself&lt;/strong&gt;, and not by offering a more traditional picture of what things would be like after the break (232, my emphasis).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Reading Paths&lt;/h2&gt;
&lt;p&gt;In addition to my favorite books, these themes formed some of the main currents of what I read this year:&lt;/p&gt;
&lt;h3&gt;Science Fiction Classics&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recWD9qNrgwEawbZJ&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recWD9qNrgwEawbZJ.C78Sxc2j_y5XIm.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recWD9qNrgwEawbZJ&quot;&gt;Parable of the Sower&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Octavia E. Butler&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recikplkRLx0IEHoH&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recikplkRLx0IEHoH.BVpCWcou_1IiW0t.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recikplkRLx0IEHoH&quot;&gt;Roadside Picnic&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Arkady &amp;amp; Boris Strugatsky&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;I’ve been a casual reader of sci-fi for a long time, but partly because of the Jameson book above, I made a resolution to deep dive into the classics this year. In addition to the fraught utopian ruminations of these two masterpieces, I also have Stanisław Lem’s &lt;em&gt;Solaris&lt;/em&gt; and Marge Piercy’s &lt;em&gt;Woman on the Edge of Time&lt;/em&gt; in the queue.&lt;/p&gt;
&lt;h3&gt;Natural World&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recD79EU1sxtz5HOv&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recD79EU1sxtz5HOv.B3v5zaru_1gy04f.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recD79EU1sxtz5HOv&quot;&gt;The Control of Nature&lt;/a&gt;&lt;/p&gt; &lt;p&gt;John McPhee&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recXuFgpzxJw7CBGf&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recXuFgpzxJw7CBGf.CYC5Ltf6_2ltl1h.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recXuFgpzxJw7CBGf&quot;&gt;Braiding Sweetgrass&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Robin Wall Kimmerer&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recYFiccT5wpaiamN&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recYFiccT5wpaiamN.BgS3oSR4_Z26VKgi.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recYFiccT5wpaiamN&quot;&gt;This Is Your Mind on Plants&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Michael Pollan&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/rec3YVreu5aZ8AWCq&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/rec3YVreu5aZ8AWCq.DbSkESjr_2wMfNU.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/rec3YVreu5aZ8AWCq&quot;&gt;An Urchin in the Storm&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Stephen Jay Gould&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;I &lt;a href=&quot;https://daniel-saunders.com/posts/essays/dialectical-ecology&quot;&gt;continued my trend&lt;/a&gt; of exploring the confluence of the social and natural worlds with these excellent titles. McPhee’s classic essays on precarious human attempts to flaunt natural processes were especially stimulating, as was Michael Pollan’s knowledgeable stroll through the psychoactive properties of opium, caffeine, and mescaline.&lt;/p&gt;
&lt;h3&gt;Politics as Worldmaking&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recPO42hNcCmxOTPs&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recPO42hNcCmxOTPs.DnWn61bi_DwTLt.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recPO42hNcCmxOTPs&quot;&gt;Reconsidering Reparations&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Olúfẹ́mi O. Táíwò&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recP6WLYDuyqRLRju&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recP6WLYDuyqRLRju.CgdeP5JJ_Z3AFaI.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recP6WLYDuyqRLRju&quot;&gt;Elite Capture&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Olúfẹ́mi O. Táíwò&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/rec67vUFWOLBpv8bq&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/rec67vUFWOLBpv8bq.CqdRk0lQ_wCLXA.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/rec67vUFWOLBpv8bq&quot;&gt;A World to Win&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Sven-Eric Liedman&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recUbL30a6S7e0h6X&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recUbL30a6S7e0h6X.DAJaEMtA_Z1jYBsi.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recUbL30a6S7e0h6X&quot;&gt;A Spectre, Haunting&lt;/a&gt;&lt;/p&gt; &lt;p&gt;China Miéville&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recaqDUjA1W0YF5c5&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recaqDUjA1W0YF5c5.DS0mOK2z_B7voR.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recaqDUjA1W0YF5c5&quot;&gt;Emergent Strategy&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Adrienne Maree Brown&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;“Politics as worldmaking” is a concept from Olúfẹ́mi O. Táíwò’s incredible book &lt;em&gt;Reconsidering Reparations&lt;/em&gt; (I would have written more about it above, but I have a longer essay about it forthcoming soon), and it aptly characterizes how these books and/or their subjects approach social change. Rather than drowning in the endless back-and-forth of sanctimonious, identity-driven liberal politics, worldmaking aims first to understand history so it can more effectively change the complex systemic problems we have been given. (It’s right there in &lt;a href=&quot;https://www.marxists.org/archive/marx/works/1845/theses&quot;&gt;the eleventh thesis on Feuerbach&lt;/a&gt;.) It’s about taking out the hammers—to tear down &lt;em&gt;and&lt;/em&gt; build up something new.&lt;/p&gt;
&lt;h3&gt;Existentialist / Absurdist / Postmodernist Fiction&lt;/h3&gt;
&lt;ul&gt; &lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recLhQzLKlAoe2yaR&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recLhQzLKlAoe2yaR.BGB6MXzQ_Wcfyr.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recLhQzLKlAoe2yaR&quot;&gt;The Fratricides&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Nikos Kazantzakis&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recOSKuqY6R4S4kwJ&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recOSKuqY6R4S4kwJ.DZ3C6D0h_D7YGh.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recOSKuqY6R4S4kwJ&quot;&gt;Christ Recrucified&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Nikos Kazantzakis&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recanTI1sjRPkz90L&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recanTI1sjRPkz90L.DCqvYkBI_1P5Agl.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recanTI1sjRPkz90L&quot;&gt;By Night in Chile&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Roberto Bolaño&lt;/p&gt; &lt;/article&gt; &lt;/li&gt;&lt;li&gt; &lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recsosidIO4CbTgKD&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recsosidIO4CbTgKD.DjkFxTNM_Z127h5m.webp&quot; /&gt; &lt;/a&gt; &lt;p&gt;&lt;a href=&quot;https://daniel-saunders.com/library/books/recsosidIO4CbTgKD&quot;&gt;Satantango&lt;/a&gt;&lt;/p&gt; &lt;p&gt;László Krasznahorkai&lt;/p&gt; &lt;/article&gt; &lt;/li&gt; &lt;/ul&gt;
&lt;p&gt;This is an odd section, but the heading accurately describes the kind of fiction I always find myself picking up. &lt;em&gt;Satantango&lt;/em&gt; in particular was a revelation, something like &lt;em&gt;Twin Peaks: The Return&lt;/em&gt; meets Tarkovsky, but as an absolutely crushing parable of betrayed hope and the brutal, blind idiocy of the will to power.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Using Airtable as a Jamstack CMS</title><link>https://daniel-saunders.com/posts/notes/using-airtable-as-a-jamstack-cms/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/using-airtable-as-a-jamstack-cms/</guid><description>How I used Airtable as a content management system for a small portfolio website.</description><pubDate>Sat, 03 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;aside&gt; &lt;div&gt; &lt;span&gt;Archived Post&lt;/span&gt; &lt;/div&gt; &lt;div&gt; &lt;p&gt;This post about web development is more than 2 years old and shows processes
and code that may be significantly out of date or broken. Additionally,
Airtable has since made their API more restrictive and plans more expensive,
and the following examples most likely will not work on the free tier.&lt;/p&gt; &lt;/div&gt; &lt;/aside&gt;
&lt;p&gt;Recently, I designed and built a &lt;a href=&quot;https://alexanderlblake.com&quot;&gt;portfolio site&lt;/a&gt; for a musician and composer. As a small “marketing” site, it was the perfect Jamstack project, and for that reason I used the phenomenal &lt;a href=&quot;https://astro.build&quot;&gt;Astro static site generator&lt;/a&gt; while pulling in some &lt;a href=&quot;https://headlessui.com&quot;&gt;Headless UI components&lt;/a&gt; for minimal interactivity.&lt;/p&gt;
&lt;p&gt;But early in the project I hit on a problem that ironically seems to crop up for just this kind of perfect &lt;a href=&quot;https://daniel-saunders.com/posts/essays/how-i-learned-to-stop-worrying-and-love-the-jamstack&quot;&gt;Jamstack scenario&lt;/a&gt;: how to enable the (individual, maybe not super tech-savvy) client to manage content in the easiest, most pleasant, and most cost-effective way? Given the simplicity of the overall site, it’s a much thornier question than you’d expect.&lt;/p&gt;
&lt;p&gt;This post is a brief overview of how I used Airtable to solve this problem for this specific kind of small portfolio website, which led to some interesting results.&lt;/p&gt;
&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;Markdown, while great for structuring content for blogs like this one, is in my opinion just not as versatile for managing content for such a portfolio project as a more traditional &lt;abbr&gt;CMS&lt;/abbr&gt; might be. I wanted to easily scaffold a number of different content types (testimonials, projects, compositions, events, credits, etc.), and, while technically possible in Markdown, this would not have been ideal for client editing. It would be quite a hard sell to get a client with little web experience beyond Squarespace or WordPress to start using a text editor to make content changes locally and then push changes to a code repository. There are a few Git-based “Markdown CMS” options that exist which theoretically address this problem, but I don’t find them terribly impressive or intuitive (at least I’ll say that for Netlify CMS, an absolute wreck, although &lt;a href=&quot;https://tina.io/&quot;&gt;Tina CMS&lt;/a&gt; in conjunction with static site generation looks promising for future experimentation).&lt;/p&gt;
&lt;p&gt;I had the pleasure of attending the &lt;a href=&quot;https://jamstack.org/conf/&quot;&gt;Jamstack Conference&lt;/a&gt; in October (it was fantastic!), and something I overheard there rang true in my experience—that as the industry moves away from WordPress (which still &lt;a href=&quot;https://almanac.httparchive.org/en/2022/cms#wordpress-in-2022&quot;&gt;powers a huge portion of the web&lt;/a&gt;, by the way), the use-case that WordPress was perfectly tailored to (namely, the personal/portfolio site of the type I’m talking about here) has been overlooked by most of the big-name, cutting-edge technologies.&lt;/p&gt;
&lt;p&gt;For example, there is an amazing crop of &lt;a href=&quot;https://www.sanity.io/headless-cms&quot;&gt;headless CMS&lt;/a&gt; options out there at the moment, although most are geared toward enterprise users. I’ve had a lot of fun learning and playing around with &lt;a href=&quot;https://www.sanity.io/&quot;&gt;Sanity&lt;/a&gt; and &lt;a href=&quot;https://www.storyblok.com/&quot;&gt;Storyblok&lt;/a&gt; in particular, but for the small personal portfolio site that WordPress excelled at, both feel a bit like bringing a Lamborghini to a go-kart track. The headless CMS space and its products are still evolving, so one day soon this might not seem like such a big deal. But WordPress was (is) unbelievably popular because, apart from any development considerations, it addressed this need for a simple, “plug-and-play” &lt;em&gt;content solution&lt;/em&gt; with minimal customization and ease of editing for the non-technical user.&lt;/p&gt;
&lt;p&gt;It was as a result of these problems and thoughts that I decided to try using &lt;a href=&quot;https://www.airtable.com/product&quot;&gt;Airtable&lt;/a&gt; as a content management system for this particular portfolio project—not an original idea by any means, but one that I had wanted to try my own way given the considerations above. Airtable, if you’re unfamiliar, is a kind of collaborative spreadsheet-database hybrid; it gives you all of the functionality of shared Excel sheets with the power of linked records and organizational methods you’d expect in a database. It’s a beautiful and intuitive product that I use regularly for my own work and personal needs. It also provides a straightforward, &lt;abbr&gt;REST&lt;/abbr&gt;-like &lt;a href=&quot;https://airtable.com/developers/web/api/introduction&quot;&gt;web API&lt;/a&gt; that allows the data you create to be used anywhere on the web.&lt;/p&gt;
&lt;p&gt;So here’s how I set up an “Airtable back-end” for this personal portfolio site—a back-end that happens to be incredibly easy for a client to set up, use, and maintain (at no charge!). This approach offered a number of benefits and some minor drawbacks—for example, it would probably become a nightmare if you had more than a few dozen records in each table—but overall I think it’s a great solution for that small Jamstack site where you need a no-nonsense, easy-to-edit content solution.&lt;/p&gt;
&lt;h2&gt;Airtable: Scaffolding the Data&lt;/h2&gt;
&lt;p&gt;Getting set up in Airtable is quick and easy. First, I created a “base,” which is the central hub for a project that can contain multiple tables and users related to that project (helpful because you can work in real-time on structuring and adding content with your client). From there, I added separate tables corresponding to each page or content collection type. For example, the “Pages” table has some recurring fields for each of the website’s pages, like a title, subtitle, featured image, SEO description, etc., while the “Credits” table is structured to show a content collection with information like year, role, image, and &lt;abbr&gt;IMDb&lt;/abbr&gt; link for movie and TV credits.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/a-blake-table.98S0uZvR_1iOvuK.webp&quot; /&gt; &lt;figcaption&gt;Records in the Credits table.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;What I love about Airtable is that these tables are super fast to set up, and setting data types for each field is painless. Just like a headless CMS, there is a large variety of types to select from, from strings to multiple attachments to rich text to custom formulas. The table editor is also completely decoupled from the data fetched on the front-end, so it’s possible to sort and filter the data here without it effecting anything you’re doing with it elsewhere (again, useful for content editors who might want to customize the experience here without breaking anything on the live site).&lt;/p&gt;
&lt;h2&gt;JavaScript: Getting the Data&lt;/h2&gt;
&lt;p&gt;For fetching the data on the front-end, I decided not to use the official &lt;a href=&quot;https://github.com/airtable/airtable.js/&quot;&gt;Airtable JavaScript client&lt;/a&gt; because I simply didn’t need all the functionality; if you’re not needing to do real-time record selection or app-like &lt;abbr&gt;CRUD&lt;/abbr&gt; operations, then you can use a much simpler fetch function with Airtable’s web &lt;abbr&gt;API&lt;/abbr&gt;. For situations like this, I’m a big fan of the &lt;a href=&quot;https://www.11ty.dev/docs/plugins/fetch/&quot;&gt;Eleventy Fetch plugin&lt;/a&gt;, which you can use on its own in any framework. In this case, fetching the data will happen at build time, making it fully compatible with a static site generator like Astro or Eleventy.&lt;/p&gt;
&lt;p&gt;Here’s an example of an asynchronous function that grabs an array of records from a given table, and accepts sorting and filtering parameters when called. For a static site where you might just need to have one set of the sorted and filtered data ready at hand, I found this to be ideal. (Following Astro’s project architecture, the example below is from a file of Airtable helper functions that lives in the &lt;code&gt;/src/utils&lt;/code&gt; directory.)&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/utils/airtable.js&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { &lt;/span&gt;&lt;span&gt;default&lt;/span&gt;&lt;span&gt; as&lt;/span&gt;&lt;span&gt; EleventyFetch } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;@11ty/eleventy-fetch&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Setting the Airtable secret API key and the Airtable base id&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// from environment variables&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; airtableToken &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; import&lt;/span&gt;&lt;span&gt;.meta.env.AIRTABLE_API_KEY;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; airtableBaseId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; import&lt;/span&gt;&lt;span&gt;.meta.env.AIRTABLE_BASE_ID;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; async&lt;/span&gt;&lt;span&gt; function&lt;/span&gt;&lt;span&gt; getRecords&lt;/span&gt;&lt;span&gt;(table, sortField, sortDirection) {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // Constructing a query URL (using the Airtable API URL encoder&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // here: https://codepen.io/airtable/pen/MeXqOg) and&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // adding in our filter and sort parameters&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    let&lt;/span&gt;&lt;span&gt; url &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; `https://api.airtable.com/v0/${&lt;/span&gt;&lt;span&gt;airtableBaseId&lt;/span&gt;&lt;span&gt;}/${&lt;/span&gt;&lt;span&gt;table&lt;/span&gt;&lt;span&gt;}?sort%5B0%5D%5Bfield%5D=${&lt;/span&gt;&lt;span&gt;sortField&lt;/span&gt;&lt;span&gt;}&amp;amp;sort%5B0%5D%5Bdirection%5D=${&lt;/span&gt;&lt;span&gt;sortDirection&lt;/span&gt;&lt;span&gt;}`&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // The beauty of Eleventy Fetch -- pass in our URL and&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    // set a few options for caching and authorization&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; response &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; EleventyFetch&lt;/span&gt;&lt;span&gt;(url, {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // Cache the responses for 1 hour; useful so you don&apos;t&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // constantly ping and exceed the limits on Airtable&apos;s API&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        duration: &lt;/span&gt;&lt;span&gt;&quot;1h&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // Set the data response type&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        type: &lt;/span&gt;&lt;span&gt;&quot;json&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        // Append the Airtable API authorization key to the query&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        fetchOptions: {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            headers: {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;                authorization: &lt;/span&gt;&lt;span&gt;`Bearer ${&lt;/span&gt;&lt;span&gt;airtableToken&lt;/span&gt;&lt;span&gt;}`&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            },&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        },&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    });&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    const&lt;/span&gt;&lt;span&gt; { records } &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; response;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    return&lt;/span&gt;&lt;span&gt; records;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;The function will return an array of objects from our specified Airtable table, which we can use in our page and component templates. For the “Credits” table, the &lt;abbr&gt;JSON&lt;/abbr&gt; data will look something like this:&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;Sample JSON response&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;[&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &quot;id&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;some id&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &quot;createdTime&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;some date&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &quot;fields&quot;&lt;/span&gt;&lt;span&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Name&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;The Time Traveler&apos;s Wife&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Year&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;2022&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Category&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;TV Series&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Role&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;Vocal Arranger&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Detail&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;1 Episode&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Link&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;www.imdb.com/title/tt8783930&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Image&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;span&gt;Array&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;ImageAlt&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;Poster for TV show The Time Traveler&apos;s Wife&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &quot;id&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;some id&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &quot;createdTime&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;some date&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &quot;fields&quot;&lt;/span&gt;&lt;span&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Name&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;Space Jam: A New Legacy&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Year&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;2021&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Category&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;Film&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Role&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;Choirmaster&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Detail&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Link&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;www.imdb.com/title/tt3554046&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;Image&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;span&gt;Array&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &quot;ImageAlt&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;Poster for film Space Jam: A New Legacy&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;To render the data, I call the function on a given page, making use of Astro’s front matter to import and set variables specific to that page. In this example, I’m also using a “Credit” &lt;a href=&quot;https://docs.astro.build/en/core-concepts/astro-components/&quot;&gt;Astro component&lt;/a&gt;, which both accepts props and creates slots to server-render child content—in this case the &lt;code&gt;credits&lt;/code&gt; data we’re getting from the &lt;code&gt;getRecords()&lt;/code&gt; function call:&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/pages/credits.astro&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { getRecords } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;../utils/airtable&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { getCategoryStyle } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;../utils/helpers&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; Credit &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;../components/Credit.astro&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; tableId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &apos;Credits&apos;&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;span&gt;// Can be the name or unique ID of the Airtable table&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Arrange the records by the &apos;Year&apos; field in descending order&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// and save to a variable&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; credits &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; getRecords&lt;/span&gt;&lt;span&gt;(tableId, &lt;/span&gt;&lt;span&gt;&apos;Year&apos;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&apos;desc&apos;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// When mapping over the credits array, first I&apos;ll use object&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// destructuring to make accessing the properties more easily accessible&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Airtable&apos;s image field is an array, so to get the&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// image source we can access the first index of the array&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Finally, I&apos;ll use a custom helper function that assigns unique CSS classes&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// based on an item&apos;s category input&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;h2&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;Credits&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;h2&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt; class=&lt;/span&gt;&lt;span&gt;&quot;slider&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    {&lt;/span&gt;&lt;span&gt;credits.&lt;/span&gt;&lt;span&gt;map&lt;/span&gt;&lt;span&gt;((item) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        const&lt;/span&gt;&lt;span&gt; { fields } &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; item;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        const&lt;/span&gt;&lt;span&gt; imageSrc &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; fields.Image[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].url;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        return&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;          &amp;lt;&lt;/span&gt;&lt;span&gt;Credit&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              href={&lt;/span&gt;&lt;span&gt;fields.Link&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              imageSrc={&lt;/span&gt;&lt;span&gt;imageSrc&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              imageAlt={&lt;/span&gt;&lt;span&gt;fields.ImageAlt&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              categoryName={&lt;/span&gt;&lt;span&gt;fields.Category&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              categoryStyle={&lt;/span&gt;&lt;span&gt;getCategoryStyle&lt;/span&gt;&lt;span&gt;(fields.Category)&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;          &amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &amp;lt;&lt;/span&gt;&lt;span&gt;h3&lt;/span&gt;&lt;span&gt;&amp;gt;{&lt;/span&gt;&lt;span&gt;fields.Name&lt;/span&gt;&lt;span&gt;}&amp;lt;/&lt;/span&gt;&lt;span&gt;h3&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &amp;lt;&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt; class=&lt;/span&gt;&lt;span&gt;&quot;details&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              &amp;lt;&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt; class=&lt;/span&gt;&lt;span&gt;&quot;cluster&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;                {&lt;/span&gt;&lt;span&gt;[fields.Year, fields.Role].&lt;/span&gt;&lt;span&gt;join&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos; • &apos;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              &amp;lt;/&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;              &amp;lt;&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span&gt;em&lt;/span&gt;&lt;span&gt;&amp;gt;{&lt;/span&gt;&lt;span&gt;fields.Detail&lt;/span&gt;&lt;span&gt;}&amp;lt;/&lt;/span&gt;&lt;span&gt;em&lt;/span&gt;&lt;span&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;            &amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;          &amp;lt;/&lt;/span&gt;&lt;span&gt;Credit&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        );&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    })&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;On the live site, the rendered and styled output looks like this (using a somewhat outdated slider powered by &lt;a href=&quot;https://flickity.metafizzy.co/&quot;&gt;Flickity&lt;/a&gt;):&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/a-blake-credits.7MeRS8G0_1Nu5XY.webp&quot; /&gt; &lt;figcaption&gt;Credits entries styled on the front-end.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;h3&gt;A note on images&lt;/h3&gt;
&lt;p&gt;Airtable &lt;a href=&quot;https://support.airtable.com/docs/changes-to-airtable-attachments&quot;&gt;recently announced&lt;/a&gt; that the URLs for attachments will now expire after “a couple of hours.” For this reason (and general performance considerations), it’s not a good idea to use the image links provided by Airtable directly in your markup or to treat Airtable as a “hosted service” for images/attachments. Instead, use something like the &lt;a href=&quot;https://docs.astro.build/en/guides/integrations-guide/image/&quot;&gt;Astro&lt;/a&gt; or &lt;a href=&quot;https://www.11ty.dev/docs/plugins/image/&quot;&gt;Eleventy&lt;/a&gt; image plugins when dealing with Airtable images, both of which will, among other things, convert an external source URL to a local image(s) at build time, according to your specifications.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/components/credit.astro&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { Image } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &quot;@astrojs/image/components&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; { href, imageSrc, imageAlt, categoryName, categoryStyle } &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; Astro.props;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// ...&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Other component markup&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// ...&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// For external images, width and height or one value plus aspect ratio required&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;Image&lt;/span&gt;&lt;span&gt; src={&lt;/span&gt;&lt;span&gt;imageSrc&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt; width={&lt;/span&gt;&lt;span&gt;900&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt; aspectRatio=&lt;/span&gt;&lt;span&gt;&apos;10:16&apos;&lt;/span&gt;&lt;span&gt; alt={&lt;/span&gt;&lt;span&gt;imageAlt&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt; format=&lt;/span&gt;&lt;span&gt;&quot;webp&quot;&lt;/span&gt;&lt;span&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;h2&gt;Airtable Interface: Editing the Data&lt;/h2&gt;
&lt;p&gt;Now this is the part where it gets really exciting. While it’s possible to just leave things here and have a basic content management system that can integrate with any front-end, Airtable also offers an &lt;a href=&quot;https://www.airtable.com/guides/collaborate/getting-started-with-interface-designer&quot;&gt;interface designer&lt;/a&gt; that allows you to repurpose your table data into custom visual interfaces. What this means is that you can effectively recreate a CMS “dashboard” within Airtable that makes the client editing experience even smoother.&lt;/p&gt;
&lt;p&gt;Back in Airtable, I set up an interface that breaks out the various tables into “content collections,” which all show up on one dashboard. The records are shown as these nice little cards (with customizable preview fields), and editing a record is as easy as clicking into one and changing a field. It’s even possible to use different visual widgets for different data types (i.e., a calendar widget for event records—super cool!).&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/a-blake-interface.kPqTR51H_2q7QN8.webp&quot; /&gt; &lt;figcaption&gt;Airtable interface structured by “content collections” and displayed as visual cards.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;h2&gt;Publishing&lt;/h2&gt;
&lt;p&gt;Publishing the site from within the interface itself is the one drawback to this approach. Unfortunately, on the free Airtable plan you can’t trigger scripts in an interface, so I’m not able to use a webhook to publish the site from my “dashboard.” It’s a minor (and understandable) annoyance, but it means that I have to have the client return to the table editor and click a button to run the build script, which isn’t as seamless as I’d like it to be. Still, pretty cool that you can deploy the site with a click of a button from within Airtable.&lt;/p&gt;
&lt;p&gt;Here is how I set this site up to deploy to Netlify using a &lt;a href=&quot;https://docs.netlify.com/configure-builds/build-hooks/?_ga=2.101139012.412683381.1670093918-646861794.1654377013&quot;&gt;custom build hook&lt;/a&gt;. I added a new table in my base called “Publish,” where I have one record that uses the Airtable &lt;a href=&quot;https://airtable.com/developers/scripting&quot;&gt;scripting extension&lt;/a&gt; to run the hook when the “Publish Site” button is clicked.&lt;/p&gt;
&lt;p&gt;The Airtable scripting editor is a bit idiosyncratic, but it’s straightforward enough to implement a build hook like this:&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;Airtable Scripting Extension&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;// Unique webhook URL from Netlify with a title appended (which will&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// show up on the Netlify deploy report)&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; webhookUrl &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; `https://api.netlify.com/build_hooks/${&lt;/span&gt;&lt;span&gt;UNIQUE_NETLIFY_ID&lt;/span&gt;&lt;span&gt;}?trigger_title=Airtable+Publish`&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Options that set the fetch parameters for the webhook&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; requestOptions &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    method: &lt;/span&gt;&lt;span&gt;&quot;POST&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    redirect: &lt;/span&gt;&lt;span&gt;&quot;follow&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Construct the function that will send the webhook when the&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// publish button is clicked&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; publishToNetlify&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span&gt; () &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    fetch&lt;/span&gt;&lt;span&gt;(webhookUrl, requestOptions)&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        .&lt;/span&gt;&lt;span&gt;then&lt;/span&gt;&lt;span&gt;((response) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; response.&lt;/span&gt;&lt;span&gt;text&lt;/span&gt;&lt;span&gt;())&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        .&lt;/span&gt;&lt;span&gt;then&lt;/span&gt;&lt;span&gt;((result) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; console.&lt;/span&gt;&lt;span&gt;log&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;Published!&quot;&lt;/span&gt;&lt;span&gt;, result))&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        .&lt;/span&gt;&lt;span&gt;catch&lt;/span&gt;&lt;span&gt;((error) &lt;/span&gt;&lt;span&gt;=&amp;gt;&lt;/span&gt;&lt;span&gt; console.&lt;/span&gt;&lt;span&gt;log&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;Failed to publish&quot;&lt;/span&gt;&lt;span&gt;, error));&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Call the function: site rebuilt on Netlify with one click!&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;publishToNetlify&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Optional: update a field in the Publish table that&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// lets us know when the last publish time was&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Get current datetime&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; publishTime &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; new&lt;/span&gt;&lt;span&gt; Date&lt;/span&gt;&lt;span&gt;().&lt;/span&gt;&lt;span&gt;toLocaleString&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Select the record field to update&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; table &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; base.&lt;/span&gt;&lt;span&gt;getTable&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;Publish&quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; query &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; await&lt;/span&gt;&lt;span&gt; table.&lt;/span&gt;&lt;span&gt;selectRecordsAsync&lt;/span&gt;&lt;span&gt;({ fields: [] });&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; recordId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; query.records[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].id;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// Print text to the selected field: in this case, the&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;// last published date and time&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;output.&lt;/span&gt;&lt;span&gt;text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;`Last published ${&lt;/span&gt;&lt;span&gt;publishTime&lt;/span&gt;&lt;span&gt;}`&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; table.&lt;/span&gt;&lt;span&gt;updateRecordAsync&lt;/span&gt;&lt;span&gt;(recordId, {&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &quot;Last Published&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;`Last published ${&lt;/span&gt;&lt;span&gt;publishTime&lt;/span&gt;&lt;span&gt;}`&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;});&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;So that’s how I built out an Airtable CMS in less than an hour. I’m eager to keep exploring new ways to build Jamstack sites with Airtable and other tools. If you’ve done anything similar or have ideas on how this could be improved, feel free to let me know!&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Satantango</title><link>https://daniel-saunders.com/library/reviews/satantango/</link><guid isPermaLink="true">https://daniel-saunders.com/library/reviews/satantango/</guid><description>My review of Satantango by László Krasznahorkai.</description><pubDate>Fri, 28 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recsosidIO4CbTgKD&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recsosidIO4CbTgKD.DjkFxTNM_1oVl86.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recsosidIO4CbTgKD&quot;&gt;Satantango&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;László Krasznahorkai&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; European Literature, Fiction &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;A revelation, something like &lt;em&gt;Twin Peaks: The Return&lt;/em&gt; meets Andrei Tarkovsky, but as an absolutely crushing parable of betrayed hope and the brutal, blind idiocy of the will to power.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>A World to Win</title><link>https://daniel-saunders.com/library/reviews/a-world-to-win/</link><guid isPermaLink="true">https://daniel-saunders.com/library/reviews/a-world-to-win/</guid><description>My review of A World to Win: The Life and Works of Karl Marx by Sven-Eric Liedman.</description><pubDate>Mon, 10 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/rec67vUFWOLBpv8bq&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/rec67vUFWOLBpv8bq.CqdRk0lQ_Z213kaj.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/rec67vUFWOLBpv8bq&quot;&gt;A World to Win: The Life and Works of Karl Marx&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Sven-Eric Liedman&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Biography, European Literature, History, Marxism, Socialism &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;A solid biography that is more a birds-eye survey of Marx’s writings and correspondence than it is an in-depth overview of his life and times, although there are some particularly illuminating sections on Marx’s political involvement in the First International.&lt;/p&gt;
&lt;p&gt;Liedman goes a little too hard on Marxism after Marx, whose faults he speciously blames solely on Engels. But it’s worth a read to get a sense of how Marx was not a “systems builder,” but a dynamic, critical thinker constantly in search of new ways to understand and unfold the totality of capitalist social relations.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>How I Learned to Stop Worrying and Love the Jamstack</title><link>https://daniel-saunders.com/posts/essays/how-i-learned-to-stop-worrying-and-love-the-jamstack/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/essays/how-i-learned-to-stop-worrying-and-love-the-jamstack/</guid><description>How I came to build (a previous version of) this site on the Jamstack.</description><pubDate>Mon, 26 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;aside&gt; &lt;div&gt; &lt;span&gt;Archived Post&lt;/span&gt; &lt;/div&gt; &lt;div&gt; &lt;p&gt;This post about web development is more than 2 years old and shows processes
and code that may be significantly out of date or broken. Feel free to make
use of it, but tread carefully.&lt;/p&gt; &lt;/div&gt; &lt;/aside&gt;
&lt;p&gt;Since I started coding in earnest at the end of 2021, I’ve used this website as a testing ground for many of the tools I’ve encountered on an almost weekly basis. It’s become a living embodiment of my long, exasperating, but genuinely exciting journey into front-end web development.&lt;/p&gt;
&lt;p&gt;That’s a longer story that I want to write about in more depth at some point. But a big piece of it is how I came to build the current iteration of this admittedly eclectic site, which is neither a dev blog nor a design/writing showcase nor a reading journal, but something that combines aspects of them all. In this respect it’s a perfect reflection of my current preoccupations. The ultimate goal was and is to create a site in the simplest and most efficient manner possible, where my creativity could be completely unrestrained. (I should note here for clarification that I think of myself wholly as a web designer with front-end skills, and not as a programmer or software engineer.)&lt;/p&gt;
&lt;p&gt;Many of the articles here started their lives as WordPress posts or Google Docs drafts, spent a brief time as entries in a custom CMS app, and are now enjoying their apotheosis as features of a totally custom-built static site using the &lt;a href=&quot;https://jamstack.org/&quot;&gt;Jamstack&lt;/a&gt; approach—an approach to which I am now completely devoted. In a way, parts of the web are drifting toward the exhilarating and more than slightly anarchic days of when anyone could build a site with HTML, however they wanted, before monolithic approaches dominated (hello, 1996!). In my opinion, this is a good thing and opens up a lot of opportunities for designers. Here’s how it happened for me.&lt;/p&gt;
&lt;h2&gt;First Attempt: Statamic CMS&lt;/h2&gt;
&lt;p&gt;Is PHP dead? &lt;a href=&quot;https://w3techs.com/technologies/details/pl-php&quot;&gt;Definitely not&lt;/a&gt;, but I also don’t really want to learn it at this point. There, I said it. And yet PHP was the tool I first reached for when I decided to build this blog from scratch, probably because it was the reigning language when I last tried to master web development about a decade ago.&lt;/p&gt;
&lt;p&gt;The good news is that things have improved substantially since the days of WordPress dominance. The PHP ecosystem is bolstered almost single-handedly by the popular &lt;a href=&quot;https://laravel.com/&quot;&gt;Laravel framework&lt;/a&gt;, which provides a layer of abstraction that makes the task of building websites and apps much easier than it otherwise would be. I started exploring around the Laravel world and found some promising tools for someone wanting to build a content-based site without too much knowledge of PHP, which eventually led me to &lt;a href=&quot;https://statamic.com/&quot;&gt;Statamic&lt;/a&gt;, a Laravel-based content management system (CMS). The less than good news is that I inevitably ran up against some of the same limitations I always encountered with PHP.&lt;/p&gt;
&lt;p&gt;But before I get to those complaints, let me sing the praises of Statamic (whose name captures the mix of “static” and “dynamic” that aptly describes a blog-type site). The product is beautiful, the community is extremely helpful, and the overall design sensibility that it represents (a la co-creator &lt;a href=&quot;https://jackmcdade.com/&quot;&gt;Jack McDade&lt;/a&gt;) is compelling. As far as I’m concerned, it’s the only PHP-driven WordPress alternative anyone would ever need.&lt;/p&gt;
&lt;p&gt;On top of that, Statamic was appealing to me for a few specific reasons. Statamic bills itself as a “flat-file” CMS, meaning your content isn’t stored in a database but is readily available and editable in your code base via Markdown files (more on those in a moment). For most blog or personal sites, a database seems like an overly complex solution to a relatively simple problem—after all, you might only have a few hundred blog posts on a site, and each of those posts have only a few fields (author, date, category, etc.). So the added complexity of integrating with database software (something WordPress does) is unnecessary if your content doesn’t absolutely require it. (To be clear, you &lt;em&gt;can&lt;/em&gt; use a database with Statamic, but the default setup is database-less.) This idea of reducing complexity and not over-engineering solutions to simple problems is a recurring theme in what follows.&lt;/p&gt;
&lt;p&gt;I like Statamic for a lot of other reasons as well. So why didn’t I use it ultimately for this site? It comes down to a few not insurmountable but significant issues. Without going too deep, it essentially boils down to my old struggle with PHP. More specifically, my struggle to &lt;em&gt;run&lt;/em&gt; PHP on a Windows machine. Unhappily, even in the year 2022, a Windows user needs to install and manage a bundle of software just to be able to run a PHP development environment. (As I understand it, the process is &lt;em&gt;much&lt;/em&gt; simpler if you’re using macOS—which, I know, seems to provide an answer to my problem. Alas.) I tried classic bundles like WAMP, I tried Laravel tools like Homestead and Sail, I tried custom Docker containers. All were complex, sluggish solutions that felt simply unnecessary for what I wanted to do, which was … to generate HTML and CSS.&lt;/p&gt;
&lt;p&gt;Another roadblock was specific to the &lt;em&gt;kind&lt;/em&gt; of thing Statamic is—which is a PHP-driven CMS. Although Statamic rightly bills itself as a more superior product than WordPress, at the end of the day they are still both applications that have to run server-side scripting, both to deliver content and to work at all. (Granted, you &lt;em&gt;can&lt;/em&gt; employ Statamic as a static site generator (see below), but I did not find this to be a very intuitive process.) In addition to the added complexity in development, this also means you have to deal with the headache of managed hosting. Fine for a network engineer, but mostly a mess for a designer to try to figure out.&lt;/p&gt;
&lt;p&gt;Statamic is a great product, and I don’t want to give the impression that all PHP-driven CMS’s are useless or that I would never use them for a project. The point is that the frustrations I had with them as a designer and not programmer drove me to the next stage in my journey, by raising some key questions—if you’re using a database-less, flat-file CMS anyway, why do you need a complex application like Laravel/Statamic to serve your files? Why do you need a bespoke templating system and (cough)outdated(cough) coding language to make this possible? Isn’t there a better, less complex way?&lt;/p&gt;
&lt;h2&gt;Second Attempt: Eleventy SSG&lt;/h2&gt;
&lt;p&gt;Enter the Jamstack. &lt;a href=&quot;https://jamstack.org/&quot;&gt;Jamstack&lt;/a&gt; is an architecture, philosophy, and broad set of tools for building simpler, lighter, and more performance-driven websites. It’s been gaining traction in the last few years and is now having a truly breakout moment. The “JAM” in the stack refers to the independent but interconnected elements of JavaScript, APIs, and Markup, and that just about sums up the broadest extent of its concerns.&lt;/p&gt;
&lt;p&gt;The Jamstack approach is about simplifying the &lt;em&gt;way&lt;/em&gt; sites are built and the experience developers have &lt;em&gt;while building&lt;/em&gt; sites, so that rather than fighting their tools, developers can get on to the business of what (I think) truly matters: to deliver content in the most accessible and efficient HTML and CSS as possible. Compared to what seemed like the overly complex challenges of traditional development, this straightforwardness immediately appealed to me.&lt;/p&gt;
&lt;p&gt;Another huge selling point was the freedom to use &lt;em&gt;the best or preferred tool for the job&lt;/em&gt;, for each and every job. To me, that’s a huge improvement over monolithic systems of the past, where front-end/back-end processes were tightly coupled. I’m not limited by the abstractions of a particular framework, but can select an approach or tool that makes the most sense to me.&lt;/p&gt;
&lt;p&gt;At the core of Jamstack is the idea of serving &lt;a href=&quot;https://www.sanity.io/what-is-a-static-site&quot;&gt;static sites&lt;/a&gt;, which are usually built with the help of a static site generator (SSG). As the “J” in Jamstack indicates, most of these tools are JavaScript based. This required a foray into JavaScript-land, by far a bigger dumpster fire than PHP-land. Nevertheless, it was a foray that I was prepared to make, because like it or not, JavaScript is only going to become more ubiquitous.&lt;/p&gt;
&lt;p&gt;Despite the many bewildering, bisyllabic JavaScript frameworks out there that seem to multiply weekly (&lt;a href=&quot;https://jamstack.org/generators/&quot;&gt;sample here&lt;/a&gt;), the key element for me was the approachability of SSGs. This was especially true for &lt;a href=&quot;https://www.11ty.dev/&quot;&gt;Eleventy&lt;/a&gt; (or 11ty), the SSG I eventually used to build this site. Eleventy bills itself as “a simpler static site generator,” which, in the age of React, is a breath of fresh air. Not only does Eleventy ship zero client-side JavaScript with your site, unlike React behemoths such as &lt;a href=&quot;https://nextjs.org/&quot;&gt;Next.js&lt;/a&gt;—a huge win for simplicity and accessibility in itself—it allows you the freedom to use a &lt;a href=&quot;https://www.11ty.dev/docs/languages/&quot;&gt;variety of templating languages&lt;/a&gt; and approaches in building your site that are framework agnostic. This freedom meant that I always felt like what I was doing had a clear link to my intentions, and I was never fighting my tools.&lt;/p&gt;
&lt;p&gt;The other game-changing factor for me was &lt;a href=&quot;https://www.markdownguide.org/&quot;&gt;Markdown&lt;/a&gt;, an extremely flexible and easy-to-use markup language. Markdown has been around for a while, and yes, Statamic and many other CMS solutions use a Markdown content approach as well. But SSGs like Eleventy simplify content authoring for sites like blogs and portfolios. In Eleventy, pages, posts, projects, events, or any other content schema you can imagine live a tangible reality in a Markdown &lt;code&gt;.md&lt;/code&gt; file. Every character is subject to manual control. There’s no CMS, database, or any other level of abstraction—your files are just there, ready to be used. (A side note here is that it is possible and relatively straightforward to pull in content from a &lt;a href=&quot;https://www.storyblok.com/tp/headless-cms-explained&quot;&gt;headless CMS&lt;/a&gt; like Sanity or Storyblok and use it in an SSG. You can even &lt;a href=&quot;https://bryanlrobinson.com/blog/using-11ty-javascript-data-files-to-mix-markdown-and-cms-content-into-one-collection/&quot;&gt;combine the approaches!&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Let’s take a look at a few examples. Below is the simplified directory structure for this site. The &lt;code&gt;src&lt;/code&gt; directory is where all of the building and content authoring happens, while the &lt;code&gt;_site&lt;/code&gt; directory holds the static files that Eleventy builds for deployment on the web. Within &lt;code&gt;src&lt;/code&gt;, the &lt;code&gt;_includes&lt;/code&gt; sub-directory holds the actual page and component templates (&lt;code&gt;.njk&lt;/code&gt; being the filename extension for &lt;a href=&quot;https://mozilla.github.io/nunjucks/&quot;&gt;Nunjucks&lt;/a&gt;, my JavaScript templating language of choice).&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;Project Directory&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;├── _site/&lt;/span&gt;&lt;span&gt; # The 11ty build directory&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;├── src/&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   ├── _includes/&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   ├── layouts/&lt;/span&gt;&lt;span&gt; # For high-level page layout templates&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   │   ├── base.njk&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   │   ├── posts-index.njk&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   │   ├── post-view.njk&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   ├── partials/&lt;/span&gt;&lt;span&gt; # For reusable site components&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   │   ├── site-header.njk&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   │   ├── site-footer.njk&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   ├── assets/&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   ├── images.jpg&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   ├── styles/&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   ├── site.css&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   ├── posts/&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   ├── essays/&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   │   ├── how-i-learned-to-stop-worrying-and-love-the-jamstack.md&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   │   ├── another-essay-title.md&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   ├── notes/&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   │   ├── note-title.md&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   ├── pages/&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   ├── index.njk&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   ├── posts.njk&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;│   │   ├── now.njk&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;├── .eleventy.js&lt;/span&gt;&lt;span&gt;  # The 11ty config file&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;├── package.json&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;├── etc.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;What I love about this is that everything is right in front of me—templates, content, styling, etc. Also, the directory structure largely reflects the route structure of the deployed site. In other words, the file &lt;code&gt;src/posts/essays/another-essay-title.md&lt;/code&gt; will output to a page that lives at &lt;em&gt;/posts/essays/another-essay-title/&lt;/em&gt; on the live site.&lt;/p&gt;
&lt;p&gt;The key element in the &lt;code&gt;.md&lt;/code&gt; files is the &lt;em&gt;front matter&lt;/em&gt;—in the example below, the stuff in between the fenced &lt;code&gt;---&lt;/code&gt; elements (here written in &lt;a href=&quot;https://www.cloudbees.com/blog/yaml-tutorial-everything-you-need-get-started&quot;&gt;YAML syntax&lt;/a&gt;). The front matter is like a file’s metadata that becomes available to Eleventy for templating/creating content collections, and anything else you can think of. The Markdown file below has front matter items that control the page’s layout template, title, description, and date. The other thing to note is that the &lt;code&gt;tags&lt;/code&gt; value tells Eleventy to create a &lt;em&gt;collection&lt;/em&gt; of that name—here a collection called posts. &lt;a href=&quot;https://www.11ty.dev/docs/collections/&quot;&gt;Collections&lt;/a&gt; are a super powerful feature in Eleventy that let you group content together to do lots of exciting things.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/posts/essays/post.md&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;layout&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;layouts/post-view.njk&quot;&lt;/span&gt;&lt;span&gt; # sets rendered page template&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;title&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;How I Learned to Stop Worrying and Love the Jamstack&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;description&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;A short description of the post.&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;date&lt;/span&gt;&lt;span&gt;: 2022-09-21&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;tags&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;posts&lt;/span&gt;&lt;span&gt; # tells 11ty which collection this belongs to&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;Body of the post in [Markdown](https://www.markdownguide.org/).&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;Once you have a collection, you can render its data with a templating language—again, I’m using Nunjucks here. On a posts index page template (i.e., a page listing all of our posts), I can loop through the entries and access the collection object’s front matter within its &lt;code&gt;data&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/_includes/layouts/posts-index.njk&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;&amp;lt;ul class=&quot;post-list&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  {% &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; post &lt;/span&gt;&lt;span&gt;in&lt;/span&gt;&lt;span&gt; collections.posts %}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &amp;lt;li class=&quot;card&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &amp;lt;a href=&quot;{{ post.url }}&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &amp;lt;h3&amp;gt;{{ post.data.title }}&amp;lt;/h3&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &amp;lt;!-- Date formatted with a custom filter --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &amp;lt;p&amp;gt;{{ post.data.date | readableDate }}&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;        &amp;lt;p&amp;gt;{{ post.data.description }}&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;      &amp;lt;/a&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;    &amp;lt;/li&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  {% &lt;/span&gt;&lt;span&gt;endfor&lt;/span&gt;&lt;span&gt; %}&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;Then, on another template for the actual post view, I can render the front matter and body directly:&lt;/p&gt;
&lt;figure&gt; &lt;figcaption&gt;  &lt;span&gt;src/_includes/layouts/post-view.njk&lt;/span&gt; &lt;/figcaption&gt; &lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;&amp;lt;article&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  &amp;lt;h1&amp;gt;{{ title }}&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  &amp;lt;p&amp;gt;{{ date | readableDate }}&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  &amp;lt;!-- Render the Markdown body content as HTML --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;  &amp;lt;section&amp;gt;{{ content | safe }}&amp;lt;/section&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/figure&gt;
&lt;p&gt;Again, what I like about this approach is that everything exists in front of me. Even though SSGs have a learning curve, and they’re all different, making the jump to Jamstack was a challenge that furthered rather than hindered me in my web development journey.&lt;/p&gt;
&lt;p&gt;Ultimately, I think these tools do a great job at making web development more accessible by reducing needless complexity. Of course, you can do a lot of the same things with a tool like Statamic, and on top of that, there’s a definite tradeoff between a truly dynamic vs. static site. Jamstack sites wouldn’t be ideal for every project out there, but you’d be surprised at how many use cases it covers. And it’s great having the freedom and independence to do what you want, how you want. When the process is smooth, it means more attention and energy for the fun stuff.&lt;/p&gt;
&lt;h2&gt;Tech Stack&lt;/h2&gt;
&lt;p&gt;This site adheres to a pretty basic Jamstack model: a site generator takes content authored in Markdown and builds static web pages, which are then deployed on a serverless cloud platform. Here is the full list of tools I used to build this site:&lt;/p&gt;
&lt;h3&gt;Command Line – Git Bash&lt;/h3&gt;
&lt;p&gt;I use the Git Bash profile on the Windows Terminal app. The Git interface and syntax just makes more sense to me than the default Windows alternatives (although I’m getting Linux-pilled and might very well switch to &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/about&quot;&gt;WSL&lt;/a&gt; at some point). I use the command line primarily to interact with the &lt;a href=&quot;https://en.wikipedia.org/wiki/Node.js&quot;&gt;Node.js environment&lt;/a&gt; via &lt;a href=&quot;https://en.wikipedia.org/wiki/Npm_(software)&quot;&gt;npm&lt;/a&gt; to download dependency tools like PostCSS/Tailwind, Eleventy, and html-minifier, and to spin up a local development server (with no extra environment requirements!).&lt;/p&gt;
&lt;h3&gt;Text Editor – VS Code&lt;/h3&gt;
&lt;p&gt;My &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;VS Code&lt;/a&gt; setup uses the &lt;a href=&quot;https://www.jetbrains.com/lp/mono/&quot;&gt;Jet Brains Mono&lt;/a&gt; typeface and &lt;a href=&quot;https://www.vscolors.com/themes/f5d7ffda-c1d6-4070-ba80-803c705a1ee6-7b8543f0&quot;&gt;Monokai Pro (Octagon filter)&lt;/a&gt; color scheme, as well as a bunch of extensions for syntax highlighting and linting.&lt;/p&gt;
&lt;h3&gt;Content Schema &amp;amp; Authoring – Markdown&lt;/h3&gt;
&lt;p&gt;I author content in Markdown, either directly in VSCode or with the fantastic &lt;a href=&quot;https://ia.net/writer&quot;&gt;iA Writer&lt;/a&gt; Markdown editor.&lt;/p&gt;
&lt;h3&gt;Site Generator – Eleventy + Nunjucks&lt;/h3&gt;
&lt;p&gt;All of the site’s pages are built with the Eleventy static site generator, and my JavaScript templating language of choice is Nunjucks (although, as noted above, Eleventy supports many more). I also use some of Eleventy’s fantastic plugins, including Image (for image optimization and caching), Fetch (for calling external APIs—in my case, top page views from Fathom Analytics for the “Top Views” sidebar), RSS (for generating an RSS/Atom feed), and Syntax Highlighting (for the cool code highlights as seen in this post).&lt;/p&gt;
&lt;h3&gt;Styling – Tailwind &amp;amp; Custom CSS&lt;/h3&gt;
&lt;p&gt;Given the hype and controversy surrounding &lt;a href=&quot;https://tailwindcss.com/&quot;&gt;Tailwind CSS&lt;/a&gt;, I had to give it a try. (P.S., I like it, for the most part, and I have some reasonable thoughts I’d like to add to the unrestrained discourse soon.) I’m using it here as a &lt;a href=&quot;https://postcss.org/&quot;&gt;PostCSS&lt;/a&gt; plugin alongside others allowing me to write CSS in an SCSS-like syntax. The colors are from Tailwind’s pretty excellent &lt;a href=&quot;https://tailwindcss.com/docs/customizing-colors&quot;&gt;color palette&lt;/a&gt;, and fonts are served through Adobe Typekit.&lt;/p&gt;
&lt;h3&gt;Interactivity – Alpine &amp;amp; Custom JS&lt;/h3&gt;
&lt;p&gt;I’m using minimal JavaScript on the site, mostly through &lt;a href=&quot;https://alpinejs.dev/&quot;&gt;Alpine.js&lt;/a&gt; for menus/dropdowns. Like Tailwind, Alpine allows authoring directly in markup, which I find very convenient. For some other interactive features—dark/light mode, random post generator—I’ve written my own vanilla Javacript.&lt;/p&gt;
&lt;h3&gt;Deployment – GitHub &amp;amp; Netlify&lt;/h3&gt;
&lt;p&gt;The source code is stored in a repository on &lt;a href=&quot;https://github.com/features&quot;&gt;GitHub&lt;/a&gt;, which is then used to trigger deploys on the &lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify platform&lt;/a&gt;. Netlify is a great service which has extensive features, some of which (like Edge Functions) make static sites virtually indistinguishable from a fully-fledged dynamic site.&lt;/p&gt;
&lt;h3&gt;Analytics – Fathom&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://usefathom.com/&quot;&gt;Fathom&lt;/a&gt; is privacy-focused analytics tracker that also has a great API, which I’m using to pull top page views to display to users on the home and posts pages.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Acting Like an Ancestor</title><link>https://daniel-saunders.com/posts/essays/acting-like-an-ancestor/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/essays/acting-like-an-ancestor/</guid><description>Combating the racial and ecological damage of capitalism through a long-term revolutionary patience.</description><pubDate>Thu, 10 Mar 2022 00:00:00 GMT</pubDate><content:encoded>&lt;aside&gt; &lt;div&gt; &lt;span&gt;Assumed Audience&lt;/span&gt; &lt;/div&gt; &lt;div&gt; &lt;p&gt;This review essay was originally intended for an &lt;a href=&quot;https://christiansocialism.com/biashome/&quot;&gt;online publication of
Christian Socialism&lt;/a&gt;
(unfortunately it was never published there). It assumes a self-identified
Christian Left audience serious about thinking through the commitments and
failures of Christianity alongside the urgencies of socialist politics.&lt;/p&gt; &lt;/div&gt; &lt;/aside&gt;
&lt;p&gt;We live in a profoundly connected world. This is not a world any of us chose to inherit; its present, disfigured shape has been molded by centuries of inertia set in motion by violence and accident, intentional and unintentional choice, structural oppression and human error. The world system built on the foundation of colonialism, slavery, capitalism, and environmental destruction is a constantly amassing economic, political, and social glacier from which no individual or place is exempt. This is the world we all inherit, a world buckling under the uneven distribution of advantage over time.&lt;/p&gt;
&lt;p&gt;The question of how we got here is crucial, both for understanding the interconnected present and its myriad problems and related injustices, and for clarifying the substance of a future world that aims to set things right. But too often this process is beset by a glaring historical amnesia. At least in American discourse, we tend to believe that our problems are recently made, or, even worse, that there &lt;em&gt;are&lt;/em&gt; no problems which have not already solved themselves or that are in the process of doing so. This amnesia is just as evident in the conservative backlash over the teaching of racial history in schools as it is in techno-utopian schemes to solve the climate crisis by means of resource-intensive consumption.&lt;/p&gt;
&lt;p&gt;Against such entrenched amnesia, a “long view” of the present system would focus on its historical birth and making, its build-up from contingent elements that have solidified over time into a mass of global inequality. A long view would also demand that present efforts aimed at reparations to right the unjust structures we inherit be nothing less than &lt;em&gt;worldmaking&lt;/em&gt; projects in their own right. Rather than seeing reparations as a one-time act that magically settles a one-time score—an act conducive to further amnesia—reparations ought to be focused on a comprehensive transformation of our received reality. This transformation necessarily pulls from the past just as it extends into the future in an ongoing struggle for justice on behalf of humans and non-humans alike.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recPO42hNcCmxOTPs&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recPO42hNcCmxOTPs.DnWn61bi_Z1YAAO0.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recPO42hNcCmxOTPs&quot;&gt;Reconsidering Reparations&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Olúfẹ́mi O. Táíwò&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Decolonization, Political Economy, Political Theory, Social Change &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;This shift in focus is exactly what philosopher Olúfẹ́mi Táíwò accomplishes in &lt;a href=&quot;https://global.oup.com/academic/product/reconsidering-reparations-9780197508893?cc=us&amp;amp;lang=en&amp;amp;&quot;&gt;&lt;em&gt;Reconsidering Reparations&lt;/em&gt; (Oxford University Press, 2022)&lt;/a&gt;, a persuasive book that reframes reparations for colonialism and slavery as a global “construction project.” Importantly, this project is one that pays particular attention to climate justice—arguably the most important future-oriented task we face today. In this general outlook, &lt;em&gt;Reconsidering Reparations&lt;/em&gt; forms part of a larger movement on the left linking the long view of historical injustice to contemporary racial and climate justice.&lt;/p&gt;
&lt;p&gt;Global movements for a &lt;a href=&quot;https://www.plutobooks.com/9780745341750/a-peoples-green-new-deal/&quot;&gt;People’s Green New Deal&lt;/a&gt;, worldwide calls for &lt;a href=&quot;https://www.versobooks.com/products/600-our-history-is-the-future&quot;&gt;Land Back and Indigenous self-determination&lt;/a&gt;, and analyses &lt;a href=&quot;https://www.versobooks.com/products/2520-white-skin-black-fuel&quot;&gt;linking white supremacy to capitalism’s plunder of labor and nature&lt;/a&gt; all point to this same idea: the world built on the brutal exploitation of the colonized, the enslaved, and the land itself is a world that continues to disadvantage Black people, Indigenous people, and peoples of the Global South. It is also a world that is destroying the planet we know. As Táíwò writes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Climate justice and reparations are the same project: the climate crisis arises from the same political history as racial injustice and presents a challenge of the same scale and scope. The transformations we succeed or fail to make in the face of the climate crisis will be decisive for the project of racial justice, and vice versa. (149)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Táíwò names the unjust world system we have inherited the “Global Racial Empire.” The chapter devoted to narrating its features (“Reconsidering World History”) is a masterful exercise in understanding history not as a series of isolated events but as an interconnected totality with objective ramifications for the present. As in Marx’s famous line, humans “make their own history, but they do not make it as they please,” constrained as we are by past circumstances with tangled and determinant implications for our future actions.&lt;/p&gt;
&lt;p&gt;Táíwò’s starting point naturally owes much to the radical writers and movements that identify the trans-Atlantic slave trade and the genocidal colonial project as an inseparable part of modern “progress”—from Black liberationists to Latin American dependency theorists to the anti-colonialists who &lt;a href=&quot;https://ejournals.epublishing.ekt.gr/index.php/historein/article/view/2160/2000&quot;&gt;forged the identity of “Third World” in the 1960s&lt;/a&gt;. But Táíwò offers a compelling addition to this narrative by focusing on how Global Racial Empire is always imperceptibly in motion, constantly building up “cumulative advantage and disadvantage” on a global scale.&lt;/p&gt;
&lt;p&gt;Framing the problem in this way allows us to see how the “compounding inertia of unequal and uneven trajectories of accumulation” from centuries past can explain present injustice. The same historical determinants responsible for the stark divide in wealth and resources between the Global North and Global South effect a disproportionate level of disadvantage on Black and Indigenous people in the United States. The &lt;a href=&quot;https://monthlyreview.org/2019/07/01/labor-value-commodity-chains/&quot;&gt;global flow of labor and value&lt;/a&gt; still follows the same outline set half of a millennium ago.&lt;/p&gt;
&lt;p&gt;Moreover, Táíwò’s focus on “cumulative advantage” is part of a deeper philosophical engagement with what justice and reparations really ought to be, which he develops through concrete examples reinforced with social science. Unlike some prevailing notions of justice—such as the liberal Rawlsian, which, Táíwò argues, operates statically on a “snapshot view” of present inequality—Táíwò’s “constructive” framework is attuned to the dynamic distribution of &lt;em&gt;capabilities&lt;/em&gt; for people to live meaningful lives. Any project of reparations, Táíwò suggests, is limited if it does not adopt this capacious foundation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A worldmaking perspective endows us with the mission, not simply of distributing ‘stuff’ in order for everyone to have equal amounts of it, but rather of creating a world where the variations we are born with are all socially translated into lives rich in capabilities. (93)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One of the most striking things about this approach is that it sidelines the moral motivations for reparations which often underpin its discussion in favor of a target focused on material outcomes—a world remade for a more just distribution of capabilities. Táíwò is not interested in legal victim-victimizer binaries, especially when they are used to assign causal responsibility for Global Racial Empire to contemporary identity groups. It makes little sense, Táíwò argues, to approach reparations by exclusively blaming white people or the Global North for their complicity in past wrongs, or by treating the marginalized as uniquely deserving of recompense.&lt;/p&gt;
&lt;p&gt;Although the role of whiteness and European capitalism is closely bound up with the inertia and enormity of Global Racial Empire, the oversimplification of the binary view defuses what should be a forward-looking construction project. It reduces to the level of the individualistic what is properly a collective worldmaking effort aimed at transforming the shape of the present system.&lt;/p&gt;
&lt;p&gt;However, as Táíwò writes, the Global North &lt;em&gt;should&lt;/em&gt; bear more of the burden of rebuilding this world—not because of an inherent moral responsibility, but “because of the relationship that their &lt;em&gt;advantages&lt;/em&gt; hold to that history.” (124) This is especially true in the case of climate justice. The notion of a &lt;a href=&quot;https://climateandcapitalism.com/2010/05/06/pachamama-bien-vivir-and-the-climate-debt/&quot;&gt;“climate debt” owed to the Global South&lt;/a&gt; calls attention to the fact that the Global North has contributed a vastly greater amount damage to the climate at the expense of Global South nations, precisely because of the centuries-long flow of resources and wealth from South to North that is a direct legacy of colonization. Thus, some form of redistribution of the burden of global climate change must be part of any worldmaking reparations project.&lt;/p&gt;
&lt;p&gt;Reparations built on a foundation beyond the moral is an important lesson for Christian responses to Global Racial Empire. Táíwò situates his constructive view as distinct from both “harm repair” and “relationship repair” models of reparations—those focusing on &lt;em&gt;restitution&lt;/em&gt; or &lt;em&gt;reconciliation&lt;/em&gt;. Both, of course, have a key part to play in reparations, but when they take priority over worldmaking, Táíwò suggests, we are left with a weak tool for actually accomplishing change.&lt;/p&gt;
&lt;p&gt;It is easy for Christianity to default unintentionally to either of these models of justice rather than to one based on forward-looking construction. The causal, binary morality of sinner/saved, evil/innocent, damned/redeemed lends itself readily to an exclusively backward-looking harm reduction view that enshrines these categories as unchanging essences—and that places primary focus on punishment and individual guilt for wrongdoing.&lt;/p&gt;
&lt;p&gt;This outlook, which has formed the basis of many an imperialist and racist theology, is itself part of the destructive legacy of Christianity’s participation in Global Racial Empire. Adopting a constructive approach to reparations would not let Christianity off the hook for its historic and ongoing participation in structures of oppression, but it would enable Christian responses to move past symbolic gestures that largely leave the realm of future transformation—what we are fighting &lt;em&gt;for&lt;/em&gt;—untouched.&lt;/p&gt;
&lt;p&gt;Moreover, a constructive approach necessarily entails a respect for self-determination among disadvantaged peoples and nations. As the historian Vine Deloria, Jr. quipped in 1969 book &lt;em&gt;Custer Died for Your Sins&lt;/em&gt;, “The primary goal and need of Indians today is not for someone to feel sorry for us … what we need is a cultural leave-us-alone agreement.” Sometimes the best way to reduce harm is to get out of the way and join in-place struggles for justice in a spirit of humility—a lesson best modeled by the liberationist Christianities that have grown out of the Global South.&lt;/p&gt;
&lt;p&gt;Similarly, Christian attempts at racial or social reconciliation are often too eager to reconcile without doing the hard work of understanding history, assessing the depth and complexity of current injustices, and taking material steps to build a more just world. All of these processes are necessary if reparations are to be constructive. Redemption is an end point that many Christians want too quickly; it means little without the accompanying weight of a substantive commitment to class struggle, institutional decolonization, and the dismantling of injustice. In the face of the realities of Global Racial Empire, we may wish we are the unified body of Christ, but unity comes not by declaration but by the actions taken to remake a more just world.&lt;/p&gt;
&lt;p&gt;This brings us again to the issue of climate justice. Simply put, climate justice matters for reparations because of how the disproportionate effects of ecological change alter the capabilities of many people to live rich lives. As is evident from the last few decades—Táíwò focuses on the harrowing &lt;a href=&quot;https://talkpoverty.org/2016/08/29/white-new-orleans-recovered-hurricane-katrina-black-new-orleans-not/&quot;&gt;structural racist after-effects of Hurricane Katrina&lt;/a&gt;, but there are no shortage of examples—“climate change is set not just to redistribute social advantages, but to do so in a way that compounds and locks in the distributional injustices we’ve inherited from history.” (171) The fact that we are already moving to a &lt;a href=&quot;https://news.un.org/en/story/2019/06/1041261&quot;&gt;global “climate apartheid”&lt;/a&gt; is an urgent signal that climate justice be considered an integral part of global reparations.&lt;/p&gt;
&lt;p&gt;Global Racial Empire constrains life for &lt;em&gt;all&lt;/em&gt; of us, not just the most marginalized—and, I would add, for all organisms beyond the human. If this is not a world we chose to inherit, it is a world we can choose to bend in a more just direction. This hope is not built on a false optimism, but is grounded in a radical outlook echoing the words of Dr. Martin Luther King, Jr., which Táíwò quotes: that in a burning house, we must all become firefighters.&lt;/p&gt;
&lt;p&gt;At the end of the book, Táíwò leaves the reader with reflections on how to fight the fires of Global Racial Empire while resisting the amnesia that allows this system to continue unchecked. One such tactic that carries deeply spiritual implications is that of “acting like an ancestor.” Cultivating this attitude links us across time and space with those who have come before us and those that will come after us, to whom we now bear responsibility. Faith is the only word that describes the kind of blind commitment this outlook entails.&lt;/p&gt;
&lt;p&gt;Against accelerationism and apocalypticism, acting like an ancestor requires a “revolutionary patience” that accepts the challenge of making small changes for a just world that may reverberate long after we are gone. There are no final, immediate solutions, and the world will not be remade only upon the condition of obliteration. We can only take up the tools we have now and start building.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>The Age of Extremes</title><link>https://daniel-saunders.com/posts/notes/the-age-of-extremes/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/the-age-of-extremes/</guid><description>As tempting as it is to fantasize on what could have been, the historian’s task, Hobsbawm quips, is to analyze what was.</description><pubDate>Fri, 17 Sep 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Eric J. Hobsbawm’s &lt;em&gt;The Age of Extremes&lt;/em&gt; (1994) stands unequaled as a penetrating history of the “Short Twentieth Century”—the designation he gives the period from the First World War (itself the traumatic end of the “Long Nineteenth Century” of liberal progress) to the end of “really existing socialism” in the early 1990s.&lt;/p&gt;
&lt;p&gt;The book’s dialectical form is as appropriate to its author’s Marxist commitments as it is to his subject’s character; the twentieth century’s three eras (Crisis, Boom, Landslide) are plumbed for their inherent &lt;em&gt;contradictions&lt;/em&gt;, analyzed from different vantages and pursued variously along divergent but mutually illuminating paths. Such a method—and the sheer magnitude of data, events, memory—leads not to a confusion of chronology and trivia, but rather to a &lt;em&gt;totality&lt;/em&gt; that emerges greater than the sum of its parts. It is a revelation on nearly every page, witty, engrossing, and a truly eye-opening history of the present moment, despite its 30-year age.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recSwSQQvD7nfYP8z&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recSwSQQvD7nfYP8z.BwePWsn7_Zm9dlo.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recSwSQQvD7nfYP8z&quot;&gt;The Age of Extremes: A History of the World, 1914–1991&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Eric Hobsbawm&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Capitalism, Economics, History, Marxism, Socialism, War &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://www.penguinrandomhouse.com/books/80963/the-age-of-extremes-by-eric-hobsbawm/&quot;&gt;Age of Extremes&lt;/a&gt;&lt;/em&gt; is a capstone to Hobsbawm’s previous historical trilogy of the modern era, running through the Ages of Revolution (1789-1848), Capital (1848-1875), and Empire (1875-1914). It is thus tempting to read this final installment solely as a sober, almost reproachful account of the failures of the social revolutionary politics which had their greatest articulation in the socialist movements of the nineteenth century, from a committed Communist Party author who had lived through these failures. (Although this cool manner is perhaps more suited to dousing the optimism of &lt;a href=&quot;https://www.foreignaffairs.com/reviews/capsule-review/1995-07-01/age-extremes-history-world-1914-1991&quot;&gt;end of history arguments&lt;/a&gt; on the “successes” of capitalism, successes which look even less convincing from the year 2021.) At the end of the century, the critical brilliance of Marx’s scientific analysis of the capitalist mode of production had devolved into its own religion, propped up with its own dogmatic illusions and martyr worship; the once-promising socialist experiments now stood in ruins, unable to advance an alternative economic system to challenge global capitalism.&lt;/p&gt;
&lt;p&gt;And yet, Hobsbawm is able to offer a keenly nuanced picture of the Soviet Union (to take only the most visible example, whose life was coterminous with the Age of Extremes) that escapes both condemnation and adulation. For instance, the early failures of the USSR are shown to owe more to the limitations of its prevailing social/political conditions (i.e., population decimation from WW2, political isolation, a majority peasant mode of production) rather than to faults inherent to the Bolshevik project or command economies &lt;em&gt;per se&lt;/em&gt;. Although Stalin was “uniquely suited” to the reign of terror in the wake of the first five-year plan, a rapid program of industrialization, given the conditions, was almost inevitably bound to be brutal—a fact which then set the stage for further problems.&lt;/p&gt;
&lt;p&gt;Similarly, the USSR’s fall is lamented as tragic near-inevitability—it was due not to any popular discontent (as in the rest of the Eastern bloc) but because of the disintegration of central power from above and the pressures of a world economic system eroding conservative economic policies tied to old projections of growth. &lt;em&gt;Perestroika&lt;/em&gt; ironically destroyed the one thing needed to chart a course through the failures at the end—the credibility of political authority.&lt;/p&gt;
&lt;p&gt;As tempting as it is to fantasize on what could have been, the historian’s task, Hobsbawm quips, is to analyze what was. And so despite his sympathies and disappointments, Hobsbawm does what no ideological historian can do, but which only the best Marxist thinkers are capable of: to show how history develops out of (indeed, is synonymous with) the &lt;a href=&quot;https://www.newyorker.com/books/under-review/eric-hobsbawm-the-communist-who-explained-history&quot;&gt;constant clash between political will&lt;/a&gt; and the subterranean demands of a historically changing capitalist mode of production, which gained greater power and reach over the course of the century.&lt;/p&gt;
&lt;p&gt;In this respect, Hobsbawm renews the spirit of Marx’s historical-material analysis for times that Marx never could have dreamed of seeing. The pressures of economic realities, material conditions, and class conflicts are brought to bear upon the politics, decisions, and acts that we come to know as history. There is no better example of this method and its insights than in the growth of the global capitalist economy in the post-war era, as distinct from the capitalist (First World) and socialist (Second World) governments that tried to chart a course through it. For a brief time after 1945, these governments were both constructed as political strongholds keeping the fluctuations of the market and destructive side of capitalism at bay—in the former, by “reforming capitalism out of all recognition,” in the latter, through a full command economy. Everything was fine as long as growth and productivity continued apace, and there was indeed massive growth everywhere.&lt;/p&gt;
&lt;p&gt;But problems started to arise, as Marx analyzed and predicted so perceptively, because of contradictions &lt;em&gt;inherent to&lt;/em&gt; the mode of production itself, which only compound as the system gains greater force and reach, as the logic of accumulation continues its despoliation. Against the political strongholds of states, the world economy truly starts to become an independent entity, outside of political control. (The image that resonates with me, simplistic though it may be, is typified in the global economic situation after the breakdown of the Bretton Woods system—the dollar is no longer tied to any specific government or international agreement; rather, we have the reign of the &lt;em&gt;dollar itself&lt;/em&gt;.)&lt;/p&gt;
&lt;p&gt;Historically, this framing sets up a compelling (and not often discussed, even in Marxist circles) reading of the economic shifts of the 1970s and after, leading up to our present era. This story explains simultaneously the collapse of most of the socialist states and the birth of a neoliberal orthodoxy wielded by Western capitalists. After the general/global crises of the 70s (which can be traced to many proximate causes), the socialist economies were not able to weather the impact of global shifts because of their static, rigid systems. Their success thus far had been premised on completely shutting out the tentacles of the global market. (Incidentally, Hobsbawm relates the fascinating fact that the socialist bloc was actually more conservative—culturally, socially, economically—than the West because it froze in place the societies of early twentieth century through revolutions that left the peasantry largely untouched.)&lt;/p&gt;
&lt;p&gt;However, once the economic iron curtain was broken, so to speak, the end was not far off for these static economies. As the subterranean pressures of the capitalist mode of production became greater, as technology facilitated a more interconnected global system, as the dollar became liberated from governmental control, as the world became more complex in general, the socialist economies as they existed for decades could not sustain themselves, nor avoid getting sucked in to the capitalist orbit. (Again, it’s important to note that these limitations were not due to the inherent nature of socialist or command economies &lt;em&gt;per se&lt;/em&gt;.)&lt;/p&gt;
&lt;p&gt;Interestingly, China was one of the few socialist economies still able to utilize political authority to stem the tide. Far from taking a “neoliberal” turn in the 70s, as writers like David Harvey claim, it makes more sense to see &lt;a href=&quot;https://www.routledge.com/How-China-Escaped-Shock-Therapy-The-Market-Reform-Debate/Weber/p/book/9781032008493&quot;&gt;China’s reforms as slowing the wave&lt;/a&gt; that crushed everyone else. The example of China also highlights how the loss of the USSR and the Second World as a “shield” allowed capitalism even more free reign to take over the planet. Though China may stand as a lone, last bulwark against total neoliberal domination, its situation and future are an open question, a fact only further heightened as it becomes increasingly the target of imperialist interests in a &lt;a href=&quot;https://monthlyreview.org/2021/07/01/the-new-cold-war-on-china/&quot;&gt;new Cold War&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;On the other hand, the more dynamic capitalist economies dealt with the 70s crises by fully adopting the once-discredited and now dubiously rehabilitated neoliberal doctrines of a completely laissez-faire, supply-side market. But it’s clear (again, against some of Harvey’s arguments) that this was not necessarily a &lt;em&gt;conscious&lt;/em&gt; choice imposed by class elites from above, so much as it was a convenient theory used &lt;em&gt;ex post facto&lt;/em&gt; to justify what market pressures had made inevitable. The ideology of neoliberalism (“self-reliance,” “pull yourself up by your bootstraps,” etc.) comes &lt;em&gt;after&lt;/em&gt; the crisis-induced socio-economic necessity to strip the public commons of its wealth.&lt;/p&gt;
&lt;p&gt;There is much more in this book beyond political struggles and the development of capitalism. There is also the most definitive discussion of fascism that I have ever read—fascists were the “revolutionaries of counter-revolution,” utilizing modern mobilization of the masses from below to transform society toward a “past which was an artefact.” In other words, and certainly illuminating for our times, fascism was abhorrent to (and itself abhorred) the pure traditionalists and reactionary conservatives of the previous century; not God and King but blood and soil. There are also revelatory insights on the youth culture of the 1960s, avant-garde art, the revolution in quantum physics, the end of colonialism, the birth of the Third World, and everything in between. A book to be read and reread and thought about again.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>The Tricontinental Conference &amp; Latin American Liberationist Christianity</title><link>https://daniel-saunders.com/posts/essays/the-tricontinental-conference-and-latin-american-liberationist-christianity/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/essays/the-tricontinental-conference-and-latin-american-liberationist-christianity/</guid><description>A working paper on Christian anti-imperialism from the Global South, presented at the Toronto Christian Left Conference.</description><pubDate>Tue, 20 Jul 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/tricontinentalism-presentation.CnohsfKg_1EpNON.webp&quot; /&gt; &lt;figcaption&gt;The slide cover for my presentation.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;I presented a working paper at the Toronto Christian Left Conference (July 23-24), whose theme was &lt;em&gt;Rethinking the Christian Left from the Belly of Empire: Charting New Paths Beyond Colonization&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;As an offering to this discussion, I centered the &lt;a href=&quot;https://utopix.cc/content/the-tricontinental-conference-the-right-to-our-history/&quot;&gt;Tricontinental Conference of 1966&lt;/a&gt; and Latin American liberationist Christianity as a way to think about anti-imperialism and transnational solidarity from a Global South Christian perspective. The abstract for this working paper is below (&lt;a href=&quot;https://drive.google.com/file/d/1IBc4PWb0JQlSmHHevPhRmgtoQozlykkt/view?usp=sharing&quot;&gt;read the full version here&lt;/a&gt;):&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;“In 1966, the Tricontinental Conference convened in Havana, Cuba, bringing together over 500 delegates from 82 countries in Asia, Africa, and Latin America under the banner of anti-colonial, anti-imperialist solidarity and national self-determination. Although its significance is seldom recognized, the Tricontinental was crucial in developing a distinctive critique of imperialism from the standpoint of the Global South—one that centered on the interconnected oppressions of (specifically anti-black) racism, Western militarism, and global capitalism. Through its prodigious propaganda and analysis (through the efforts of OSPAAAL, the Organization of Solidarity of the Peoples of Asia, Africa, and Latin America), the Tricontinental initiated what Anne Garland Mahler calls a “transnational political imaginary,” linking various resistance struggles around the world.&lt;/p&gt;
&lt;p&gt;Drawing on recent scholarship of the Tricontinental, this paper examines its history and themes in an effort to identify a Christian engagement with Tricontinentalism. This engagement appears in two ways: (1) in the direct analysis and reportage of liberationist Christian movements, in Latin America and elsewhere, within the pages of the Tricontinental’s flagship magazine; and (2) in the influence of Tricontinental themes on past and current social movements, including Christian movements.&lt;/p&gt;
&lt;p&gt;A fundamental question emerges from this survey: what does Tricontinentalism mean for the Christian Left and its engagement with social movements today? Given the contemporary rise of chauvinist, right-wing Christianities around the world—and the softer but just as chauvinist liberal Christianities which tacitly support imperialism’s aims—Tricontinentalism offers a starting point for transnational solidarity along anti-racist, self-determining, and socialist lines. The Christian Left, especially within the imperial core, must reckon with this Tricontinentalist legacy as it comes alongside liberation movements.”&lt;/p&gt;
&lt;h2&gt;Presentation Slides&lt;/h2&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/mederos-nixon-indochina.CERfRv73_Z15JobB.webp&quot; /&gt; &lt;figcaption&gt;“Nixon Tearing the Heart out of Indochina,” artwork by René Mederos (1971) via OSPAAAL.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;I also had a lot of fun designing the slides I prepared for the presentation version of the paper I gave at the conference, “Reframing the Christian Left from the Legacy of Tricontinentalism: Anti-Imperialism and Transnational Solidarity.” The slides feature one of the most exciting remnants of this history, which are the &lt;a href=&quot;https://www.jstor.org/site/wofford/lindsay-webster-collection-of-cuban-posters&quot;&gt;incredible solidarity posters&lt;/a&gt; put out by OSPAAAL. Additionally, many of the Tricontinental journals are viewable at &lt;a href=&quot;https://search.freedomarchives.org/search.php?view_collection=1035&quot;&gt;The Freedom Archives&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Read the full version of the &lt;a href=&quot;https://drive.google.com/file/d/1IBc4PWb0JQlSmHHevPhRmgtoQozlykkt/view?usp=sharing&quot;&gt;working paper here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Spiritual Mergers &amp; Acquisitions</title><link>https://daniel-saunders.com/posts/notes/christianity-and-the-new-spirit-of-capitalism/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/christianity-and-the-new-spirit-of-capitalism/</guid><description>Does Christianity truly constitute an “alternative spirit” to capitalism?</description><pubDate>Sat, 08 May 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Max Weber famously argued for an “elective affinity” between a Calvinist work ethic and the economic requirements of industrial capitalism. In its insistence on secularized vocation and deferment of worldly pleasure, according to Weber, the Protestant work ethic gave religious sanction to certain kinds of economic activity, namely, the reinvestment of wealth as capital to build society’s productive forces.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recqMEbrNuByKfLp0&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recqMEbrNuByKfLp0.Z1OLlpnD_1CEKo0.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recqMEbrNuByKfLp0&quot;&gt;Christianity and the New Spirit of Capitalism&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Kathryn Tanner&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Capitalism, Religion, Theology &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;Kathryn Tanner, a prominent academic theologian, reverses Weber’s claim in her new book &lt;em&gt;&lt;a href=&quot;https://yalebooks.yale.edu/book/9780300258493/christianity-and-the-new-spirit-of-capitalism/&quot;&gt;Christianity and the New Spirit of Capitalism&lt;/a&gt;&lt;/em&gt;, an expansion of her Gifford Lectures: Protestant (mostly Reformed) Christianity, instead of evincing an “elective affinity” with the spirit of capitalism, instead presents a supposedly withering challenge to it. This is the theme of a thoughtful if freqeuntly exasperating book in which Tanner locates the “new spirit” of capitalism in its neoliberal, finance-dominated iteration.&lt;/p&gt;
&lt;p&gt;Perhaps the most enlightening parts this book are those in which Tanner elucidates in great detail the life-and-subjectivity-shaping mechanisms of this spirit. Such a spirit demands “total commitment”—for example, in the identification of individual and corporate desire in ways reminiscent of a “personal brand” that must always be engaged in some kind of side-hustle or economic opportunity, an attitude of constant self-improvement that is exploited by corporations seeking flexible, productive, and atomized labor. This spirit obliterates the past and future in an everlasting, precarious present, even as it marks economic sinners by never-forgiven past “mistakes” (reflected in low credit scores and debt) and disciplines future action with ever-tightening austerity.&lt;/p&gt;
&lt;p&gt;The most persuasive aspect of this book, and one highly indebted to Weber’s notion of personal &lt;em&gt;domination&lt;/em&gt; under capitalism, is that the economic realities compelled by capitalist profit-seeking in a neoliberal age are profoundly distorting of individual and collective life. Yet this is hardly a novel observation; one could read a Verso book a week on the same topic.&lt;/p&gt;
&lt;p&gt;But this initial strong footing is quickly compromised as the reader gets tangled in Tanner’s primarily theological analysis. Despite her inversion of Weber, Tanner remains bound by many of the same limitations that characterize him—namely, a “class-blind,” explicitly non-socialist standpoint (“all economic forms are flawed,” she writes) that is focused exclusively on moralizing and narrow reform measures.&lt;/p&gt;
&lt;p&gt;These limitations remove most of the force the critique of the capitalist spirit would seem to suggest. (Weber, it should be mentioned, was ambivalent about capitalism, an ambivalence Tanner seems to share. At times it even sounds as if she would prefer a return to the “old” spirit of capitalism—i.e., industrial, Fordist, or even Keynesian—in order to escape the new! And this is to say nothing about the whole framing of “Protestantism leads to capitalism.” A Marxist would say almost the exact opposite: the tendencies of proto-capitalism lead to Protestantism’s cult of the individual.)&lt;/p&gt;
&lt;p&gt;There is little here by way of a serious engagement with the underlying questions of political economy, class structure, or the historical development of capitalism, and it is evident that this book cannot be called “anti-capitalist” in any meaningful sense. Capitalism is presented not so much as a system, structure, or specific configuration of the relations of production, as it is in the Marxist analysis. Rather, here it is mostly an &lt;em&gt;intention&lt;/em&gt; or character which might be swayed to go one way or another through moral persuasion—truly a &lt;em&gt;spirit&lt;/em&gt; and a spirit alone.&lt;/p&gt;
&lt;p&gt;Tanner often seems confused as to why capital compels its acolytes to such extremes and wonders, for instance, why employers just &lt;em&gt;can’t&lt;/em&gt; extend a little leeway and dignity to the workers they ruthlessly exploit—as if a system characterized by the infinite accumulation of profit could lead to anything else. Of course, a writer can’t be held accountable for failing to incoporate elements of a framework they don’t subscribe to, but one wonders if many of Tanner’s questions wouldn’t have been better captured from a Marxist angle. (Or better yet, from a &lt;a href=&quot;https://internationalviewpoint.org/spip.php?article1106&quot;&gt;Marxist-Weberian synthesis&lt;/a&gt; which utilizes the strengths of both.) For these reasons and more, readers who approach this book from a leftist, and especially Marxist perspective, will find much to be critical of and perhaps little to be gained from this kind of analysis.&lt;/p&gt;
&lt;p&gt;That leaves the Christianity component. Given the force of Tanner’s argument about the economic realities of finance-dominated capitalism having an all-pervasive shaping effect on life and action, it seems somewhat odd, and not a little naive, to present Christianity as an unbending counteragent to the new spirit of capitalism. This is problematic because it is the main argument on which the entire book turns. Here Tanner (again, as a theologian would) attempts to position Christianity as an alternative or competing spirit to the economic, one that owes its existence and force to allegiances that lie wholly outside the scope and control of capitalism.&lt;/p&gt;
&lt;p&gt;In this sense, she owes much to humanistic critiques developed in the continental tradition—Pierre Hadot’s conception of “philosophy as a way of life,” and above all, Michel Foucault’s revival of Stoicism as a legitimate alternative to modern hegemonic structures. And of course, she is right—Christianity is not coterminous with capitalism, and can indeed be used against it, even if it more often goes the other way.&lt;/p&gt;
&lt;p&gt;But Tanner’s tactic here—similar to Weber’s tactic of outlining “elective affinities,” albeit here in a negative sense—is simply to state, in the driest and most academic of terms, the contours of any given Christian doctrine that happens to prioritize values that differ from the corresponding capitalist values. For example, where finance-dominated capitalism demands a “total commitment” to work and self-betterment, Christianity demands a “total commitment” to God and a detachment from worldly identification; where capitalism stokes competition and prizes individualism, Christianity offers a vision of cooperation and mutuality and a life of total, unearned grace.&lt;/p&gt;
&lt;p&gt;What in this book might have originally turned to a battle on the economic/ideological front has now been transported to an idealist and frankly pointless front. At worst, this kind of comparison often comes off obstinately trite; at best, its moral force does not offer much by way of a substantive &lt;em&gt;material and economic&lt;/em&gt; critique of capitalism—which, as Tanner recognizes in her sections on finance-dominated capitalism, seem to do a much more efficient job at shaping lives and subjectivities than religion. After all, no matter what Christianity says in its doctrine, we all have to go on living and working and sustaining ourselves, often desperately, under capitalism.&lt;/p&gt;
&lt;p&gt;Ultimately there is little to be gleaned here other than a knowledge that Christianity says some things about life and reality, and capitalism says others. Does this truly constitute an “alternative spirit” to capitalism? Does Christianity really offer, in this framing, an alternative “way of life” able to confront capitalism? The Christianity presented in this book instead appears more akin to a &lt;em&gt;self-help scheme&lt;/em&gt;, a mental exercise that might help us get by a little better under overarching conditions that can’t be changed—at least not now, not by us. Little of the liberative aspects of the &lt;a href=&quot;https://daniel-saunders.com/posts/essays/ideology-fetishism-apophaticism-marxist-criticism-and-christianity/&quot;&gt;anti-fetishistic, anti-money faith&lt;/a&gt; that caused Jesus to drive money changers from the temple make it into this vision.&lt;/p&gt;
&lt;p&gt;Had Tanner engaged with any kind of anti-capitalist liberation theology, instead of a bland, apolitical Calvinism, there might have been some way out of the doctrinal / theoretical bind to a practical, socialist alternative, but this is simply not in the scope or interest of the book. (Indeed, no mention of Marx, socialism, or liberation theology is to be found anywhere. Again, hard to find fault with an author for not engaging certain frameworks…and yet.) Instead, we get the fuzzy platitudes about Christianity inspiring a “new, cooperative way of life together.” What exactly that entails is unclear.&lt;/p&gt;
&lt;p&gt;At its extreme, Tanner’s ideal sounds like a literal monastic community, characterized by an “anti-work” ethic and focused on God alone. But this raises the specter of &lt;a href=&quot;https://www.marxists.org/archive/luxemburg/1905/misc/socialism-churches.htm&quot;&gt;Rosa Luxemburg’s old differentiation&lt;/a&gt; between a “communism of consumption” and a “communism of production.” Even if the problem of equal distribution and consumption of goods is solved, as it was for the early community of Christians, there is still the unsolved problem of the equality of the means and mode of production, and of &lt;em&gt;work&lt;/em&gt; in general. We are right back to the problem of political economy.&lt;/p&gt;
&lt;p&gt;Who is this book for? I suspect that Christians of a leftist bent will be too frustrated with its lack of socialist analysis, while others may agree that capitalism’s “unbridled excesses” need to be curbed, but will either be unconvinced of Christianity’s role in this endeavor or will fall on the side of Tanner’s apolitical reformism. My opinion is that this book is an attempted sermon for stock traders and economists—“understand the system your sins have wrought, and hear the good news of a reality that doesn’t have to be this way. But maybe temper your stock trading with some Jesus!”&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Marxist Criticism and Christian Apophaticism</title><link>https://daniel-saunders.com/posts/essays/ideology-fetishism-apophaticism-marxist-criticism-and-christianity/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/essays/ideology-fetishism-apophaticism-marxist-criticism-and-christianity/</guid><description>Exploring a dialectical bridge between the Marxist critique of capitalism and the Christian denunciation of false gods.</description><pubDate>Fri, 16 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I am very pleased to share my first article published in an academic journal, “Ideology, Fetishism, Apophaticism: Marxist Criticism and Christianity,” which is out in the Dominican journal &lt;em&gt;New Blackfriars&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The paper can be &lt;a href=&quot;https://onlinelibrary.wiley.com/share/author/CWFQUUP3ZXEHBGE2HDVM?target=10.1111/nbfr.12642&quot;&gt;read online&lt;/a&gt; in full. (Note: if the token has expired on this link, &lt;a href=&quot;https://drive.google.com/file/d/1TO3thHDzvO8nK0amP4r5z_cCnW1xjzRq/view?usp=sharing&quot;&gt;see here&lt;/a&gt; for a draft version.) Publication in this journal is especially significant for me, as the Christian-Marxist dialogue that was conducted in its pages (by the likes of Denys Turner and others) has been a strong influence on my intellectual and political development.&lt;/p&gt;
&lt;p&gt;Here is the abstract:&lt;/p&gt;
&lt;p&gt;“This paper explores Christianity’s ambiguous relationship to capitalism by engaging Marx’s notion of the fetishism of commodities as a way of rethinking the Marxist critique of religion from the standpoint of political economy. Following Etienne Balibar’s distinction between the theory of ideology and Capital’s theory of fetishism, I examine how the later Marx conceived of religion as socially conditioned by the society of commodity production, which takes on religious dimensions. Commodities are the basis for a concept of fetishism which commands total subjection, alienating human beings under capitalism. This critical focus also reveals Christianity in its totalizing role as a symbolic structure shaped by the inescapable logic of exchange‐value, money, and universal equivalents.&lt;/p&gt;
&lt;p&gt;Nonetheless, Christianity retains the impetus to anti‐fetishism, provided it unites with the Marxist science of critical perception. This anti‐fetishistic union focuses on the transparent and revolutionized social relations of real presence as the nonalienated reverse of fetishism’s false presence. A critical apophaticism, tempered by the materialist amendments of Marika Rose and Slavoj Žižek, offers the bridge to such a union and highlights the anti‐fetishistic avenues of failure and utopia.”&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Subversive Bach</title><link>https://daniel-saunders.com/posts/notes/subversive-bach/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/subversive-bach/</guid><description>The subversive undertones of Bach’s Johannes Passion.</description><pubDate>Fri, 02 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/leipzig_nikolaikirche.DG80-xa1_Z2fv7M2.webp&quot; /&gt; &lt;figcaption&gt;Copperplate print showing perspective view of Nikolaikirche, Leipzig.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;“Ruht wohl, ihr heiligen Gebeine” is the magisterial concluding chorus to Bach’s &lt;em&gt;Johannes-Passion&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Simultaneously comforting and disquieting, part lullaby and part lament, invocation and injunction, it is the perfect &lt;a href=&quot;https://youtu.be/O9bOaHvKUZE&quot;&gt;encapsulation of Good Friday&lt;/a&gt;. As &lt;a href=&quot;https://www.penguinrandomhouse.com/books/58045/bach-by-john-eliot-gardiner&quot;&gt;John Eliot Gardiner notes&lt;/a&gt;, the stately theme evokes the image of Christ’s body being lowered reverentially, even ceremoniously, into the grave. The text addresses this body – or, rather, the limbs themselves, lifeless and powerless, now mere mortal remains. What do they mean for us, listeners and participants? They have played their part in the narrative thus far, and we hope and trust that they now are the means of our salvation.&lt;/p&gt;
&lt;p&gt;But with each further repetition of the address &lt;em&gt;Ruht wohl&lt;/em&gt;, an anxiety creeps in – the feeling of enclosure, a gesture of encircling, a propelling force that drives ever downward and gains strength. The earth itself starts to close in around us – or is it the smothering embrace of those same sacred limbs? The music brings out this sense of inexorableness that the text signals with words like &lt;em&gt;bestimmen&lt;/em&gt; (designate, determine, appoint) and the clipped, forceful, almost untranslatable &lt;em&gt;Not&lt;/em&gt; (destitution, misery, dire need).&lt;/p&gt;
&lt;p&gt;But just as this feeling becomes overwhelming, a quartet separated out from the main chorus shifts the perspective. What was supposed to be inevitable and inescapable is now shown to be the very means of freedom, the way out. The imagery of enclosure is retained but is now reversed – it is Hell that is walled off and Heaven that is unlocked. The grave is the site of transformation, where those sacred limbs show their dual character as both lifeless and liberative. Bach shies away from nothing in the human experience; it is all there to be considered and understood.&lt;/p&gt;
&lt;p&gt;Bach here adeptly fuses art and theology to achieve a robust interpretation of salvation (equal to any written work) along the lines of the &lt;a href=&quot;https://www.google.com/books/edition/Christus_Victor/nWyvCwAAQBAJ?hl=en&amp;amp;gbpv=0&quot;&gt;ancient Christus Victor model&lt;/a&gt;, where the devil is baited into capturing Christ, only to be thwarted by his conquering divinity. Bach’s intent was to prompt his first listeners to think on these things on this most important day of the liturgical year, and he even may have intended this as a subversive challenge to the predominant Lutheran view of salvation (penal substitution, where Christ’s punishment serves as legal satisfaction for divine justice).’&lt;/p&gt;
&lt;p&gt;In light of contemporary theologies of liberation, the &lt;em&gt;Johannes-Passion&lt;/em&gt; takes on an added element of subversion. Our bonds are the means of our liberation, not only spiritually but socially. The seemingly inexorable demands of sinful structures of oppression are no more to be accepted with grim resignation but are to be challenged in light of the transformative power of this conquering Jesus – of which the church ought to be a primary vehicle. Such profound music is both a reflection and motivator of that transformation.”&lt;/p&gt;
&lt;p&gt;Here is my (very loose, hopefully accurate) translation of this verse:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Rest well, O thou hallowed bones,&lt;br /&gt;&lt;em&gt;Ruht wohl, ihr heiligen Gebeine,&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Which I never more shall mourn,&lt;br /&gt;&lt;em&gt;Die ich nun weiter nicht beweine,&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Rest well and bring me also peace!&lt;br /&gt;&lt;em&gt;Ruht wohl und bringt auch mich zur Ruh!&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The grave, thus for you ordained&lt;br /&gt;&lt;em&gt;Das Grab, so euch bestimmt ist&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;No more embraces fated ruin,&lt;br /&gt;&lt;em&gt;Und ferner keine Not umschließt,&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;But opens Heaven, walls off Hell for me.&lt;br /&gt;&lt;em&gt;Macht mir den Himmel auf und schließt die Hölle zu.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Beyond Jubilee</title><link>https://daniel-saunders.com/posts/essays/beyond-jubilee-debt-abolition/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/essays/beyond-jubilee-debt-abolition/</guid><description>My review of Haymarket’s Can’t Pay, Won’t Pay: The Case for Economic Disobedience and Debt Abolition, for The Bias magazine.</description><pubDate>Thu, 25 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;aside&gt; &lt;div&gt; &lt;span&gt;Assumed Audience&lt;/span&gt; &lt;/div&gt; &lt;div&gt; &lt;p&gt;This review essay was originally published for an &lt;a href=&quot;https://christiansocialism.com/biashome/&quot;&gt;online publication of
Christian Socialism&lt;/a&gt;.&lt;/p&gt; &lt;/div&gt; &lt;/aside&gt;
&lt;p&gt;&lt;em&gt;Can’t Pay, Won’t Pay: The Case for Economic Disobedience and Debt Abolition&lt;/em&gt; is an excellent new book from Haymarket that I have reviewed for &lt;em&gt;The Bias&lt;/em&gt; magazine.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://christiansocialism.com/debt-collective-cant-pay-wont-pay-christianity/&quot;&gt;Link to my review here&lt;/a&gt;. &lt;em&gt;Can’t Pay, Won’t Pay&lt;/em&gt; is a product of the collective theorizing and organizing of the &lt;a href=&quot;https://debtcollective.org/&quot;&gt;Debt Collective&lt;/a&gt;. It’s an excellent primer on the history of neoliberalism’s weaponization of debt as well as an effective call to anti-capitalist action. That action, argues &lt;em&gt;Can’t Pay, Won’t Pay&lt;/em&gt;, should spring from debtors’ unions, a new collective model of solidarity centered on fighting the realities of financialized capitalism (such as collectively not paying exploitative debts in “debt strikes”).&lt;/p&gt;
&lt;p&gt;The solidarity offered by debtors’ unions stands in marked contrast to standard societal narratives surrounding debt. Debt is usually regarded as an individual matter, the inexorable moral outcome of good or bad choices by more or less deserving people. As soon as we start to understand debt not as a primarily personal affair but as a built-in structural feature of financial capitalism—one that disciplines us by saddling us with obligations only to be “redeemed through future value production” (David Harvey)—we can better resist it through collective action.&lt;/p&gt;
&lt;p&gt;This interconnection of the individual and structural is what &lt;em&gt;Can’t Pay, Won’t Pay&lt;/em&gt; highlights so well: while debt is a weapon that divides, isolates, and disciplines us, debt is also something that unites us, “binding each of us to a broader set of financial and political circumstances” that intersect racist, colonialist, and capitalist forms of exploitation. Such “indebtedness” is a necessary component of solidarity, and is a natural entry-point for Christian thinking on economic justice.&lt;/p&gt;
&lt;p&gt;The book is also very good in bringing an international, anti-imperialist perspective to debt abolition. Debt abolition isn’t just about helping North American consumers but centers a global-historical fight against monopoly powers that have disproportionately harmed nations of the Global South. From the Haitian Revolution of 1791 to the Cochabamba Water War of 1999, exploitative debt forcibly imposed by wealthy, largely white states and corporations has been a central factor in sparking democratic uprisings from below. The invitation to see and organize around this kind of historical debt resistance is necessary to building an internationalist-socialist world—not least because the fight is very often against the same international financial powers.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Check out the &lt;a href=&quot;https://christiansocialism.com/debt-collective-cant-pay-wont-pay-christianity/&quot;&gt;full review here&lt;/a&gt; and the &lt;a href=&quot;https://www.haymarketbooks.org/books/1520-can-t-pay-won-t-pay&quot;&gt;book here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Cardboard Darwinism &amp; Double Transference</title><link>https://daniel-saunders.com/posts/notes/cardboard-darwinism-and-double-transference/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/cardboard-darwinism-and-double-transference/</guid><description>How dubious science leads to bad politics.</description><pubDate>Thu, 05 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;“Cardboard Darwinism,” writes biologist Stephen Jay Gould in an essay of the same name, “is a reductionist, one-way theory about the grafting of information from environment upon organism,” or what amounts to a form of biological determinism.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.nybooks.com/articles/1986/09/25/cardboard-darwinism&quot;&gt;Gould’s critique&lt;/a&gt; of this hollowed-out version of Darwin’s theory comes in the context of a larger critical appraisal of human sociobiology, an offshoot of evolutionary theory originating with the work of Edward O. Wilson.’&lt;/p&gt;
&lt;p&gt;Sociobiology’s central claim, as Gould’s critique implies, is that all human behavior can ultimately be traced back to biological, evolutionary roots. Human nature is an amalgam of discrete behavior traits (such as “aggression,” “nurturance,” or “altruism”) that have direct corollaries in the natural world, a world which in turn has carefully and selectively shaped these traits in a linear, traceable form—from the lobster’s pursuit of hierarchical dominance to the &lt;a href=&quot;https://thebaffler.com/latest/peterson-ganz-klein&quot;&gt;incel’s pretensions to self-actualized enlightenment&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Gould marshalled most of his energies to show how the scientific propositions of sociobiology were methodologically flawed. His argument was that, despite its purported revolutionary breakthrough, sociobiology merely amounted to an application of “the strictest form of Darwinian orthodoxy” to human behavior, one that “locates all evolutionary mechanics in the struggle among organisms for reproductive success” alone. Such a theory, at the least, would have a difficult time explaining the lightning speed of cultural change as compared to the geologic pace of evolutionary change. Moreover, this was an orthodoxy which—in its reliance on &lt;a href=&quot;https://plato.stanford.edu/entries/sociobiology/#Ada&quot;&gt;strict adaptationism&lt;/a&gt; (the unjustifiably optimistic view that evolutionary traits have been selectively optimized for currently discernable behaviors)—was quickly becoming outmoded in Gould’s field in favor of a &lt;a href=&quot;https://daniel-saunders.com/posts/essays/dialectical-ecology&quot;&gt;more dialectical, materialist approach&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But one wonders what Gould would have made of the era of &lt;a href=&quot;https://www.jacobinmag.com/2020/07/intellectual-dark-web-michael-brooks&quot;&gt;the Intellectual Dark Web&lt;/a&gt;, where pop sociobiology abounds in the reactionary screeds of Steven Pinker, Jordan Peterson, and other pseudo-intellectuals of the conservative “anti-woke” backlash. For as Gould recognized, it is not only the science that is at stake in the critique of sociobiology.&lt;/p&gt;
&lt;p&gt;There is also a &lt;a href=&quot;https://libcom.org/library/against-sociobiology&quot;&gt;necessary political component&lt;/a&gt;, as sociobiology is often used, quite often explicitly, to prop up the biological inevitability of coercive social systems—whether capitalism, patriarchy, racism, or some other supposedly innate feature of “human nature” or “Western civilization.” For these thinkers and others who use science for chauvinistic ends, to question the biological hardwiring of &lt;a href=&quot;https://www.nytimes.com/2018/05/18/style/jordan-peterson-12-rules-for-life.html&quot;&gt;sex difference&lt;/a&gt;, &lt;a href=&quot;https://blogs.scientificamerican.com/voices/the-real-problem-with-charles-murray-and-the-bell-curve&quot;&gt;race&lt;/a&gt;, &lt;a href=&quot;https://www.nybooks.com/articles/2003/02/27/darwinian-storytelling&quot;&gt;liberal capitalism&lt;/a&gt;, or the &lt;a href=&quot;https://twitter.com/RichardDawkins/status/1018933359978909696?s=20&quot;&gt;supremacy of Western culture&lt;/a&gt; amounts to an assault on the foundations of scientific reality itself. The genome is selfish (and Judeo-Christian).&lt;/p&gt;
&lt;p&gt;The irony in all of this is that what pop sociobiology claims to discern in nature as biological, genetic law—and therefore what must be extrapolated to human society as a result—is not a primordial “nature as such,” but is &lt;em&gt;itself&lt;/em&gt; a construction of social realities. This irony is underscored by what John Bellamy Foster, drawing from Marx and Engels, calls the &lt;a href=&quot;https://johnbellamyfoster.org/wp-content/uploads/2014/07/Foster-Clark-Sociology-of-Ecology.pdf&quot;&gt;“double transference” between society and nature&lt;/a&gt;—“taking ideas from society to explain nature and then re-extrapolating these concepts back again from nature to society in naturalized garb.”&lt;/p&gt;
&lt;p&gt;The transfer may be meaningful going one way—a substantive metaphor of how plant life forms a “community,” for example—but to transfer these ideas &lt;em&gt;from nature back to society&lt;/em&gt; constitutes a reductionistic “sleight of hand” that reflects both bad science and (usually) bad politics. As Foster describes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Neither Marx nor Engels objected strongly in principle to the notion of the ‘struggle for existence’ in nature.… Still, there were some problems, as they indicated, associated with the reading of the conditions of bourgeois society into nature—thereby producing one-sided conceptions drawn from alienated society and anthropomorphizing nature in terms of these. Much more serious, however, from their standpoint was the re-extrapolation of these ideas—originally derived from bourgeois society and then imputed to nature—back again &lt;strong&gt;to society in naturalized, objectified form, and as eternal natural laws&lt;/strong&gt;, in a kind of double transference.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In other words, what pop sociobiology takes as genetic truth owes not so much to the science of evolution as to the saturation of science in a capitalist political economy—one that is truly defined in terms of competition, hierarchy, and a “survival of the fittest” mentality. But far from being another kind of all-encompassing determinism, the social relations of capitalist political economy are rather the &lt;em&gt;objective conditions&lt;/em&gt; under which science is undertaken. Capitalism’s endless pursuit of profit, its imperialist expansion, and its domination of the weak mold both a world to be measured and the tools with which to measure it.&lt;/p&gt;
&lt;p&gt;Thus, scientists confront this natural world of transferred, if hidden, social values and either engage with it critically (Darwin, Marx, Gould) or use it to defend systems of control (the IDW and pop sociobiologists).&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Dialectical Ecology</title><link>https://daniel-saunders.com/posts/essays/dialectical-ecology/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/essays/dialectical-ecology/</guid><description>Theorizing a two-way relationship between humanity and the natural world.</description><pubDate>Sun, 25 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/koyaanisqatsi-power.CEx-7BBX_Z2taHrR.webp&quot; /&gt; &lt;figcaption&gt;Still from Koyannisqatsi: power lines in the desert.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;“If we dig precious things from the land, we will invite disaster.” Thus reads one of the Hopi prophecies which echo throughout Philip Glass’s &lt;a href=&quot;https://youtu.be/OacVy8_nJi0&quot;&gt;haunting soundtrack&lt;/a&gt; for &lt;em&gt;Koyaanisqatsi&lt;/em&gt; (1982).&lt;/p&gt;
&lt;p&gt;As those familiar with Godfrey Reggio’s cult film know, the title itself refers to “a state of life that calls for another way of living,” a sharply polemical framing of what otherwise appears, at first, to be a detached, objective representation of humanity’s technological encroachment upon nature. What &lt;em&gt;Koyaanisqatsi&lt;/em&gt; pioneered still makes for exciting (and unsettling) cinema. Its cinematography, editing, tempo shifts, and music are all marshalled to the end of &lt;em&gt;replicating&lt;/em&gt; in art how technology, as a totality of forms and methods, has drawn everything into its domination. (&lt;a href=&quot;https://youtu.be/Xj0XL-5S-Ew&quot;&gt;Here is Reggio speaking&lt;/a&gt; of this totalizing “environment of technology” as something more or less akin to ideology—the invisible background of existence which “is unseen and goes unquestioned.”)&lt;/p&gt;
&lt;p&gt;But as the global climate crisis worsens, with more and more evidence linking ecological collapse to the limitless expansion of growth that characterizes the irrational logic of capitalism (in what has been aptly named the capitalist &lt;a href=&quot;https://johnbellamyfoster.org/articles/the-treadmill-of-accumulation/#:~:text=The%20treadmill%20model%20demonstrates%20that,human%20relation%20to%20the%20environment.&quot;&gt;“treadmill of accumulation”&lt;/a&gt;), &lt;em&gt;Koyaanisqatsi&lt;/em&gt; increasingly looks like a dire plea for planetary survival—we must urgently turn from the path of capitalist “business as usual,” specifically in the burning of fossil fuels, or face irreversible consequences for the biosphere, perhaps even for human life itself.&lt;/p&gt;
&lt;h2&gt;Critiquing Ecological Modernization&lt;/h2&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/rec8H6ILth3bEYvjL&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/rec8H6ILth3bEYvjL.1AyQK2Nr_1pMD4K.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/rec8H6ILth3bEYvjL&quot;&gt;Ecological Rift: Capitalism’s War on the Earth&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;John Bellamy Foster&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Capitalism, Ecology, Political Economy, Science, Socialism &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;&lt;em&gt;Koyaanisqatsi’s&lt;/em&gt; concerns, read in this way, overlap to a degree with the critical sociological project of John Bellamy Foster, Brett Clark, and Richard York—especially in their substantive compilation, &lt;em&gt;&lt;a href=&quot;https://monthlyreview.org/product/ecological_rift/&quot;&gt;The Ecological Rift: Capitalism’s War on the Earth&lt;/a&gt;&lt;/em&gt; (2010). Foster, Clark, and York (henceforth FCY) have been at the forefront of a compelling project of Marxist ecosocialism, which seeks to revitalize the dialectical-ecological ideas of Marx and Engels in order to develop a robust socialist theory encompassing history, nature, the biosphere, climate change, and the social relations of production.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/koyaanisqatsi-grid.D6oROWdi_Z1B7elN.webp&quot; /&gt; &lt;figcaption&gt;Still from Koyaanisqatsi: city traffic.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;Many of FCY’s arguments critiquing capitalism as the instigator and sustainer of ecological destruction are becoming an integral feature of socialist discourse. These include their definition of capitalism as a “system of self-sustaining value,” a “treadmill of accumulation,” and (one of the most notable of Marx’s metaphors) a “metabolic rift” in the natural-social fabric of production. Capitalism is, as Marx wrote in the &lt;em&gt;Grundrisse&lt;/em&gt;, an “endless and limitless drive to go beyond its limiting barriers,” including especially planetary boundaries. Following climate scientists, FCY identify seven such planetary boundaries which serve to maintain an overarching, regulating metabolism conducive to life, only one of which is climate change. To cross any one of these boundaries—and we have already crossed three—“signifies the onset of irreversible environmental degradation.”&lt;/p&gt;
&lt;p&gt;Another important component of FCY’s argument is a thoroughgoing critique of an &lt;em&gt;ecological modernization&lt;/em&gt; approach, the proposition that the only “way &lt;em&gt;out&lt;/em&gt; of the ecological crisis is by going further &lt;em&gt;into&lt;/em&gt; the processes of modernization” which have led to the crisis in the first place. This is embodied in the weak attempts (or lack thereof) by mainstream economists and social scientists to address accelerating problems of climate change. These ostensible experts &lt;a href=&quot;https://monthlyreview.org/2009/05/01/capitalism-in-wonderland/&quot;&gt;advocate a variety of dubious solutions&lt;/a&gt;, such as sacrificing the future liveability of the planet to maintain current levels of economic growth, waiting for a miracle technological fix that will “dematerialize” the economy from the physical earth, or even working toward explicitly non-socialist, modest reforms (along the lines of Greta Thunberg or the Democratic Party).&lt;/p&gt;
&lt;p&gt;All of these “solutions” sought by ecological modernization, however, leave intact the basic structure of capitalist social relations and, by extension, feed into capital’s limitless accumulating drive. In addition, they espouse a view of nature which reduces the environment to mechanism and mere units of input and output to be optimized so that the economy can keep on running as it should. “Sustainability,” write FCY, like the market buzzword &lt;em&gt;green&lt;/em&gt;, “is thus defined entirely in terms of economic growth, monetary wealth, and consumption, without any direct reference to the environment” (113).&lt;/p&gt;
&lt;h2&gt;Theorizing a Dialectical Ecology&lt;/h2&gt;
&lt;p&gt;But one of the more unexpected and fruitful arguments that emerges in &lt;em&gt;The Ecological Rift&lt;/em&gt; out of FCY’s theoretical nexus has to do with the philosophy of science itself, as well as the potential contours of an all-encompassing scientific theory able to bring together the environmental, the economic, and the social—in other words, a &lt;em&gt;dialectical ecology&lt;/em&gt;, or what amounts to a Marxist-infused natural science. There is a lot to say about many features of FCY’s project, but this last point is especially worth thinking about, given too how it builds on but complicates &lt;em&gt;Koyaanisqatsi’s&lt;/em&gt; central themes.&lt;/p&gt;
&lt;p&gt;One way to conceive this kind of dialectical ecology is to situate it against an alternative &lt;a href=&quot;https://plato.stanford.edu/entries/thomas-kuhn/#ConcPara&quot;&gt;scientific paradigm&lt;/a&gt;, one tied to the processes of modernization. The natural sciences we know today were born concurrently with the philosophies initiating the modern world. As these sciences developed a positivistic form, they came to be associated with general, unchanging laws about fundamentally discrete objects or processes in nature. Ironically, although positivism rejected the arguments of metaphysics, the outline of its form remained vaguely metaphysical in this tendency toward universal explanation and categorization. This was the case whether the universe was conceived in terms of a causal, mechanistic contraption or, alternatively, a living vessel propelled by invisible sparks of vitality.&lt;/p&gt;
&lt;p&gt;The evolutionary ideas of Darwin grew out of this paradigm but presented a major route out of it. In part, Darwin’s materialism was a return to an older materialism—that of of Epicurus, in which contingency, rather than determinism or teleology, was the grounding principle of nature’s forces. This contingency at the heart of nature led Darwin in new directions; but, according to FCY, Darwin still veered toward an environmental determinism with his theories of adaptation and niche. For Darwin, evolution proceeds by chance, but the environment provides the more or less static ground for the direction of evolution.&lt;/p&gt;
&lt;p&gt;And so, to refocus dialectical ecology: in between Darwin and the “New Atheists” like Richard Dawkins, who reductionistically posit the &lt;em&gt;gene&lt;/em&gt;, rather than the environment, as a determinative element, FCY bring in evolutionary scientists like Richard Lewontin and &lt;a href=&quot;https://blogs.scientificamerican.com/cross-check/stephen-jay-gould-on-marx-kuhn-and-punk-meek/&quot;&gt;Stephen Jay Gould&lt;/a&gt; to highlight the &lt;em&gt;dual, interactive evolutionary&lt;/em&gt; interplay between the environment &lt;em&gt;and&lt;/em&gt; the genetic. As Lewontin argued: “Evolution is not an unfolding but an historically contingent wandering pathway through the space of possibilities.”&lt;/p&gt;
&lt;p&gt;For these scientists, the “organism is both subject and an object in the physical world,” a scientific principle which draws from and extends Marx’s dialectical materialism to evolution itself:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The dialectical view emerging from ecology is anything but lifeless or mechanical; it has generated a view of nature no longer shorn of life, interconnection, and sensuous realty—no longer deterministic—but a world of coevolution, contradiction, and crisis… Neither mechanism nor vitalism, neither determinism nor teleology, were adequate in the ecological realm—a realm that demanded an understanding that was at once genetic and relational. (245)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Balance or Dialectics?&lt;/h2&gt;
&lt;p&gt;FCY’s argument here, following Marx, is that &lt;em&gt;nature has a specific history&lt;/em&gt;. This is a history in which organic life, inclusive of humanity, acts on and changes the world, at the same time as the world acts on and changes organic life. The two are enmeshed in an ongoing, dialectical interplay, a “metabolic” relation that is never the same but that has a discernible historical contour. Thus, the best way to understand the world, in both social and scientific terms, is to look at not only social history but natural history, and to look at them &lt;em&gt;together&lt;/em&gt;.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/koyaanisqatsi-pollution.U4xfRKvu_2vUnD5.webp&quot; /&gt; &lt;figcaption&gt;Still from Koyaanisqatsi: industrial pollution.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;This highlights an important feature of the metabolic rift theory, one that differentiates it from the powerful but ultimately less substantive ideas about the environment and human action put forth by Koyaanisqatsi. In centering modern technological development &lt;em&gt;itself&lt;/em&gt; as the underlying cause of humanity’s rupture with the natural world, &lt;em&gt;Koyaanisqatsi&lt;/em&gt; swings toward an unchanging, idealistic view of nature, one that sees the environment in terms of an “ideal, natural state”—a lost Eden which could be regained with the removal of industrial civilization. &lt;em&gt;Koyaanisqatsi&lt;/em&gt; shares this outlook with other trends in environmentalism like deep ecology and the &lt;a href=&quot;https://en.wikipedia.org/wiki/Gaia_hypothesis&quot;&gt;Gaia hypothesis&lt;/a&gt;. The ultimate goal, for these proponents, is to achieve &lt;em&gt;a grand balance&lt;/em&gt; between humanity and nature.&lt;/p&gt;
&lt;p&gt;Such a view overlaps in part, of course, with FCY’s critique of ecological modernization and its mechanizing view of nature. But FCY astutely point out the limitations of this “balance of nature” theory:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why would there be a grand balance in nature? Natural history is a record of drastic changes and discontinuities in the biophysical world. The assumption of a natural harmony is not consistent with a critical historical understanding of nature. (260)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(This, of course, raises some interesting questions for theology, which I can’t get into here, but even the most diehard proponent of Intelligent Design would have a hard time reckoning with the great imbalances nature presents. I think that Annie Dillard’s &lt;em&gt;&lt;a href=&quot;https://www.theguardian.com/books/2005/apr/30/featuresreviews.guardianreview9&quot;&gt;Pilgrim at Tinker Creek&lt;/a&gt;&lt;/em&gt; is useful here as perhaps a covert meditation on theodicy in light of the chaos of nature.)&lt;/p&gt;
&lt;p&gt;Moreover, rather than investigating the social and material forces that have driven history and environmental crisis—the advent and growth of capitalism, in particular—the balance of nature theory focuses almost exclusively on a &lt;em&gt;moral&lt;/em&gt; imperative for change. “Change becomes a &lt;em&gt;matter of adjusting values&lt;/em&gt; and developing the proper eco-ethics, and from there, it is assumed changes in the social structure will follow” (emphasis mine). “Life out of balance” must become “life in balance,” and our climate dilemma is solved.&lt;/p&gt;
&lt;p&gt;As I mentioned, this overlaps to a degree with FCY and is certainly compelling in its own way. But FCY show how a dialectical, materialist ecological approach—one informed both by Marx and evolutionary biology—is better equipped to understand and address the challenges posed by ecological rupture, precisely because it is not about nature as &lt;em&gt;balance&lt;/em&gt; but about nature as &lt;em&gt;change itself&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A dialectical materialist approach to nature provides the means for understanding the complex interactions throughout the natural world, the &lt;strong&gt;ability to explain the world in terms of itself&lt;/strong&gt;. It involves both the capacity to recognize that contingency and emergence are inherent aspects of a living world, and the capability to study the structural constraints and the inherent potential for change. &lt;br /&gt;&lt;br /&gt;In this, a materialist dialectic avoids the mechanistic reductionism of economistic approaches, where nature exists in the background… It also avoids the &lt;strong&gt;idealized notion that nature exists in a state of balance&lt;/strong&gt; and that a return to such a state is simply a matter of developing the appropriate moral-ethical system. (270, my emphasis)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Dialectical Theory for an Ecosocialist Practice&lt;/h2&gt;
&lt;p&gt;What does all this mean for ecology and socialism? First, that we confront the world as it is, full of its limitations and as a history of contingencies which have led only to this one, present set of circumstances, with all of its problems and potential. Part of the way human life has acted upon the world includes the development of the capitalist mode of production, which has threatened the planet’s functional boundaries.&lt;/p&gt;
&lt;p&gt;But within this contingent reality lies also the possibility to do things differently; the world as it is now contains the seed and impetus of the world to come, not by teleological decree but by the social-ecological relations we &lt;em&gt;politically choose&lt;/em&gt; to foster in our relationships of production. Ecology and the biosphere constitute a two-way interaction between humanity/life and nature. And so we are always in a position to shape our trajectory, not just through moral and scientific shifts but through political action.&lt;/p&gt;
&lt;p&gt;Notably, this trajectory of change is not &lt;em&gt;linear&lt;/em&gt; or &lt;em&gt;progressive&lt;/em&gt;, but proceeds in an irregular series of fits and starts. FCY remind us that, for Marx and Engels, “change is not typically smooth and continuous but rather often occurs very rapidly following periods of stasis.” Long periods of inaction, in both the social and natural worlds, can give way to abrupt, decisive moments of revolutionary change, when the cries of the people and the planet meld together to push for an alternative way of life free of capitalist alienation. Although the outlines of this alternative path are necessarily blurry from the standpoint of the present, it must take the form of a &lt;a href=&quot;https://monthlyreview.org/2020/09/01/the-renewal-of-the-socialist-ideal/&quot;&gt;“society of associated producers”&lt;/a&gt; in tune with nature’s boundaries—a vision famously sketched, in the negative, in Marx’s &lt;em&gt;&lt;a href=&quot;https://www.marxists.org/archive/marx/works/1875/gotha/ch01.htm&quot;&gt;Critique of the Gotha Program&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;In short, FCY’s theories equip us not just with a more accurate understanding of the interconnected physical and social world &lt;em&gt;on its own terms&lt;/em&gt;, but in true Marxist fashion, they also enable us to more effectively change it, directing it toward an unalienated future.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>On Sorting Books</title><link>https://daniel-saunders.com/posts/notes/on-sorting-books/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/on-sorting-books/</guid><description>Shelving books is, in fact, a dialectical art.</description><pubDate>Mon, 05 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Moving is never a pleasant experience, which is especially true amidst a pandemic and 100°-plus heat waves in Los Angeles. But it is the occasion for an undertaking which is simultaneously both thrilling and exasperating: sorting and re-shelving books.&lt;/p&gt;
&lt;p&gt;This pastime has overtaken me in the last week or so as we have packed up around eight shelves of books (not a crazy amount, but not nothing!) and moved them one whole block away (at least it was close!) to a bigger and better maintained apartment (because housing as a commodity is super cool and rational!).&lt;/p&gt;
&lt;p&gt;Leaving aside the issue of &lt;em&gt;why&lt;/em&gt; we accumulate so much meaningless stuff under capitalism—and a private library, while something I hold very dear, is ultimately a consumerist vanity item—and why we subject ourselves to carting around thousands of objects to different variations of the same square box every three to four years—leaving all that aside, there remains the extremely important issue of sorting books in a new space. Now, any philistine could simply take those boxes of books and throw them up on a shelf in any sort of haphazard fashion, but because I am a lover not only of the content but of the &lt;em&gt;form&lt;/em&gt; of books, the problem of shelving is one which causes me sleepless nights.&lt;/p&gt;
&lt;p&gt;There are several contextual factors which serve to limit and define the problem: the amount of available shelving, the configuration of the floorplan, the shapes and sizes of the books themselves, the existential energy levels at one’s disposal for the undertaking. But, in true Hegelian fashion, in the recognition of these necessities is the beginning of freedom.&lt;/p&gt;
&lt;p&gt;Shelving books is, in fact, a dialectical art. Against the rigid, metaphysical hierarchies of the Dewey Decimal System, the dialectical approach begins not with stale Platonic categories (“Philosophy,” “Art,” “Religion”) but with the understanding of the varied internal relations &lt;em&gt;among&lt;/em&gt; books. The books one owns form a giant conversation with one another and with their owner, and the way one shelves them can either reveal or conceal their syntheses. (And there is no single correct solution, of course; different configurations reveal different aspects of truth.) Granted, there must be a &lt;em&gt;beginning&lt;/em&gt; taking on some sort of topical form—which for me usually means my books on early Christianity and on Marx—but this beginning is only one point among many in a web of constant flux and interaction which forms the whole.&lt;/p&gt;
&lt;p&gt;Starting with Marx’s &lt;em&gt;Capital&lt;/em&gt;, for example, one might choose as natural shelf partners Terry Eagleton’s &lt;a href=&quot;https://daniel-saunders.com/posts/notes/the-marx-delusion&quot;&gt;&lt;em&gt;Why Marx Was Right&lt;/em&gt;&lt;/a&gt; and David Harvey’s &lt;em&gt;Companion to Capital&lt;/em&gt;. Things get more interesting with the inclusion of a compilation of Leaflets of the Russian Revolution and Vijay Prashad’s &lt;a href=&quot;https://daniel-saunders.com/posts/notes/red-star-over-the-third-world&quot;&gt;&lt;em&gt;Red Star Over the Third World&lt;/em&gt;&lt;/a&gt;, a combo which serves to connect Marx’s theory and praxis to the events of the Russian Revolution and from there to the internationalist, anti-imperialist, socialist revolutions throughout twentieth-century Asia, Africa, and South America.&lt;/p&gt;
&lt;p&gt;Developing this theme even further: Robin D.G. Kelley’s &lt;em&gt;Freedom Dreams&lt;/em&gt; taps into the liberatory hope which international socialism offered to the tradition of Black radicalism, while complicating the ultimate authority of Western-birthed movements for movements of the African diaspora. Finally, José Porfirio Miranda’s &lt;em&gt;Marx Against the Marxists&lt;/em&gt; seeks to recover an essentially humanist Marx amenable to the project of liberation theology. Thus, in one shelf, we have progressed from Marx himself to the heights of twentieth-century Communism and back to Marx against Marx, a resonant dialectical journey.&lt;/p&gt;
&lt;p&gt;Another favorite example from this current move is a tableaux of the unfolding of Christian philosophical thought across millennia, beginning with my few volumes of the magisterial &lt;em&gt;Ante-Nicene Fathers&lt;/em&gt; and &lt;em&gt;Nicene and Post-Nicene Fathers&lt;/em&gt;—which include some gems by Tertullian, Origen, Eusebius, and Gregory Nazianzen. Sitting next to them is the absolute brick of the &lt;em&gt;Oxford Dictionary of the Christian Church&lt;/em&gt;, then Samuel Enoch Stumpf’s accessible history of philosophy entitled &lt;em&gt;From Socrates to Sartre&lt;/em&gt;—both of which situate Christian thought historically.&lt;/p&gt;
&lt;p&gt;Anchoring the middle of the shelf are three hefty volumes of Christianity’s greatest philosopher, St. Thomas Aquinas, followed by &lt;a href=&quot;https://daniel-saunders.com/posts/notes/aquinas-and-the-role-of-the-metaphysician&quot;&gt;F.C. Copleston’s keen exposition&lt;/a&gt; of Thomas’s philosophical project. Naturally, the next spot is home to the three volumes of Copleston’s own &lt;em&gt;History of Philosophy&lt;/em&gt;, which narrate the philosophical shifts from the medieval to the modern era. And finally, a primer on the crucial texts of phenomenology, which indirectly suggests the &lt;a href=&quot;https://www.commonwealmagazine.org/god-continental-philosophers&quot;&gt;Catholic influence on the continental tradition&lt;/a&gt;. A shelf not without its limitations and concealings, but dialectically charged nonetheless.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Two World Views of the Russian Revolution</title><link>https://daniel-saunders.com/posts/notes/two-world-views-of-the-russian-revolution/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/two-world-views-of-the-russian-revolution/</guid><description>Walter Rodney’s dialectics of historical inquiry.</description><pubDate>Thu, 24 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;The Russian Revolution: A View from the Third World&lt;/em&gt; (Verso, 2018) compiles a series of lectures given by Walter Rodney, the black Guyanese radical, at the University of Dar es Salaam in Tanzania.&lt;/p&gt;
&lt;p&gt;Jesse Benjamin and Robin D.G. Kelley have done amazing work in editing and presenting &lt;a href=&quot;https://www.versobooks.com/books/2724-the-russian-revolution&quot;&gt;these lectures as a book&lt;/a&gt;. Writing from the broad perspective of the &lt;a href=&quot;https://daily.jstor.org/walter-rodney-guerrilla-intellectual&quot;&gt;anti-colonial and anti-capitalist&lt;/a&gt; “Third World,” and particularly from an underdeveloped Africa seeking to build socialism from next to nothing, Rodney’s penetrating lectures look to the events and historiography of the Russian Revolution—not in order to valorize those events for their own sake or to engage in a stale academic exercise, but to glean a revolutionary &lt;em&gt;method and impetus&lt;/em&gt; for present struggles.&lt;/p&gt;
&lt;p&gt;Rodney’s rejection of rigid models of historical interpretation and “necessary” trajectories of socialist development transcends Cold War limitations. Instead, his authentic use of Marxist historical materialism impels him to begin, per Lenin, with the “concrete analysis of concrete conditions.” &lt;a href=&quot;https://daniel-saunders.com/posts/notes/red-star-over-the-third-world&quot;&gt;This critical position&lt;/a&gt;—learning from but not copying the Soviet experience—not only leads to a deeper understanding of socialist history, but opens radical possibilities for present and future action.&lt;/p&gt;
&lt;p&gt;Rodney’s perspective offers especially keen insights in the historiography and interpretation of the Russian Revolution itself, a subject that manifests in “two world views.” Rodney’s framing of this subject is not simply to say that history is never neutral; rather, it is both a philosophical and political argument stating that the way we narrate history is an outgrowth of preexisting social relations in a given time and place, undertaken by a particular social class. Moreover, historical events themselves, in their ability to materially transform social realities, have the possibility to shift the constitution of historical consciousness.&lt;/p&gt;
&lt;p&gt;From this starting point, Rodney argues that there are two, antagonistic world views, or forms of historical interpretation, regarding the written histories of the Russian Revolution. Broadly speaking, these two world views represent “fundamentally opposed aspects of consciousness”: idealism and materialism, (rigid) metaphysics and (dynamic) dialectics, subjectivity and objectivity, individual and class, capitalist and socialist, bourgeois and Marxist.&lt;/p&gt;
&lt;p&gt;But these two forms are not exactly mirror opposites of each other. Rather, the split serves to show how one of these views—the bourgeois—makes dubious claims to universality, rationality, dispassion, and spatiotemporal cohesion, while the other begins from &lt;em&gt;the material realities and contingencies&lt;/em&gt; of class, social change, and the inherent contradictions between things.&lt;/p&gt;
&lt;h2&gt;History from the Bourgeois World View&lt;/h2&gt;
&lt;p&gt;The bourgeois view of the Russian Revolution centers the vantage point of the Western European/North American, capitalist class, but it obscures these particularities because it sees this experience as &lt;a href=&quot;https://daniel-saunders.com/posts/notes/the-origin-of-capitalism&quot;&gt;natural and timeless&lt;/a&gt;. To give credence to the Marxist view of history, Rodney writes, would be for the bourgeois scholar to “expose his own set of assumptions” and methodologies—something which goes against the inherent tendency of a ruling class ideology. But this false impartiality, which masks the fact that “European capitalism and imperialism (have) exploitation as their main objective,” is precisely why “there is every reason to seek an African view” of historical events, to question the official histories of the West by constructing an alternative history from the periphery.&lt;/p&gt;
&lt;p&gt;According to Rodney, the bourgeois historical world view is characterized by three things:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It (1) claims to be concerned with humanity rather than a given class; (2) [displays a] high level of subjectivism; and (3) refuses to recognize contradictions, except at a superficial level.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Rodney surveys many of the Western bourgeois historians of the Revolution, showing how their class blindness, elitism, and focus on personalities rather than social forces lead them often to “absurd” positions. But this absurdity does not imply weakness. Rather, the hegemony of the bourgeois world view over “official” history is evident, especially when one looks at the university—the institution which, in Marxist terms, replicates on the “superstructural” level the logic of capitalism which forms the material, economic base.&lt;/p&gt;
&lt;p&gt;The Western university reveals the strong connections between the objectives of the ruling capitalist class and the dominant form of historical consciousness (and other academic disciplines), which serves to create the ideological justification for the existence of the same ruling class. In terms of the historiography of the Russian Revolution, this truth can be seen most clearly in two areas: first, in the fact that prominent Western universities, backed by intellectual and political elites, gave prominent academic postings and platforms to &lt;a href=&quot;https://www.cambridge.org/core/services/aop-cambridge-core/content/view/C8413A5C999B36CA901D01438D8267A7/S0017257X00010885a.pdf/div-class-title-leonard-schapiro-div.pdf&quot;&gt;anti-communist Russian émigrés&lt;/a&gt; (the “White Russians”); second, some of the top American academic institutions were directly allied with the capitalist state government, as was the case with Stanford’s Hoover Institution for War and Peace and Harvard’s Institute of Russian Research.&lt;/p&gt;
&lt;h2&gt;History from the Marxist World View&lt;/h2&gt;
&lt;p&gt;In contrast to the bourgeois world view, the Marxist world view of history is built on the realities of class, material objectivity, and contingency:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The basis of the Marxist world outlook is the notion of dialectical materialism. It is a notion that first of all recognizes that change and historical movement are dependent upon the contradictions within things and between things. Any form of logic other than dialectics assumes that when one has a given object the object remains constant and discrete in itself. The dialectical notion stresses that every phenomenon is constantly transforming itself, owing to its own internal contradictions and to contradictions between itself and other phenomena.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This dynamic methodology means that “it is within nature and the material conditions of existence that one must find the motive forces in history,” not in personalities or ideas. Most importantly, the narration of history itself becomes a political task, because, as a class conscious exercise, it &lt;em&gt;takes the side of the workers and peasants&lt;/em&gt;. This shift in historical consciousness, rearing up against the bourgeois view of history, is made possible only because the classes of workers and peasants themselves, seizing the contradictions of tsarist Russia, were able to topple an authoritarian regime propped up by idealist notions.&lt;/p&gt;
&lt;p&gt;For Rodney, the materialist view of history is clearly the superior, even if it is not entirely comprehensive (which, of course, is in its nature &lt;em&gt;not&lt;/em&gt; to be—comprehensiveness being a conceit of bourgeois history). The Marxist historiography of the Russian Revolution carries on the same “revolutionary ideology” that instigated those events, but what is ultimately needed is to take and mold that revolutionary method for one’s own time and place. Such a task enables the potential for new narratives of history (an “African view of the Russian Revolution,” for example), just as it equips radicals with a theory of political struggle. As the editors Benjamin and Kelley write:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Rodney’s ‘two views’ perspective allowed him to see the West from outside, with double consciousness, and to seek a third path at the height of the Cold War—an alternative heralded by the signal fires of the Non-Aligned Movement and Third World Marxism… But the fundamental impulse of Rodney’s work remains our most urgent task: to join grounded revolutionary theory and history with the people in motion, in whatever form this takes.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Unmasking Mammon</title><link>https://daniel-saunders.com/posts/essays/unmasking-mammon/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/essays/unmasking-mammon/</guid><description>My review of Haymarket’s A People’s Guide to Capitalism: An Introduction to Marxist Economics, for The Bias magazine.</description><pubDate>Tue, 15 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;aside&gt; &lt;div&gt; &lt;span&gt;Assumed Audience&lt;/span&gt; &lt;/div&gt; &lt;div&gt; &lt;p&gt;This review essay was originally published for an &lt;a href=&quot;https://christiansocialism.com/biashome/&quot;&gt;online publication of
Christian Socialism&lt;/a&gt;.&lt;/p&gt; &lt;/div&gt; &lt;/aside&gt;
&lt;p&gt;I had the privilege of reviewing Hadas Thier’s new book, &lt;em&gt;A People’s Guide to Capitalism: An Introduction to Marxist Economics&lt;/em&gt; (Haymarket), for &lt;em&gt;The Bias&lt;/em&gt; magazine.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://christiansocialism.com/hadas-thier-marx-haymarket-review/&quot;&gt;Link to my review here.&lt;/a&gt; The book is a timely and succinct overview of Marx’s argument in &lt;em&gt;Capital&lt;/em&gt; (mostly volumes 1 and 3). Now more than ever, we need not just a robust moral critique of capitalism but a scientific theory of how it works and how to challenge its dominance.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/capitalist-pyramid.gYY8EphM_1BkPJR.webp&quot; /&gt; &lt;figcaption&gt;Pyramid of Capitalist System, 1911 cartoon, via Wikimedia Commons.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;Here’s a short excerpt of the review:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Thier’s goal is to help us demystify the unassailable realm of the dismal science, so that we might better challenge it. But this entails going beyond the reductionistic parameters set by mainstream economics itself. For as Thier writes, ‘Marx was more interested in uncovering the underlying dynamics of capitalism: what drives value, how it is produced, and for whom.’ These underlying dynamics take us to the heart of the mechanisms of capitalist inequality; they show us what capitalism is compelled to do, just as they prompt strategies of conceiving and fighting for more just alternatives.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Check out &lt;a href=&quot;https://www.haymarketbooks.org/books/1481-a-people-s-guide-to-capitalism&quot;&gt;Thier’s book here&lt;/a&gt;.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Red Star Over the Third World</title><link>https://daniel-saunders.com/library/reviews/red-star-over-the-third-world/</link><guid isPermaLink="true">https://daniel-saunders.com/library/reviews/red-star-over-the-third-world/</guid><description>How the October Revolution became a beacon for the Third World project.</description><pubDate>Thu, 27 Aug 2020 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recXaq9ITgjGiYutY&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recXaq9ITgjGiYutY.CNzAaf-m_2b8l67.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recXaq9ITgjGiYutY&quot;&gt;Red Star Over the Third World&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Vijay Prashad&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; Anti-imperialism, History, Marxism, Socialism &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;Vijay Prashad’s &lt;em&gt;Red Star Over the Third World&lt;/em&gt; is an explosive little book that admirably conveys the profound impact of the October Revolution and its continued influence for communist movements in the Third World—with a focus here on Asia, the Middle East, and Latin America.&lt;/p&gt;
&lt;p&gt;What Prashad lacks in focus and depth of analysis (this is a very short introduction, with the pros and cons of a bird’s-eye view and notable omissions in e.g. Africa), he makes up for in the strength of his &lt;a href=&quot;https://www.plutobooks.com/9780745339665/red-star-over-the-third-world&quot;&gt;associative vignettes of revolutionaries&lt;/a&gt;, artists, poets, peasants, workers, and religious figures who found their grounding in the events of 1917. (The book is worth it just for the bits of revolutionary poetry, pulled from a multitude of nationalities and languages, which appear throughout.)&lt;/p&gt;
&lt;p&gt;Nothing could be the same in the world after 1917, for “what should never have been became real”—a society where the oppressed masses had overthrown the oppressing classes and where “a total change in the life of the people” was being made.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Life of the people as they themselves order it.&lt;br /&gt;A law to uplift the life of the common man.&lt;br /&gt;Now there are no bonds of slavery.&lt;br /&gt;No slaves exist now.&lt;br /&gt;&lt;br /&gt;—Subramania Bharati, from an ode to “New Russia”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Prashad’s narrative is a compelling alternative to both a unilaterally triumphalist or defamatory assessment of the Soviet legacy. Rather, we are given brief but well-defined glimpses of honest, hard-won expressions of &lt;em&gt;polycentric communism&lt;/em&gt; beyond Russia, which took the Soviet experience as inspiration but which forged unique, experimental paths. True to Leninist form, these are movements born out of “concrete analyses of concrete conditions,” and they are worthy of study in their own right as part of the legacy of twentieth-century communism. As Prashad writes,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When Marxism came to the Third World, it had to be supple and precise—learn from its context, understand the way capitalism morphs in a new venue and explore the ways for social transformation to drive history.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Despite the influence of the Revolution, such suppleness often evaded the Soviet-led Comintern in its mixed guidance of these parties and nations—the Communist Party of Indonesia, the Mongolian People’s Revolutionary Party, the Communist Party of Persia, to name a few. But what was passed on, above all else, was a material and ideological commitment to solidarity against the ever-constant, external threats of imperialism and fascism.&lt;/p&gt;
&lt;p&gt;This violent, reactionary context shaped the possibilities of socialist and nationalist liberation movements worldwide, and it meant that, for movements made up of peasants and people fighting for self-determination, the communist cause was a matter of life and death. For “violence worked most effectively the other way,” on behalf of rapacious capitalist regimes &lt;em&gt;against&lt;/em&gt; revolutionary movements. Out of this context, it is remarkable that societies organized around the advancement of literacy, economic equality, gender equality, and general human flourishing had any degree of success (and many did have great success). It was only by uniting together under the international communist banner that they had any hope of doing so.&lt;/p&gt;
&lt;p&gt;The book’s last chapter, “Memories of Communism,” stands out on a personal level but also raises larger ideas about leftist history and the power of collective memory to nourish and inspire future generations of revolutionaries. Prashad recounts his first experiences of leftist organizing in his hometown of Kolkata and his discovery of classic communist books—&lt;em&gt;Capital&lt;/em&gt;, &lt;em&gt;Ten Days That Shook the World&lt;/em&gt;, Trotsky’s &lt;em&gt;History of the Russian Revolution&lt;/em&gt;. Such experiences form Prashad’s mature reflections on the legacy of the Revolution for leftist movements today. The lessons to be drawn are not that stale, dogmatic formulas ensure socialist success; nor that attempts to remake the world lead inevitably to disaster and ruin.&lt;/p&gt;
&lt;p&gt;Echoing the words of Fidel Castro, Prashad writes that,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Socialism is a total change in the life of the people.… It is something that I believe is the most important lesson from the history of socialist experimentation thus far.… We have to develop new ideas to deepen the meaning of socialism, &lt;em&gt;a living tradition not a dead past&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What is clear from this book is that pessimistic appraisals of the Left and its decline over the last 50 years are largely a Western phenomenon. For the places where the memory of the October Revolution survives, the hope borne by the red flag is as vibrant as ever. &lt;em&gt;Red Star Over the Third World&lt;/em&gt; is a short, accessible introduction to the immense contributions of communism and the lasting revolutionary influence of events that dared to remake the world.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Los Angeles Intellectuals</title><link>https://daniel-saunders.com/posts/notes/los-angeles-intellectuals/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/los-angeles-intellectuals/</guid><description>Lurking beneath the sunny veneer of culture-capitalism is a lineage of critical work that, as Mike Davis argues, emerged as L.A.’s distinctive intellectual contribution: the genre of noir.</description><pubDate>Tue, 20 Aug 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;As a guide to understanding the cultural mythology and socio-geographical history of the singular American city that represents both “the utopia and dystopia for advanced capitalism,” there is none more incisive than Mike Davis’ &lt;em&gt;City of Quartz&lt;/em&gt;, a tour de force which offers perhaps the definitive account of the land “&lt;a href=&quot;https://www.zocalopublicsquare.org/2016/02/11/meet-the-toughest-mountains-in-california/ideas/connecting-california&quot;&gt;south of the Tehachapis&lt;/a&gt;” even 30 years after its first printing.&lt;/p&gt;
&lt;article&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recpj4NBi2Vw2rtkW&quot;&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/recpj4NBi2Vw2rtkW.CQQknYj4_ZpGhwr.webp&quot; /&gt; &lt;/a&gt; &lt;div&gt; &lt;h3&gt; &lt;a href=&quot;https://daniel-saunders.com/library/books/recpj4NBi2Vw2rtkW&quot;&gt;City of Quartz: Excavating the Future in Los Angeles&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Mike Davis&lt;/p&gt; &lt;p&gt; &lt;strong&gt;Shelves: &lt;/strong&gt; History, Literary Criticism, Political Economy, Social Change &lt;/p&gt; &lt;/div&gt; &lt;/article&gt;
&lt;p&gt;Davis offers what is effectively a &lt;a href=&quot;https://www.versobooks.com/books/2762-city-of-quartz&quot;&gt;materialist history of Los Angeles&lt;/a&gt;—highlighting the throughline of white, capitalist power and oppression in the region’s evolution, especially in relation to its geography. But materialism notwithstanding, he begins by surveying the intellectuals who effectively created the myths by which the region came to understand itself and by which the region itself was shaped in material fact.&lt;/p&gt;
&lt;p&gt;To begin a discussion of Los Angeles by invoking its intellectuals is, as Davis recognizes, to “invite immediate incredulity, if not mirth.” In contrast to the formidable intellectual heritage present in American cities like New York or San Francisco, Los Angeles is traditionally viewed as a “sun-baked plain” of “peculiarly infertile soil, unable to produce, to this day, any homegrown intelligentsia.” The creative and intellectual forces that Los Angeles has attracted have almost always gone to its boundless Culture Industry; it is Los Angeles where “almost everyone is either on a corporate payroll or waiting hopefully at the studio gate” (a truth satirized to perfection in Joel and Ethan Coen’s &lt;em&gt;Barton Fink&lt;/em&gt;). Such a bastardization of the mind by its tainted pact with capitalist powers has led to the image of Los Angeles as destroyer of intellectual rigor:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To move to Lotusland is to sever connection with national reality, to lose historical and experiential footing, to surrender critical distance, and to submerge oneself in spectacle and fraud. Fused into a single montage image are Fitzgerald reduced to a drunken hack, West rushing to his own apocalypse (thinking it a dinner party), Faulkner rewriting second-rate scripts, Brecht raging against the mutilation of his work, the Hollywood Ten on their way to prison, Didion on the verge of a nervous breakdown, and so on.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But lurking beneath the sunny veneer of culture-capitalism exists a lineage of critical work that, Davis argues, emerged as L.A.’s distinctive intellectual contribution: the literary and film genre of &lt;em&gt;noir&lt;/em&gt;. Through its combination of “‘tough-guy’ realism, Weimar expressionism, and existentialized Marxism,” &lt;em&gt;noir&lt;/em&gt; represents the nexus of L.A. (and capitalism itself) as a double-faced city—utopia and dystopia, heaven and hell.&lt;/p&gt;
&lt;p&gt;Thus, to open this book on the social and material history of Los Angeles, Davis uses the “master dialectic” of &lt;em&gt;sunshine and noir&lt;/em&gt; to explore successive generations of intellectuals who shaped the regional ideologies that persist to this day. On one hand of this typology are the mythologizers themselves, those who sought to construct or deconstruct a particular image of the city.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/sunshine-noir.Bjc3YsS4_1Oavzv.webp&quot; /&gt; &lt;figcaption&gt;The dialectical movement of sunshine and noir in Los Angeles.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;In this camp Davis places the following types, along with their chief representatives: “the Boosters,” the original fabricators of the (white) Southern California dream (Charles Fletcher Lummis); “the Noirs” and “the Exiles,” writers, artists, filmmakers, and European expatriates whose work showed how that dream had become nightmare (James M. Cain, Raymond Chandler, James Ellroy, numerous &lt;a href=&quot;https://www.ucpress.edu/book/9780520257955/weimar-on-the-pacific&quot;&gt;Weimar exiles&lt;/a&gt; from Brecht to Adorno and Horkheimer); and “the Mercenaries” and “the Sorcerers,” a relatively recent influx of architects, designers, theorists, and scientists allied to the interests of wealthy institutions and billionaire patrons (Reyner Banham, Frank Gehry, Robert A. Millikan, L. Ron Hubbard).&lt;/p&gt;
&lt;p&gt;At the other pole of the &lt;em&gt;sunshine and noir&lt;/em&gt; dialectic are the anti-mythologizers, those contemporaneous with each wave of the mythologizers who see Los Angeles as a real city stratified by class and material interests. With these groups, Davis charts attempts at establishing “authentic epistemologies for Los Angeles” that cut through the mirages of the mythologizers.&lt;/p&gt;
&lt;p&gt;In this camp are “the Debunkers,” anti-romantic writers who focused on the role of class violence in the early cultural landscape of L.A. (&lt;a href=&quot;https://www.amazon.com/Dynamite-Story-Class-Violence-America/dp/1904859747&quot;&gt;Louis Adamic&lt;/a&gt;, &lt;a href=&quot;https://www.goodreads.com/book/show/117021.Southern_California?from_search=true&quot;&gt;Carey McWilliams&lt;/a&gt;); “the Communards,” avant-garde artists and writers who explored difference and anti-universality as foundational concepts in their portraits of daily life in fringe communities (Ornette Coleman, Kenneth Anger, &lt;a href=&quot;https://www.wired.com/2009/07/unofficial-thomas-pynchon-guide-los-angeles&quot;&gt;Thomas Pynchon&lt;/a&gt;); and thirdly, an unnamed group (contemporary to the 1990 publication of the book) of various figures, including UCLA professors and Compton rappers, wrestling with the corporate-cultural apparatus of “postmodern Los Angeles” (the “&lt;a href=&quot;https://en.wikipedia.org/wiki/Los_Angeles_School&quot;&gt;L.A. School&lt;/a&gt;”, &lt;a href=&quot;https://www.youtube.com/watch?v=c5fts7bj-so&quot;&gt;NWA&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;This account of L.A.’s shifting intellectual history captures something of the city’s essential duality, a feature apparent to those who look a little deeper than the veneer proffered by Hollywood and Instagram influencers. (And only a little: Skid Row, the blighted capital of Los Angeles homelessness, impudently sits a mere two blocks from the “revitalizing” center of Downtown Los Angeles and its wealthy “work-play” residents.) But the allure of dreams and nostalgia that is the City of Angels is overbearing, and the small few, like Davis and his subjects, who wish to engage in sober critique of L.A.’s “&lt;a href=&quot;https://www.latimes.com/la-bk-mike-davis-1990-12-09-story.html&quot;&gt;daytime problems&lt;/a&gt;” in a manner that goes beyond the stereotypical bashing, appear as infrequent figures desperately trying to gain substance in a world of mirages.&lt;/p&gt;
&lt;p&gt;The Los Angeles intellectual is faced with dire obstacles. The lack of a civic culture and history, the lack of shared contexts (what does the Jewish Westside have to do with Salvadoran Westlake?), the lack of even a central geographical hub in this massive non-city dominated by the car makes it nearly impossible for a sustained, critical scene to take root. Were it to succeed, the further danger of any critical thought being enveloped into the Culture Industry persists. But the connections Davis makes are valuable, and they establish a clearly trod path and way forward for future attempts at “authentic epistemologies for Los Angeles.”&lt;/p&gt;
&lt;p&gt;For one, it is evident that these epistemologies, if they are to rise above the smog of L.A.’s pseudo-philosophies and resist the nullifications of celebrity, must confront the all-encompassing power of capital and white supremacy, and their expression in the spatial/social oppression that is visible everywhere in Southern California.&lt;/p&gt;
&lt;p&gt;Thus Davis, in the epilogue to chapter one, sees the path forward as occupying the middle ground between a Gramscian optimism (a coalition of “counter-hegemonic” cultures) and the pessimism of Blade Runner’s apocalyptic critique of capitalism. This hybrid thought can acquire “social force (only) if it is embodied in an alternative experiential vision—in this case, of the huge Los Angeles Third World…polyethnic and poly-lingual.” In 2019, it seems too early to say whether such alternative thought has successfully taken hold, but the need for it is as strong as ever.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>The Marx Delusion</title><link>https://daniel-saunders.com/posts/notes/the-marx-delusion/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/the-marx-delusion/</guid><description>A specter is haunting characterizations of Karl Marx.</description><pubDate>Wed, 13 Feb 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Terry Eagleton’s witty &lt;em&gt;Why Marx Was Right&lt;/em&gt; might more accurately be called something like: &lt;em&gt;Marxism Is Not What Most People (viz. Those Who Have Strong Opinions on Marx but Have Probably Never Read Him) Think It Is&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Or, &lt;em&gt;What If the Common Objections to Marxism Don’t Have Anything to Do with Marx’s Actual Thought, which in Fact Constitutes a Plausible and Deeply Coherent Account of Life under Capitalism and which Is Still Relevant Today?&lt;/em&gt;, but in the interests of space and marketing, the chosen title is undoubtedly better. The perennial boogeyman of liberals, conservatives, and fascists alike, perhaps no thinker of such towering significance, Eagleton observes, has been so travestied as Marx.&lt;/p&gt;
&lt;p&gt;We often hear, for instance, of Marx the determinist, the cold, Enlightenment rationalist who had no use for human freedom in his grand and inevitable scheme of dialectical materialism, as it marches ever onward to communist totalitarianism; Marx the anti-individualist, the eraser of personal and cultural identities in the grey, uniform sea of the vulgar masses; Marx the atheist, the militant secularist who wished for the annihilation of spirituality and the repressive opiate of organized religion; Marx the statist, the enabler of authoritarian regimes and bureaucratic tyranny; Marx the utopian idealist, a clueless dreamer who had no understanding of the practical considerations of governments or markets or human behavior (which is apparently nasty, brutish, short, and inherently geared toward greed and egotism); Marx the terrorist, the instigator of violent uprisings, perpetrator of class warfare, and enemy of decent, respectable methods of reform; and so on &lt;em&gt;ad infinitum&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;But none of these Marxes quite squares with the real philosopher from Trier, the humanist who inherited and built upon the Jewish themes of justice, liberation, and collective redemption; the passionate poet who quoted from Balzac, Shakespeare, and fairy tales in the pages of &lt;em&gt;Capital&lt;/em&gt;; the German Romantic who despised the abstract and reveled in the concrete matter of existence—its blood, sweat, tears, and laughter. Nor do they accurately portray the views of a man for whom the state was “nothing but a committee for managing the common affairs of the whole bourgeoisie” (&lt;a href=&quot;https://www.marxists.org/archive/marx/works/1848/communist-manifesto/ch01.htm&quot;&gt;&lt;em&gt;The Communist Manifesto&lt;/em&gt;&lt;/a&gt;) and for whom the utopian socialists like Saint-Simon and Fourier were pedants blinded by “their fanatical and superstitious belief in the miraculous effects of their social science” in attempts “to realize (their) castles in the air” (&lt;a href=&quot;https://www.marxists.org/archive/marx/works/1848/communist-manifesto/ch03.htm&quot;&gt;ibid.&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;“Materialism for Marx meant starting from what human beings actually were, rather than from some shadowy ideal to which we could aspire,” writes Eagleton, a statement which ought to reassure any conservative wary of social planning and progressivism. Marx’s materialism, in fact, is one of his most misunderstood ideas—which is unfortunate, given that it forms the bedrock of his thought.&lt;/p&gt;
&lt;p&gt;Far from being an atheistic monism “which regards matter as the only reality in the world…and which thus denies the existence of God and the soul” (the &lt;a href=&quot;https://en.wikisource.org/wiki/Catholic_Encyclopedia_(1913)/Materialism&quot;&gt;&lt;em&gt;Catholic Encyclopedia&lt;/em&gt;&lt;/a&gt;), materialism for Marx is an argument for how history should be read—that is, precisely as the record of our activity first and foremost as self-determining, laboring, corporeal beings with material needs, rather than as the esoteric unfolding of Hegel’s “world spirit.” It is not so much an overarching system as it is a “theory of how historical animals function” and a call to examine a facet of societal development that is usually overlooked. Thought—including morality, law, and even spirituality—is not some disembodied, dualistic affair but is intimately bound up with our bodies and material context.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A thinker like Locke or Hume starts with the senses; Marx, by contrast, asks where the senses themselves come from. And the answer goes something like this. Our biological needs are the foundation of history. We have a history because we are creatures of lack, and in that sense history is natural to us. Nature and history are in Marx’s view sides of the same coin…&lt;br /&gt;&lt;br /&gt;We can fulfill our natural needs only by social means—by collectively producing our means of production. And this then gives rise to other needs, which in turn gives rise to others. But at the root of all this, which we know as culture, history or civilisation, lies the needy human body and its material conditions. This is just another way of saying that the economic is the foundation of our life together. It is the vital link between the biological and the social.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As Eagleton notes in another of his books on the subject, &lt;em&gt;Materialism&lt;/em&gt;, this foundational outlook of Marx’s is quite compatible with a sacramental religion in which God entered into this same material context to enact a historical mission, as well as with St. Thomas Aquinas’ conception of the human as an impermanent creature radically dependent on a sustaining Creator. It does not negate the spiritual but sees it as inseparable from the concrete facts of material existence.&lt;/p&gt;
&lt;p&gt;If Marx focused so much on the material, it was because he found it integral to collective human flourishing in a sense similar to the Aristotelian &lt;em&gt;eudamonia&lt;/em&gt;—physical, mental, and spiritual well-being achieved through practical activity. As Walter Benjamin wrote, “the class struggle…is a fight for the crude and material things without which no refined and spiritual things could exist” (&lt;em&gt;Illuminations&lt;/em&gt;).&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>The Origin of Capitalism</title><link>https://daniel-saunders.com/library/reviews/the-origin-of-capitalism/</link><guid isPermaLink="true">https://daniel-saunders.com/library/reviews/the-origin-of-capitalism/</guid><description>Is capitalism an inevitable outcome of human nature?</description><pubDate>Fri, 11 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;There is a story told about capitalism—mostly by its proponents: classical liberals, American conservatives, libertarians, and the like; but also sometimes inadvertently by its Marxist critics—that sees this system as synonymous with human nature in all times and all places, as the innate propensity of the human species to “truck, barter, and exchange,” in the words of one of its most famous theorists, Adam Smith.&lt;/p&gt;
&lt;p&gt;In this view, capitalism is as natural as the sun rising, and any society that was not already capitalist from the start was able to become so by the removal of given obstacles, whether through political, technological, mercantile, or revolutionary means. History is one long, continuous awakening of human civilization to the beneficial opportunities of the free market (even if, in a Marxist narrative, it is not the final goal), such that we can draw a direct line from “the earliest Babylonian merchant through the medieval burgher to the early modern bourgeois and finally to the industrial capitalist” (p. 5).&lt;/p&gt;
&lt;p&gt;Apart from an explanation which it already presupposes, what is missing from this widespread view, dubbed the “commercialization model” by Ellen Meiksins Wood, is any understanding of (1) the &lt;em&gt;specificity&lt;/em&gt; of capitalism, in both its historical development and actually existing structure of social arrangements, and (2) the distinctive character of the market not as &lt;em&gt;opportunity&lt;/em&gt; but as &lt;em&gt;imperative&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;For as a critical examination of the logic of capitalism reveals, this system is marked not by freedom or opportunity but by the inescapable compulsions of “competition, accumulation, profit-maximization, and increasing labour-productivity,” (p. 7) which ensnare not only producers but capitalists themselves. In a capitalist system, everyone &lt;em&gt;must&lt;/em&gt; participate competitively in the market just to survive.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://www.versobooks.com/books/2407-the-origin-of-capitalism&quot;&gt;&lt;em&gt;The Origin of Capitalism&lt;/em&gt;&lt;/a&gt;, Wood dismantles the myths of the commercialization model in an effort to locate the true birth of this system, an endeavor which “may seem arcane, but (which) goes to the heart of assumptions deeply rooted in our culture” about the nature of capitalism, and which seeks to uncover the historical specificity, and ultimately the impermanence, of capitalism. For if capitalism is not the natural state of humanity, but is rather a product of a particular moment in history, then it will be revealed as something which can be brought to an end.&lt;/p&gt;
&lt;p&gt;If capitalism is not simply commerce or profit-taking, then where and how did it arise? Following Marx, Wood identifies the birth of capitalism in a distinct time and place, among distinct social property relations—specifically, in the 16th–17th century English countryside, among the “famous triad of landlord, capitalist tenant, and wage labourer” (p. 103).&lt;/p&gt;
&lt;p&gt;An essential component of Wood’s argument (following fellow Marxist scholar Robert Brenner) is that Europe’s transition out of feudalism was not, as the commercialization model holds, an uneven but irresistible transformation from a monolithic feudalism into the natural end of capitalism, but was rather a series of transitions that produced several outcomes, only one of which (England) was capitalism.&lt;/p&gt;
&lt;p&gt;In France, for example, feudalism matured into an absolutist state, in which economic &lt;em&gt;and&lt;/em&gt; political power were united in the apparatus of a centralized government but in which there existed a multitude of local, fragmented markets. French absolutism reproduced a feudal, pre-capitalist logic of appropriation, one that was “extra-economic”—in this specific case, appropriation by brute, state-backed force in the form of government-levied taxes on peasant surpluses. In this system, neither peasant, who held direct ties to the land, nor state official was bound by the exclusively economic logic of competition and labor productivity which characterizes capitalist relations.&lt;/p&gt;
&lt;p&gt;In fact, France was still guided by this non-capitalist logic at the time of the French Revolution; questioning the popular conflation of &lt;em&gt;bourgeois&lt;/em&gt; with &lt;em&gt;capitalist&lt;/em&gt;, Wood shows how that event can be understood as bourgeois (the Third Estate demanding equality from church and aristocracy), but not as capitalist (the revolution did little to nothing by way of transforming property relations between the peasantry and the Estates).&lt;/p&gt;
&lt;p&gt;It was precisely England’s different post-feudal arrangement of social property relations which produced capitalism in a way France could not. In England, an aristocracy weakened in extra-economic power but rich in unusually large land holdings meant that most of the agricultural production was accomplished by tenant farmers, not by peasant-proprietors as elsewhere in Europe. Because landlords lacked the “extra-economic” force of traditional appropriators, they “depended less on their ability to squeeze more rents out of their tenants by direct, coercive means than on their tenants’ success in competitive production” (p. 100).&lt;/p&gt;
&lt;p&gt;Thus were tenants compelled to increase labor productivity and profit maximization just to “stay in the game” and continue to have access to land, as poor performance could mean dispossession or transference of land to a more productive tenant. For the first time, a competitive market in economic rents—in which both landlord &lt;em&gt;and&lt;/em&gt; producer were market dependent—was established, and capitalism’s logic of purely “economic appropriation,” separate from but reliant on the power of the state, was born.&lt;/p&gt;
&lt;p&gt;This leaves the third character of the English agrarian capitalist triad, the wage laborer, whose number was continually swelled by those dispossessed peasant farmers who could no longer compete in the market. These landless workers were compelled to sell their labor for access to the very necessities of life, thereby creating a new class—the proletariat.&lt;/p&gt;
&lt;p&gt;By 1700, London was the largest city in Europe, due in large part to the growth of this class. (France, by contrast, remained at this time a mostly rural society.) The existence of a market-dependent urban population was a twofold boon to the emerging capitalist system: not only as a source for industrialized labor, but also as a ready-made, domestic consumer market for the manifold commodities capitalism was beginning to produce.&lt;/p&gt;
&lt;p&gt;Thus Wood flips traditional understandings of capitalism’s development: it arose in the countryside, not the city; it centered around the tenant farmer, not the bourgeois merchant; it created a market dependence which was a &lt;em&gt;cause&lt;/em&gt;, not a result, of mass proletarianization; it formed a market society based on competition and labor productivity &lt;em&gt;before&lt;/em&gt; it saw those values best advanced by industrial techniques.&lt;/p&gt;
&lt;p&gt;The competitive pressures engendered by capitalism in England grew ever wider in orbit and began to draw other nations into its fold as capitalism transformed into a global system. Economic-productive appropriation was justified by numerous thinkers, explicitly or implicitly—including John Locke, who developed the important idea of &lt;em&gt;improvement&lt;/em&gt; of capitalist property.&lt;/p&gt;
&lt;p&gt;Locke’s argument is that unimproved land—land not rendered profitable—is &lt;em&gt;waste&lt;/em&gt;, and so the person who appropriates common land as private property and puts it to productive, that is capitalist and profitable, ends is doing something beneficial for humanity. Hundreds of years of custom and communal use of land was erased by the practice of “enclosure.” Needless to say, this ideology proved especially useful in the imperialist dispossession of Indigenous peoples of nearly all of their “unused” land.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;Origin of Capitalism&lt;/em&gt; is convincing in its endeavor to show how capitalism is not an inherent or inevitable outcome of human nature, but is the result of specific conditions arising out of (and sustained by) specific social property relations. The book also succeeds in laying bare the distinct “logic” of capitalism, which determines its true nature. That nature, far from being rational and free, is instead compulsive, contradictory, unstable, destructive of the environment, and insatiable in its drive to squeeze more productivity and profit out of labor.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Aquinas and the Role of the Metaphysician</title><link>https://daniel-saunders.com/posts/notes/aquinas-and-the-role-of-the-metaphysician/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/aquinas-and-the-role-of-the-metaphysician/</guid><description>Thomas’ “metaphysics,” if indeed it can be called that, is neither an overarching rationalist system nor a purely sense-oriented empiricism.</description><pubDate>Wed, 30 Aug 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Part of modern philosophy’s distrust of metaphysics arises from a not undue association of the term with the Rationalist and Idealist philosophers of previous centuries; for thinkers from Spinoza to Hegel the task of metaphysics involves the deduction of an all-encompassing system of reality based on self-evident, a priori propositions, an activity which easily slips into speculation.&lt;/p&gt;
&lt;p&gt;For Thomas, however, as F.C. Copleston argues in his &lt;a href=&quot;https://www.penguinrandomhouse.com/books/268921/aquinas-by-f-c-copleston&quot;&gt;gloss on the philosopher&lt;/a&gt;, the metaphysician is concerned with a very different kind of activity, one which is empirically rooted in our everyday sense-experience:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This point [that we cannot deduce from purely metaphysical premises the hypotheses and conclusions of the sciences] can be made clearer by anticipating to a certain extent and drawing attention to Aquinas’ general conception of the metaphysician’s activity. The latter is concerned with interpreting and understanding the data of experience; and to this extent the root-impulse of his mind is common to himself and the scientist. But the metaphysician concerns himself primarily with things considered in their widest and most general aspect, namely as beings or things. For Aquinas he directs his attention above all to things as existing; it is their existence on which he rivets his gaze and which he tries to understand. And this is one reason why Aquinas says, as we shall see later, that the whole of metaphysics is directed towards the knowledge of God.…&lt;br /&gt;&lt;br /&gt;
We can see therefore that for Aquinas the philosopher as such has no privileged access to a sphere of experience from which non-philosophers are debarred. His insight into the intelligible structure of the world presented in experience is the result of reflection on data of experience and of insight into those data which are in principle data of experience for everyone, whether he is a philosopher or not…. The ordinary man apprehends in some sense the fundamental metaphysical principles, though he does not formulate them in the abstract way in which they are formulated by the philosopher. It is so often the case that the philosopher makes explicit what is implicitly known by people in general.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is Thomas as the “philosopher of common sense”—a term meaning not a kind of simplistic perception but rather knowledge building on the experiences that all people theoretically hold in common. For Thomas, everyone by virtue of their rational human nature has an intuitive understanding of things like universal terms, causality, and development; it remains to the philosopher to speak of them explicitly, often in new language so as to go deeper into &lt;em&gt;what&lt;/em&gt; and more importantly &lt;em&gt;why&lt;/em&gt; they are.&lt;/p&gt;
&lt;p&gt;For ultimately metaphysics is concerned with “accounting for or explaining the existence of things which change and which come into being and pass away.” Experience shows us that the world, in its very finiteness and contingency, is subject to development and change. Philosophic reflection on this point leads us then to the opposite; that the things of experience, the entirety of the world as we receive it through our senses, are existentially dependent on something permanent, infinite, and unchangeable—for Thomas, this something is a Creator.&lt;/p&gt;
&lt;p&gt;In this conception, the task of the metaphysician is never complete. While the truths uncovered by the metaphysician start to coalesce into universal and necessary forms, the metaphysician is always going out into the world to explore all of experience, constantly gathering data in a search for knowledge that is a mere waypoint on the path to the First Cause of all being.&lt;/p&gt;
&lt;p&gt;Such a “metaphysics,” if indeed it can be called that, is neither an overarching rationalist system nor a purely sense-oriented empiricism. Perhaps it is ultimately closer to the dialectical materialism of Karl Marx—a philosophy engaged with the flux of material, historical change and humanity’s common interaction with itself and nature—than it is to any Enlightenment idealism.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>David Lynch and the Nature of the Surreal</title><link>https://daniel-saunders.com/posts/notes/david-lynch-and-the-nature-of-the-surreal/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/notes/david-lynch-and-the-nature-of-the-surreal/</guid><description>Wrestling with the Lynchean concept of evil.</description><pubDate>Mon, 21 Aug 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The cinema of David Lynch, true to the spirit of its Surrealist predecessors in art and film, has always resisted conventional characterization or description.&lt;/p&gt;
&lt;p&gt;Take &lt;em&gt;Lost Highway&lt;/em&gt;, a film in which to attempt even a straightforward plot summary makes one sound unhinged: “A guy murders his wife and then turns into another person. No, literally &lt;em&gt;transforms&lt;/em&gt; into a completely different human being … and then his murdered wife turns up as a different character. No, the same &lt;em&gt;person&lt;/em&gt;, different character. I think?”&lt;/p&gt;
&lt;p&gt;Surrealist art glories in this imperviousness to convention, in its ability to thwart our impulses for narrative, causality, and cohesion. In substance it tries to render in the context of everyday life the immediacy of the unseen, the unconscious, to depict reality “unfiltered” by the frameworks we usually deploy without thinking. Surrealist pioneer André Breton articulated this ideal as “psychic automatism,” in which the artist by means of a medium expresses the “real functioning of the mind.” Surrealism’s formal aspects are structured to achieve this psychic revolution—for example, the juxtaposition of disparate or illogical elements that are at the same time familiar and absurd, even disturbing when taken together.&lt;/p&gt;
&lt;p&gt;But where these external trappings would seem to elude rational explicability, surrealism’s mode often serves to single out and intensify a particular &lt;em&gt;feeling&lt;/em&gt;, a concealed but visceral emotional landscape that does, in fact, have a traceable contour. David Lynch excels in this art and proves himself to be not only a brilliant surrealist but still one of the most interesting filmmakers working today. His work suggests, it seems to me, that he does not start with a story and ask, “How can I incorporate this feeling into the story?”&lt;/p&gt;
&lt;p&gt;Rather, he begins with an idea, the substance of a feeling, and asks, “What can I create that is true to that idea, that evokes the fullness of that feeling?” It is for this reason that I am usually able to recall moments of Lynch more accurately by how they made me &lt;em&gt;feel&lt;/em&gt; rather than by &lt;em&gt;what happened&lt;/em&gt; in them. (I think it is also for this reason that David Lynch seems to have a hard time &lt;a href=&quot;https://www.youtube.com/watch?v=_rcv1W146Gs&quot;&gt;talking about the process&lt;/a&gt; of making his own movies; for him, they just sort of happen.)&lt;/p&gt;
&lt;p&gt;As anyone knows who is at all familiar with Lynch, the particular feeling that recurs most often throughout his work is &lt;em&gt;dread&lt;/em&gt;. Lynch’s signature cinematic techniques—a passive, “disinterested” lens which forces us to behold depraved and violent acts; excruciatingly long and apprehensive takes of mundane settings; the constant presence of slightly-too-loud, industrial-esque white noise; disorienting characters doing disorienting things—all these function together to create a kind of emotional &lt;em&gt;mise en scène&lt;/em&gt;, one which orients the viewer toward fear as a tangible reality. No matter what kind of external action or setting may present itself to us, whether it be in Lumberton, Twin Peaks, or Los Angeles, it is this invisible world which asserts itself as truth, as the “real functioning of the mind.”&lt;/p&gt;
&lt;p&gt;And what is taken as the real functioning of the mind seems quickly to become an implied assertion about the nature of reality as such: that darkness and evil stalk behind every banal appearance, that fear and dread are to be found at the very core of existence. But there is more yet: that &lt;em&gt;evil is&lt;/em&gt;; that evil exists as substance, as will, as a Nothing which is Something. In contrast to the doctrine of Augustine, for whom evil &lt;em&gt;is not&lt;/em&gt; but can only be described as a lack of being, this is a conception of evil that originates outside of human experience. Here we are closer than anything to Melville’s white whale, a symbol larger than allegory which looms behind all human action, a transcendent, inarticulable, and malevolent force.&lt;/p&gt;
&lt;p&gt;There have been many notable portrayals of this transcendent evil throughout Lynch’s work, including Frank Booth in &lt;em&gt;Blue Velvet&lt;/em&gt; and the Mystery Man in &lt;em&gt;Lost Highway&lt;/em&gt;. But the quintessential portrayal for me remains Bob, the demonic entity in &lt;em&gt;Twin Peaks&lt;/em&gt; who possesses characters and drives them to horrific acts. Like the Mystery Man, Bob has to be “invited in” by a character before he can exercise his power. Although later in the show, Dale Cooper, Harry Truman, and Albert Rosenfield decide that Bob must be a particular instance of “the evil that men do,” the show presents him as more than this. He is other, a denizen of the Black Lodge who crosses planes of reality in pursuit of destruction.&lt;/p&gt;
&lt;p&gt;At the time of my writing this, &lt;em&gt;Twin Peaks: The Return&lt;/em&gt; has not been fully released. But its eighth episode is sure to become a staple of Lynch’s career. The episode features a prolonged, highly experimental sequence that depicts the entrance of Bob into the world. Watching it, I could not help but think of a similar sequence in Terrence Malick’s &lt;em&gt;The Tree of Life&lt;/em&gt; which seems to portray the birth and unfolding of the cosmos; but while that film sang the mystery and wonder of the universe, Lynch’s version, accompanied by Krzysztof Penderecki’s haunting &lt;em&gt;Threnody to the Victims of Hiroshima&lt;/em&gt;, again offers a vision of dread at the heart of all things.&lt;/p&gt;
&lt;p&gt;Given Penderecki’s score and the fact that the sequence begins with the detonation of an atomic bomb, it would seem that the show is again asking us to consider Bob as “the evil that men do.” But also again, there is more: Bob is “invited into” the world through human action, but he proves to be some kind of transcendent force, a thing which we can’t control or understand.&lt;/p&gt;
&lt;p&gt;However, &lt;em&gt;Twin Peaks: The Return&lt;/em&gt; also posits—more so than much of Lynch’s work—the existence of an equally transcendent, radically-other force of good, and this is why I have come to interpret Lynch’s surrealistic worlds as essentially Manichaean, a testing ground for the cosmic forces of good and evil. By relegating the powers of light and dark to their own separate and legitimate spheres, Manichaeism avoids the problem of theodicy. But it also leaves open the question of which force will prevail in the end.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>My Year in Reading, 2016</title><link>https://daniel-saunders.com/posts/lists/my-year-in-reading-2016/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/lists/my-year-in-reading-2016/</guid><description>Classics, novels, intellectual histories, philosophical biographies, nightmares, criticisms, and more.</description><pubDate>Fri, 13 Jan 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I am not relevant enough to give recommendations for books published in 2016. I can, however, humbly offer a handful of exceptional books that I read this year. I’m pleased that it is a diverse list—new(ish) books and books I reread; classics, novels, intellectual histories, philosophical biographies, nightmares, criticisms, and more. Books are ordered more or less according to how much I enjoyed them, with the last being the best, although I recommend them all. Honorable mentions and worst books (from which I recommend you stay far, far away) conclude the list.&lt;/p&gt;
&lt;h2&gt;Favorites&lt;/h2&gt;
&lt;h3&gt;Kidnapped&lt;/h3&gt;
&lt;p&gt;Robert Louis Stevenson (1886)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; Swashbuckling adventure; wilderness/survival tales; historical backdrops; drawn-out chases.&lt;/p&gt;
&lt;p&gt;Over the last few years I have been slowly working my way through Michael Schmidt’s excellent &lt;em&gt;The Novel: A Biography&lt;/em&gt;. One reason it is taking me so long to get through this thousand-page behemoth on the historical development of the novel is because I have been stopping along the way to read some of those works and authors I had, for whatever reason, never read. One such author was Robert Louis Stevenson. Stevenson is often relegated to the status of “children’s author” because of the genres in which he writes, but his prose is terse and brilliant, and his stories are entertaining for readers of all ages. Schmidt gives us Henry James on Stevenson: “Foregrounding &lt;em&gt;manner&lt;/em&gt;, medium used in a particular way, sets him apart from writers who seek to disappear in their writing. He &lt;em&gt;appears&lt;/em&gt;. James calls it a ‘bravery of gesture.’”&lt;/p&gt;
&lt;p&gt;The ingredients that make &lt;em&gt;Kidnapped&lt;/em&gt; great are relatively simple, but in the hands of Stevenson they are transformed into a thrilling adventure story—a taut, minimal plot; winsome protagonists; a majestic landscape (the Scottish highlands); a historical setting (the tumult following the Jacobite rising of 1745) and an uncanny ability to capture the sound and idiosyncrasies of the Scots dialect. This last can make for some occasional tough going for the modern reader, but on the whole it is enjoyable and adds much to the authentic feel of the book.&lt;/p&gt;
&lt;h3&gt;The Metaphysical Club&lt;/h3&gt;
&lt;p&gt;Louis Menand (2001)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; Intellectual history; philosophy of science; taxonomies of thought that still inform American life.&lt;/p&gt;
&lt;p&gt;An interesting portrayal of how a group of loosely connected intellectuals—Oliver Wendell Holmes, Jr., William James, Charles S. Peirce, and John Dewey—transformed American thought through a broad philosophical stance we now call pragmatism. Of particular note is how much influence is attributed to Charles Darwin. Darwin’s primary gift to philosophical thought came not from his evolutionary theory per se, but from the principle behind that theory. For according to Darwin, evolution advances not by something so crude as “survival of the fittest”—an idea propagated by Darwin’s lesser colleague, Herbert Spencer—but by chance, plain and simple. Natural selection does not favor species based on beneficial traits they may have adapted for survival; natural selection simply chooses species with a random throw of the dice. The universe is not a cosmos, but an absolute uncertainty.&lt;/p&gt;
&lt;p&gt;From Darwin, the early pragmatists learned that there can never be metaphysical, epistemological, or ethical certainty about anything (leading to the subtle irony behind the title, “The Metaphysical Club”), and henceforth everything must be viewed solely in terms of its chance of success based on purely material, or pragmatic, criteria. It is difficult to overstate the radical shift of this view: After Darwin, thought is fully relegated to the immanent and material—even if metaphysical truths exist, we cannot hope to know them—and thus scientific empiricism becomes not only the best, but the only way to proceed philosophically.&lt;/p&gt;
&lt;p&gt;Menand captures the inherent ambivalence of this view in the preface:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;They taught a kind of skepticism that helped people cope with life in a heterogeneous, industrialized, mass-market society, a society in which older human bonds of custom and community seemed to have become attenuated, and to have been replaced by more impersonal networks of obligation and authority. But skepticism is also one of the qualities that make societies like that work. It is what permits the continual state of upheaval that capitalism thrives on.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Even though they helped “free thought from thralldom to official ideologies, of the church or the state or even the academy,” these thinkers left little for thought to stand on.&lt;/p&gt;
&lt;h3&gt;The Last Christian&lt;/h3&gt;
&lt;p&gt;The Last Christian, Adolf Holl (1980)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; Critiques of modernity; the messy lives of the saints; medieval thought.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In the person of Francis the premodern world, so to speak, gathered itself together before coming to an end. For one last time, before the forces of progress thundered off on their triumphant path, one man looked into the motivating thrust behind the whole thing and decisively rejected it: Francis of Assisi, the last Christian.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So opens &lt;a href=&quot;https://www.goodreads.com/en/book/show/3436381&quot;&gt;Adolf Holl’s unconventional book on Francis&lt;/a&gt;, part biography, part historiography, and part critique of modernity. I first read this book in college, and I opened it again last year for a trip to Italy, which included a visit to Assisi. The book’s controversial argument will be evident from the passage above: Francis was the “last Christian” (the German title more precisely implies the “last” or “second Christ”) precisely because he rejected modernity.&lt;/p&gt;
&lt;p&gt;This is not hagiography; Holl is thoroughly modern in his approach, even as he seeks to take Francis “on his own terms.” He draws from “unofficial” sources like the &lt;em&gt;Fioretti&lt;/em&gt;—the oral tales passed around among the Little Brothers—more than the official narratives published by the like of St. Bonaventure, whom Holl distrusts as a betrayer of the spirit of Francis. Thrown in are hearty doses of existentialism and psychoanalytic theory, which make for an interesting, if also occasionally confounding, read. Despite or because of Holl’s methodology, a truly complex picture of Francis emerges: “An obedient rebel, an earnest clown, an unworldly activist, an ascetical master of the arts of life, a restless wise man, a convivial penitent, a humble authoritarian.”&lt;/p&gt;
&lt;p&gt;Holl is most interesting when discussing the socio-economic impact of Francis’s life, and it is here where the real argument about the “last Christian” comes into play. Francis, Holl contends, “was one of us”—the son of a merchant, privileged, a child of the “bourgeois ego,” in other words, a modern. And what is the bourgeois ego? Acquisitiveness, love of money, capital, to be sure, but also the desire for a comfortable life, for security against the anxieties and uncertainties that life will bring.&lt;/p&gt;
&lt;p&gt;Francis literally and metaphorically revolted against the bourgeois ego when he disowned his father before the entire town, standing naked before all and exclaiming, “from now on, my only Father is in heaven.” He exchanged this bourgeois life for one of unbounded freedom and joy—the freedom of the itinerant, the troubadour of God (see my note on &lt;em&gt;The Philosophy of Walking&lt;/em&gt; below), and the freedom of poverty, of release from the world’s material hold. Francis sought to become the lowest of the low, for the humble will be raised.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We shall look upon Francis as a fool (his own word), as the sort of man who takes the powerful of this world by the arm, as a child might, to tell them the truth—with a force that stuns them to silence.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;The Brothers Karamazov&lt;/h3&gt;
&lt;p&gt;Fyodor Dostoyevsky (1880; 1992 in the Pevear and Volokhonsky Translation)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; Maximalist fiction; the psychology of the criminal, the accused, the fool, and the saint; Russian religious epics.&lt;/p&gt;
&lt;p&gt;I first read Dostoyevsky’s magnum opus in college in the Constance Garnett translation. Despite Garnett’s dated prose style, it became one of my favorite novels. When I had the chance to reread the novel this year for a book club, I opted for the version by the husband and wife team of &lt;a href=&quot;http://www.newyorker.com/magazine/2005/11/07/the-translation-wars&quot;&gt;Richard Pevear and Larissa Volokhonsky&lt;/a&gt;. The difference was palpable; it was truly like reading the novel for the first time.&lt;/p&gt;
&lt;p&gt;To quote from Schmidt’s &lt;em&gt;The Novel&lt;/em&gt; again: “In translation it is possible to forget that [Dostoyevsky] can be humorous, even comic, in dark ways. And unlike Turgenev, he does not write in an easily transferable style. Some critics suggest he did not write well, the prose deliberately repetitious, flat, low-key, a language often appropriate to and mimetic of the world on which it drew.” (Additionally, it is partly for this reason that Schmidt places him somewhere between Dickens and Kafka.)&lt;/p&gt;
&lt;p&gt;It seems to me that Pevear and Volokhonsky are able to capture this exact quality of Dostoyevsky’s—both its inherent strengths and shortcomings. It is almost as if Dostoyevsky has too much to say, too much passion, too much psychological insight to communicate, that he can’t be distracted by “literary style.” His characters are maximalist; they pour themselves out on the page with no regard to form. Thus Pevear and Volokhonsky—perhaps because they are not members of the literary establishment, but are amateurs (in the original sense of the word, i.e. lovers of a subject)—become something like the ideal translators of Dostoyevsky, lending the book a new immediacy and power.&lt;/p&gt;
&lt;h3&gt;Melmoth the Wanderer&lt;/h3&gt;
&lt;p&gt;Charles R. Maturin (1820)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; The Faust legend; Eraserhead; abandoned castles and ruined cities where unutterable horrors occur on stormy nights.&lt;/p&gt;
&lt;p&gt;A true Gothic novel, replete with diabolical pacts, cursed portraits, decadent southern European families, nested stories (presented in a way distinctly different than &lt;em&gt;Cloud Atlas&lt;/em&gt;—see below), gaslighting monks, and pure psychological horror. The Penguin Classics cover, which features a detail from Goya’s &lt;em&gt;A Monk Talking to an Old Woman&lt;/em&gt;, says it all.&lt;/p&gt;
&lt;p&gt;Melmoth follows the titular character, a scholar who has sold his soul to the devil in the manner of Faust, and those unfortunate souls who throughout the centuries have come into the orbit of his destiny. It is easy to see here the particular mood and imagination that influenced Poe, Lovecraft, and Borges, among many others. But for Maturin, a clergyman in the Church of Ireland, all of this darkness was on display for a purpose—to expose the deceit and worldly power of Rome, and to frighten people into the true (i.e., Protestant) religion.&lt;/p&gt;
&lt;p&gt;This sentiment is most evident in the harrowing tale of the Spaniard Alonzo Monçada, who for hundreds of excruciatingly detailed pages tells of his confinement in a monastery against his will. While there, the monks use what can only be called psychological torture to prevent him from leaving; think of something somewhat along the lines of Kubrick’s &lt;em&gt;The Shining&lt;/em&gt;. This portion of the novel culminates in an absolutely terrifying account of an attempted escape through the monastery’s claustrophobic crypts, where death—or worse, madness—lurks around every corner.&lt;/p&gt;
&lt;p&gt;Despite its heavy-handed anti-Catholicism, Maturin’s work is a powerful one about the darkness in human hearts that is still able to speak to modern readers.&lt;/p&gt;
&lt;h3&gt;A Philosophy of Walking&lt;/h3&gt;
&lt;p&gt;Frédéric Gros (2014)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; Non-academic philosophy, Nietzsche and Thoreau, anti-Kantianism; vigorous walking.&lt;/p&gt;
&lt;p&gt;I only just started reading this at the end of the year, but I’m including it because it promises to be one of my favorite books in recent memory. Gros’s book (a translation from the French) alternates between short essays on various aspects of walking (“Outside,” “Slowness,” “Silences,” “Energy”) and studies of philosophers and poets who establish a link between the mind and the foot. In the lives of Nietzsche, Rimbaud, Thoreau, and others, he finds thinkers whose deepest insights are inseparable from the body in motion. This is far from the leisurely stroll of Kant—what Gros calls walking to escape thought—but is instead a form of walking that &lt;em&gt;clarifies&lt;/em&gt; thought.&lt;/p&gt;
&lt;p&gt;Walking is a mode of living that embraces freedom, but this freedom is of a vastly different sort than that offered by the plethora of choices and dependencies that entangle us in the web of our consumerist lives. Gros writes, “these micro-liberations all constitute accelerations of the system, which imprisons you all the more strongly. But whatever liberates you from time and space alienates you from speed.” This freedom comes in the form of solitude, transgression, renunciation of worldly systems and values. It allows one to see things in context, and thus which things are extraneous and which are truly valuable. We are “no longer reduced to a junction in the network of redistributing information, images and goods.”&lt;/p&gt;
&lt;p&gt;Nietzsche in particular offers a model for the psychosomatic experience of walking. The philosopher famously sought out the mountains and the coasts, often walking for over six or seven hours at a time. But the effect this had on his thought was critical, as he himself relates:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We do not belong to those who have ideas only among books, when stimulated by books. It is our habit to think outdoors—walking, leaping, climbing, dancing, preferably on lonely mountains or near the sea where even the trails become thoughtful. Our first questions about the value of a book, of a human being, or a musical composition are: Can they walk? Even more, can they dance?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Gros reflects on this curious physiological effect of walking on thinking:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Many others have written their books solely from their reading of other books, so that many books exude the stuffy odour of libraries. By what does one judge a book? By its smell (and even more, as we shall see, by its cadence)… &lt;br /&gt;&lt;br /&gt; Think of the scribe’s body: his hands, his feet, his shoulders and legs. Think of the book as an expression of physiology. In all too many books the reader can sense the seated body, doubled up, stooped, shrivelled in on itself. The walking body is unfolded and tensed like a bow: opened to wide spaces like a flower to the sun, exposed torso, tensed legs, lean arms.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;What Color Is Your Parachute?&lt;/h3&gt;
&lt;p&gt;Richard Bolles (2016)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; Books on vocation and navigating the current job market; challenging exercises that yield practical knowledge.&lt;/p&gt;
&lt;p&gt;In the category of “books I never would have read based on their titles,” &lt;em&gt;What Color Is Your Parachute?&lt;/em&gt; might occupy the top spot. But I did happen to pick it up, and what I found was not a feel-good self-discovery book, but an incredibly robust, informative, and practical guide to navigating the job search and thinking about career paths. I’m now convinced that this book should be required reading for every college student (I certainly wish I had read it then), as it provides valuable insight for approaching the world of work after the 2008 financial crisis.&lt;/p&gt;
&lt;p&gt;In addition to providing great practical advice on job searching, Bolles offers a systematic and effective method for helping the reader find or change careers based on her unique background, interests, skills, and attributes (hence the title, which I’m glad he doesn’t belabor). It is far more sophisticated than other books I have seen on the topic, because it makes use of skills assessment, personal narrative, psychology, and even—somewhat surprisingly—theology to aid the reader in self-evaluation.&lt;/p&gt;
&lt;h3&gt;The Pursuit of Italy&lt;/h3&gt;
&lt;p&gt;David Gilmour (2012)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; Italy, Italian culture, Italian history; revisionism, critiques of nineteenth-century nationalism.&lt;/p&gt;
&lt;p&gt;Hands down one of the best histories I have ever read, partly because it is at the same time a superb work of cultural appreciation and criticism. Gilmour captures not only the history of Italy (or more accurately, &lt;em&gt;Italies&lt;/em&gt;), but the essence of Italy, as perhaps only a foreigner can. His lively prose, erudition, and experience combine to make this an absolute delight to read. All I can say about it I have said &lt;a href=&quot;https://daniel-saunders.com/posts/essays/il-campanilismo&quot;&gt;in this post&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Rabelais and His World &amp;amp; Gargantua and Pantagruel&lt;/h3&gt;
&lt;p&gt;Mikhail Bakhtin (1965)
Francois Rabelais (c. 1532 – 1564)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For fans of:&lt;/strong&gt; Terry Gilliam; the grotesque, the low, medieval earthy existence; literary criticism.&lt;/p&gt;
&lt;p&gt;I include these two together, for obvious reasons. This year marks the first time I really dove into Rabelais, and I believe I have found a kindred spirit. Bakhtin’s &lt;a href=&quot;https://daniel-saunders.com/library/reviews/notes-from-the-history-of-laughter&quot;&gt;&lt;em&gt;Rabelais and His World&lt;/em&gt;&lt;/a&gt; was an indispensable guide to reading through Rabelais.&lt;/p&gt;
&lt;p&gt;Bakhtin’s central thesis is that, in his pentalogy of novels, Rabelais harnesses the massive and unconscious forces of what he calls popular-festive folk humor, which includes such concepts as ambivalent laughter, the grotesque body (open to and in union with the world), the “material bodily lower stratum,” and banquet feasting. This constellation of themes represented an “unofficial” folk culture, which stood in opposition to the official culture of medieval authority, but which was permitted certain free expressions (the Feast of Fools, carnival, etc.).&lt;/p&gt;
&lt;p&gt;During times such as these, irreverent laughter—which tears down but also builds up, unlike the later satirical tradition of Swift—causes the official world to be flipped upside down, and cold, rigid authoritarianism is transformed into joyful freedom, where the first is last and the last is first. Bakhtin stresses the ambivalent nature of this outlook—nothing is purely condemnatory, but all is connected to the cosmic cycle of birth, death, and rebirth. This is typified in the infant Gargantua’s ravenous appetite. Rabelais is not simply satirizing gluttony; he is also pointing to the insatiability of life, and the primordial links between ingestion, digestion, and renewal.&lt;/p&gt;
&lt;h2&gt;Honorable Mentions&lt;/h2&gt;
&lt;h3&gt;The Magus of the North&lt;/h3&gt;
&lt;p&gt;Isaiah Berlin&lt;/p&gt;
&lt;p&gt;A nice introduction to the arguments and milieu of the apostle of Romanticism, J.G. Hamann. Berlin’s conversational tone and big-picture view in this book are engaging.&lt;/p&gt;
&lt;h3&gt;Hangsaman&lt;/h3&gt;
&lt;p&gt;Shirley Jackson (1951)&lt;/p&gt;
&lt;p&gt;Shirley Jackson is everywhere these days; it seems that her considerable literary output beyond the infamous short story “The Lottery” is finally getting its due. My good friend Martyn has &lt;a href=&quot;http://www.booksandculture.com/articles/2015/mayjun/whos-afraid-of-shirley-jackson.html&quot;&gt;written eloquently&lt;/a&gt; about Jackson and induced me to read the strange novel &lt;em&gt;Hangsaman&lt;/em&gt;, a dark coming of age story where much lies hidden beneath a seemingly calm but strained exterior.&lt;/p&gt;
&lt;h2&gt;Worst Books Read&lt;/h2&gt;
&lt;h3&gt;A Game of Thrones&lt;/h3&gt;
&lt;p&gt;George R.R. Martin (1996)&lt;/p&gt;
&lt;p&gt;I tried. I really did. Everything about me indicates that I ought to be a huge fan of this series—I grew up on Tolkien, I’m obsessed with medieval history, and I’m a fan of Dungeons &amp;amp; Dragons. But only 100 pages in, I was confirmed in my choice to avoid the land of Westeros. The characters are perverse and loathsome, the politics sordid; and the narrative lacks the socio-linguistic foundation that gives something like &lt;em&gt;The Lord of the Rings&lt;/em&gt; its permanence.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A Game of Thrones&lt;/em&gt; is essentially a soap opera, which is the most nihilistic of genres: story is reduced to mere plot—or, more accurately, a mere sequence of events—whose only function is to titillate the reader/viewer with ever-increasing intensity. The very form demands that there be no resolution, no growth, no meaning; there is only an eternal procession of scenes, with an unwieldy cast of characters, which by their nature must grow more extreme and controversial to remain entertaining.&lt;/p&gt;
&lt;p&gt;The fact that George R.R. Martin can’t finish the series is typical. Soap operas can’t ever be finished.&lt;/p&gt;
&lt;h3&gt;Cloud Atlas&lt;/h3&gt;
&lt;p&gt;David Mitchell (2004)&lt;/p&gt;
&lt;p&gt;There are apparently some who think this novel is genius, perhaps one of the best creations of the twenty-first century. I’m not one of those people. The book is mildly entertaining, but its central structure/gimmick gets old after about 50 pages.&lt;/p&gt;
&lt;p&gt;The book contains multiple narratives spanning thousands of years, and implies that the narrator of each story might be a reincarnation of the previous narrator. So what? We’re never given a reason why we’re supposed to care—there is nothing linking these disparate stories except for the author’s telling us there is.&lt;/p&gt;
&lt;p&gt;Then, the stories are presented palindromically; again, this is evidently meant to be some ingenious structure, when really the “cliffhangers” it produces are purely artificial. Skip this one and see the movie instead, which retains all of the book’s annoyances but manages to be somewhat enjoyable.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Il Campanilismo</title><link>https://daniel-saunders.com/posts/essays/il-campanilismo/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/essays/il-campanilismo/</guid><description>It existed once before the nineteenth century, briefly, as part of the vast imperial structure of the Roman Empire. Before that it had been a vague idea from myth—the notion of Italia.</description><pubDate>Sat, 01 Oct 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It existed once before the nineteenth century, briefly, as part of the vast imperial structure of the Roman Empire. Before that it had been a vague idea from myth; later it was a clearer hope of statesmen and romantics, but still mostly unattainable and undesirable.&lt;/p&gt;
&lt;p&gt;It was the notion of &lt;em&gt;Italia&lt;/em&gt;, a unified and coherent polity encompassing the peninsula stuck between the Alps and five seas. Despite having “the most clearly demarcated fatherland in Europe,” in the words of the nineteenth-century nationalist Giuseppe Mazzini, Italy has forever struggled to unite its disparate peoples under one banner, and the reason is simple: there are simply too many Italies for there to be one Italy.&lt;/p&gt;
&lt;figure&gt; &lt;img src=&quot;https://daniel-saunders.com/_astro/italy_1494_shepherd.C4ACzMO6_Z2vjUNr.webp&quot; /&gt; &lt;figcaption&gt;“Italy about 1494,” illustration by William R. Shepherd.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;Since its hasty inception in 1861, the modern state of Italy has generally failed to achieve the success of its Western neighbors. The &lt;a href=&quot;http://www.theflorentine.net/lifestyle/2011/03/the-italian-risorgimento-a-timeline/&quot;&gt;events of the &lt;em&gt;Risorgimento&lt;/em&gt;&lt;/a&gt;—formerly the hallowed, unquestionable orthodoxy of the fledgling state—turn out to have engendered an uninterrupted string of disasters, from civil war, poor diplomacy, and fascism to poverty, the rise of the Mafia, and perennially ineffective government.&lt;/p&gt;
&lt;p&gt;This is the story that British historian David Gilmour tells in his excellent book &lt;em&gt;&lt;a href=&quot;https://www.amazon.com/Pursuit-Italy-History-Regions-Peoples/dp/0374533601&quot;&gt;The Pursuit of Italy&lt;/a&gt;&lt;/em&gt;, which is part history and part polemic. (The title is a reference to a line Virgil gives Aeneas—a sort of omen that Italians may be fated to chase after something they cannot achieve.) Gilmour spares no criticisms in his assessment of the &lt;em&gt;Risorgimento&lt;/em&gt; myth and wonders whether Garibaldi and the other “fathers of the fatherland” were mistaken in attempting a hopeless unity between Piedmontese, Genoese, Lombards, Venetians, Tuscans, Romans, Neapolitans, and Sicilians.&lt;/p&gt;
&lt;p&gt;“Until the end of the eighteenth century,” writes Gilmour, “Italy remained a literary idea, an abstract concept, an imaginary homeland or simply a sentimental urge…. For a large majority of the population it meant nothing at all.” (In some parts, this remained true even into the twentieth century: Gilmour recounts how the social activist Danilo Dolci met poor Sicilians who had never heard of Italy.) Unlike their German and French neighbors to the north, Italians were historically discouraged from the nationalistic impulse by natural barriers of geography and language. The Apennines, the mountain range which splits the peninsula down the middle, created a cultural and linguistic division between east and west almost as prominent as the stereotypical division between north and south. Incredibly, Gilmour notes that before modern infrastructure, Romans found it faster and more convenient to travel to Ancona by boat (a distance of some 1,000 miles) than cross the interior of the peninsula (only 130 miles).&lt;/p&gt;
&lt;p&gt;Similarly, regional dialects were so distinctive that people in neighboring valleys often found it hard to understand each other. The modern language of Italian, essentially a successor of the language spoken by Florentine aristocrats, is so different from the Sicilian and Venetian dialects—not to mention the dialects of northern peasants—that many twentieth-century schoolchildren had to learn their nation’s official tongue as a foreign language.&lt;/p&gt;
&lt;p&gt;These differences meant that Italy’s regions developed mostly autonomously, with their own traditions, histories, styles of government, and interests. Venice was established before Charlemagne was crowned and lasted as a self-ruled republic for &lt;em&gt;over a thousand years&lt;/em&gt; before it was given up to Austrian control in the Napoleonic Wars. Virtually every other city of the north also boasted a tradition of self-rule, which stood in marked contrast to the cities of the Papal States and the southern Kingdoms of Naples and Sicily; but even these regions, which were slow to grow out of feudalism, maintained their own distinctive cultures and largely successful economies.&lt;/p&gt;
&lt;p&gt;It is thus easy to sympathize with Gilmour when he laments the absence of modern-day mini-republics in Venice, Florence, and Genoa, or an independent Naples, Sicily, and Rome, each with their own thriving and distinctive cultural identities cemented in autonomous regional governments. The reason for this absence is the &lt;em&gt;Risorgimento&lt;/em&gt;, which, more than anything, was a kind of flattening, cultural imperialism imposed on other areas by the then Kingdom of Piedmont-Sardinia, the de facto leader in the saga of Italian unification.&lt;/p&gt;
&lt;p&gt;Gilmour shows how the annexing tactic of “piedmontization” proved largely destructive, economically and culturally, for cities such as Venice and Naples. Camillo Cavour, Piedmont’s prime minister, was naive enough to believe that the values of this conservative and (almost farcically ostentatious) martial state could be exported to his countrymen. But he was also savvy enough to know that political unification required cultural unification as well, at whatever cost. Cavour was a typical progressive of his day, who assumed that all ideologies must finally bend to the guiding will of history—which, as it happened, favored the fortunes of a piedmontized Italy.&lt;/p&gt;
&lt;p&gt;In many ways, the history of modern Italy represents a failure of political liberalism. Despite the utopian dreams of Cavour and other advocates of the Risorgimento—dreams of progress, the free market, European dominance, and ancient civic engagement translated to the national stage—the reality has been much bleaker. Much of Italy’s tumultuous twentieth-century history has been a direct reaction to that failure. The fascist movement, with its violent appeal to primordial and masculine values, was only one of the first attempts to respond to the poverty, political over-extension, and international humiliation the liberal state had wrought.&lt;/p&gt;
&lt;p&gt;Gilmour’s persuasive argument implicitly points to nationalism as the culprit in Italy’s modern troubles. But what kind of nationalism? It is worth recalling here a &lt;a href=&quot;http://orwell.ru/library/essays/nationalism/english/e_nat&quot;&gt;distinction George Orwell made in 1945&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nationalism is not to be confused with patriotism.&lt;/strong&gt; Both words are normally used in so vague a way that any definition is liable to be challenged, but one must draw a distinction between them, since two different and even opposing ideas are involved. By ‘patriotism’ I mean devotion to a particular place and a particular way of life, which one believes to be the best in the world but has no wish to force on other people. Patriotism is of its nature defensive, both militarily and culturally. Nationalism, on the other hand, is inseparable from the desire for power. The abiding purpose of every nationalist is to secure more power and more prestige, not for himself but for the nation or other unit in which he has chosen to sink his own individuality.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Italy’s birth was quite openly fueled by this desire for power and prestige, and patriotism, in Orwell’s definition, was largely absent from the cause. Even in figures like Garibaldi, love of particular places and customs, even if present, was superseded by the nebulous love of a unified state and a romantic lust for dominance. (Although for Garibaldi, even this might be questioned; as his adventures in South America show, he at times seems truly to have loved only the thrill of fighting for the underdog.) For Cavour, patriotic sentiment was valuable not in itself but only as a way to get Italy a seat at the same table as Great Britain, France, Prussia, and Austria; of course, to these superpowers, the notion of Italy as an equal was laughably inconceivable. The &lt;em&gt;Risorgimento&lt;/em&gt; could easily dispense with where Italy had been if it meant getting Italy to where its architects wanted it to be.&lt;/p&gt;
&lt;p&gt;But Gilmour is far from being entirely cynical is his assessment of Italy. If Italians have been unable to thrive under the forced and arbitrary framework of nationalism, it is only because they have been more concerned with ties closer to home. Orwell’s “patriotism” echoes &lt;em&gt;campanilismo&lt;/em&gt;, a term Italians use to describe loyalty to the “municipal bell tower,” or commune, where citizens hold the freedom to govern themselves. It is &lt;em&gt;campanilismo&lt;/em&gt;, not nationalism—nor still an even more abstract internationalism—that has more deeply shaped Italian politics and psychology through the centuries; the medieval city was literally built around it, and it still informs life in many of the towns that are the communes’ direct descendants.&lt;/p&gt;
&lt;p&gt;Gilmour writes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Campanilismo is by definition limiting and has thus been mocked, as Lampedusa mocked it, as a breeder of narrow minds…. Yet provincialism in Italy is less parochial than in any other country I know. Campanilismo is fidelity to an historical and essentially self-contained form of society designed many centuries ago to cater to the needs of its citizens… &lt;br /&gt;&lt;br /&gt;Campanilismo brings reassurance and a sense of identity to a society which perceives the state to be hostile or indifferent. Local administration regulates an urban life as civilized as any on the planet in scores of towns such as Trento and Bergamo, Pistoia and Arezzo, Mantua and Verona, Lecce and Bressanone. Cremona in Lombardy is a fine example: a lovely city of pinks and duns, of yellows and ochres, a place of slow rhythms and old, unhurried cyclists, of clean streets and well-kept museums, of small workshops where master craftsmen still fashion exquisite violins. So agreeable and well run is the town that its children want to live there, remain there and die there.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As Gilmour writes, it is hard not to see this as the true Italy. Indeed, this is the Italy I experienced on my first trip there this summer: towns with over a thousand years of thinking about and implementation of just, effective governments; towns built to a human scale, where any place is accessible by foot; towns intentionally crafted to be as aesthetically pleasing and harmonious as possible; towns who claim their citizens to such a degree that those citizens will say they are Tuscan or Roman before they are Italian. The Risorgimento feels irrelevant in a place like Siena, whose medieval splendor is still as evident today as it must have been in 1215, when its magnificent cathedral was consecrated.&lt;/p&gt;
&lt;p&gt;As is evident above, Gilmour’s book truly shines when he poetically describes this Italy, both in its medieval history and in its present day reality. It makes one yearn for the bell tower, and what it might have become in Italy’s history had it been recognized at the crucial moment as the greatest good.&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Rabelais and His World</title><link>https://daniel-saunders.com/library/reviews/notes-from-the-history-of-laughter/</link><guid isPermaLink="true">https://daniel-saunders.com/library/reviews/notes-from-the-history-of-laughter/</guid><description>Notes from the history of laughter.</description><pubDate>Wed, 31 Aug 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In &lt;a href=&quot;https://books.google.com/books?id=SkswFyhqRIMC&quot;&gt;&lt;em&gt;Rabelais and His World&lt;/em&gt;&lt;/a&gt;, the Russian critic Mikhail Bakhtin argues that Rabelais is the culminating literary expression of the carnival or grotesque idiom of folk humor, an idiom which had developed for over a thousand years (starting with the Roman Saturnalia) as an “unofficial” or subversive culture in the West, complete with its own rites, rules, and symbols.&lt;/p&gt;
&lt;p&gt;The grotesque is characterized by exaggeration, incompleteness, dynamism, and becoming, which can be helpfully contrasted with later classical values like restraint, completeness, and statis. It focuses on “the material bodily lower stratum,” humanity’s earthy reality, its animating life force in eating, drinking, and procreating. It exists literally at the human body’s point of contact or &lt;em&gt;merging&lt;/em&gt; with the exterior world—those protruding areas such as the nose, the lips, the belly, and (of course!) the genitals. Rabelais is the comic philosopher of the gut.&lt;/p&gt;
&lt;p&gt;One of Bakhtin’s major points is that, for Rabelais and the folk culture he drew from, the material bodily lower stratum is ambivalent—that is, it expresses both death (decaying bodies, excrement, the grave) and regeneration or life (youth, sexual organs, birth). For Rabelais, these elements were essentially linked, and were inseparable from his “humanistic” or ethical vision. They were also tied to a fundamentally optimistic, joyous, or laughing outlook on life, one that stood in direct contrast to the serious “official” culture of the Middle Ages. The material bodily lower stratum not only “debases and destroys,” it “renews and regenerates” at the same time.&lt;/p&gt;
&lt;p&gt;Later generations—including thinkers of the Enlightenment and of the Romantic, Victorian, and modern eras—misinterpreted Rabelais when they failed to see this connection and ambivalence between death and life in the grotesque. This was especially so for laughter; when laughter is separated from the regenerative, universal optimism of the grotesque, it is dismissed as frivolous vulgarity or else it becomes empty satire, something which tears down but does not build up or affirm. This is the mocking, negative satire that easily degenerates into cynicism and moralism (Bakhtin cites Voltaire in this regard; one might also cite Swift or Huxley).&lt;/p&gt;
&lt;p&gt;A few passages on laughter develop this point further:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Rabelais, Cervantes, and Shakespeare represent an important turning point in the history of laughter. Nowhere else do we see so clearly marked the lines dividing the Renaissance from the seventeenth century and the period that followed. &lt;br /&gt;&lt;br /&gt;The Renaissance conception of laughter can be roughly described as follows: Laughter has a deep philosophical meaning, it is one of the essential forms of truth concerning the world as a whole, concerning history and man; it is a peculiar point of view relative to the world; the world is seen anew, no less (and perhaps more) profoundly than when seen from the serious standpoint. Therefore, laughter is just as admissible in great literature, posing universal problems, as seriousness. Certain essential aspects of the world are accessible only to laughter. &lt;br /&gt;&lt;br /&gt;The attitude toward laughter of the seventeenth century and of the years that followed can be characterized thus. Laughter is not a universal, philosophical form. It can refer only to individual and individually typical phenomena of social life. That which is important and essential cannot be comical. Neither can history and persons representing it—kings, generals, heroes—be shown in a comic aspect. The sphere of the comic is narrow and specific (private and social vices); the essential truth about the world and about man cannot be told in the language of laughter. Therefore, the place of laughter in literature belongs only to the low genres, showing the life of private individuals and the inferior social levels. Laughter is light amusement or a form of salutary social punishment of corrupt and low persons.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And another:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;True ambivalent and universal laughter does not deny seriousness but purifies and completes it. Laughter purifies from dogmatism, from the intolerant and the petrified; it liberates from fanaticism and pedantry, from fear and intimidation, from didacticism, naivete and illusion, from the single meaning, the single level, from sentimentality. Laughter does not permit seriousness to atrophy and to be torn away from the one being, forever incomplete. It restores this &lt;em&gt;ambivalent wholeness&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item><item><title>Sounding Silence</title><link>https://daniel-saunders.com/posts/essays/sounding-silence/</link><guid isPermaLink="true">https://daniel-saunders.com/posts/essays/sounding-silence/</guid><description>Performing the transcendental music of Arvo Pärt.</description><pubDate>Tue, 16 Jun 2015 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It was the moment of the concert program that we all anticipated, one that would be sure to transfix the audience—the moment our college choir, each night on a trip through Europe, would sing Arvo Pärt’s radiant &lt;em&gt;Magnificat&lt;/em&gt; (1989).&lt;/p&gt;
&lt;p&gt;Back in our bare rehearsal room, as we stumbled through the music, familiarizing ourselves with its striking tonality, pathos, coherence, the piece lay dormant. But here, in the spacious cavern of Coventry Cathedral, in the cramped baptistry of an Orthodox chapel outside of Moscow, in worship halls from England to Russia, it burst forth, its true essence revealed. Like most of Pärt’s music, the &lt;em&gt;Magnificat&lt;/em&gt; blooms out of darkness and exists in close relationship with silence. It captures the unbearable burden of the world, its grief and brokenness, while at the same time sounding an unmistakable note of pure, unwavering hope.&lt;/p&gt;
&lt;p&gt;In the introduction to &lt;em&gt;Arvo Pärt: Out of Silence&lt;/em&gt;, theologian and musician Peter Bouteneff notes that the tendency to describe first encounters with Pärt grows out of his music’s singular, transformative quality—an evocative spirituality that has captivated believer and non-believer alike. Bouteneff’s own first encounter was with the man himself, when both happened to be visiting the same monastery. Bouteneff knew nothing of Pärt’s music at the time; later, however, after hearing a performance of Pärt’s groundbreaking &lt;em&gt;Passio&lt;/em&gt; (1982), he recalls beginning “a new relationship with music, a heightened understanding of the possibilities of art.”&lt;/p&gt;
&lt;p&gt;Those familiar with Pärt most likely share a similar experience. What is it about Pärt’s music that has inspired this response in so many, and has led to Pärt becoming one of the most performed composers in the contemporary classical world? And what in the universal spirituality present in Pärt’s works can be supplemented by insights from Pärt’s own religious tradition, an ecumenical but firmly rooted Eastern Orthodoxy?&lt;/p&gt;
&lt;p&gt;These are the questions at the heart of Bouteneff’s book, a product of the recently established Arvo Pärt Project at St. Vladimir’s Orthodox Theological Seminary. Bouteneff does not write for an esoteric audience, and so much of the book will be a familiar recapitulation for those who have spent some time with Pärt. But newcomers and fans of all stripes will find in Bouteneff a fitting, lucid guide who tells a cohesive narrative with little recourse to technical language. This is the first book on Pärt to take a sustained look at the ways in which theology informs and surrounds his music, and here Bouteneff avoids positing a direct causal link between doctrine and art. Pärt’s music is not simply Eastern Orthodoxy relocated to the soundscape; one could compose in the same style as Pärt without sharing his religious background. In the same way, it is not necessary to be aware of Pärt’s Orthodoxy to appreciate the transcendent beauty of his music, as is evidenced by the many avid Pärt listeners who claim no religious affiliation.&lt;/p&gt;
&lt;p&gt;Bouteneff’s book, however, is an argument for the strong correlation between Pärt’s deep faith and unique music, between the music’s substance and form. This confluence, channeled through Pärt’s own particular compositional sensibilities, is what makes him one of the most compelling composers alive today. Text, faith, and music exist together, in constant dialogue with each other. A deeper look into both can only enhance the listener’s experience, drawing out new revelations and resonant meanings. As Pärt’s wife Nora—one of his most lucid interpreters—has aptly framed it: “To really understand his music, you must first understand how this religious tradition flows through him.”&lt;/p&gt;
&lt;p&gt;The story of Arvo Pärt’s musical conversion, which is closely connected to his religious conversion, is now legendary. During the 1950s, Pärt enrolled at the Tallinn Conservatory in his native Estonia (then under Soviet occupation) to train in the serial method, a form popularized by Arnold Schönberg, paragon of modernism in Western music. In place of the “hierarchies” of classical tonal music, Schönberg developed the planned cacophony of his twelve-tone technique, a system in which every note of the chromatic scale is equal to every other. In Schönberg’s serialism, atonal discord prompts in the listener feelings of dread, confusion, and chaos. The world is represented not as a rational cosmos but as an existential uncertainty. This is the testament to the collapse of presumptuous Enlightenment rationality, to the horrors of two world wars.&lt;/p&gt;
&lt;p&gt;Pärt eventually felt the spiritual and musical burden of this compositional form, as is evident in later serial works like &lt;em&gt;Collage über B-A-C-H&lt;/em&gt; (1964) and &lt;em&gt;Credo&lt;/em&gt; (1968)—in which passages of turbulent atonality vie with sublime quotations from Bach. He reached a breaking point after barely a decade of composing, feeling that he had exhausted all the possibilities of serialism and that serialism had exhausted him. For eight years he was almost completely silent as an artist. What was Pärt up to during this time? In a way, he was going back to both musical and spiritual beginnings, to the epiphany of “a single note beautifully played,” in the composer’s own characteristically perceptive words.&lt;/p&gt;
&lt;p&gt;Pärt began studying sacred texts, mostly those which have formed a bulk of Western classical music, but also the Church Fathers and the &lt;em&gt;Philokalia&lt;/em&gt;. He read the Psalms and listened to early polyphonic masters like Ockeghem and Josquin. He studied the open, spirit-filled, yet disciplined contours of Gregorian chant. At the same time, he was being drawn into the orbit of the Orthodox Church. The unifying element in all of these pursuits was a disposition oriented toward the inner language and posture of prayer.&lt;/p&gt;
&lt;p&gt;In direct opposition to the modernist penchant for excess and despair, Pärt was searching for purity, stillness, and unity, using the past to revitalize the present. He came to see the composer’s role as one of midwife, “drawing music gently out of silence and emptiness.” The music that emerged is of a kind with this silence, as the essence of a fully-grown tree is contained within its seed. Lest anyone take him too seriously, he disclaimed analogies to monk or prophet. Instead, he was like a child, newly come to the wonder of the world.&lt;/p&gt;
&lt;p&gt;From this chrysalis of artistic silence was born Pärt’s distinctive compositional form. Its essence is two voices: one tonal, simple, and “objective,” and the other wandering, more complex, and “subjective.” The first voice is built on the most basic of musical constructions, the triad, which avant-garde modernism had largely discarded as antiquated but which Pärt used with compelling brilliance. The triad’s bell-like clarity and resonance gave Pärt the name for this compositional form, &lt;em&gt;tintinnabuli&lt;/em&gt;. This first voice sustains, converses with, and occasionally opposes the second voice, which resembles the flow of chant. Stability and movement, the timeless and time-bound, the immutable and mutable—people have characterized these two voices in various ways, from divine providence and human sinfulness to Jiminy Cricket and Pinocchio (see the Icelandic singer Björk’s TV interview with Pärt). Always, however, these two voices are inextricable. As Bouteneff writes, their “net result” is an ongoing “relationship of tension and resolution,” an interdependency of being. The formula recalls the mathematics of the Trinity: in &lt;em&gt;tintinnabuli&lt;/em&gt; pieces, “1 + 1 = 1.”&lt;/p&gt;
&lt;p&gt;So far, at least to the non-musician, this may seem a bit abstract. But for most listeners, there is also an immediate, visceral quality to Pärt’s music, one Bouteneff aligns with the concept of “bright sadness.” The term comes from the Greek &lt;em&gt;harmolypi&lt;/em&gt;—joyful sorrow, hope in the midst of despair, an acknowledgement of suffering that retains an assurance of healing. It is this quality which seems to resonate most with all listeners of Pärt, and yet it is also one which has deepest roots in the Christian, specifically Orthodox, tradition.&lt;/p&gt;
&lt;p&gt;Here Bouteneff offers a promising contribution to future studies on Pärt. He traces the theme of bright sadness from biblical texts (Adam’s expulsion from the garden, the Psalms, the Passion narrative) through the Desert Fathers and Mothers and up to more recent figures like St. Silouan, a Russian who joined the Orthodox monastery at Mount Athos in 1892. Silouan has been a kind of patron saint for Pärt. A portion of &lt;em&gt;Adam’s Lament&lt;/em&gt;, Silouan’s extended meditation on Adam’s grief over the loss of paradise, was set by Pärt in 2010. Silouan’s exhortation to “keep thy mind in hell, and despair not,” might sound absurd in an age of anesthetization, but it is a posture which is unafraid both to stand wakefully in the midst of the world’s fallenness and to hope in its redemption. Silence is not the silence of God’s absence, but the fertile darkness from which God might shine forth at any moment, &lt;em&gt;ex nihilo&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;In looking at these textual sources, we see the vast importance words and faith have on Pärt. Even when composing instrumental music, Pärt often works from a text: &lt;em&gt;Trisagion&lt;/em&gt; (1992) and &lt;em&gt;Orient &amp;amp; Occident&lt;/em&gt; (2000) are “set” to Slavonic versions of Orthodox introductory prayers and the Nicene Creed, respectively. The texts, Bouteneff notes, seem to “contain within themselves a latent music.” Paying attention to these texts can draw us closer to a piece’s inherent meaning, shedding light on what the composer intended in creating it. With Pärt there is strong resistance to a kind of post-structuralist framework of artistic communication, where authorial intent is either nonexistent or second to audience experience. While audience experience is indelible, it is impossible not to reckon with the spiritual nexus of Pärt’s creativity.&lt;/p&gt;
&lt;p&gt;Recalling the role of midwife, the goal is thus to translate the life of a text into a strictly musical idiom, such that music &lt;em&gt;qua&lt;/em&gt; music can reveal the essence of what the composer is trying to communicate. Here we enter paradox, familiar territory in Christianity. The Word is both expressible and inexpressible, cataphatic and apophatic. After the ascent to comprehension, there is yet another and higher peak—in the words of Pseudo-Dionysius, a realm “beyond unknowing,” a &lt;em&gt;positive&lt;/em&gt; silence and darkness, charged with the fullness of God. It is here where, should we come in honesty and vulnerability, acknowledging the spiritual sources of the art, we may meet the artist in true communion. It is here where we may be transformed.&lt;/p&gt;
&lt;p&gt;In addition to the choir trip through Europe, I was fortunate to experience another such meeting with Pärt’s music at a performance in 2014, where the composer himself was present. It was the first time Pärt had been to New York in thirty years, and an eclectic audience came to Carnegie Hall in droves to see the man and hear his music—from a large number of Eastern Orthodox clergy to Björk and Keanu Reeves to Bouteneff (the night was produced by the Arvo Pärt Project).&lt;/p&gt;
&lt;p&gt;It was the first time I had heard &lt;em&gt;Adam’s Lament&lt;/em&gt;. I felt the bright sadness, to be sure, but there was a sense of something larger, deeper, more mysterious at work, something I believe everyone in the concert hall participated in—the meeting of the eternal and temporal, the divine and human, joy and suffering, a music “outside time but emphatically incarnated.”&lt;/p&gt;</content:encoded><atom:author><atom:name>Daniel Saunders</atom:name></atom:author></item></channel></rss>