<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://bauwens.dev/feed.xml" rel="self" type="application/atom+xml" /><link href="https://bauwens.dev/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-09-30T01:20:51+00:00</updated><id>https://bauwens.dev/feed.xml</id><title type="html">Thomas Bauwens</title><subtitle>Official website of drs. ir. Thomas Bauwens.
</subtitle><author><name>Thomas Bauwens</name><email>tbauwenszaken@gmail.com</email></author><entry><title type="html">Why you can’t hack sorting algorithms</title><link href="https://bauwens.dev/posts/explainers/2026-04-01-Hacking-sorting-algorithms/" rel="alternate" type="text/html" title="Why you can’t hack sorting algorithms" /><published>2026-04-01T00:00:00+00:00</published><updated>2026-04-01T00:00:00+00:00</updated><id>https://bauwens.dev/posts/explainers/Hacking-sorting-algorithms</id><content type="html" xml:base="https://bauwens.dev/posts/explainers/2026-04-01-Hacking-sorting-algorithms/"><![CDATA[<p>Having been a teaching assistant for a course on algorithms for three years now, I have encountered several cases of students trying to hack sorting algorithms such that they can outperform the established \(O(N \log N)\) average-case time complexity for arbitrary lists. Here’s why they failed.</p>

<h1 id="hacking-counting-sort">Hacking counting sort</h1>
<h2 id="theory">Theory</h2>
<p>Counting sort is an algorithm for sorting elements from a finite range of size \(R\) which takes only \(O(N+R)\) time regardless of the elements being sorted.</p>

<p>To see why it would possible to sort some lists in better-than-linearitmic time, first consider a list that is just a random permutation of the numbers \(1,2,3,...,N\). To return this shuffled list in sorted form, we could simply output</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
    <span class="k">print</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</code></pre></div></div>
<p>which runs in linear time because it avoids comparisons between elements.</p>

<p>Counting sort extends this to cases where an element appears any amount of times (rather than exactly once), boiling down to</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>  <span class="c1"># O(N)
</span>    <span class="n">counts</span><span class="p">[</span><span class="n">index</span><span class="p">[</span><span class="nb">input</span><span class="p">[</span><span class="n">i</span><span class="p">]]]</span> <span class="o">+=</span> <span class="mi">1</span>

