<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Jeff Fossett</title>
    <description>Trying things out</description>
    <link>http://jeffreyfossett.com/</link>
    <atom:link href="http://jeffreyfossett.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Fri, 13 Mar 2026 13:09:58 +0000</pubDate>
    <lastBuildDate>Fri, 13 Mar 2026 13:09:58 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>Documenting Repairs</title>
        <description>&lt;p&gt;Over the past few years, I’ve been trying to think about and engage more with maintenance and repair, especially when it comes to my clothes. In this post, I want to create a place to document some of these mends and repairs.&lt;/p&gt;

&lt;div&gt;
&lt;style&gt;
.repair-carousel {
  position: relative;
  max-width: 600px;
  margin: 2rem auto;
  font-family: inherit;
}
.repair-carousel__viewport {
  overflow: hidden;
  border-radius: 6px;
  border: 1px solid #e0e0e0;
}
body.dark-mode .repair-carousel__viewport {
  border-color: #444;
}
.repair-carousel__track {
  display: flex;
  transition: transform 0.4s ease;
}
.repair-carousel__card {
  min-width: 100%;
  box-sizing: border-box;
}
.repair-carousel__image-wrap {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.dark-mode .repair-carousel__image-wrap {
  background: #2a2930;
}
.repair-carousel__image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.repair-carousel__info {
  padding: 0.8rem 1rem 1rem;
  border-top: 1px solid #e0e0e0;
}
body.dark-mode .repair-carousel__info {
  border-top-color: #444;
}
.repair-carousel__info h3 {
  margin: 0 0 0.15rem;
  font-size: 1.05rem;
  font-weight: 500;
}
.repair-carousel__date {
  display: block;
  font-size: 0.8rem;
  color: #828282;
  margin-bottom: 0.35rem;
}
.repair-carousel__info p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: #444;
}
body.dark-mode .repair-carousel__info p {
  color: #c0bdb8;
}
.repair-carousel__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  margin-top: 0.75rem;
}
.repair-carousel__btn {
  background: none;
  border: 1px solid #ccc;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #333;
  transition: background 0.2s, border-color 0.2s;
  padding: 0;
  line-height: 1;
}
.repair-carousel__btn:hover {
  background: #f0f0f0;
  border-color: #999;
}
body.dark-mode .repair-carousel__btn {
  color: #e8e5e0;
  border-color: #555;
}
body.dark-mode .repair-carousel__btn:hover {
  background: #3a3940;
  border-color: #888;
}
.repair-carousel__btn:disabled {
  opacity: 0.3;
  cursor: default;
}
.repair-carousel__btn:disabled:hover {
  background: none;
}
.repair-carousel__counter {
  font-size: 0.85rem;
  color: #828282;
  min-width: 3rem;
  text-align: center;
  user-select: none;
}
&lt;/style&gt;




&lt;div class=&quot;repair-carousel&quot; role=&quot;region&quot; aria-label=&quot;Repair gallery&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;repair-carousel__viewport&quot;&gt;
&lt;div class=&quot;repair-carousel__track&quot;&gt;

&lt;div class=&quot;repair-carousel__card&quot;&gt;
&lt;div class=&quot;repair-carousel__image-wrap&quot;&gt;
&lt;img src=&quot;/figs/repairs/B361FC3B-FD40-4AE6-B68B-D3307E6EF556.JPG&quot; alt=&quot;Repair photo&quot; loading=&quot;lazy&quot; /&gt;
&lt;/div&gt;

&lt;div class=&quot;repair-carousel__info&quot;&gt;


&lt;p&gt;Some recent mends on my forever-repair jeans. These were done at still life.&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;repair-carousel__card&quot;&gt;
&lt;div class=&quot;repair-carousel__image-wrap&quot;&gt;
&lt;img src=&quot;/figs/repairs/CDC71F59-C02A-4C57-AAF2-D68A1DBD20BE.JPG&quot; alt=&quot;Repair photo&quot; loading=&quot;lazy&quot; /&gt;
&lt;/div&gt;

&lt;div class=&quot;repair-carousel__info&quot;&gt;


&lt;p&gt;I repaired two buttons that had broken on this jacket. I decided to go with a contrasting color for fun.&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;repair-carousel__card&quot;&gt;
&lt;div class=&quot;repair-carousel__image-wrap&quot;&gt;
&lt;img src=&quot;/figs/repairs/F5E432F4-5C0E-4667-A779-7065AC636DDB.JPG&quot; alt=&quot;Repair photo&quot; loading=&quot;lazy&quot; /&gt;
&lt;/div&gt;

&lt;div class=&quot;repair-carousel__info&quot;&gt;


&lt;p&gt;Hand repair on the elbow of one of my Dad&apos;s old flannels. The patch fabric was leftover from a previous project.&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;repair-carousel__card&quot;&gt;
&lt;div class=&quot;repair-carousel__image-wrap&quot;&gt;
&lt;img src=&quot;/figs/repairs/IMG_3493.jpg&quot; alt=&quot;Repair photo&quot; loading=&quot;lazy&quot; /&gt;
&lt;/div&gt;

&lt;div class=&quot;repair-carousel__info&quot;&gt;


&lt;p&gt;Classic bike &amp;amp; denim repair; these are on my favorite jeans, so I tried to maintain some semblance of neatness. The patch fabric was from the same denim, leftover from when the jeans were hemmed.&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;repair-carousel__card&quot;&gt;
&lt;div class=&quot;repair-carousel__image-wrap&quot;&gt;
&lt;img src=&quot;/figs/repairs/IMG_4245.jpg&quot; alt=&quot;Repair photo&quot; loading=&quot;lazy&quot; /&gt;
&lt;/div&gt;

&lt;div class=&quot;repair-carousel__info&quot;&gt;


&lt;p&gt;More elbow patch repairs on my Dad&apos;s old flannel. This is the flannel that most reminds me of him.&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;repair-carousel__card&quot;&gt;
&lt;div class=&quot;repair-carousel__image-wrap&quot;&gt;
&lt;img src=&quot;/figs/repairs/IMG_5206.jpg&quot; alt=&quot;Repair photo&quot; loading=&quot;lazy&quot; /&gt;
&lt;/div&gt;

&lt;div class=&quot;repair-carousel__info&quot;&gt;


&lt;p&gt;I got one of those little mending loom things to try out. This turned out pretty nice and satisfying.&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;repair-carousel__nav&quot;&gt;
&lt;button class=&quot;repair-carousel__btn repair-carousel__btn--prev&quot; aria-label=&quot;Previous repair&quot; disabled=&quot;&quot;&gt;&amp;larr;&lt;/button&gt;
&lt;span class=&quot;repair-carousel__counter&quot;&gt;1 / 6&lt;/span&gt;
&lt;button class=&quot;repair-carousel__btn repair-carousel__btn--next&quot; aria-label=&quot;Next repair&quot;&gt;&amp;rarr;&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
  var carousel = document.querySelector(&apos;.repair-carousel&apos;);
  if (!carousel) return;
  var track = carousel.querySelector(&apos;.repair-carousel__track&apos;);
  var cards = carousel.querySelectorAll(&apos;.repair-carousel__card&apos;);
  var prevBtn = carousel.querySelector(&apos;.repair-carousel__btn--prev&apos;);
  var nextBtn = carousel.querySelector(&apos;.repair-carousel__btn--next&apos;);
  var counter = carousel.querySelector(&apos;.repair-carousel__counter&apos;);
  var total = cards.length;
  var current = 0;
  function update() {
    track.style.transform = &apos;translateX(-&apos; + (current * 100) + &apos;%)&apos;;
    counter.textContent = (current + 1) + &apos; / &apos; + total;
    prevBtn.disabled = (current === 0);
    nextBtn.disabled = (current === total - 1);
  }
  prevBtn.addEventListener(&apos;click&apos;, function() {
    if (current &gt; 0) { current--; update(); }
  });
  nextBtn.addEventListener(&apos;click&apos;, function() {
    if (current &lt; total - 1) { current++; update(); }
  });
  carousel.addEventListener(&apos;keydown&apos;, function(e) {
    if (e.key === &apos;ArrowLeft&apos; &amp;&amp; current &gt; 0) { current--; update(); }
    if (e.key === &apos;ArrowRight&apos; &amp;&amp; current &lt; total - 1) { current++; update(); }
  });
  var startX = null;
  carousel.addEventListener(&apos;touchstart&apos;, function(e) {
    startX = e.touches[0].clientX;
  }, { passive: true });
  carousel.addEventListener(&apos;touchend&apos;, function(e) {
    if (startX === null) return;
    var diff = startX - e.changedTouches[0].clientX;
    if (Math.abs(diff) &gt; 50) {
      if (diff &gt; 0 &amp;&amp; current &lt; total - 1) { current++; update(); }
      if (diff &lt; 0 &amp;&amp; current &gt; 0) { current--; update(); }
    }
    startX = null;
  }, { passive: true });
})();
&lt;/script&gt;

&lt;/div&gt;

</description>
        <pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate>
        <link>http://jeffreyfossett.com/2026/03/13/repairs.html</link>
        <guid isPermaLink="true">http://jeffreyfossett.com/2026/03/13/repairs.html</guid>
        
        <category>sewing</category>
        
        <category>repair</category>
        
        
      </item>
    
      <item>
        <title>Epistemic Pluralism &amp; Deliberative Democracy</title>
        <description>&lt;h1 id=&quot;introduction&quot;&gt;Introduction&lt;/h1&gt;

&lt;p&gt;I am starting to engage on a project that is focused around the themes of epistemic pluralism in deliberative processes. In short, I understand the project as broadly asking the question:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;How might we design deliberative processes (or tools) to produce “better” (more legitimate, more just, more productive) outcomes in a world of epistemic pluralism – i.e. where deliberative participants have foundational differences in how they come to “know” things about the world?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In this post, I am going to capture some notes as I seek to develop better understandings on these themes, and read related materials. One thing I decided to try on this was to work with an LLM to help develop a reading list / curriculum oriented around my particular directions of interest here. Below is the result. I will work through some of these pieces progressively, and add my notes as I go.&lt;/p&gt;