<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">R</span><span class="p">):</span>  <span class="c1"># O(R)
</span>    <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">counts</span><span class="p">[</span><span class="n">i</span><span class="p">]):</span>  <span class="c1"># in total, O(N)
</span>        <span class="k">print</span><span class="p">(</span><span class="n">index</span><span class="err">⁻¹</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</code></pre></div></div>
<p>or equivalently</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">input</span><span class="p">:</span>  <span class="c1"># O(N)
</span>    <span class="n">counts</span><span class="p">[</span><span class="n">index</span><span class="p">[</span><span class="n">value</span><span class="p">]]</span> <span class="o">+=</span> <span class="mi">1</span>

<span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">ordered_range</span><span class="p">:</span>  <span class="c1"># O(R)
</span>    <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">counts</span><span class="p">[</span><span class="n">index</span><span class="p">[</span><span class="n">value</span><span class="p">]]):</span>  <span class="c1"># in total, O(N)
</span>        <span class="k">print</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</code></pre></div></div>

<p>The key condition to be able to run this, is that there exists an <code class="language-plaintext highlighter-rouge">index</code> data structure that <em>pre-defines a total order of all the possible elements in the range.</em> Because if there is a pre-defined total order, comparisons between values have already been done for us: if we are sorting letters, we don’t need to compare <strong>A</strong> to <strong>B</strong> because we already know which one should come first. We just need an <code class="language-plaintext highlighter-rouge">index</code> that stores this knowledge, and then output as many <strong>A</strong>s as we find before outputting as many <strong>B</strong>s as we find.</p>

<h2 id="proposal">Proposal</h2>
<p>What if we just treat the elements in any given list as the range of that list? To find all the possible values in my list, it just needs to be iterated once, in \(O(N)\) time. The counting array will have a range of size \(R= N\)and likely be filled with a count of 1 for an arbitrary list, which we can then sort in \(O(N+R) = O(N+N) = O(N)\) time.</p>

<h2 id="why-it-fails">Why it fails</h2>
<p>We don’t just need a finite range of values. We need an <em>ordered</em> finite range of values. We can know the elements in the list in \(O(N)\) time, but that doesn’t yet give us the order. To get the ordered range, we first need to sort the values we found. So, to sort an arbitrary list in linear time with counting sort, we need to… sort it first.</p>

<h1 id="hacking-lsdmsd-sort">Hacking LSD/MSD sort</h1>
<h2 id="theory-1">Theory</h2>
<p>LSD sort and MSD sort are extensions of counting sort for sequences of counting-sortable elements, where the sequences are compared elementwise (i.e. you compare element by element, and you can stop comparing as soon as you find one pair of elements that is different). For example, since characters are counting-sortable, sequences of characters (strings) are sortable with LSD and MSD sort.</p>

<p>For sequences of equal width \(W\), LSD sort runs a counting sort first on the least important position of the sequence (e.g. the end of a string), then the second-least important, etc… and finishes by counting-sorting the most important position. This takes \(W\) times \(O(N+R)\) and thus \(O(W(N+R)) = O(NW + NR)\).</p>

<p>MSD sort starts with a counting sort of the most important position, and then splits into \(R\) separate MSD sorts for the second-most important position, one for each set of sequences that has an equal value in the most important position. On average, \(\log_R N\) subdivisions are needed, where on the \(i\)th subdivision \(R^i\)counting sorts happen involving \(N/R^i\) elements and thus having complexity \(O\left(\frac{N}{R^i} + R\right)\) each, totalling \(O(N+R^{i+1})\) work for subdivision \(i\) and therefore totalling</p>

\[\sum_{i=0}^{\log_R N - 1} (N+R^{i+1}) = N\log_R N + \sum_{i=0}^{\log_R N - 1} R^{i+1} = N\log_R N + O\left(\sum_{i=0}^{\log_R N - 1} R^{({\log_R N - 1})+1} \right) = O(N\log_R N).\]

<p>Of course, if you run out of positions to compare before reaching sets of size 1, your sort is already finished, and thus really the complexity is limited to \(O\left(N\min(\log_RN,W)\right)\).</p>

<p>Whether LSD and MSD are themselves truly <em>linear</em> sorts depends on how \(W\) behaves as a function of \(N\). If strings stay the same length regardless of how many there are, then both are clearly \(O(N)\). If strings grow just as much as how many there are (\(W = c\cdot N\)), then LSD sort is quadratic and MSD sort is just another linearitmic sort.</p>

<h2 id="proposal-1">Proposal</h2>
<p>Why don’t we treat floating-point numbers as strings and sort them with MSD sort? Since precision is always limited anyway, all floating-point numbers are just strings of digits that can be aligned on the comma and compared digit-by-digit. There are only 10 digits, so \(R = 10\), which is very manageable.</p>

<h2 id="why-it-fails-1">Why it fails</h2>
<p>Actually, for floating-point numbers, it doesn’t fail! Of course, in the case of very long floating-point numbers, MSD is just \(O(N\log N)\). In the case of short floating-point numbers, LSD and MSD sort both do \(O(NW)\) work, and that’s <a href="https://stackoverflow.com/questions/3539265/why-quicksort-is-more-popular-than-radix-sort">a linear-time way to sort floating-point numbers, better than QuickSort</a>.</p>

<p>Yet, the whole point of generic sorting algorithms is that they are built around an abstract <code class="language-plaintext highlighter-rouge">less(x,y)</code> operator, where the implementation, and thus the data type of the list elements, can be as complicated as you want. So MSD is not a linear-time replacement for the use-cases QuickSort, MergeSort and HeapSort were designed for, but it <em>is</em> when just integers or floats are being sorted.</p>

<p>This is not some trick. The assumption that we are <em>not</em> sorting numbers is actually very much built into the way we analyse time complexity. All of the algorithms built around <code class="language-plaintext highlighter-rouge">less(x,y)</code> comparisons include plenty of numerical comparisons that are never counted. For example, consider Hoare partitioning in QuickSort:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">pivot</span> <span class="o">=</span> <span class="nb">input</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">i</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">j</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">input</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span>
<span class="k">while</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">j</span><span class="p">:</span>
    <span class="k">while</span> <span class="n">less</span><span class="p">(</span><span class="nb">input</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">pivot</span><span class="p">):</span>
        <span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
    <span class="k">while</span> <span class="ow">not</span> <span class="n">less</span><span class="p">(</span><span class="nb">input</span><span class="p">[</span><span class="n">j</span><span class="p">],</span> <span class="n">pivot</span><span class="p">):</span>
        <span class="n">j</span> <span class="o">-=</span> <span class="mi">1</span>
    <span class="k">if</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">j</span><span class="p">:</span>
        <span class="n">swap</span><span class="p">(</span><span class="nb">input</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">)</span>
        <span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
        <span class="n">j</span> <span class="o">-=</span> <span class="mi">1</span>
<span class="n">swap</span><span class="p">(</span><span class="nb">input</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">j</span><span class="p">)</span>
</code></pre></div></div>

<p>How many comparisons happen in this algorithm? Ordinarily, unless the final swap inside the loop causes <code class="language-plaintext highlighter-rouge">i &gt;= j</code>, Hoare partitioning is cited as taking an exact amount of \(N+1\) comparisons, since all \(N-1\) non-pivot elements are compared to the pivot exactly once in all cases except the \(2\) elements at the boundary between the left and right half, which are each compared a second time. We are so exact that we track even just +1 comparison explicitly. And yet, whenever the outer loop happens, <code class="language-plaintext highlighter-rouge">i</code> is compared to <code class="language-plaintext highlighter-rouge">j</code>. The outer loop could run for up to \(N/2\) iterations in case both loops terminate immediately on their first check (i.e. the list starts out with a layout where the left half exists entirely on the right, and the right half on the left). But we don’t say Hoare is \(N + 1 + N/2\) in the worst case. We say it is \(N+1\) in the worst case. <em>Comparing numbers fundamentally does not interest us.</em> And so, MSD sort, which works better for numbers, is not cited as a superior algorithm to QuickSort.</p>

<h1 id="hacking-bucket-sort">Hacking bucket sort</h1>
<h2 id="theory-2">Theory</h2>
<p>Bucket sort is a kind of single-step MSD sort. First all items are partitioned into \(k\) sets which have a known ordering between them, and then each bucket is sorted internally. There are four conditions for using bucket sort as a linear sorting algorithm: (1) the amount of buckets has to scale up linearly with \(N\), (2) computing which bucket an element belongs to must be \(O(1)\), (3) each bucket must be equally probable, and (4) the buckets must have a total ordering between them. The last condition guarantees correctness, i.e. that we can concatenate sorted buckets and have one large sorted result. The first three conditions guarantee linear time complexity: let there be \(k\) buckets, then first \(O(N)\) work is done to put each element in a bucket, which will give buckets of size \(N/k\). Then each of those is sorted with another algorithm which is linearitmic in the general case (if it is already linear, you don’t need bucket sort), costing</p>

\[O\left(\frac Nk\log\left(\frac Nk\right)\right)\]

<p>per bucket and thus</p>

\[O\left(N\log \left(\frac Nk\right)\right)\]

<p>total. When \(k = f\cdot N\) with \(f \in [0,1]\) a constant, the logarithmic factor becomes constant and thus</p>

\[O\left(k\cdot \frac{N}{k} \log \left(\frac{N}{k}\right)\right) = O\left(N\log\left(\frac{1}{f}\right)\right) = O(N).\]

<h2 id="proposal-2">Proposal</h2>
<p>For numbers, why not always apply bucket sort? Just find the length \(N\), the minimum \(m\) and the maximum \(M\) of your list in \(O(N)\) time, then define \(k = f\cdot N\) buckets by splitting \([m,M]\) into sub-intervals of size \((M-m)/k\). To find the bucket an input number \(x\) belongs to, we map it to a relative position on the interval \(x' = (x - m)/(M-m)\) and then use that to see how far along the \(k\) buckets we are, putting the input in bucket \(i = \lfloor x'\cdot k\rfloor\) (which we manually set to \(k-1\) when \(i = k\)).</p>

<h2 id="why-it-fails-2">Why it fails</h2>
<p>Indeed, although the amount of buckets scales up with \(N\), the mapping is \(O(1)\) and the buckets are ordered, the buckets are not equally probable in the general case. The worst case of bucket sort is that a small amount of buckets \(b\) dominates the rest, which happens for basically all non-uniform distributions of numbers (e.g. a normal distribution, which occurs a lot more than uniformly random numbers in practice due to the central limit theorem). In that case, the cost of sorting is really just</p>

\[O\left(b\cdot\frac Nb \log\left(\frac Nb\right)\right) = O\left(N\log \left(\frac Nb\right)\right) = O(N\log N)\]

<p>which is the same cost as sorting a single bucket with all the elements inside and thus not having buckets at all.</p>

<p>Of course, we could define the bucket boundaries not uniformly spaced, but spaced according to the known distribution of the numbers, using quantiles. But then it is no longer a general-purpose algorithm for any set of numbers. (And indeed, we can’t even deduce empirical quantiles from the numbers, because that first requires sorting them.)</p>

<h1 id="hacking-k-ary-merge-sort">Hacking k-ary merge sort</h1>
<h2 id="theory-3">Theory</h2>
<p>Merge sort splits the list to be sorted into a binary tree of \(\log_2N\) layers which progressively reshuffle the list to become more and more sorted. Each element at the end of such a reshuffle was the maximum of 2 elements, which takes \(1 = 2-1\) comparisons to figure out. Thus, the complexity is
\(O((2-1)\cdot N\cdot \log_2 N) = O(N\log_2 N).\)
The same logic holds when we replace “2” by “\(k\)” above. The tree becomes shallower since each sublist is not \(1/2\) of the length of the list being split, but \(1/k\). At the same time, each layer is now more expensive, since each element now has to be the maximum of \(k\) elements, which takes \(k-1\) comparisons. The complexity is then \(O((k-1)\cdot N\cdot \log_k N)\).</p>

<h2 id="proposal-3">Proposal</h2>
<p>Use \(k\)-ary merge sort with \(k\to N\) so that the tree becomes as shallow as possible.</p>

<h2 id="why-it-fails-3">Why it fails</h2>
<p>There will be only one layer in the tree, where every element is the maximum of \(N\) elements. This is just selection sort, and indeed then the complexity simplifies to \(O((N-1)N \log_N N) = O(N^2)\).</p>

<p>One could wonder what the optimal \(k\) is, then. Converting \(\log_kN = \ln N/\ln k\) the optimal \(k\) would be the solution to</p>

\[0 = \frac{\textrm d}{\textrm d k}\Big((k-1)\cdot N\cdot \log_kN\Big) = N\ln N\cdot\frac{\textrm d}{\textrm d k}\left(\frac{k-1}{\ln k}\right) = N\ln N\cdot\frac{\ln k - (k-1)/k}{(\ln k)^2}\]

<p>and since \(k\geq 2\), this can be simplified to
\(k\ln k = k-1\)
which has no solutions for \(k \geq 2\). (Interestingly, if the \(-1\) hadn’t been there, the solution would’ve been \(k=e\).) Indeed, the complexity function is monotonously increasing with \(k\), and the most optimal value in the allowed range of \(k \in [2,N]\) is already the classic \(k=2\).</p>]]></content><author><name>Thomas Bauwens</name><email>tbauwenszaken@gmail.com</email></author><category term="posts" /><category term="explainers" /><category term="Compsci" /><summary type="html"><![CDATA[An overview of clever student proposals to sort faster than N log N, and why they fail.]]></summary></entry><entry><title type="html">Dance is talking.</title><link href="https://bauwens.dev/posts/tutorials/dancing/2026-03-15-Dance-is-talking/" rel="alternate" type="text/html" title="Dance is talking." /><published>2026-03-15T00:00:00+00:00</published><updated>2026-04-27T00:00:00+00:00</updated><id>https://bauwens.dev/posts/tutorials/dancing/Dance-is-talking</id><content type="html" xml:base="https://bauwens.dev/posts/tutorials/dancing/2026-03-15-Dance-is-talking/"><![CDATA[<p>I recently wrote about an essential mindset for how to move your legs in partner dances: <a href="https://bauwenst.github.io/posts/tutorials/dancing/2025-10-11-Dance-is-walking/">dance is walking</a>, a lamentably absent lesson in dance schools. But of course, dance is more than leg mechanics. As will become clear in this article, everything that is not leg mechanics can be captured by all the senses of one word: <strong>frame</strong>. And indeed, if a dance schools treats frame as an afterthought, it hardly teaches anything about dancing at all.</p>

<ol id="markdown-toc">
  <li><a href="#mechanics" id="markdown-toc-mechanics">Mechanics</a></li>
  <li><a href="#dance-is-a-conversation" id="markdown-toc-dance-is-a-conversation">Dance is a conversation</a></li>
  <li><a href="#physical-frame-tension-and-pressure" id="markdown-toc-physical-frame-tension-and-pressure">Physical frame: tension and pressure</a>    <ol>
      <li><a href="#calibrated-counterforce" id="markdown-toc-calibrated-counterforce">Calibrated counterforce</a>        <ol>
          <li><a href="#anatomy" id="markdown-toc-anatomy">Anatomy</a></li>
          <li><a href="#stable-contact-points" id="markdown-toc-stable-contact-points">Stable contact points</a></li>
          <li><a href="#dont-overdo-it" id="markdown-toc-dont-overdo-it">Don’t overdo it</a></li>
          <li><a href="#life-cycle-of-a-signal" id="markdown-toc-life-cycle-of-a-signal">Life cycle of a signal</a></li>
        </ol>
      </li>
      <li><a href="#open-frame-one-point-of-contact" id="markdown-toc-open-frame-one-point-of-contact">Open frame: one point of contact</a>        <ol>
          <li><a href="#locked-hinges-not-épaulement" id="markdown-toc-locked-hinges-not-épaulement">Locked hinges, not épaulement</a></li>
          <li><a href="#the-90-degree-rule-not-stretched-arms" id="markdown-toc-the-90-degree-rule-not-stretched-arms">The 90-degree rule, not stretched arms</a></li>
          <li><a href="#easy-tests" id="markdown-toc-easy-tests">Easy tests</a></li>
          <li><a href="#pushing" id="markdown-toc-pushing">Pushing</a></li>
        </ol>
      </li>
      <li><a href="#closed-frame-two-points-of-contact" id="markdown-toc-closed-frame-two-points-of-contact">Closed frame: two points of contact</a>        <ol>
          <li><a href="#purpose" id="markdown-toc-purpose">Purpose</a></li>
        </ol>
      </li>
    </ol>
  </li>
  <li><a href="#mental-frame-intention-and-attention" id="markdown-toc-mental-frame-intention-and-attention">Mental frame: intention and attention</a>    <ol>
      <li><a href="#leading-frame" id="markdown-toc-leading-frame">Leading frame</a></li>
      <li><a href="#following-frame" id="markdown-toc-following-frame">Following frame</a></li>
      <li><a href="#what-happens-when-these-are-not-embodied" id="markdown-toc-what-happens-when-these-are-not-embodied">What happens when these are not embodied</a></li>
      <li><a href="#solo-frame-zero-points-of-contact" id="markdown-toc-solo-frame-zero-points-of-contact">Solo frame: zero points of contact</a></li>
    </ol>
  </li>
  <li><a href="#conclusion" id="markdown-toc-conclusion">Conclusion</a></li>
</ol>

<!-- 2025-10-28 above -->

<h1 id="mechanics">Mechanics</h1>
<p>This is the second article I’ve written about the <strong>mechanics</strong> of partner dances like <a href="https://sonycasino.com">son and casino</a>. Mechanics are the raw tools which are used to build a dance, but are themselves not particularly associated with any dance. I would say there are three domains of mechanics in partner dance: how to use your legs, how to hold frame, and how to parse instruments in music. Mechanics are like the skill of paint mixing: any painter has to learn how to combine paint colours to get the ones he needs, but knowing how to mix paint doesn’t suggest what to paint or what style to paint in. It is necessary – in fact, it is more necessary than anything else – but not sufficient.</p>

<p>In my opinion, a proper dance school should start its curriculum with several classes on mechanics, before teaching anything about figures. Currently, <em>figure-first education</em> is far more widespread than <em>mechanics-first education</em>, and it results in people who “know” a lot (depending on your definition of “knowing”) without being able to execute any of it well. The more intelligent dancers may or may not eventually teach themselves proper mechanics from year(s) of social practice and feedback, tuning their signals for each figure and then generalising across those to deduce what they should’ve been taught from day one. Figure-first education is very reminiscent of <a href="https://en.wikipedia.org/wiki/Phonics#The_Reading_Wars_%E2%80%93_phonics_vs._whole_language">whole-language learning</a>, where, in contrast to teaching how words are built up using phonics, students are taught to read by simply memorising entire words on sight, like pre-packaged blobs of meaning that apparently don’t consist of building blocks.</p>

<!-- 2026-03-15 below -->
<h1 id="dance-is-a-conversation">Dance is a conversation</h1>
<p><strong>Frame</strong> has very broad and very narrow interpretations and I will switch between them in this article. In the broadest sense, <em>frame is the medium of the dance.</em> Frame comprises every force and every thought that exists only because of the dance. It is in the frame where the actual dance itself exists. In contrast, if you just let two people “vibe-dance” on a dance floor and have them hold hands, the partner dance doesn’t exist anywhere, because there is no aspect of broad-sense frame.</p>

<p>Frame in the very narrowest understanding is purely about physical posture in a closed position. Yet, not only are there more physical frames (necessarily, because if there was no frame in open position, there could be no dance in open position), there are also very important mental frames without which the dance will not work out.</p>

<h1 id="physical-frame-tension-and-pressure">Physical frame: tension and pressure</h1>
<p>The leader has to be able to communicate what he wants to do. Since he can’t transfer his message over the air using his voice, he has to transfer his message through points of contact where tension and pressure are exchanged.</p>

<h2 id="calibrated-counterforce">Calibrated counterforce</h2>
<p>The most important take-away about physical frame is that <em>physical frame is a two-person effort.</em> I will give concrete examples of this below, but the core idea is as follows.</p>

<p>A <strong>signal</strong> is a physical force that instructs the follower where to walk or how to turn. For such a force to be <strong>clear</strong>, four things need to be true: it should apply to the follower’s chest, it should be maintained for long enough, it should be strong enough in absolute terms, and it should be strong enough relative to the baseline frame.</p>

<h3 id="anatomy">Anatomy</h3>
<p>Dancers connect to each other via their arms. For the purposes of signals, a human really only consists of four pieces: a forearm, an upper arm, a torso, and legs. These four pieces are respectively connected over three hinges: the elbow, the shoulder, and the waist. The legs are fixed in space due to friction with the ground, whilst the other three parts (torso, upper arm, lower arm) will move around their hinges when forces are applied to them unless certain muscles are activated.</p>

<h3 id="stable-contact-points">Stable contact points</h3>
<p>It should be obvious that a weak force cannot be a clear signal, because the follower <em>just doesn’t feel it</em>. So, you need to apply a force that is strong by itself.</p>

<p>A force strong enough so that a follower can feel it, is certainly strong enough to move a body part around its hinge. When the follower has no/weak/loose frame and the leader applies such a force, it will merely move its point of contact rather than travelling to the chest. This is a problem for two reasons: first, because it is the chest (i.e. the solid part of the body connected to the ribcage, starting at the waist and going up to the shoulder sockets) where force is felt clearest, and second, because a strong force cannot be applied to a movable body part for long enough before it locks out and the entire force changes.</p>

<p>Without good follower frame, the leader could yank on the follower’s hand and it would indeed accelerate quickly towards him, but this would stop once her arm is extended. Therefore, <em>it is the responsibility of the follower to apply a <strong>counterforce</strong> at the points of contact with the leader to keep them in-place.</em> When the points of contact stay in-place, forces can be applied to them indefinitely. And, since the only way to keep the points of contact in-place is to brace the three hinges, signals will necessarily travel through the elbow, through the shoulder, and not be lost at the waist.</p>

<p>If she doesn’t do this, the leader has no communication channel to send her signals. No counterforce means no medium. No medium means no dance.</p>

<h3 id="dont-overdo-it">Don’t overdo it</h3>
<p>So, should the follower be rock-solid the whole time? Should she pull herself forward on the leader’s arm? Or should she exaggerate her counterforces to make clear that she is not someone with loose frame? <strong>No!</strong> Not only will she make herself and her leader physically tired (and even cause injuries), but also, she will likely have more difficulty receiving signals. This is because of <a href="https://en.wikipedia.org/wiki/Weber%E2%80%93Fechner_law">the Weber-Fechner law</a>: the larger the baseline force she applies, the larger the increase in force will be needed to make her feel a difference.</p>

<p>Instead, a follower should <strong>calibrate</strong> her counterforce: when the leader initiates contact, she should start increasing her pulling/pushing force (which one depends on the kind of contact point) until each contact point is not moved by the leader anymore, <em>and she should stop there.</em></p>

<h3 id="life-cycle-of-a-signal">Life cycle of a signal</h3>
<p>When the leader starts a signal, the follower’s body, trying not to move the contact point, will increase the counterforce she applies there. At some point, she notices this happening in her shoulder (“Okay, now I’m definitely applying more force than before, this is not just an accident.”) and starts moving according to the signal.</p>

<p>Eventually the goal of the signal is achieved, and a new signal will be given. In principle, it should be possible to smoothly fade from one signal into the other, never breaking frame. Frame stays, and signals (with different directions and magnitudes) ride on top of it.</p>

<p>For example, when leading an <em>enchufla</em>, the first bar is signalled counterclockwise over her head, and the second bar is signalled clockwise between the couple. The transition happens when the hand is coming down on 3 or 4, so that the follower can react on 5. One of the things you may notice in practice is that you have more trouble leading the second bar than the first bar, and the reason for this is frame. Beginner followers regularly break frame when reorienting themselves after a turn.</p>

<h2 id="open-frame-one-point-of-contact">Open frame: one point of contact</h2>
<p>The position in which it is easiest to distinguish good frame from bad frame as described above, is that which has only <em>one</em> point of contact and wherein the couple is an arm’s length apart, holding just one hand (in casino’s <em>posición abierta</em> and sometimes <em>posición caída</em>, this is either of the leader’s hands holding the follower’s right hand). This is an <strong>open frame</strong>. Surprisingly, I have personally only ever witnessed one teacher explicitly explain that “frame” applies to open positions just as much as to closed positions (see below).</p>

<p>An open frame is mediated through <em>pulling</em> force, a.k.a. <em>tension</em>. Below are some guidelines for upholding this tension. These principles still hold when dancing with two hands held, mainly because only one of the two hands actually applies tension to lead the follower’s movement.</p>

<h3 id="locked-hinges-not-épaulement">Locked hinges, not épaulement</h3>
<p>As described above, three hinges need to be locked for the frame to work.</p>

<p>If the elbow and shoulder are not engaged, the arm can elongate and the signal can never reach the chest. If the elbow is engaged but not the shoulder and waist, the torso rotates around its axis and the shoulder of the hand being held comes to the foreground. In ballet, this is called <em>épaulement</em> (“shouldering”) and although it is desirable there, it is detrimental to the communication speed in dance, because then the signal can only arrive once the follower’s chest has rotated a full 90° or 180°. (This is is why ballerinas potentially struggle learning open frame, which happened to a friend of mine who learnt casino from me.)</p>

<h3 id="the-90-degree-rule-not-stretched-arms">The 90-degree rule, not stretched arms</h3>
<p>The best guideline for open frame is that both leader and follower should try to keep their elbow at a 90° angle. Then, all of the principles above should be applied: <em>do not</em> just flex the arm to have it stay rigid at 90°. You can hold your arm up at a 90° angle without flexing. Do this, and only apply counterforce to keep the hand in the same location.</p>

<p>There are exceptions to this rule: in particular, when the follower is led around the leader, she likely has to extend her elbow to have more space. She should <em>not do this proactively</em>, i.e. preemptively extend her elbow when there is still room not to do so.</p>

<p>Actively extending the elbow is always bad. Notably, it is even worse for leaders than it is for followers to have a permanently stretched arm: as Luis Duarte once remarked during a workshop, no leading can happen through a stretched arm. (We can be a little more precise: it is impossible to create frame with appropriate tension for a leader who <em>keeps a stretched arm stretched</em>, and it is impossible to receive frame for a follower who <em>does not keep a stretched arm stretched</em>.<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> In any case, for the purposes of positioning, neither should stretch the arm because it will cause too much distance and will obviously inhibit turns.)</p>

<h3 id="easy-tests">Easy tests</h3>
<p>There are two easy tests you can run to see if you and your follower understand the above principles: you should be able to make your follower walk towards you (e.g. doing a <a href="https://youtu.be/-AGnAEdGoQ8?t=12"><em>reina</em></a> on a <em><a href="https://bauwenst.github.io/posts/tutorials/dancing/2025-08-06-Casino-desplazamientos/">caminala</a></em>), and you should be able to turn her clockwise by her right hand, with no delay, confusion or brute force.</p>

<!-- 
- A follower applying no tension and solely stretches her arm out, can generate counterforce using her feet. However, if she ever unstretches her arm, she must start pulling, so arguably this is a useless extremum.
- Technically, it is also possible to lead _from_ a stretched arm (think of activating your biceps on a heavy dumbbell curl: the dumbbell won't move but will feel you try), but I don't believe any real person exists who manages to keep his arm straight throughout a whole figure (e.g. all 8 counts of an enchufla) whilst somehow managing to give enough signal. The only way this is possible is by flexing triceps + moving backwards, and without that, flexing forearm + moving in very weird ways through space that accidentally provide an external extending force on your elbow joint.
- Leaders generate tension while staying stationary, and it is impossible to try to keep your arm stretched while also trying to flex it (the only way to bring her closer without moving your centre). Leaders pull by flexing (and in rare cases, extending) the forearm around the elbow joint, which is impossible to do when the arm is not just stretched but also actively being extended.
-->

<h3 id="pushing">Pushing</h3>
<p><em>Push</em> signals in an open frame, rather than <em>pull</em> signals, are reserved for dances like West-Coast swing, not casino. You should not push your follower away when preparing an exhibela, since she is supposed to be walking forwards. And if you prepare for a vacilala by dramatically pushing on the follower with your right hand, I can guarantee you that followers wish you weren’t so rough and unclear with them.</p>

<p>(For completeness: a block, like the one done in <a href="https://www.instagram.com/p/DSOiDfkCAto/">this video at 1:09</a>, does not count, since it does not instruct the follower to go anywhere. Similarly, the push in a guapea does not count as a signal, but anyway, <a href="https://bauwenst.github.io/posts/tutorials/dancing/2025-01-19-Casino-without-guapea/">you will go to hell</a> if you do it.)</p>

<h2 id="closed-frame-two-points-of-contact">Closed frame: two points of contact</h2>
<p>In a <strong>closed frame</strong> (in casino, this applies to <em>posición cerrada</em> and sometimes also <em>posición caída</em>), there are two points of contact:<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> one is at the base of the leader’s left and follower’s right hand, the other is at the elbow of the leader’s right and follower’s left arm.</p>

<p>Both of these contact points should apply a <em>pushing</em> force, i.e. <em>pressure</em>. The contact point at the hand applies forward-backward pressure. The contact point at the elbows applies upward-downward pressure: the leader pushes up and the follower calibrates a downward push.</p>

<p>It is more difficult to teach the principles of frame using this closed frame, because if it is done incorrectly, it may still <em>look</em> the same as when it is done correctly. It is much more difficult to fake good open frame.</p>

<h3 id="purpose">Purpose</h3>
<p>You may wonder what the purpose of upward pressure is. After all, the leader isn’t trying to signal to the follower that she should fly. The purpose of upward-downward pressure is actually to open a channel for leftward-rightward or forward-backward forces. <a href="https://en.wikipedia.org/wiki/Friction#Dry_friction">Coulomb’s law of dry friction</a> says that when two objects touch and a force is applied to only one of them, the magnitude required to make the objects <em>slide</em> in any direction along each other rather than <em>sticking together</em> and moving as one big object, is proportional to the existing force perpendicular to it. In other words: when you press together two objects hard enough, they behave as one object. In our case, the more up-down pressure the couple has at the elbow, the more violently the leader would need to move his elbow side-to-side to slip away from under the follower’s elbow. And so, the more upward-downward force there is at the elbow, the more room the leader has for applying strong leftward-rightward and forward-backward signals.</p>

<p>There can’t be any signal, not even for a short amount of time, when the elbows slip. The biggest mistake beginner followers make in closed position, then, is making the threshold for slipping too small, by having no or loose frame at the elbow. Some beginners hold a rigid arm, but hover it over the leader’s elbow, sometimes even with a gap, and clearly there can be no communication then. Other followers rest their elbow on the leader’s, but when he then tries to move his elbow upward to provide his end of the frame, she doesn’t apply any counterforce and just lets her elbow move up with his.</p>

<p>The biggest mistake “advanced” followers make in closed position, is to apply even more force than is needed to keep the connection on the leader’s strongest possible signal. In my experience, these women either lack grace in general, or they have some kind of desire to dominate the men on the dance floor. Indeed, if she exaggerates the forces in her frame, the leader can either literally be pushed over, or he can calibrate himself: this unnecessary for his leading, it is tiring for both, it reduces sensitivity to signals due to the Weber-Fechner law, and most importantly, it means <em>the follower is leading</em> because the leader is calibrating himself to her signals.</p>

<p>Note that the contact point at the hand is also used for forward-backward and leftward-rightward signals, except only one of them is mediated by friction and the other is direct pushing.</p>

<!-- 2026-03-15 above -->

<!-- 2026-04-11 below -->

<h1 id="mental-frame-intention-and-attention">Mental frame: intention and attention</h1>
<p>The dance takes place not only inside a physical frame, but also in a mental frame. As I’ll describe below, mental frame is not just some vague mindset like “be happy” nor is it about musicality or planning. This article is about <em>mechanics</em>, not about <em>models</em>, and without these mental frames there is no point trying to execute any amount of figures.</p>

<h2 id="leading-frame">Leading frame</h2>
<p>Firstly, the leader should feel <strong>responsible</strong>. Not just for his follower’s safety, but for making her time worthwhile. For the dance to be interesting, it is the leader who must, of his own accord, interpret the music and plan the progression of the dance. He should feel like this is his duty; there <em>should</em> be pressure to perform. The danger of teaching leaders something like “the basic step” is that they never develop this responsibility. They will think it is appropriate to be unassertive and plan nothing at all.</p>

<p>Secondly, like elsewhere in life, leading is only possible in a <strong>decisive</strong> mental frame. It’s one thing to make a plan, but it is useless to have a plan without also committing to every step. There is no room for indecision. There is no room for self-doubt. There is no room for delegation. There is no room for permission-seeking: it is not <em>“Do you want to do something like thi- or uh, something like that, maybe?”</em> but rather <em>“<strong>We</strong> will do <strong>this</strong> thing <strong>now</strong>.”</em> A leader who is not decisive will give ambiguous, weak signals: either he doesn’t dare to instruct a woman because he was conditioned to think this is imposing and oppressive, or he is afraid to choose between multiple possible options (and therefore gives a mix of all of their signals) because he is scared to be judged negatively by the woman in front of him, assuming he may make the wrong choice from her perspective.</p>

<p>Thirdly, the leader should be <strong>timely</strong>. A decisive leader may be committed to his plan, but if he only reveals it to the follower when she should already be moving, he is setting her up to fail. To make a follower walk somewhere or turn her, tension should be applied at least 2 counts beforehand. If you ask maleducated casino dancers when an <em>enchufla</em> or a <em>prima</em> starts, they will tell you it starts on 1, or maybe on 2. But it does not. It starts on 7 of the last bar, transitioning smoothly from the tension of the previous figure.</p>

<p>Lastly, the leader should <strong>guide, not puppeteer</strong>. The follower is not an extension of the leader. She should not be dragged around forcefully like a ragdoll. She should be guided so that she can move autonomously. For example, there is a very big difference between clearly and decisively signalling that the follower should make a counterclockwise turn, versus just forcefully pushing her right arm over her left shoulder, which is very typical of bad leaders.</p>

<p>And, by the way, the above qualities of a good dance leader can be readily mapped to the qualities of desirably masculine men in a relationship context.</p>

<!-- 2026-04-26 -->

<h2 id="following-frame">Following frame</h2>
<p>As touched on above, physically, the follower should calibrate the force she applies to the leader’s frame, not make the leader calibrate himself to her desired level of force.</p>

<p>Mentally, a good follower is <strong>surrendering</strong> first and foremost. She accepts that she is being led by someone else and does not decide in his place what the couple does next. She does not change the instruction into a completely different one just because she wanted to do the other thing. The only reason a follower would not surrender to her leader, is that she trusts herself much more than she trusts him, which either reflects poorly on the leader, or, equally often, her massively inflated ego. And seriously, from the point of view of a leader, a follower looks like a complete circus clown when she starts moving hands to give herself signals to turn. You don’t decide. It’s not your place.</p>

<p>Secondly, the follower should be <strong>actively engaged</strong>. Because indeed, someone who surrenders merely doesn’t do what she wants to do, but that doesn’t mean she does anything. If she does not use her own muscles to follow the signal, she more or less compels her leader to manhandle and puppeteer her. Such a dance will look like she is being forced against her will, violently dragged from one place to another. Instead, she should hold frame, and act on the signals in the frame by using her own muscles. The unengaged follower and the brutalistic leader often find each other on the dance floor, under the misconception that forces in the frame are meant to accelerate the follower. No. It is not the leader’s arm that gives the follower speed. It is the follower’s legs and feet. The leader acts <em>not</em> as the power generator, but as a <a href="https://en.wikipedia.org/wiki/Relay#Applications">relay system</a> that instructs a much stronger system to generate power.</p>

<p>Thirdly, the follower should be <strong>attentive</strong> to what is communicated to her, rather than anticipating a signal. For example, in casino, perhaps the most obvious anticipatory blunder that shows up in beginner followers is as follows: when the leader performs a <a href="https://www.youtube.com/watch?v=NpMtwjWGDfo">coronala in caída</a>, followers often anticipate that they should (have) turn(ed) clockwise over their right shoulder. Either they will do a full turn, or they will lead themselves into some kind of mirror image of Kentucky, turning themselves half a turn clockwise to the leader’s left on 8 (since the coronala happens around 7). Except, no leader would ever lead that. Not only because there are no more counts left in the bar, but also because there exists no mirror image of enchufla or Kentucky, since casino has chirality. Indeed, this is a figure that <em>exists entirely in the hallucination of followers</em>. The leader merely draped the follower’s hand on her shoulder, with no rotational impulse; the fact that she turns on 8 means that she stopped listening to the connection, hallucinated a signal that wasn’t there, and overrode the leader’s instruction with her own imagination. Sometimes, it is done out of hubris, essentially telling the leader <em>“you probably meant this, you just didn’t lead me correctly”</em>. The majority of the time, it is a panic response due to loss of frame. The attentive follower would feel tension in her right arm.</p>

<h2 id="what-happens-when-these-are-not-embodied">What happens when these are not embodied</h2>
<p>The reason why these mindsets are so important that I consider them part of mechanics, is that when the leader and follower do not keep these respective roles in mind, the dance falls apart.</p>

<p>The most common role failure you will find on the dance floor, is leaders failing to embody the mental frame of a leader. Such a bad leader is recognisable as a <strong>whimp</strong>: he lacks masculinity, and is therefore hesitant to guide, which prevents the follower from properly executing her role. He crumbles under the responsibility of planning an interesting dance. You ask him to plan an interesting sequence and he can’t do it. You ask him to give a clear signal, and he can’t do it, for either of the reasons I gave above: fear of being too controlling, or fear of not pleasing the woman with his choices.</p>

<p>Less common, but equally bad, are followers who refuse to allow the man to determine the course of the dance. Such a follower is a <strong>control freak</strong>: she has too much entitlement and masculinity and therefore she starts sending signals through the frame to either lead herself, or to lead the leader. This is known as <em>backleading</em>, and it can be described as many things: the follower counteracting and rejecting the forces applied by the leader, mixed signals existing on the same channel and thus leading to unintelligibility, the follower talking over the leader rather than listening, the couple trying to execute two different figures at the same time (which is impossible), and so on. This sets both dancers up for disappointment: the follower will be disappointed because the leader does not go along with her lead and doesn’t manage to lead a good dance, which in turn is frustrating to the leader because the dance he <em>was</em> leading was not executed properly, making him look bad despite the follower’s mindset being outside of his control.</p>

<p>And again, I should point out that these behaviours map to relationships. Unpleasant ones, this time. Do not be a whimp. Do not be a control freak. Learn to be a masculine man and a feminine woman.</p>

<h2 id="solo-frame-zero-points-of-contact">Solo frame: zero points of contact</h2>
<p>Everything in this section is technically optional for a <em>partner</em> dance, although it fits in the rest of this article and will still make the dance better. In</p>

<p>Firstly, it is important that the entire body is part of the dance. A hand that is not held by the other person (in one-handed holds or when dancing solo) should still be part of the dance. <strong>Body frame</strong> is therefore at the intersection of physical frame and mental frame: every body part should at the very least be aware of the dance, for example by keeping enough muscles engaged to hold up each free arm, instead of letting it hang by your side. Even better would be to add intentional movement to every body part, although this requires coordination that is trained over much longer time.</p>

<p>Secondly, when the couple has broken up into two solo dances and the <em>intention</em> to lead and follow no longer applies, they should still pay <em>attention</em> to each other. What this entails is sort of vague, but it comes down to something like <em>“don’t show off in such a way that it wouldn’t matter if the other person was there or not”</em>.</p>

<p>When leader and follower are solo dancing, it is definitely true that both have equal say until the moment at which the leader decides to re-establish the couple. It is also true that “paying attention” does not just mean “mirroring”, because that would not really be a solo, and also, it is impossible for two people to mirror each other at the same time. So, usually, one person sets a frame, and the other accepts or rejects it, like a call-response structure.</p>

<p>For example, the follower may start some intricate solo involving front crossing, and the leader may respond with a Suzie Q step to tell her “I see you, and I can do something like that too!” Later on, the leader could start advancing towards the follower with a <em>yuka</em> step, while the follower starts a <em>rumba</em> basic. If both keep dancing their respective step, they are disconnected, and this is not good. In such a case, one of them will organically decide to abort what they were doing and either step into the frame of the other, or make an alternative proposal. In the example, the follower may cede to the leader since he reciprocated her before, or the leader may abort his yuka and start dancing rumba if he is in the mood for it. If she insists and, for example, dancing rumba is just not appropriate at that time in the music, he could initiate a cajón step by passing her on his right, and re-evaluate if she will now give up and step into his frame.</p>

<h1 id="conclusion">Conclusion</h1>
<p>Frame is the medium of the dance. It is the mechanism of communication between the two dancers. Physical frame allows the leader to apply sufficiently strong and prolonged tension so that the follower feels in her core where to go next. Hence, the frame is maintained by the follower at each point of contact using calibrated counterforce and by locking the hinges that could prevent the signal from reaching her core.</p>

<p>Mental frame requires the leader to be decisive and timely, and requires the follower to be attentive and surrendering. Leaders who lack the masculinity to assert their will, cannot produce clear signals nor an interesting dance. Followers who lack the femininity to cede control, will sabotage the enjoyment of both.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>For leaders this is because they generate tension exactly by flexing the elbow, which is impossible when extending it. For followers this is because when all the hinges are at their extremes (épaulement with a stretched arm), a pulling force at the hand is guaranteed to travel to the feet and thus she will feel the signal, but it is difficult to know when the signal has achieved its purposes if the distance between a follower’s hand and her body varies during the signal. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>It is sometimes taught that there are <em>four</em> points of contact in closed position, not two, namely each person’s free hand on the other person’s shoulder blade. Whilst that may be a good resting position, it is unnecessary for those hands to touch the other person. As far as communication goes, the leader is not communicating anything with his shoulder blades, so the follower’s hand will not receive any signals at that point of contact. The leader’s hand on the back of the follower may help apply a sideways force if the follower doesn’t understand that she should move sideways, but this would really be to forcefully drag her if she isn’t acting on the signal at the elbow by her own volition. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Thomas Bauwens</name><email>tbauwenszaken@gmail.com</email></author><category term="posts" /><category term="tutorials" /><category term="dancing" /><category term="salsa" /><category term="casino" /><category term="son" /><summary type="html"><![CDATA[A second article on mechanics, all about the biomechanics of physical frame, and the psychology of good dancers.]]></summary></entry><entry><title type="html">What is my package’s minimal Python version?</title><link href="https://bauwens.dev/posts/tutorials/programming/2026-03-03-Python-package-minimal-version-features/" rel="alternate" type="text/html" title="What is my package’s minimal Python version?" /><published>2026-03-03T00:00:00+00:00</published><updated>2026-03-03T00:00:00+00:00</updated><id>https://bauwens.dev/posts/tutorials/programming/Python-package-minimal-version-features</id><content type="html" xml:base="https://bauwens.dev/posts/tutorials/programming/2026-03-03-Python-package-minimal-version-features/"><![CDATA[<p>When you are writing your <code class="language-plaintext highlighter-rouge">pyproject.toml</code>, you may wonder what version of Python you should fill in as the <code class="language-plaintext highlighter-rouge">requires-python = "&gt;= 3.xx"</code> value. This post shows you how you’ll know.</p>

<ol id="markdown-toc">
  <li><a href="#python-314" id="markdown-toc-python-314">Python 3.14</a></li>
  <li><a href="#python-313" id="markdown-toc-python-313">Python 3.13</a></li>
  <li><a href="#python-312" id="markdown-toc-python-312">Python 3.12</a></li>
  <li><a href="#python-311" id="markdown-toc-python-311">Python 3.11</a></li>
  <li><a href="#python-310" id="markdown-toc-python-310">Python 3.10</a></li>
  <li><a href="#python-39" id="markdown-toc-python-39">Python 3.9</a></li>
  <li><a href="#python-38" id="markdown-toc-python-38">Python 3.8</a></li>
  <li><a href="#end-of-life-minima" id="markdown-toc-end-of-life-minima">End-of-life minima</a></li>
</ol>

<p>Below, I list the most important features added in each version of Python. To determine the minimal version of Python required by your package (for which I assume you roughly know what kind of code can be encountered inside), you should read from top to bottom. When you hit a Python feature that you’re sure is used in your package, that will be the minimal version to use with it.</p>

<h1 id="python-314">Python 3.14</h1>
<p>If you use <a href="https://docs.python.org/3/whatsnew/3.14.html#pep-750-template-string-literals"><code class="language-plaintext highlighter-rouge">t</code>-strings</a>, you need at least Python 3.14.</p>

<p><strong>Typing:</strong> if you <a href="https://docs.python.org/3/whatsnew/3.14.html#whatsnew314-deferred-annotations">don’t want to use quotations around type annotations</a> that refer to types that have not yet been defined, you need at least Python 3.14.</p>

<h1 id="python-313">Python 3.13</h1>
<p>If you use <a href="https://docs.python.org/3/whatsnew/3.13.html#warnings"><code class="language-plaintext highlighter-rouge">warnings.deprecated</code></a> rather than <code class="language-plaintext highlighter-rouge">from typing import deprecated</code> (which is the backwards-compatible way of doing deprecation), you need at least Python 3.13.</p>

<p>If you want access to the experimental functionality of <a href="https://docs.python.org/3/whatsnew/3.13.html#free-threaded-cpython">running Python without global interpreter lock</a>, you need at least Python 3.13.</p>

<h1 id="python-312">Python 3.12</h1>
<p>If you use quotation marks inside the <code class="language-plaintext highlighter-rouge">{ }</code> of an <code class="language-plaintext highlighter-rouge">f</code>-string using the same character as the quotation marks around the <code class="language-plaintext highlighter-rouge">f</code>-string itself, or you use a newline inside the <code class="language-plaintext highlighter-rouge">{ }</code>, you need at least Python 3.12.</p>

<p><strong>Typing:</strong> if you use the <a href="https://docs.python.org/3/whatsnew/3.12.html#pep-698-override-decorator-for-static-typing"><code class="language-plaintext highlighter-rouge">@override</code> decorator</a> to , or if you define generic classes using <a href="https://docs.python.org/3/whatsnew/3.12.html#pep-695-type-parameter-syntax">simplified parameter syntax <code class="language-plaintext highlighter-rouge">class MyClass[T]:</code> rather than inheritance syntax <code class="language-plaintext highlighter-rouge">class MyClass(Generic[T]):</code></a>, you need at least Python 3.12.</p>

<h1 id="python-311">Python 3.11</h1>
<p>If you want a <a href="https://docs.python.org/3/whatsnew/3.11.html#summary-release-highlights">general speedup of up to 60%</a> over Python 3.10, you need at least Python 3.11.</p>

<p><strong>Typing:</strong> if you want official support for the <a href="https://docs.python.org/3/whatsnew/3.11.html#pep-673-self-type"><code class="language-plaintext highlighter-rouge">Self</code> type</a>, or if you use <a href="https://docs.python.org/3/whatsnew/3.11.html#pep-673-self-type">variadic generics</a> (but you probably don’t), you need at least Python 3.11.</p>

<h1 id="python-310">Python 3.10</h1>
<p>If you have a <a href="https://docs.python.org/3/whatsnew/3.10.html#pep-634-structural-pattern-matching"><code class="language-plaintext highlighter-rouge">match</code> statement</a> in your code, you need at least Python 3.10.</p>

<p>If you use a <code class="language-plaintext highlighter-rouge">dataclass</code> with <code class="language-plaintext highlighter-rouge">kw_only</code> argument, you need at least Python 3.10.</p>

<p><strong>Typing:</strong> if you use <a href="https://docs.python.org/3/whatsnew/3.10.html#pep-604-new-type-union-operator"><code class="language-plaintext highlighter-rouge">|</code> instead of <code class="language-plaintext highlighter-rouge">Union</code></a>, or you use <a href="https://docs.python.org/3/whatsnew/3.10.html#pep-612-parameter-specification-variables"><code class="language-plaintext highlighter-rouge">ParamSpec</code></a>, or you use <a href="https://docs.python.org/3/whatsnew/3.10.html#pep-613-typealias"><code class="language-plaintext highlighter-rouge">TypeAlias</code></a>, you need at least Python 3.10.</p>

<h1 id="python-39">Python 3.9</h1>
<p>If you use dictionary union with <code class="language-plaintext highlighter-rouge">|</code>, you need at least Python 3.9.</p>

<p>If you use string methods <code class="language-plaintext highlighter-rouge">str.removeprefix</code> or <code class="language-plaintext highlighter-rouge">str.removesuffix</code>, you need at least Python 3.9.</p>

<p><strong>Typing:</strong> if you use <a href="https://docs.python.org/3/whatsnew/3.9.html#type-hinting-generics-in-standard-collections"><code class="language-plaintext highlighter-rouge">list</code> rather than <code class="language-plaintext highlighter-rouge">List</code></a>, <code class="language-plaintext highlighter-rouge">tuple</code> rather than <code class="language-plaintext highlighter-rouge">Tuple</code>, <code class="language-plaintext highlighter-rouge">dict</code> rather than <code class="language-plaintext highlighter-rouge">Dict</code> and <code class="language-plaintext highlighter-rouge">set</code> rather than <code class="language-plaintext highlighter-rouge">Set</code> in your type annotations, you need at least Python 3.9.</p>

<h1 id="python-38">Python 3.8</h1>
<p>If you use the infamous <a href="">walrus operator <code class="language-plaintext highlighter-rouge">:=</code></a>, you need at least Python 3.8.</p>

<p><strong>Typing:</strong> if you use the <a href="https://docs.python.org/3/whatsnew/3.8.html#positional-only-parameters"><code class="language-plaintext highlighter-rouge">/</code> argument</a> to separate arguments that must never be specified as keyword arguments to those that can be, you need at least Python 3.8.</p>

<h1 id="end-of-life-minima">End-of-life minima</h1>
<p>Every year, the oldest Python version that is still supported with security updates is declared permanently obsolete. As of writing, the official <a href="https://devguide.python.org/versions/">status page</a> shows that the latest version to have reached the end of support was Python 3.9, namely in the fall of 2025.</p>

<p>In a sense, it is pointless to require a minimal Python version so low that it is end-of-life, because nobody should be using that version and thus even if you don’t use any features from later versions, you can at the very least allow yourself as the developer to use newer features in future modifications you make to your package.</p>

<p>That means that, as of writing (spring of 2026), you can safely set <code class="language-plaintext highlighter-rouge">requires-python = "&gt;=3.10"</code> because everyone should be using at least 3.10. By the end of this year (2026) it should be 3.11. By the end of next year (2027) you can safely assume all users have the features of Python 3.12. So yeah, it’ll be a while before you can assume that users have all that nicer syntax for generics.</p>]]></content><author><name>Thomas Bauwens</name><email>tbauwenszaken@gmail.com</email></author><category term="posts" /><category term="tutorials" /><category term="programming" /><summary type="html"><![CDATA[A short guide to the features that force your package to have a given Python version as its minimum requirement.]]></summary></entry><entry><title type="html">Stop texting</title><link href="https://bauwens.dev/posts/relationships/general/2026-02-25-Stop-texting/" rel="alternate" type="text/html" title="Stop texting" /><published>2026-02-25T00:00:00+00:00</published><updated>2026-02-26T00:00:00+00:00</updated><id>https://bauwens.dev/posts/relationships/general/Stop-texting</id><content type="html" xml:base="https://bauwens.dev/posts/relationships/general/2026-02-25-Stop-texting/"><![CDATA[<p>I recently took a week-long break from texting. It allowed me to take a step back and reflect on whether it is desirable that I live the rest of my life going back to my usual habits of text messaging, and I’m having my doubts.</p>

<ol id="markdown-toc">
  <li><a href="#how-i-realised-i-needed-change" id="markdown-toc-how-i-realised-i-needed-change">How I realised I needed change</a></li>
  <li><a href="#the-fundamental-problem" id="markdown-toc-the-fundamental-problem">The Fundamental Problem</a>    <ol>
      <li><a href="#asynchronous-channels" id="markdown-toc-asynchronous-channels">Asynchronous channels</a></li>
      <li><a href="#faster-means-dumber" id="markdown-toc-faster-means-dumber">Faster means dumber</a></li>
      <li><a href="#faster-means-fewer-replies" id="markdown-toc-faster-means-fewer-replies">Faster means fewer replies</a></li>
      <li><a href="#faster-means-social-shame" id="markdown-toc-faster-means-social-shame">Faster means social shame</a></li>
      <li><a href="#worse-than-lack-of-signal" id="markdown-toc-worse-than-lack-of-signal">Worse than lack of signal</a></li>
    </ol>
  </li>
  <li><a href="#the-vulnerability-of-bids-for-connection" id="markdown-toc-the-vulnerability-of-bids-for-connection">The vulnerability of bids for connection</a></li>
  <li><a href="#how-to-live" id="markdown-toc-how-to-live">How to live</a>    <ol>
      <li><a href="#how-do-you-meet-up" id="markdown-toc-how-do-you-meet-up">How do you meet up?</a>        <ol>
          <li><a href="#dont-broadcast-with-question-marks" id="markdown-toc-dont-broadcast-with-question-marks">Don’t broadcast with question marks</a></li>
          <li><a href="#agreements-over-synchronous-channels" id="markdown-toc-agreements-over-synchronous-channels">Agreements over synchronous channels</a></li>
        </ol>
      </li>
      <li><a href="#how-can-people-rely-on-you" id="markdown-toc-how-can-people-rely-on-you">How can people rely on you?</a></li>
      <li><a href="#how-do-you-talk-with-someone-you-dont-meet" id="markdown-toc-how-do-you-talk-with-someone-you-dont-meet">How do you talk with someone you don’t meet?</a></li>
    </ol>
  </li>
  <li><a href="#conclusion" id="markdown-toc-conclusion">Conclusion</a></li>
</ol>

<h1 id="how-i-realised-i-needed-change">How I realised I needed change</h1>
<p>This started more as a kind of “digital detox” and “monk mode” in light of a busy workweek, but reflecting on the experience made me realise something profound: I know I’m not an <a href="https://bauwenst.github.io/posts/relationships/dating/2025-12-11-Anxious-avoidant-free-speech/">anxiously attached person</a>, but texting (at least with some people) makes me feel like one.</p>

<p>I mean that in two ways: I think in some cases I (incorrectly) feel like one to others, and I’ve noticed that I have adopted some of the feelings of anxiously attached people despite being very sure that this is not my personality. I have no need in my life for these feelings nor for this image, because this is not who I am. Since they both went away with the texting, I figured that the way I otherwise do it is pathogenic.</p>

<h1 id="the-fundamental-problem">The Fundamental Problem</h1>
<p>I will now make the case that the fundamental problem with text messaging is that it is an <strong>instant asynchronous channel</strong> of communication.</p>

<h2 id="asynchronous-channels">Asynchronous channels</h2>
<p>An <em>asynchronous channel</em> does not require the sender and the receiver to be present at the same time. Asynchronous channels have existed in history as long as writing has: instead of needing two people to be present in the same place at the same time talking to each other (a <em>synchronous channel</em>), you can write something down, put it in an agreed-upon place, leave, and have someone else go to that place to read what you wrote down, as if you are still there. An upgrade on this may be that you have an animal or a person physically carry your message for some distance. All of this is very primitive compared to the insane feats of engineering that were needed to create new synchronous channels (other than <a href="https://en.wikipedia.org/wiki/Tin-can_telephone">two cans on a string</a>), like morse code transmission, phone calling, and nowadays video calling over the internet (perhaps even with screensharing).</p>

<p>We have a variety of <em>high-latency</em> asynchronous channels available to us today, in particular physical mail (mediated through the postal service) and e-mail (mediated through SMTP and DNS servers). Interestingly, high-latency asynchronous channels have been able to preserve a culture of respect even to this day: somehow, everyone understands that you start an e-mail with a salutation like you would start a letter, and end it with a wish and a signature. Everyone understands that you should put care into your grammar and spelling when sending an e-mail (out of respect for the receiver, which, if not given, may influence how they feel about your message) and spend some time making your message coherent. Perhaps you even format it in several paragraphs.</p>

<p>Also, when you receive a letter or an e-mail, it is understood by the sender that you may take a while (perhaps days, though generally not weeks) to read it. In turn, it is understood by you as the receiver that there is some duty or courtesy to respond to each letter or e-mail sent to you personally. In other words, in return for taking a longer time to compose the message and wait for the answer, we are guaranteed a high chance of getting a response.</p>

<h2 id="faster-means-dumber">Faster means dumber</h2>
<p>Text messaging, where the message is composed quickly, sent instantly, and (usually) delivered instantly, has no such decorum.</p>

<p>Actually, that’s not quite accurate: in some regards, text messaging has inverse decorum. It is not just that people can choose to end a message with best wishes, it is strange when you do. It is not just that people don’t pay attention to language, but it is expected that they purposefully write improperly: ending a message in a period is abormal, and the period is seen as speaker commentary, not as functional punctuation. It means “this is really serious and I am being stern”.<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> For some people, the same is true for avoiding abbreviations: <em>“r u home tmr”</em> is nonchalant, <em>“Are you home tomorrow?”</em> is concerned. And if you write a newline (i.e. if you write two paragraphs) in a message, you are being highly dramatic.</p>

<p>Because texting is so much faster and its culture purposefully lacks formality, the content of text messages is also much more primitive, more reactionary, and less thoughtful. None of the last 50 texts you sent would be vaguely appropriate as an e-mail, and that’s probably not because they were written sloppily or lacked best wishes, but rather because of the lack of interesting information per message. This is not unimportant: if you spend more time reacting more and thinking less, you will be a different person than if you do the converse.</p>

<h2 id="faster-means-fewer-replies">Faster means fewer replies</h2>
<p>The biggest difference between high-latency and instant asynchronous channels, however, is in <em>if and when we can expect a reply</em>, and in addition, <em>how we wait</em>.</p>

<p>With mail, it is clear that you can expect a reply, though that there will be some latency. You have no idea if they have read your e-mail, but you can trust that they will and since it is not an instant conversation, you don’t particularly care. In the meantime, you don’t see your last message(s) displayed to you in your e-mail client; in fact, it is a cumbersome process to go dig up what you actually wrote to someone after you do.</p>

<p>With texting, things are completely different. Firstly, there is large variability in how receivers use the communication channel. With some people, we can expect a reply instantly. With others, we can expect it to be at e-mail speed. With even others, they switch between these two day by day, unbeknownst to you. And lastly, a lot of times, you will just not get a reply at all. <em>Paradoxically, your texts go unanswered more frequently than your e-mails, despite the lower effort texting takes.</em></p>

<p>Nevertheless, no matter which of these archetypes you are texting, your chat interface will make it look like you are having a live back-and-forth conversation for all of them, and this rightfully confuses you. Imagine if your e-mail client was designed like your most-frequented chat interface (WhatsApp, Facebook Messenger, Instagram Direct, …): your e-mails on the right in one colour, their replies on the left in a different colour. Even without read receipts – which some people have indeed turned off in their chat profiles – you would feel uncomfortable sending e-mails this way. And yet, chances are that on your smartphone, the apps you use to receive e-mail and to receive chat messages live side-by-side and both equally give you a notification when something is sent your way.</p>

<h2 id="faster-means-social-shame">Faster means social shame</h2>
<p>So, instant messaging is formatted as a synchronous channel. It even comes with its own “body language”: <em>read receipts</em>. Every interface has a little indicator that tells you which of your messages somebody “heard” (which of your letters they read) and which they didn’t. I’m not suggesting that it’s somehow evil that software companies design their interfaces this way: after all, like a synchronous conversation, the transmission is instant. What I am suggesting, is that this leaves wiggle room for social shame.</p>

<p>We have already established that the receiver can choose to treat your messages synchronously (i.e. respond within minutes) or asynchronously (i.e. respond much slower, or not at all). Thus, whenever you text, you risk being socially miscalibrated by assuming the conversation is one thing when it is really another: you think you’re having a real-time conversation whilst you should have intuited that you’re having a one-message-per-hour exchange. And what do we do with social miscalibrations? We shame them, because this is the easiest way to teach people the rules of the civilisation.</p>

<p>Let’s make it concrete: you send someone a text <em>“Do you want to go for a walk in the park later today?”</em>. If you were speaking face-to-face, this would be perfectly calibrated and you would get a response immediately, so you expect to receive a response soon enough. But time passes, night falls, and you have been ignored. Perhaps the message was delivered, not read and not opened. Perhaps it was delivered and read through the notification, but not opened. Either of those would display to you as being “left on delivered”. Perhaps it was delivered, read and opened, but not replied to, displaying to you as “left on read”. Either way, you are apparently socially inept: you thought the situation was one thing but it was really another. And also, you asked for the attention of someone who either does not <em>want</em> your attention or who is just <em>less available for you</em> than you for them, so your “missed” text brands you as needy.</p>

<p>You may think this conclusion is exaggerated, but it’s not. It is widely accepted that <a href="https://www.urbandictionary.com/define.php?term=double-texting">double-texting</a> is socially uncalibrated, deserves mockery and shame, and makes the sender needy. In real life (or synchronous communication), there is no such thing as double-texting: being “left on delivered” doesn’t exist, being “left on read” (you say something and the other person just stares at you) only happens in extremely awkward situations, and even when that happens, asking a follow-up question doesn’t make you needier or socially uncalibrated. In fact, the complete reverse is true: clarifying yourself is pro-social, and leaving an awkward silence is anti-social. Meanwhile, if the lack of a reply to your text(s) is permanent, i.e. you get <a href="https://bauwenst.github.io/posts/relationships/general/2026-01-13-Ghost-flaking/">ghosted</a>, it is not the ghoster but the ghostee who accrues the shame.</p>

<p>The medium of texting <a href="https://www.instagram.com/reel/DVXDVKajduj/?igsh=MWNieDR3NGlheHUyMg==">generates an entire host of norms and games</a> which didn’t in the past. Without texting, you could live your whole life without ever being perceived as needy as a result of communicating without a reply. Why don’t we just start living that way, then?</p>

<h2 id="worse-than-lack-of-signal">Worse than lack of signal</h2>
<p>People sometimes say that texting is bad because you lack too much of the signal that exists in a face-to-face conversation, particularly tone, facial expression and body language. Because of this, you may not properly infer the intent of a text message, and whether a miscommunication happens is much more up to the mood of the reader.</p>

<p>Yet, this lack of signal can basically be relieved if you become skilled enough at texting. This is in contrast to asynchronicity: no matter how good you become at texting, you can never change the fact that sending a text is opening yourself up to being ignored.</p>

<h1 id="the-vulnerability-of-bids-for-connection">The vulnerability of bids for connection</h1>
<p>As a quick aside, let me zoom out from texting to generalise its fundamental problem to many other social situations.</p>

<ul>
  <li>When you extend your hand to give someone a handshake, or raise your hand for a high-five, you are putting yourself in a vulnerable position: you give them the full power to reject you openly by “leaving you hanging”.</li>
  <li>When you tell a joke in a group setting, you give the rest of the group the power to let themselves laugh, or to <a href="https://en.wikipedia.org/wiki/Shunning">purposefully stay silent</a> in order to signal to you that either the content of your joke is socially unacceptable, or that you are just not welcome more generally.</li>
  <li>When you are a small child and you show your mum or dad a shitty drawing you made, the quality of the drawing is completely irrelevant to you and to them. You could show up with an empty sheet of paper and the situation would be unchanged. <em>The thing is never the thing.</em> Instead, all you are doing is going to your parent and asking them <em>“Do you love me?”</em> but indirectly, giving them the full power to ignore you, or break your heart, or reward you.</li>
  <li>When you spend some effort coming up with a material thing you expect somebody would like to receive, then go out of your way to make or buy that thing, and then you give that to them as a gift, you give them the full power to dismiss all of your effort. This is why the gift giver sits in anticipation while the gift is being opened: he is vulnerable and bracing for rejection.</li>
  <li>When your wife tries to cook a new meal hoping you will like it, and she comes to you with this, she gives you the power to reward her for going out of her way for you, or ignore it, or even punish her for whatever the quality may be.</li>
  <li>When your husband squeezes your butt while walking by, he gives you the power to pull away and swipe his hand off of you in disgust, ignore him, or start chasing him around the couch.</li>
  <li>When your wife scoots her butt into you while lying in bed, she gives you the power to break her heart by turning away.</li>
  <li>When you cold-approach a woman in the street, you – at least in these modern uncivilised times – give her the power to pretend you are air, or even castigate you for daring to interrupt her day.</li>
  <li>And, finally: when you text someone, you are handing them the power to ignore you or to connect with you. You put yourself in an inherently vulnerable position, and this is understood by both of you. Perhaps the mere act of putting yourself in that position, regardless of what happens next, already results in some amount of discredit with the other person.</li>
</ul>

<p>All of the above are <a href="https://freudly.ai/blog/bids-for-connection-gottman-explained/"><strong>bids for connection</strong></a>. They are a question. A question makes you vulnerable, because the answer can be unlike what you wanted or it can be ignored altogether.</p>

<p>And, since you are often not actually texting as a bid for connection, and since there are other ways of communicating other than texting, perhaps you should not make yourself unnecessarily vulnerable by texting this way.</p>

<h1 id="how-to-live">How to live</h1>
<p><strong>I want to live in the real world.</strong> I want to live my relationships face-to-face like humans have done for all of history (and before that), not face-to-screen. I don’t want to be ignored, and really, I don’t even want to be perceived as putting myself in a position where I could be ignored.</p>

<p>Think of how much time you have pissed away by texting people, whether it is in long form or in passing throughout the day. A little time wasted here, a little time wasted there. Your life is leaking away in the form of low-quality human interaction. If you instead aggregated all the small amounts of time you texted a person and instead just hung out with them for that same amount of time in one go, everyone would win.</p>

<h2 id="how-do-you-meet-up">How do you meet up?</h2>
<p>It is sometimes advised that you should use texting only to arrange real-life meetups. This advice comes from a similar angle as this article: don’t try to make human connections over a non-human medium. But I want to go one step further: you probably should not even arrange your meetups over text. You should avoid texting altogether.</p>

<p>In a hypernovel world, it helps to think about how people used to do things before engineers like myself innovated us far beyond what our genetics ever anticipated for. How did people meet up before there was texting? You just asked them to their face.</p>

<p>So, how do you avoid texting someone to hang out, only to be ignored? Well, if you live in each other’s physical worlds, there is no point using texts to see when you can hang out. Next time you see each other, take our your agendas and use your face.</p>

<p>If you don’t live in each other’s physical worlds, or if you need to arrange something sooner than the next time you are guaranteed to cross each other, then obviously you are forced to use some kind of long-distance technology. Actually, in cases where you didn’t even meet in-person originally, e.g. through a dating app (which you should uninstall) or a mutual contact, we could even say that your <em>existence itself</em> depends on such technology: if you could not communicate with someone whom you can’t see, functionally this is no different than if you never existed in the world at all. So let’s look at how you can use this technology without running into the social traps that make you look needy.</p>

<h3 id="dont-broadcast-with-question-marks">Don’t broadcast with question marks</h3>
<p>There are actually two scenarios for wanting to meet up with someone: either you are delivering an impersonal broadcast, or you are specifically asking for their engagement. This would be the difference between <em>“There’s a party, if you want to come.”</em> and <em>“There’s a party, do you want to go together?”</em>. Broadcasts, like flyers and billboards and newspapers and television and so on, are one-way messages: you expect people to hear but not reply.<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> This is mutually understood, and so nobody would think of a billboard as needy.</p>

<p>Question marks make you vulnerable: when they are ignored, you have less social capital to afford another question mark. Here is a perfect example, staying on topic: if you ask <em>“Are you coming to that party tomorrow?”</em> and you are ignored, sending <em>“Are you coming to this other party?”</em> two weeks later counts as double-texting and brands you as desperate.</p>

<p>It is good to know that this opportunity of being ignored is entirely avoidable: after all, you didn’t even care about the answer. You actually just meant to say <em>“There’s a party tomorrow, just so you know.”</em> and even five of those messages in a row are completely harmless. It may even make you the person people go to for finding out the place-to-be, which is real social status. And indeed, your plan to go to the event doesn’t depend on theirs either way, so you should phrase your message as a one-way broadcast, not as half of a two-way interaction.</p>

<h3 id="agreements-over-synchronous-channels">Agreements over synchronous channels</h3>
<p>In the other case, you should abide by the following extension of “make plans in real life”: <strong>make agreements over synchronous channels and broadcast reminders over asynchronous channels.</strong></p>

<p>So, let’s say you know a girl through a dating app, and you otherwise don’t cross each other in life. You may be compatible and match well once you are in a room together, but for whatever reason, she is difficult to get out of her cave into that room with you, and texting <em>“Do you want to go to place X at time Y?”</em> will get you left-on-delivered or left-on-read, i.e. ignored.</p>

<p>Better idea: Call her. Make your proposal. Hear her immediate reaction.</p>

<p>The one reaction you are least likely to get from someone is complete silence; you may get a straight yes or a straight no, you may get hesitant acceptance (approximate yes), or you may get awkward excuse-finding (approximate no). When the answer is vague, you can even choose to be assertive and just call out the information you picked up on on-the-spot: <em>“You don’t sound excited, so if you’re not really interested, just tell me now, I’m not made of glass.”</em> Over text this would be confrontational, over the phone this would make you socially intelligent. After the <em>call</em>, if you got an acceptance, you can <em>text</em> the agreed-upon time and location so you both remember better. It doesn’t matter what happens to this asynchronous message: it is proof that an answer was already given, not a question waiting for an answer.</p>

<p>You can broadcast a reminder if you please. And if this person <a href="https://bauwenst.github.io/posts/relationships/general/2026-01-13-Ghost-flaking/">flakes</a> on you (and betrays their word in doing so), that is at least as informative w.r.t. their character as having gone on the date.</p>

<h2 id="how-can-people-rely-on-you">How can people rely on you?</h2>
<p>Phone calls exist. You can perfectly imagine someone who replies to 0% of texts and 100% of phone calls.</p>

<p>One thing I enjoyed about not texting anyone for a week was that I could physically put as much distance between me and my phone as possible, forgetting its existence for hours on end. This is not possible if you want to be available for emergency calls at all times, but I’m sure there exists some kind of software solution for this such that it’s impossible to access your phone but calls do come through.</p>

<p>It should be noted that calling also has pointless norms and games associated with it: if the receiver doesn’t pick up the phone, whether intended or not, the person who placed the call is again automatically seen as somehow needy (<em>“I want to talk to you even though it is inconvenient to you or you don’t want to talk to me”</em>). Trying again later solidifies the status of being needy, and puts the receiver on a social pedestal (<em>“you have all the time in the world for me, but I don’t for you”</em>).</p>

<p>I want to live in a world where calling someone’s phone is like ringing their home phone, or their doorbell: if they’re not home and miss it, it’s like nothing happened, and you can try again later without being seen as needy. If you want to live like this too, you should establish that contract with the people you would call: and, because they can see on modern devices that they missed your call, it should be courtesy of the receiver to call back. Not text back. Not ignore.</p>

<h2 id="how-do-you-talk-with-someone-you-dont-meet">How do you talk with someone you don’t meet?</h2>
<p>If you want to talk with someone without meeting them in real life, essentially what you have is a <a href="https://en.wikipedia.org/wiki/Pen_pal">pen pal</a>. Do you want a pen pal? If yes, consider talking to them over e-mail (yes, I’m serious, but only insofar you want an actual pen pal). If no, then you just don’t talk to them between meetups. Or you voice/video call.</p>

<p>Here is a corollary of the above rule, rephrased: <strong>don’t text to talk <em>with</em> someone, only to talk <em>at</em> someone</strong>. If you send texts that necessitate a reply, you are dooming yourself. Broadcast over text. Talk over the phone.</p>

<h1 id="conclusion">Conclusion</h1>
<p>The fundamental problem with texting is that it is an instant asynchronous communication channel: it deceives you into using it as if it is synchronous, putting you into a position where you can look socially uncalibrated, which is purely up to the receiver by ignoring you or not.</p>

<p>Perhaps I am being too <a href="https://en.wikipedia.org/wiki/Romanticism">romantic</a>, but I want to live my life such that the real world, or at the very least synchronous communication, is the default medium for connection.</p>

<p>I say all of this not because I’m a bad texter. The complete opposite is true: I get a lot of enjoyment out of a flowing conversation over text, and plenty of people have let me know by their actions that they really enjoy texting me (probably because I’m quick and a good writer). But this is exactly the problem: very rarely is there a person present on both ends of the channel at the same time, either from the start (so you are exchanging half-sentences at the speed of messenger pigeons) or all of a sudden in the middle of a nice dynamic. Both of them are so disappointing that I just don’t want to deal with these dynamics anymore, sorry.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>Back when I was in high school in the late 2010s, I used to get called out for my usage of periods to end sentences as being “elitist”. A single pixel on a screen made people retreat into their inferiority complexes. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>As a computer scientist, the different purposes of TCP and UDP come to mind as a perfect example of this distinction. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Thomas Bauwens</name><email>tbauwenszaken@gmail.com</email></author><category term="posts" /><category term="relationships" /><category term="general" /><summary type="html"><![CDATA[I want to talk in the real world. Humans weren't made for living their relationships over text. We should stop doing that.]]></summary></entry><entry><title type="html">How to enable Flash Attention on a Linux cluster with Conda</title><link href="https://bauwens.dev/posts/tutorials/linux/2026-02-16-Flash-attention/" rel="alternate" type="text/html" title="How to enable Flash Attention on a Linux cluster with Conda" /><published>2026-02-16T00:00:00+00:00</published><updated>2026-02-16T00:00:00+00:00</updated><id>https://bauwens.dev/posts/tutorials/linux/Flash-attention</id><content type="html" xml:base="https://bauwens.dev/posts/tutorials/linux/2026-02-16-Flash-attention/"><![CDATA[<p>I recently wanted to try if using Flash Attention 2 would speed up my language model training, but installing it was more difficult than I thought. Here is how I did it.</p>

<h1 id="setup">Setup</h1>
<p>I am working on a Linux cluster using a <code class="language-plaintext highlighter-rouge">miniconda3</code> environment for Python 11.</p>

<h1 id="attempt-1-pip">Attempt 1: <code class="language-plaintext highlighter-rouge">pip</code></h1>
<p>As a first attempt, after activating my <code class="language-plaintext highlighter-rouge">conda</code> environment, I tried running the recommended command:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip <span class="nb">install </span>flash-attn <span class="nt">--no-build-isolation</span>
</code></pre></div></div>
<p>The reason for the flag at the end is so that this package depends on the same CUDA installation as PyTorch.</p>

<p>Unfortunately, this command fails to run with an <code class="language-plaintext highlighter-rouge">OSError: CUDA_HOME environment variable is not set.</code></p>

<h1 id="attempt-2-pip-with-nvcc">Attempt 2: <code class="language-plaintext highlighter-rouge">pip</code> with <code class="language-plaintext highlighter-rouge">nvcc</code></h1>
<p>The reason for the error is that you need a CUDA compiler to install <code class="language-plaintext highlighter-rouge">flash-attn</code>. If you can’t run the <code class="language-plaintext highlighter-rouge">nvcc</code> command, you don’t have this compiler installed. This part is straightforward:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>conda <span class="nb">install</span> <span class="nt">-c</span> nvidia cuda-toolkit
</code></pre></div></div>
<p>After this, you need to temporarily modify your environment variables to continue the install:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">CUDA_HOME</span><span class="o">=</span><span class="nv">$CONDA_PREFIX</span>
<span class="nb">export </span><span class="nv">PATH</span><span class="o">=</span><span class="nv">$CUDA_HOME</span>/bin:<span class="nv">$PATH</span>
</code></pre></div></div>
<p>Now you can again run</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip <span class="nb">install </span>flash-attn <span class="nt">--no-build-isolation</span>
</code></pre></div></div>
<p>which will likely succeed.</p>

<p>Unfortunately for me, when I then ran my training script, it crashed on a <code class="language-plaintext highlighter-rouge">from flash_attn</code> import statement with an <code class="language-plaintext highlighter-rouge">ImportError: /lib64/libc.so.6: version GLIBC_2.32 not found (required by .../lib/python3.11/site-packages/flash_attn_2_cuda.cpython-311-x86_64-linux-gnu.so)</code>.</p>

<p>The minimal test to see if this error will happen is to just run the command</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>python <span class="nt">-c</span> <span class="s2">"import flash_attn"</span>
</code></pre></div></div>
<p>which is equivalent to a single-line script that tries to import from the successful-but-broken installation of the package.</p>

<h1 id="attempt-3-pip-with-nvcc-and-local-build">Attempt 3: <code class="language-plaintext highlighter-rouge">pip</code> with <code class="language-plaintext highlighter-rouge">nvcc</code> and local build</h1>
<p>The reason for this is a mismatch between the version of a C tool which <code class="language-plaintext highlighter-rouge">flash-attn</code> was pre-built for (2.32 apparently) and the version you have (the output of <code class="language-plaintext highlighter-rouge">ldd --version</code>, 2.28 in my case). So you can attempt to build the package yourself.</p>

<p>First things first, we need to properly remove the successful installation we did above.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip uninstall flash-attn
pip cache remove flash-attn
conda clean <span class="nt">--all</span>
</code></pre></div></div>
<p>If you don’t clear out the cache, we will not be able to build the package ourselves. Now,</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip <span class="nb">install </span>flash-attn <span class="nt">--no-build-isolation</span> <span class="nt">--no-binary</span><span class="o">=</span>:all: <span class="nt">--no-cache-dir</span>
</code></pre></div></div>
<p>which will take quite a while to run.</p>

<p>Unfortunately, this gave me the same error as above. Likely, the error came from other dependencies on a version above <code class="language-plaintext highlighter-rouge">ldd --version</code>, which you can detect using:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>strings <span class="nv">$CONDA_PREFIX</span>/lib/python3.11/site-packages/flash_attn_2_cuda<span class="k">*</span>.so | <span class="nb">grep </span>GLIBC_
</code></pre></div></div>

<h1 id="attempt-4-pip-with-nvcc-and-lower-version">Attempt 4: <code class="language-plaintext highlighter-rouge">pip</code> with <code class="language-plaintext highlighter-rouge">nvcc</code> and lower version</h1>
<p>In <a href="https://github.com/Dao-AILab/flash-attention/issues/1708">this thread</a> people struggle with the same <code class="language-plaintext highlighter-rouge">GLIBC_2.32</code> issue above, and their recommendation is to use a lower version of the <code class="language-plaintext highlighter-rouge">flash-attn</code> package. Currently, version 2.8.3 is installed by default, but they recommend 2.7.4.post1 instead.</p>

<p>So, assuming you installed <code class="language-plaintext highlighter-rouge">nvcc</code> in Attempt 2 above, we will now try to downgrade:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip uninstall flash-attn
pip <span class="nb">install </span>flash-attn<span class="o">==</span>2.7.4.post1 <span class="nt">--no-build-isolation</span>
</code></pre></div></div>
<p>This worked.</p>

<h1 id="epilogue">Epilogue</h1>
<p>With the installation out of the way, I still needed to do at least two more things in order to enable Flash Attention 2 (FA2) in my model.</p>

<h2 id="implementing">Implementing</h2>
<p>Apparently, FA2 is implemented with serialised batches. Usually, code expects tokens to have a 2D index (one vertical to select the example and one horizontal to select the position) and a 2D mask to tell which tokens are not padding, both of which are \(N\times L\). Meanwhile, FA2 expects the \(T \leq N\cdot L\) non-padding tokens to be serialised into one long 1D tensor, with the boundaries between examples given by another 1D cumulative index tensor.</p>

<p>It is the model backbone which is supposed to make the conversion to this 1D format, <em>not</em> the data collator. And if your backbone does this conversion, any code beyond that which expects a batch dimension to be present, will break. For example, in my code, I very explicitly had an assignment <code class="language-plaintext highlighter-rouge">N, L = input_ids.shape</code> which broke because <code class="language-plaintext highlighter-rouge">input_ids</code> had become a long 1D tensor.</p>

<h2 id="configuring">Configuring</h2>
<p>You must let <code class="language-plaintext highlighter-rouge">transformers</code> know that your model’s implementation supports such serial batches by setting the <code class="language-plaintext highlighter-rouge">_supports_flash_attention</code> class property to True, and, for some reason, another class property <code class="language-plaintext highlighter-rouge">_supports_flash_attention_2</code> too. The class on which you should set this, is the class which the user gives the config to (most likely in a <code class="language-plaintext highlighter-rouge">.from_pretrained()</code> call, although not in my case), not any of its contained classes.</p>

<p>To then actually <em>use</em> FA2, you must instantiate the config with a keyword argument <code class="language-plaintext highlighter-rouge">attn_implementation="flash_attention_2"</code>. If the user does not instantiate the config directly (e.g. in a <code class="language-plaintext highlighter-rouge">.from_pretrained()</code> call), likely there is a way to pass on keyword arguments to the config constructor (e.g. the keyword arguments on <code class="language-plaintext highlighter-rouge">.from_pretrained()</code>).</p>]]></content><author><name>Thomas Bauwens</name><email>tbauwenszaken@gmail.com</email></author><category term="posts" /><category term="tutorials" /><category term="linux" /><category term="Python" /><summary type="html"><![CDATA[Try install with pip, if it fails install NVCC and try again, if it fails build locally, if that fails install a lower version. And then do HuggingFace stuff.]]></summary></entry><entry><title type="html">Ghost-flaking: the worst of both worlds</title><link href="https://bauwens.dev/posts/relationships/general/2026-01-13-Ghost-flaking/" rel="alternate" type="text/html" title="Ghost-flaking: the worst of both worlds" /><published>2026-01-13T00:00:00+00:00</published><updated>2026-01-14T00:00:00+00:00</updated><id>https://bauwens.dev/posts/relationships/general/Ghost-flaking</id><content type="html" xml:base="https://bauwens.dev/posts/relationships/general/2026-01-13-Ghost-flaking/"><![CDATA[<p>If you ever needed an example of writing with the purpose of getting something off the chest, here you go.</p>

<ol id="markdown-toc">
  <li><a href="#terminology" id="markdown-toc-terminology">Terminology</a>    <ol>
      <li><a href="#ghosting" id="markdown-toc-ghosting">Ghosting</a></li>
      <li><a href="#flaking" id="markdown-toc-flaking">Flaking</a></li>
    </ol>
  </li>
  <li><a href="#ghost-flaking" id="markdown-toc-ghost-flaking">Ghost-flaking</a>    <ol>
      <li><a href="#two-extremes-of-flaking" id="markdown-toc-two-extremes-of-flaking">Two extremes of flaking</a></li>
      <li><a href="#reality-always-asserts-itself" id="markdown-toc-reality-always-asserts-itself">Reality always asserts itself</a></li>
      <li><a href="#flaking-with-words" id="markdown-toc-flaking-with-words">Flaking with words</a></li>
      <li><a href="#flaking-without-words" id="markdown-toc-flaking-without-words">Flaking without words</a></li>
    </ol>
  </li>
  <li><a href="#what-this-says-about-someone" id="markdown-toc-what-this-says-about-someone">What this says about someone</a></li>
  <li><a href="#conclusion" id="markdown-toc-conclusion">Conclusion</a></li>
</ol>

<h1 id="terminology">Terminology</h1>
<h2 id="ghosting">Ghosting</h2>
<p><em>Ghosting</em> means suddenly ceasing digital communication with someone whom you don’t face in real life unless it is arranged beforehand through said online communication. This can be done by digitally blocking them (you take away the other person’s ability to reach out) or by just letting their messages go delivered without ever being read (they are talking to a “ghost”).</p>

<h2 id="flaking">Flaking</h2>
<p><a href="http://flake.urbanup.com/1288834"><em>Flaking</em></a> means cancelling plans, <a href="http://flaked-on.urbanup.com/6407376">particularly</a> last-minute. The person who proposed and put efforts towards those plans may be the <a href="http://flake.urbanup.com/7842521">flake</a> or the <a href="http://flakee.urbanup.com/13801047">flakee</a>, but it is usually predominantly the flakee since a lack of sunk cost from the flake makes cancellation much less inconvenient for him/her than for the flakee.</p>

<p>Styles of flaking span a spectrum from respectful to heartbreakingly inhumane. Generally, where somebody’s actions fall on this scale depends on two variables: how long they cancel in advance, and the evolution of the perceived probability that they would follow through on their plans over time.</p>

<h1 id="ghost-flaking">Ghost-flaking</h1>
<h2 id="two-extremes-of-flaking">Two extremes of flaking</h2>
<p>The most respectful flake will make it clear from the start that the probability they will show up is low due to certain confounding factors (most simply, because they just don’t want to), and will cancel at least a day in advance.</p>

<p>The cruellest form of flaking is the exact opposite of this: cancelling right as the activity was supposed to start – or even later! – whilst having kept the perceived probability of showing up to \(100\%\) all the way before. It is definitionally manipulative – you are leading someone on by manipulating the reality of your intentions into a false perceived reality – and the closer to the activity the cancellation happens, the longer in advance the cancellation was premeditated.</p>

<p>This is easy to see: surely there cannot exist a person who themselves believes deeply, i.e. it is their reality around which all their actions are oriented, that they will show up, and then right as the activity starts, they completely reorient their actions on a whim. Thus, people who flake already had it in mind plenty in advance that they were not going to show up, and every lie spoken beyond the premeditation of the flake is explicitly malicious.</p>

<h2 id="reality-always-asserts-itself">Reality always asserts itself</h2>
<p>Of course, as with all ways in which humans try to manipulate reality, it is very difficult to pull this off: reality always reasserts itself because it is the way <em>everything everywhere is</em> and in the limit, it is impossible to run from that which is everything everywhere. Indeed, the shoe always has to drop: reality <em>is</em> that the flake will not show up, otherwise they would not be a flake. Thanks to long-range communication, it is possible without the flake being physically present to keep up the flakee’s perceived reality that the flake will show up, but the lie becomes too obvious and incoherent if someone keeps texting that they “will be there” even past the point the other person is forced to return home. That’s reality asserting itself: you can manipulate the future, but you cannot bend the present. If you have agreed to meet up at 6 PM, it is impossible to convince someone at 9 PM that you “will” be there at 6 PM.</p>

<p>So, in practice, a flake needs more tools than just leading on the flakee, if they want to have a somewhat coherent story when eventually reality shows that they did not, in fact, show up.</p>

<h2 id="flaking-with-words">Flaking with words</h2>
<p>One basic tool is creating plausible deniability beforehand: you start by agreeing to the plans whole-heartedly, and then, the closer to the arranged meetup you get, you sprinkle little breadcrumbs in conversation that reduce the probability you’ll show up to a coin flip. For example, you might go from an enthusiastic “Let’s do it!” to a “Let’s see.” a week before, to an “I feel kinda tired” a day before. This is, again, completely premeditated.</p>

<p>Another tool is gaslighting: when the time comes for the flake to reveal their reality – which, if both people have at least some social intelligence, is a very salient moment in conversation since it is a jagged, binary switch from “yes” to “no”, and such a sudden aberration is difficult to sell believably – they might just act dumb. “Oh, did we make plans? I don’t think we did.” One additional reason this is difficult to sell today is that commitments are often agreed to over text, so the flakee may have black-on-white evidence (or whatever colours your text messages may have) that undeniably shows the flake agreeing to make plans. In egregious cases, it may have even been the flake who proposed the time and place: for example, a flake may send you something like “Do you want to come over at 4 PM tomorrow? Only if you want, of course.” and then when you agree and show up at their door, act like your visit came out of the blue and that it is intrusive of you to want to show up to someone’s door without them wanting to.</p>

<p>However, both the plausible deniability and the gaslighting approach rely on the perceived probability of showing up to be far below \(100\%\). Plausible deniability does so by definition, and the gaslighting approach does so because “I won’t come.” and “Was I ever going to come?” are equally unbelievable messages to receive after receiving confirmation of the opposite up until that point. If you want to flake hard, you can’t do it with words.</p>

<h2 id="flaking-without-words">Flaking without words</h2>
<p>Using your words, you have feigned up until the start of the activity that you were down for it. Clearly, using the same medium to suddenly deliver the opposite message is completely nonsensical and makes you look schizophrenic. So, you just go silent.</p>

<p><em>Ghost-flaking</em> is where you keep the perceived probability of showing up at 100% – or maybe you sprinkle in plausible deniability at the last moment – and then just disappear off the face of the Earth. You leave the flakee hanging in the fog of the unknown.</p>

<p>The flakee will have shown up to the location, waiting with excitement until you do the same, and now the burden of your responsibility is magically shifted to them: it is no longer <em>up to you to tell the flakee</em> that you won’t show up, but it is <em>up to the flakee to tell you</em> that reality has asserted itself and that you don’t have to bother showing up anymore since they have already packed up and left.</p>

<p>Additionally, it is now up to the flakee to come up with a reason for why you didn’t show up, rather than you giving the flakee a reason. Any socially calibrated person will introspect and ask themselves <em>“This behaviour is not how a normal person acts. Did I make this person act abnormally? I’m quite sure I didn’t do anything to cause a sudden change of heart, so their heart never actually changed. That means they lied about wanting to get together all along. Did I make them lie? They must think I’m the kind of person you can’t be honest with.”</em> Indeed, conveniently, the flakee will find an excuse and take accountability in place of the flake.</p>

<p>If the flake ever reappears, this is the only crutch they could lean on. It would of course be more gaslighting, but it is done out of necessity to save face, as there <em>is no</em> excuse for lying and then disappearing.</p>

<p>Finally, if the flakee cares about you, the flake – e.g. you are considered a friend of theirs, rather than being a stranger like on a first date – then by ghost-flaking on them, you send them into a perfect storm of emotional confusion.</p>
<ul>
  <li>Any time you cancel plans, you cause disappointment in the flakee.</li>
  <li>When you choose to cancel last-minute, you cause anger in the flakee due to their sunk cost (since they spent time planning the activity, getting ready, and going to the location).</li>
  <li>When you are a person they (thought they) like(d), you don’t just drop them from neutral emotion to disappointed, but you drop them all the way from <em>excited</em> to disappointed.</li>
  <li>When you are also cared for by the flakee, your disappearance causes them to worry about where you disappeared to. They can’t know what made you stop responding, so now they fear for your well-being.</li>
</ul>

<p>So indeed, the flakee feels torn apart by what they feel: you have caused them to go through all the stages of grief (anger, making excuses for you, disappointment) which rightfully makes them want to distance themselves from you, <em>whilst</em> they want to check in with you because they have empathy and care about your safety.</p>

<h1 id="what-this-says-about-someone">What this says about someone</h1>
<p>By your actions, you don’t care about causing such tension in the flakee. You don’t really see them as a person; you see them as an activity to be consumed for your pleasure if you feel like it. They are as optional to you as a dinner reservation; they don’t need to know that you have made reservations at another restaurant, because then they might refuse you the upside you could get from their exploitation.</p>

<p>As we have shown above, it is necessarily manipulative to feign a false reality. Further, it is cowardly not to dare speak the reality that you have premeditated: you could have said “I’m not coming”, but you said “I’m coming”. It is even more cowardly to not take accountability once the reality manifests in the present: you could have said “I lied actually, I’m not coming after all” but you said nothing instead. Perhaps you are incapable of taking accountability because nothing is ever your fault. Or, perhaps you take accountability, but you would rather wallow in self-pity (“Everything is always my fault anyway”) rather than apologise to the people you hurt and change so it doesn’t happen anymore.</p>

<p>Your dishonesty makes your words untrustworthy. If your “Yes” actually means “No” then your words carry no value. You are unreliable. Your inconsistency makes it pointless to organise future engagements, because there is more guarantee that you won’t show up rather than that you will.</p>

<p>But I guess you don’t mind anyway. Why would you even want to hang out with someone you deem <em>such an idiot</em> that you can tell them lies that make them spend effort on you? Why would you want to hang out with someone whom you estimate <em>so beneath you</em> that they aren’t even worth sending a simple “You can leave, I’m not coming, sorry” to? You have all the technology in the world at your fingertips. You literally need only spend 5 seconds and the muscles of a single finger to do this – which is infinitely less time and energy the flakee wasted. Even the late Stephen Hawking could send such a text. It’s not that you can’t do it. It’s that you don’t want to do it. It is an intentional insult, no matter if you are in denial about it to yourself or not.</p>

<h1 id="conclusion">Conclusion</h1>
<p>Flaking is a socially uncalibrated, cruel, premeditated manipulation and exploitation of others, and of all the ways to do it, ghost-flaking is done by those who lack all accountability for their actions.</p>

<p>I have personally never flaked and I can’t even fathom how someone’s conscience could survive ghost-flaking. I suspect I never will.</p>

<p>I wish I did not have to write this essay on my birthday. I don’t particularly care for it, but I won’t say it doesn’t add insult to injury. <a href="https://www.youtube.com/watch?v=zZQpz7q9SrU">What do you do when the one who means the most to you, is the one who didn’t show?</a></p>]]></content><author><name>Thomas Bauwens</name><email>tbauwenszaken@gmail.com</email></author><category term="posts" /><category term="relationships" /><category term="general" /><summary type="html"><![CDATA[Bending reality and disappearing when it snaps back.]]></summary></entry><entry><title type="html">Say what you need to… but not more.</title><link href="https://bauwens.dev/posts/relationships/general/2026-01-04-Authentic-speech/" rel="alternate" type="text/html" title="Say what you need to… but not more." /><published>2026-01-04T00:00:00+00:00</published><updated>2026-01-26T00:00:00+00:00</updated><id>https://bauwens.dev/posts/relationships/general/Authentic-speech</id><content type="html" xml:base="https://bauwens.dev/posts/relationships/general/2026-01-04-Authentic-speech/"><![CDATA[<p>One of my worst fears is being stuck in a relationship where authentic speech is punished, which I have written about <a href="https://bauwenst.github.io/posts/relationships/dating/2025-12-11-Anxious-avoidant-free-speech/">in a previous article</a>. If you cannot say what is on your mind out of fear for the other person’s reaction, you cannot solve the problems you see and you cannot assert your boundaries for self-preservation. So, is the solution to just say what you <em>want</em> to say? Not quite.</p>

<!-- 2026-01-02 -->

<ol id="markdown-toc">
  <li><a href="#zero-self-censorship" id="markdown-toc-zero-self-censorship">Zero self-censorship</a>    <ol>
      <li><a href="#what-it-means-to-be-reasonable" id="markdown-toc-what-it-means-to-be-reasonable">What it means to be reasonable</a></li>
      <li><a href="#emotional-safety" id="markdown-toc-emotional-safety">Emotional safety</a></li>
      <li><a href="#why-do-you-fear-conflict" id="markdown-toc-why-do-you-fear-conflict">Why do you fear conflict?</a></li>
    </ol>
  </li>
  <li><a href="#but-should-you-really-always-speak-your-mind" id="markdown-toc-but-should-you-really-always-speak-your-mind">But should you really always speak your mind?</a>    <ol>
      <li><a href="#opinions-that-need-to-be-spoken" id="markdown-toc-opinions-that-need-to-be-spoken">Opinions that need to be spoken</a></li>
      <li><a href="#opinions-that-neednt-be-spoken" id="markdown-toc-opinions-that-neednt-be-spoken">Opinions that needn’t be spoken</a>        <ol>
          <li><a href="#youre-a-retard" id="markdown-toc-youre-a-retard">“You’re a retard.”</a></li>
          <li><a href="#youve-become-fat" id="markdown-toc-youve-become-fat">“You’ve become fat.”</a></li>
          <li><a href="#youre-ignoring-me" id="markdown-toc-youre-ignoring-me">“You’re ignoring me.”</a></li>
        </ol>
      </li>
      <li><a href="#setting-boundaries" id="markdown-toc-setting-boundaries">Setting boundaries</a>        <ol>
          <li><a href="#respect-my-body" id="markdown-toc-respect-my-body">“Respect my body.”</a></li>
          <li><a href="#respect-my-family" id="markdown-toc-respect-my-family">“Respect my family.”</a></li>
          <li><a href="#you-should-speak-up" id="markdown-toc-you-should-speak-up">You should speak up</a></li>
          <li><a href="#two-families-of-boundaries" id="markdown-toc-two-families-of-boundaries">Two families of boundaries</a></li>
          <li><a href="#if-you-dont-believe-in-second-chances" id="markdown-toc-if-you-dont-believe-in-second-chances">If you don’t believe in second chances</a></li>
          <li><a href="#if-you-believe-in-second-chances" id="markdown-toc-if-you-believe-in-second-chances">If you believe in second chances</a></li>
        </ol>
      </li>
    </ol>
  </li>
  <li><a href="#what-if-i-do-it-anyway" id="markdown-toc-what-if-i-do-it-anyway">What if I do it anyway?</a></li>