&lt;h1 id=&quot;foundations-of-deliberative-democracy&quot;&gt;Foundations of Deliberative Democracy&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;A 2–3 Week Intensive Reading Plan&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This plan is designed to move from foundational theory (public reason and legitimacy) toward epistemic diversity and STS critiques. The structure is cumulative: later readings respond directly to earlier ones.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;week-1-core-architecture--public-reason-and-legitimacy&quot;&gt;Week 1: Core Architecture — Public Reason and Legitimacy&lt;/h2&gt;

&lt;h3 id=&quot;1-john-rawls&quot;&gt;1. John Rawls&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Political Liberalism&lt;/em&gt; (1993)
    &lt;ul&gt;
      &lt;li&gt;Lecture I: Fundamental Ideas&lt;/li&gt;
      &lt;li&gt;Lecture VI: The Idea of Public Reason&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;“The Idea of Public Reason Revisited” (1997)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Core idea:&lt;/strong&gt;&lt;br /&gt;
In a society marked by “reasonable pluralism,” the use of political power is legitimate only if it can be justified in terms all reasonable citizens could accept. Public reason defines that shared justificatory space.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Secondary&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Stanford Encyclopedia of Philosophy: “Public Reason”&lt;/li&gt;
  &lt;li&gt;Stanford Encyclopedia of Philosophy: “John Rawls”&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;2-jürgen-habermas&quot;&gt;2. Jürgen Habermas&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Between Facts and Norms&lt;/em&gt; (Introduction + chapters on discourse theory)&lt;/li&gt;
  &lt;li&gt;“Three Normative Models of Democracy”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Core idea:&lt;/strong&gt;&lt;br /&gt;
Legitimacy arises from procedures of rational discourse. Norms are legitimate if they could win the assent of all affected in ideal conditions of communication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Secondary&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;SEP: “Habermas”&lt;/li&gt;
  &lt;li&gt;SEP: “Deliberative Democracy”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conceptual contrast to track:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Rawls: legitimacy via public reason under pluralism.&lt;/li&gt;
  &lt;li&gt;Habermas: legitimacy via discourse conditions that generate rational acceptability.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;week-2-deliberative-democracy-expands-and-complicates&quot;&gt;Week 2: Deliberative Democracy Expands (and Complicates)&lt;/h2&gt;

&lt;h3 id=&quot;3-joshua-cohen&quot;&gt;3. Joshua Cohen&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;“Deliberation and Democratic Legitimacy” (1989)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A clean formal statement of deliberative democracy as a normative model.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;4-amy-gutmann--dennis-thompson&quot;&gt;4. Amy Gutmann &amp;amp; Dennis Thompson&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Democracy and Disagreement&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Focus:&lt;/strong&gt;&lt;br /&gt;
Persistent moral disagreement is normal. Reciprocity is the moral core: citizens should offer reasons others could reasonably accept.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;5-james-bohman&quot;&gt;5. James Bohman&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Public Deliberation&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;“Deliberative Democracy and Effective Social Freedom”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Emphasizes plural publics and democratic complexity beyond a single unified demos.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;6-iris-marion-young&quot;&gt;6. Iris Marion Young&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;“Communication and the Other: Beyond Deliberative Democracy”&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Inclusion and Democracy&lt;/em&gt; (selections)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Critiques rationalist bias in early deliberative theory. Argues that storytelling, rhetoric, and situated knowledge must count as legitimate forms of political communication.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;7-david-estlund&quot;&gt;7. David Estlund&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Democratic Authority&lt;/em&gt; (chapters on epistemic proceduralism)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bridges legitimacy and truth. Democracy has epistemic value but does not justify rule by experts.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;week-3-epistemic-diversity-expertise-and-sts-interventions&quot;&gt;Week 3: Epistemic Diversity, Expertise, and STS Interventions&lt;/h2&gt;

&lt;h3 id=&quot;8-hélène-landemore&quot;&gt;8. Hélène Landemore&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Democratic Reason&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Argues that cognitive diversity can outperform expertise under certain conditions.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;9-sheila-jasanoff&quot;&gt;9. Sheila Jasanoff&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Science and Public Reason&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;“Technologies of Humility”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Shows how scientific knowledge and social order are co-produced. Challenges narrow definitions of legitimate knowledge in liberal public reason.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;10-brian-wynne&quot;&gt;10. Brian Wynne&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;“Misunderstood Misunderstandings”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Empirical case (Cumbrian sheep farmers) demonstrating that lay knowledge is not ignorance but differently situated rationality.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;11-miranda-fricker&quot;&gt;11. Miranda Fricker&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Epistemic Injustice&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Introduces testimonial and hermeneutical injustice. Shows how epistemic inequality distorts deliberation.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;12-josé-medina&quot;&gt;12. José Medina&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;The Epistemology of Resistance&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Develops plural epistemic virtues and “epistemic friction” as productive rather than destabilizing.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;key-tensions-to-track&quot;&gt;Key Tensions to Track&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Legitimacy vs. Truth&lt;/strong&gt;&lt;br /&gt;
Is democracy legitimate because it respects persons, or because it produces better decisions?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Reasonableness vs. Deep Pluralism&lt;/strong&gt;&lt;br /&gt;
Rawls assumes “reasonable” pluralism. What happens when epistemic frameworks clash more radically?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Expertise vs. Inclusion&lt;/strong&gt;&lt;br /&gt;
How do we respect scientific authority without collapsing into technocracy?&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;optional-advanced-layer&quot;&gt;Optional Advanced Layer&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Elizabeth Anderson — “The Epistemology of Democracy”&lt;/li&gt;
  &lt;li&gt;Cristina Lafont — &lt;em&gt;Democracy without Shortcuts&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Philip Pettit — &lt;em&gt;Republicanism&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;reading-strategy&quot;&gt;Reading Strategy&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Read Rawls and Habermas slowly.&lt;/li&gt;
  &lt;li&gt;Read Cohen and Gutmann/Thompson structurally.&lt;/li&gt;
  &lt;li&gt;Read Young and Jasanoff polemically.&lt;/li&gt;
  &lt;li&gt;Read Estlund and Landemore analytically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you reflect, consider:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Is public reason a moral constraint, an epistemic filter, or a political technology?&lt;/li&gt;
  &lt;li&gt;Does deliberation require shared standards of evidence?&lt;/li&gt;
  &lt;li&gt;What happens when those standards are contested?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The central puzzle: how collective decision-making remains legitimate when the criteria of knowing themselves are in dispute.&lt;/p&gt;

&lt;h1 id=&quot;first-reflection-march-3&quot;&gt;First Reflection (March 3)&lt;/h1&gt;

&lt;p&gt;I want to start by reflecting on a few key ideas that I am familiar with at the outset or want to pay particular attention to.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Deliberation and preference evolution&lt;/em&gt;. One of the things I find interesting about the idea of deliberative democracy is the idea that – contra a lot of economic theory – part of the usefulness of deliberative processes (i.e. talking about, discussing, justifying ideas etc.) is that it can support preference evolution or preference change. In other words, the idea is that individual preferences about e.g. policy outcomes are not considered wholly “exogenous” things to be aggregated through, say, voting. Instead, they are something that can change and evolve; if I am part of a deliberation about a topic, I might come to better understand and appreciate an alternative perspective, allowing my preferences to evolve in terms of what I think is right or appropriate. I think that this approach speaks to me both as someone who personally resonates with this kind of “growth” mindset (and its benefits), and as a more realistic and cooperative model of how human beliefs work. If we imagine that people come to the table with fixed and exogenous preferences, there is really not much that we can do in terms of cooperation or creative problem solving. Either people agree or disagree; someone can win and someone can lose. However, if we instead relax this assumption, we dramatically reopen the space of cooperative possibility.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Legitimacy and Public Reaon&lt;/em&gt;. I am really interested in this theme of “legitimacy” and the idea that the legitimacy of coercive laws of policies is related to whether they can be justified to citizens in terms of reasons that they can understand and accept. This dimension of thinking seems tightly related to questions about epistemic pluralism. If citizens have deeply divergent “ways of knowing” what is true in a particular context, what does it look like to produce this kind of legitimacy? Can there exist this neutral space of “public reason” or “public facts” that can produce legitimacy? What if there is not enough overlap in basic beliefs about facts of the matter?&lt;/p&gt;

&lt;p&gt;I am also curious about the intersection of these two themes. To what extent can people’s epistemic perspectives evolve in the course of deliberation, and how?&lt;/p&gt;

&lt;p&gt;Something that I am also curious about is whether there are more relaxed notions of this idea of “legitimacy” and its relation to reasons. For example, suppose that there is some deliberation between groups with deeply different perspectives on a focal issue, such that there is not some shared terrain of public justification that is legible to both groups. Is there still some notion that deliberation might be useful in terms of increasing something like “democratic reciprocity” – i.e. even if they still completely disagree, both groups can come to better understand the other group as having &lt;em&gt;their own&lt;/em&gt; reasons that are legitimate and worthy of respect, even if those reasons are not actually fully legible or accessible or justificatory for me?&lt;/p&gt;

&lt;h1 id=&quot;second-reflection-march-10&quot;&gt;Second Reflection (March 10)&lt;/h1&gt;

&lt;p&gt;Today I am reading and taking notes on Jasanoff’s “Reason in Practice” from &lt;em&gt;Science and Public Reason&lt;/em&gt;. In this section, I will summarize a few notes and takeaways from reading the piece.&lt;/p&gt;

&lt;h2 id=&quot;public-reason-and-the-state&quot;&gt;Public Reason and the State&lt;/h2&gt;