</ol>

<h1 id="zero-self-censorship">Zero self-censorship</h1>
<h2 id="what-it-means-to-be-reasonable">What it means to be reasonable</h2>
<p>By nature, there is really no conversation I am not willing to entertain. I cannot remember the last time I rejected someone’s bid to talk about anything, and I cannot remember if I have ever prematurely stopped talking to someone because the subject matter itself frustrated me too much to continue talking about it. Playing with ideas is fun. It’s fun to explore a landscape of things I hadn’t thought about before and to hear how other people walk through it. You’ll never hear me say something is “not that deep” or to “just stop thinking about it” or even just “nevermind”: I want to play.</p>

<p>When someone disagrees with me, it doesn’t offend me. It saddens me that the opposite is quite common: even when I agree with someone but play devil’s advocate for our mutual position, they get offended because they see an attack on the idea as an attack on themselves. I don’t really understand getting frustrated about hypotheticals, but I assume it must be an intelligence thing. In any case, to me, this is the fun in conversation: making an argument as airtight as possible, even if we have to consider supposedly offensive alternatives to do so. This is how I used to study in university, with great results as consequence: read the textbook, construct a mental model, and then wield the textbook to attack my mental model from every angle possible, until it could withstand it.</p>

<p>Lastly: I want to solve problems when I know they exist, or, <a href="https://www.goodreads.com/quotes/1411380-there-are-no-solutions-there-are-only-trade-offs">if there is no solution</a>, at least find the most optimal approach to the problem. It makes absolutely no sense to me when talking about a particular problem is just off the table to someone, either as a conscious refusal, or because they get so heated that they are impossible to be reasoned with.</p>

<h2 id="emotional-safety">Emotional safety</h2>
<p>One of my female acquaintances once told me that emotional safety was among her top three qualities she looked for in a man. What she meant by it was that her emotions would not be glossed over, would not be dismissed as baseless, and would instead be attended to by comforting her. She definitely wouldn’t have liked who I was around the time I left high school, back when I left no room for feelings when those feelings originated in an incorrect interpretation of things. (After all, I am right here telling you that your feelings are baseless, so you can just stop feeling them now, right?) I have since adopted the view that “feelings are never wrong”. What caused them might be all kinds of severely misguided, but the feelings themselves are a somewhat involuntary reaction of the animal hardware onto which humans were built by nature.</p>

<p>Of course, it is incumbent upon an adult to not let themselves be engulfed by emotions. The emotional safety I personally look for has more to do with this, rather than what my acquaintance said: I don’t really care about how my emotions are attended to (if they are based on me being misguided, tell me as soon as possible so I can dismiss them myself), but instead, what I care about is not being punished in some way for bringing up a topic which I feel is important to talk about. So, whereas a woman might desire someone who coddles her emotions, I desire a woman who keeps her emotions in check (and I will coddle the remainder) and moreover does not withdraw her affection based on the mere act of putting a certain subject on the table to be discussed. Unfortunately, as <a href="https://www.instagram.com/reel/DTQ_RpukmRd/">any man will tell you</a>, this is rare.</p>

<p>So, my base view is that <em>no conversation should be off-limits</em>. If I want to talk about something, I should be able to fully put my case in front of my significant other, and I should be able to fully hear out her case on the matter.</p>

<h2 id="why-do-you-fear-conflict">Why do you fear conflict?</h2>
<p>For those who self-censor, it is actually an interesting exercise to think <em>what it is that you fear will happen when you speak your mind.</em> The assumption will usually be that speaking the truth will lead to an emotional outburst. Let us work in that future: if you say what you want to say, there will be an emotional outburst.</p>

<p>On the surface, we would say that we fear the outburst itself. But if you think about it, that doesn’t really make sense: in first order, it is not you who is undergoing the emotional outburst. The fact that somebody else’s body has reverted to a more basal animalistic state of unreason is completely external to you. They could be in the same room or on the other side of the world; what’s in their head is not in yours.</p>

<p>I will leave this topic for a future article, but it is something to think about. For now, we will assume that for one reason or another, people can truly fear sharing their opinion.</p>

<h1 id="but-should-you-really-always-speak-your-mind">But should you really always speak your mind?</h1>
<p>I recently spoke with one of my close female friends about the topic of self-censorship and my fear of it, and she actually changed my view for some instances. She is also the one who asked the question above of what part of conflict I actually fear, and I am severely endebted to her for most of the ideas I develop below.</p>

<!-- 2026-01-04 -->

<p>Inspired by my close friend, I will thus build the case that there exist two classes of opinions: those that must be spoken, and those that should not be. Fearing the reaction of the other person will still indirectly play a role in classifying which of the two classes an opinion belongs to, but it will no longer be the main factor. Hear me out.</p>

<h2 id="opinions-that-need-to-be-spoken">Opinions that need to be spoken</h2>
<p>All opinions that have to do with actions of the other person that negatively affect you directly, <strong>need to be spoken</strong>.</p>

<p>The timing of when you speak such opinions does matter. In particular, imagine your spouse makes a joke at your expense in the presence of others, or even just denigrates you. It would not be appropriate to call that person out on the spot: the joke or slight has already been made, and you can hold them accountable in exactly the same way with and without an audience. When you do it with an audience, it harms the reputation of your relationship and causes that person social embarrassment. You can communicate your opinion of what they did without any of this, and if you really loved them, you wouldn’t want to curse your dynamic with either of the latter.</p>

<p>There is a second subset of opinions that <strong>need to be spoken</strong>, namely those that remain once subtracting all the ones that are described below. An example will follow there.</p>

<h2 id="opinions-that-neednt-be-spoken">Opinions that needn’t be spoken</h2>
<p>The gist for this class of opinions will basically be that they are (or, expressing them is) <em>unconsidered</em>. That is: there are things you should consider before expressing them which will make you realise that that is not a good idea, so that these opinions <strong>should not be spoken</strong>.</p>

<p>Specifically, there are two questions to consider when you have an opinion you want to share:</p>

<ol>
  <li>“What will I achieve by having the other person know this opinion?”</li>
  <li>“Are they the problem, or are there hidden <a href="https://en.wikipedia.org/wiki/Mitigating_factor">extenuating circumstances</a> which are reflected in their problematic behaviour?”</li>
</ol>

<p>Let’s look at some examples to clear up some objections you as the reader might have to “self-censor” when either of these questions triggers in favour of not saying what you authentically want to say.</p>

<h3 id="youre-a-retard">“You’re a retard.”</h3>
<p>To start, one might look at that first question and think that it gives room for fear-based self-censorship. Something like <em>“I want to tell them this, but I fear their reaction… Oh well, guess it’s all pointless anyway, might as well shut up.”</em> This would rely on a very subjective judgement of pointlessness, and I would like to re-frame the question using scenarios that use more objective logical deduction.</p>

<p>Let’s say your wife thinks that today you have done many things that genuinely display a lack of intelligent thinking. Should she verbalise her internal monologue out loud, and be as authentic as possible? <em>“To be honest, I think you’ve done nothing right today, and to me you seem like an unrespectable retard.”</em> You and her would hopefully conclude that she should not. But why, if she’d be authentic? Is she self-censoring out of fear? Surely, if you’re a good man, she doesn’t have any kind of pathological reaction to fear from you. Rather, what does verbalising her negative idea of you achieve? It won’t make you better at whatever task you were failing at. It won’t increase the affection in the relationship. Nobody is helped by it. At best, if she is sadistic, her mood will improve due to seeing you hurt, or if she’s narcissistic, her mood will improve because she likes feeling superior to you. Barring those pathologies (which are awfully common), it should be obvious that this kind of opinion is pointless, unproductive, cruel, … which has nothing to do with fearing a reaction.</p>

<h3 id="youve-become-fat">“You’ve become fat.”</h3>
<p>As for the second question, one objection could again be that it gives room for victims of mistreatment to forcibly make excuses for behaviours that do really deserve accountability. Once again, let me reframe with some examples where it is clear that no such misuse is possible.</p>

<p>Say you are struggling with the idea that your husband or wife has become fat. To be more precise, you are worried for their long-term health (both because you want to be with them as long as possible, and even if you were to die early, you would want them to enjoy life as long and as qualitative as possible), and besides your concerns for their health, you find yourself no longer sexually attracted to the state they are in. Now, should you tell him or her what you are feeling?</p>

<p>Bad reasons to self-censor here are cynical ideological slogans along the lines of “every body is equally beautiful” or “bodies change, accept it” or “it’s their body, they can do what they want with it” or “if you have a problem with their body becoming unattractive, then you never cared about their personality in the first place”. These are all morally relativistic nonsense<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> and I won’t be concerned with them. In other words: the spouse being fat is problematic.</p>

<p>Now, back to the question. As an example of question 1, ask yourself: “Why do I want my husband/wife to know that I see their fatness, and that it makes me worried for them, and unattracted to them?” In all three subcases, the reason you would want to do it would be – even if it is with the best of intentions possible! – to guilt-trip them into making the change you want to see.</p>