&lt;p&gt;The first key idea in this piece for me is in terms of its framing of what “public reason” &lt;em&gt;is&lt;/em&gt;, and how to analyze it. In the style of STS, Jasanoff takes an explicitly constructivist approach; she writes:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Public reason, for me, is not simply the result of meeting exogenously defined criteria of logic or argument … rather, &lt;em&gt;it is what emerges when states act so as to appear reasonable&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So the analysis of public reason is not about characterizing some particular universal standard of rationality or anything of that sort; instead, the idea is to analyze more empirically how public reason is “accomplished” by the state. What is it that states &lt;em&gt;do&lt;/em&gt; so as to appear reasonable to the public? As Jasanoff goes on to explain, there are many possible features of this kind of analysis:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Reasoning comprises the institutional practices, discourses, techniques and instruments through which modern governments claim legitimiacy in an era of limitless risks – physical , political, and moral. Included here as well is an inquiry into the background conditions that lead citizens of democratic states to accept policy justification as being reasonable. (i.e. “civic epistemologies”).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In short, the achievement of seeming “reasonable” can and does involve recruitment and engagement of a variety of practices and resources; it also depends on the expectations of those publics who are the audience receiving these performances of reasonableness (communication involves both a “pitch” and a “catch”). When it comes to the expectations of public, Jasanoff invokes her concept of &lt;em&gt;civic epistemologies&lt;/em&gt;, which she characterizes further later on in the piece:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Just as cultures have routines and scripts … that assign meanings to actions, … so political cultures are acharacterized by relatively stable “civic epistemologies” … that comprise preferred modes of producing public knowledge and conducting policy deliberation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A few things that jump out to me about Jasanoff’s approach in the context of my current project:&lt;/p&gt;

&lt;p&gt;First, Jasanoff seems to frame public reason as mainly something that the &lt;em&gt;state&lt;/em&gt; does with the goal of legitimizing itself and its governing decisions to a questioning public. Public reason does not seem to be something that is done by citizens or groups qua members of the public. The public is framed as recipient, audience of the performance of public reason, and ultimate determinant of its successful achievement. I am not sure if this is a typical way of framing the issue. Where is the role of deliberative processes and reasoning amongst citizens in this framing?&lt;/p&gt;

&lt;p&gt;Second, there’s a particular prioritization of &lt;em&gt;national&lt;/em&gt; political cultures and epistemologies, with transnational comparative analysis providing the entrypoint into revealing the contingency of these things (which are otherwise easy to naturalize). While I am sympathetic to this approach methodologically and don’t particularly disagree that there exist national-level epistemic cultures, a focus on the national level also risks obscuring or ignoring the epistemic pluralism that exists within nations and even particular expert communities in some cases. Jasanoff’s focus on the national level is presumably related to the above framing that centers analysis of &lt;em&gt;the state&lt;/em&gt; as purveyor of “reasonableness”, since states obviously operate at the national level.&lt;/p&gt;

&lt;h2 id=&quot;unintended-consequences-uncerainty-and-public-reason&quot;&gt;Unintended Consequences, Uncerainty and Public Reason&lt;/h2&gt;

&lt;p&gt;A second idea that sticks with me from this piece is Jasanoff’s high-level analysis of the problem that public reason “solves” for Western democracies in the second half of the twentieth century. The basic idea is that by that point in history, there is a general recognition that the Enlightment idealism about science and technology (and technocratic goverance) is not as durable and reliable as it initially might have seemed. Jasanoff cites the emergence of various technologically-mediated disasters and scientific failures in bringing about this anxiety about S&amp;amp;T as reliable tools of technocratic governance:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Technology in operation proved far mor unruly (Wynne 1988), more error prone, less predictable, and less easily transferable across geopolitical boundaries than optimiststs had proclaimed. Increasingly, technological systems seemed to develop lives of their own, overflowing the pilots, models, and field tests that had once justified them (Callon et al. 2009).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These failures raise important questions: “who is at fault, who should have known, who was responsible, who should be compenated?”. 
Jasanoff then identifies two (limited) ways that states attempted to manage this crisis of reliability:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Through &lt;em&gt;denial&lt;/em&gt; and claims of “unintended consequences”.&lt;/li&gt;
  &lt;li&gt;Through rational calculation and “risk management” exercises.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For J, neither of these methods were perfect or wholly effective. Renegotiation of “public reason” is framed as another pathway to reconciling this relationship between the state, S&amp;amp;T and the public.&lt;/p&gt;

&lt;h2 id=&quot;civic-epistemologies-and-political-cultures&quot;&gt;Civic Epistemologies and Political Cultures&lt;/h2&gt;

&lt;p&gt;Coming back to the idea of civic epistemologies, I am reminded of E’s metaphor of traveling to other countries as a way of being exposed to different cultural attitudes. If the goal of a deliberative process is to simulate this kind of epistemic “travel”, what might it involve? Continuing with the travel metaphor, there’s a real sense in the case of travel that first-hand experience is a different kind of thing than, say, understanding conceptually or reading about what it’s like to be somewhere else. I also think about the role of media like fiction and cinema in “simulating” this aspect of travel. E.g. some random pithy quotations on this theme:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“That’s the thing about books. They let you travel without moving your feet.” (Jhumpa Lahiri)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;“A reader lives a thousand lives before he dies, said Jojen. The man who never reads lives only one.” (George R.R. Martin)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In both of these cases, the implication is that fiction books and media offer an experiential kind of knowing.&lt;/p&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;

&lt;p&gt;In general, while I think this piece is interesting and useful, I don’t know if it is the most helpful for the purposes of framing this project, aside in very general methodological terms. Reading this made me feel like I need to read more about the theory of deliberative democracy; some of the references above might be helpful on that front.&lt;/p&gt;
</description>
        <pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate>
        <link>http://jeffreyfossett.com/2026/03/02/epistemic-pluralism.html</link>
        <guid isPermaLink="true">http://jeffreyfossett.com/2026/03/02/epistemic-pluralism.html</guid>
        
        <category>pluraliy</category>
        
        <category>sts</category>
        
        
      </item>
    
      <item>
        <title>A Roll of Photos</title>
        <description>&lt;p&gt;I picked up an old camera on Facebook marketplace. Here are a few photos from my first roll, taken on walks round Cambridge, mostly during and around a big snowstorm we had. The turkeys, of course, are &lt;a href=&quot;https://jeffreyfossett.com/notes.html#15&quot;&gt;a big interest for me&lt;/a&gt;. I enjoy how boldly they inhabit public spaces around Cambridge that were not designed for them. A snowstorm places a premium on the use of public space for humans and turkeys alike. Sidewalks, parking spaces, bike lanes all must be manually kept clear. The margins are contracted, their inhabitants forced into the core.&lt;/p&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 85%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/photography/first_roll/Scan 9-2.jpg&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 85%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/photography/first_roll/Scan 6.jpg&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 85%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/photography/first_roll/Scan 2-2.jpg&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 85%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/photography/first_roll/Scan 7.jpg&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 85%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/photography/first_roll/Scan 11.jpg&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 85%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/photography/first_roll/Scan 5-2.jpg&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;For my own future reference, these photos were taken with Kodak Ultramax 400 on my Canon Sure Shot, developed at Hunts, then scanned and touched up in Lightroom. There’s lots to learn about all of these steps. The Lightroom tuning was especially new and interesting to me. For a few of these photos I found the adaptive “subject” presets helpful to draw the turkeys away from the background a bit.&lt;/p&gt;
</description>
        <pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate>
        <link>http://jeffreyfossett.com/2026/02/21/a-roll-of-photos.html</link>
        <guid isPermaLink="true">http://jeffreyfossett.com/2026/02/21/a-roll-of-photos.html</guid>
        
        <category>photography</category>
        
        
      </item>
    
      <item>
        <title>How Do We Know What We Know? (Workshop Series)</title>
        <description>&lt;p&gt;I am participating in a digital workshop series titled &lt;em&gt;How Do We Know What We Know? Integration, Translation, and “Right Relationship” Across Ways of Knowing in Civic &amp;amp; Tech Systems&lt;/em&gt;. It’s an interesting set of themes for sure. In this post I will keep track of some notes and ideas as they come up for me in the series.&lt;/p&gt;

&lt;h3 id=&quot;bridging-between-ways-of-knowing&quot;&gt;Bridging between ways of knowing&lt;/h3&gt;

&lt;p&gt;Session one was about the &lt;a href=&quot;https://en.wikipedia.org/wiki/Rights_of_nature&quot;&gt;Rights of Nature&lt;/a&gt; movement; it featured a presentation and some discussion.&lt;/p&gt;

&lt;p&gt;Early on in the session, the organizers offered this prompt for reflection and discussion:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Have you ever had to translate or bridge between different ways of knowing, cultures, or institutions? What felt challenging, or meaningful, about that experience?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What came to mind for me on this prompt was my efforts during the PhD at bridging and translating back and forth across academic fields with very different perspectives and epistemologies. A few things that occured about the difficulty of this:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The question of where I am grounded &lt;em&gt;as a translator&lt;/em&gt;&lt;/strong&gt;. Where am I positioned and coming from? Am “from” group A, translating for group B, or the reverse? Do I think of myself as somehow sitting outside of both groups? How does that work? Or maybe I think of myself as part of both groups or perspectives instead, even if that entails apparently incoherent commitments or identities. I think there is a tight connection between translation, accessing different ways of knowing, and one’s relationship to coherence and hybridity. I wrote about this a bit in the context of Donna Haraway’s work &lt;a href=&quot;https://jeffreyfossett.com/2024/09/17/cyborg-manifesto.html&quot;&gt;here&lt;/a&gt;. It’s hard to really inhabit different ways of seeing if one insists on (intellectual) coherence. How might we re-position our emotional and intellectual attitudes towards the value of “coherence”, and what might we gain from that?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It takes a long time to really assimilate different ways of knowing&lt;/strong&gt;, especially if they are different in meaningful ways. It is a paradigm-shift kind of thing – more similar to religious conversion than intellectual comprehension. Epistemic frames are encompassing and internally coherent; frame B will almost definitionally “not make sense” if approached from frame A. This underscores the importance of the kind of “unlearning” or space-clearing that the organizers mentioned in the setup discussion. But it’s often not something that happens overnight, and it may require extended periods of engagement with an approach that seems to obviously “not make sense” from the existing perspectives you are starting with. It would be interesting to think and learn more about religious and conversion experiences. I was remembering some of the discussion in James’ &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Varieties_of_Religious_Experience&quot;&gt;&lt;em&gt;The Varieties of Religious Experiences&lt;/em&gt;&lt;/a&gt;, I think.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;notes-on-the-rights-of-nature&quot;&gt;Notes on the Rights of Nature&lt;/h3&gt;