<ul>
  <li>Why do you want to tell them they are fat? Because you assume they don’t know yet – don’t worry, they do – because if they did know, they would be unhappy with it. If only they were unhappy, then they would change.</li>
  <li>Why do you want to tell them it’s bad for their health? Because it will make them fear bad health. If only they feared, then they would change.</li>
  <li>Why do you want to tell them you’re unattracted to them? Because it will make them feel like they’re wronging you. If only they felt bad for making you suffer, then they would change.</li>
</ul>

<p>Chances are that the guilt-trip works. But when it doesn’t, you have not only made them feel guilty, but you have also set yourself up for resentment. You never actually said that you wanted your spouse to eat less and move more; that’s the unspoken expectation behind opening up about your lack of attraction to their current bodily state. Now, if they don’t fulfil your wish for change, you will conclude that indeed they don’t care about themselves or about you and become resentful. Nobody is helped in that case!</p>

<p>And so, if the end goal is actually for them to no longer be fat by making permanent lifestyle changes, there is actually no real point in telling them about your concerns. It makes them feel bad and possibly makes you feel bad, and doesn’t make the change you want. Instead, you can just immediately jump into action and nudge your household towards this healthier lifestyle. Once again, this self-censorship has little to do with fear and more with pointlessness.</p>

<p>It could even be argued that verbalising your high-level expectation of “You should eat less and move more.” is almost equally pointless. Although it is much more actionable than “You’ve become fat.” (despite this being equivalent) and although you should talk about these things so that you can align with your spouse about which lifestyle will be maintained in the household (so, which groceries will be bought, which recipes will be cooked, how many gym memberships will be budgetted in, …), you’re unnecessarily putting all responsibility for change on them. As mentioned above: you can also make those changes to the household, and achieve the exact same thing. So then, not speaking your thoughts here is Pareto-better than speaking them.</p>

<!-- 2026-01-05 -->
<p>You now have a way to get the outcome you want. For completeness, let’s go back to your desire to know if your partner (or just your good friend, for that matter) realises they have become fat. Here too, I will suggest that you are distracted by the wrong problem. You think you want them to realise <em>where they are,</em> but if you really think about it, what you may actually want is for them to realise <em>how they got there.</em> After all, then they would know which process to reverse, which is what you hope they will do without you having to be the one to hold them accountable.</p>

<p>Here’s the cool part: that “how they got there” can go up the causal chain as far as you want, and thus up to topics which are much easier to put on the table. This is where question 2 comes in. To keep it concrete: suddenly becoming fat, which is a result of sudden distortions in lifestyle, doesn’t happen out of nowhere. So, you ask yourself: “Are there factors I am not seeing that could have caused their behaviour?” You know that distortions in lifestyle can be caused by various stressors, for example, so now you can take your spouse on a date and ask curiously about whether there is anything that has been putting stress on them lately, with no self-censorship needed. Also, things further up the chain can have broader impact, so even if “Eat less move more.” would be a direct solution, if you had just waited a little longer to gather more information, your direct solution may have instead morphed into “You should spend less time talking with your friend Emily; she’s making you miserable.”</p>

<h3 id="youre-ignoring-me">“You’re ignoring me.”</h3>
<p>Here is another application of question 2 but not question 1.</p>

<p>Let’s say your good friend, whom you regularly text, has been taking much longer to reply to your texts than usual, and gives noticeably shorter replies. This friend may have even flaked on your hangouts and forgotten your birthday; you feel like you are unimportant to them and that the dynamic is one-sided. You feel that they are signalling that they no longer care about you and you want to text them “If you’re going to take so long to reply with such short messages, don’t even bother anymore, I get the hint. It was nice while it lasted.”</p>

<p>Instead, you decide to wait a little longer to gather more information: there are many extenuating circumstances due to which someone would fail to prioritise texting their friends. Perhaps they are on an insane deadline schedule for school or work. Perhaps they are going through a medical or marital crisis. Perhaps they are on vacation and have put the phone away to do things in the real world. All these circumstances are finite by nature, and eventually you’ll hear about them.</p>

<h2 id="setting-boundaries">Setting boundaries</h2>
<p>In the three scenarios above, you have pinpointed in your head what you think is the obvious problem, and by doing so, you set yourself up for regrettable conversations. You should instead consider that <em>the thing is almost never the thing.</em></p>

<p>There remains one set of potentially ill-received opinions we have not discussed: opinions about actions that do <em>not</em> cause you measurable harm, which would <em>not</em> be pointless when spoken and which can <em>not</em> be traced back to some other thing. Let’s call them <em>principled boundaries.</em> First we will look at two examples which are not like any of the above.</p>

<h3 id="respect-my-body">“Respect my body.”</h3>
<p>Let’s say that when your girlfriend is annoyed with you, she slaps your arm, shoves your shoulder, and so on. You, an adult man, won’t feel any lasting physical pain from this, so it’s impossible to make the case that this harms you. Yet, as a mentally healthy man, you also have deep respect for the bodily integrity of your girlfriend, and you feel that this respect should be reciprocated.</p>

<p>You know that speaking up may be ill-received. So, you first ask:</p>

<ul>
  <li>Question 1: Will asking her to stop doing this be pointless? Definitely not. She can implement your demand immediately, without any hurdles in her way.</li>
  <li>Question 2: Are there extenuating circumstances which could bring her to behave this way against her actual will? Also no, assuming she isn’t experiencing some kind of clinical psychosis. At best, she can claim that “everyone in her family behaves like this; it’s how she was raised; they don’t take it that seriously”, but this is an <a href="https://en.wikipedia.org/wiki/Is%E2%80%93ought_problem">is-ought fallacy</a>. Your dysfunctional family does not dictate what is good.</li>
</ul>

<p>We are thus in a scenario we haven’t seen above.</p>

<!-- 2026-01-09 -->

<p>If direct harm is considered all that matters, then it is equally easy to defend speaking up for your principle as it is to shut up about it: you are not directly harmed if you say nothing (although to be fair, being disrespected is at least psychologically painful), and she will not suffer from stopping her behaviour when you say something. So, we need to decide on a tiebreaking rule.</p>

<h3 id="respect-my-family">“Respect my family.”</h3>
<p>Here is an example where there is truly zero harm, to make things even clearer to reason about.</p>

<p>In plenty of cultures, bad-mouthing someone’s family, and especially someone’s mother, is a boundary which is understood to merit full-on physical violence when crossed. Yet, when I am having a 1-on-1 conversation with someone, them disrespecting my mother theoretically has nothing to do with me directly, so I am not suffering any harm, and since my mother is not there, she isn’t either. And yet, you want to check this person on their behaviour.</p>

<h3 id="you-should-speak-up">You should speak up</h3>
<p>The right thing to do in the above two cases is to be authentic, albeit with some care for how the message is delivered: your opinion <strong>should be spoken</strong>, at least if you believe in second chances. Why is this the rule, rather than self-censoring? Because a principled boundary is two things: it is an unspoken expectation, and it is a compatibility test.</p>

<p>You expect your boundary to not be crossed, and if the other repeatedly does so, it will make you resentful at them, which is unfair if the relationship continues. Secondly, crossing some boundaries is a sign of fundamental incompatibility: you actually cannot spend your life with someone who crosses this boundary – if you could, it would not be a boundary – so it’s not just your internal feeling that is threatened by the boundary being crossed, but the entire existence of the relationship. (It would be you who ends the relationship, but the other would be at fault.) This is the tricky part.</p>

<!-- 2026-01-26 -->
<h3 id="two-families-of-boundaries">Two families of boundaries</h3>
<p>A <em>boundary</em> is a pre-set rule that dictates what you will do in response to somebody else doing something to you. There are many actions you could undertake in response, and only a subset of those actually threatens the relationship, which means we have two families of boundaries. If a boundary does not have such a response, then it <strong>should be spoken</strong>.</p>

<p>A male friend of mine gave the following example: let’s say your spouse has a habit of waking you up at night to have sex. This is not a zero-stakes situation: rejecting her advances may hurt your sex life in the future, and you may fear her immediate reaction. So, the self-censorship approach is to just let it happen and be tired afterwards, because at least it saves you the conflict and disappointment. Yet, there are actually ways to assert your boundary without questioning the fact that you’re still a team. You could tell her: <em>“I love you and I would gladly have sex with you at other times of the day, but I need my sleep. If you wake me up again to have sex, I will go sleep in the other bedroom for the rest of the night.”</em> You can easily enforce this boundary while everyone is reassured that the foundation of the relationship isn’t threatened.</p>

<p>In turn, your reaction might cross a boundary she has about physical rejection, which could be part of the relationship-ending family of boundaries. Your rejection may indicate a fundamental incompatibility to her. For this family of boundaries, it becomes no longer obvious what she should and should not say, and I will explore why that is below.</p>

<!-- 2026-01-09 -->

<h3 id="if-you-dont-believe-in-second-chances">If you don’t believe in second chances</h3>
<p>As caveated above, communicating about these things is pointless if you don’t believe in second chances. That’s not necessarily overly cynical: as <a href="https://youtu.be/Ptm6xMHKm5I?t=5267">Tristan Tate once pointed out</a>, we all know how hard it is to even just change ourselves for our own benefit, so getting others to change for our benefit is pretty much a lost cause. I’m not quite convinced, but if we take it as true, there is no point informing anyone about what boundary they crossed. You just break up with them on the spot. Cut your losses and onto more compatible options.</p>

<!-- 2026-01-26 -->

<p>Apart from pointlessness, there are also more subtle issues that come with revealing your boundaries. Firstly, you may open yourself up for temporary faked respect for your boundaries: this is especially relevant when getting closer to you has some kind of exploitative value. For example, if you are in a relationship and reveal that infrequent sex is a dealbreaker to you, somebody may have sex with you as long as it takes to get you to marry them, after which the reward for no longer respecting your boundary is 50% of your wordly assets.</p>

<p>The same friend I mentioned above pointed out another, less obvious issue: when you tell somebody that a change in their behaviour is necessary to keep you, then <em>even when they are willing to make the change now</em>, you will be the target of their resentment if <em>at any point in the future</em> they start having second thoughts about this changed behaviour. People revert to old habits all the time, and in the event it happens, you are now the scapegoat who was responsible for forcing them to do something against their will all this time. By asking for change, you unknowingly point their gun at you.</p>

<p>To solve both of these issues, you want to let someone naturally hit your boundaries if they are the kind of person who would do so, respectively so that their tendency to do so is not hidden from you and so that you are not the future target of resentment. You may have the impulse to warn someone they are getting close to crossing a boundary, but this feeling by itself is already an indicator of incompatibility anyway, so better just let the inevitable play out so that at least you have definitive information.</p>

<!-- 2026-01-09 -->

<h3 id="if-you-believe-in-second-chances">If you believe in second chances</h3>
<p>Assuming that it is worth telling the other person about your boundaries, the question is now how to do it exactly. We have established that you <em>should</em> speak up about your boundaries, but not exactly <em>in what way</em>. In the above examples, it is should be clear that you should communicate “this is not okay”, but arguably, there should be more to your message.</p>

<p>In a previous essay I wrote about <a href="https://bauwenst.github.io/posts/relationships/dating/2024-12-06-And-yet-I-care/#value-systems-bis">asking your spouse to fulfil optional personal preferences</a>, where I concluded that the other person should probably acquiesce to your demands as long as those demands are feasible and reasonable, although <em>when they don’t</em>, it is your adult responsibility to <em>learn to live with that</em>. With boundaries, the situation is different: not only are you asking to <em>not</em> do something (“this is not okay”), but also, the consequences are no longer just “I will be sad” and rather “I will end this relationship”.</p>

<p>Now, in that same essay, I described the notion of “the relationship as a third entity” to be honoured even when spouses are temporarily frustrated.</p>

<p class="note filled" title="Relationship as third entity">Imagine this third entity is a dog. One spouse is in charge of refilling the dog’s water bowl, the other of the food bowl. Now, clearly, both need to keep feeding the dog, or it will die. And moreover, just because your husband left his beard hairs in the sink, it isn’t justified to not feed the dog. And just because your wife left her shoes in the hallway causing you to trip over them, it still isn’t justified to not feed the dog. And it should go without saying that any ultimatum of the form “do this or I will shoot the dog” should be off the table. As one example (…), just because you’re resentful of your wife for a while, that does not relieve you of the duty to stay in shape for her nor to deny her orgasms.</p>

<p>It is basically always wrong to threaten this third entity, but now we have a paradox: you should somehow inform the other person about your boundary to preventatively protect the relationship from the currently unspoken threat you yourself pose to it, without explicitly threatening to end the relationship. In other words: you want to say “If you do this enough, I will shoot the dog.” without saying you will shoot the dog. You don’t want the situation to evolve into a “If I don’t get my way, I will destroy everything we have.” thing, where you are holding a gun to the dog’s head at all times: assuming you don’t intend to shoot it, it’s not really reassuring to the other person to be made so aware of this possibility.</p>

<!-- 2026-01-26 -->

<p>The immediate implication of this is that you should probably <em>not</em> reveal your exact criteria for breaking up, and particularly your system for how multiple boundary crossings accumulate and eventually translate into a breakup. For example, let’s say you have a “three-strikes rule”, where the third time somebody crosses a specific boundary, you break up with them. The worst thing you could probably do is to reveal not only that you keep track of how many strikes somebody has accumulated, but also which strike they are currently on. It doesn’t really achieve anything other than instil fear in the other person.</p>

<!-- A considerate person might raise the objection: _"If it was me, I would prefer to know where I stand with my spouse, and what he/she definitely doesn't want me to do, so that I can make sure to never do those things. It's not fair that they don't even give me the chance to adapt, and I would want to know how serious they are about it. Therefore, it is also not fair if I hide my own criteria from them."_ This confuses the boundary with the accumulation strategy. -->

<p>The right way to inform someone of a fundamental boundary you have, is to tie it to a principle and then say what violating that principle implies to you personally. Let us reconsider the girlfriend waking up the boyfriend to have sex at night, but being rejected for disturbing his sleep. She should obviously not become dramatic – it is natural, but useless – and she should definitely not say: <em>“Have sex with me, or we are done.”</em> What she could however say, is <em>“I know you don’t mean it this way at all and I know you find me attractive, but when I am rejected sexually, it still generates a feeling in me that I’m not beautiful enough.”</em> The principle is that someone should not sexually reject their spouse, and the personal implication of violating that principle is a feeling of being unattractive. In this entire discussion, the word “relationship” is never even mentioned, and the boyfriend’s internal love is not questioned, whilst giving him all the information he needs. Then, if this conflict ever comes to a breaking point, the boyfriend cannot claim surprise or ignorance when she says <em>“I’ve made my decision to no longer be in a relationship with you, because I need to feel beautiful to my man at all times, and I’ve already told you that you do things which make me feel the opposite even though that’s not your intention.”</em></p>

<!-- What she should communicate, is that in her view of the world, the point of an exclusive relationship is that both people promise to have sex only with each other, which means that when either person rejects the other sexually, to her it feels like the other person doesn't think of their relationship as a serious one. -->

<p>To solve the other two examples above: you don’t say <em>“If you ever slap me again, we are done.”</em> but you say <em>“I know you are not trying to physically hurt me and I’m not physically hurt, but to me, when I use any kind of violence (slapping, shoving, kicking, pinching, …) it is exclusively when I intend to hurt someone and when I don’t respect the other person’s body. So, when you do any of these things, I feel unsafe and a lack of respect.”</em> And finally, you don’t say <em>“If you ever insult my mother again, we’re done.”</em> but rather <em>“I really value family and an insult to my family is an insult to me.”</em> If this situation ever boils over, it is perfectly reasonable to say <em>“I cannot be with someone if I feel insulted by them, and as I have said, your repeated insults of my family felt like insults to me every time.”</em></p>

<!-- 2026-01-24 -->

<h1 id="what-if-i-do-it-anyway">What if I do it anyway?</h1>
<p>This article distinguished two classes of authentic opinions that may upset your spouse (or friend, or maybe even family member, etc.): those for which it is productive to speak them – among which personal boundaries – and those for which it’s not.</p>

<p>A natural objection to the latter is that having to consider which opinion not to speak is an indicator of emotional unsafety in the relationship. As I showed, not all omissions are necessarily motivated by walking on eggshells: for example, it’s just unkind to insult your spouse, regardless of whether they get mad or sad about it. The driving motivator for the silence is not fear. But the question still stands: let’s say you <em>do</em> do the unkind thing, then shouldn’t the other person still remain emotionally safe for you? Shouldn’t you be able to make inconsiderate mistakes and recover from them?</p>

<p>The answer is yes in some sense, because the relationship should not be punished for the fallibility of the humans involved. However, there is a very big difference between <em>fallibility</em> and <em>callousness</em>. A person who says <em>“It should be safe for me to say whatever I want to say”</em> may either add to it <em>“…because I don’t always know when I’m inconsiderate, and I hope to receive some grace for those lapses in judgement.”</em> or they might add to it <em>“…because my spouse shouldn’t be so immature to care about how and when I deliver any of my opinions – it’s not my problem she can’t cope with them without getting emotional”</em>. One hopes for mutual care, the other hopes to bulldoze his spouse who is only human.</p>

<p>I used to be that bulldozer. I’ve since learnt that humans are unfortunately animals, not computers.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>Firstly, beauty is largely objective and linked to signs of health (which is why animals without societies have a sense of beauty too), and besides, somebody’s subjective taste is narrower than “all bodies”. Secondly, bodies don’t magically change. They may age, but aging takes almost a century, not the handful of months of calorie surplus and lack of movement that will turn a healthy body into a fat body. Yes, that also holds for the vaunted <a href="https://www.health.harvard.edu/blog/surprising-findings-about-metabolism-and-age-202110082613">mythical excuses</a> of “menopause” and “slowing metabolism”, wherein weight gain is still always preceded by <em>too much eating and not enough movement</em>. Thirdly, if you have any sort of care for your spouse, you should want them to be pleased with whom they chose to commit to. In the Christian ethic, this is why the husband’s body belongs to his wife and vice versa (1 Cor 7:3-5), and indeed, if you are the steward over someone else’s possession (e.g. you are house-sitting), it is your duty to look after it. Fourthly and finally: nobody buys a car for the doors, but you would be rightfully upset if the dealership came to your house one day and stole your car doors. The car would still drive perfectly fine, but it would be a significantly different car and it would be ridiculous that you being upset would be evidence that you “only cared about the doors”. Similarly, we get into a relationship with a body and a soul, and when one changes significantly, we should not be shamed by manipulators when we notice that it’s no longer the same body and soul we committed ourselves to. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Thomas Bauwens</name><email>tbauwenszaken@gmail.com</email></author><category term="posts" /><category term="relationships" /><category term="general" /><summary type="html"><![CDATA[Some hard conversations should probably never be had.]]></summary></entry><entry><title type="html">Don’t be lulled into just existing together</title><link href="https://bauwens.dev/posts/relationships/marriage/2025-12-23-Quality-time/" rel="alternate" type="text/html" title="Don’t be lulled into just existing together" /><published>2025-12-23T00:00:00+00:00</published><updated>2025-12-23T00:00:00+00:00</updated><id>https://bauwens.dev/posts/relationships/marriage/Quality-time</id><content type="html" xml:base="https://bauwens.dev/posts/relationships/marriage/2025-12-23-Quality-time/"><![CDATA[<p>Recently, I have gotten closer with one of my female friends. We met through a shared activity, started having conversations, and since we both enjoyed those a lot, we started sharing more activities together. In the process, I learnt an important life lesson.</p>

<ol id="markdown-toc">
  <li><a href="#why-do-couples-get-together" id="markdown-toc-why-do-couples-get-together">Why do couples get together?</a></li>
  <li><a href="#dating-is-an-end-not-a-phase" id="markdown-toc-dating-is-an-end-not-a-phase">Dating is an end, not a phase</a></li>
  <li><a href="#and-they-were-roommates" id="markdown-toc-and-they-were-roommates">“…And they were roommates.”</a></li>
  <li><a href="#wife-deserves-more-than-life" id="markdown-toc-wife-deserves-more-than-life">Wife deserves more than life</a></li>
  <li><a href="#this-is-not-cliché" id="markdown-toc-this-is-not-cliché">This is not cliché</a></li>
</ol>

<h1 id="why-do-couples-get-together">Why do couples get together?</h1>
<p>If you are a married 21st-century Westerner, it’s likely that your marriage was not arranged and thus that you chose your spouse – hopefully with discernment and from an abundance of options (but that’s a different essay). To figure out whether someone should be chosen by you or not, you put them through a sequence of challenges which measure their character and compatibility, which altogether we call “dating them”.</p>

<p>If someone fails these challenges, you stop striving to spend more time together. When they don’t fail them, you stay together, and your lives intertwine: eventually you move in together, eat the same food, drive the same car, sleep in the same bed, and so on.</p>

<p>Obviously, there can be only one motivation for transitioning from a dating situation to this kind of situation: <em>“We like spending time with each other. We want to spend even more time with each other than we already do. The only way to do so, is to also be together outside of our dates.”</em> And this seems fine on the surface. But there is a problem.</p>

<h1 id="dating-is-an-end-not-a-phase">Dating is an end, not a phase</h1>
<p>As discussed above, we view dating as a test to be passed before moving on to other activities. It is an early station on the conveyor belt of a relationship. I think this view is wrong.</p>

<p>We decide whether <em>spending more time</em> with someone would be fun when <em>dating them more</em> would be fun. It is as if we assign the joy of dating someone merely to the person, rather than to the act of dating with that person, because we think of dating as qualifying a person, rather than qualifying them in that specific activity.</p>

<p>And that may be true <em>when we reject someone</em>. Indeeed, if someone is not fun to date, spending time with them outside of dates certainly cannot be more fun, because they are still the same person. But when you don’t reject someone, you are measuring two things: firstly, that you cannot be certain about this person being unenjoyable (so far, you have enjoyed them), and secondly, that you can be certain about enjoying dates with them.</p>

<p>We forget this last part and generalise it to daily life. The logical fallacy goes something like this: we correctly deduce that</p>

\[\begin{aligned}
&amp;\text{dating her} &amp;&amp;\Rightarrow &amp;&amp;\text{spending time with her}\\
&amp;\text{dating her} &amp;&amp;\Rightarrow &amp;&amp;\text{joy} \\
\end{aligned}\]

<p>and yet, we then feel that</p>

\[\text{spending time with her} \Rightarrow \text{joy}\]

<p>which is indeed an incorrect deduction. (Beware: the fact that this is false does not mean that \(\text{spending time with her} \Rightarrow \text{lack of joy}\) is true. Assuming so would just be making a different<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> logical fallacy.) It goes without saying that you should try to spend your life with someone you can have fun with even in casual moments, but regardless of how playful you are with each other in everyday life, that isn’t why you got together originally.</p>

<p>Note that what I am not trying to describe is the idea that you shouldn’t confuse your enjoyment of the experience with your enjoyment of the person. (E.g.: maybe you feel good because you like a free dinner, not the guy attached to the wallet. Maybe you like how good the sex you have feels, but you don’t like the person themselves.) This is a valid concern too, but I assume in the context of this article that if someone enjoys a date, they also enjoy the person they’re doing it with.</p>

<h1 id="and-they-were-roommates">“…And they were roommates.”</h1>
<p>Let’s make this concrete. My friend and I like having long conversations, where indeed we spend hours together, sitting in private and talking face-to-face. We concluded that we should synchronise our gym schedules so as to increase the amount of time we would be in each other’s presence. To increase it further, we also synchronised the dancing events we’d show up at, and we sometimes cooked and shopped together.</p>

<p>And what was the result of spending all this extra time with each other? We felt bored and missed each other. Why? Because the one thing we were not doing anymore, since we were under the impression that we were now budgetting more time for each other than before, was being together for no other purpose than sitting down to have a conversation. The many more interactions we were having were of lower quality. Functional. Dry. Quotidian. Never enough time or privacy to have any meaningful conversation for the sake of the conversation. Talking was now just a tool: “I’m writing that report for my machine design class.” “Hurry up, we’ll be late.” “If you do this exercise with a cable, the resistance path is better.” “I asked the DJ for a good song, let’s dance the next one.” “I like the red bra more than the black one.”</p>

<h1 id="wife-deserves-more-than-life">Wife deserves more than life</h1>
<p>Mind you, I came to this conclusion after one month of structuring our lives in this way. Not a year, not a decade. The estrangement started after a month. And this was not even in the context of a marriage, but a friendship. Now imagine how long and hard you could miss someone if your entire lives are intertwined: you may be together 24/7 for a decade of marriage, and yet <em>never actually do that for which you married</em>.</p>

<p>As a future husband, the conclusion is clear: <strong>if you love your wife, do more with her than just spend your life with her.</strong></p>

<p>I am specifically not saying this in the cucky rom-com servant sense of “every month you should spoil your wife like the queen she is to glorify her contributions to the household”. This is completely irrelevant here. What I am saying is that you should not lose sight of why you got together in the first place: you liked having dates with each other. That’s very different from just being in each other’s presence, even if they are a pleasant person.</p>

<h1 id="this-is-not-cliché">This is not cliché</h1>
<p>Finally: yes, it is fairly common advice given to married couples that they should go on dates to “keep the spark alive”. But this is never actually framed the way I have above. It is framed as “it’s important to spend time together” because your jobs and errands have made even physical presence scarce. Or it is framed as “you should treat yourselves to something special every so-often” because the responsibilities of adulthood have stressed you out so much that you need to spend money on yourself to briefly feel like a person again, like a child that needs to receive a lollipop to digest the horror of a routine doctor’s visit.</p>

<p>None of these framings refer to my perspective, which is that <strong>when you feel that you want to spend more time with someone, prioritise spending that time in the way that caused that feeling</strong>. As explained above, there is no other activity where this applies more universally than dating: if you still want to hang out after a sequence of dates, the only possible reason is specifically that sequence of dates, and since any relationship involves a sequence of dates, the motivating reason to start them is in some sense always because two people liked the activity of dating the other person.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>If \(P \Rightarrow Q\) is false, that does not mean \(P \Rightarrow \neg Q\) is true. Let \(P\) be “has four legs” and \(Q\) be “is a dog”. Then the fact that “has four legs \(\Rightarrow\) is a dog” is false (it might be a cat, or an elephant, or a giraffe, or …) does not mean that “has four legs” \(\Rightarrow\) “is not a dog” (or the converse:  “is a dog \(\Rightarrow\) doesn’t have four legs”). <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Thomas Bauwens</name><email>tbauwenszaken@gmail.com</email></author><category term="posts" /><category term="relationships" /><category term="marriage" /><summary type="html"><![CDATA[When spending time with someone, prioritise spending it in the same way that made you want to spend more time with them.]]></summary></entry><entry><title type="html">Only free speech can save anxious-avoidant relationships</title><link href="https://bauwens.dev/posts/relationships/dating/2025-12-11-Anxious-avoidant-free-speech/" rel="alternate" type="text/html" title="Only free speech can save anxious-avoidant relationships" /><published>2025-12-11T00:00:00+00:00</published><updated>2025-12-31T00:00:00+00:00</updated><id>https://bauwens.dev/posts/relationships/dating/Anxious-avoidant-free-speech</id><content type="html" xml:base="https://bauwens.dev/posts/relationships/dating/2025-12-11-Anxious-avoidant-free-speech/"><![CDATA[<p>Breakdown in communication is probably the most common reason for breakups. I have, however, had two short-lived relationships where by the end, breakdown in communication was the reason I didn’t break up sooner. Having recently read a book on attachment styles, I think I can now piece together why.</p>

<ol id="markdown-toc">
  <li><a href="#attachment-theory" id="markdown-toc-attachment-theory">Attachment theory</a>    <ol>
      <li><a href="#what-is-an-anxious-person-like" id="markdown-toc-what-is-an-anxious-person-like">What is an anxious person like?</a></li>
      <li><a href="#what-is-an-avoidant-person-like" id="markdown-toc-what-is-an-avoidant-person-like">What is an avoidant person like?</a></li>
    </ol>
  </li>
  <li><a href="#anxious-avoidant-relationships" id="markdown-toc-anxious-avoidant-relationships">Anxious-avoidant relationships</a>    <ol>
      <li><a href="#why-would-these-people-get-together" id="markdown-toc-why-would-these-people-get-together">Why would these people get together?</a></li>
      <li><a href="#conflict-between-anxious-and-avoidant" id="markdown-toc-conflict-between-anxious-and-avoidant">Conflict between anxious and avoidant</a></li>
      <li><a href="#self-censoring-hostage" id="markdown-toc-self-censoring-hostage">Self-censoring hostage</a></li>
      <li><a href="#why-do-they-stay-together" id="markdown-toc-why-do-they-stay-together">Why do they stay together?</a></li>
      <li><a href="#what-is-love" id="markdown-toc-what-is-love">What is love?</a></li>
    </ol>
  </li>
  <li><a href="#free-speech-is-the-antidote-to-disordered-attachment" id="markdown-toc-free-speech-is-the-antidote-to-disordered-attachment">Free speech is the antidote to disordered attachment</a></li>
</ol>

<h1 id="attachment-theory">Attachment theory</h1>
<p>For the uninitiated: there exists a quadrant model of how humans react to receiving romantic affection, called <em><a href="https://en.wikipedia.org/wiki/Attachment_in_adults#Styles">attachment theory</a></em>. It categorises people’s behaviour (not necessarily the people themselves) into at least three archetypes: <em>securely attached</em>, <em>anxiously attached</em> and <em>avoidantly attached</em>. If you have ever had an uncomfortable relationship or recurrent patterns in your relationships, you might want to consider applying the latter two archetypes to you and your partners to see if there’s a match.</p>

<!-- 2024-12-17 -->

<h2 id="what-is-an-anxious-person-like">What is an anxious person like?</h2>
<p>In <a href="https://www.goodreads.com/book/show/43866615-exhausted-wives-bewildered-husbands">Adam Lane Smith’s book “Exhausted Wives, Bewildered Husbands”</a>, he describes insecure attachment (but it seems to mostly apply to the anxiously attached) as the feeling that “people will actively fall out of love with them every moment they are not refilling the person’s pleasure meter”. In other words, they feel that their spouse’s love is held in a leaky bucket – a <a href="https://en.wikipedia.org/wiki/Dana%C3%AFdes">Danaidal tub</a> – which they are doomed to attend to indefinitely so as to not be abandoned. In a sense, they don’t believe a relationship can just be alive, since they’re performing CPR on its unconscious body from day one, constantly checking its pulse and breathing and sending shocks through it just to get some semblance of it being there. You can liken it to impostor syndrome, where, despite sustained evidence of a state you find yourself in, you refuse to believe you are in it.<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup></p>

<p>What are these people like in a relationship? Their behaviour is classifiable into two categories: stress and damage control. The stress of their anxiety expresses itself as emotional volatility, drama, and panic. To an anxiously attached person, a relationship is like dry sand slipping through their fingers, so they can never be at peace. To defend against this perceived looming breakup, they are persistently in crisis management, squeezing the sand tightly: showing jealousy about people of the same sex who appear in the other person’s life, being clingy (over text or physically) so the other doesn’t forget about them, and being very sexual very quickly – because they know that as long as the pleasure hormones keep flowing, they will stay. It has also been said that drama may serve a similar role as sex: as <a href="https://www.reddit.com/r/attachment_theory/s/vMHUZ3A4cK">one person on the attachment theory subreddit</a> recounted, “I was looking for emotional connection, and since I did not get it during normal times, the very few moments I felt we were both present in the moment and emotionally involved was either when we made love or when we fought.”</p>

<p>Anxiously attached people can regulate themselves with cognitive behavioural therapy, and raising their standards: love is not earned, it is just present, and staying emersed in relationships where this is not the case will condition the mind. I am reminded of a quote David Meessen sometimes raises: “If it’s meant to be, there is nothing you can do to cause it to fail. And if it’s not meant to be, there is nothing you can do to prevent it from failing.”</p>

<p>From introspection, I think I personally have some anxious tendencies, but they mostly remain in my head: I don’t love-bomb, I am not dramatic or volatile, and I don’t try to lure people in with sex. I do get stressed about someone losing interest when I’m dating them, probably because I take it as condemnation of my personality, and because we will then miss the opportunity to explore our full potential together looking past our differences, and because I’m not convinced I’ll have another chance with someone else if this doesn’t work out. If a relationship ends, I must know that at least we didn’t leave anything on the table that “could have been” by making the impulsive mistake of separating. My anxiety manifests as overthinking about all possible futures I could have with people after our very first interaction – you know, when I know as little as possible about them or about whether their interest is reciprocal – since I want to choose the one path that has the most to offer. (To guard myself against this rather unpleasant preoccupation, I try to tamp down my interest and forget about them, i.e., forcing myself to be avoidant e.g. by not becoming addicted to texting them.) <em>Fear of scaring away</em> is why I’m hesitant to speak up critically against a person I’m dating, despite being an extremely disagreeable person in every other aspect of life.</p>

<h2 id="what-is-an-avoidant-person-like">What is an avoidant person like?</h2>
<p>At the base of avoidance (which I am also familiar with), as with all dysfunctional attachment styles, is insecurity. For me, I struggle with a crippling fear of disappointing others, wronging them, and generally doing or saying anything that makes them want to cut me off – the equivalent of kids no longer wanting to play with me on the playground. And, importantly, the way I mitigate against these things is not by constantly proving that I am worthy of someone’s love, but rather keeping enough distance so that such things just never start becoming possible.</p>

<p>Indeed, the driving force underneath avoidant and anxious attachment is fear. Perhaps I should nuance that the fear I feel has less to do with the feeling “their love is slipping away” and more to do with dreading sudden antisocial embarrassments. A fear of ostracisation;<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> a fear of having blind spots that brand me as an “unfit” human for future relationships; a fear of being exposed to the community; not a fear of abandonment. Anxious people also tie their self-worth to their fitness in relationships, but they are much less preoccupied with “people will think I am bad if I ruin this” and much more with “I will be bad if I ruin this”. They see the <em>relationship</em> as potentially doomed, whereas as an avoidant, I see <em>myself</em> as potentially doomed.</p>

<p>That part of me which is avoidant is much more about not wanting to be a bad person. <em>Fear of disappointing</em> is why I’m hesitant to express anything I like about someone I date, because in the (likely?) event it doesn’t work out with her, I can’t take those words back and I will have built up false hope. So, to avoid building false hope as much as possible, I basically starve the other person of any sign that tells them I’m “bought in”. And, the more avoidant someone is by nature, the less their behaviour is conditioned on the other person: if they are a true maximiser, they will never be satisfied by the other person’s qualities. They will never let a person come too close because there is <em>always</em> someone better out there.</p>

<p>There is a second reason for avoidance which derives from the same insecurity as the anxiously attached may have: “If you just knew me well enough, you wouldn’t want to be with me…” An anxious person is someone who then concludes they have to manipulate you into thinking they’re actually great by serving all your needs, distracting you enough to never start doubting your love. An avoidant person is someone who, rather than concluding that they should construct a mask, concludes they should just withhold enough information so it’s never clear who they are, what they think of the other person, and at what stage they feel the relationship is.</p>

<p>In my case, I am actually quite well-aware of which parts of my upbringing and past social situations all of these fears stem from (there’s nothing coincidental about any of the above) and it’s my responsibility to tell myself antidotal stories to be better-regulated.</p>

<h1 id="anxious-avoidant-relationships">Anxious-avoidant relationships</h1>
<h2 id="why-would-these-people-get-together">Why would these people get together?</h2>
<p>To start: it is sometimes said that anxiously attached people and avoidantly attached people are <em>attracted</em> to each other. This does not really make that much sense to me: the last thing an avoidant person would want is somebody with high emotional needs, and at the same time, an anxious person discovering their partner to be avoidant will be devastating rather than sexy, since they will chase their validation forever. According to <a href="https://www.therapyjeff.com/videos/why-anxious-and-avoidant-partners-are-attracted-to-each-other-how-to-make-it-work">Therapy Jeff</a>, the anxious-avoidant dynamic is attractive because it supposedly stems from some kind of need to verify that we really do have the attachment style we somehow know we have. A needy person, somehow self-aware of their neediness, seeks to confirm this by finding somebody who definitely cannot satisfy those needs. A distant person seeks to confirm their detachment by finding somebody for whom no amount of intimacy (emotional or sexual) suffices, and this feeling of “never being enough” reinforces the story they tell themselves.</p>

<p>I only half buy this explanation. I believe that the inception of these dynamics, i.e. why these people <em>enter</em> relationships with each other, is mostly just a statistically likely coincidence: many women have anxious attachment issues (because avoidant fathers fail to show their daughters unconditional love) and many men have avoidant attachment issues (because anxious mothers dominate their husbands and sons with nuclear meltdowns that threaten the end of the relationship when they sense disagreement). What I want to focus on is why these dynamics sustain themselves, not how they are created.</p>

<p>Part of it is that humans can be addicted to strong emotions and to validation chasing. However, more interesting to me is to point out the absence of an essential value between these couples, which keeps them stuck in their personal hell. I am talking about freedom of speech.</p>

<!--
Anxious-avoidant relationships are sometimes portrayed like we do ionic bonds in chemistry: a positive particle is attracted to a negative particle due to electrostatic force, so they will come together and then stick together.

I will argue, however, that a better analogy is that the anxious-avoidant bond is like the bond between two positively charged particles, like two protons: at a distance, they will stay far away from each other due to electrostatic repulsion, and yet if you bring them close enough, the repulsion is overcome by the residual strong force, making them stick together into an atomic nucleus with a lot of energy needed to separate them. This, I believe, is a better model of anxious-avoidant relationships.
-->

<!-- 2025-12-11 -->

<h2 id="conflict-between-anxious-and-avoidant">Conflict between anxious and avoidant</h2>
<p>Let us put these two people together. To make it as applicable as possible on average, let’s assume we have an avoidant(ly attached) man and an anxious(ly attached) woman.</p>

<p>At the start of the relationship, the man has no idea whom he is dealing with, so naturally, he will try to keep his affection neutral so the woman doesn’t get her hopes up more than needed. She senses that he is slipping away from her, so she becomes stressed and exhibits her two behaviours: the stress makes her less happy company, and to fix it, she will start trying to get his attention more. This will feel invasive to him and make him uneasy. Then, because he holds truth in high esteem and because the idea of boundaries sounds fantastic to him, there comes a point at which for the first time, he opens up about something she does which he doesn’t like.</p>

<p>She hears this as deep rejection; as if the heart monitor of her relationship just flatlined, beeping loudly. She may also carry either perfectionism or an aggrandized ego, which make her even more unable to cope with his observation – which he has delivered from a place of love and a hope for mutual communication. She is taken over by her panic, anger and sadness, loses control of herself, and has a meltdown. She might say things she doesn’t mean, act out physically, or whatever else the more reflexive mammals do when they are upset. Alternatively, she sees this as an inroad to final inject some emotional aliveness into her relationship, and riles herself up voluntarily.</p>

<p>Any normal person would be taken aback by their conversational partner, letalone their significant other, losing control of themselves. It is difficult to deal with by default: it is unexpected and uncomfortable, you feel guilty for causing it, and yet you seem powerless since you were probably never taught <a href="https://youtu.be/q8CHXefn7B4">hostage negotiation tactics</a>. An avoidant person, in addition to this general shock, is stimulated to become more avoidant, regardless of the underlying cause of his avoidance.</p>

<p>If he fears attachment because he believes the relationship will be doomed once she discovers his true self, he interprets the outburst exactly like that: he showed a bit of his authentic self, and it indeed has put the relationship under threat.</p>

<p>If he fears attachment because past experiences have convinced him that stable, trustworthy, unconditional love isn’t real, he interprets the outburst as proof that whatever peace he thought existed was once again a lie. The fact that he still feels affected, despite “knowing” things were always “too good to be true”, is a sign to him that he was too invested and thus he must pull back more.</p>

<p>If he fears attachment because he is a doubter who doesn’t want to hurt her by building her up, then the fact that she is now hurt anyway makes him draw two conclusions: first, he has personally failed in his goal of protecting her feelings, and the reason for this must be that he was not avoidant enough to keep her from attaching. Second, the outburst confirms that indeed he is dealing with a person whose feelings are easily hurt, justifying the need for avoidance.</p>

<h2 id="self-censoring-hostage">Self-censoring hostage</h2>
<p>Speaking his authentic concerns thus gives him feedback that pushes him towards being more distant, opaque, estranged, dry, cold, closed-off, unauthentically agreeable, … Even outside of conflict, he will now self-censor.</p>

<p>Consider this: a hostage is someone who stays alive if and only if the demands of another person are obeyed. As noted by Adam Smith, you could similarly say that the love and peace in this kind of relationship – and perhaps the relationship itself – are <a href="https://www.instagram.com/reel/C_vYyJJO94_/">hostages of the anxious person’s volatility</a>: they cannot live unless the other person pays with his silence.</p>

<!-- 2025-12-31 -->

<p>I should be careful blaming <em>avoidance</em> for this reluctance to speak when speaking is met with distress. <a href="https://www.instagram.com/reel/DM8nzF1yCp6/">As pointed out by Alison Armstrong,</a> if somebody blows up persistently whenever an authentic but uncomfortable truth is shared, then the person who shared it will just naturally figure out the uselessness of being honest. In the best case, the volatile person will blow up because they have no control over their internal state; in the worst case, they blow up to manipulate the other into abdicating the truth and agreeing with them. In either case, when the other has a conviction about something in the relationship, what can he do? He cannot control having his conviction; he could change it of course, but he cannot know which of the two she agrees with. So, he has two choices. One is that he has the conviction in his head, doesn’t speak it, and the peace is kept. The other is that he has the conviction in his head, speaks it, and either the peace is kept or a meltdown ensues whose ripples could be felt for an arbitrary amount of time afterwards. The upside he sees of sharing his conviction cannot outweigh such a cost, so he retreats, and the couple grows disconnected.</p>

<p>What is true, is that an avoidant will view all of this through a distorted lens and blame himself. Each meltdown, and the broader situation of terror, is a deep personal failure. A secure person would simply see things for what they are externally, without letting them influence his internal frame.</p>

<p>It is actually quite ironic that the hostage-taker, that is, the one to threaten the relationship, is the person with the attachment style that otherwise chases to try to get as close as possible. It should clearly be the avoidant who is pushing away, yet he’s now passively being pushed away.</p>

<h2 id="why-do-they-stay-together">Why do they stay together?</h2>
<p>An anxious person will already do quite a lot of the heavy lifting to keep a relationship going. You might even break up with them and find out that they think a breakup requires consent from both parties (yes, this is something that actually happened to me).</p>

<p>The reason the relationship lasts even longer with an avoidant person is simply that he will self-censor himself out of the breakup talk. If you are terrorised into not bringing up small inconveniences, then the earth-shattering inconvenience of “I don’t want to be with you anymore, and the decision is final” is off-limits. So you just stay. Unhappy and silent.</p>

<h2 id="what-is-love">What is love?</h2>
<p>Jimmy On Relationships has a video where he models <a href="https://www.instagram.com/reel/DDHpYciMTAI/">how to bring up the hard truth of not being able to bring up hard truths to a person to whom you cannot bring up hard truths</a>. I think his model conversation sounds good on paper, and indeed it would be a good attempt at making someone introspect, but it requires that the listener is open to perceived criticism, so in practice this will be futile. However, what he does get right, at the end of the video, is what the consequences are of not being able to share what is on your heart: lack of trust and emotional connection, and therefore a lack of friendship, intimacy, and sense of safety.</p>