&lt;p&gt;I also captured a few more general notes and reflections on the “Rights of Nature” movement in general. Overall, it is not a perspective that I know a ton about in its applied forms, so it was interesting to hear more about. It seems to have an interesting and perhaps unsual theory of change as legal/policy interventions go. While it does have some practical dimension (e.g. offering new legal surfaces for advocates to bring suits), a big part of the goal seems to be more subjective / cultural. The idea is to reposition how people &lt;em&gt;think about&lt;/em&gt; and &lt;em&gt;relate to&lt;/em&gt; natural objects. The main goal is especially to help people think about natural objects as &lt;em&gt;subjects&lt;/em&gt; rather than &lt;em&gt;objects&lt;/em&gt;. The law is one site where we construct and culturally-enshrine subjectivity and agency, so I get the logic of pursuing change on the legal/policy front.&lt;/p&gt;

&lt;!-- There was also mention of how these approaches question the &quot;foundations of democracy&quot;, which also bake in assumptions about who or what is democratic stakeholder and on what terms.  --&gt;

&lt;p&gt;More conceptually, I find these themes interesting. They have strong &lt;a href=&quot;https://en.wikipedia.org/wiki/Science_and_technology_studies&quot;&gt;STS&lt;/a&gt; resonances, especially in the Latour / Callon / &lt;a href=&quot;https://en.wikipedia.org/wiki/Actor%E2%80%93network_theory&quot;&gt;Actor-Network Theory&lt;/a&gt; (ANT) vein of literature, which particularly emphasizes this kind of “symmetric” treatment of human- and non-human actors. I thought of &lt;a href=&quot;https://www.youtube.com/watch?v=wTvbK10ABPI&amp;amp;si=VyIQj4NVTCzYbGds&quot;&gt;this&lt;/a&gt; video of Latour discussing his “Parliament of Things” experiment, which is tightly connected to the Rights of Nature idea. I also thought of &lt;a href=&quot;https://journals.sagepub.com/doi/10.1111/j.1467-954X.1984.tb00113.x&quot;&gt;this&lt;/a&gt; influential paper from Callon which is a striking read.&lt;/p&gt;

&lt;p&gt;Touching on the STS connections here also raises a conceptual question I was interested to have more discussion of in the session: namely, the crucial question of “translation”. Translation is part of the subtitle of the workshop series and is a heavy point of emphasis in the STS literature on these themes. Callon’s paper for example, is titled “Some Elements of a Sociology &lt;strong&gt;of Translation&lt;/strong&gt;”, and is structured explicitly around different modes and moments of translation, and how actors (attempt to) enact and stabilize them (see the paper’s abstract for a summary).&lt;/p&gt;

&lt;p&gt;Of course, it makes lots of sense to foreground “translation” when we think about different ways of knowing, seeing, and relating. When we talk about the voice of nature specifically, there is an obvious and foundational set of questions: if nature is to have a voice, &lt;em&gt;who&lt;/em&gt; gets to articulate this voice, how, and on what terms? Who knows what is best for nature, and why?&lt;/p&gt;

&lt;p&gt;Someone asked a version of this question in the discussion session. The response was roughly to recenter the political goals of these Rights of Nature policies. The goal is to change people’s perspective – encourage them to put themselves “in the shoes” of natural objects. These legal frameworks are “not perfect”, but still point us in the right direction politically, presenting legal surfaces for new sorts of challenges, and encouraging broader conceptual reframing.&lt;/p&gt;

&lt;p&gt;I think that STS analyses tend to take a different approach to these sorts of questions. Rather than take an explicit stand in the political contestation about who gets to “speak for” this or that natural object, STS analyses instead step back and seek to analyze these &lt;strong&gt;processes of contestation and translation&lt;/strong&gt; themselves as the object of study. How is it that different actors (e.g. scientists, policy advocates, indigenous voices) seek to position themselves as voice of nature? What conceptual, material, political resources are recruited in these processes? Why are or are not they received as “legitimate” or “objective” or “fair” by insitutions or publics?&lt;/p&gt;

&lt;p&gt;In general, I think that this is something to keep an eye on in this workshop series in the future. Is the goal here to amplify some set of relatively-marginalized epistemic perspectives, and likewise dislodge more hegemonic ones? Or is it to do something more like the STS analysis: trying to more deeply understand the processes and resources through which different forms of “knowledge” are produced, legitimized, entrenched etc? Of course, these two sets of questions are related, and the answer could be some version of “both”; however, in practice I’ve noticed that these perspectives tend to yield fairly different kinds of conversations and insights.&lt;/p&gt;
</description>
        <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>
        <link>http://jeffreyfossett.com/2026/01/30/ways-of-knowing.html</link>
        <guid isPermaLink="true">http://jeffreyfossett.com/2026/01/30/ways-of-knowing.html</guid>
        
        <category>sts</category>
        
        <category>technology</category>
        
        <category>plurality</category>
        
        
      </item>
    
      <item>
        <title>Snow</title>
        <description>&lt;div style=&quot;display: flex; justify-content: center;&quot;&gt;
  &lt;video src=&quot;/figs/2026-01-25-snow/snow_web.mp4&quot; controls=&quot;&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; style=&quot;max-width: 100%; width: 300px; height: auto; border-radius: 4px;&quot;&gt;
  Your browser does not support the video tag.
&lt;/video&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
There was a big snow today. Outside my window I can see just these patterns of the snow swirling, sometimes “falling” but other times wooshing in different directions. The above is based on a video, processed with code to try to emphasize this flow and tumble. The sound is artificial, but something like wind. Best watched full screen.&lt;/p&gt;
</description>
        <pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate>
        <link>http://jeffreyfossett.com/2026/01/25/snow.html</link>
        <guid isPermaLink="true">http://jeffreyfossett.com/2026/01/25/snow.html</guid>
        
        <category>art</category>
        
        
      </item>
    
      <item>
        <title>Sprouts</title>
        <description>&lt;h2 id=&quot;january-24&quot;&gt;January 24&lt;/h2&gt;

&lt;p&gt;I picked up some sprouts to grow in a mason jar. I’ve done this before a while ago, but thought I’d give it another go. I am going to start by soaking one heaping tablespoon of sprouts in a few inches of water for most of today. I am adding them in this morning at 7:30am, so they should soak until mid-afternoon sometime, perhaps. After that, seems that I just need to rinse them twice a day.&lt;/p&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 65%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/2026-01-23-sprouts/sprouts.jpg&quot; alt=&quot;sprout package&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id=&quot;rinse-log&quot;&gt;Rinse Log&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Date&lt;/th&gt;
      &lt;th&gt;Morning&lt;/th&gt;
      &lt;th&gt;Evening&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;January 25&lt;/td&gt;
      &lt;td&gt;☑&lt;/td&gt;
      &lt;td&gt;☐&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;January 26&lt;/td&gt;
      &lt;td&gt;☑&lt;/td&gt;
      &lt;td&gt;☑&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;January 27&lt;/td&gt;
      &lt;td&gt;☑&lt;/td&gt;
      &lt;td&gt;☐&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;January 28&lt;/td&gt;
      &lt;td&gt;☑&lt;/td&gt;
      &lt;td&gt;☑&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;January 29&lt;/td&gt;
      &lt;td&gt;☑&lt;/td&gt;
      &lt;td&gt;☑&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;January 30&lt;/td&gt;
      &lt;td&gt;☑&lt;/td&gt;
      &lt;td&gt;☑&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;I harvested on the 31st. Here is the final result:&lt;/p&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 65%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/2026-01-23-sprouts/final_sprouts.jpg&quot; alt=&quot;Final sprouts&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

</description>
        <pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate>
        <link>http://jeffreyfossett.com/2026/01/24/sprouts.html</link>
        <guid isPermaLink="true">http://jeffreyfossett.com/2026/01/24/sprouts.html</guid>
        
        <category>plants</category>
        
        
      </item>
    
      <item>
        <title>Natural Dye Experiment</title>
        <description>&lt;p&gt;I enjoy sewing and always thought it would be interesting to try to dye my own fabrics to use in a sewing project. Natural dyeing has always seemed especially interesting; I like the idea of being able to collect materials from the natural environment–perhaps while on a &lt;a href=&quot;/rides/&quot;&gt;bike ride&lt;/a&gt;–and then using them to dye fabrics for sewing. I recently met E who is an experienced dyer and we got to talking about natural dyes. I asked her if she would teach me about the process and she agreed! In this post I will document a bit about my first experiences learning about and experimenting with natural dyeing.&lt;/p&gt;

&lt;h2 id=&quot;learning-at-the-library&quot;&gt;Learning at the Library&lt;/h2&gt;

&lt;p&gt;E suggested we start our conversation at the &lt;a href=&quot;https://share.google/9k9olQdq2Q8PSm3FQ&quot;&gt;Cambridge Public Library&lt;/a&gt;, where we looked through some of their books on dyeing. I know very little about these processes, so it was fun to begin to get a taste. E taught me about some of the basic terms and concepts.&lt;/p&gt;

&lt;p&gt;One thing I learned is that there is a key distinction between working with (1) animal/protein-based fibers vs (2) plant/cellulose-based fibers when it comes to dyeing. My understanding is that these different categories require different sorts of dyes/processes, and will yield different sorts of results.&lt;/p&gt;

&lt;p&gt;I also learned that there is an extended process that is required to prepare a piece of fabric to be dyed. The key steps are &lt;em&gt;scouring&lt;/em&gt; the fabric and &lt;em&gt;mordanting&lt;/em&gt;. A bit about these:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scouring&lt;/strong&gt; is basically deep cleaning the fabric to prepare it. Some info is &lt;a href=&quot;https://botanicalcolors.com/how-to-scour/?srsltid=AfmBOoqL8C0K82YaWnnUgw7sEkQL6EMEV1AgsL-ABgvhUjRVHSXdS7hU&quot;&gt;here&lt;/a&gt;. I don’t fully understand what is necessary here, but this is a more intensive process than standard washing. There’s lots more for me to learn about this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mordanting&lt;/strong&gt; happens after that and is roughly about preparing the fabric to accept the dye. Some info is &lt;a href=&quot;https://botanicalcolors.com/how-to-mordant/?srsltid=AfmBOopjMRNxRj0dSpt6oEgV-r2x8DtDkD6Qjne1Joob5d1W97QitUie&quot;&gt;here&lt;/a&gt;. According to that reference:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Mordanting is the most important process of preparing fibers to accept color. A mordant is a mineral salt that fixes with the fiber allowing natural dyes to bond to it. For us it is the most important step to improve light and washfastness. Using a mordant helps to ensure the most durable and long-lasting colors. With the exception of indigo (as a vat dye, it does not require a mordant), this is not an optional step.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Browsing through the dye books, another thing I found interesting was the way that certain sorts of additives can massively change the ultimate color of a dye. One common additive (apparently) is iron. Iron can be used to “&lt;a href=&quot;https://naturaldyes.ca/iron&quot;&gt;sadden&lt;/a&gt;” colors. From the books, it seemed like the colors can sometimes change dramatically in hue when iron is added as a modifier. E mentioned using rusty nails (sourced from the streets of Somerville?) as an iron source.&lt;/p&gt;

&lt;p&gt;We discussed a few different possible dye projects we could try, and eventually converged on doing an experiment ice dyeing, which felt seasonally appropriate, given the winter weather. We decided to meet the following weekend to give it a try.&lt;/p&gt;

&lt;h2 id=&quot;an-experiment-in-ice-dyeing&quot;&gt;An Experiment in Ice Dyeing&lt;/h2&gt;

&lt;p&gt;The day we agreed to meet turned out to be one of the coldest of the year in Cambridge. It “felt like” -11 F on my morning ride to E’s, but it was manageable with lots of bundling up. There’s not too many days which are that cold in Cambridge.&lt;/p&gt;

&lt;p&gt;E had prepared a mix of different fabrics–a few bandanas and dishcloths–with a few different processes. The lighter piece here was not mordanted (I think).&lt;/p&gt;

&lt;!-- Side-by-side images (stacks on mobile via CSS) --&gt;
&lt;div class=&quot;post-image-pair&quot; data-equalize-height=&quot;true&quot; style=&quot;--pair-gap: 1.5rem; --pair-img-width: 45%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/prepared_fabrics_1.jpg.jpg&quot; alt=&quot;prepared fabrics&quot; /&gt;
  &lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/prepared_fabrics_2.jpg.jpg&quot; alt=&quot;prepared fabrics&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;script&gt;
  // Equalize pair heights to the shorter image on desktop
  (function () {
    if (window.__postImagePairEqualize) return;
    window.__postImagePairEqualize = true;

    var onPalmQuery = window.matchMedia(&quot;(max-width: 600px)&quot;);

    function equalizePair(pair) {
      if (onPalmQuery.matches) {
        pair.querySelectorAll(&quot;img&quot;).forEach(function (img) {
          img.style.height = &quot;&quot;;
        });
        return;
      }

      var imgs = pair.querySelectorAll(&quot;img&quot;);
      if (imgs.length !== 2) return;

      // Reset to natural height before measuring
      imgs.forEach(function (img) {
        img.style.height = &quot;&quot;;
      });

      var h1 = imgs[0].clientHeight;
      var h2 = imgs[1].clientHeight;
      var target = Math.min(h1, h2);

      if (target &gt; 0) {
        imgs.forEach(function (img) {
          img.style.height = target + &quot;px&quot;;
        });
      }
    }

    function equalizeAll() {
      document
        .querySelectorAll(&apos;.post-image-pair[data-equalize-height=&quot;true&quot;]&apos;)
        .forEach(equalizePair);
    }

    window.addEventListener(&quot;resize&quot;, equalizeAll);
    window.addEventListener(&quot;load&quot;, equalizeAll);
  })();
&lt;/script&gt;

&lt;p&gt;The first step of the dyeing process involved doing some mix of folding, twisting, and rolling the fabric, with the goal of making some interesting patterns when the dye is added. I felt drawn to try some twisting and folding and rolling. The left here was mainly a big twist; the right was some mixture of rolling in the corners a bit, and then also twisting and clipping:&lt;/p&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 95%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/folded_1_and_2.jpg.jpg&quot; alt=&quot;1 and 2 folded&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;With no experience in dyeing, I did not have much idea what these different sorts of folds and twists would do. Dyeing seems to be a deeply experimental and uncertain process. There are so many different variables that can affect the final output – the fabric, the preparation, the dyes, the folding, the melting of the ice (in our case), and so on. While I am sure it’s possible to learn more about all of these things – and build deeper intuition about how they each impact the final result – some degree of surprise and unpredictability seems inevitable. As the artist, you’re more focused on the process and the infrastructure of creation, rather than precise control of the particular result. I appreciate creative practices that emphasize this kind of uncertainty and serendipity.&lt;/p&gt;

&lt;p&gt;After doing some different sorts of folding and twisting, I wound up with four different experiments. The next step was to apply natural dye elements. E had a mix of prepared natural objects – marigold, dahlia, indigo – which she had grown and/or harvested, as well as a handful of dye powders – madder, and henna among them.&lt;/p&gt;

&lt;!-- Side-by-side images (stacks on mobile via CSS) --&gt;
&lt;div class=&quot;post-image-pair&quot; data-equalize-height=&quot;true&quot; style=&quot;--pair-gap: 1.5rem; --pair-img-width: 45%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/raw_dye_1.jpg&quot; alt=&quot;raw dye 1&quot; /&gt;
  &lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/raw_dye_2.jpg&quot; alt=&quot;raw dye 2&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;script&gt;
  // Equalize pair heights to the shorter image on desktop
  (function () {
    if (window.__postImagePairEqualize) return;
    window.__postImagePairEqualize = true;

    var onPalmQuery = window.matchMedia(&quot;(max-width: 600px)&quot;);

    function equalizePair(pair) {
      if (onPalmQuery.matches) {
        pair.querySelectorAll(&quot;img&quot;).forEach(function (img) {
          img.style.height = &quot;&quot;;
        });
        return;
      }

      var imgs = pair.querySelectorAll(&quot;img&quot;);
      if (imgs.length !== 2) return;

      // Reset to natural height before measuring
      imgs.forEach(function (img) {
        img.style.height = &quot;&quot;;
      });

      var h1 = imgs[0].clientHeight;
      var h2 = imgs[1].clientHeight;
      var target = Math.min(h1, h2);

      if (target &gt; 0) {
        imgs.forEach(function (img) {
          img.style.height = target + &quot;px&quot;;
        });
      }
    }

    function equalizeAll() {
      document
        .querySelectorAll(&apos;.post-image-pair[data-equalize-height=&quot;true&quot;]&apos;)
        .forEach(equalizePair);
    }

    window.addEventListener(&quot;resize&quot;, equalizeAll);
    window.addEventListener(&quot;load&quot;, equalizeAll);
  })();
&lt;/script&gt;

&lt;p&gt;I wound up using a lot of the marigolds, drawn by their warm and saturated color, as well as some of the powders (madder, henna) and indigo leaves. I do feel drawn to indigo for future experiments, with all its history and richness. We joked that my final set of prepared pieces looked like something you might see in a cake or pastry shop:&lt;/p&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 95%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/pastry_shop.jpg&quot; alt=&quot;pastry shop&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;I’ve given the pieces number here so that I can refer back later. Here was E’s set of prepared pieces:&lt;/p&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 95%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/e_preparation.jpg&quot; alt=&quot;E preparation&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;After preparing our pieces, it was time for ice. We headed out into the cold to see what we could harvest from a partially-frozen brook nearby. It was not initially obvious how best to harvest bits of ice. We did a lot of hacking at the ice with tongs, breaking off whatever chunks we could to load over our pieces. After harvesting lots of little bits, I eventually wound up pulling out one giant chunk of ice to place over the top of everything. In the end, the brook – and the cold of the day – wound up working quite well for our purposes. It was fun to be outside for a bit and engage with the physicality of this part of the process. It is not often that I have reason to step in and engage directly with the ice of a winter brook.&lt;/p&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 65%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/ice_1.jpg&quot; alt=&quot;ice 1&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;After saturating our bins with ice from the stream, we brought them in a garage area to slowly melt.&lt;/p&gt;