<p>I would define “love” as <em>the commitment to not run away from someone when they reveal their imperfections.</em> This is reminiscent of <a href="https://www.tiktok.com/@thespanishchick/video/7357365331700059435">one of my favourite videos about relationships</a>, which advises that <em>“you could have a good time with anyone; marry some you can have a bad time with”.</em> This has become unclear in a time of frivolous divorce (and thus frivolous marriage), but theoretically, the idea that <a href="https://youtu.be/IRCZ1Mt2a8M?t=2632">“love means not running away”</a> is baked into the ritual of marriage. When two people love each other, the culmination of that love is to engage in a ritual (which we call a wedding) that could revolve around any part of their relationship. Yet, the ritual centers around the idea that they will, officially, never run away from each other.</p>

<p>So then, you could wonder whether a relationship without honesty is a relationship at all; if you are met with pure contempt and intolerance every time you reveal something which collides with the other person, there is no love there from their side. Some would say love <em>is</em> trust, but arguably, trust is a symptom of love – if the <em>other</em> person won’t run away (they have love), then <em>you</em> can trust them (you have trust) – and therefore a lack of trust is a symptom of a lack of love.</p>

<!-- 2025-12-11 -->

<h1 id="free-speech-is-the-antidote-to-disordered-attachment">Free speech is the antidote to disordered attachment</h1>
<p>Both attachment styles are based on fear of authentic speech: avoidance makes one fearful to share and receive positive opinions, anxiety makes one fearful to share and receive negative opinions, and it pushes the other into the same fear. The result is inauthenticity. Self-censorship. Being emotionally closed-off. Pretending to be indifferent.</p>

<p>Both attachment styles prevent building anything long-term. The anxious will tear down whatever is built with her impostor syndrome. The avoidant will try to prevent any building in the first place due to his indecision and fear of disappointing.</p>

<!-- 2025-12-31 -->

<p>The only way to break the cycle is to learn to speak your mind and to agree to hold space for the other to speak their mind: the avoidant must learn that people are resilient<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup> enough to cope with the inevitable hurt of a potential breakup, and the anxious must learn that raising problems comes from a place of love, good faith, and wanting connection.</p>

<p>This culture of free speech<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup> is the only way. It won’t be easy. The avoidant will feel like quitting because he does not trust that the minefield he is walking across is safe. The anxious will feel like crying. In both cases, what is necessary is showing self-awareness of the threatening behaviour, and reassurance of the other’s safety. The avoidant might say: “I’m feeling uneasy in this conversation, but it’s not your fault. I know you’re trying to be receptive to what I have to say. Can we separate for 15 minutes? I promise I’m not resentful, I promise that I love you, and let’s pick up where we left off after that.” The anxious might say: “These tears are not your fault. I’m just having a hard time. Can we hug and separate for 15 minutes so I can calm down? I promise I can handle it without affecting our peace.”</p>

<p>Finally, a note on sexual attraction: I can promise to avoidant men that women find it <em>sexy</em> when a man dares to speak authentically, and I can promise to anxious women that men find it <em>sexy</em> when a woman can be held accountable with grace.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>We are not concerned here with how someone <em>becomes</em> like this. If I, an idiot, had to speculate, I’d say it is probably a combination of innate neuroticism and some kind of disordered parenting, both of which cause someone to be highly insecure about others actively wanting to be with them. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>People who have known me for at least 5 years (since 2021 or before) may find my accounting above surprising, since I am sort of known in small and wide social circles as a disagreeable, controversial, against-the-grain, solitary person. I have a publicly documented history of not following crowds, and it has made me <em>persona non grata</em> in many places. The difference is that I don’t <em>need</em> nor <em>care about</em> any of the countless acquaintances who think I am an insensitive asshole. Sure, all conflicts and social rejections give me a knot in my stomach, but I am not afraid of them before they happen. I guess I assign orders of magnitude more to losing respect and adoration of someone whom I respect and adore. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p>Yes, even the anxiously attached men and women who threaten to commit suicide when you break up with them. That is an actual hostage situation I had the misfortune to experience, and guess what, she is still alive. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
    <li id="fn:4" role="doc-endnote">
      <p>Yes, technically the term “free speech” is reserved for the inability of the government to punish legal entities for expressing themselves, but you get the idea. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Thomas Bauwens</name><email>tbauwenszaken@gmail.com</email></author><category term="posts" /><category term="relationships" /><category term="dating" /><category term="Attachment" /><summary type="html"><![CDATA[A look at attachment styles from the perspective of self-censorship.]]></summary></entry><entry><title type="html">Dance is walking.</title><link href="https://bauwens.dev/posts/tutorials/dancing/2025-10-11-Dance-is-walking/" rel="alternate" type="text/html" title="Dance is walking." /><published>2025-10-11T00:00:00+00:00</published><updated>2025-10-13T00:00:00+00:00</updated><id>https://bauwens.dev/posts/tutorials/dancing/Dance-is-walking</id><content type="html" xml:base="https://bauwens.dev/posts/tutorials/dancing/2025-10-11-Dance-is-walking/"><![CDATA[<p>My friend Vuk Vuković, whom I met through dance and who has taught me to be bold about the philosophy of dance, once gave a one-minute speech on a square in my home town summarising the essence of <em>son</em> dance. <a href="https://www.instagram.com/p/DQuILnwjTiO/">I happened to film it.</a> As he reflected later, it was actually a perfect summary of all partner dances worth their salt. I have since spread his sermon to many people, and it ties into some other thoughts and experiences I’ve had recently.</p>

<ol id="markdown-toc">
  <li><a href="#dance-is-walking" id="markdown-toc-dance-is-walking">Dance is walking.</a></li>
  <li><a href="#you-already-know-how-to-walk" id="markdown-toc-you-already-know-how-to-walk">You already know how to walk.</a>    <ol>
      <li><a href="#an-anecdote" id="markdown-toc-an-anecdote">An anecdote</a></li>
      <li><a href="#how-is-this-even-acceptable" id="markdown-toc-how-is-this-even-acceptable">How is this even acceptable?</a></li>
      <li><a href="#teacher-induced-psychosis" id="markdown-toc-teacher-induced-psychosis">Teacher-induced psychosis</a></li>
      <li><a href="#culture-induced-psychosis" id="markdown-toc-culture-induced-psychosis">Culture-induced psychosis</a></li>
    </ol>
  </li>
  <li><a href="#here-are-the-cases-im-not-making" id="markdown-toc-here-are-the-cases-im-not-making">Here are the cases I’m not making.</a>    <ol>
      <li><a href="#revisiting-the-backstepping-debate" id="markdown-toc-revisiting-the-backstepping-debate">Revisiting the backstepping debate</a></li>
      <li><a href="#relativism" id="markdown-toc-relativism">Relativism</a></li>
    </ol>
  </li>
  <li><a href="#empowerment-not-relativism" id="markdown-toc-empowerment-not-relativism">Empowerment, not relativism</a></li>
  <li><a href="#conclusion" id="markdown-toc-conclusion">Conclusion</a></li>
</ol>

<h1 id="dance-is-walking">Dance is walking.</h1>
<p>Here is the beautiful quote which I have preached as gospel since Vuk uttered it:</p>

<blockquote>
  <p>That’s the dance. Dance is walking; in the frame, and on the rhythm. Nobody can teach you this, because you already know this: you know how to walk.</p>
</blockquote>

<p><strong>Frame</strong> here is to be seen in the broad sense: it encompasses not just closed frame (casino’s posición cerrada), but also the tension you keep with only one point of connection (casino’s posición abierta and caída) and the <em>attention</em> you keep when there are no points of connection. Frame also interacts with <strong>rhythm</strong>, since it is the leader’s frame that signals to the follower what the count is, i.e. when the follower should shift her weight to which foot in order to be synchronised with him.</p>

<p>The above is an essential mechanical mindset when learning to dance. My personal view of how casino should be taught and thought of – using <a href="https://bauwenst.github.io/posts/tutorials/dancing/2024-12-29-Casino-positional-systems/">positional theory</a> – is a higher-level implementation of this general mindset: once you know <em>how</em> to walk, you can learn <em>where</em> to walk.</p>

<p>Yet, you will struggle to find a single casino teacher who teaches either of the above mindsets. This is where most beginners’ problems originate.</p>

<h1 id="you-already-know-how-to-walk">You already know how to walk.</h1>
<h2 id="an-anecdote">An anecdote</h2>
<p>A couple months ago, I danced with a middle-aged woman who had been dancing for 14 years. Yet, her casino was mediocre. Chaotic. Imbalanced. Tense.</p>

<p>She came to me after we had danced and confessed that she struggled coordinating her feet with the rest of her body. I then compelled her to forget that there ever existed precise step patterns, because thinking that there was anything to “coordinate” was exactly the problem: when you walk around your house eating a bowl of cereal, your feet don’t stop working despite moving a spoon with one hand and balancing a bowl of milk in the other. There is no “coordination” to do because you are not conscious of the pattern traced by your feet. I then asked her to instead (1) walk like she would otherwise walk, (2) be aware of the fact that she could walk to my left or to my right, and (3) to keep a frame so I could communicate with her where to walk.</p>

<p>The very next dance we did – actually, I just stopped talking and kept leading to the song that was already playing – shocked me. It was like dancing with a completely different person. From being lost on the floor to dancing textbook-perfect casino. I have never seen someone improve by an order of magnitude this fast, and she was herself so surprised by this newfound ease that she invited me to dinner to show her gratitude.</p>

<h2 id="how-is-this-even-acceptable">How is this even acceptable?</h2>
<p>Inevitably – it doesn’t have to be, but it is – you will see people on the dance floor, in class or at socials, who move their legs as if they are recent stroke victims or a baby giraffe, despite having taken weeks or months or even years of classes.</p>

<p>They stumble clumsily and rigidly through a song, barely managing to not fall over due to large steps far from their centre of mass forwards or backwards, perhaps even pulling on their dance partner to avoid this,<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> sometimes hopping from leg to leg or unconvincedly feeling out the ground in front of them, and in some cases even seemingly surprised that every 8 counts follow each other with equal spacing between (followed by another 8 counts that are spaced the exact same way, and so on).</p>

<p>And yet, minutes earlier, <em>these same people walked into the room with upright posture, small steps without hesitation, and a periodic gait</em>. There was no struggle. They walk forwards, because walking backwards would be inefficient. They walk upright, because if they would lean back over one of their feet, they would fall over due to lack of another force rotating them forwards. They walk with small steps, because a big step forwards takes away momentum and is hence inefficient, and legs spread apart too far trap the weight on both feet, which requires too much time to recover from. They don’t hop because it is entirely useless. They are not afraid of the ground they walk on. They walk perfectly periodically, and they don’t even need music to keep them timed.</p>

<h2 id="teacher-induced-psychosis">Teacher-induced psychosis</h2>
<p><strong>We all know how to walk.</strong> It is severe malpractice by teachers to not disabuse students of the notion – or worse, explicitly teach, e.g. through unnatural step patterns – that dancing and walking are two entirely different ways of using their legs. For some reason, students go to dance schools and come away with the idea that they should move in a particularly distinct way on the dance floor than they otherwise would. And thus, on the dance floor, this is exactly what you see: you see students who force their bodies to desperately move in all ways which are <em>not</em> walking.</p>

<p>It looks unnatural because their mindset is precisely that they <em>want</em> to do something unnatural. In their mind, if they would just walk, they would not be doing the thing they learnt in class, because they go to class to learn something they don’t know yet, and they know that they know how to walk, so walking cannot be the correct thing to do.</p>

<p>The hallmark of a bad dance teacher is that they make you forget something you have been doing longer than speaking: they make you forget you can walk. After their students have attended their classes, they dissociate on the dance floor and forget what they once knew. In this psychosis, you will observe all of the above-mentioned ailments that plague beginners: they have no balance, they pull on their partners, they take large steps backwards, they hop, they hesitate, they lack periodicity, and so on.</p>

<p>Imagine if I spelled out this deal: over there is a building. When you go in, they tell you a bunch of things. When you come out, there are now places on this planet (dance floors) where you will lose the ability to remember how to walk. Who would take this deal?</p>

<h2 id="culture-induced-psychosis">Culture-induced psychosis</h2>
<p>We can also blame modern culture for this tendency to see dance as “its own thing”.</p>

<p>If I told you my hobbies were sleeping and eating and browsing the internet and shopping for groceries, you would laugh at me, because it is ridiculous to see these actions as distinct from average life. Similarly, in ancient Greece, “jogging” did not exist as its own thing, because running for stamina training was an obvious part of average life. It is quite unnatural for a mammalian species to have “moving for better stamina” be something so few individuals do that when it does happen, it deserves a special name.</p>

<p>Dancing as a hobby is quite unnatural. There could exist a world where it would be ridiculous to say that dancing is a hobby, because “of course you dance, that’s just something we humans do”. In such a world, because dancing is not its own thing for which you have to go out of your way before it becomes part of your life, people would not forcibly make their steps stand out from steps in average life, since dancing would not be thought of as “this special thing I do which is so different from average life”.</p>

<h1 id="here-are-the-cases-im-not-making">Here are the cases I’m not making.</h1>
<h2 id="revisiting-the-backstepping-debate">Revisiting the backstepping debate</h2>
<p>It may sound like all of this is just another entry in casino’s infamous <a href="https://www.salsaforums.com/threads/the-backstep-in-casino-or-cuban-salsa.29973/"><em>backstepping</em> debate</a>, which is a long-standing feud of one group of people claiming that followers stepping backwards at any point in any Cuban dance is <em>not-done</em>, and another group of people claiming that it is <a href="https://youtube.com/shorts/ZheSebsyHLw">not an issue.</a></p>

<p>This is the wrong framing of what I have written above. The case I make above is not one from tradition, but from pragmatics. The two are deeply intertwined – for example, the reason why Miami-style backstepping guapea is incorrect is foremost because guapea originated in rueda as a historical matter, and since a rueda is danced on a circle, the dancers’ foot patterns are adapted to most easily staying on that circle – but I am not here to finger-wag or pearl-clutch about violating sacred conventions.</p>

<p>I am simply here to make a point about mindset. About perspective. About conceptual separation. <em>You should not separate dancing and walking as different concepts in your head</em>. This is a psychotic overcomplication. It can only harm you.</p>

<p>The practical difference between these two interpretations of what I have written are the following. When you believe that my appeal is part of the backstepping debate, then you can reduce what I have said to “never backstep whatever happens”. The problem with this is that it <em>still</em> demands of dancers that they separate in their head <em>what is natural</em> from <em>what is dance</em>, and thus they will try to force their bodies into movements that do not serve them well in certain situations. Also, they will be focused on <em>not doing</em> something rather than <em>doing</em> something.</p>

<p>Meanwhile, when you remove the distinction between dance and walking from your mind, backsteps may or may not occur, depending on what is necessary at the time, just like in real life. What matters is not the focus on not doing backsteps, but on control. All of the beginner ailments come down to a lack of bodily control, whereas the same people are perfectly controlled in their everyday walking. So, when you control yourself as you do naturally, backsteps may be the obvious thing to do in some situations: dancing is walking, but walking is not dancing, since you don’t turn when you walk and you are not connected to something that tenses your arm forwards.</p>

<p><strong>Example:</strong> when leading an enchufla, a good frame requires pulling (but not dragging, of course) the follower towards your right in the second bar. In doing so, you will experience Newton’s third law: you pulling her to your right, somewhere around 4 and 5, makes her pull you to your left. But you don’t want to go to your left on 4 or 5, so by Newton’s second law, you need a compensating force that pushes you to your right. So, where is this force coming from?</p>

<ul>
  <li>In rueda, you want to walk past her as soon as possible.<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> Thus, you want your right foot on 5 to be a step forwards. This means that between 4 and 5, you pivot on your left foot and push yourself off the ground with that foot to generate a compensating force that is so strong that it propels you rightwards.</li>
  <li>In pareja (or <a href="https://www.youtube.com/watch?v=QigaYgttJwE"><em>enchufla y quedate</em></a>), you want to lead her into caída whilst staying in-place. You could keep yourself stationary by pushing (but less) with the same left foot on 4, but this is arguably an awkward movement since the next foot does not step out in the direction of the push. This is exactly why in at least one school of casino styling (namely MCC) the leader hooks his right foot behind his left foot on the 5 of an enchufla, to give the necessary push rightward. As you’ll notice in <a href="https://www.youtube.com/watch?v=j2UlcYmYYxc">this video</a> and <a href="https://www.instagram.com/p/DMF35b7Nnk3/?img_index=6">this video</a>, that backstep happens at the exact same time as the pull into caída.</li>
</ul>

<h2 id="relativism">Relativism</h2>
<p>Do not confuse pragmatics with relativism. Despite my <a href="https://bauwenst.github.io/posts/tutorials/dancing/2024-12-11-Casino-101/">very first article on dancing casino</a> containing several beginner errors taught to me by bad teaching, one thing I got right was the introduction: <em>relativists are wrong</em>. It is <em>not</em> the case that “anything is correct as long as you have fun” – reminiscent of “all interpersonal activity is edifying as long as there is mutual consent” – and indeed nobody who dances aesthetically actually carries this mentality.</p>

<p>Every dance figure has a tolerance region of limb trajectories and force vectors. This is what teachers are supposed to model. As long as your limb trajectories fall inside this tolerance region, it is correct. There <em>is</em> such a thing as an incorrectly executed enchufla. It <em>isn’t</em> just a matter of “enjoying” and “feeling” and all of this nonsensical loser babble. I see bad enchuflas at every social I go to. How do I know they are bad? I don’t even have to get into the subleties of rueda-conformant casino, i.e. that every couple figure should be performed relative to the stationary centre of an imaginary rueda. They are bad because all eight limbs involved are visibly being strained excessively, and because the woman looks like she is in a permanent state of <em>“What the fuck is happening?”</em> that cannot be explained by her skill level.</p>

<h1 id="empowerment-not-relativism">Empowerment, not relativism</h1>
<p>I have preached this message more to people who had not had a single dance class than to any other group of people. Why these people? Because it is these people who most often tell me “I’m sorry, I’ll be too bad at this, I can’t partner dance” when I approach them at a social where anyone from the public can wander in.<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup> I always retort by asking if they can walk, and this empowers them to try. By the end of the dance, they are happily surprised about how much innate skill they didn’t think they had. Why? Because again, they live in a culture where dancing is “its own thing” which they think they can’t do if they have not gone to class for it.</p>

<p>Lack of empowerment (or more simply, confidence) is actually a much broader problem in partner dancing, and the same message could perhaps help alleviate some of it. This probably requires a separate article, but <strong>followers rarely experience good frame</strong> (again, frame in the broad sense). I know this for three reasons: I can see loose leading when I watch others dance, I can feel it when a follower doesn’t herself have frame and has no clue how to listen to mine (even when she tells me she’s danced much longer than I have and perhaps also with more partners), and finally, skilled followers in my community have enthusiastically agreed with my observation whenever I pointed it out. Why is this the case? To me, it seems clear: because we lack confident, responsible, assertive, decisive, masculine men. Without these traits, it is impossible to lead. There is no “nice guy” way to lead properly. You have to dare hold a woman firmly and you have to dare guide her movement. You have to bear the responsibility of carrying the conversation, rather than having awkward pauses (the dreaded infinite guapea). You have to decide that you will do this now and not that, and do it timely and resolutely.</p>

<p>Note nevertheless that there are very clear gradations in skill across dancers. I repeat that <em>dance is walking</em> is a mindset for controlling the body. It is <em>not</em> a relativistic statement like “everyone is an equally good dancer, just be confident, there is no such thing as skilled or unskilled dance”. My message serves as a warning against teachers who teach <em>negative skill</em>. We don’t stop to think that negative skill exists, but it does. That’s what a handicap is: beginning to make progress not at the starting line, but <em>behind</em> the starting line. Teachers who teach students the wrong foundation make their students start their marathon by running backwards for an indefinite amount of time. They don’t become better with more education; they actually become more disorganised. This is how you get the phenomenon of people who seem to “know” complex figures, yet execute them atrociously. When you build a skyscraper on a foundation of shit (or you build the entire thing out of shit, the world of metaphors is your oyster), you would not say that it becomes more stable the higher you build it.</p>

<h1 id="conclusion">Conclusion</h1>
<p>Dance is walking. It does not require learning separate biomechanics. The lack of this mindset causes beginners to make all kinds of errors, and teachers are responsible for this. No, this is not a plea against backstepping. No, this is not a plea in favour of a relativist denial of the existence of skill. It is a foundational mindset for how to move the body in a partner dance. The longer you go without this mindset, the longer it will take to clear yourself of the debt of not having this mindset.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>You cannot fall over as long as your centre of mass is somewhere above the strip that fills in the area between the two surface areas outlined by your feet, or when standing on one foot, when your centre of mass is above that foot’s area. The physical reason why a beginner who takes large backsteps needs to pull on the partner is because they lean back so far behind their heel that their centre of mass falls behind the area of their foot. Thus the force of gravity now applies over a non-zero moment arm and they start rotating backwards (falling over) <em>unless</em> a second force is applied over another moment arm that rotates them forwards. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>This assumes the <em>enchufla-y-dame</em> convention rather than <em>enchufla-y-quedate</em>. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p>As all social dancers will tell you, it’s very easy to tell who is and who isn’t a dancer the moment they walk in. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Thomas Bauwens</name><email>tbauwenszaken@gmail.com</email></author><category term="posts" /><category term="tutorials" /><category term="dancing" /><category term="salsa" /><category term="casino" /><category term="son" /><summary type="html"><![CDATA[Nobody can teach you this, because you already know how to walk.]]></summary></entry></feed>