&lt;!-- Side-by-side images (stacks on mobile via CSS) --&gt;
&lt;div class=&quot;post-image-pair&quot; data-equalize-height=&quot;true&quot; style=&quot;--pair-gap: 1.5rem; --pair-img-width: 45%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/ice_2.jpg&quot; alt=&quot;ice 2&quot; /&gt;
  &lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/melted.jpg&quot; alt=&quot;melted&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;script&gt;
  // Equalize pair heights to the shorter image on desktop
  (function () {
    if (window.__postImagePairEqualize) return;
    window.__postImagePairEqualize = true;

    var onPalmQuery = window.matchMedia(&quot;(max-width: 600px)&quot;);

    function equalizePair(pair) {
      if (onPalmQuery.matches) {
        pair.querySelectorAll(&quot;img&quot;).forEach(function (img) {
          img.style.height = &quot;&quot;;
        });
        return;
      }

      var imgs = pair.querySelectorAll(&quot;img&quot;);
      if (imgs.length !== 2) return;

      // Reset to natural height before measuring
      imgs.forEach(function (img) {
        img.style.height = &quot;&quot;;
      });

      var h1 = imgs[0].clientHeight;
      var h2 = imgs[1].clientHeight;
      var target = Math.min(h1, h2);

      if (target &gt; 0) {
        imgs.forEach(function (img) {
          img.style.height = target + &quot;px&quot;;
        });
      }
    }

    function equalizeAll() {
      document
        .querySelectorAll(&apos;.post-image-pair[data-equalize-height=&quot;true&quot;]&apos;)
        .forEach(equalizePair);
    }

    window.addEventListener(&quot;resize&quot;, equalizeAll);
    window.addEventListener(&quot;load&quot;, equalizeAll);
  })();
&lt;/script&gt;

&lt;h2 id=&quot;results&quot;&gt;Results&lt;/h2&gt;

&lt;p&gt;First, here are a few images of the pieces freshly after the ice melt.&lt;/p&gt;

&lt;!-- Side-by-side images (stacks on mobile via CSS) --&gt;
&lt;div class=&quot;post-image-pair&quot; data-equalize-height=&quot;true&quot; style=&quot;--pair-gap: 1.5rem; --pair-img-width: 45%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/post_melt.jpg&quot; alt=&quot;post melt&quot; /&gt;
  &lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/close_up.jpg&quot; alt=&quot;close up&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;script&gt;
  // Equalize pair heights to the shorter image on desktop
  (function () {
    if (window.__postImagePairEqualize) return;
    window.__postImagePairEqualize = true;

    var onPalmQuery = window.matchMedia(&quot;(max-width: 600px)&quot;);

    function equalizePair(pair) {
      if (onPalmQuery.matches) {
        pair.querySelectorAll(&quot;img&quot;).forEach(function (img) {
          img.style.height = &quot;&quot;;
        });
        return;
      }

      var imgs = pair.querySelectorAll(&quot;img&quot;);
      if (imgs.length !== 2) return;

      // Reset to natural height before measuring
      imgs.forEach(function (img) {
        img.style.height = &quot;&quot;;
      });

      var h1 = imgs[0].clientHeight;
      var h2 = imgs[1].clientHeight;
      var target = Math.min(h1, h2);

      if (target &gt; 0) {
        imgs.forEach(function (img) {
          img.style.height = target + &quot;px&quot;;
        });
      }
    }

    function equalizeAll() {
      document
        .querySelectorAll(&apos;.post-image-pair[data-equalize-height=&quot;true&quot;]&apos;)
        .forEach(equalizePair);
    }

    window.addEventListener(&quot;resize&quot;, equalizeAll);
    window.addEventListener(&quot;load&quot;, equalizeAll);
  })();
&lt;/script&gt;

&lt;p&gt;E steamed the pieces to help lock in the colors. I then unrolled them and cleaned them under the sink until the water ran clear. The final step was to store them in the dark for about a week. Below are some images of the final results after a bit of ironing. I’ll reflect a bit on each piece.&lt;/p&gt;

&lt;h3 id=&quot;piece-1&quot;&gt;Piece 1&lt;/h3&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 85%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/IMG_4237.jpg&quot; alt=&quot;Piece 1&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;There’s ultimately a limited amount of color in this piece, but I do like some of the bits of texture in certain areas particularly in the top left quadrant. It’s not obvious in person, but in the photo I do notice the bullseye pattern which makes sense in retrospect. The process here was essentially to to make the bullseye type preparation using rubber bands, then twist the resulting piece in a spiral and place the dye elements on top. I am not sure exactly what accounts for the streaks out from the center.&lt;/p&gt;

&lt;h3 id=&quot;piece-2&quot;&gt;Piece 2&lt;/h3&gt;

&lt;!-- Side-by-side images (stacks on mobile via CSS) --&gt;
&lt;div class=&quot;post-image-pair&quot; data-equalize-height=&quot;true&quot; style=&quot;--pair-gap: 1.5rem; --pair-img-width: 45%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/IMG_4223.jpg&quot; alt=&quot;Piece 2&quot; /&gt;
  &lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/IMG_4229.jpg&quot; alt=&quot;Piece 2&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;script&gt;
  // Equalize pair heights to the shorter image on desktop
  (function () {
    if (window.__postImagePairEqualize) return;
    window.__postImagePairEqualize = true;

    var onPalmQuery = window.matchMedia(&quot;(max-width: 600px)&quot;);

    function equalizePair(pair) {
      if (onPalmQuery.matches) {
        pair.querySelectorAll(&quot;img&quot;).forEach(function (img) {
          img.style.height = &quot;&quot;;
        });
        return;
      }

      var imgs = pair.querySelectorAll(&quot;img&quot;);
      if (imgs.length !== 2) return;

      // Reset to natural height before measuring
      imgs.forEach(function (img) {
        img.style.height = &quot;&quot;;
      });

      var h1 = imgs[0].clientHeight;
      var h2 = imgs[1].clientHeight;
      var target = Math.min(h1, h2);

      if (target &gt; 0) {
        imgs.forEach(function (img) {
          img.style.height = target + &quot;px&quot;;
        });
      }
    }

    function equalizeAll() {
      document
        .querySelectorAll(&apos;.post-image-pair[data-equalize-height=&quot;true&quot;]&apos;)
        .forEach(equalizePair);
    }

    window.addEventListener(&quot;resize&quot;, equalizeAll);
    window.addEventListener(&quot;load&quot;, equalizeAll);
  })();
&lt;/script&gt;

&lt;p&gt;This piece wound up being the most saturated and dense in color, which is interesting. Referring back to the setup, there’s a few confounds here. First, this fabric was prepared a bit differently than the rest; also, it was less densely folded, allowing for more dye saturation. There’s a bit of symmetry in the color pattern – especially across the diagonal axis – which makes sense given the simple folding. I do appreciate blending of the reds and yellows in this piece. There is seemeingly more “mixing” of the colors here than in some of the other pieces.&lt;/p&gt;

&lt;h3 id=&quot;piece-3&quot;&gt;Piece 3&lt;/h3&gt;

&lt;!-- Side-by-side images (stacks on mobile via CSS) --&gt;
&lt;div class=&quot;post-image-pair&quot; data-equalize-height=&quot;true&quot; style=&quot;--pair-gap: 1.5rem; --pair-img-width: 45%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/IMG_4210.jpg&quot; alt=&quot;Piece 3&quot; /&gt;
  &lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/IMG_4208.jpg&quot; alt=&quot;Piece 3&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;script&gt;
  // Equalize pair heights to the shorter image on desktop
  (function () {
    if (window.__postImagePairEqualize) return;
    window.__postImagePairEqualize = true;

    var onPalmQuery = window.matchMedia(&quot;(max-width: 600px)&quot;);

    function equalizePair(pair) {
      if (onPalmQuery.matches) {
        pair.querySelectorAll(&quot;img&quot;).forEach(function (img) {
          img.style.height = &quot;&quot;;
        });
        return;
      }

      var imgs = pair.querySelectorAll(&quot;img&quot;);
      if (imgs.length !== 2) return;

      // Reset to natural height before measuring
      imgs.forEach(function (img) {
        img.style.height = &quot;&quot;;
      });

      var h1 = imgs[0].clientHeight;
      var h2 = imgs[1].clientHeight;
      var target = Math.min(h1, h2);

      if (target &gt; 0) {
        imgs.forEach(function (img) {
          img.style.height = target + &quot;px&quot;;
        });
      }
    }

    function equalizeAll() {
      document
        .querySelectorAll(&apos;.post-image-pair[data-equalize-height=&quot;true&quot;]&apos;)
        .forEach(equalizePair);
    }

    window.addEventListener(&quot;resize&quot;, equalizeAll);
    window.addEventListener(&quot;load&quot;, equalizeAll);
  })();
&lt;/script&gt;

&lt;p&gt;This piece has some nicely saturated yellows from the marigold. Some cool tones also show up from the indigo. It’s hard to say much about the global pattern on the piece, but I think it has some nice moments of composition when appropriately cropped. For example, I like this area cropped on the right above. There’s a fair amount of whitespace overall, which makes sense given the folding prepartion. It’s interesting to me that the indigo spots are so splotchy and localized (compared to the marigold), given how much of the indigo leaves I put on the piece. I’m guessing that this has more to do with the particularities of indigo in an ice dye setup than it does with the placement of the leaves. I am interested to try playing with indigo more.&lt;/p&gt;

&lt;h3 id=&quot;piece-4&quot;&gt;Piece 4&lt;/h3&gt;

&lt;!-- Side-by-side images (stacks on mobile via CSS) --&gt;
&lt;div class=&quot;post-image-pair&quot; data-equalize-height=&quot;true&quot; style=&quot;--pair-gap: 1.5rem; --pair-img-width: 45%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/IMG_4195.jpg&quot; alt=&quot;Piece 4&quot; /&gt;
  &lt;img class=&quot;post-image post-image--pair&quot; src=&quot;/figs/2026-01-19-natural-dye-experiment/IMG_4200.jpg&quot; alt=&quot;Piece 4&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;script&gt;
  // Equalize pair heights to the shorter image on desktop
  (function () {
    if (window.__postImagePairEqualize) return;
    window.__postImagePairEqualize = true;

    var onPalmQuery = window.matchMedia(&quot;(max-width: 600px)&quot;);

    function equalizePair(pair) {
      if (onPalmQuery.matches) {
        pair.querySelectorAll(&quot;img&quot;).forEach(function (img) {
          img.style.height = &quot;&quot;;
        });
        return;
      }

      var imgs = pair.querySelectorAll(&quot;img&quot;);
      if (imgs.length !== 2) return;

      // Reset to natural height before measuring
      imgs.forEach(function (img) {
        img.style.height = &quot;&quot;;
      });

      var h1 = imgs[0].clientHeight;
      var h2 = imgs[1].clientHeight;
      var target = Math.min(h1, h2);

      if (target &gt; 0) {
        imgs.forEach(function (img) {
          img.style.height = target + &quot;px&quot;;
        });
      }
    }

    function equalizeAll() {
      document
        .querySelectorAll(&apos;.post-image-pair[data-equalize-height=&quot;true&quot;]&apos;)
        .forEach(equalizePair);
    }

    window.addEventListener(&quot;resize&quot;, equalizeAll);
    window.addEventListener(&quot;load&quot;, equalizeAll);
  })();
&lt;/script&gt;

&lt;p&gt;This piece has the clearest global pattern which makes sense given the preparation. The marigold yellow is the punchiest color that comes through, though with a bit more of a green tint I suppose from the henna powder. There are a few moments of red here and there. I am not sure if I would keep the henna if I were doing this piece again, which makes sense in retrospect. I don’t love how it combines with the yellow, and it neutralizes with the red madder. I do like the pattern and contrast overall in this piece though; I think probably simpler is better as far as making legible global patterns, which makes sense. Not that that is necessarily the goal, but it seems useful to be aware of.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;In general, this was an interesting experiment, and I am curious to try doing more in this vein. I am also wondering about what I might do with these pieces. I thought they might make decent lining fabrics for something like a bag. I also thought some might fit well in some sort of broader patchwork, along with other colors and textures. The larger pieces (3 and 4) also have a bit of transparency; they could maybe be made into something like a lampshade or curtain.&lt;/p&gt;
</description>
        <pubDate>Mon, 19 Jan 2026 00:00:00 +0000</pubDate>
        <link>http://jeffreyfossett.com/2026/01/19/natural-dye-experiment.html</link>
        <guid isPermaLink="true">http://jeffreyfossett.com/2026/01/19/natural-dye-experiment.html</guid>
        
        <category>art</category>
        
        <category>plants</category>
        
        
      </item>
    
      <item>
        <title>Claude Code Reflection</title>
        <description>&lt;p&gt;I spent a bit of time today implementing a custom tool with Claude Code. The tool is a personalized interface that curates soccer matches that I might be interested in watching based on my personal interests and preferences (e.g. clubs, players, types of matches that I’m interested in). It runs once a day automatically, looks up all of the matches (along with relevant background info), and then cross-references them against my personal interests and rates and summarizes them for me (and also shows when/how to stream them).&lt;/p&gt;

&lt;p&gt;I built it tool because I found myself sometimes missing matches that I would have liked to see because soccer is distributed across different leagues and tournaments and whatnot. The tool is live &lt;a href=&quot;https://jeffreyfossett.com/soccer-match-digest/&quot;&gt;here&lt;/a&gt; if you are interested in checking out (though it’s mostly relevant for &lt;em&gt;me&lt;/em&gt;). Here is what it looks like:&lt;/p&gt;

&lt;center&gt;
  &lt;img src=&quot;/figs/2026-01-18-claude-code-reflection/tool_screenshot.jpg&quot; alt=&quot;Screenshot of the soccer match digest tool interface&quot; style=&quot;max-width: 800px; width: 100%; height: auto;&quot; /&gt;
&lt;/center&gt;

&lt;p&gt;The broader thing that I think is interesting about this is not really the tool per se, but the idea that – with the rise of these highly-effective AI coding tools like Claude Code – certain sorts of software are newly feasible or “worth it” from a cost-benefit perspective. Continuing with the current example, this soccer curation tool was always &lt;em&gt;possible&lt;/em&gt; (and maybe not that hard) to build. I could have built it myself. But it would have taken a lot more time. The “cost” would have been a lot higher. And since the “benefits” are modest, I probably wouldn’t have done it. It just wasn’t worth it. But now, with Claude Code and other such tools, the cost is extremely low. This app took me maybe an hour of chatting with Claude and doing some minor setup with APIs.&lt;/p&gt;

&lt;p&gt;In some sense, it’s obvious that AI makes implementing software “cheaper” and easier (while perhaps introducing other issues that I set aside for now). But when we think about the consequences of this, I think it’s easy to think of the universe of software tasks as fixed – i.e. there is some exogenous set of software we want to build, and now that set is cheaper to accomplish. But the point I am trying to highlight here is that, when we make it much cheaper to implement software, that &lt;strong&gt;changes the set of software that is worth building&lt;/strong&gt;. It’s not just that the existing things become easier, it’s that a whole new set of things become potentially “worth it” to do. In the case of software, this might be simple, custom or one-off tools like my soccer match curator. I’ve also been applying this logic in a lot of research settings. For example, I recently built (with Cursor + OpenAI) a custom one-off tool for doing manual data validation for a recent project. Again, this was not something that was impossible to do previously, but it wasn’t “worth it” for a one-off task like this. But with AI coding, the cost-benefit has changed.&lt;/p&gt;

&lt;p&gt;This perspective on the consequences of AI coding is consonant with how digitization economists &lt;a href=&quot;https://www.aeaweb.org/articles?id=10.1257/jel.20171452&quot;&gt;think about digitization more broadly&lt;/a&gt; as the lowering of many sorts of costs (e.g. lowering the costs of search, replication, distribution, verification). The perspective is fundamentally economic to me, because the point is that there can be big consequences from a new piece of technology, even if it doesn’t make fundamentally new sorts of things possible – dramatically lowering the cost of existing activities is often enough. And the consequences thereof often arise not just from making existing tasks cheaper, but from the &lt;em&gt;new&lt;/em&gt; set of tasks that are now “worth” doing.&lt;/p&gt;

&lt;p&gt;This post partly inspired by &lt;a href=&quot;https://x.com/JFoss117/status/2010699350075150430?s=20&quot;&gt;an interaction with John on Twitter/X&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate>
        <link>http://jeffreyfossett.com/2026/01/18/claude-code-reflection.html</link>
        <guid isPermaLink="true">http://jeffreyfossett.com/2026/01/18/claude-code-reflection.html</guid>
        
        <category>research</category>
        
        <category>llm</category>
        
        <category>economics</category>
        
        
      </item>
    
      <item>
        <title>High Conflict</title>
        <description>&lt;p&gt;Today I am starting the book &lt;em&gt;High Conflict&lt;/em&gt; by Amanda Ripley. In this post I will capture some notes as I go, and relate it to other things I am thinking about.&lt;/p&gt;

&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;

&lt;p&gt;Ripley distinguishes &lt;em&gt;high conflict&lt;/em&gt; from “the useful friction of healthy conflict.” She calls useful conflict &lt;em&gt;good conflict&lt;/em&gt;. She writes:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Good conflict is a force that pushes us to be better people. Good conflict is not the same thing as forgiveness. It has nothing to do with surrender. It can be stressful and heated, but our dignity remains intact. Good conflict can lead to radical change, tectonic shifts in how societies operate. But it does not collapse into caricature. We remain open to the reality that none of us has the answers to everything all the time, and that we are all connected.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;She contrasts this with &lt;em&gt;high conflict&lt;/em&gt;, which is what happens when conflict clarifies into a good-versus-evil kind of feud, the kind with an &lt;em&gt;us&lt;/em&gt; and a &lt;em&gt;them&lt;/em&gt;. The rules of engagement no longer apply. We feel increasingly certain of our own superiority and more mystified by the other side.&lt;/p&gt;

&lt;p&gt;An interesting point: in this sort of conflict, “&lt;em&gt;both sides&lt;/em&gt; are convinced that they are reacting defensively—somehow.”&lt;/p&gt;

&lt;p&gt;Motivating question of the book: how and why does high conflict happen? And how do we get back to &lt;em&gt;good&lt;/em&gt; conflict?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features of “good” conflict&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“Comprehending” while still disagreeing.&lt;/li&gt;
  &lt;li&gt;Hearing the other side without compromising one’s own view.&lt;/li&gt;
  &lt;li&gt;Curiosity returns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Claim:&lt;/strong&gt; “when conflict escalates past a certain point, the conflict itself takes charge. The us-versus-them dynamic takes over. […] High conflict is the invisible hand of our time.”&lt;/p&gt;

&lt;p&gt;We need good conflict. People who try to live without conflict will implode sooner or later. But when conflict shifts into “high conflict” it can “burn down the whole house”.&lt;/p&gt;

&lt;p&gt;Idea that there is a relationship between high conflict and “doubt”. High conflict thrives on certainty that one is in the right. Healthy doubting is in tension with high conflict.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the uses &lt;em&gt;of&lt;/em&gt; high conflict?&lt;/strong&gt; (Some from AR, some from me)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Can feel good.&lt;/li&gt;
  &lt;li&gt;Gives life meaning.&lt;/li&gt;
  &lt;li&gt;Can be an effective way to mobilize people.&lt;/li&gt;
  &lt;li&gt;Strengthens in-group bonds? Sense that we are all “on the same team”, fighting the good fight together against a common enemy.&lt;/li&gt;
  &lt;li&gt;Later, AR mentions meaning, camaraderie, power that can be found in high conflict.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AR says the challenge is to “mobilize great masses of people to make change &lt;em&gt;without&lt;/em&gt; dehumanizing one another”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claim:&lt;/strong&gt; nonviolent movements are more effective than violent ones at enacting change. This is a common claim but can be questioned (e.g. Scott). Is it really the case that nonviolent movements succeed in a vacuum? Or do they succeed against the backdrop of the threat of more violent forms of upheaval? E.g. King against the background threat of the Black Panthers, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claim:&lt;/strong&gt; “Any modern movement that cultivates us-versus-them thinking tends to destroy itself from the inside, with or without violence.” Is that true? Sure, it creates some boundaries to effective cooperation (can’t work together with “them”), but how much breadth of collaboration is really necessary / possible anyway?&lt;/p&gt;

&lt;p&gt;I worry that too much of AR’s narrative is that high conflict is &lt;em&gt;per se&lt;/em&gt; self-destructive or something. Seems like we should very clearly acknowledge the ways in which it is beneficial and appealing. Ironically she almost seems to “us-vs-them” good vs. “high” conflict. In my view we should be honest and clear about the appeals of high conflict, what it &lt;em&gt;does&lt;/em&gt; serve.&lt;/p&gt;

&lt;p&gt;Some story about technology in conflict.&lt;/p&gt;

&lt;p&gt;Use of terms “healthy” vs. “unhealthy” seems common in discussions of conflict. It’s like a way of naturalizing, downplaying the normativity of the assessment. Like saying that something is “unnatural”.&lt;/p&gt;

&lt;p&gt;Allusion that high conflict is less effective.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claim:&lt;/strong&gt; high conflict is “the cause” and hate etc. is a symptom of it.&lt;/p&gt;

&lt;p&gt;JF: Is that really the way to think about it? What is the use of putting this causal ordering on things?&lt;/p&gt;

&lt;h2 id=&quot;chapter-1&quot;&gt;Chapter 1&lt;/h2&gt;

&lt;p&gt;Idea that “the law” is excessively adversarial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claim:&lt;/strong&gt; high conflict “makes us miserable”. It is “costly in every sense”.&lt;/p&gt;

&lt;p&gt;Conflict as a “trap”. Once it escalates past a certain point, it becomes hard to get out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claim:&lt;/strong&gt; key distinction between good and bad conflict is whether there is stagnation or progress. Is the conflict “leading somewhere”? In high conflict “the conflict &lt;em&gt;is&lt;/em&gt; the destination”.&lt;/p&gt;

&lt;p&gt;Is that really true? Isn’t it possible that there can be a sense of progress in many us-vs-them conflicts? It’s just more zero-sum in notion. &lt;em&gt;We&lt;/em&gt; win if and only if &lt;em&gt;they&lt;/em&gt; lose.&lt;/p&gt;

&lt;p&gt;Notion of competing capacities for &lt;em&gt;adversarialism&lt;/em&gt; vs. &lt;em&gt;solidarity&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Idea: institutions and systems can promote one impulse vs the other.&lt;/p&gt;

&lt;p&gt;Mediation question: “what is one thing you understood about your husband’s view?” In general, I like this idea of prompting people to restate &lt;em&gt;each others’&lt;/em&gt; views.&lt;/p&gt;

&lt;p&gt;Conflict and confirmation bias. Questions vs. making assumptions.&lt;/p&gt;

&lt;p&gt;Notion of the “understory” of conflict. What is behind the surface (or “false flags”) of the conflict. Why is XYZ important? What is behind it? Often, people who are in high conflict don’t know their own understory. Mediators can help unpack, clarify etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claim:&lt;/strong&gt; feeling understood ==&amp;gt; relax defenses. From &lt;em&gt;Challenging Conflict&lt;/em&gt;: “We are more willing and able to udnerstand otehrs when we feel understood ourselves”.&lt;/p&gt;

&lt;p&gt;Friedman emphasis on “everyone needs to be in the room”.&lt;/p&gt;

&lt;p&gt;Looping. Listen in a way that people can see.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claim:&lt;/strong&gt; “when people feel heard, they make more coherent and intriguing points. They acknowledge their own inconsistencies. Willingly. They become more flexible.”&lt;/p&gt;

&lt;p&gt;All sorts of claimed benefits: workers who feel heard perform better; patients who feel understood leave the hospital more satisfied and are more likely to follow doctor etc.&lt;/p&gt;

&lt;p&gt;Another variant of claims:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Once we feel understood, we see options we couldn’t see before.&lt;/li&gt;
  &lt;li&gt;We feel some ownership over the &lt;em&gt;search&lt;/em&gt; for solutions. Then, even if we don’t get our way, we are more accepting of the results, because we helped build it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;JF: Is there good evidence for this? Are there ways to test / explore this? This could be a fun one to test with LLM simulations, potentially.&lt;/p&gt;

&lt;p&gt;Interesting idea of having people in conflict practice active listening / looping. Two benefits:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;People realize that they get it wrong more than they thought.&lt;/li&gt;
  &lt;li&gt;People realize that others appreciate being heard.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;things-to-read&quot;&gt;Things to read&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Gary Friedman books on mediation. Mainly: &lt;em&gt;Challenging Conflict: Mediation through Understanding&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Lisa’s book.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Getting to Yes&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Nonviolent Communication&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Difficult Conversations: How to Discuss What Matters Most&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Carl Rogers? Rogers claim according to AI: “Rogers introduced the claim—radical at the time—that accurate empathy and unconditional positive regard don’t just make people feel better; they alter how people think.”&lt;/li&gt;
  &lt;li&gt;Kelman: Interactive problem solving.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>
        <link>http://jeffreyfossett.com/2026/01/15/high-conflict-notes.html</link>
        <guid isPermaLink="true">http://jeffreyfossett.com/2026/01/15/high-conflict-notes.html</guid>
        
        <category>conflict</category>
        
        
      </item>
    
      <item>
        <title>Laptop Sleeve Sewing Notes</title>
        <description>&lt;p&gt;I want to make a simple quilted laptop sleeve for my computer. I have watched a few tutorials to get the general idea of how to make one. For example, &lt;a href=&quot;https://www.youtube.com/watch?v=WiXhFGh9ueg&quot;&gt;here&lt;/a&gt; is a reasonable quilted zipper top one.&lt;/p&gt;

&lt;p&gt;I am not sure exactly which version I would like to make. I know I want to do something quilted/padded, but I might try a few different construction methods to see what I like best. I might also experiment with different sorts of closure methods. Zippers have advantages I guess but for my purposes I think velcro or a button would be fine too. Maybe I’ll start with one of those. There is no rush to do the perfect thing, so I can always try some variants.&lt;/p&gt;

&lt;h2 id=&quot;dimensions&quot;&gt;Dimensions&lt;/h2&gt;

&lt;p&gt;I have a 14 inch macbook pro which measures 12.5” wide by about 9” long (and maybe 0.5” tall). I am not sure exactly how much bigger it is ideal to make case. Maybe I’ll start by adding 1.5” in both directions. It depends on how the seam allowances will be. I guess I will stick with 1/4”.&lt;/p&gt;

&lt;p&gt;So I need to make rectangles of fabric that are 14” by 10.5”. For my first try, I will do a version of what she does in that tutorial. I will make layers of: (1) exterior (denim), (2) batting, and (3) interior fabric (cotton) and quilt them. Then I will sew on the zipper, top stitch, and then do the rest of the seams. The only part I’m not too sure about the best way to do is how to do the zipper nicely.&lt;/p&gt;

&lt;h2 id=&quot;first-pass&quot;&gt;First Pass&lt;/h2&gt;

&lt;p&gt;Here are the first pass results, made from the leftorvers of some old jeans, along with some patterned quilted cotton from my stash (the interior lining is the same as the exterior strip):&lt;/p&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 65%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/2026-01-14-laptop-sleeve-sewing-notes/IMG_4418.jpg&quot; alt=&quot;First pass&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;This version technically works, though is definitely a bit wonky and imperfect; I’m thinking of it as a prototype. A few notes to think about for next time:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;I need to make it larger for my laptop size. Had struggles and it barely fits. So I should add more seam allowance.&lt;/li&gt;
  &lt;li&gt;I didn’t bother finishing the seams inside for now, though I could potentially serge them or add binding. I’m worried about having enough space for the laptop.&lt;/li&gt;
  &lt;li&gt;In general, there’s not a great way to finish the zipper seam though, so doing that differently would be better.&lt;/li&gt;
  &lt;li&gt;Covering the big join seam with the outer bit of lining was decently nice. Pic before that below.&lt;/li&gt;
  &lt;li&gt;I think that the only way to get the quilting lines really straight is to pre-draw them probably with a ruler. Maybe I’ll try that next time, though I don’t hink the curves and slight irregularities look too bad when taken all together. Part of the hand-made quality.&lt;/li&gt;
&lt;/ol&gt;

&lt;!-- Single centered image (responsive via CSS variables) --&gt;
&lt;div class=&quot;post-image-wrap&quot; style=&quot;--img-width: 65%; --img-max-width: 100%;&quot;&gt;
  &lt;p&gt;&lt;img class=&quot;post-image&quot; src=&quot;/figs/2026-01-14-laptop-sleeve-sewing-notes/IMG_4398.jpg&quot; alt=&quot;Before finishing&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Next time I will try soemthing more like &lt;a href=&quot;https://www.youtube.com/watch?v=4WSpJxkH2dw&amp;amp;t=752s&quot;&gt;this&lt;/a&gt; instead, which has a better approach for doing the lining and interior seams I think.&lt;/p&gt;
</description>
        <pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate>
        <link>http://jeffreyfossett.com/2026/01/14/laptop-sleeve-sewing-notes.html</link>
        <guid isPermaLink="true">http://jeffreyfossett.com/2026/01/14/laptop-sleeve-sewing-notes.html</guid>
        
        <category>sewing</category>
        
        
      </item>
    
  </channel>
</rss>
