<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
  <title>La màquina de Turing</title>
  <subtitle>cat /dev/random</subtitle>
  <link href="https://lamaquinadeturing.su/feed.xml" rel="self" />
  <link href="https://lamaquinadeturing.su/" />
  <updated>2025-08-22T16:00:00Z</updated>
  <id>https://lamaquinadeturing.su/</id>
  <entry xml:lang="en">
    <title>Philosophical notes on LLMs 1: form without content</title>
    <link href="https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/" />
    <updated>2025-08-22T16:00:00Z</updated>
    <id>https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/</id>
    <content type="html">
      &lt;p&gt;&lt;img src=&quot;https://lamaquinadeturing.su/assets/media/tinman_opt1200.jpg&quot; alt=&quot;The Tin Woodman with Alice and the Scarecrow, in W. W. Denslow’s Illustrations for the Wonderful Wizard of Oz (1900).&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;What follows are some of notes trying to understand large language models with the help of different philosophical theories. I&#39;m incredibly out of my element, so treat this text as experimental.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;As the title implies, more may follow.&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;toc&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#large-language-models-are-completion-models&quot;&gt;Large language models are completion models &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#form-without-content%3A-searle&quot;&gt;Form without content: Searle &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#empty-words%3A-plato%2C-aristotle&quot;&gt;Empty words: Plato, Aristotle &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#chatter%3A-kierkegaard%2C-heidegger&quot;&gt;Chatter: Kierkegaard, Heidegger &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#notes&quot;&gt;Notes &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;h2 id=&quot;large-language-models-are-completion-models&quot; tabindex=&quot;-1&quot;&gt;Large language models are completion models &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#large-language-models-are-completion-models&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When a user writes a prompt, the chat bot responds with a reply. That is the foundation of the modern generative AI as most people know it. This interaction is useful because you can ask a question and get a response, or describe a task and get the result.&lt;/p&gt;
&lt;p&gt;This gives the impression of intelligence, as the bot can do really complex tasks. From summarizing large texts at incredible speed, to maintaining an interesting conversation, programming an algorithm, or solving a difficult math problem. How did the companies that make these bots train them to do all of this?&lt;/p&gt;
&lt;p&gt;The answer is not an incredibly dense program, but a clever trick: the bot just learned what is the most likely word to follow a sentence.&lt;/p&gt;
&lt;p&gt;It really is more complex than this&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;, but that&#39;s the essence. The bot looks at the prompt from the user, then adds the first word of the reply. Then another, and another. This is why they are also called &lt;em&gt;completion&lt;/em&gt; models&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;In their core, chat bots only really know how to add one word. But they are &lt;em&gt;really good&lt;/em&gt; at it. Their whole world is adding just one word, the perfect one. After that, they do it again. This may generate several questions. How is it possible that coherent sentences, or even insightful ideas, are created this way, instead of nonsense? Well, the same way the game of &lt;a href=&quot;https://en.wikipedia.org/wiki/Consequences_(game)&quot; class=&quot;link-wikipedia&quot;&gt;Consequences&lt;/a&gt; can create an &lt;a href=&quot;https://en.wikipedia.org/wiki/Exquisite_corpse&quot; class=&quot;link-wikipedia&quot;&gt;exquisite corpse&lt;/a&gt;, one word at a time.&lt;/p&gt;
&lt;h2 id=&quot;form-without-content%3A-searle&quot; tabindex=&quot;-1&quot;&gt;Form without content: Searle &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#form-without-content%3A-searle&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Do large language models &lt;em&gt;know&lt;/em&gt; what they say? Do &lt;em&gt;we&lt;/em&gt; know what we say?&lt;/p&gt;
&lt;p&gt;The most direct reference to chat bots is &lt;strong&gt;John Searl&#39;s&lt;/strong&gt; &lt;a href=&quot;https://en.wikipedia.org/wiki/Chinese_room&quot; class=&quot;link-wikipedia&quot;&gt;Chinese room&lt;/a&gt; argument. It goes like this: your job is to stay in a room, with a big book. Somebody throws in a card with some Chinese text, and you are expected to answer, also in Chinese. But you don&#39;t know Chinese!&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; Luckily, the book is here to help you: just look for the rules that apply to the symbols you got, and follow them to get some equally enigmatic Chinese symbols as a response.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Sounds familiar? It is more or less what chat bots do. They have no idea what each symbol is, or what the whole sentence means. They don&#39;t even split sentences in words like we do!&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fn1&quot; id=&quot;fnref1:1&quot;&gt;[1:1]&lt;/a&gt;&lt;/sup&gt; They just follow rules. With this example Searl was arguing that artificial intelligence models are incapable of understanding.&lt;/p&gt;
&lt;p&gt;In other words, chat bots just spill &lt;em&gt;bullshit.&lt;/em&gt; This is different from lying, because that would require understanding. Hallucinations are one of the biggest problems that large language models have, because they are not designed around the concepts of &lt;em&gt;truth&lt;/em&gt; or &lt;em&gt;knowledge.&lt;/em&gt; They are stochastic parrots, amazing bulshitters, professional Consequences players.&lt;/p&gt;
&lt;h2 id=&quot;empty-words%3A-plato%2C-aristotle&quot; tabindex=&quot;-1&quot;&gt;Empty words: Plato, Aristotle &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#empty-words%3A-plato%2C-aristotle&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There is a rich European philosophical tradition of despising bullshit and nonsense, beginning with Socrates and Plato:&lt;/p&gt;
&lt;figure class=&quot;quote&quot;&gt;
&lt;blockquote cite=&quot;https://www.perseus.tufts.edu/hopper/text?doc=urn:cts:greekLit:tlg0059.tlg023.perseus-eng1:459b&quot;&gt;
&lt;p&gt;Socrates: So he who does not know will be more convincing to those who do not know than he who knows, supposing the orator to be more convincing than the doctor. Is that, or something else, the consequence?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption class=&quot;quote-citation&quot;&gt;&lt;em&gt;Gorgias&lt;/em&gt; by Plato (p. 301, &lt;a href=&quot;https://www.perseus.tufts.edu/hopper/text?doc=urn:cts:greekLit:tlg0059.tlg023.perseus-eng1:459b&quot; class=&quot;link-external&quot;&gt;459b&lt;/a&gt; in &lt;em&gt;Plato in Twelve Volumes&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt;).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;And he adds about anything that is flattery and deceitful:&lt;/p&gt;
&lt;figure class=&quot;quote&quot;&gt;
&lt;blockquote cite=&quot;https://www.perseus.tufts.edu/hopper/text?doc=urn:cts:greekLit:tlg0059.tlg023.perseus-eng1:464e&quot;&gt;
&lt;p&gt;Socrates: Flattery, however, is what I call it, and I say that this sort of thing is a disgrace [...] because it aims at the pleasant and ignores the best; and I say it is not an art, but a habitude, since it has no account to give of the real nature of the things it applies, and so cannot tell the cause of any of them. I refuse to give the name of art to anything that is irrational.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption class=&quot;quote-citation&quot;&gt;&lt;em&gt;Gorgias&lt;/em&gt; by Plato (p. 321, &lt;a href=&quot;https://www.perseus.tufts.edu/hopper/text?doc=urn:cts:greekLit:tlg0059.tlg023.perseus-eng1:464e&quot; class=&quot;link-external&quot;&gt;464e&lt;/a&gt; in &lt;em&gt;Plato in Twelve Volumes&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fn6&quot; id=&quot;fnref6:1&quot;&gt;[6:1]&lt;/a&gt;&lt;/sup&gt;).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;To &lt;strong&gt;Plato,&lt;/strong&gt; the appearance of wisdom without actual knowledge is just a &amp;quot;knack of flattery&amp;quot;, pretending rather than being. And boy, would he and Socrates have hated chat bots! The ultimate rhetoricians, words completely disconnected from actual knowledge.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aristotle&lt;/strong&gt; also considers &lt;em&gt;logos&lt;/em&gt; -reasoning- the structure of an argument, while &lt;em&gt;pathos&lt;/em&gt; and &lt;em&gt;ethos&lt;/em&gt; add emotional persuasion and credibility. In this context, any speech without &lt;em&gt;logos&lt;/em&gt;, made of chains of words connected by probability, would fall apart. And indeed it does, if you push a chat bot a little bit.&lt;/p&gt;
&lt;h2 id=&quot;chatter%3A-kierkegaard%2C-heidegger&quot; tabindex=&quot;-1&quot;&gt;Chatter: Kierkegaard, Heidegger &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#chatter%3A-kierkegaard%2C-heidegger&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Such stream of words devoid of meaning -both in the sense of knowledge and intention- would certainly irritate certain no-nonsense philosophers. For &lt;strong&gt;Søren Kierkegaard,&lt;/strong&gt; the amount of &lt;em&gt;snak&lt;/em&gt; -chatter- was already unbearable in the XIX century:&lt;/p&gt;
&lt;figure class=&quot;quote&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;What is it to chatter? It is the annulment of the passionate disjunction between being silent and speaking. Only the person who can remain essentially silent can speak essentially, can act essentially. Silence is inwardness. Chattering gets ahead of essential speaking, and giving utterance to reflection has a weakening effect on action by getting ahead of it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption class=&quot;quote-citation&quot;&gt;&lt;em&gt;Two Ages. A Literary Review&lt;/em&gt; by S. Kierkegaard (p. 97 in &lt;em&gt;Kierkegaard&#39;s Writings&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt;).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;For Kierkegaard, silence, inwardness and passion are the essence of an authentic existence. Large language models, with their endless chatter of empty words and total lack of agency are the extreme opposite. There is no inner life, there is no room for action.&lt;/p&gt;
&lt;p&gt;Chatter was also despised by &lt;strong&gt;Martin Heidegger.&lt;/strong&gt; But we need to better understand his ideas first, which are notoriously slippery. He had a curious theory of how humans perceive the world. For instance, how a tree can give us shadow or how a cookie is sweet food to be eaten is the primordial relation we have with these objects, while their shape, color or size are derivative properties used by the rational mind. Not only that, but focusing on the theory will deprive us from this practical knowledge.&lt;/p&gt;
&lt;p&gt;After all, why &lt;em&gt;learning about an object&lt;/em&gt; when you can &lt;em&gt;experience an action&lt;/em&gt;? Theory will give you second-hand knowledge, mediated by others, while practice will give you an unfiltered, authentic experience. This is what Heidegger considers &lt;em&gt;authentic,&lt;/em&gt; concerned with the world.&lt;/p&gt;
&lt;p&gt;Unfortunately, we live constantly distracted, fascinated by the world of &lt;em&gt;others,&lt;/em&gt; by their second-hand &lt;em&gt;idle talk.&lt;/em&gt; After all, we are social animals and it is not possible to experience everything directly, we have to learn a whole lot. But this knowledge, once it starts circulating, is dettached, untrustworthy, superficial -in a practical sense- and it may distract us from the primordial experience.&lt;/p&gt;
&lt;figure class=&quot;quote&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;What is said-in-the-talk as such, spreads in wider circles and takes on an authoritative character. Things are so because one says so. Idle talk is constituted by just such gossiping and passing the word along -a process by which its initial lack of grounds to stand on becomes aggravated to complete groundlessness. And indeed this idle talk is not confined to vocal gossip, but even spreads to what we write, where it takes the form of &#39;scribbling&#39;. In this latter case the gossip is not based so much upon hearsay. It feeds upon superficial reading. The average understanding of the reader will never be able to decide what has been drawn from primordial sources with a struggle and how much is just gossip.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption class=&quot;quote-citation&quot;&gt;&lt;em&gt;Being and Time&lt;/em&gt; by Martin Heidegger (p. 212&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fn8&quot; id=&quot;fnref8&quot;&gt;[8]&lt;/a&gt;&lt;/sup&gt;).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This is why, from the point of view of Heidegger, large language models would be machines of pure &lt;em&gt;idle talk.&lt;/em&gt; Their third-hand words are detached from the world, completely unathentic. The more we use a chat bot, the more it prevents us from experiencing the world directly.&lt;/p&gt;
&lt;h2 id=&quot;notes&quot; tabindex=&quot;-1&quot;&gt;Notes &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#notes&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Large language models use tokens, which are symbols smaller than words, for &lt;a href=&quot;https://en.wikipedia.org/wiki/Large_language_model#Tokenization&quot; class=&quot;link-wikipedia&quot;&gt;complicated reasons&lt;/a&gt;. For instance, this is how ChatGPT 4 reads a sentence: &amp;quot;A| spect|re| is| haunting| Europe| —| the| spect|re| of| commun|ism|.&amp;quot;. &lt;a href=&quot;https://platform.openai.com/tokenizer&quot; class=&quot;link-external&quot;&gt;Try it!&lt;/a&gt;. &lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fnref1:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Predicting the right word is more complex than just having a &lt;a href=&quot;https://en.wikipedia.org/wiki/Markov_chain&quot; class=&quot;link-wikipedia&quot;&gt;Markov chain&lt;/a&gt; with the probabilities between all tokens, for instance it required solving the &lt;a href=&quot;https://en.wikipedia.org/wiki/Attention_Is_All_You_Need&quot; class=&quot;link-wikipedia&quot;&gt;attention&lt;/a&gt; problem. &lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Well, this is how OpenAI calls the GPT API. They are act actually called &lt;em&gt;autoregressive large language models&lt;/em&gt;. &lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;If you do, pretend the thought experiment uses a different language that you don&#39;t know. &lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;In many modern jobs it is easy to relate to the Chineese room operator, a feeling that David Graeber captures in &lt;em&gt;Bullshit Jobs: A Theory&lt;/em&gt;. &lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Plato, &lt;em&gt;Gorgias&lt;/em&gt; in &lt;em&gt;Plato in Twelve Volumes&lt;/em&gt;, vol. III, trans. W. R. M. Lamb, Harvard University Press, 1967. &lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fnref6:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Søren Kierkegaard, &lt;em&gt;Two Ages. The Age Of Revolution And The Present Age. A Literary Review&lt;/em&gt; in &lt;em&gt;Kierkegaard&#39;s Writings&lt;/em&gt;, vol. XIV, p. 97, SV VIII 91, trans. Howard V. Hong and Edna H. Hong, Princeton University Press, 2009. &lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn8&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Martin Heidegger, &lt;em&gt;Being and Time&lt;/em&gt;, p. 212, SZ 169, trans. John Macquarrie and Edward Robinson, Blackwell, 1962. &lt;a href=&quot;https://lamaquinadeturing.su/en/2025/08/philosophical-notes-on-llms-1-form-without-content/#fnref8&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;

    </content>
  </entry>
  <entry xml:lang="ca">
    <title>Notes filosòfiques sobre la IA 1: forma sense contingut</title>
    <link href="https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/" />
    <updated>2025-08-22T16:00:00Z</updated>
    <id>https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/</id>
    <content type="html">
      &lt;p&gt;&lt;img src=&quot;https://lamaquinadeturing.su/assets/media/tinman_opt1200.jpg&quot; alt=&quot;L&amp;#39;Home de Llauna amb l&amp;#39;Alícia i l&amp;#39;Espantaocells, a Illustrations for the Wonderful Wizard of Oz de W. W. Denslow (1900).&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;El que segueix són unes notes intentant entendre els models de llenguatge extensos (&lt;em&gt;large language models&lt;/em&gt;) amb l&#39;ajuda de diferents teories filosòfiques. Sóc completament fora del meu element, així que aquest text ha de ser tractat com a experimental.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Com el títol implica, potser en seguiran més.&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;toc&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#els-models-de-llenguatge-extensos-s%C3%B3n-models-que-completen&quot;&gt;Els models de llenguatge extensos són models que completen &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#forma-sense-contingut%3A-searle&quot;&gt;Forma sense contingut: Searle &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#paraules-buides%3A-plat%C3%B3%2C-arist%C3%B2til&quot;&gt;Paraules buides: Plató, Aristòtil &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#xerrameca%3A-kierkegaard%2C-heidegger&quot;&gt;Xerrameca: Kierkegaard, Heidegger &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#notes&quot;&gt;Notes &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;h2 id=&quot;els-models-de-llenguatge-extensos-s%C3%B3n-models-que-completen&quot; tabindex=&quot;-1&quot;&gt;Els models de llenguatge extensos són models que completen &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#els-models-de-llenguatge-extensos-s%C3%B3n-models-que-completen&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Quan un usuari escriu una petició, o &lt;em&gt;prompt&lt;/em&gt;, el xatbot contesta amb una resposta. Aquesta és la base de la IA generativa moderna tal com la coneix la majoria de gent. Aquesta interacció és útil perquè pots fer una pregunta i obtenir una resposta, o descriure una tasca i obtenir-ne el resultat.&lt;/p&gt;
&lt;p&gt;Això dona la sensació d&#39;intel·ligència, ja que el bot pot fer tasques molt complexes. Des de resumir textos llargs a una velocitat increïble, fins a mantenir una conversa interessant, programar un algorisme o resoldre un problema matemàtic difícil. Com ho van fer les empreses que fan aquests bots perquè poguessin fer tot això?&lt;/p&gt;
&lt;p&gt;La resposta no és un programa increïblement dens, sinó un truc enginyós: el bot simplement ha après quina és la paraula més probable que segueix a una frase.&lt;/p&gt;
&lt;p&gt;És clar que és més complex que això&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;, però aquesta n&#39;és l&#39;essència. El bot mira la petició de l&#39;usuari, i després afegeix la primera paraula de la resposta. I després una altra, i una altra. Per això també s&#39;anomenen models &lt;em&gt;que completen.&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;En el seu nucli, els xatbots només saben afegir una paraula. Però ho fan &lt;em&gt;molt bé.&lt;/em&gt; El seu món sencer és afegir-ne només una, la perfecta. Després ho tornen a fer. Això pot generar diverses preguntes. Com és possible que frases coherents, o fins i tot idees profundes, es puguin crear així, i no disbarats? Doncs, de la mateixa manera que el joc del &lt;a href=&quot;https://ca.wikipedia.org/wiki/Cad%C3%A0ver_exquisit&quot; class=&quot;link-wikipedia&quot;&gt;cadàver exquisit&lt;/a&gt;, afegint una paraula rere l&#39;altra.&lt;/p&gt;
&lt;h2 id=&quot;forma-sense-contingut%3A-searle&quot; tabindex=&quot;-1&quot;&gt;Forma sense contingut: Searle &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#forma-sense-contingut%3A-searle&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Que ho &lt;em&gt;saben&lt;/em&gt; els models de llenguatge extensos, el que diuen? I &lt;em&gt;nosaltres,&lt;/em&gt; sabem el que diem?&lt;/p&gt;
&lt;p&gt;La referència més directa als xatbots la trobem a l&#39;argument de l&#39;&lt;a href=&quot;https://ca.wikipedia.org/wiki/Habitaci%C3%B3_xinesa&quot; class=&quot;link-wikipedia&quot;&gt;habitació xinesa&lt;/a&gt; de &lt;strong&gt;John Searle&lt;/strong&gt;. Vindria a ser així: la teva feina és estar en una habitació, amb un llibre molt gran. Algú et llença una targeta amb text en xinès, i s&#39;espera que responguis, també en xinès. Però tu no en saps, de xinès!&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; Per sort, tens el llibre: només has de buscar les regles que s&#39;apliquen als símbols que t&#39;han donat, i seguir-les per obtenir uns altres símbols xinesos igualment enigmàtics com a resposta.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Et sona? És més o menys el que fan els xatbots. No tenen ni idea de què és cada símbol, ni què vol dir tota la frase. Ni tan sols divideixen frases en paraules com fem nosaltres!&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fn1&quot; id=&quot;fnref1:1&quot;&gt;[1:1]&lt;/a&gt;&lt;/sup&gt; Només segueixen regles. Amb aquest exemple, Searle argumentava que els models d&#39;intel·ligència artificial són incapaços d&#39;entendre.&lt;/p&gt;
&lt;p&gt;En altres paraules, els xatbots només deixen anar &lt;em&gt;bajanades.&lt;/em&gt; Això és diferent de mentir, perquè mentir requereix comprensió. Les al·lucinacions són un dels problemes més grans dels models de llenguatge, perquè no estan dissenyats pensant en els conceptes de &lt;em&gt;veritat&lt;/em&gt; o &lt;em&gt;coneixement.&lt;/em&gt; Són lloros estocàstics, trossos de quòniam meravellosos, jugadors professionals del cadàver exquisit.&lt;/p&gt;
&lt;h2 id=&quot;paraules-buides%3A-plat%C3%B3%2C-arist%C3%B2til&quot; tabindex=&quot;-1&quot;&gt;Paraules buides: Plató, Aristòtil &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#paraules-buides%3A-plat%C3%B3%2C-arist%C3%B2til&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Hi ha una rica tradició filosòfica europea de menyspreu per les bajanades i l&#39;absurd, començant amb Sòcrates i Plató:&lt;/p&gt;
&lt;figure class=&quot;quote&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Sòcrates: Per consegüent, pel que fa a totes les altres arts la situació de l&#39;orador i de la retòrica és la mateixa. De les coses en si, l&#39;orador no cal que n&#39;aprengui l&#39;essència, però ha d&#39;encertar un artifici persuasiu, de manera que davant dels no entesos sembli que en sap més que els entesos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption class=&quot;quote-citation&quot;&gt;&lt;em&gt;Gòrgias&lt;/em&gt; de Plató (p. 41 a &lt;em&gt;Diàlegs&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt;).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I afegeix sobre tot allò que és adulador i enganyós:&lt;/p&gt;
&lt;figure class=&quot;quote&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Sòcrates: Això ho anomeno llagoteria, i dic que és quelcom vergonyós [...] perquè recerca el plaer sense considerar el bé. I afirmo que no és una art sinó una pràctica, perquè no té cap raó per oferir a qui dóna el que dóna referent a la naturalesa de tot això, de manera que no pot aclarir-ne la causa. Jo dic que no és cap art allò que és irracional.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption class=&quot;quote-citation&quot;&gt;&lt;em&gt;Gòrgias&lt;/em&gt; de Plató (p. 48 a &lt;em&gt;Diàlegs&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fn6&quot; id=&quot;fnref6:1&quot;&gt;[6:1]&lt;/a&gt;&lt;/sup&gt;).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Per a &lt;strong&gt;Plató,&lt;/strong&gt; l&#39;aparença de saviesa sense coneixement real és només una &amp;quot;pràctica de l&#39;adulació&amp;quot;, fingir en lloc de ser. I, vaja, com haurien odiat ell i Sòcrates els xatbots! Els oradors definitius, paraules completament desconnectades del coneixement real.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aristòtil&lt;/strong&gt; també considera el &lt;em&gt;logos&lt;/em&gt; (la raó) l&#39;estructura d&#39;un argument, mentre que el &lt;em&gt;pathos&lt;/em&gt; i &lt;em&gt;l&#39;ethos&lt;/em&gt; hi afegeixen persuasió emocional i credibilitat. En aquest context, qualsevol discurs sense &lt;em&gt;logos&lt;/em&gt;, fet de cadenes de paraules connectades per probabilitat, s&#39;esfondraria. I de fet, així passa si pressiones una mica un xatbot.&lt;/p&gt;
&lt;h2 id=&quot;xerrameca%3A-kierkegaard%2C-heidegger&quot; tabindex=&quot;-1&quot;&gt;Xerrameca: Kierkegaard, Heidegger &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#xerrameca%3A-kierkegaard%2C-heidegger&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Aquest torrent de paraules buit de significat, tant en el sentit de coneixement com d&#39;intenció, segurament irritaria certs filòsofs amb poca paciència per la xerrameca. Per a &lt;strong&gt;Søren Kierkegaard,&lt;/strong&gt; la quantitat de &lt;em&gt;snak&lt;/em&gt; (xerrameca) ja era insuportable al segle XIX:&lt;/p&gt;
&lt;figure class=&quot;quote&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Què és la xerrameca? És l&#39;anul·lació de la disjunció apassionada entre callar i parlar. Només la persona que pot romandre essencialment en silenci pot parlar essencialment, pot actuar essencialment. El silenci és interioritat. La xerrameca s&#39;avança al parlar essencial, i expressar la reflexió té un efecte debilitador sobre l&#39;acció en avançar-se-li.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption class=&quot;quote-citation&quot;&gt;&lt;em&gt;Una crítica litèraria&lt;/em&gt; per S. Kierkegaard (trad. pròpia, p. 36 a &lt;em&gt;Søren Kierkegaards Skrifter&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt;).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Per a Kierkegaard, el silenci, la interioritat i la passió són l&#39;essència d&#39;una existència autèntica. Els models de llenguatge extensos, amb la seva xerrameca infinita de paraules buides i manca total d&#39;albir, en són l&#39;extrem oposat. No hi ha vida interior, no hi ha espai per a l&#39;acció.&lt;/p&gt;
&lt;p&gt;La xerrameca també era menyspreada per &lt;strong&gt;Martin Heidegger.&lt;/strong&gt; Però primer cal entendre millor les seves idees, que són notòriament elusives. Tenia una teoria curiosa de com els humans perceben el món. Per exemple, que un arbre ens pot donar ombra o que una galeta és un dolç per menjar són les relacions primordials que tenim amb aquests objectes, mentre que la seva forma, color o mida són propietats derivades que empra la ment racional. I no només això: centrar-se en la teoria ens priva d&#39;aquest coneixement pràctic.&lt;/p&gt;
&lt;p&gt;Al cap i a la fi, per què &lt;em&gt;aprendre sobre un objecte&lt;/em&gt; quan pots &lt;em&gt;experimentar una acció&lt;/em&gt;? La teoria et dona coneixement de segona mà, mediat per altres, mentre que la pràctica et dona una experiència autèntica, sense filtres. Això és el que Heidegger considera &lt;em&gt;autèntic,&lt;/em&gt; sent conscient del món.&lt;/p&gt;
&lt;p&gt;Malauradament, vivim constantment distrets, fascinats pel món dels &lt;em&gt;altres,&lt;/em&gt; per la seva &lt;em&gt;xerrameca&lt;/em&gt; de segona mà. Al cap i a la fi, som animals socials i no és possible experimentar-ho tot directament, hem d&#39;aprendre moltíssim. Però aquest coneixement, un cop circula, és desconnectat, poc fiable, superficial —en un sentit pràctic— i ens pot distreure de l&#39;experiència primordial.&lt;/p&gt;
&lt;figure class=&quot;quote&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;El que es diu en la xerrameca com a tal s&#39;escampa en cercles més amplis i adquireix un caràcter autoritari. Les coses són així perquè algú ho diu. La xerrameca és constituïda precisament per aquest xafardedeig i transmetre la paraula, un procés pel qual la seva carència inicial de fonament es veu agreujada fins a convertir-se en completa manca de fonament. I de fet aquesta xerrameca no es limita al xafardeig oral, sinó que fins i tot s&#39;estén al que escrivim, on pren la forma de &amp;quot;gargot&amp;quot;. En aquest darrer cas el xafardeig no es basa tant en rumors. S&#39;alimenta de lectures superficials. La comprensió mitjana del lector mai no podrà decidir què ha estat extret de fonts primordials amb esforç i què és només xerrameca.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption class=&quot;quote-citation&quot;&gt;&lt;em&gt;Ésser i temps&lt;/em&gt; de Martin Heidegger (trad. pròpia, p. 169 a &lt;em&gt;Sein und zeit&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fn8&quot; id=&quot;fnref8&quot;&gt;[8]&lt;/a&gt;&lt;/sup&gt;).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Per això, des del punt de vista de Heidegger, els models de llenguatge extensos serien màquines de pura &lt;em&gt;xerrameca.&lt;/em&gt; Les seves paraules de tercera mà estan desconnectades del món, completament inautèntiques. Com més fem servir un xatbot, més ens impedeix experimentar directament el món.&lt;/p&gt;
&lt;h2 id=&quot;notes&quot; tabindex=&quot;-1&quot;&gt;Notes &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#notes&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Els models de llenguatge extensos fan servir tokens, que són símbols més petits que paraules, per &lt;a href=&quot;https://en.wikipedia.org/wiki/Large_language_model#Tokenization&quot; class=&quot;link-wikipedia&quot;&gt;raons complicades&lt;/a&gt;. Per exemple, així és com ChatGPT 4 llegeix una frase: &amp;quot;Un| fant|asma| ronda| per| Europa|:| el| fant|asma| del| comun|isme|.&amp;quot;. &lt;a href=&quot;https://platform.openai.com/tokenizer&quot; class=&quot;link-external&quot;&gt;Prova-ho!&lt;/a&gt;. &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fnref1:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Predir la paraula correcta és més complex que només tenir una &lt;a href=&quot;https://en.wikipedia.org/wiki/Markov_chain&quot; class=&quot;link-wikipedia&quot;&gt;cadena de Markov&lt;/a&gt; amb les probabilitats entre tots els tokens, per exemple calia resoldre el problema de l&#39;&lt;a href=&quot;https://en.wikipedia.org/wiki/Attention_Is_All_You_Need&quot; class=&quot;link-wikipedia&quot;&gt;atenció&lt;/a&gt;. &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Bé, així és com OpenAI anomena l&#39;API de GPT. En realitat s&#39;anomenen &lt;em&gt;models de llenguatge extensos autoregressius&lt;/em&gt;. &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Si saps xinès, fes veure que l&#39;experiment mental usa un altre idioma. &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;En molts treballs moderns és fàcil sentir-se identificat amb l&#39;operador de l&#39;habitació xinesa, una sensació que David Graeber captura a &lt;em&gt;Bullshit Jobs: A Theory&lt;/em&gt;. &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Plató, &lt;em&gt;Gòrgies&lt;/em&gt; a &lt;em&gt;Diàlegs&lt;/em&gt;, vol. VIII, trad. Manuel Balasch, Bernat Metge, 1986. &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fnref6:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Søren Kierkegaard, &lt;em&gt;En literair Anmeldelse&lt;/em&gt; a &lt;em&gt;Søren Kierkegaards Skrifter&lt;/em&gt;, vol. 8, Søren Kierkegaard Forskningscentret, 2004. &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn8&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Martin Heidegger, &lt;em&gt;Sein und zeit&lt;/em&gt;, Max Niemeyer Verlag, 1927. &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/08/notes-filosofiques-sobre-la-ia-1-forma-sense-contingut/#fnref8&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;

    </content>
  </entry>
  <entry xml:lang="ca">
    <title>Pay or Spain: Crònica del mur de pagament de la premsa espanyola</title>
    <link href="https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/" />
    <updated>2025-06-15T13:00:00Z</updated>
    <id>https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/</id>
    <content type="html">
      &lt;p&gt;&lt;img src=&quot;https://lamaquinadeturing.su/assets/media/lazarillo_opt1200.jpg&quot; alt=&quot;Gravat obra d&amp;#39;Inocencio Medina Vera que acompanya l&amp;#39;article &amp;quot;La ruta del lazarillo&amp;quot; de José Martínez Ruiz &amp;quot;Azorín&amp;quot;, publicat a l&amp;#39;almanac de 1907 de la revista Blanco y Negro.&quot;&gt;&lt;/p&gt;&lt;p&gt;El gener de 2024 la premsa espanyola va afegir, coordinadament i per sorpresa, un mur de cookies que passava a demanar als lectors un pagament a canvi de preservar les dades personals, el que es coneix com &amp;quot;pay or okay&amp;quot; (paga o accepta-ho). En aquesta crònica intento reunir les causes d&#39;aquest canvi, la relació amb el Reglament Europeu de Protecció de Dades, i per què les institucions europees neguen a alguns serveis com Meta aquesta pràctica mentre ho permeten a la premsa.&lt;/p&gt;
&lt;!-- omit from toc --&gt;
&lt;h2 id=&quot;continguts&quot; tabindex=&quot;-1&quot;&gt;Continguts &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#continguts&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;toc&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#cronologia&quot;&gt;Cronologia &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#el-cas-meta-contra-bundeskartellamt&quot;&gt;El cas Meta contra Bundeskartellamt &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#el-tjue-obre-la-veda&quot;&gt;El TJUE obre la veda &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#els-or%C3%ADgens-del-%22pay-or-okay%22&quot;&gt;Els orígens del &amp;quot;pay or okay&amp;quot; &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#amb-la-benedicci%C3%B3-de-l&#39;aepd&quot;&gt;Amb la benedicció de l&#39;AEPD &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#el-comit%C3%A8-europeu-de-protecci%C3%B3-de-dades-reacciona&quot;&gt;El Comitè Europeu de Protecció de Dades reacciona &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#les-contradiccions-inherents-del-%22pay-or-okay%22&quot;&gt;Les contradiccions inherents del &amp;quot;pay or okay&amp;quot; &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#refer%C3%A8ncies&quot;&gt;Referències &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;h2 id=&quot;cronologia&quot; tabindex=&quot;-1&quot;&gt;Cronologia &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#cronologia&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Data&lt;/th&gt;
&lt;th&gt;Esdeveniment&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Març de 2016&lt;/td&gt;
&lt;td&gt;L&#39;Autoritat Federal de Defensa de la Competència d&#39;Alemanya obre una investigació a Facebook.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6 de febrer de 2019&lt;/td&gt;
&lt;td&gt;L&#39;Autoritat Federal de Defensa de la Competència d&#39;Alemanya ordena a Meta que faci modificacions en els termes del servei i en la recollida de dades.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn1&quot; id=&quot;fnref1:1&quot;&gt;[1:1]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11 de febrer de 2019&lt;/td&gt;
&lt;td&gt;Meta impugna la decisió de l&#39;autoritat alemanya davant el Tribunal Superior Regional del Civil i el Penal de Düsseldorf.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9 d&#39;agost de 2021&lt;/td&gt;
&lt;td&gt;El Tribunal Superior de Düsseldorf eleva al Tribunal de Justícia de la Unió Europea set qüestions prejudicials sobre el cas &lt;em&gt;Meta contra Bundeskartellamt&lt;/em&gt;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn2&quot; id=&quot;fnref2:1&quot;&gt;[2:1]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;22 de març de 2023&lt;/td&gt;
&lt;td&gt;La Conferència de Protecció de Dades d&#39;Alemanya permet el &amp;quot;pay or okay&amp;quot;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4 de juliol de 2023&lt;/td&gt;
&lt;td&gt;La sentència del TJUE inclou una valoració que obre la porta al &amp;quot;pay or okay&amp;quot;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn2&quot; id=&quot;fnref2:2&quot;&gt;[2:2]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11 de juliol de 2023&lt;/td&gt;
&lt;td&gt;L&#39;AEPD actualitza la Guia de cookies permetent el &amp;quot;pay or okay&amp;quot;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;30 d&#39;octubre de 2023&lt;/td&gt;
&lt;td&gt;Meta anuncia una subscripció de pagament sense anuncis.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12 de gener de 2024&lt;/td&gt;
&lt;td&gt;La premsa espanyola posa em marxa un mur de pagament de manera coordinada.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt; &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn8&quot; id=&quot;fnref8&quot;&gt;[8]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;17 d&#39;abril de 2024&lt;/td&gt;
&lt;td&gt;El CEPD publica el dictamen 8/2024 sobre &amp;quot;pay or okay&amp;quot;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn9&quot; id=&quot;fnref9&quot;&gt;[9]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14 de maig de 2024&lt;/td&gt;
&lt;td&gt;L&#39;AEPD actualitza la Guia de cookies mencionant el dictamen 8/2024 del CEPD, però sense modificar el criteri sobre &amp;quot;pay or okay&amp;quot;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;el-cas-meta-contra-bundeskartellamt&quot; tabindex=&quot;-1&quot;&gt;El cas Meta contra Bundeskartellamt &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#el-cas-meta-contra-bundeskartellamt&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;El març de 2016 l&#39;Autoritat Federal de Defensa de la Competència d&#39;Alemanya, o Bundeskartellamt, va iniciar una investigació sobre la recopilació i ús de les dades privades que Facebook estava fent a Europa.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn1&quot; id=&quot;fnref1:2&quot;&gt;[1:2]&lt;/a&gt;&lt;/sup&gt; El que preocupava al Bundeskartellamt, que no és una agència de protecció de dades sinó de defensa de la competència, era que Facebook també és propietari d&#39;Instagram i WhatsApp, el que el converteix en una empresa dominant en el mercat de les xarxes socials. Aquesta posició dominant era aprofitada per combinar les dades personals dels comptes dels diferents serveis com si es tractessin d&#39;un sol compte unificat.&lt;/p&gt;
&lt;figure class=&quot;quote&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Obtenim informació seva de les empreses que són propietat de Facebook o que són operades per Facebook, d&#39;acord amb les seves condicions i polítiques.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption class=&quot;quote-citation&quot;&gt;Política de privacitat de Facebook (2016)&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn10&quot; id=&quot;fnref10&quot;&gt;[10]&lt;/a&gt;&lt;/sup&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Facebook va incloure aquest ús de les dades de l&#39;usuari en les condicions d&#39;ús del servei, de manera que les alternatives que s&#39;oferien als usuaris eren: o bé cedir les dades, o bé quedar-se sense accés a Facebook, WhatsApp i Instagram. La quota de mercat combinada d&#39;aquests serveis suposava el 90% del mercat alemany&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn1&quot; id=&quot;fnref1:3&quot;&gt;[1:3]&lt;/a&gt;&lt;/sup&gt;, convertint aquesta elecció en impossible a ulls del Bundeskartellamt.&lt;/p&gt;
&lt;p&gt;Tres anys més tard, el 6 de febrer de 2019, el Bundeskartellamt va publicar les conclusions del cas B6-22/16&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn1&quot; id=&quot;fnref1:4&quot;&gt;[1:4]&lt;/a&gt;&lt;/sup&gt; i va ordenar a Facebook, aleshores ja Meta, que aturés aquestes pràctiques. A més, el Reglament General de Protecció de Dades (RGPD) feia un any que havia entrat en vigor, augmentant la base legal de l&#39;informe.&lt;/p&gt;
&lt;p&gt;Aquesta investigació a Alemanya no és un cas aïllat, ja que processos similars es van produir a altres estats. El que la fa interessant és que cinc dies més tard Meta va impugnar l&#39;ordre del Bundeskartellamt davant del Tribunal Superior de Düsseldorf. Mentre jutjava el recurs de Meta, el 9 d&#39;agost de 2021 aquest tribunal alemany va elevar una sèrie de qüestions prejudicials al Tribunal de Justícia de la Unió Europea (TJUE).&lt;/p&gt;
&lt;h2 id=&quot;el-tjue-obre-la-veda&quot; tabindex=&quot;-1&quot;&gt;El TJUE obre la veda &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#el-tjue-obre-la-veda&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;El 4 de juliol de 2023, un any i mig més tard del requeriment del tribunal alemany i set anys més tard de l&#39;inici de la investigació a Facebook, el TJUE va dictar sentència&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn2&quot; id=&quot;fnref2:3&quot;&gt;[2:3]&lt;/a&gt;&lt;/sup&gt; donant la raó en la majoria de les qüestions prejudicials al Bundeskartellamt. En resum, el TJUE assenta en jurisprudència la interpretació del Bundeskartellamt en considerar que Meta no pot condicionar l&#39;accés o la qualitat del servei a l&#39;acceptació del tractament de les dades personals.&lt;/p&gt;
&lt;p&gt;Però el que fa especial aquesta sentència és el redactat del paràgraf 150 (èmfasi meu):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Així doncs, en el marc del procés contractual, aquests usuaris han de tenir la llibertat de negar-se individualment a prestar el seu consentiment per a operacions específiques de tractament de dades que no siguin necessàries per a l&#39;execució del contracte, sense que per això es vegin obligats a renunciar completament a l&#39;ús del servei ofert per l&#39;operador de la xarxa social en línia. Això implica que se&#39;ls ofereixi una alternativa equivalent no acompanyada d&#39;aquestes operacions de tractament de dades, &lt;strong&gt;si escau, a canvi d&#39;una remuneració adequada.&lt;/strong&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn2&quot; id=&quot;fnref2:4&quot;&gt;[2:4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Aquest afegitó al final del paràgraf posa per escrit que el &amp;quot;pay or okay&amp;quot; és un model compatible amb el RGPD, deslligant l&#39;obligació de pagar de la consideració de &amp;quot;lliure consentiment&amp;quot;. Si et sembla que amb aquest petit gest el tribunal dinamita les bases del RGPD, no ets l&#39;únic&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn11&quot; id=&quot;fnref11&quot;&gt;[11]&lt;/a&gt;&lt;/sup&gt;. Les més de 18.000 paraules de la sentència del TJUE tancaven la porta al model de 2016 de Meta, però una simple frase obria una finestra al &amp;quot;pay or okay&amp;quot; que Meta ràpidament va posar en pràctica tres mesos després:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;L&#39;opció que les persones comprin una subscripció sense anuncis equilibra els requisits dels reguladors europeus mentre ofereix als usuaris una elecció i permet que Meta continuï donant servei a totes les persones a la UE, l&#39;EEE i Suïssa. En la seva sentència, el TJUE va reconèixer expressament que un model de subscripció, com el que estem anunciant, és una forma vàlida de consentiment per a un servei finançat per anuncis.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn5&quot; id=&quot;fnref5:1&quot;&gt;[5:1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Per què el TJUE va reconèixer la validesa del &amp;quot;pay or okay&amp;quot; en una sentència? Al cap i a la fi, l&#39;opció de pagament no formava part del litigi entre Meta i el Bundeskartellamt, ni formava part de les set qüestions prejudicials que el Tribunal Superior de Düsseldorf va elevar al TJUE. Aquest &lt;a href=&quot;https://ca.wikipedia.org/wiki/Obiter_dictum&quot; class=&quot;link-wikipedia&quot;&gt;&lt;em&gt;obiter dictum&lt;/em&gt;&lt;/a&gt; era una ocurrència del tribunal europeu o tenia algun altre origen?&lt;/p&gt;
&lt;h2 id=&quot;els-or%C3%ADgens-del-%22pay-or-okay%22&quot; tabindex=&quot;-1&quot;&gt;Els orígens del &amp;quot;pay or okay&amp;quot; &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#els-or%C3%ADgens-del-%22pay-or-okay%22&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;El diari austríac Der Standard va ser dels primers a veure que el RGPD no prohibia expressament que l&#39;opció sense cookies de la web fos de pagament. Quan les autoritats de protecció de dades d&#39;Àustria&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn12&quot; id=&quot;fnref12&quot;&gt;[12]&lt;/a&gt;&lt;/sup&gt; &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn13&quot; id=&quot;fnref13&quot;&gt;[13]&lt;/a&gt;&lt;/sup&gt;, Alemanya&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn14&quot; id=&quot;fnref14&quot;&gt;[14]&lt;/a&gt;&lt;/sup&gt; i França&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn15&quot; id=&quot;fnref15&quot;&gt;[15]&lt;/a&gt;&lt;/sup&gt; van permetre aquesta pràctica, es va estendre ràpidament a altres mitjans&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn16&quot; id=&quot;fnref16&quot;&gt;[16]&lt;/a&gt;&lt;/sup&gt; &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn11&quot; id=&quot;fnref11:1&quot;&gt;[11:1]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;És possible que aquesta doctrina hagi inspirat aquest fragment de la sentència del TJUE, que tot i que jurídicament potser no es pot considerar jurisprudència sí que té un efecte molt persuasiu quant a inspirar i coordinar les polítiques dels estats comunitaris.&lt;/p&gt;
&lt;h2 id=&quot;amb-la-benedicci%C3%B3-de-l&#39;aepd&quot; tabindex=&quot;-1&quot;&gt;Amb la benedicció de l&#39;AEPD &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#amb-la-benedicci%C3%B3-de-l&#39;aepd&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;L&#39;11 de juliol de 2023, tan sols set dies després que el TJUE publiqués la sentència, l&#39;AEPD va publicar una nova versió de la &amp;quot;Guía sobre el uso de cookies&amp;quot;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn4&quot; id=&quot;fnref4:1&quot;&gt;[4:1]&lt;/a&gt;&lt;/sup&gt;, afegint el següent fragment (èmfasi meu):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Podran existir determinats supòsits en els quals la no acceptació de la utilització de cookies impedeixi l&#39;accés al lloc web o la utilització total o parcial del servei, sempre que s&#39;informi adequadament al respecte a l&#39;usuari i s&#39;ofereixi una alternativa, &lt;strong&gt;no necessàriament gratuïta,&lt;/strong&gt; d&#39;accés al servei sense necessitat d&#39;acceptar l&#39;ús de cookies.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn17&quot; id=&quot;fnref17&quot;&gt;[17]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;En la notícia que anunciava aquest canvi, l&#39;AEPD diu que s&#39;ha adaptat la guia a la nova directiva 03/2022 del Comitè Europeu de Protecció de Dades, i breument i sense més explicació, que &amp;quot;la nova versió de la Guia aclareix que aquesta alternativa [sense cookies] no haurà de ser necessàriament gratuïta&amp;quot;. No cal dir que la directiva 03/2022 no esmenta en cap moment res sobre alternatives de pagament,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn18&quot; id=&quot;fnref18&quot;&gt;[18]&lt;/a&gt;&lt;/sup&gt; ni l&#39;AEPD justifica aquest canvi que possiblement prové de la sentència del TJUE.&lt;/p&gt;
&lt;p&gt;La notícia també diu que:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Els nous criteris s&#39;hauran d&#39;implementar, a tot tardar, l&#39;11 de gener de 2024, establint així un període transitori de sis mesos per a l&#39;adaptació.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn4&quot; id=&quot;fnref4:2&quot;&gt;[4:2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I justament, la premsa espanyola de manera coordinada va implementar murs de pagament exactament sis mesos després que es publiqués aquest canvi a la guia. Tot i ser un canvi radical, molt pocs mitjans en parlen, i pràcticament cap ho critica. Totes les notícies&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn6&quot; id=&quot;fnref6:1&quot;&gt;[6:1]&lt;/a&gt;&lt;/sup&gt; &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn7&quot; id=&quot;fnref7:1&quot;&gt;[7:1]&lt;/a&gt;&lt;/sup&gt; &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn8&quot; id=&quot;fnref8:1&quot;&gt;[8:1]&lt;/a&gt;&lt;/sup&gt; es fan eco de l&#39;explicació de l&#39;AEPD a la seva notícia de l&#39;11 de juliol de 2023, dient que els murs de pagament es deuen a l&#39;adaptació a les directrius del CEPD. Com hem vist, ni la directiva 03/2022 diu res sobre murs de pagament, ni el CEPD ho havia discutit. Encara.&lt;/p&gt;
&lt;p&gt;El Periódico va més lluny&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn7&quot; id=&quot;fnref7:2&quot;&gt;[7:2]&lt;/a&gt;&lt;/sup&gt; i entra en una diatriba sobre Google i la iniciativa &lt;em&gt;Privacy Sandbox&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn19&quot; id=&quot;fnref19&quot;&gt;[19]&lt;/a&gt;&lt;/sup&gt;. Per no desviar-nos molt del tema, l&#39;objectiu de Google era modificar els estàndards d&#39;Internet perquè els navegadors &lt;s&gt;espiïn&lt;/s&gt; creïn un perfil d&#39;interessos del mateix usuari i n&#39;informin a les webs a cada visita. Això permetria eliminar les cookies de seguiment, tot traslladant el camp de batalla a un nou escenari. Les organitzacions que defensen els drets dels usuaris ja van posar el crit al cel&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn20&quot; id=&quot;fnref20&quot;&gt;[20]&lt;/a&gt;&lt;/sup&gt;. Tornant al que ens ocupa, El Periódico deia &amp;quot;el passat 4 de gener, Google va començar a eliminar les cookies de tercers&amp;quot;, fet que als seus ulls justifica que la premsa espanyola &lt;em&gt;ensemble&lt;/em&gt; cobri als usuaris si no volen cedir les seves dades personals. Uns mesos més tard, Google va fer marxa enrere i va descartar bloquejar les cookies de seguiment&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn21&quot; id=&quot;fnref21&quot;&gt;[21]&lt;/a&gt;&lt;/sup&gt;. Per tant, ara continuem tenint cookies de seguiment &lt;em&gt;i alhora&lt;/em&gt; murs de pagament.&lt;/p&gt;
&lt;p&gt;La clara coordinació de la premsa espanyola (amb honroses excepcions) per establir murs de pagament, queixant-se que sense el tràfic de les dades personals dels usuaris el seu negoci no és viable, és un bany de realitat. Qui denunciarà el tràfic massiu de dades privades quan els mitjans de comunicació participen activament en l&#39;erosió del RGPD? L&#39;OCU feia una crítica molt ambigua a aquests murs de pagament, dient els usuaris no haurien de pagar per la seva privacitat, però alhora que cal valorar si el preu és just i proporcional&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn22&quot; id=&quot;fnref22&quot;&gt;[22]&lt;/a&gt;&lt;/sup&gt;. Xnet va signar la carta que 28 organitzacions europees van enviar el febrer de 2024 al CEPD&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn23&quot; id=&quot;fnref23&quot;&gt;[23]&lt;/a&gt;&lt;/sup&gt; en contra del model &amp;quot;pay or okay&amp;quot; de Meta, però no he trobat que fessin cap comunicat sobre la mateixa pràctica que apliquen aquí els mitjans de comunicació.&lt;/p&gt;
&lt;p&gt;L&#39;actuació de l&#39;AEPD, a diferència de la d&#39;altres autoritats europees, és més favorable al &amp;quot;pay or okay&amp;quot; i, per tant, actua per aprofundir aquesta escletxa en el RGPD en lloc de tancar-la.&lt;/p&gt;
&lt;h2 id=&quot;el-comit%C3%A8-europeu-de-protecci%C3%B3-de-dades-reacciona&quot; tabindex=&quot;-1&quot;&gt;El Comitè Europeu de Protecció de Dades reacciona &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#el-comit%C3%A8-europeu-de-protecci%C3%B3-de-dades-reacciona&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mentre a l&#39;AEPD i els mitjans espanyols s&#39;apuntaven cinc anys més tard al &amp;quot;pay or okay&amp;quot;, a Europa la batalla contra aquest model es va concentrar en Meta, que l&#39;havia adoptat després del revés jurídic del TJUE a Alemanya. El 26 de gener de 2024, les autoritats de protecció de dades de Països Baixos, Noruega i de l&#39;estat d&#39;Hamburg van demanar al CEPD que dictaminés si el model de &amp;quot;pay or okay&amp;quot; de les grans plataformes (llegir Meta) vulnerava la condició de &amp;quot;lliure consentiment&amp;quot; requerida pel RGPD&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn24&quot; id=&quot;fnref24&quot;&gt;[24]&lt;/a&gt;&lt;/sup&gt;. Unes setmanes més tard, 28 organitzacions de defensa del dret a la privacitat van enviar una carta al CEPD per expressar la seva opinió sobre aquest afer&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn23&quot; id=&quot;fnref23:1&quot;&gt;[23:1]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Finalment, el 16 d&#39;abril de 2024 el CEPD va publicar el dictamen 08/2024&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn9&quot; id=&quot;fnref9:1&quot;&gt;[9:1]&lt;/a&gt;&lt;/sup&gt; que avalua si exigir als usuaris que consentin el seguiment publicitari o paguin per una versió sense anuncis d&#39;un servei constitueix un consentiment vàlid segons el RGPD. En primer lloc, el text reiteradament aclareix que només fa referència a les &amp;quot;grans plataformes&amp;quot;. Llavors passa a considerar que el model de &amp;quot;pay or okay&amp;quot; sovint no compleix el requisit de &amp;quot;lliure consentiment&amp;quot; exigit pel RGPD a causa dels desequilibris de poder i la manca d&#39;alternatives reals, especialment quan els usuaris depenen del servei. La decisió subratlla que les plataformes haurien d&#39;oferir una alternativa realment equivalent sense seguiment, i que el fet de proporcionar només una opció de pagament no justifica automàticament el consentiment. Tot i que el model &amp;quot;pay or okay&amp;quot; no està totalment prohibit, el CEPD adverteix que la majoria d&#39;implementacions d&#39;aquest sistema per part de grans plataformes probablement no compleixen el RGPD.&lt;/p&gt;
&lt;h2 id=&quot;les-contradiccions-inherents-del-%22pay-or-okay%22&quot; tabindex=&quot;-1&quot;&gt;Les contradiccions inherents del &amp;quot;pay or okay&amp;quot; &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#les-contradiccions-inherents-del-%22pay-or-okay%22&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;El concepte de &amp;quot;grans plataformes&amp;quot; no és una categoria del RGPD, però el CEPD aplica una supervisió més estricta a serveis digitals dominants on l&#39;elecció de l&#39;usuari és limitada. Tot i ser difícil d&#39;assegurar, podria ser un equilibri que fa el CEPD per mantenir la integritat del RGPD sense prohibir directament el &amp;quot;pay or okay&amp;quot;, establint uns requisits més específics que els que va determinar el TJUE el 2023. El que podria significar per la doctrina del &amp;quot;pay or okay&amp;quot; és que es consideraria contrari al &amp;quot;lliure consentiment&amp;quot; del RGPD si, a la pràctica, l&#39;usuari no té cap alternativa en termes de mercat. Això es donaria en casos com el de Meta, que té consideració de &amp;quot;plataforma molt gran&amp;quot; segons la recent Llei de Serveis Digitals de la Unió Europea (DSA, en anglès), però obre la porta al fet que el &amp;quot;pay or okay&amp;quot; sigui legítim per a plataformes petites.&lt;/p&gt;
&lt;p&gt;El 14 de maig de 2024 l&#39;AEPD va recollir els canvis a la seva guia amb una pàgina més on alertava del nou dictamen, fent especial èmfasi que es referia únicament a &amp;quot;grans plataformes&amp;quot;. Així, la premsa espanyola és una més de les que se suma al &amp;quot;pay or okay&amp;quot; juntament amb Àustria&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn12&quot; id=&quot;fnref12:1&quot;&gt;[12:1]&lt;/a&gt;&lt;/sup&gt; &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn13&quot; id=&quot;fnref13:1&quot;&gt;[13:1]&lt;/a&gt;&lt;/sup&gt;, Alemanya&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn14&quot; id=&quot;fnref14:1&quot;&gt;[14:1]&lt;/a&gt;&lt;/sup&gt; França&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn15&quot; id=&quot;fnref15:1&quot;&gt;[15:1]&lt;/a&gt;&lt;/sup&gt; o el Regne Unit&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn25&quot; id=&quot;fnref25&quot;&gt;[25]&lt;/a&gt;&lt;/sup&gt; &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn26&quot; id=&quot;fnref26&quot;&gt;[26]&lt;/a&gt;&lt;/sup&gt;. Es tracta, per tant, de l&#39;atac més exitós fins ara al RGPD.&lt;/p&gt;
&lt;p&gt;Encara no és clar quin serà el resultat, però podem avançar què passaria si es permet el model de &amp;quot;pay or okay&amp;quot; per a plataformes petites, com s&#39;està observant en els països on ja s&#39;ha implementat. Recordem que el RGPD estableix clarament que sempre hi ha d&#39;haver una alternativa a l&#39;ús de dades personals per a finalitats no essencials, com la publicitat. La teoria del &amp;quot;pay or consent&amp;quot; és que aquesta alternativa no necessàriament ha de ser gratuïta, amb la condició que existeixin en el mercat alternatives que sí que ho siguin. Per tant, Meta, en la seva condició de &amp;quot;plataforma molt gran&amp;quot;, a la pràctica imposa el &amp;quot;pay or okay&amp;quot;. En canvi, un mitjà de comunicació sí que ho pot fer, ja que l&#39;usuari sempre pot consultar un altre mitjà de la competència.&lt;/p&gt;
&lt;p&gt;Però, com hem vist, què passa quan la majoria dels mitjans apliquen la mateixa pràctica de manera coordinada? En el cas de la premsa espanyola, a la pràctica podria tenir el mateix efecte que el d&#39;una &amp;quot;gran plataforma digital&amp;quot;. Per comprovar aquesta hipòtesi, a tall d&#39;estudi podem agafar els mitjans catalans. La DSA defineix com a &amp;quot;plataforma molt gran&amp;quot; aquells serveis que tenen més de 45 milions d&#39;usuaris a la Unió Europea&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn27&quot; id=&quot;fnref27&quot;&gt;[27]&lt;/a&gt;&lt;/sup&gt;. Com que la població de la Unió Europea és de 449 milions de persones, la definició de la DSA s&#39;aplicaria a tot servei que tingui com a usuaris el 10% de la població o més.&lt;/p&gt;
&lt;p&gt;Després de revisar les dades de lectors en línia dels mitjans catalans publicades per OJD el gener de 2025, he estimat que com a mínim un 56% d&#39;usuaris inclosos en l&#39;estudi són a mitjans que apliquen el &amp;quot;pay or okay&amp;quot;:&lt;/p&gt;
&lt;div class=&quot;mermaid&quot;&gt;&lt;svg aria-roledescription=&quot;pie&quot; role=&quot;graphics-document document&quot; style=&quot;max-width: 652.781px; background-color: white;&quot; viewBox=&quot;0 0 652.78125 450&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; id=&quot;my-svg&quot;&gt;&lt;style&gt;#my-svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .pieCircle{stroke:black;stroke-width:2px;opacity:0.7;}#my-svg .pieOuterCircle{stroke:black;stroke-width:2px;fill:none;}#my-svg .pieTitleText{text-anchor:middle;font-size:25px;fill:black;font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;}#my-svg .slice{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;fill:#333;font-size:17px;}#my-svg .legend text{fill:black;font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:17px;}#my-svg :root{--mermaid-font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;}&lt;/style&gt;&lt;g&gt;&lt;/g&gt;&lt;g transform=&quot;translate(225,225)&quot;&gt;&lt;circle class=&quot;pieOuterCircle&quot; r=&quot;186&quot; cy=&quot;0&quot; cx=&quot;0&quot;&gt;&lt;/circle&gt;&lt;path class=&quot;pieCircle&quot; fill=&quot;#ECECFF&quot; d=&quot;M0,-185A185,185,0,1,1,-66.696,172.559L0,0Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;pieCircle&quot; fill=&quot;#ffffde&quot; d=&quot;M-66.696,172.559A185,185,0,0,1,-63.65,-173.706L0,0Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;pieCircle&quot; fill=&quot;hsl(80, 100%, 56.2745098039%)&quot; d=&quot;M-63.65,-173.706A185,185,0,0,1,-16.021,-184.305L0,0Z&quot;&gt;&lt;/path&gt;&lt;path class=&quot;pieCircle&quot; fill=&quot;hsl(240, 100%, 86.2745098039%)&quot; d=&quot;M-16.021,-184.305A185,185,0,0,1,0,-185L0,0Z&quot;&gt;&lt;/path&gt;&lt;text style=&quot;text-anchor: middle;&quot; class=&quot;slice&quot; transform=&quot;translate(136.39740148232048,25.4423145344656)&quot;&gt;56%&lt;/text&gt;&lt;text style=&quot;text-anchor: middle;&quot; class=&quot;slice&quot; transform=&quot;translate(-138.7446319567803,-1.2204930059542427)&quot;&gt;39%&lt;/text&gt;&lt;text style=&quot;text-anchor: middle;&quot; class=&quot;slice&quot; transform=&quot;translate(-30.139741861745193,-135.43691690417117)&quot;&gt;4%&lt;/text&gt;&lt;text style=&quot;text-anchor: middle;&quot; class=&quot;slice&quot; transform=&quot;translate(-6.013480329969267,-138.61962542988303)&quot;&gt;1%&lt;/text&gt;&lt;text class=&quot;pieTitleText&quot; y=&quot;-200&quot; x=&quot;0&quot;&gt;Pay or okay als mitjans catalans&lt;/text&gt;&lt;g transform=&quot;translate(216,-44)&quot; class=&quot;legend&quot;&gt;&lt;rect style=&quot;fill: rgb(236, 236, 255); stroke: rgb(236, 236, 255);&quot; height=&quot;18&quot; width=&quot;18&quot;&gt;&lt;/rect&gt;&lt;text y=&quot;14&quot; x=&quot;22&quot;&gt;Pay or okay&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(216,-22)&quot; class=&quot;legend&quot;&gt;&lt;rect style=&quot;fill: rgb(255, 255, 222); stroke: rgb(255, 255, 222);&quot; height=&quot;18&quot; width=&quot;18&quot;&gt;&lt;/rect&gt;&lt;text y=&quot;14&quot; x=&quot;22&quot;&gt;Permet rebutjar&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(216,0)&quot; class=&quot;legend&quot;&gt;&lt;rect style=&quot;fill: rgb(181, 255, 32); stroke: rgb(181, 255, 32);&quot; height=&quot;18&quot; width=&quot;18&quot;&gt;&lt;/rect&gt;&lt;text y=&quot;14&quot; x=&quot;22&quot;&gt;Altres&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(216,22)&quot; class=&quot;legend&quot;&gt;&lt;rect style=&quot;fill: rgb(185, 185, 255); stroke: rgb(185, 185, 255);&quot; height=&quot;18&quot; width=&quot;18&quot;&gt;&lt;/rect&gt;&lt;text y=&quot;14&quot; x=&quot;22&quot;&gt;Infringeix el GDPR&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;p&gt;Per tant ens trobem que només a Catalunya la pràctica del &amp;quot;pay or okay&amp;quot;, si es considera agregada, supera de sobres la consideració de &amp;quot;plataforma molt gran&amp;quot;.&lt;/p&gt;
&lt;p&gt;Dit això, cal fer algunes consideracions sobre aquest petit estudi. Primer, que la proporció que he aplicat per estimar el que seria una &amp;quot;plataforma molt gran&amp;quot; a Catalunya és una simplificació, ja que no es pot extrapolar una relació directa entre població i usuaris, o tan sols entre usuaris i persones. A més, la consideració de &amp;quot;plataforma molt gran&amp;quot; va més enllà de la quota en un sol mercat, pel fet que Meta o Google transvasen les dades d&#39;un servei cap a un altre per obtenir avantatge competitiu. Segon, que l&#39;estudi d&#39;audiència d&#39;OJD no inclou des de fa anys alguns dels mitjans més grans, com El Nacional o Nació Digital, i per tant el percentatge real de mercat que aplica el &amp;quot;pay or okay&amp;quot; és probablement molt més alt del 56%, potser acostant-se al 70% o 80%. Però crec que les dades que s&#39;obtenen indiquen una tendència molt clara, a pesar d&#39;aquestes consideracions.&lt;/p&gt;
&lt;p&gt;Podem dir, en conseqüència, que els usuaris a Catalunya tenim una alternativa real per consultar l&#39;actualitat sense pagar o regalar les nostres dades personals?&lt;/p&gt;
&lt;p&gt;En últim lloc, cal parlar de si el &amp;quot;pay or okay&amp;quot; ofereix una alternativa real als usuaris. Com indica NOYB&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn28&quot; id=&quot;fnref28&quot;&gt;[28]&lt;/a&gt;&lt;/sup&gt;, el &amp;quot;pay or okay&amp;quot; fa que els usuaris que accepten les cookies passi del 3% al 99,9%. Es pot considerar encara una decisió consentida i lliure? I si els usuaris decideixen pagar per evitar les cookies, de quines quantitats estem parlant? Segons NOYB&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fn29&quot; id=&quot;fnref29&quot;&gt;[29]&lt;/a&gt;&lt;/sup&gt;, el cost de les subscripcions als principals serveis d&#39;Espanya per evitar les cookies podria suposar, de mitjana, uns 121 € al mes, o 1460 € a l&#39;any.&lt;/p&gt;
&lt;p&gt;La meva conclusió és que la distinció basada en la definició de &amp;quot;plataformes molt grans&amp;quot; de la DSA provoca un efecte oligopoli, el qual priva als usuaris d&#39;una alternativa real. Permetre aquesta pràctica suposaria un cop mortal al RGPD. Per contra, prohibir-la tancaria aquesta escletxa i faria que la indústria de la publicitat es plantegés un cop més abandonar el tràfic de dades personals.&lt;/p&gt;
&lt;h2 id=&quot;refer%C3%A8ncies&quot; tabindex=&quot;-1&quot;&gt;Referències &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#refer%C3%A8ncies&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;B6-22/16. Facebook, Exploitative business terms pursuant to Section 19(1) GWB for inadequate data processing,&lt;/em&gt; Bundeskartellamt, 15 de febrer de 2019 (&lt;a href=&quot;https://www.bundeskartellamt.de/SharedDocs/Entscheidung/EN/Fallberichte/Missbrauchsaufsicht/2019/B6-22-16.pdf&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref1:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref1:2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref1:3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref1:4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Sentencia del Tribunal de Justicia (Gran Sala) de 4 de julio de 2023. Meta Platforms Inc. y otros contra Bundeskartellamt,&lt;/em&gt; TJUE, juliol de 2023 (&lt;a href=&quot;https://eur-lex.europa.eu/legal-content/ES/TXT/?uri=CELEX:62021CJ0252&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref2:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref2:2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref2:3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref2:4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Bewertung von Pur-Abo-Modellen auf Websites,&lt;/em&gt; DSK, març de 2023 (&lt;a href=&quot;https://www.datenschutzkonferenz-online.de/media/pm/DSK_Beschluss_Bewertung_von_Pur-Abo-Modellen_auf_Websites.pdf&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;La AEPD actualiza su Guía sobre el uso de cookies para adaptarla a las nuevas directrices del Comité Europeo de Protección de Datos,&lt;/em&gt; AEPD, 11 de juliol de 2023 (&lt;a href=&quot;https://www.aepd.es/prensa-y-comunicacion/notas-de-prensa/aepd-actualiza-guia-cookies-para-adaptarla-a-nuevas-directrices-cepd&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref4:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref4:2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Facebook and Instagram to Offer Subscription for No Ads in Europe,&lt;/em&gt; Meta, octubre de 2023 (&lt;a href=&quot;https://about.fb.com/news/2024/11/facebook-and-instagram-to-offer-subscription-for-no-ads-in-europe/&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref5:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;És legal fer pagar si no s&#39;accepten les cookies? El canvi que indigna els usuaris,&lt;/em&gt; 324, febrer de 2024 (&lt;a href=&quot;https://www.3cat.cat/324/es-legal-fer-pagar-si-no-saccepten-les-cookies-el-canvi-que-indigna-els-usuaris/noticia/3277188/&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref6:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Los medios de comunicación españoles ya cobran a los usuarios que no acepten las cookies de rastreo,&lt;/em&gt; El Periódico, gener de 2024 (&lt;a href=&quot;https://www.elperiodico.com/es/tecnologia/20240112/medios-comunicacion-espana-cobrar-usuarios-cookies-periodismo-pago-96811867&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref7:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref7:2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn8&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Por qué pedimos la aceptación de las &#39;cookies&#39;,&lt;/em&gt; El Correo, gener de 2024 (&lt;a href=&quot;https://www.elcorreo.com/tecnologia/pedimos-aceptacion-cookies-20240111070603-ntrc.html&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref8&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref8:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn9&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Dictamen 8/2024 sobre el consentimiento válido en el contexto de los modelos de consentimiento o pago aplicados por las plataformas en línea de gran tamaño,&lt;/em&gt; CEPD, abril de 2024 (&lt;a href=&quot;https://www.edpb.europa.eu/our-work-tools/our-documents/opinion-board-art-64/opinion-082024-valid-consent-context-consent-or_es&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref9&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref9:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn10&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Data Policy,&lt;/em&gt; Facebook, 2016 (&lt;a href=&quot;https://web.archive.org/web/20160316124448/https://www.facebook.com/about/privacy&quot; class=&quot;link-archive&quot;&gt;arxivat&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref10&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn11&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Meta (Facebook / Instagram) to move to a &amp;quot;Pay for your Rights&amp;quot; approach,&lt;/em&gt; NOYB, 2023 (&lt;a href=&quot;https://noyb.eu/en/meta-facebook-instagram-move-pay-your-rights-approach&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref11&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref11:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn12&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Lukas A. vs Standard Verlagsgesellschaft m. b. H.,&lt;/em&gt; DSB, 2018 (&lt;a href=&quot;https://www.ris.bka.gv.at/Dokumente/Dsk/DSBT_20181130_DSB_D122_931_0003_DSB_2018_00/DSBT_20181130_DSB_D122_931_0003_DSB_2018_00.pdf&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref12&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref12:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn13&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;“Pay or Okay” bei derStandard.at?,&lt;/em&gt; NOYB, 2018 (&lt;a href=&quot;https://noyb.eu/en/pay-or-okay-bei-derstandardat&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref13&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref13:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn14&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;„Pay or Okay“ on tech news site heise.de illegal, decides German DPA,&lt;/em&gt; NOYB, 14 de juliol de 2023 (&lt;a href=&quot;https://noyb.eu/en/pay-or-okay-tech-news-site-heisede-illegal-decides-german-dpa&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref14&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref14:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn15&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Cookie walls : la CNIL publie des premiers critères d’évaluation,&lt;/em&gt; CNIL (&lt;a href=&quot;https://www.cnil.fr/fr/cookie-walls-la-cnil-publie-des-premiers-criteres-devaluation&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref15&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref15:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn16&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;News Sites: Readers need to &amp;quot;buy back&amp;quot; their own data at an exorbitant price?!,&lt;/em&gt; NOYB, 2021 (&lt;a href=&quot;https://noyb.eu/en/news-sites-readers-need-buy-back-their-own-data-exorbitant-price&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref16&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn17&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Guía sobre el uso de las cookies,&lt;/em&gt; AEPD, 2023 (&lt;a href=&quot;http://web.archive.org/web/20240117031559/https://www.aepd.es/guias/guia-cookies.pdf&quot; class=&quot;link-archive&quot;&gt;arxivat&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref17&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn18&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Guidelines 03/2022 on deceptive design patterns in social media platform interfaces,&lt;/em&gt; CEPD, febrer de 2023 (&lt;a href=&quot;https://www.edpb.europa.eu/our-work-tools/our-documents/guidelines/guidelines-032022-deceptive-design-patterns-social-media_en&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref18&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn19&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Privacy Sandbox,&lt;/em&gt; Wikipedia (&lt;a href=&quot;https://en.wikipedia.org/wiki/Privacy_Sandbox&quot; class=&quot;link-wikipedia&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref19&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn20&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Don&#39;t Play in Google&#39;s Privacy Sandbox,&lt;/em&gt; EFF, 30 d&#39;agost de 2019 (&lt;a href=&quot;https://www.eff.org/deeplinks/2019/08/dont-play-googles-privacy-sandbox-1&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref20&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn21&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;A new path for Privacy Sandbox on the web,&lt;/em&gt; Google, 22 de juliol de 2024 (&lt;a href=&quot;https://privacysandbox.com/intl/en_us/news/privacy-sandbox-update/&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref21&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn22&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Rechazar cookies, todo un lujo,&lt;/em&gt; OCU, 26 de gener de 2024 (&lt;a href=&quot;https://www.ocu.org/consumo-familia/derechos-consumidor/informe/cookies-pago-rechazo&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref22&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn23&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;28 NGOs urge EU DPAs to reject “Pay or Okay” on Meta,&lt;/em&gt; NOYB, 16 de febrer de 2024 (&lt;a href=&quot;https://noyb.eu/en/28-ngos-urge-eu-dpas-reject-pay-or-okay-meta&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref23&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt; &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref23:1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn24&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Request for an EDPB opinion on “consent or pay”,&lt;/em&gt; Datatilsynet, 26 de gener de 2024 (&lt;a href=&quot;https://www.datatilsynet.no/en/news/aktuelle-nyheter-2024/request-for-an-edpb-opinion-on-consent-or-pay/&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref24&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn25&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;‘Consent or pay’: Why UK news websites are getting tough with readers over data,&lt;/em&gt; PressGazette, 12 de setembre de 2024 (&lt;a href=&quot;https://pressgazette.co.uk/marketing/consent-or-pay-news-websites-uk/&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref25&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn26&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;Guardian, GB News and Newsquest among latest publishers to tell readers: ‘consent or pay’,&lt;/em&gt; PressGazette, 14 de març de 2025 (&lt;a href=&quot;https://pressgazette.co.uk/marketing/cookies-consent-or-pay-guardian-gb-news-newsquest-city-am/&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref26&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn27&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;DSA: Very large online platforms and search engines,&lt;/em&gt; Comissió Europea, 12 de febrer de 2025 (&lt;a href=&quot;https://digital-strategy.ec.europa.eu/en/policies/dsa-vlops&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref27&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn28&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;EDPB Opinion: Meta cannot rely on &amp;quot;Pay or Okay&amp;quot;,&lt;/em&gt; NOYB, 17 d&#39;abril de 2024 (&lt;a href=&quot;https://noyb.eu/en/statement-edpb-pay-or-okay-opinion&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref28&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn29&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;em&gt;&amp;quot;Pay or Okay&amp;quot;: 1,500 € a year for your online privacy?,&lt;/em&gt; NOYB, 19 de març de 2024 (&lt;a href=&quot;https://noyb.eu/en/pay-or-okay-1500-eu-year-your-online-privacy&quot; class=&quot;link-external&quot;&gt;en línia&lt;/a&gt;). &lt;a href=&quot;https://lamaquinadeturing.su/ca/2025/06/pay-or-spain-cronica-del-mur-de-pagament-de-la-premsa-espanyola/#fnref29&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;

    </content>
  </entry>
  <entry xml:lang="en">
    <title>This post has been generated with Eleventy</title>
    <link href="https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/" />
    <updated>2025-02-12T16:00:00Z</updated>
    <id>https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/</id>
    <content type="html">
      &lt;p&gt;&lt;img src=&quot;https://lamaquinadeturing.su/assets/media/11ty_opt1200.jpg&quot; alt=&quot;A rendering of Eleventy&amp;#39;s mascot by Phineas X. Jones.&quot;&gt;&lt;/p&gt;&lt;p&gt;As the title says, this blog is now generated with &lt;a href=&quot;https://www.11ty.dev/&quot; class=&quot;link-external&quot;&gt;Eleventy&lt;/a&gt;, or 11ty as they call it. I thought I would write a little bit about my experience translating this blog, which comes from a static Wordpress, from Jekyll to 11ty.&lt;/p&gt;
&lt;p&gt;I have &lt;em&gt;opinions&lt;/em&gt;, so skip what doesn&#39;t interest you:&lt;/p&gt;
&lt;div class=&quot;toc&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#in-the-beginning-was-wordpress&quot;&gt;In the beginning was Wordpress &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#jekyll-is-great%2C-but...&quot;&gt;Jekyll is great, but... &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#hi%2C-my-friends-call-me-11ty&quot;&gt;Hi, my friends call me 11ty &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#what-the-hell-is-a-pagination%3F-understading-11ty&#39;s-data-flow&quot;&gt;What the hell is a pagination? Understading 11ty&#39;s data flow &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#extensibility%2C-extensibility-everywhere&quot;&gt;Extensibility, extensibility everywhere &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#would-buy-again&quot;&gt;Would buy again &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;h2 id=&quot;in-the-beginning-was-wordpress&quot; tabindex=&quot;-1&quot;&gt;In the beginning was Wordpress &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#in-the-beginning-was-wordpress&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I keep saying that &lt;a href=&quot;https://lamaquinadeturing.su/en/2024/08/implementing-the-search-function-in-a-static-web-site/&quot;&gt;static web sites are the best&lt;/a&gt;. The modern web feels bloated and unnecessarily wasteful to me, maybe I&#39;m getting old. Static web sites are &lt;a href=&quot;https://lamaquinadeturing.su/en/2024/08/the-case-for-a-better-web/&quot;&gt;a better web&lt;/a&gt;: content-centric, fast, easy to deploy and cheap to maintain.&lt;/p&gt;
&lt;p&gt;I started this attempt to a personal blog many years ago with Wordpress, with the 8-bit theme from &lt;a href=&quot;https://brutalistthemes.com/&quot; class=&quot;link-external&quot;&gt;Brutalist Themes&lt;/a&gt; (which came with a GPL license!). Then I adapted the &lt;a href=&quot;https://github.com/elementor/wp2static&quot; class=&quot;link-github&quot;&gt;WP2Static plugin&lt;/a&gt; so it would generate a static website, using Wordpress as a kind of WYSIWYG web editor. It was a fun project but very difficult to maintain, and at some point I lost the instance that stored the Wordpress setup.&lt;/p&gt;
&lt;h2 id=&quot;jekyll-is-great%2C-but...&quot; tabindex=&quot;-1&quot;&gt;Jekyll is great, but... &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#jekyll-is-great%2C-but...&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Some years ago I reconstructed the web site from Internet Archive snapshots, but this time using Jekyll. Why did I choose Jekyll? Well, it was the Wordpress of static web sites. I imagine GitHub choosing it for their Pages made it explode in popularity. I must say that for simple things it &amp;quot;just works&amp;quot;: you put your posts in &lt;code class=&quot;inline&quot;&gt;./_posts&lt;/code&gt;, add some HTML templates with Liquid syntax, and that&#39;s it.&lt;/p&gt;
&lt;p&gt;It served me well, and as a programmer it gave me the flexibility to implement my own plugins to do fun stuff: decorate external links, tables of content, etc. Was it &lt;em&gt;necessary&lt;/em&gt; to reimplement that? No. Was it because there weren&#39;t plugins available? Again, no. But was it fun? Yes! And that is the whole point of having my own blog, doing &lt;em&gt;unnecessary&lt;/em&gt; and funny things.&lt;/p&gt;
&lt;p&gt;Obviously there is a &amp;quot;but&amp;quot; at the end of the previous paragraph, because Jekyll had its shortcomings.&lt;/p&gt;
&lt;p&gt;For starters, the decision to implement Jekyll in Ruby. I liked learning a little bit of Ruby, but the tooling felt clunky, at least for a simple blog. I never got used to gems and &lt;code class=&quot;inline&quot;&gt;rvm&lt;/code&gt;, it felt very difficult to set up. Another pain point was the performance, which isn&#39;t a big problem for a small blog, but it seemed unnecessarily low nevertheless. In addition, Jekyll rapidly feels rigid and verbose if you have to slightly deviate from the expected functionality. It may not be alone in this, more below.&lt;/p&gt;
&lt;p&gt;Another reason is the status of the project. Every time I visited the GitHub page of a plugin, the last commit was 5 years old or more. This is subjective, and Jekyll could instead be thriving, but it gave me the impression like it was slowly dying.&lt;/p&gt;
&lt;p&gt;It is at this point when I heard about Eleventy...&lt;/p&gt;
&lt;h2 id=&quot;hi%2C-my-friends-call-me-11ty&quot; tabindex=&quot;-1&quot;&gt;Hi, my friends call me 11ty &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#hi%2C-my-friends-call-me-11ty&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I started following &lt;a href=&quot;https://hachyderm.io/@eleventy@fosstodon.org&quot; class=&quot;link-mastodon&quot;&gt;11ty&#39;s Mastodon&lt;/a&gt; account and seemed an interesting project. And, as an engineer, I cannot resist the temptation of a big, unnecessary refactor and &amp;quot;just rewrite it in &lt;s&gt;Rust&lt;/s&gt; 11ty&amp;quot;.&lt;/p&gt;
&lt;p&gt;Jekyll users will feel using 11ty very natural: the &lt;code class=&quot;inline&quot;&gt;_posts&lt;/code&gt; or &lt;code class=&quot;inline&quot;&gt;_includes&lt;/code&gt; directories, rendering the static files to a &lt;code class=&quot;inline&quot;&gt;_site&lt;/code&gt; directory, support for Markdown and Liquid, and so on.&lt;/p&gt;
&lt;p&gt;I also count 11ty&#39;s tooling as an improvement. And by that I mean NodeJS tooling. &lt;code class=&quot;inline&quot;&gt;npm&lt;/code&gt; and &lt;code class=&quot;inline&quot;&gt;package.json&lt;/code&gt; felt like an improvement. And, in general, the Javascript community is &lt;em&gt;huge&lt;/em&gt;, so 11ty has access to so many more packages.&lt;/p&gt;
&lt;p&gt;Before going on to more details: both Jekyll and 11ty have great documentation sites, well written and with many examples. My only complain about &lt;a href=&quot;https://www.11ty.dev/docs/&quot; class=&quot;link-external&quot;&gt;11ty&#39;s documentation site&lt;/a&gt; is that the division in chapters only made sense &lt;em&gt;after&lt;/em&gt; I understood the basic concepts of 11ty. Also, the search function is not great (try searching for &lt;code class=&quot;inline&quot;&gt;setLayoutsDirectory&lt;/code&gt;), but I guess that&#39;s what happens with static sites. It was easy to get lost, to the point that I wrote a Python script to scrape the documentation web site and store it as a PDF, which then I fed to a NotebookLM project.&lt;/p&gt;
&lt;p&gt;There is no official guide to migrate from Jekyll to 11ty, so this is the general plan:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Translate your &lt;a href=&quot;https://jekyllrb.com/docs/configuration/&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;_config.yml&lt;/code&gt;&lt;/a&gt; to &lt;a href=&quot;https://www.11ty.dev/docs/config-shapes/#callback-function&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;eleventy.config.js&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;You can keep your posts in &lt;code class=&quot;inline&quot;&gt;_posts&lt;/code&gt; and your layouts in &lt;code class=&quot;inline&quot;&gt;_includes&lt;/code&gt;. By default 11ty doesn&#39;t distinguish between layouts and includes, if you use the &lt;code class=&quot;inline&quot;&gt;_layouts&lt;/code&gt; directory you&#39;ll need to turn on &lt;a href=&quot;https://www.11ty.dev/docs/config/#directory-for-layouts-optional&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;setLayoutsDirectory()&lt;/code&gt;&lt;/a&gt; in the configuration.&lt;/li&gt;
&lt;li&gt;While using &lt;a href=&quot;https://jekyllrb.com/docs/includes/&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;{% include %}&lt;/code&gt;&lt;/a&gt; to compose templates is a common practice in Jekyll, in 11ty it depends on which render engine you are using, and in general you lose the &lt;code class=&quot;inline&quot;&gt;page&lt;/code&gt; context. I had to slightly modify my template structure and use LiquidJS &lt;a href=&quot;https://liquidjs.com/api/classes/Liquid.html#renderFile&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;{% renderFile %}&lt;/code&gt;&lt;/a&gt; with the explicit state that it required.&lt;/li&gt;
&lt;li&gt;11ty supports many template engines, beyond Markdown and Liquid. In particular 11ty&#39;s &lt;a href=&quot;https://www.11ty.dev/docs/languages/javascript/&quot; class=&quot;link-external&quot;&gt;native Javascript templates&lt;/a&gt; and &lt;a href=&quot;https://www.11ty.dev/docs/data-global/&quot; class=&quot;link-external&quot;&gt;global data files&lt;/a&gt; are a powerful tool. Beware: 11ty&#39;s Liquid flavor is slightly different than Jekyll&#39;s, so it will need some massaging. For instance, 11ty doesn&#39;t support &lt;code class=&quot;inline&quot;&gt;markdownify&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The overall data flow used by 11ty is similar to Jekyll: posts with a front matter get rendered by templates, which can be composed with layouts and includes. However, while Jekyll has &lt;a href=&quot;https://jekyllrb.com/docs/pages/&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;pages&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://jekyllrb.com/docs/posts/&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;posts&lt;/code&gt;&lt;/a&gt;, in 11ty everything is just &lt;a href=&quot;https://www.11ty.dev/docs/data/&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;data&lt;/code&gt;&lt;/a&gt; which can be grouped within a &lt;a href=&quot;https://www.11ty.dev/docs/collections/&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;collection&lt;/code&gt;&lt;/a&gt;. I think this is a natural evolution, but the posts/pages organization will be more familiar to people coming from Wordpress.&lt;/li&gt;
&lt;li&gt;Adding &lt;a href=&quot;https://www.11ty.dev/docs/filters/&quot; class=&quot;link-external&quot;&gt;custom filters&lt;/a&gt; or &lt;a href=&quot;https://www.11ty.dev/docs/shortcodes/&quot; class=&quot;link-external&quot;&gt;shortcodes&lt;/a&gt; is as easy, if not more, as &lt;a href=&quot;https://jekyllrb.com/docs/plugins/filters/&quot; class=&quot;link-external&quot;&gt;in Jekyll&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you only have a bunch of loose Markdown files in a &lt;code class=&quot;inline&quot;&gt;_posts&lt;/code&gt; directory, with some templates to render them, that&#39;s more or less it. But anything more complex starts getting more challenging.&lt;/p&gt;
&lt;h2 id=&quot;what-the-hell-is-a-pagination%3F-understading-11ty&#39;s-data-flow&quot; tabindex=&quot;-1&quot;&gt;What the hell is a pagination? Understading 11ty&#39;s data flow &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#what-the-hell-is-a-pagination%3F-understading-11ty&#39;s-data-flow&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Personally, it took me a long time to understand the &lt;a href=&quot;https://www.11ty.dev/docs/advanced-order/&quot; class=&quot;link-external&quot;&gt;data flow process&lt;/a&gt; within 11ty, and I still struggle. This is my mental model:&lt;/p&gt;
&lt;div class=&quot;mermaid&quot;&gt;&lt;svg aria-roledescription=&quot;stateDiagram&quot; role=&quot;graphics-document document&quot; viewBox=&quot;0 0 984.75 396&quot; style=&quot;max-width: 984.75px; background-color: white;&quot; class=&quot;statediagram&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; id=&quot;my-svg&quot;&gt;&lt;style&gt;#my-svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;fill:#000000;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#666;stroke:#666;}#my-svg .marker.cross{stroke:#666;}#my-svg svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg defs #statediagram-barbEnd{fill:#000;stroke:#000;}#my-svg g.stateGroup text{fill:#999;stroke:none;font-size:10px;}#my-svg g.stateGroup text{fill:#000000;stroke:none;font-size:10px;}#my-svg g.stateGroup .state-title{font-weight:bolder;fill:#111111;}#my-svg g.stateGroup rect{fill:#eee;stroke:#999;}#my-svg g.stateGroup line{stroke:#666;stroke-width:1;}#my-svg .transition{stroke:#000;stroke-width:1;fill:none;}#my-svg .stateGroup .composit{fill:#ffffff;border-bottom:1px;}#my-svg .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#my-svg .state-note{stroke:#999;fill:#666;}#my-svg .state-note text{fill:#fff;stroke:none;font-size:10px;}#my-svg .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5;}#my-svg .edgeLabel .label rect{fill:#eee;opacity:0.5;}#my-svg .edgeLabel{background-color:white;text-align:center;}#my-svg .edgeLabel p{background-color:white;}#my-svg .edgeLabel rect{opacity:0.5;background-color:white;fill:white;}#my-svg .edgeLabel .label text{fill:#000000;}#my-svg .label div .edgeLabel{color:#000000;}#my-svg .stateLabel text{fill:#111111;font-size:10px;font-weight:bold;}#my-svg .node circle.state-start{fill:#222;stroke:#222;}#my-svg .node .fork-join{fill:#222;stroke:#222;}#my-svg .node circle.state-end{fill:hsl(0, 0%, 83.3333333333%);stroke:#ffffff;stroke-width:1.5;}#my-svg .end-state-inner{fill:#ffffff;stroke-width:1.5;}#my-svg .node rect{fill:#eee;stroke:#000;stroke-width:1px;}#my-svg .node polygon{fill:#eee;stroke:#000;stroke-width:1px;}#my-svg #statediagram-barbEnd{fill:#666;}#my-svg .statediagram-cluster rect{fill:#eee;stroke:#000;stroke-width:1px;}#my-svg .cluster-label,#my-svg .nodeLabel{color:#111111;}#my-svg .statediagram-cluster rect.outer{rx:5px;ry:5px;}#my-svg .statediagram-state .divider{stroke:#000;}#my-svg .statediagram-state .title-state{rx:5px;ry:5px;}#my-svg .statediagram-cluster.statediagram-cluster .inner{fill:#ffffff;}#my-svg .statediagram-cluster.statediagram-cluster-alt .inner{fill:#f4f4f4;}#my-svg .statediagram-cluster .inner{rx:0;ry:0;}#my-svg .statediagram-state rect.basic{rx:5px;ry:5px;}#my-svg .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#f4f4f4;}#my-svg .note-edge{stroke-dasharray:5;}#my-svg .statediagram-note rect{fill:#666;stroke:#999;stroke-width:1px;rx:0;ry:0;}#my-svg .statediagram-note rect{fill:#666;stroke:#999;stroke-width:1px;rx:0;ry:0;}#my-svg .statediagram-note text{fill:#fff;}#my-svg .statediagram-note .nodeLabel{color:#fff;}#my-svg .statediagram .edgeLabel{color:red;}#my-svg #dependencyStart,#my-svg #dependencyEnd{fill:#666;stroke:#666;stroke-width:1;}#my-svg .statediagramTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg :root{--mermaid-font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;}#my-svg .fileClass&amp;gt;*{fill:#ffcb5d!important;}#my-svg .fileClass span{fill:#ffcb5d!important;}#my-svg .dataClass&amp;gt;*{fill:#cb5dff!important;}#my-svg .dataClass span{fill:#cb5dff!important;}&lt;/style&gt;&lt;g&gt;&lt;defs&gt;&lt;marker orient=&quot;auto&quot; markerUnits=&quot;userSpaceOnUse&quot; markerHeight=&quot;14&quot; markerWidth=&quot;20&quot; refY=&quot;7&quot; refX=&quot;19&quot; id=&quot;my-svg_stateDiagram-barbEnd&quot;&gt;&lt;path d=&quot;M 19,7 L9,13 L14,7 L9,1 Z&quot;&gt;&lt;/path&gt;&lt;/marker&gt;&lt;/defs&gt;&lt;g class=&quot;root&quot;&gt;&lt;g class=&quot;clusters&quot;&gt;&lt;g data-look=&quot;classic&quot; data-id=&quot;DataSources&quot; id=&quot;DataSources&quot; class=&quot;statediagram-state statediagram-cluster&quot;&gt;&lt;g&gt;&lt;rect data-look=&quot;classic&quot; height=&quot;380&quot; width=&quot;201.84375&quot; y=&quot;8&quot; x=&quot;8&quot; class=&quot;outer&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g transform=&quot;translate(61.2890625, 9)&quot; class=&quot;cluster-label&quot;&gt;&lt;foreignObject height=&quot;18&quot; width=&quot;95.265625&quot;&gt;&lt;div style=&quot;display: inline-block; padding-right: 1px; white-space: nowrap;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;Data sources&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;rect height=&quot;356&quot; width=&quot;201.84375&quot; y=&quot;28&quot; x=&quot;8&quot; class=&quot;inner&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g data-look=&quot;classic&quot; data-id=&quot;CollectionsAPI&quot; id=&quot;CollectionsAPI&quot; class=&quot;statediagram-state statediagram-cluster&quot;&gt;&lt;g&gt;&lt;rect data-look=&quot;classic&quot; height=&quot;355&quot; width=&quot;124.46875&quot; y=&quot;15.5&quot; x=&quot;259.84375&quot; class=&quot;outer&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g transform=&quot;translate(267.7734375, 16.5)&quot; class=&quot;cluster-label&quot;&gt;&lt;foreignObject height=&quot;18&quot; width=&quot;108.609375&quot;&gt;&lt;div style=&quot;display: inline-block; padding-right: 1px; white-space: nowrap;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;Collections API&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;rect height=&quot;331&quot; width=&quot;124.46875&quot; y=&quot;35.5&quot; x=&quot;259.84375&quot; class=&quot;inner&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g data-look=&quot;classic&quot; data-id=&quot;PaginationAPI&quot; id=&quot;PaginationAPI&quot; class=&quot;statediagram-state statediagram-cluster&quot;&gt;&lt;g&gt;&lt;rect data-look=&quot;classic&quot; height=&quot;245&quot; width=&quot;190.296875&quot; y=&quot;98&quot; x=&quot;434.3125&quot; class=&quot;outer&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g transform=&quot;translate(476.4765625, 99)&quot; class=&quot;cluster-label&quot;&gt;&lt;foreignObject height=&quot;18&quot; width=&quot;105.96875&quot;&gt;&lt;div style=&quot;display: inline-block; padding-right: 1px; white-space: nowrap;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;Pagination API&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;rect height=&quot;221&quot; width=&quot;190.296875&quot; y=&quot;118&quot; x=&quot;434.3125&quot; class=&quot;inner&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgePaths&quot;&gt;&lt;path marker-end=&quot;url(#my-svg_stateDiagram-barbEnd)&quot; style=&quot;;fill:none&quot; class=&quot;edge-thickness-normal edge-pattern-solid transition&quot; id=&quot;edge0&quot; d=&quot;M151.938,63L161.589,63C171.24,63,190.542,63,204.359,63C218.177,63,226.51,63,234.844,63C243.177,63,251.51,63,258.558,65.083C265.606,67.167,271.369,71.333,277.131,75.5C282.894,79.667,288.656,83.833,291.537,85.917L294.418,88&quot;&gt;&lt;/path&gt;&lt;path marker-end=&quot;url(#my-svg_stateDiagram-barbEnd)&quot; style=&quot;;fill:none&quot; class=&quot;edge-thickness-normal edge-pattern-solid transition&quot; id=&quot;edge1&quot; d=&quot;M162.609,153L170.482,153C178.354,153,194.099,153,206.138,153C218.177,153,226.51,153,234.844,153C243.177,153,251.51,153,258.558,150.917C265.606,148.833,271.369,144.667,277.131,140.5C282.894,136.333,288.656,132.167,291.537,130.083L294.418,128&quot;&gt;&lt;/path&gt;&lt;path marker-end=&quot;url(#my-svg_stateDiagram-barbEnd)&quot; style=&quot;;fill:none&quot; class=&quot;edge-thickness-normal edge-pattern-solid transition&quot; id=&quot;edge2&quot; d=&quot;M148.391,243L158.633,243C168.875,243,189.359,243,203.768,243C218.177,243,226.51,243,234.844,243C243.177,243,251.51,243,258.558,245.083C265.606,247.167,271.369,251.333,277.131,255.5C282.894,259.667,288.656,263.833,291.537,265.917L294.418,268&quot;&gt;&lt;/path&gt;&lt;path marker-end=&quot;url(#my-svg_stateDiagram-barbEnd)&quot; style=&quot;;fill:none&quot; class=&quot;edge-thickness-normal edge-pattern-solid transition&quot; id=&quot;edge3&quot; d=&quot;M184.844,333L189.01,333C193.177,333,201.51,333,209.844,333C218.177,333,226.51,333,234.844,333C243.177,333,251.51,333,258.558,330.917C265.606,328.833,271.369,324.667,277.131,320.5C282.894,316.333,288.656,312.167,291.537,310.083L294.418,308&quot;&gt;&lt;/path&gt;&lt;path marker-end=&quot;url(#my-svg_stateDiagram-barbEnd)&quot; style=&quot;;fill:none&quot; class=&quot;edge-thickness-normal edge-pattern-solid transition&quot; id=&quot;edge4&quot; d=&quot;M349.738,128L355.5,132.167C361.263,136.333,372.788,144.667,382.717,148.833C392.646,153,400.979,153,409.313,153C417.646,153,425.979,153,432.229,153C438.479,153,442.646,153,446.813,153C450.979,153,455.146,153,457.229,153L459.313,153&quot;&gt;&lt;/path&gt;&lt;path marker-end=&quot;url(#my-svg_stateDiagram-barbEnd)&quot; style=&quot;;fill:none&quot; class=&quot;edge-thickness-normal edge-pattern-solid transition&quot; id=&quot;edge5&quot; d=&quot;M356.203,288L360.888,288C365.573,288,374.943,288,383.794,288C392.646,288,400.979,288,409.313,288C417.646,288,425.979,288,432.525,288C439.07,288,443.828,288,448.586,288C453.344,288,458.102,288,460.48,288L462.859,288&quot;&gt;&lt;/path&gt;&lt;path marker-end=&quot;url(#my-svg_stateDiagram-barbEnd)&quot; style=&quot;;fill:none&quot; class=&quot;edge-thickness-normal edge-pattern-solid transition&quot; id=&quot;edge6&quot; d=&quot;M349.738,88L355.5,83.833C361.263,79.667,372.788,71.333,382.717,67.167C392.646,63,400.979,63,409.313,63C417.646,63,425.979,63,446.004,63C466.029,63,497.745,63,529.461,63C561.177,63,592.893,63,612.918,63C632.943,63,641.276,63,651.725,68.833C662.174,74.667,674.739,86.333,687.304,98C699.869,109.667,712.434,121.333,718.717,127.167L724.999,133&quot;&gt;&lt;/path&gt;&lt;path marker-end=&quot;url(#my-svg_stateDiagram-barbEnd)&quot; style=&quot;;fill:none&quot; class=&quot;edge-thickness-normal edge-pattern-solid transition&quot; id=&quot;edge7&quot; d=&quot;M599.609,153L603.776,153C607.943,153,616.276,153,624.609,153C632.943,153,641.276,153,647.526,153C653.776,153,657.943,153,662.109,153C666.276,153,670.443,153,672.526,153L674.609,153&quot;&gt;&lt;/path&gt;&lt;path marker-end=&quot;url(#my-svg_stateDiagram-barbEnd)&quot; style=&quot;;fill:none&quot; class=&quot;edge-thickness-normal edge-pattern-solid transition&quot; id=&quot;edge8&quot; d=&quot;M596.063,288L600.82,288C605.578,288,615.094,288,624.018,288C632.943,288,641.276,288,652.324,278.417C663.371,268.833,677.133,249.667,690.894,230.5C704.656,211.333,718.417,192.167,725.298,182.583L732.179,173&quot;&gt;&lt;/path&gt;&lt;path marker-end=&quot;url(#my-svg_stateDiagram-barbEnd)&quot; style=&quot;;fill:none&quot; class=&quot;edge-thickness-normal edge-pattern-solid transition&quot; id=&quot;edge9&quot; d=&quot;M818.469,153L822.635,153C826.802,153,835.135,153,841.385,153C847.635,153,851.802,153,855.969,153C860.135,153,864.302,153,866.385,153L868.469,153&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabels&quot;&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g transform=&quot;translate(0, 0)&quot; class=&quot;label&quot;&gt;&lt;foreignObject height=&quot;0&quot; width=&quot;0&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; class=&quot;labelBkg&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g transform=&quot;translate(0, 0)&quot; class=&quot;label&quot;&gt;&lt;foreignObject height=&quot;0&quot; width=&quot;0&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; class=&quot;labelBkg&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g transform=&quot;translate(0, 0)&quot; class=&quot;label&quot;&gt;&lt;foreignObject height=&quot;0&quot; width=&quot;0&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; class=&quot;labelBkg&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g transform=&quot;translate(0, 0)&quot; class=&quot;label&quot;&gt;&lt;foreignObject height=&quot;0&quot; width=&quot;0&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; class=&quot;labelBkg&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g transform=&quot;translate(0, 0)&quot; class=&quot;label&quot;&gt;&lt;foreignObject height=&quot;0&quot; width=&quot;0&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; class=&quot;labelBkg&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g transform=&quot;translate(0, 0)&quot; class=&quot;label&quot;&gt;&lt;foreignObject height=&quot;0&quot; width=&quot;0&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; class=&quot;labelBkg&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g transform=&quot;translate(0, 0)&quot; class=&quot;label&quot;&gt;&lt;foreignObject height=&quot;0&quot; width=&quot;0&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; class=&quot;labelBkg&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g transform=&quot;translate(0, 0)&quot; class=&quot;label&quot;&gt;&lt;foreignObject height=&quot;0&quot; width=&quot;0&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; class=&quot;labelBkg&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g transform=&quot;translate(0, 0)&quot; class=&quot;label&quot;&gt;&lt;foreignObject height=&quot;0&quot; width=&quot;0&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; class=&quot;labelBkg&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g transform=&quot;translate(0, 0)&quot; class=&quot;label&quot;&gt;&lt;foreignObject height=&quot;0&quot; width=&quot;0&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; class=&quot;labelBkg&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;nodes&quot;&gt;&lt;g transform=&quot;translate(108.921875, 63)&quot; id=&quot;state-SourcePosts-0&quot; class=&quot;node fileClass statediagram-state&quot;&gt;&lt;rect height=&quot;40&quot; width=&quot;86.03125&quot; y=&quot;-20&quot; x=&quot;-43.015625&quot; ry=&quot;5&quot; rx=&quot;5&quot; style=&quot;fill:#ffcb5d !important&quot; class=&quot;basic label-container&quot;&gt;&lt;/rect&gt;&lt;g transform=&quot;translate(-35.015625, -12)&quot; style=&quot;&quot; class=&quot;label&quot;&gt;&lt;rect&gt;&lt;/rect&gt;&lt;foreignObject height=&quot;24&quot; width=&quot;70.03125&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;_posts/ ❶&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g transform=&quot;translate(108.921875, 153)&quot; id=&quot;state-SourceTemplates-1&quot; class=&quot;node fileClass statediagram-state&quot;&gt;&lt;rect height=&quot;40&quot; width=&quot;107.375&quot; y=&quot;-20&quot; x=&quot;-53.6875&quot; ry=&quot;5&quot; rx=&quot;5&quot; style=&quot;fill:#ffcb5d !important&quot; class=&quot;basic label-container&quot;&gt;&lt;/rect&gt;&lt;g transform=&quot;translate(-45.6875, -12)&quot; style=&quot;&quot; class=&quot;label&quot;&gt;&lt;rect&gt;&lt;/rect&gt;&lt;foreignObject height=&quot;24&quot; width=&quot;91.375&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;Templates ❶&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g transform=&quot;translate(108.921875, 243)&quot; id=&quot;state-SourceData-2&quot; class=&quot;node dataClass statediagram-state&quot;&gt;&lt;rect height=&quot;40&quot; width=&quot;78.9375&quot; y=&quot;-20&quot; x=&quot;-39.46875&quot; ry=&quot;5&quot; rx=&quot;5&quot; style=&quot;fill:#cb5dff !important&quot; class=&quot;basic label-container&quot;&gt;&lt;/rect&gt;&lt;g transform=&quot;translate(-31.46875, -12)&quot; style=&quot;&quot; class=&quot;label&quot;&gt;&lt;rect&gt;&lt;/rect&gt;&lt;foreignObject height=&quot;24&quot; width=&quot;62.9375&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;_data/ ❷&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g transform=&quot;translate(108.921875, 333)&quot; id=&quot;state-SourceGlobal-3&quot; class=&quot;node dataClass statediagram-state&quot;&gt;&lt;rect height=&quot;40&quot; width=&quot;151.84375&quot; y=&quot;-20&quot; x=&quot;-75.921875&quot; ry=&quot;5&quot; rx=&quot;5&quot; style=&quot;fill:#cb5dff !important&quot; class=&quot;basic label-container&quot;&gt;&lt;/rect&gt;&lt;g transform=&quot;translate(-67.921875, -12)&quot; style=&quot;&quot; class=&quot;label&quot;&gt;&lt;rect&gt;&lt;/rect&gt;&lt;foreignObject height=&quot;24&quot; width=&quot;135.84375&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;addGlobalData() ❸&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g transform=&quot;translate(322.078125, 108)&quot; id=&quot;state-CollectionPosts-6&quot; class=&quot;node fileClass fileClass statediagram-state&quot;&gt;&lt;rect height=&quot;40&quot; width=&quot;74.46875&quot; y=&quot;-20&quot; x=&quot;-37.234375&quot; ry=&quot;5&quot; rx=&quot;5&quot; style=&quot;fill:#ffcb5d !important&quot; class=&quot;basic label-container&quot;&gt;&lt;/rect&gt;&lt;g transform=&quot;translate(-29.234375, -12)&quot; style=&quot;&quot; class=&quot;label&quot;&gt;&lt;rect&gt;&lt;/rect&gt;&lt;foreignObject height=&quot;24&quot; width=&quot;58.46875&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;Posts ❹&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g transform=&quot;translate(322.078125, 288)&quot; id=&quot;state-CollectionData-5&quot; class=&quot;node dataClass statediagram-state&quot;&gt;&lt;rect height=&quot;40&quot; width=&quot;68.25&quot; y=&quot;-20&quot; x=&quot;-34.125&quot; ry=&quot;5&quot; rx=&quot;5&quot; style=&quot;fill:#cb5dff !important&quot; class=&quot;basic label-container&quot;&gt;&lt;/rect&gt;&lt;g transform=&quot;translate(-26.125, -12)&quot; style=&quot;&quot; class=&quot;label&quot;&gt;&lt;rect&gt;&lt;/rect&gt;&lt;foreignObject height=&quot;24&quot; width=&quot;52.25&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;Data ❺&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g transform=&quot;translate(529.4609375, 153)&quot; id=&quot;state-PaginatePosts-7&quot; class=&quot;node fileClass statediagram-state&quot;&gt;&lt;rect height=&quot;40&quot; width=&quot;140.296875&quot; y=&quot;-20&quot; x=&quot;-70.1484375&quot; ry=&quot;5&quot; rx=&quot;5&quot; style=&quot;fill:#ffcb5d !important&quot; class=&quot;basic label-container&quot;&gt;&lt;/rect&gt;&lt;g transform=&quot;translate(-62.1484375, -12)&quot; style=&quot;&quot; class=&quot;label&quot;&gt;&lt;rect&gt;&lt;/rect&gt;&lt;foreignObject height=&quot;24&quot; width=&quot;124.296875&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;Paginate posts ❻&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g transform=&quot;translate(529.4609375, 288)&quot; id=&quot;state-PaginateData-8&quot; class=&quot;node dataClass statediagram-state&quot;&gt;&lt;rect height=&quot;40&quot; width=&quot;133.203125&quot; y=&quot;-20&quot; x=&quot;-66.6015625&quot; ry=&quot;5&quot; rx=&quot;5&quot; style=&quot;fill:#cb5dff !important&quot; class=&quot;basic label-container&quot;&gt;&lt;/rect&gt;&lt;g transform=&quot;translate(-58.6015625, -12)&quot; style=&quot;&quot; class=&quot;label&quot;&gt;&lt;rect&gt;&lt;/rect&gt;&lt;foreignObject height=&quot;24&quot; width=&quot;117.203125&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;Paginate data ❼&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g transform=&quot;translate(746.5390625, 153)&quot; id=&quot;state-ComputedData-9&quot; class=&quot;node fileClass fileClass fileClass statediagram-state&quot;&gt;&lt;rect height=&quot;40&quot; width=&quot;143.859375&quot; y=&quot;-20&quot; x=&quot;-71.9296875&quot; ry=&quot;5&quot; rx=&quot;5&quot; style=&quot;fill:#ffcb5d !important&quot; class=&quot;basic label-container&quot;&gt;&lt;/rect&gt;&lt;g transform=&quot;translate(-63.9296875, -12)&quot; style=&quot;&quot; class=&quot;label&quot;&gt;&lt;rect&gt;&lt;/rect&gt;&lt;foreignObject height=&quot;24&quot; width=&quot;127.859375&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;Computed data ❽&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g transform=&quot;translate(922.609375, 153)&quot; id=&quot;state-Rendering-9&quot; class=&quot;node fileClass statediagram-state&quot;&gt;&lt;rect height=&quot;40&quot; width=&quot;108.28125&quot; y=&quot;-20&quot; x=&quot;-54.140625&quot; ry=&quot;5&quot; rx=&quot;5&quot; style=&quot;fill:#ffcb5d !important&quot; class=&quot;basic label-container&quot;&gt;&lt;/rect&gt;&lt;g transform=&quot;translate(-46.140625, -12)&quot; style=&quot;&quot; class=&quot;label&quot;&gt;&lt;rect&gt;&lt;/rect&gt;&lt;foreignObject height=&quot;24&quot; width=&quot;92.28125&quot;&gt;&lt;div style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;Rendering ❾&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;p&gt;The data items can be sourced from files ❶ (for instance the &lt;code class=&quot;inline&quot;&gt;_posts&lt;/code&gt; directory, or the &lt;code class=&quot;inline&quot;&gt;index.html&lt;/code&gt; page), from data files ❷ (&lt;a href=&quot;https://jekyllrb.com/docs/datafiles/&quot; class=&quot;link-external&quot;&gt;like Jekyll&lt;/a&gt;, 11ty will fetch &lt;a href=&quot;https://www.11ty.dev/docs/data-global/&quot; class=&quot;link-external&quot;&gt;global data files&lt;/a&gt; from &lt;code class=&quot;inline&quot;&gt;_data&lt;/code&gt; or from &lt;a href=&quot;https://www.11ty.dev/docs/data-template-dir/&quot; class=&quot;link-external&quot;&gt;local data files&lt;/a&gt;) or generated programmatically ❸ (for instance using &lt;a href=&quot;https://www.11ty.dev/docs/data-global-custom/&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;addGlobalData()&lt;/code&gt;&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;These items/posts/pages can be added to collections using the &lt;a href=&quot;https://www.11ty.dev/docs/collections/&quot; class=&quot;link-external&quot;&gt;collections API&lt;/a&gt; ❹❺. Collections are accessible in the templates with the handy &lt;code class=&quot;inline&quot;&gt;collections&lt;/code&gt; object.&lt;/p&gt;
&lt;p&gt;Then, there&#39;s &lt;a href=&quot;https://www.11ty.dev/docs/pagination/&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;pagination&lt;/code&gt;&lt;/a&gt; ❻❼. I really struggled with this, because it conflates several functionalities in a single mechanism, but it &lt;a href=&quot;https://www.11ty.dev/docs/pages-from-data/&quot; class=&quot;link-external&quot;&gt;boils down&lt;/a&gt; to:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Pagination feature is used for iterating over any data to create multiple output files.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A better way to describe it, in my opinion, would be: Pagination renders &lt;em&gt;m&lt;/em&gt; data items onto &lt;em&gt;n&lt;/em&gt; HTML pages.&lt;/p&gt;
&lt;p&gt;For instance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;m&lt;/em&gt; data items in 1 page: an archive or home page.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;m&lt;/em&gt; data items in &lt;em&gt;m / k&lt;/em&gt; pages: an archive &lt;em&gt;k&lt;/em&gt; items per page.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;m&lt;/em&gt; data items in &lt;em&gt;m&lt;/em&gt; pages: render a collection of posts, each one in an independent page.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But there&#39;s something more to the &lt;code class=&quot;inline&quot;&gt;pagination&lt;/code&gt; mechanism. The data items coming from pages and templates ❶ are &lt;code class=&quot;inline&quot;&gt;page&lt;/code&gt; objects ready to be rendered, while data items ❷❸ &lt;a href=&quot;https://www.11ty.dev/docs/pages-from-data/&quot; class=&quot;link-external&quot;&gt;need&lt;/a&gt; to be transformed ❼. This is not just a methaphor. Even if they share some pipeline stages, like the collections or pagination APIs, they are different kinds of objects and somehow 11ty knows this.&lt;/p&gt;
&lt;p&gt;For example, the data items coming from posts or templates ❶ will come with a front matter and several other properties, which are accessible in the early stages, like the collections API ❹. This means that front matter properties of a post can be accessed and modified, and that will be propagated to the &lt;code class=&quot;inline&quot;&gt;page.data&lt;/code&gt; object when rendering it ❾.&lt;/p&gt;
&lt;p&gt;That is not the case with a raw data item ❷❸. Modifications to the data item ❺ will not be propagated automatically when it is processed by a pagination ❼. Technically, &lt;code class=&quot;inline&quot;&gt;pagination&lt;/code&gt; allows to specify the front matter properties of the page that will be rendered from a data item. &lt;em&gt;However,&lt;/em&gt; only &lt;code class=&quot;inline&quot;&gt;permalink&lt;/code&gt; can access the data item. Yes: no other front matter properties can access the data item.&lt;/p&gt;
&lt;p&gt;Then, how to make properties of a data item available to the templates? In other words, how to go from this:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;A Tale of Two Cities&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;lang&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;English&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;excerpt&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;It was the best of times, it was the worst of times.&quot;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To this:&lt;/p&gt;
&lt;pre class=&quot;language-md&quot;&gt;&lt;code class=&quot;language-md&quot;&gt;&lt;span class=&quot;token front-matter-block&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;
&lt;span class=&quot;token front-matter yaml language-yaml&quot;&gt;title: A Tale of Two Cities
permalink: /en/a-tale-of-two-cities/&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;&lt;/span&gt;

It was the best of times, it was the worst of times.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As the documentation &lt;a href=&quot;https://www.11ty.dev/docs/data-frontmatter/&quot; class=&quot;link-external&quot;&gt;says&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note that only the &lt;code class=&quot;inline&quot;&gt;permalink&lt;/code&gt; and &lt;code class=&quot;inline&quot;&gt;eleventyComputed&lt;/code&gt; front matter values can contain variables and shortcodes like you would use in the body of your templates. If you need to use variables or shortcodes in other front matter values, use &lt;code class=&quot;inline&quot;&gt;eleventyComputed&lt;/code&gt; to set them.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is where &lt;a href=&quot;https://www.11ty.dev/docs/data-computed/&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;computed data&lt;/code&gt;&lt;/a&gt; ❽ comes into play, which is a stage between pagination and rendering, and allows to specify front matter properties calculated from the original data item.&lt;/p&gt;
&lt;h2 id=&quot;extensibility%2C-extensibility-everywhere&quot; tabindex=&quot;-1&quot;&gt;Extensibility, extensibility everywhere &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#extensibility%2C-extensibility-everywhere&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When the basic template structure of the web site was done, I needed to port my custom plugins. 11ty comes with some fancy plugins that are drop-in replacements, but what I liked the most is the use of Markdown-it, which has many nice plugins itself and makes it easy to add your own. 11ty helps with this through &lt;a href=&quot;https://www.11ty.dev/docs/languages/markdown/#optional-amend-the-library-instance&quot; class=&quot;link-external&quot;&gt;&lt;code class=&quot;inline&quot;&gt;amendLibrary()&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is how I could add &lt;a href=&quot;https://github.com/cmaas/markdown-it-table-of-contents&quot; class=&quot;link-github&quot;&gt;tables of content&lt;/a&gt; or &lt;a href=&quot;https://github.com/markdown-it/markdown-it-footnote&quot; class=&quot;link-github&quot;&gt;footnotes&lt;/a&gt;. For other stuff, like my own plugin that optimizes image sizes or the &lt;a href=&quot;https://lamaquinadeturing.su/en/2024/08/implementing-the-search-function-in-a-static-web-site/&quot;&gt;static full text search&lt;/a&gt;, it was quite fast to implement in Javascript.&lt;/p&gt;
&lt;p&gt;If implementing my own plugin provided a little extra and wasn&#39;t incredibly difficult, I avoided the official ones. This allowed me to experiment with most of 11ty&#39;s features. I think the only functionality I didn&#39;t touch were the &lt;a href=&quot;https://www.11ty.dev/docs/config-preprocessors/&quot; class=&quot;link-external&quot;&gt;preprocessors&lt;/a&gt; and &lt;a href=&quot;https://www.11ty.dev/docs/transforms/&quot; class=&quot;link-external&quot;&gt;transforms&lt;/a&gt;. Maybe I will revisit my custom plugins, as I still have to check the many &lt;a href=&quot;https://www.11ty.dev/docs/plugins/official/&quot; class=&quot;link-external&quot;&gt;official plugins&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;would-buy-again&quot; tabindex=&quot;-1&quot;&gt;Would buy again &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2025/02/this-post-has-been-generated-with-eleventy/#would-buy-again&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So, overall, the whole experience has been positive, and I feel like Javascript is a much better language to do this kind of rapid development, especially when it is also used in the rendered page. On the cons side, I still feel like Jekyll and 11ty are designed to be very easy to use for simple use cases at the cost of being difficult to extend sometimes. While 11ty makes it easier to generate pages programmatically using pagination, accessing the existing data can be almost impossible in some parts of the flow.&lt;/p&gt;
&lt;p&gt;Sometimes, the data flow can be difficult to understand. Why only &lt;code class=&quot;inline&quot;&gt;permalink&lt;/code&gt; can be computed from data items, while other fields require &lt;code class=&quot;inline&quot;&gt;computed data&lt;/code&gt;? Why I global data and collections can be accessed in some places, while not in others? This issues are not unique to 11ty, and Jekyll also suffers from it. Most likely there are good reasons for these design decisions, but to a foreign observer (with too much time and refusing to use the official plugins) it can be puzzling.&lt;/p&gt;
&lt;p&gt;Anyway, it has been a fun project and I think 11ty makes developing your own static blog a nice experience.&lt;/p&gt;

    </content>
  </entry>
  <entry xml:lang="en">
    <title>Git rebase doesn&#39;t do what you think</title>
    <link href="https://lamaquinadeturing.su/en/2024/10/git-rebase-doesnt-do-what-you-think/" />
    <updated>2024-10-05T18:00:00Z</updated>
    <id>https://lamaquinadeturing.su/en/2024/10/git-rebase-doesnt-do-what-you-think/</id>
    <content type="html">
      &lt;p&gt;&lt;img src=&quot;https://lamaquinadeturing.su/assets/media/branches_opt1200.jpg&quot; alt=&quot;Miniature from a 12th-century Medical and Herbal Collection once owned by the monastery at Ourscamps just north of Paris, and now in the collection at the British Library (BL Sloane 1975).&quot;&gt;&lt;/p&gt;&lt;p&gt;As &lt;a href=&quot;https://xkcd.com/1597/&quot; class=&quot;link-external&quot;&gt;xkcd says&lt;/a&gt;, Git is an awesome tool, but if something goes wrong just delete everything and download a fresh copy.&lt;/p&gt;
&lt;p&gt;One of these &amp;quot;oops&amp;quot; moments is &lt;code class=&quot;inline&quot;&gt;git rebase&lt;/code&gt;. The cool brother of &lt;code class=&quot;inline&quot;&gt;git merge&lt;/code&gt; is as powerful as misunderstood. I am writing this post because sometimes it surprises me that so many people will stumble upon common rebasing pitfalls.&lt;/p&gt;
&lt;p&gt;What I want to explain in this post is the following:&lt;/p&gt;
&lt;div class=&quot;toc&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/10/git-rebase-doesnt-do-what-you-think/#1.-what-people-think-rebasing-does&quot;&gt;1. What people think rebasing does &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/10/git-rebase-doesnt-do-what-you-think/#2.-what-rebasing-actually-does&quot;&gt;2. What rebasing actually does &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/10/git-rebase-doesnt-do-what-you-think/#3.-the-common-pitfall-when-rebasing&quot;&gt;3. The common pitfall when rebasing &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/10/git-rebase-doesnt-do-what-you-think/#4.-why-rebasing-onto-is-what-you-actually-wanted&quot;&gt;4. Why rebasing onto is what you actually wanted &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;h2 id=&quot;1.-what-people-think-rebasing-does&quot; tabindex=&quot;-1&quot;&gt;1. What people think rebasing does &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/10/git-rebase-doesnt-do-what-you-think/#1.-what-people-think-rebasing-does&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Git is like a tree, with a common trunk like &lt;code class=&quot;inline&quot;&gt;main&lt;/code&gt; and branches like &lt;code class=&quot;inline&quot;&gt;develop&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&quot;mermaid&quot;&gt;&lt;svg aria-roledescription=&quot;gitGraph&quot; role=&quot;graphics-document document&quot; viewBox=&quot;-117.1484375 -18 425.1484375 144.65701293945312&quot; style=&quot;max-width: 425.148px; background-color: white;&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; id=&quot;my-svg&quot;&gt;&lt;style&gt;#my-svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:hsl(220.5882352941, 100%, 98.3333333333%);}#my-svg .error-text{fill:rgb(8.5000000002, 5.7500000001, 0);stroke:rgb(8.5000000002, 5.7500000001, 0);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#0b0b0b;stroke:#0b0b0b;}#my-svg .marker.cross{stroke:#0b0b0b;}#my-svg svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .commit-id,#my-svg .commit-msg,#my-svg .branch-label{fill:lightgrey;color:lightgrey;font-family:&#39;trebuchet ms&#39;,verdana,arial,sans-serif;font-family:var(--mermaid-font-family);}#my-svg .branch-label0{fill:#333;}#my-svg .commit0{stroke:hsl(40.5882352941, 100%, 68.3333333333%);fill:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight0{stroke:rgb(0, 52.2500000001, 161.5000000002);fill:rgb(0, 52.2500000001, 161.5000000002);}#my-svg .label0{fill:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .arrow0{stroke:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label1{fill:#333;}#my-svg .commit1{stroke:hsl(-79.4117647059, 100%, 68.3333333333%);fill:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight1{stroke:rgb(52.2500000001, 161.5000000002, 0);fill:rgb(52.2500000001, 161.5000000002, 0);}#my-svg .label1{fill:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .arrow1{stroke:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label2{fill:#333;}#my-svg .commit2{stroke:hsl(220.5882352941, 100%, 73.3333333333%);fill:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .commit-highlight2{stroke:rgb(136.0000000002, 92.0000000001, 0);fill:rgb(136.0000000002, 92.0000000001, 0);}#my-svg .label2{fill:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .arrow2{stroke:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .branch-label3{fill:#333;}#my-svg .commit3{stroke:hsl(10.5882352941, 100%, 68.3333333333%);fill:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight3{stroke:rgb(0, 133.0000000002, 161.5000000002);fill:rgb(0, 133.0000000002, 161.5000000002);}#my-svg .label3{fill:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .arrow3{stroke:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label4{fill:#333;}#my-svg .commit4{stroke:hsl(-19.4117647059, 100%, 68.3333333333%);fill:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight4{stroke:rgb(0, 161.5000000002, 109.2500000001);fill:rgb(0, 161.5000000002, 109.2500000001);}#my-svg .label4{fill:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .arrow4{stroke:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label5{fill:#333;}#my-svg .commit5{stroke:hsl(-49.4117647059, 100%, 68.3333333333%);fill:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight5{stroke:rgb(0, 161.5000000002, 28.5);fill:rgb(0, 161.5000000002, 28.5);}#my-svg .label5{fill:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .arrow5{stroke:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label6{fill:#333;}#my-svg .commit6{stroke:hsl(100.5882352941, 100%, 68.3333333333%);fill:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight6{stroke:rgb(109.2500000001, 0, 161.5000000002);fill:rgb(109.2500000001, 0, 161.5000000002);}#my-svg .label6{fill:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .arrow6{stroke:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label7{fill:#333;}#my-svg .commit7{stroke:hsl(160.5882352941, 100%, 68.3333333333%);fill:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight7{stroke:rgb(161.5000000002, 0, 52.2500000001);fill:rgb(161.5000000002, 0, 52.2500000001);}#my-svg .label7{fill:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .arrow7{stroke:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .branch{stroke-width:1;stroke:#0b0b0b;stroke-dasharray:2;}#my-svg .commit-label{font-size:10px;fill:rgb(11.0000000001, 34.0000000002, 0);}#my-svg .commit-label-bkg{font-size:10px;fill:hsl(-79.4117647059, 100%, 93.3333333333%);opacity:0.5;}#my-svg .tag-label{font-size:10px;fill:#333;}#my-svg .tag-label-bkg{fill:#fff4dd;stroke:hsl(40.5882352941, 60%, 83.3333333333%);}#my-svg .tag-hole{fill:#333;}#my-svg .commit-merge{stroke:#fff4dd;fill:#fff4dd;}#my-svg .commit-reverse{stroke:#fff4dd;fill:#fff4dd;stroke-width:3;}#my-svg .commit-highlight-inner{stroke:#fff4dd;fill:#fff4dd;}#my-svg .arrow{stroke-width:8;stroke-linecap:round;fill:none;}#my-svg .gitTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;}&lt;/style&gt;&lt;g&gt;&lt;/g&gt;&lt;g class=&quot;commit-bullets&quot;&gt;&lt;/g&gt;&lt;g class=&quot;commit-labels&quot;&gt;&lt;/g&gt;&lt;g&gt;&lt;line class=&quot;branch branch0&quot; y2=&quot;0&quot; x2=&quot;300&quot; y1=&quot;0&quot; x1=&quot;0&quot;&gt;&lt;/line&gt;&lt;rect transform=&quot;translate(-19, -8.5)&quot; height=&quot;21&quot; width=&quot;52.6875&quot; y=&quot;-0.5&quot; x=&quot;-68.6875&quot; ry=&quot;4&quot; rx=&quot;4&quot; class=&quot;branchLabelBkg label0&quot;&gt;&lt;/rect&gt;&lt;g class=&quot;branchLabel&quot;&gt;&lt;g transform=&quot;translate(-78.6875, -9.5)&quot; class=&quot;label branch-label0&quot;&gt;&lt;text&gt;&lt;tspan class=&quot;row&quot; x=&quot;0&quot; dy=&quot;1em&quot; xml:space=&quot;preserve&quot;&gt;main&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;line class=&quot;branch branch1&quot; y2=&quot;90&quot; x2=&quot;300&quot; y1=&quot;90&quot; x1=&quot;0&quot;&gt;&lt;/line&gt;&lt;rect transform=&quot;translate(-19, 81.5)&quot; height=&quot;21&quot; width=&quot;74.1484375&quot; y=&quot;-0.5&quot; x=&quot;-90.1484375&quot; ry=&quot;4&quot; rx=&quot;4&quot; class=&quot;branchLabelBkg label1&quot;&gt;&lt;/rect&gt;&lt;g class=&quot;branchLabel&quot;&gt;&lt;g transform=&quot;translate(-100.1484375, 80.5)&quot; class=&quot;label branch-label1&quot;&gt;&lt;text&gt;&lt;tspan class=&quot;row&quot; x=&quot;0&quot; dy=&quot;1em&quot; xml:space=&quot;preserve&quot;&gt;develop&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;commit-arrows&quot;&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 10 0 L 60 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow1&quot; d=&quot;M 60 0 L 60 70 A 20 20, 0, 0, 0, 80 90 L 110 90&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow1&quot; d=&quot;M 110 90 L 160 90&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 60 0 L 210 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 210 0 L 260 0&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;commit-bullets&quot;&gt;&lt;circle class=&quot;commit 1 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;10&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 2 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;60&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 5 commit1&quot; r=&quot;10&quot; cy=&quot;90&quot; cx=&quot;110&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 6 commit1&quot; r=&quot;10&quot; cy=&quot;90&quot; cx=&quot;160&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 3 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;210&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 4 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;260&quot;&gt;&lt;/circle&gt;&lt;/g&gt;&lt;g class=&quot;commit-labels&quot;&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 0, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;5&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;7&quot;&gt;1&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 50, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;55&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;57&quot;&gt;2&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 100, 90)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;103.5&quot; x=&quot;105&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;115&quot; x=&quot;107&quot;&gt;5&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 150, 90)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;103.5&quot; x=&quot;155&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;115&quot; x=&quot;157&quot;&gt;6&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 200, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;205&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;207&quot;&gt;3&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 250, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;255&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;257&quot;&gt;4&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;p&gt;If we execute:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; switch develop
&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; rebase main
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then commits 5 and 6 will be moved (if there are no conflicts) to the tip of &lt;code class=&quot;inline&quot;&gt;main&lt;/code&gt; like this:&lt;/p&gt;
&lt;div class=&quot;mermaid&quot;&gt;&lt;svg aria-roledescription=&quot;gitGraph&quot; role=&quot;graphics-document document&quot; viewBox=&quot;-117.1484375 -18 425.1484375 144.65701293945312&quot; style=&quot;max-width: 425.148px; background-color: white;&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; id=&quot;my-svg&quot;&gt;&lt;style&gt;#my-svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:hsl(220.5882352941, 100%, 98.3333333333%);}#my-svg .error-text{fill:rgb(8.5000000002, 5.7500000001, 0);stroke:rgb(8.5000000002, 5.7500000001, 0);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#0b0b0b;stroke:#0b0b0b;}#my-svg .marker.cross{stroke:#0b0b0b;}#my-svg svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .commit-id,#my-svg .commit-msg,#my-svg .branch-label{fill:lightgrey;color:lightgrey;font-family:&#39;trebuchet ms&#39;,verdana,arial,sans-serif;font-family:var(--mermaid-font-family);}#my-svg .branch-label0{fill:#333;}#my-svg .commit0{stroke:hsl(40.5882352941, 100%, 68.3333333333%);fill:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight0{stroke:rgb(0, 52.2500000001, 161.5000000002);fill:rgb(0, 52.2500000001, 161.5000000002);}#my-svg .label0{fill:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .arrow0{stroke:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label1{fill:#333;}#my-svg .commit1{stroke:hsl(-79.4117647059, 100%, 68.3333333333%);fill:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight1{stroke:rgb(52.2500000001, 161.5000000002, 0);fill:rgb(52.2500000001, 161.5000000002, 0);}#my-svg .label1{fill:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .arrow1{stroke:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label2{fill:#333;}#my-svg .commit2{stroke:hsl(220.5882352941, 100%, 73.3333333333%);fill:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .commit-highlight2{stroke:rgb(136.0000000002, 92.0000000001, 0);fill:rgb(136.0000000002, 92.0000000001, 0);}#my-svg .label2{fill:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .arrow2{stroke:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .branch-label3{fill:#333;}#my-svg .commit3{stroke:hsl(10.5882352941, 100%, 68.3333333333%);fill:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight3{stroke:rgb(0, 133.0000000002, 161.5000000002);fill:rgb(0, 133.0000000002, 161.5000000002);}#my-svg .label3{fill:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .arrow3{stroke:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label4{fill:#333;}#my-svg .commit4{stroke:hsl(-19.4117647059, 100%, 68.3333333333%);fill:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight4{stroke:rgb(0, 161.5000000002, 109.2500000001);fill:rgb(0, 161.5000000002, 109.2500000001);}#my-svg .label4{fill:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .arrow4{stroke:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label5{fill:#333;}#my-svg .commit5{stroke:hsl(-49.4117647059, 100%, 68.3333333333%);fill:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight5{stroke:rgb(0, 161.5000000002, 28.5);fill:rgb(0, 161.5000000002, 28.5);}#my-svg .label5{fill:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .arrow5{stroke:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label6{fill:#333;}#my-svg .commit6{stroke:hsl(100.5882352941, 100%, 68.3333333333%);fill:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight6{stroke:rgb(109.2500000001, 0, 161.5000000002);fill:rgb(109.2500000001, 0, 161.5000000002);}#my-svg .label6{fill:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .arrow6{stroke:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label7{fill:#333;}#my-svg .commit7{stroke:hsl(160.5882352941, 100%, 68.3333333333%);fill:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight7{stroke:rgb(161.5000000002, 0, 52.2500000001);fill:rgb(161.5000000002, 0, 52.2500000001);}#my-svg .label7{fill:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .arrow7{stroke:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .branch{stroke-width:1;stroke:#0b0b0b;stroke-dasharray:2;}#my-svg .commit-label{font-size:10px;fill:rgb(11.0000000001, 34.0000000002, 0);}#my-svg .commit-label-bkg{font-size:10px;fill:hsl(-79.4117647059, 100%, 93.3333333333%);opacity:0.5;}#my-svg .tag-label{font-size:10px;fill:#333;}#my-svg .tag-label-bkg{fill:#fff4dd;stroke:hsl(40.5882352941, 60%, 83.3333333333%);}#my-svg .tag-hole{fill:#333;}#my-svg .commit-merge{stroke:#fff4dd;fill:#fff4dd;}#my-svg .commit-reverse{stroke:#fff4dd;fill:#fff4dd;stroke-width:3;}#my-svg .commit-highlight-inner{stroke:#fff4dd;fill:#fff4dd;}#my-svg .arrow{stroke-width:8;stroke-linecap:round;fill:none;}#my-svg .gitTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;}&lt;/style&gt;&lt;g&gt;&lt;/g&gt;&lt;g class=&quot;commit-bullets&quot;&gt;&lt;/g&gt;&lt;g class=&quot;commit-labels&quot;&gt;&lt;/g&gt;&lt;g&gt;&lt;line class=&quot;branch branch0&quot; y2=&quot;0&quot; x2=&quot;300&quot; y1=&quot;0&quot; x1=&quot;0&quot;&gt;&lt;/line&gt;&lt;rect transform=&quot;translate(-19, -8.5)&quot; height=&quot;21&quot; width=&quot;52.6875&quot; y=&quot;-0.5&quot; x=&quot;-68.6875&quot; ry=&quot;4&quot; rx=&quot;4&quot; class=&quot;branchLabelBkg label0&quot;&gt;&lt;/rect&gt;&lt;g class=&quot;branchLabel&quot;&gt;&lt;g transform=&quot;translate(-78.6875, -9.5)&quot; class=&quot;label branch-label0&quot;&gt;&lt;text&gt;&lt;tspan class=&quot;row&quot; x=&quot;0&quot; dy=&quot;1em&quot; xml:space=&quot;preserve&quot;&gt;main&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;line class=&quot;branch branch1&quot; y2=&quot;90&quot; x2=&quot;300&quot; y1=&quot;90&quot; x1=&quot;0&quot;&gt;&lt;/line&gt;&lt;rect transform=&quot;translate(-19, 81.5)&quot; height=&quot;21&quot; width=&quot;74.1484375&quot; y=&quot;-0.5&quot; x=&quot;-90.1484375&quot; ry=&quot;4&quot; rx=&quot;4&quot; class=&quot;branchLabelBkg label1&quot;&gt;&lt;/rect&gt;&lt;g class=&quot;branchLabel&quot;&gt;&lt;g transform=&quot;translate(-100.1484375, 80.5)&quot; class=&quot;label branch-label1&quot;&gt;&lt;text&gt;&lt;tspan class=&quot;row&quot; x=&quot;0&quot; dy=&quot;1em&quot; xml:space=&quot;preserve&quot;&gt;develop&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;commit-arrows&quot;&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 10 0 L 60 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 60 0 L 110 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 110 0 L 160 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow1&quot; d=&quot;M 160 0 L 160 70 A 20 20, 0, 0, 0, 180 90 L 210 90&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow1&quot; d=&quot;M 210 90 L 260 90&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;commit-bullets&quot;&gt;&lt;circle class=&quot;commit 1 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;10&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 2 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;60&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 3 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;110&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 4 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;160&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 5 commit1&quot; r=&quot;10&quot; cy=&quot;90&quot; cx=&quot;210&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 6 commit1&quot; r=&quot;10&quot; cy=&quot;90&quot; cx=&quot;260&quot;&gt;&lt;/circle&gt;&lt;/g&gt;&lt;g class=&quot;commit-labels&quot;&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 0, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;5&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;7&quot;&gt;1&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 50, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;55&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;57&quot;&gt;2&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 100, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;105&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;107&quot;&gt;3&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 150, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;155&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;157&quot;&gt;4&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 200, 90)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;103.5&quot; x=&quot;205&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;115&quot; x=&quot;207&quot;&gt;5&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 250, 90)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;103.5&quot; x=&quot;255&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;115&quot; x=&quot;257&quot;&gt;6&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;p&gt;It appears as if we took commits 5 and 6 and dragged and dropped them on top of commit 4. Simple, right? Well, not exactly.&lt;/p&gt;
&lt;h2 id=&quot;2.-what-rebasing-actually-does&quot; tabindex=&quot;-1&quot;&gt;2. What rebasing actually does &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/10/git-rebase-doesnt-do-what-you-think/#2.-what-rebasing-actually-does&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The impression users get from rebasing is that commits are &amp;quot;moved&amp;quot;. We wanted branch &lt;code class=&quot;inline&quot;&gt;develop&lt;/code&gt; to be at the tip of &lt;code class=&quot;inline&quot;&gt;main&lt;/code&gt;. But how does Git know which commits to move?&lt;/p&gt;
&lt;p&gt;Intuitively, we know that we wanted commits 5 and 6 to be moved from commit 2 to commit 4. So let&#39;s give these two commits a name:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Commit 2 is the &lt;em&gt;common ancestor&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Commit 4 is the &lt;em&gt;merge base&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When doing a rebase, Git first calculates the common ancestor of the source branch and the target branch (commit 2). Then it selects all the commits from the common ancestor to the tip of the source branch and applies them to the merge base.&lt;/p&gt;
&lt;p&gt;In other words, the previous commands are equivalent to:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; branch &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; develop
&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; switch main
&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; checkout &lt;span class=&quot;token parameter variable&quot;&gt;-b&lt;/span&gt; develop
&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; cherry-pick &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; cherry-pick &lt;span class=&quot;token number&quot;&gt;6&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It is important here to understand these two ideas about rebasing:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Commits are not moved, but re-applied.&lt;/li&gt;
&lt;li&gt;Rebasing is done from a common ancestor to a merge base.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first point is the cause of a common pitfall that makes people fear rebasing. The second is the key to avoiding it.&lt;/p&gt;
&lt;h2 id=&quot;3.-the-common-pitfall-when-rebasing&quot; tabindex=&quot;-1&quot;&gt;3. The common pitfall when rebasing &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/10/git-rebase-doesnt-do-what-you-think/#3.-the-common-pitfall-when-rebasing&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In collaborative teams, the following situation is very common: a feature branch &lt;code class=&quot;inline&quot;&gt;bar&lt;/code&gt; depends on a previous feature &lt;code class=&quot;inline&quot;&gt;foo&lt;/code&gt;. Meanwhile, &lt;code class=&quot;inline&quot;&gt;main&lt;/code&gt; has continued to grow (commits 7 and 8). When feature &lt;code class=&quot;inline&quot;&gt;foo&lt;/code&gt; is finally rebased on top of &lt;code class=&quot;inline&quot;&gt;main&lt;/code&gt;, there is a conflict between its commits and the new commits in &lt;code class=&quot;inline&quot;&gt;main&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&quot;mermaid&quot;&gt;&lt;svg aria-roledescription=&quot;gitGraph&quot; role=&quot;graphics-document document&quot; viewBox=&quot;-139.0546875 -18 547.0546875 234.65699768066406&quot; style=&quot;max-width: 547.055px; background-color: white;&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; id=&quot;my-svg&quot;&gt;&lt;style&gt;#my-svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:hsl(220.5882352941, 100%, 98.3333333333%);}#my-svg .error-text{fill:rgb(8.5000000002, 5.7500000001, 0);stroke:rgb(8.5000000002, 5.7500000001, 0);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#0b0b0b;stroke:#0b0b0b;}#my-svg .marker.cross{stroke:#0b0b0b;}#my-svg svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .commit-id,#my-svg .commit-msg,#my-svg .branch-label{fill:lightgrey;color:lightgrey;font-family:&#39;trebuchet ms&#39;,verdana,arial,sans-serif;font-family:var(--mermaid-font-family);}#my-svg .branch-label0{fill:#333;}#my-svg .commit0{stroke:hsl(40.5882352941, 100%, 68.3333333333%);fill:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight0{stroke:rgb(0, 52.2500000001, 161.5000000002);fill:rgb(0, 52.2500000001, 161.5000000002);}#my-svg .label0{fill:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .arrow0{stroke:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label1{fill:#333;}#my-svg .commit1{stroke:hsl(-79.4117647059, 100%, 68.3333333333%);fill:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight1{stroke:rgb(52.2500000001, 161.5000000002, 0);fill:rgb(52.2500000001, 161.5000000002, 0);}#my-svg .label1{fill:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .arrow1{stroke:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label2{fill:#333;}#my-svg .commit2{stroke:hsl(220.5882352941, 100%, 73.3333333333%);fill:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .commit-highlight2{stroke:rgb(136.0000000002, 92.0000000001, 0);fill:rgb(136.0000000002, 92.0000000001, 0);}#my-svg .label2{fill:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .arrow2{stroke:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .branch-label3{fill:#333;}#my-svg .commit3{stroke:hsl(10.5882352941, 100%, 68.3333333333%);fill:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight3{stroke:rgb(0, 133.0000000002, 161.5000000002);fill:rgb(0, 133.0000000002, 161.5000000002);}#my-svg .label3{fill:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .arrow3{stroke:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label4{fill:#333;}#my-svg .commit4{stroke:hsl(-19.4117647059, 100%, 68.3333333333%);fill:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight4{stroke:rgb(0, 161.5000000002, 109.2500000001);fill:rgb(0, 161.5000000002, 109.2500000001);}#my-svg .label4{fill:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .arrow4{stroke:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label5{fill:#333;}#my-svg .commit5{stroke:hsl(-49.4117647059, 100%, 68.3333333333%);fill:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight5{stroke:rgb(0, 161.5000000002, 28.5);fill:rgb(0, 161.5000000002, 28.5);}#my-svg .label5{fill:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .arrow5{stroke:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label6{fill:#333;}#my-svg .commit6{stroke:hsl(100.5882352941, 100%, 68.3333333333%);fill:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight6{stroke:rgb(109.2500000001, 0, 161.5000000002);fill:rgb(109.2500000001, 0, 161.5000000002);}#my-svg .label6{fill:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .arrow6{stroke:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label7{fill:#333;}#my-svg .commit7{stroke:hsl(160.5882352941, 100%, 68.3333333333%);fill:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight7{stroke:rgb(161.5000000002, 0, 52.2500000001);fill:rgb(161.5000000002, 0, 52.2500000001);}#my-svg .label7{fill:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .arrow7{stroke:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .branch{stroke-width:1;stroke:#0b0b0b;stroke-dasharray:2;}#my-svg .commit-label{font-size:10px;fill:rgb(11.0000000001, 34.0000000002, 0);}#my-svg .commit-label-bkg{font-size:10px;fill:hsl(-79.4117647059, 100%, 93.3333333333%);opacity:0.5;}#my-svg .tag-label{font-size:10px;fill:#333;}#my-svg .tag-label-bkg{fill:#fff4dd;stroke:hsl(40.5882352941, 60%, 83.3333333333%);}#my-svg .tag-hole{fill:#333;}#my-svg .commit-merge{stroke:#fff4dd;fill:#fff4dd;}#my-svg .commit-reverse{stroke:#fff4dd;fill:#fff4dd;stroke-width:3;}#my-svg .commit-highlight-inner{stroke:#fff4dd;fill:#fff4dd;}#my-svg .arrow{stroke-width:8;stroke-linecap:round;fill:none;}#my-svg .gitTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;}&lt;/style&gt;&lt;g&gt;&lt;/g&gt;&lt;g class=&quot;commit-bullets&quot;&gt;&lt;/g&gt;&lt;g class=&quot;commit-labels&quot;&gt;&lt;/g&gt;&lt;g&gt;&lt;line class=&quot;branch branch0&quot; y2=&quot;0&quot; x2=&quot;400&quot; y1=&quot;0&quot; x1=&quot;0&quot;&gt;&lt;/line&gt;&lt;rect transform=&quot;translate(-19, -8.5)&quot; height=&quot;21&quot; width=&quot;52.6875&quot; y=&quot;-0.5&quot; x=&quot;-68.6875&quot; ry=&quot;4&quot; rx=&quot;4&quot; class=&quot;branchLabelBkg label0&quot;&gt;&lt;/rect&gt;&lt;g class=&quot;branchLabel&quot;&gt;&lt;g transform=&quot;translate(-78.6875, -9.5)&quot; class=&quot;label branch-label0&quot;&gt;&lt;text&gt;&lt;tspan class=&quot;row&quot; x=&quot;0&quot; dy=&quot;1em&quot; xml:space=&quot;preserve&quot;&gt;main&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;line class=&quot;branch branch1&quot; y2=&quot;90&quot; x2=&quot;400&quot; y1=&quot;90&quot; x1=&quot;0&quot;&gt;&lt;/line&gt;&lt;rect transform=&quot;translate(-19, 81.5)&quot; height=&quot;21&quot; width=&quot;94.6015625&quot; y=&quot;-0.5&quot; x=&quot;-110.6015625&quot; ry=&quot;4&quot; rx=&quot;4&quot; class=&quot;branchLabelBkg label1&quot;&gt;&lt;/rect&gt;&lt;g class=&quot;branchLabel&quot;&gt;&lt;g transform=&quot;translate(-120.6015625, 80.5)&quot; class=&quot;label branch-label1&quot;&gt;&lt;text&gt;&lt;tspan class=&quot;row&quot; x=&quot;0&quot; dy=&quot;1em&quot; xml:space=&quot;preserve&quot;&gt;feature/foo&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;line class=&quot;branch branch2&quot; y2=&quot;180&quot; x2=&quot;400&quot; y1=&quot;180&quot; x1=&quot;0&quot;&gt;&lt;/line&gt;&lt;rect transform=&quot;translate(-19, 171.5)&quot; height=&quot;21&quot; width=&quot;96.0546875&quot; y=&quot;-0.5&quot; x=&quot;-112.0546875&quot; ry=&quot;4&quot; rx=&quot;4&quot; class=&quot;branchLabelBkg label2&quot;&gt;&lt;/rect&gt;&lt;g class=&quot;branchLabel&quot;&gt;&lt;g transform=&quot;translate(-122.0546875, 170.5)&quot; class=&quot;label branch-label2&quot;&gt;&lt;text&gt;&lt;tspan class=&quot;row&quot; x=&quot;0&quot; dy=&quot;1em&quot; xml:space=&quot;preserve&quot;&gt;feature/bar&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;commit-arrows&quot;&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 10 0 L 60 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow1&quot; d=&quot;M 60 0 L 60 70 A 20 20, 0, 0, 0, 80 90 L 110 90&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow1&quot; d=&quot;M 110 90 L 160 90&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow2&quot; d=&quot;M 160 90 L 160 160 A 20 20, 0, 0, 0, 180 180 L 210 180&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow2&quot; d=&quot;M 210 180 L 260 180&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 60 0 L 310 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 310 0 L 360 0&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;commit-bullets&quot;&gt;&lt;circle class=&quot;commit 1 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;10&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 2 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;60&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 3 commit1&quot; r=&quot;10&quot; cy=&quot;90&quot; cx=&quot;110&quot;&gt;&lt;/circle&gt;&lt;path class=&quot;commit commit-reverse 3 commit1&quot; d=&quot;M 105,85L115,95M105,95L115,85&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;commit 4 commit1&quot; r=&quot;10&quot; cy=&quot;90&quot; cx=&quot;160&quot;&gt;&lt;/circle&gt;&lt;path class=&quot;commit commit-reverse 4 commit1&quot; d=&quot;M 155,85L165,95M155,95L165,85&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;commit 5 commit2&quot; r=&quot;10&quot; cy=&quot;180&quot; cx=&quot;210&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 6 commit2&quot; r=&quot;10&quot; cy=&quot;180&quot; cx=&quot;260&quot;&gt;&lt;/circle&gt;&lt;rect class=&quot;commit 7 commit-highlight0 commit-highlight-outer&quot; height=&quot;20&quot; width=&quot;20&quot; y=&quot;-10&quot; x=&quot;300&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 7 commit0 commit-highlight-inner&quot; height=&quot;12&quot; width=&quot;12&quot; y=&quot;-6&quot; x=&quot;304&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 8 commit-highlight0 commit-highlight-outer&quot; height=&quot;20&quot; width=&quot;20&quot; y=&quot;-10&quot; x=&quot;350&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 8 commit0 commit-highlight-inner&quot; height=&quot;12&quot; width=&quot;12&quot; y=&quot;-6&quot; x=&quot;354&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;commit-labels&quot;&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 0, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;5&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;7&quot;&gt;1&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 50, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;55&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;57&quot;&gt;2&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 100, 90)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;103.5&quot; x=&quot;105&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;115&quot; x=&quot;107&quot;&gt;3&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 150, 90)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;103.5&quot; x=&quot;155&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;115&quot; x=&quot;157&quot;&gt;4&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 200, 180)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;193.5&quot; x=&quot;205&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;205&quot; x=&quot;207&quot;&gt;5&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 250, 180)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;193.5&quot; x=&quot;255&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;205&quot; x=&quot;257&quot;&gt;6&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 300, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;305&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;307&quot;&gt;7&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 350, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;355&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;357&quot;&gt;8&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;p&gt;Inevitably, these conflicts have to be resolved. This usually causes the rebased commits to be different than the original:&lt;/p&gt;
&lt;div class=&quot;mermaid&quot;&gt;&lt;svg aria-roledescription=&quot;gitGraph&quot; role=&quot;graphics-document document&quot; viewBox=&quot;-139.0546875 -18 647.0546875 144.65701293945312&quot; style=&quot;max-width: 647.055px; background-color: white;&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; id=&quot;my-svg&quot;&gt;&lt;style&gt;#my-svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:hsl(220.5882352941, 100%, 98.3333333333%);}#my-svg .error-text{fill:rgb(8.5000000002, 5.7500000001, 0);stroke:rgb(8.5000000002, 5.7500000001, 0);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#0b0b0b;stroke:#0b0b0b;}#my-svg .marker.cross{stroke:#0b0b0b;}#my-svg svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .commit-id,#my-svg .commit-msg,#my-svg .branch-label{fill:lightgrey;color:lightgrey;font-family:&#39;trebuchet ms&#39;,verdana,arial,sans-serif;font-family:var(--mermaid-font-family);}#my-svg .branch-label0{fill:#333;}#my-svg .commit0{stroke:#ffcb5d;fill:#ffcb5d;}#my-svg .commit-highlight0{stroke:rgb(34.5000000002, 105.2777777781, 255);fill:rgb(34.5000000002, 105.2777777781, 255);}#my-svg .label0{fill:#ffcb5d;}#my-svg .arrow0{stroke:#ffcb5d;}#my-svg .branch-label1{fill:#333;}#my-svg .commit1{stroke:#77a3ff;fill:#77a3ff;}#my-svg .commit-highlight1{stroke:rgb(255, 175.25, 8.5000000002);fill:rgb(255, 175.25, 8.5000000002);}#my-svg .label1{fill:#77a3ff;}#my-svg .arrow1{stroke:#77a3ff;}#my-svg .branch-label2{fill:#333;}#my-svg .commit2{stroke:hsl(220.5882352941, 100%, 73.3333333333%);fill:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .commit-highlight2{stroke:rgb(136.0000000002, 92.0000000001, 0);fill:rgb(136.0000000002, 92.0000000001, 0);}#my-svg .label2{fill:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .arrow2{stroke:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .branch-label3{fill:#333;}#my-svg .commit3{stroke:hsl(10.5882352941, 100%, 68.3333333333%);fill:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight3{stroke:rgb(0, 133.0000000002, 161.5000000002);fill:rgb(0, 133.0000000002, 161.5000000002);}#my-svg .label3{fill:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .arrow3{stroke:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label4{fill:#333;}#my-svg .commit4{stroke:hsl(-19.4117647059, 100%, 68.3333333333%);fill:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight4{stroke:rgb(0, 161.5000000002, 109.2500000001);fill:rgb(0, 161.5000000002, 109.2500000001);}#my-svg .label4{fill:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .arrow4{stroke:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label5{fill:#333;}#my-svg .commit5{stroke:hsl(-49.4117647059, 100%, 68.3333333333%);fill:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight5{stroke:rgb(0, 161.5000000002, 28.5);fill:rgb(0, 161.5000000002, 28.5);}#my-svg .label5{fill:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .arrow5{stroke:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label6{fill:#333;}#my-svg .commit6{stroke:hsl(100.5882352941, 100%, 68.3333333333%);fill:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight6{stroke:rgb(109.2500000001, 0, 161.5000000002);fill:rgb(109.2500000001, 0, 161.5000000002);}#my-svg .label6{fill:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .arrow6{stroke:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label7{fill:#333;}#my-svg .commit7{stroke:hsl(160.5882352941, 100%, 68.3333333333%);fill:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight7{stroke:rgb(161.5000000002, 0, 52.2500000001);fill:rgb(161.5000000002, 0, 52.2500000001);}#my-svg .label7{fill:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .arrow7{stroke:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .branch{stroke-width:1;stroke:#0b0b0b;stroke-dasharray:2;}#my-svg .commit-label{font-size:10px;fill:rgb(11.0000000001, 34.0000000002, 0);}#my-svg .commit-label-bkg{font-size:10px;fill:hsl(-79.4117647059, 100%, 93.3333333333%);opacity:0.5;}#my-svg .tag-label{font-size:10px;fill:#333;}#my-svg .tag-label-bkg{fill:#fff4dd;stroke:hsl(40.5882352941, 60%, 83.3333333333%);}#my-svg .tag-hole{fill:#333;}#my-svg .commit-merge{stroke:#fff4dd;fill:#fff4dd;}#my-svg .commit-reverse{stroke:#fff4dd;fill:#fff4dd;stroke-width:3;}#my-svg .commit-highlight-inner{stroke:#fff4dd;fill:#fff4dd;}#my-svg .arrow{stroke-width:8;stroke-linecap:round;fill:none;}#my-svg .gitTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;}&lt;/style&gt;&lt;g&gt;&lt;/g&gt;&lt;g class=&quot;commit-bullets&quot;&gt;&lt;/g&gt;&lt;g class=&quot;commit-labels&quot;&gt;&lt;/g&gt;&lt;g&gt;&lt;line class=&quot;branch branch0&quot; y2=&quot;0&quot; x2=&quot;500&quot; y1=&quot;0&quot; x1=&quot;0&quot;&gt;&lt;/line&gt;&lt;rect transform=&quot;translate(-19, -8.5)&quot; height=&quot;21&quot; width=&quot;52.6875&quot; y=&quot;-0.5&quot; x=&quot;-68.6875&quot; ry=&quot;4&quot; rx=&quot;4&quot; class=&quot;branchLabelBkg label0&quot;&gt;&lt;/rect&gt;&lt;g class=&quot;branchLabel&quot;&gt;&lt;g transform=&quot;translate(-78.6875, -9.5)&quot; class=&quot;label branch-label0&quot;&gt;&lt;text&gt;&lt;tspan class=&quot;row&quot; x=&quot;0&quot; dy=&quot;1em&quot; xml:space=&quot;preserve&quot;&gt;main&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;line class=&quot;branch branch1&quot; y2=&quot;90&quot; x2=&quot;500&quot; y1=&quot;90&quot; x1=&quot;0&quot;&gt;&lt;/line&gt;&lt;rect transform=&quot;translate(-19, 81.5)&quot; height=&quot;21&quot; width=&quot;96.0546875&quot; y=&quot;-0.5&quot; x=&quot;-112.0546875&quot; ry=&quot;4&quot; rx=&quot;4&quot; class=&quot;branchLabelBkg label1&quot;&gt;&lt;/rect&gt;&lt;g class=&quot;branchLabel&quot;&gt;&lt;g transform=&quot;translate(-122.0546875, 80.5)&quot; class=&quot;label branch-label1&quot;&gt;&lt;text&gt;&lt;tspan class=&quot;row&quot; x=&quot;0&quot; dy=&quot;1em&quot; xml:space=&quot;preserve&quot;&gt;feature/bar&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;commit-arrows&quot;&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 10 0 L 60 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow1&quot; d=&quot;M 60 0 L 60 70 A 20 20, 0, 0, 0, 80 90 L 110 90&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow1&quot; d=&quot;M 110 90 L 160 90&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow1&quot; d=&quot;M 160 90 L 210 90&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow1&quot; d=&quot;M 210 90 L 260 90&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 60 0 L 310 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 310 0 L 360 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 360 0 L 410 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 410 0 L 460 0&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;commit-bullets&quot;&gt;&lt;circle class=&quot;commit 1 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;10&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 2 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;60&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 3 commit1&quot; r=&quot;10&quot; cy=&quot;90&quot; cx=&quot;110&quot;&gt;&lt;/circle&gt;&lt;path class=&quot;commit commit-reverse 3 commit1&quot; d=&quot;M 105,85L115,95M105,95L115,85&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;commit 4 commit1&quot; r=&quot;10&quot; cy=&quot;90&quot; cx=&quot;160&quot;&gt;&lt;/circle&gt;&lt;path class=&quot;commit commit-reverse 4 commit1&quot; d=&quot;M 155,85L165,95M155,95L165,85&quot;&gt;&lt;/path&gt;&lt;circle class=&quot;commit 5 commit1&quot; r=&quot;10&quot; cy=&quot;90&quot; cx=&quot;210&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 6 commit1&quot; r=&quot;10&quot; cy=&quot;90&quot; cx=&quot;260&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 7 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;310&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 8 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;360&quot;&gt;&lt;/circle&gt;&lt;rect class=&quot;commit 3&#39; commit-highlight0 commit-highlight-outer&quot; height=&quot;20&quot; width=&quot;20&quot; y=&quot;-10&quot; x=&quot;400&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 3&#39; commit0 commit-highlight-inner&quot; height=&quot;12&quot; width=&quot;12&quot; y=&quot;-6&quot; x=&quot;404&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 4&#39; commit-highlight0 commit-highlight-outer&quot; height=&quot;20&quot; width=&quot;20&quot; y=&quot;-10&quot; x=&quot;450&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 4&#39; commit0 commit-highlight-inner&quot; height=&quot;12&quot; width=&quot;12&quot; y=&quot;-6&quot; x=&quot;454&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;commit-labels&quot;&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 0, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;5&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;7&quot;&gt;1&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 50, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;55&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;57&quot;&gt;2&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 100, 90)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;103.5&quot; x=&quot;105&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;115&quot; x=&quot;107&quot;&gt;3&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 150, 90)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;103.5&quot; x=&quot;155&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;115&quot; x=&quot;157&quot;&gt;4&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 200, 90)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;103.5&quot; x=&quot;205&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;115&quot; x=&quot;207&quot;&gt;5&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 250, 90)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;103.5&quot; x=&quot;255&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;115&quot; x=&quot;257&quot;&gt;6&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 300, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;305&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;307&quot;&gt;7&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 350, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;355&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;357&quot;&gt;8&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-14.17337890625, 12.57091796875) rotate(-45, 400, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;11.5615234375&quot; y=&quot;13.5&quot; x=&quot;404.21923828125&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;406.21923828125&quot;&gt;3&#39;&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-14.17337890625, 12.57091796875) rotate(-45, 450, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;11.5615234375&quot; y=&quot;13.5&quot; x=&quot;454.21923828125&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;456.21923828125&quot;&gt;4&#39;&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;p&gt;That is, commits 3&#39; and 4&#39; are now different than the original commits 3 and 4. They &lt;em&gt;look the same&lt;/em&gt; to a human, because usually their title and description will be the same, but their changeset is different. And this is the source of our pain.&lt;/p&gt;
&lt;p&gt;Imagine that you are the author of feature &lt;code class=&quot;inline&quot;&gt;bar&lt;/code&gt;. From your point of view, feature &lt;code class=&quot;inline&quot;&gt;foo&lt;/code&gt; and its commits 3 and 4 are now on top of &lt;code class=&quot;inline&quot;&gt;main&lt;/code&gt;, so you should be able to rebase your branch without any conflicts.&lt;/p&gt;
&lt;p&gt;Based on what we learned, we now know that:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; switch feature/bar
&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; rebase main
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Will calculate the common ancestor between &lt;code class=&quot;inline&quot;&gt;bar&lt;/code&gt; and &lt;code class=&quot;inline&quot;&gt;main&lt;/code&gt; (commit 2) and try to re-apply commits 3, 4, 5 and 6 on top of commit 4&#39;. Git is very smart, so in an ideal world it will detect duplicated commits, like 3 and 4, and skip them, so only 5 and 6 will be re-applied.&lt;/p&gt;
&lt;p&gt;However, commits 3&#39; and 4&#39; are now too different, and Git complains, and you didn&#39;t expect that and you hate rebasing.&lt;/p&gt;
&lt;p&gt;Let&#39;s see what can be done about this.&lt;/p&gt;
&lt;h2 id=&quot;4.-why-rebasing-onto-is-what-you-actually-wanted&quot; tabindex=&quot;-1&quot;&gt;4. Why rebasing onto is what you actually wanted &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/10/git-rebase-doesnt-do-what-you-think/#4.-why-rebasing-onto-is-what-you-actually-wanted&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In the previous example, the owner of feature &lt;code class=&quot;inline&quot;&gt;bar&lt;/code&gt; doesn&#39;t want to re-apply commits 3, 4, only 5 and 6. So how to tell Git to skip the old commits 3 and 4?&lt;/p&gt;
&lt;p&gt;The key is to provide a different common ancestor. Instead of:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; rebase main
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What we can do is:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; rebase &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;--onto&lt;/span&gt; main
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With this command, what we are telling Git is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use commit 4 as the common ancestor.&lt;/li&gt;
&lt;li&gt;Use &lt;code class=&quot;inline&quot;&gt;main&lt;/code&gt; as the merge base.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(Important note here: the common ancestor is not included in the rebase.)&lt;/p&gt;
&lt;p&gt;Git, knowing this, will only select the commits between the common ancestor (commit 4) and the source branch: commits 5 and 6. When re-applying them on top of the tip of main (commit 4&#39;), they should be fine most of the time.&lt;/p&gt;
&lt;div class=&quot;mermaid&quot;&gt;&lt;svg aria-roledescription=&quot;gitGraph&quot; role=&quot;graphics-document document&quot; viewBox=&quot;-95.6875 -18 503.6875 55.74000930786133&quot; style=&quot;max-width: 503.688px; background-color: white;&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; id=&quot;my-svg&quot;&gt;&lt;style&gt;#my-svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:hsl(220.5882352941, 100%, 98.3333333333%);}#my-svg .error-text{fill:rgb(8.5000000002, 5.7500000001, 0);stroke:rgb(8.5000000002, 5.7500000001, 0);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#0b0b0b;stroke:#0b0b0b;}#my-svg .marker.cross{stroke:#0b0b0b;}#my-svg svg{font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .commit-id,#my-svg .commit-msg,#my-svg .branch-label{fill:lightgrey;color:lightgrey;font-family:&#39;trebuchet ms&#39;,verdana,arial,sans-serif;font-family:var(--mermaid-font-family);}#my-svg .branch-label0{fill:#333;}#my-svg .commit0{stroke:hsl(40.5882352941, 100%, 68.3333333333%);fill:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight0{stroke:rgb(0, 52.2500000001, 161.5000000002);fill:rgb(0, 52.2500000001, 161.5000000002);}#my-svg .label0{fill:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .arrow0{stroke:hsl(40.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label1{fill:#333;}#my-svg .commit1{stroke:hsl(-79.4117647059, 100%, 68.3333333333%);fill:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight1{stroke:rgb(52.2500000001, 161.5000000002, 0);fill:rgb(52.2500000001, 161.5000000002, 0);}#my-svg .label1{fill:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .arrow1{stroke:hsl(-79.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label2{fill:#333;}#my-svg .commit2{stroke:hsl(220.5882352941, 100%, 73.3333333333%);fill:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .commit-highlight2{stroke:rgb(136.0000000002, 92.0000000001, 0);fill:rgb(136.0000000002, 92.0000000001, 0);}#my-svg .label2{fill:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .arrow2{stroke:hsl(220.5882352941, 100%, 73.3333333333%);}#my-svg .branch-label3{fill:#333;}#my-svg .commit3{stroke:hsl(10.5882352941, 100%, 68.3333333333%);fill:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight3{stroke:rgb(0, 133.0000000002, 161.5000000002);fill:rgb(0, 133.0000000002, 161.5000000002);}#my-svg .label3{fill:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .arrow3{stroke:hsl(10.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label4{fill:#333;}#my-svg .commit4{stroke:hsl(-19.4117647059, 100%, 68.3333333333%);fill:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight4{stroke:rgb(0, 161.5000000002, 109.2500000001);fill:rgb(0, 161.5000000002, 109.2500000001);}#my-svg .label4{fill:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .arrow4{stroke:hsl(-19.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label5{fill:#333;}#my-svg .commit5{stroke:hsl(-49.4117647059, 100%, 68.3333333333%);fill:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .commit-highlight5{stroke:rgb(0, 161.5000000002, 28.5);fill:rgb(0, 161.5000000002, 28.5);}#my-svg .label5{fill:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .arrow5{stroke:hsl(-49.4117647059, 100%, 68.3333333333%);}#my-svg .branch-label6{fill:#333;}#my-svg .commit6{stroke:hsl(100.5882352941, 100%, 68.3333333333%);fill:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight6{stroke:rgb(109.2500000001, 0, 161.5000000002);fill:rgb(109.2500000001, 0, 161.5000000002);}#my-svg .label6{fill:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .arrow6{stroke:hsl(100.5882352941, 100%, 68.3333333333%);}#my-svg .branch-label7{fill:#333;}#my-svg .commit7{stroke:hsl(160.5882352941, 100%, 68.3333333333%);fill:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .commit-highlight7{stroke:rgb(161.5000000002, 0, 52.2500000001);fill:rgb(161.5000000002, 0, 52.2500000001);}#my-svg .label7{fill:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .arrow7{stroke:hsl(160.5882352941, 100%, 68.3333333333%);}#my-svg .branch{stroke-width:1;stroke:#0b0b0b;stroke-dasharray:2;}#my-svg .commit-label{font-size:10px;fill:rgb(11.0000000001, 34.0000000002, 0);}#my-svg .commit-label-bkg{font-size:10px;fill:hsl(-79.4117647059, 100%, 93.3333333333%);opacity:0.5;}#my-svg .tag-label{font-size:10px;fill:#333;}#my-svg .tag-label-bkg{fill:#fff4dd;stroke:hsl(40.5882352941, 60%, 83.3333333333%);}#my-svg .tag-hole{fill:#333;}#my-svg .commit-merge{stroke:#fff4dd;fill:#fff4dd;}#my-svg .commit-reverse{stroke:#fff4dd;fill:#fff4dd;stroke-width:3;}#my-svg .commit-highlight-inner{stroke:#fff4dd;fill:#fff4dd;}#my-svg .arrow{stroke-width:8;stroke-linecap:round;fill:none;}#my-svg .gitTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;}&lt;/style&gt;&lt;g&gt;&lt;/g&gt;&lt;g class=&quot;commit-bullets&quot;&gt;&lt;/g&gt;&lt;g class=&quot;commit-labels&quot;&gt;&lt;/g&gt;&lt;g&gt;&lt;line class=&quot;branch branch0&quot; y2=&quot;0&quot; x2=&quot;400&quot; y1=&quot;0&quot; x1=&quot;0&quot;&gt;&lt;/line&gt;&lt;rect transform=&quot;translate(-19, -8.5)&quot; height=&quot;21&quot; width=&quot;52.6875&quot; y=&quot;-0.5&quot; x=&quot;-68.6875&quot; ry=&quot;4&quot; rx=&quot;4&quot; class=&quot;branchLabelBkg label0&quot;&gt;&lt;/rect&gt;&lt;g class=&quot;branchLabel&quot;&gt;&lt;g transform=&quot;translate(-78.6875, -9.5)&quot; class=&quot;label branch-label0&quot;&gt;&lt;text&gt;&lt;tspan class=&quot;row&quot; x=&quot;0&quot; dy=&quot;1em&quot; xml:space=&quot;preserve&quot;&gt;main&lt;/tspan&gt;&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;commit-arrows&quot;&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 10 0 L 60 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 60 0 L 110 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 110 0 L 160 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 160 0 L 210 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 210 0 L 260 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 260 0 L 310 0&quot;&gt;&lt;/path&gt;&lt;path class=&quot;arrow arrow0&quot; d=&quot;M 310 0 L 360 0&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g class=&quot;commit-bullets&quot;&gt;&lt;circle class=&quot;commit 1 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;10&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 2 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;60&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 7 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;110&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;commit 8 commit0&quot; r=&quot;10&quot; cy=&quot;0&quot; cx=&quot;160&quot;&gt;&lt;/circle&gt;&lt;rect class=&quot;commit 3&#39; commit-highlight0 commit-highlight-outer&quot; height=&quot;20&quot; width=&quot;20&quot; y=&quot;-10&quot; x=&quot;200&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 3&#39; commit0 commit-highlight-inner&quot; height=&quot;12&quot; width=&quot;12&quot; y=&quot;-6&quot; x=&quot;204&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 4&#39; commit-highlight0 commit-highlight-outer&quot; height=&quot;20&quot; width=&quot;20&quot; y=&quot;-10&quot; x=&quot;250&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 4&#39; commit0 commit-highlight-inner&quot; height=&quot;12&quot; width=&quot;12&quot; y=&quot;-6&quot; x=&quot;254&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 5 commit-highlight0 commit-highlight-outer&quot; height=&quot;20&quot; width=&quot;20&quot; y=&quot;-10&quot; x=&quot;300&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 5 commit0 commit-highlight-inner&quot; height=&quot;12&quot; width=&quot;12&quot; y=&quot;-6&quot; x=&quot;304&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 6 commit-highlight0 commit-highlight-outer&quot; height=&quot;20&quot; width=&quot;20&quot; y=&quot;-10&quot; x=&quot;350&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;commit 6 commit0 commit-highlight-inner&quot; height=&quot;12&quot; width=&quot;12&quot; y=&quot;-6&quot; x=&quot;354&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g class=&quot;commit-labels&quot;&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 0, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;5&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;7&quot;&gt;1&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 50, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;55&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;57&quot;&gt;2&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 100, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;105&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;107&quot;&gt;7&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 150, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;155&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;157&quot;&gt;8&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-14.17337890625, 12.57091796875) rotate(-45, 200, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;11.5615234375&quot; y=&quot;13.5&quot; x=&quot;204.21923828125&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;206.21923828125&quot;&gt;3&#39;&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-14.17337890625, 12.57091796875) rotate(-45, 250, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;11.5615234375&quot; y=&quot;13.5&quot; x=&quot;254.21923828125&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;256.21923828125&quot;&gt;4&#39;&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 300, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;305&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;307&quot;&gt;5&lt;/text&gt;&lt;/g&gt;&lt;g transform=&quot;translate(-13.58, 12.04) rotate(-45, 350, 0)&quot;&gt;&lt;rect height=&quot;15&quot; width=&quot;10&quot; y=&quot;13.5&quot; x=&quot;355&quot; class=&quot;commit-label-bkg&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;commit-label&quot; y=&quot;25&quot; x=&quot;357&quot;&gt;6&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;p&gt;Before finishing, a few notes. First, before knowing about &lt;code class=&quot;inline&quot;&gt;git rebase --onto&lt;/code&gt; my mental rebasing model was &lt;em&gt;moving branches&lt;/em&gt;, with no way to limit the string of commits attached to them. I guess that many people feel like this about Git. After learning about it, and better understanding what rebasing does, how my brain works now is akin to &lt;em&gt;selecting a list of commits&lt;/em&gt; and &lt;em&gt;dragging and dropping&lt;/em&gt; them onto another place. Literally this is what I would like Git tools to offer me: as if it was a PowerPoint slide, I would like commits to be like text boxes to be selected, edited, dragged and dropped, deleted...&lt;/p&gt;
&lt;p&gt;This also has important consequences when using &lt;code class=&quot;inline&quot;&gt;git rebase --interactive&lt;/code&gt;, because when we want to apply modifications to the rebased commits it is important to understand how Git selects that list of commits. If you want to better understand how the common ancestor works, you can try &lt;code class=&quot;inline&quot;&gt;git rebase -i main&lt;/code&gt; and see that it will show commits 3, 4, 5 and 6, while &lt;code class=&quot;inline&quot;&gt;git rebase -i 4 --onto main&lt;/code&gt; will show commits 5 and 6.&lt;/p&gt;
&lt;p&gt;Another important difference between &lt;code class=&quot;inline&quot;&gt;git rebase&lt;/code&gt; and &lt;code class=&quot;inline&quot;&gt;git rebase --onto&lt;/code&gt;: when specifying the common ancestor, that commit will not always be nicely tagged with a branch. So do not be afraid of using the hash of the commit as the common ancestor.&lt;/p&gt;
&lt;p&gt;And a disclaimer: Git and rebasing is even more complicated and I made some intentional and unintentional simplifications in this post, but in general I find that this mental model of Git works quite well.&lt;/p&gt;
&lt;p&gt;In conclusion, if we want to move the commits between branch &lt;code class=&quot;inline&quot;&gt;base&lt;/code&gt; and &lt;code class=&quot;inline&quot;&gt;source&lt;/code&gt;, and apply them to &lt;code class=&quot;inline&quot;&gt;target&lt;/code&gt;, the command is:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; switch &lt;span class=&quot;token builtin class-name&quot;&gt;source&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; rebase base &lt;span class=&quot;token parameter variable&quot;&gt;--onto&lt;/span&gt; target
&lt;/code&gt;&lt;/pre&gt;

    </content>
  </entry>
  <entry xml:lang="en">
    <title>Simple Sabotage Field Manual</title>
    <link href="https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/" />
    <updated>2024-09-08T17:00:00Z</updated>
    <id>https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/</id>
    <content type="html">
      &lt;p&gt;&lt;img src=&quot;https://lamaquinadeturing.su/assets/media/simplesabotage_opt1200.jpg&quot; alt=&quot;&amp;quot;Simple Sabotage Field Manual&amp;quot; cover by the Office of Strategic Services (1944).&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;The&lt;/em&gt; &lt;a href=&quot;https://en.wikisource.org/wiki/Simple_Sabotage_Field_Manual&quot; class=&quot;link-wikipedia&quot;&gt;Simple Sabotage Field Manual&lt;/a&gt; &lt;em&gt;was a collection of simple sabotage techniques gathered by the&lt;/em&gt; Office of Strategic Services &lt;em&gt;(predecessor of the CIA) during World War II to be distributed among workers in enemy countries and disrupt their industry and military.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Despite being used in 1944, many of its methods will be familiar to 21st century readers. Notably, some techniques come from observing inefficiencies that happen in many organizations &amp;quot;even under normal conditions&amp;quot;, which makes many people inadvertently act as &amp;quot;saboteurs&amp;quot;. For example, by &amp;quot;bringing up irrelevant issues as frequently as possible&amp;quot; or &amp;quot;referring back to matters decided upon at the last meeting and attempting to re-open the question&amp;quot;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Erik Bernhardsson adapted it to software development in his &lt;a href=&quot;https://erikbern.com/2023/12/13/simple-sabotage-for-software.html&quot; class=&quot;link-external&quot;&gt;Simple sabotage for software&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;div class=&quot;textright&quot;&gt;
&lt;p class=&quot;textleft&quot; style=&quot;display: inline-block&quot;&gt;Office of Strategic Services&lt;br&gt;
Washington, D. C.&lt;br&gt;
17 January 1944&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This Simple Sabotage Field Manual — Strategic Services (Provisional) — is published for the information and guidance of all concerned and will be used as the basic doctrine for Strategic Services training for this subject.&lt;/p&gt;
&lt;p&gt;The contents of this Manual should be carefully controlled and should not be allowed to come into unauthorized hands.&lt;/p&gt;
&lt;p&gt;The instructions may be placed in separate pamphlets or leaflets according to categories of operations but should be distributed with care and not broadly. They should be used as a basis of radio broadcasts only for local and special cases and as directed by the theater commander.&lt;/p&gt;
&lt;p&gt;AR 380-5, pertaining to handling of secret documents, will be complied with in the handling of this Manual.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;text-align-center&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/William_J._Donovan&quot; class=&quot;link-wikipedia&quot;&gt;William J. Donovan&lt;/a&gt;&lt;br&gt;
Director&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;!-- omit from toc --&gt;
&lt;h2 id=&quot;contents&quot; tabindex=&quot;-1&quot;&gt;Contents &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#contents&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;toc&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#1.-introduction&quot;&gt;1. Introduction &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#2.-possible-effects&quot;&gt;2. Possible Effects &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#3.-motivating-the-saboteur&quot;&gt;3. Motivating The Saboteur &lt;/a&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(1)-personal-motives&quot;&gt;(1) Personal Motives &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(2)-encouraging-destructiveness&quot;&gt;(2) Encouraging Destructiveness &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(3)-safety-measures&quot;&gt;(3) Safety Measures &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#4.-tools%2C-targets%2C-and-timing&quot;&gt;4. Tools, Targets, And Timing &lt;/a&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(1)-under-general-conditions&quot;&gt;(1) Under General Conditions &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(2)-prior-to-a-military-offensive&quot;&gt;(2) Prior to a Military Offensive &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(3)-during-a-military-offensive&quot;&gt;(3) During a Military Offensive &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#5.-specific-suggestions-for-simple-sabotage&quot;&gt;5. Specific Suggestions For Simple Sabotage &lt;/a&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(1)-buildings&quot;&gt;(1) Buildings &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(2)-industrial-production%3A-manufacturing&quot;&gt;(2) Industrial Production: Manufacturing &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(3)-production.-metals&quot;&gt;(3) Production. Metals &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(4)-production%3A-mining-and-mineral-extraction&quot;&gt;(4) Production: Mining and Mineral Extraction &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(5)-production%3A-agriculture&quot;&gt;(5) Production: Agriculture &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(6)-transportation%3A-railways&quot;&gt;(6) Transportation: Railways &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(7)-transportation%3A-automotive&quot;&gt;(7) Transportation: Automotive &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(8)-transportation%3A-water&quot;&gt;(8) Transportation: Water &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(9)-communications&quot;&gt;(9) Communications &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(10)-electric-power&quot;&gt;(10) Electric Power &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(11)-general-interference-with-organizations-and-production&quot;&gt;(11) General Interference with Organizations and Production &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(12)-general-devices-for-lowering-morale-and-creating-confusion&quot;&gt;(12) General Devices for Lowering Morale and Creating Confusion &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;h2 id=&quot;1.-introduction&quot; tabindex=&quot;-1&quot;&gt;1. Introduction &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#1.-introduction&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The purpose of this paper is to characterize simple sabotage, to outline its possible effects, and to present suggestions for inciting and executing it.&lt;/p&gt;
&lt;p&gt;Sabotage varies from highly technical coup de main acts that require detailed planning and the use of specially-trained operatives, to innumerable simple acts which the ordinary individual citizen-saboteur can perform. This paper is primarily concerned with the latter type. Simple sabotage does not require specially prepared tools or equipment; it is executed by an ordinary citizen who may or may not act individually and without the necessity for active connection with an organized group; and it is carried out in such a way as to involve a minimum danger of injury, detection, and reprisal.&lt;/p&gt;
&lt;p&gt;Where destruction is involved, the weapons of the citizen-saboteur are salt, nails, candles, pebbles, thread, or any other materials he might normally be expected to possess as a householder or as a worker in his particular occupation. His arsenal is the kitchen shelf, the trash pile, his own usual kit of tools and supplies. The targets of his sabotage are usually objects to which he has normal and inconspicuous access in everyday life.&lt;/p&gt;
&lt;p&gt;A second type of simple sabotage requires no destructive tools whatsoever and produces physical damage, if any, by highly indirect means. It is based on universal opportunities to make faulty decisions, to adopt a noncooperative attitude, and to induce others to follow suit. Making a faulty decision may be simply a matter of placing tools in one spot instead of another. A non-cooperative attitude may involve nothing more than creating an unpleasant situation among one’s fellow workers, engaging in bickerings, or displaying surliness and stupidity.&lt;/p&gt;
&lt;p&gt;This type of activity, sometimes referred to as the “human element,” is frequently responsible for accidents, delays, and general obstruction even under normal conditions. The potential saboteur should discover what types of faulty decisions and the operations are normally found in this kind of work and should then devise his sabotage so as to enlarge that “margin for error.”&lt;/p&gt;
&lt;h2 id=&quot;2.-possible-effects&quot; tabindex=&quot;-1&quot;&gt;2. Possible Effects &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#2.-possible-effects&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Acts of simple sabotage are occurring throughout Europe. An effort should be made to add to their efficiency, lessen their detectability, and increase their number. Acts of simple sabotage, multiplied by thousands of citizen-saboteurs, can be an effective weapon against the enemy. Slashing tires, draining fuel tanks, starting fires, starting arguments, acting stupidly, short-circuiting electric systems, abrading machine parts will waste materials, manpower, and time. Occurring on a wide scale, simple sabotage will be a constant and tangible drag on the war effort of the enemy.&lt;/p&gt;
&lt;p&gt;Simple sabotage may also have secondary results of more or less value. Widespread practice of simple sabotage will harass and demoralize enemy administrators and police. Further, success may embolden the citizen-saboteur eventually to find colleagues who can assist him in sabotage of greater dimensions. Finally, the very practice of simple sabotage by natives in enemy or occupied territory may make these individuals identify themselves actively with the United Nations war effort, and encourage them to assist openly in periods of Allied invasion and occupation.&lt;/p&gt;
&lt;h2 id=&quot;3.-motivating-the-saboteur&quot; tabindex=&quot;-1&quot;&gt;3. Motivating The Saboteur &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#3.-motivating-the-saboteur&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To incite the citizen to the active practice of simple sabotage and to keep him practicing that sabotage over sustained periods is a special problem.&lt;/p&gt;
&lt;p&gt;Simple sabotage is often an act which the citizen performs according to his own initiative and inclination. Acts of destruction do not bring him any personal gain and may be completely foreign to his habitually conservationist attitude toward materials and tools. Purposeful stupidity is contrary to human nature. He frequently needs pressure, stimulation or assurance, and information and suggestions regarding feasible methods of simple sabotage.&lt;/p&gt;
&lt;h3 id=&quot;(1)-personal-motives&quot; tabindex=&quot;-1&quot;&gt;(1) Personal Motives &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(1)-personal-motives&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) The ordinary citizen very probably has no immediate personal motive for committing simple sabotage. Instead, he must be made to anticipate indirect personal gain, such as might come with enemy evacuation or destruction of the ruling government group. Gains should be stated as specifically as possible for the area addressed: simple sabotage will hasten the day when Commissioner X and his deputies Y and Z will be thrown out, when particularly obnoxious decrees and restrictions will be abolished, when food will arrive, and so on. Abstract verbalizations about personal liberty, freedom of the press, and so on, will not be convincing in most parts of the world. In many areas they will not even be comprehensible.&lt;/p&gt;
&lt;p&gt;(b) Since the effect of his own acts is limited, the saboteur may become discouraged unless he feels that he is a member of a large, though unseen, group of saboteurs operating against the enemy or the government of his own country and elsewhere. This can be conveyed indirectly: suggestions which he reads and hears can include observations that a particular technique has been successful in this or that district. Even if the technique is not applicable to his surroundings, another’s success will encourage him to attempt similar acts. It also can be conveyed directly: statements praising the effectiveness of simple sabotage can be contrived which will be published by white radio, freedom stations, and the subversive press. Estimates of the proportion of the population engaged in sabotage can be disseminated. Instances of successful sabotage already are being broadcast by white radio and freedom stations, and this should be continued and expanded where compatible with security.&lt;/p&gt;
&lt;p&gt;(c) More important than (a) or (b) would be to create a situation in which the citizen-saboteur acquires a sense of responsibility and begins to educate others in simple sabotage.&lt;/p&gt;
&lt;h3 id=&quot;(2)-encouraging-destructiveness&quot; tabindex=&quot;-1&quot;&gt;(2) Encouraging Destructiveness &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(2)-encouraging-destructiveness&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;It should be pointed out to the saboteur where the circumstances are suitable, that he is acting in self-defense against the enemy, or retaliating against the enemy for other acts of destruction. A reasonable amount of humor in the presentation of suggestions for simple sabotage will relax tensions of fear.&lt;/p&gt;
&lt;p&gt;(a) The saboteur may have to reverse his thinking, and he should be told this in so many words. Where he formerly thought of keeping his tools sharp, he should now let them grow dull; surfaces that formerly were lubricated now should be sanded; normally diligent, he should now be lazy and careless; and so on. Once he is encouraged to think backwards about himself and the objects of his everyday life, the saboteur will see many opportunities in his immediate environment which cannot possibly be seen from a distance. A state of mind should be encouraged that anything can be sabotaged.&lt;/p&gt;
&lt;p&gt;(b) Among the potential citizen-saboteurs who are to engage in physical destruction, two extreme types may be distinguished. On the one hand, there is the man who is not technically trained and employed. This man needs specific suggestions as to what he can and should destroy as well as details regarding the tools by means of which destruction is accomplished.&lt;/p&gt;
&lt;p&gt;(c) At the other extreme is the man who is a technician, such as a lathe operator or an automobile mechanic. Presumably this man would be able to devise methods of simple sabotage which would be appropriate to his own facilities. However, this man needs to be stimulated to re-orient his thinking in the direction of destruction. Specific examples, which need not be from his own field, should accomplish this.&lt;/p&gt;
&lt;p&gt;(d) Various media may be used to disseminate suggestions and information regarding simple sabotage. Among the media which may be used, as the immediate situation dictates, are: freedom stations or radio false (unreadable) broadcasts or leaflets may be directed toward specific geographic or occupational areas, or they may be general in scope. Finally, agents may be trained in the art of simple sabotage, in anticipation of a time when they may be able to communicate this information directly.&lt;/p&gt;
&lt;h3 id=&quot;(3)-safety-measures&quot; tabindex=&quot;-1&quot;&gt;(3) Safety Measures &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(3)-safety-measures&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) The amount of activity carried on by the saboteur will be governed not only by the number of opportunities he sees, but also by the amount of danger he feels. Bad news travels fast, and simple sabotage will be discouraged if too many simple saboteurs are arrested.&lt;/p&gt;
&lt;p&gt;(b) It should not be difficult to prepare leaflets and other media for the saboteur about the choice of weapons, time, and targets which will insure the saboteur against detection and retaliation. Among such suggestions might be the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Use materials which appear to be innocent. A knife or a nail file can be carried normally on your person; either is a multi-purpose instrument for creating damage. Matches, pebbles, hair, salt, nails, and dozens of other destructive agents can be carried or kept in your living quarters without exciting any suspicion whatever. If you are a worker in a particular trade or industry you can easily carry and keep such things as wrenches, hammers, emery paper, and the like.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Try to commit acts for which large numbers of people could be responsible. For instance, if you blow out the wiring in a factory at a central fire box, almost anyone could have done it. On-the-street sabotage after dark, such as you might be able to carry out against a military car or truck, is another example of an act for which it would be impossible to blame you.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Do not be afraid to commit acts for which you might be blamed directly, so long as you do so rarely, and as long as you have a plausible excuse: you dropped your wrench across an electric circuit because an air raid had kept you up the night before and you were half-dozing at work. Always be profuse in your apologies. Frequently you can “get away” with such acts under the cover of pretending stupidity, ignorance, over-caution, fear of being suspected of sabotage, or weakness and dullness due to undernourishment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After you have committed an act of easy sabotage, resist any temptation to wait around and see what happens. Loiterers arouse suspicion. Of course, there are circumstances when it would be suspicious for you to leave. If you commit sabotage on your job, you should naturally stay at your work.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;4.-tools%2C-targets%2C-and-timing&quot; tabindex=&quot;-1&quot;&gt;4. Tools, Targets, And Timing &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#4.-tools%2C-targets%2C-and-timing&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The citizen-saboteur cannot be closely controlled. Nor is it reasonable to expect that simple sabotage can be precisely concentrated on specific types of target according to the requirements of a concrete military situation. Attempts to control simple sabotage according to developing military factors, moreover, might provide the enemy with intelligence of more or less value in anticipating the date and area of notably intensified or notably slackened military activity.&lt;/p&gt;
&lt;p&gt;Sabotage suggestions, of course, should be adapted to fit the area where they are to be practiced. Target priorities for general types of situations likewise can be specified, for emphasis at the proper time by the underground press, freedom stations, and cooperating propaganda.&lt;/p&gt;
&lt;h3 id=&quot;(1)-under-general-conditions&quot; tabindex=&quot;-1&quot;&gt;(1) Under General Conditions &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(1)-under-general-conditions&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Simple sabotage is more than malicious mischief, and it should always consist of acts whose results will be detrimental to the materials and manpower of the enemy.&lt;/p&gt;
&lt;p&gt;(b) The saboteur should be ingenious in using his every-day equipment. All sorts of weapons will present themselves if he looks at his surroundings in a different light. For example, emery dust —a powerful weapon— may at first seem unobtainable, but if the saboteur were to pulverize an emery knife sharpener or emery wheel with a hammer, he would find himself with a plentiful supply.&lt;/p&gt;
&lt;p&gt;(c) The saboteur should never attack targets beyond his capacity or the capacity of his instruments. An inexperienced person should not, for example, attempt to use explosives, but should confine himself to the use of matches or other familiar weapons.&lt;/p&gt;
&lt;p&gt;(d) The saboteur should try to damage only objects and materials known to be in use by the enemy or to be destined for early use by the enemy. It will be safe for him to assume that almost any product of heavy industry is destined for enemy use, and that the most efficient fuels and lubricants also are destined for enemy use. Without special knowledge, however, it would be undesirable for him to attempt destruction of food crops or food products.&lt;/p&gt;
&lt;p&gt;(e) Although the citizen-saboteur may rarely have access to military objects, he should give these preference above all others.&lt;/p&gt;
&lt;h3 id=&quot;(2)-prior-to-a-military-offensive&quot; tabindex=&quot;-1&quot;&gt;(2) Prior to a Military Offensive &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(2)-prior-to-a-military-offensive&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;During periods which are quiescent in a military sense, such emphasis as can be given to simple sabotage might well center on industrial production, to lessen the flow of materials and equipment to the enemy. Slashing a rubber tire on an Army truck may be an act of value; spoiling a batch of rubber in the production plant is an act of still more value.&lt;/p&gt;
&lt;h3 id=&quot;(3)-during-a-military-offensive&quot; tabindex=&quot;-1&quot;&gt;(3) During a Military Offensive &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(3)-during-a-military-offensive&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Most significant sabotage for an area which is, or is soon destined to be, a theater of combat operations is that whose effects will be direct and immediate. Even if the effects are relatively minor and localized, this type of sabotage is to be preferred to activities whose effects, while widespread, are indirect and delayed.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The saboteur should be encouraged to attack transportation facilities of all kinds.&lt;/p&gt;
&lt;p&gt;Among such facilities are roads, railroads, auto mobiles, trucks, motor-cycles, bicycles, trains, and trams.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Any communications facilities which can be used by the authorities to transmit instructions or morale material should be the objects of simple sabotage. These include telephone, telegraph and power systems, radio, newspapers, placards, and public notices.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Critical materials, valuable in themselves or necessary to the efficient functioning of transportation and communication, also should become targets for the citizen-saboteur. These may include oil, gasoline, tires, food, and water.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;5.-specific-suggestions-for-simple-sabotage&quot; tabindex=&quot;-1&quot;&gt;5. Specific Suggestions For Simple Sabotage &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#5.-specific-suggestions-for-simple-sabotage&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It will not be possible to evaluate the desirability of simple sabotage in an area without having in mind rather specifically what individual acts and results are embraced by the definition of simple sabotage.&lt;/p&gt;
&lt;p&gt;A listing of specific acts follows, classified according to types of target. This list is presented as a growing rather than a complete outline of the methods of simple sabotage. As new techniques are developed, or new fields explored, it will be elaborated and expanded.&lt;/p&gt;
&lt;h3 id=&quot;(1)-buildings&quot; tabindex=&quot;-1&quot;&gt;(1) Buildings &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(1)-buildings&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Warehouses, barracks, offices, hotels, and factory buildings are outstanding targets for simple sabotage. They are extremely susceptible to damage, especially by fire; they offer opportunities to such untrained people as janitors, charwomen, and casual visitors; and, when damaged, they present a relatively large handicap to the enemy.&lt;/p&gt;
&lt;p&gt;(a) Fires can be started wherever there is an accumulation of inflammable material. Warehouses are obviously the most promising targets but incendiary sabotage need not be confined to them alone.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Whenever possible, arrange to have the fire start after you have gone away. Use a candle and paper, combination, setting it as close as possible to the inflammable material you want to burn: From a sheet of paper, tear a strip three or four centimeters wide and wrap it around the base of the candle two or three times. Twist more sheets of paper into loose ropes and place them around the base of the candle. When the candle flame reaches the encircling strip, it will be ignited and in turn will ignite the surrounding paper. The size, heat, and duration of the resulting flame will depend on how much paper you use and how much of it you can cramp in a small space.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;With a flame of this kind, do not attempt to ignite any but rather inflammable materials, such as cotton sacking. To light more resistant materials, use a candle plus tightly rolled or twisted paper which has been soaked in gasoline. To create a briefer but even hotter flame, put celluloid such as you might find in an old comb, into a nest of plain or saturated paper which is to be fired by a candle.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To make another type of simple fuse, soak one end of a piece of string in grease. Rub a generous pinch of gunpowder over the inch of string where greasy string meets clean string. Then ignite the clean end of the string. It will burn slowly without a flame i. much the same way that a cigarette burns) until it reaches the grease and gunpowder; it will then flare up suddenly. The grease-treated string will then burn with a flame. The same effect may be achieved by using matches instead of the grease and gunpowder. Run the string over the match heads, taking care that the string is not pressed or knotted. They too will produce a sudden flame. The advantage of this type of fuse is that string burns at a set speed. You can time your fire by the length and thickness of the string you chose.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use a fuse such as; the ones suggested above to start a fire in an office after hours. The destruction of records and other types of documents would be a serious handicap to the enemy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In basements where waste is kept, janitors should accumulate oily and greasy waste. Such waste sometimes ignites spontaneously, but it can easily be lit with a cigarette or match. If you are a janitor on night duty, you can be the first to report the fire, but don’t report it too soon.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A clean factory is not susceptible to fire, but a dirty one is. Workers should be careless with refuse and janitors should be inefficient in cleaning. If enough dirt and trash can be accumulated an otherwise fireproof building will become inflammable.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Where illuminating gas is used in a room which is vacant at night, shut the windows tightly, turn on the gas, and leave a candle burning in the room, closing the door tightly behind you. After a time, the gas will explode, and a fire may or may not follow.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(b) Water and miscellaneous&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Ruin warehouse stock by setting the automatic sprinkler system to work. You can do this by tapping the sprinkler heads sharply with a hammer or by holding a match under them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Forget to provide paper in toilets; put tightly rolled paper, hair, and other obstructions in the W. C. Saturate a sponge with a thick starch or sugar solution. Squeeze it tightly into a ball, wrap it with string, and dry. Remove the string when fully dried. The sponge will be in the form of a tight hard ball. Flush down a&lt;/p&gt;
&lt;p&gt;W. C. or otherwise introduce into a sewer line. The sponge will gradually expand to its normal size and plug the sewage system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Put a coin beneath a bulb in a public building during the daytime, so that fuses will blow out when lights are turned on at night. The fuses themselves may be rendered ineffective by putting a coin behind them or loading them with heavy wire. Then a short-circuit may either start a fire, damage transformers, or blow out a central fuse which will interrupt distribution of electricity to a large area.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Jam paper, bits of wood, hairpins, and anything else that will fit, into the locks of all unguarded entrances to public buildings.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;(2)-industrial-production%3A-manufacturing&quot; tabindex=&quot;-1&quot;&gt;(2) Industrial Production: Manufacturing &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(2)-industrial-production%3A-manufacturing&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Tools&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Let cutting tools grow dull. They will be inefficient, will slow down production, and may damage the materials and parts you use them on.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Leave saws slightly twisted when you are not using them. After a while, they will break when used.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using a very rapid stroke will wear out a file before its time. So will dragging a file in slow strokes under heavy pressure. Exert pressure on the backward stroke as well as the forward stroke.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Clean files by knocking them against the vise or the workpiece; they are easily broken this way.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Bits and drills will snap under heavy pressure.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can put a press punch out of order by putting in it more material than it is adjusted for — two blanks instead of one, for example.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Power-driven tools like pneumatic drills, riveters, and so on, are never efficient when dirty. Lubrication points and electric contacts can easily be fouled by normal accumulations of dirt or the insertion of foreign matter.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(b) Oil and lubrication systems are not only vulnerable to easy sabotage, but are critical in every machine with moving parts. Sabotage of oil and lubrication will slow production or stop work entirely at strategic points in industrial processes.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Put metal dust or filings, fine sand, ground glass, emery dust (get it by pounding up an emery knife sharpener) and similar hard, gritty substances directly into lubrication systems. They will scour smooth surfaces, ruining pistons, cylinder walls, shafts, and bearings. They will overheat and stop motors which will need overhauling, new parts, and extensive repairs. Such materials, if they are used, should be introduced into lubrication systems past any filters which otherwise would strain them out.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can cause wear on any machine by uncovering a filter system, poking a pencil or any other sharp object through the filter mesh, then covering it up again. Or, if you can dispose of it quickly, simply remove the filter.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you cannot get at the lubrication system or filter directly, you may be able to lessen the effectiveness of oil by diluting it in storage. In this case, almost any liquid will do which will thin the oil. A small amount of sulphuric acid, varnish, water-glass, or linseed oil will be especially effective.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using a thin oil where a heavy oil is prescribed will break down a machine or heat up a moving shaft so that it will “freeze” and stop.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Put any clogging substance into lubrication systems or, if it will float, into stored oil. Twisted combings of human hair, pieces of string, dead insects, and many other common objects will be effective in stopping or hindering the flow of oil through feed lines and filters.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Under some circumstances, you may be able to destroy oil outright rather than interfere with its effectiveness, by removing stop-plugs from lubricating systems or by puncturing the drums and cans in which it is stored.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(c) Cooling Systems&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;A water cooling system can be put out of commission in a fairly short time, with considerable damage to an engine or motor, if you put into it several pinches of hard grain, such as rice or wheat. They will swell up and choke the circulation of water, and the cooling system will have to be torn down to remove the obstruction. Sawdust or hair may also be used to clog a water cooling system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If very cold water is quickly introduced into the cooling system of an overheated motor, contraction and considerable strain on the engine housing will result. If you can repeat the treatment a few times, cracking and serious damage will result.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can ruin the effectiveness of an air cooling system by plugging dirt and waste into intake or exhaust valves. If a belt-run fan is used in the system, make a jagged cut at least half way through the belt; it will slip and finally part under strain and the motor will overheat.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(d) Gasoline and Oil Fuel Tanks and fueling engines usually are accessible and easy to open. They afford a very vulnerable target for simple sabotage activities.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Put several pinches of sawdust or hard grain, such as rice or wheat, into the fuel tank of a gasoline engine. The particles will choke a feed line so that the engine will stop. Some time will be required to discover the source of the trouble. Although they will be hard to get, crumbs of natural rubber, such as you might find in old rubber bands and pencil erasers, are also effective.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you can accumulate sugar, put it in the fuel tank of a gasoline engine. As it burns together with the gasoline, it will turn into a sticky mess which will completely mire the engine and necessitate extensive cleaning and repair. Honey and molasses are as good as sugar. Try to use about 75–100 grams for each 10 gallons of gasoline.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Other impurities which you can introduce into gasoline will cause rapid engine wear and eventual breakdown. Fine particles of pumice, sand, ground glass, and metal dust can easily be introduced into a gasoline tank. Be sure that the particles are very fine, so that they will be able to pass through the carburetor jet.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Water, urine, wine, or any other simple liquid you can get in reasonably large quantities will dilute gasoline fuel to a point where no combustion will occur in the cylinder and the engine will not move. One pint to 20 gallons of gasoline is sufficient. If salt water is used, it will cause corrosion and permanent motor damage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the case of Diesel engines, put low flashpoint oil into the fuel tank; the engine will not move. If there already is proper oil in the tank when the wrong kind is added, the engine will only limp and sputter along.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fuel lines to gasoline and oil engines frequently pass over the exhaust pipe. When the machine is at rest, you can stab a small hole in the fuel line and plug the hole with wax. As the engine runs and the exhaust tube becomes hot, the wax will be melted; fuel will drip onto the exhaust and a blaze will start.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you have access to a room where gasoline is stored, remember that gas vapor accumulating in a closed room will explode after a time if you leave a candle burning in the room. A good deal of evaporation, however, must occur from the gasoline tins into the air of the room. If removal of the tops of the tins does not expose enough gasoline to the air to ensure copious evaporation, you can open lightly constructed tins further with a knife, ice pick or sharpened nail file. Or puncture a tiny hole in the tank which will permit gasoline to leak out on the floor. This will greatly increase the rate of evaporation. Before you light your candle, be sure that windows are closed and the room is as air-tight as you can make it. If you can see that windows in a neighboring room are opened wide, you have a chance of setting a large fire which will not only destroy the gasoline but anything else nearby; when the gasoline explodes, the doors of the storage room will be blown open, a draft to the neighboring windows will be created which will whip up a fine conflagration.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(e) Electric Motors&lt;/p&gt;
&lt;p&gt;Electric motors (including dynamos) are more restricted than the targets so far discussed. They cannot be sabotaged easily or without risk of injury by unskilled persons who may otherwise have good opportunities for destruction.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Set the rheostat to a high point of resistance in all types of electric motors. They will overheat and catch fire.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Adjust the overload relay to a very high value beyond the capacity of the motor. Then overload the motor to a point where it will overheat and break down.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Remember that dust, dirt, and moisture are enemies of electrical equipment. Spill dust and dirt onto the points where the wires in electric motors connect with terminals, and onto insulating parts. Inefficient transmission of current and, in some cases, short circuits will result. Wet generator motors to produce short circuits.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;“Accidentally” bruise the insulation on wire, loosen nuts on connections, make faulty splices and faulty connections in wiring, to waste electric current and reduce the power of electric motors.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Damage to commutators can reduce the power output or cause short circuiting in direct-current motors: Loosen or remove commutator holding rings. Sprinkle carbon, graphite, or metal dust on commutators. Put a little grease or oil at the contact points of commutators. Where commutator bars are close together bridge the gaps between them with metal dust, or sawtooth their edges with a chisel so that the teeth on adjoining bars meet or nearly meet and current can pass from one to the other.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Put a piece of finely grained emery paper half the size of a postage stamp in a place where it will wear away rotating brushes. The emery paper and the motor will be destroyed in the resulting fire.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sprinkle carbon, graphite or metal dust on slip-rings so that the current will leak or short circuits will occur. When a motor is idle, nick the slip-rings with a chisel.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cause motor stoppage or inefficiency by applying dust mixed with grease to the face of the armature so that it will not make proper contact.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To overheat electric motors, mix sand with heavy grease and smear it between the stator and rotor, or wedge thin metal pieces between them. To prevent the efficient generation of current, put floor sweepings, oil, tar, or paint between them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In motors using three-phase current, deeply nick one of the lead-in wires with a knife or file when the machine is at rest, or replace one of the three fuses with a blown-out fuse. In the first case, the motor will stop after running awhile, and in the second, it will not start.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(f) Transformers&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Transformers of the oil-filled type can be put out of commission if you pour water, salt water, machine-tool coolant, or kerosene into the oil tank.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In air-cooled transformers, block the ventilation by piling debris around the transformer.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In all types of transformers, throw carbon, graphite or metal dust over the outside bushings and other exposed electrical parts.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(g) Turbines for the most part are heavily built, stoutly housed, and difficult of access. Their vulnerability to simple sabotage is very low.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;After inspecting or repairing a hydro turbine, fasten the cover insecurely so that it will blow off and flood the plant with water. A loose cover on a steam turbine will cause it to leak and slow down.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In water turbines, insert a large piece of scrap iron in the head of the penstock, just beyond the screening, so that water will carry the damaging material down to the plant equipment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the steam line to a turbine is opened for repair, put pieces of scrap iron into it, to be blasted into the turbine machinery when steam is up again.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a leak in the line feeding oil to the turbine, so that oil will fall on the hot steam pipe and cause a fire.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(h) Boilers&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Reduce the efficiency of steam boilers any way you can. Put too much water in them to make them slow-starting, or keep the fire under them low to keep them inefficient. Let them dry and turn the fire up; they will crack and be ruined. An especially good trick is to keep putting limestone or water containing lime in the boiler; it will deposit lime on the bottom and sides. This deposit will provide very good insulation against heat; after enough of it has collected, the boiler will be completely worthless.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;(3)-production.-metals&quot; tabindex=&quot;-1&quot;&gt;(3) Production. Metals &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(3)-production.-metals&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Iron and Steel&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Keep blast furnaces in a condition where they must be frequently shut down for repair. In making fire-proof bricks for the inner lining of blast furnaces, put in an extra proportion of tar so that they will wear out quickly and necessitate constant re-lining.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Make cores for casting so that they are filled with air bubbles and an imperfect cast results.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;See that the core in a mold is not properly supported, so that the core gives way or the casting is spoiled because of the incorrect position of the core.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In tempering steel or iron, apply too much heat, so that the resulting bars and ingots are of poor quality.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(b) Other Metals&lt;/p&gt;
&lt;p&gt;No suggestions available.&lt;/p&gt;
&lt;h3 id=&quot;(4)-production%3A-mining-and-mineral-extraction&quot; tabindex=&quot;-1&quot;&gt;(4) Production: Mining and Mineral Extraction &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(4)-production%3A-mining-and-mineral-extraction&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Coal&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;A slight blow against your Davy oil lamp will extinguish it, and to light it again you will have to find a place where there is no fire damp. Take a long time looking for the place.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Blacksmiths who make pneumatic picks should not harden them properly, so that they will quickly grow dull.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can easily put your pneumatic pick out of order. Pour a small amount of water through the oil lever and your pick will stop working. Coal dust and improper lubrication will also put it out of order.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Weaken the chain that pulls the bucket conveyers carrying coal. A deep dent in the chain made with blows of a pick or shovel will cause it to part under normal strain. Once a chain breaks, normally or otherwise take your time about reporting the damage; be slow about taking the chain up for repairs and bringing it back down after repairs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Derail mine cars by putting obstructions on the rails and in switch points. If possible, pick a gallery where coal cars have to pass each other, so that traffic will be snarled up.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Send up quantities of rock and other useless material with the coal.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;(5)-production%3A-agriculture&quot; tabindex=&quot;-1&quot;&gt;(5) Production: Agriculture &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(5)-production%3A-agriculture&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Machinery&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;See par. 5 b. (2) (c), (d), (e).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(b) Crops and livestock probably will be destroyed only in areas where there are large food surpluses or where the enemy (regime) is known to be requisitioning food.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Feed crops to livestock. Let crops harvest too early or too late. Spoil stores of grain, fruit and vegetables by soaking them in water so that they will rot. Spoil fruit and vegetables by leaving them in the sun.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;(6)-transportation%3A-railways&quot; tabindex=&quot;-1&quot;&gt;(6) Transportation: Railways &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(6)-transportation%3A-railways&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Passengers&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Make train travel as inconvenient as possible for enemy personnel. Make mistakes in issuing train tickets, leaving portions of the journey uncovered by the ticket book; issue two tickets for the same seat in the train, so that an interesting argument will result; near train time, instead of issuing printed tickets write them out slowly by hand, prolonging the process until the train is nearly ready to leave or has left the station. On station bulletin boards announcing train arrivals and departures, see that false and misleading information is given about trains bound for enemy destinations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In trains bound for enemy destinations, attendants should make life as uncomfortable as possible for passengers. See that the food is especially bad, take up tickets after midnight, call all station stops very loudly during the night, handle baggage as noisily as possible during the night, and so on.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;See that the luggage of enemy personnel is mislaid or unloaded at the wrong stations.&lt;/p&gt;
&lt;p&gt;Switch address labels on enemy baggage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Engineers should see that trains run slow or make unscheduled stops for plausible reasons.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(b) Switches, Signals and Routing&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Exchange wires in switchboards containing signals and switches, so that they connect to the wrong terminals.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Loosen push-rods so that signal arms do not work; break signal lights; exchange the colored lenses on red and green lights.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Spread and spike switch points in the track so that they will not move, or place rocks or close-packed dirt between the switch points.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sprinkle rock salt or ordinary salt profusely over the electrical connections of switch points and on the ground nearby. When it rains, the switch will be short-circuited.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;See that cars are put on the wrong trains. Remove the labels from cars needing repair and put them on cars in good order. Leave couplings between cars as loose as possible.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(c) Road-beds and Open Track&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;On a curve, take the bolts out of the tie-plates connecting to sections of the outside rail, and scoop away the gravel, cinders, or dirt for a few feet on each side of the connecting joint.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If by disconnecting the tie-plate at a joint and loosening sleeper nails on each side of the joint, it becomes possible to move a sections of rail, spread two sections of rail and drive a spike vertically between them.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(d) Oil and Lubrication&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;See 5 b. (2) (b).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Squeeze lubricating pipes with pincers or dent them with hammers, so that the flow of oil is obstructed.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(e) Cooling Systems&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;See 5 b (2) (c).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(f) Gasoline and Oil Fuel&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;See 5 b (2) (d).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(g) Electric Motors&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;See 5 b (2) (e) and (f).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(h) Boilers&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;See 5 b (2) (h).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After inspection put heavy oil or tar in the engines’ boilers, or put half a kilogram of soft soap into the water in the tender.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(i) Brakes and Miscellaneous&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Engines should run at high speeds and use brakes excessively at curves and on downhill grades.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Punch holes in air-brake valves or water supply pipes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the last car of a passenger train or or a front car of a freight, remove the wadding from a journal box and replace it with oily rags.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;(7)-transportation%3A-automotive&quot; tabindex=&quot;-1&quot;&gt;(7) Transportation: Automotive &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(7)-transportation%3A-automotive&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Roads. Damage to roads [(3) below] is slow, and therefore impractical as a D-day or near D-day activity.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Change sign posts at intersections and forks; the enemy will go the wrong way and it may be miles before he discovers his mistakes.&lt;/p&gt;
&lt;p&gt;In areas where traffic is composed primarily of enemy autos, trucks, and motor convoys of various kinds remove danger signals from curves and intersections.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the enemy asks for directions, give him wrong information. Especially when enemy convoys are in the neighborhood, truck drivers can spread rumors and give false information about bridges being out, ferries closed, and detours lying ahead.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you can start damage to a heavily traveled road, passing traffic and the elements will do the rest. Construction gangs can see that too much sand or water is put in concrete or that the road foundation has soft spots. Anyone can scoop ruts in asphalt and macadam roads which turn soft in hot weather; passing trucks will accentuate the ruts to a point where substantial repair will be needed. Dirt roads also can be scooped out. If you are a road laborer, it will be only a few minutes work to divert a small stream from a sluice so that it runs over and eats away the road.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Distribute broken glass, nails, and sharp rocks on roads to puncture tires.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(b) Passengers&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Bus-driver can go past the stop where the enemy wants to get off. Taxi drivers can waste the enemy’s time and make extra money by driving the longest possible route to his destination.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(c) Oil and Lubrication&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;See 5 b. (2) (b).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Disconnect the oil pump; this will burn out the main bearings in less than 50 miles of normal driving.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(d) Radiator&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;See 5 b. (2) (c).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(e) Fuel&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;See 5 b. (2) (d).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(f) Battery and Ignition&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Jam bits of wood into the ignition lock; loosen or exchange connections behind the switchboard; put dirt in spark plugs; damage distributor points.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Turn on the lights in parked cars so that the battery will run down.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mechanics can ruin batteries in a number of undetectable ways: Take the valve cap off a cell, and drive a screw driver slantwise into the exposed water vent, shattering the plates of the cell; no damage will show when you put the cap back on. Iron or copper filings put into the cells i.e., dropped into the acid, will greatly shorten its life. Copper coins or a few pieces of iron will accomplish the same and more slowly.&lt;/p&gt;
&lt;p&gt;One hundred to 150 cubic centimeters of vinegar in each cell greatly reduces the life of the battery, but the odor of the vinegar may reveal what has happened.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(g) Gears&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Remove the lubricant from or put too light a lubricant in the transmission and other gears.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In trucks, tractors, and other machines with heavy gears, fix the gear case insecurely, putting bolts in only half the bolt holes. The gears will be badly jolted in use and will soon need repairs.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(h) Tires&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Slash or puncture tires of unguarded vehicles. Put a nail inside a match box or other small box, and set it vertically in front of the back tire of a stationary car; when the car starts off, the nail will go neatly through the tire.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It is easy to damage a tire in a tire repair shop: In fixing flats, spill glass, benzine, caustic soda, or other material inside the casing which will puncture or corrode the tube. If you put a gummy substance inside the tube, the next flat will stick the tube to the casing and make it unusable. Or, when you fix a flat tire, you can simply leave between the tube and the casing the object which caused the flat in the first place.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In assembling a tire after repair, pump the tube up as fast as you can. Instead of filling out smoothly, it may crease, in which case it will wear out quickly. Or, as you put a tire together, see if you can pinch the tube between the rim of the tire and the rim of the wheel, so that a blow-out will result.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In putting air into tires, see that they are kept below normal pressure, so that more than an ordinary amount of wear will result. In filling tires on double wheels, inflate the inner tire to a much higher pressure than the outer one; both will wear out more quickly this way. Badly aligned wheels also wear tires out quickly; you can leave wheels out of alignment when they come in for adjustment, or you can spring them out of true with a strong kick, or by driving the car slowly and diagonally into a curb.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you have access to stocks of tires, you can rot them by spilling oil, gasoline, caustic acid, or benzine on them. Synthetic rubber, however, is less susceptible to these chemicals.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;(8)-transportation%3A-water&quot; tabindex=&quot;-1&quot;&gt;(8) Transportation: Water &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(8)-transportation%3A-water&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Navigation&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Barge and river boat personnel should spread false rumors about the navigability and conditions of the waterways they travel. Tell other barge and boat captains to follow channels that will take extra time, or cause them to make canal detours.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Barge and river boat captains should navigate with exceeding caution near locks and bridges, to waste their time and to waste the time of other craft which may have to wait on them. If you don’t pump the bilges of ships and barges often enough, they will be slower and harder to navigate. Barges “accidentally” run aground are an efficient time waster too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Attendants on swing, draw, or bascule bridges can delay traffic over the bridge or in the waterway underneath by being slow. Boat captains can leave unattended draw bridges open in order to hold up road traffic.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add or subtract compensating magnets to the compass on cargo ships. Demagnetize the compass or maladjust it by concealing a large bar of steel or iron near to it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(b) Cargo&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;While loading or unloading, handle cargo carelessly in order to cause damage. Arrange the cargo so that the weakest and lightest crates and boxes will be at the bottom of the hold, while the heaviest ones are on top of them.&lt;/p&gt;
&lt;p&gt;Put hatch covers and tarpaulins on sloppily, so that rain and deck wash will injure the cargo.&lt;/p&gt;
&lt;p&gt;Tie float valves open so that storage tanks will overflow on perishable goods.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;(9)-communications&quot; tabindex=&quot;-1&quot;&gt;(9) Communications &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(9)-communications&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Telephone&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;At office, hotel and exchange switch boards delay putting enemy calls through, give them wrong numbers, cut them off “accidentally,” or forget to disconnect them so that the line cannot be used again.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hamper official and especially military business by making at least one telephone call a day to an enemy headquarters; when you get them, tell them you have the wrong number.&lt;/p&gt;
&lt;p&gt;Call military or police offices and make anonymous false reports of fires, air raids, bombs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In offices and buildings used by the enemy, unscrew the earphone of telephone receivers and remove the diaphragm. Electricians and telephone repair men can make poor connections and damage insulation so that cross talk and other kinds of electrical interference will make conversations hard or impossible to understand.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Put the batteries under automatic switchboards out of commission by dropping nails, metal filings, or coins into the cells. If you can treat half the batteries in this way, the switchboard will stop working. A whole telephone system can be disrupted if you can put 10 percent of the cells in half the batteries of the central battery room out of order.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(b) Telegraph&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Delay the transmission and delivery of telegrams to enemy destinations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Garble telegrams to enemy destinations so that another telegram will have to be sent or a long distance call will have to be made. Sometimes it will be possible to do this by changing a single letter in a word — for example, changing “minimum” to “maximum,” so that the person receiving the telegram will not know whether “minimum” or “maximum” is meant.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(c) Transportation Lines&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cut telephone and telegraph transmission lines. Damage insulation on power lines to cause interference.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(d) Mail&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Post office employees can see to it that enemy mail is always delayed by one day or more, that it is put in wrong sacks, and so on.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(e) Motion Pictures&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Projector operators can ruin newsreels and other enemy propaganda films by bad focusing, speeding up or slowing down the film and by causing frequent breakage in the film.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Audiences can ruin enemy propaganda films by applauding to drown the words of the speaker, by coughing loudly, and by talking.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Anyone can break up a showing of an enemy propaganda film by putting two or three dozen large moths in a paper bag. Take the bag to the movies with you, put it on the floor in an empty section of the theater as you go in and leave it open. The moths will fly out and climb into the projector beam, so that the film will be obscured by fluttering shadows.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(f) Radio&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Station engineers will find it quite easy to overmodulate transmissions of talks by persons giving enemy propaganda or instructions, so that they will sound as if they were talking through a heavy cotton blanket with a mouth full of marbles.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In your own apartment building, you can interfere with radio reception at times when the enemy wants everybody to listen. Take an electric light plug off the end of an electric light cord; take some wire out of the cord and tie it across two terminals of a two-prong plug or three terminals of a four-prong plug. Then take it around and put it into as many wall and floor outlets as you can find. Each time you insert the plug into a new circuit, you will blow out a fuse and silence all radios running on power from that circuit until a new fuse is put in.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Damaging insulation on any electrical equipment tends to create radio interference in the immediate neighborhood, particularly on large generators, neon signs, fluorescent lighting, X-ray machines, and power lines. If workmen can damage insulation on a high tension line near an enemy airfield, they will make ground-to-plane radio communications difficult and perhaps impossible during long periods of the day.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;(10)-electric-power&quot; tabindex=&quot;-1&quot;&gt;(10) Electric Power &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(10)-electric-power&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Turbines, Electric Motors, Transformers&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;See 5 b. (2) (e), (f),and (g).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(b) Transmission Lines&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Linesmen can loosen and dirty insulators to cause power leakage. It will be quite easy, too, for them to tie a piece of very heavy string several times back and forth between two parallel transmission lines, winding it several turns around the wire each time. Beforehand, the string should be heavily saturated with salt and then dried. When it rains, the string becomes a conductor, and a short-circuit will result.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;(11)-general-interference-with-organizations-and-production&quot; tabindex=&quot;-1&quot;&gt;(11) General Interference with Organizations and Production &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(11)-general-interference-with-organizations-and-production&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Organizations and Conferences&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Insist on doing everything through “channels.” Never permit short-cuts to be taken in order to expedite decisions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Make “speeches.” Talk as frequently as possible and at great length. Illustrate your “points” by long anecdotes and accounts of personal experiences. Never hesitate to make a few appropriate “patriotic” comments.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When possible, refer all matters to committees, for “further study and consideration.” Attempt to make the committees as large as possible — never less than five.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Bring up irrelevant issues as frequently as possible.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Haggle over precise wordings of communications, minutes, resolutions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Refer back to matters decided upon at the last meeting and attempt to re-open the question of the advisability of that decision.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Advocate “caution.” Be “reasonable” and urge your fellow-conferees to be “reasonable” and avoid haste which might result in embarrassments or difficulties later on.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Be worried about the propriety of any decision — raise the question of whether such action as is contemplated lies within the jurisdiction of the group or whether it might conflict with the policy of some higher echelon.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(b) Managers and Supervisors&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Demand written orders.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;“Misunderstand” orders. Ask endless questions or engage in long correspondence about such orders. Quibble over them when you can.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Do everything possible to delay the delivery of orders. Even though parts of an order may be ready beforehand, don’t deliver it until it is completely ready.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Don’t order new working materials until your current stocks have been virtually exhausted, so that the slightest delay in filling your order will mean a shutdown.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Order high-quality materials which are hard to get. If you don’t get them argue about it. Warn that inferior materials will mean inferior work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In making work assignments, always sign out the unimportant jobs first. See that the important jobs are assigned to inefficient workers of poor machines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Insist on perfect work in relatively unimportant products; send back for refinishing those which have the least flaw. Approve other defective parts whose flaws are not visible to the naked eye.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Make mistakes in routing so that parts and materials will be sent to the wrong place in the plant.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When training new workers, give incomplete or misleading instructions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To lower morale and with it, production, be pleasant to inefficient workers; give them undeserved promotions. Discriminate against efficient workers; complain unjustly about their work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hold conferences when there is more critical work to be done.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Multiply paper work in plausible ways.&lt;/p&gt;
&lt;p&gt;Start duplicate files.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Multiply the procedures and clearances involved in issuing instructions, pay checks, and so on. See that three people have to approve everything where one would do.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Apply all regulations to the last letter.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(c) Office Workers&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Make mistakes in quantities of material when you are copying orders. Confuse similar names. Use wrong addresses.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Prolong correspondence with government bureaus.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Misfile essential documents.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In making carbon copies, make one too few, so that an extra copying job will have to be done.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tell important callers the boss is busy or talking on another telephone.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hold up mail until the next collection.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Spread disturbing rumors that sound like inside dope.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(d) Employees&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Work slowly. Think out ways to increase the number of movements necessary on your job: use a light hammer instead of a heavy one, try to make a small wrench do when a big one is necessary, use little force where considerable force is needed, and so on.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Contrive as many interruptions to your work as you can: when changing the material on which you are working, as you would on a lathe or punch, take needless time to do it. If you are cutting, shaping or doing other measured work, measure dimensions twice as often as you need to. When you go to the lavatory, spend a longer time there than is necessary.&lt;/p&gt;
&lt;p&gt;Forget tools so that you will have to go back after them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Even if you understand the language, pretend not to understand instructions in a foreign tongue.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pretend that instructions are hard to understand, and ask to have them repeated more than once. Or pretend that you are particularly anxious to do your work, and pester the foreman with unnecessary questions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Do your work poorly and blame it on bad tools, machinery, or equipment. Complain that these things are preventing you from doing your job right.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Never pass on your skill and experience to a new or less skillful worker.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Snarl up administration in every possible way. Fill out forms illegibly so that they will have to be done over; make mistakes or omit requested information in forms.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If possible, join or help organize a group for presenting employee problems to the management. See that the procedures adopted are as inconvenient as possible for the management, involving the presence of a large number of employees at each presentation, entailing more than one meeting for each grievance, bringing up problems which are largely imaginary, and so on.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Misroute materials.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mix good parts with unusable scrap and rejected parts.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;(12)-general-devices-for-lowering-morale-and-creating-confusion&quot; tabindex=&quot;-1&quot;&gt;(12) General Devices for Lowering Morale and Creating Confusion &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/09/simple-sabotage-field-manual/#(12)-general-devices-for-lowering-morale-and-creating-confusion&quot;&gt;§&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(a) Give lengthy and incomprehensible explanations when questioned.&lt;/p&gt;
&lt;p&gt;(b) Report imaginary spies or danger to the Gestapo or police.&lt;/p&gt;
&lt;p&gt;(c) Act stupid.&lt;/p&gt;
&lt;p&gt;(d) Be as irritable and quarrelsome as possible without getting yourself into trouble.&lt;/p&gt;
&lt;p&gt;(e) Misunderstand all sorts of regulations concerning such matters as rationing, transportation, traffic regulations.&lt;/p&gt;
&lt;p&gt;(f) Complain against ersatz materials.&lt;/p&gt;
&lt;p&gt;(g) In public treat axis nationals or quislings coldly.&lt;/p&gt;
&lt;p&gt;(h) Stop all conversation when axis nationals or quislings enter a cafe.&lt;/p&gt;
&lt;p&gt;(i) Cry and sob hysterically at every occasion, especially when confronted by government clerks.&lt;/p&gt;
&lt;p&gt;(j) Boycott all movies, entertainments, concerts, newspapers which are in any way connected with the quisling authorities.&lt;/p&gt;
&lt;p&gt;(k) Do not cooperate in salvage schemes.&lt;/p&gt;

    </content>
  </entry>
  <entry xml:lang="en">
    <title>The case for a better web</title>
    <link href="https://lamaquinadeturing.su/en/2024/08/the-case-for-a-better-web/" />
    <updated>2024-08-20T14:00:00Z</updated>
    <id>https://lamaquinadeturing.su/en/2024/08/the-case-for-a-better-web/</id>
    <content type="html">
      &lt;p&gt;&lt;img src=&quot;https://lamaquinadeturing.su/assets/media/ocean_opt1200.jpg&quot; alt=&quot;&amp;quot;Nature in Descending Regions&amp;quot; by Walter Levi Yaggy (1893).&quot;&gt;&lt;/p&gt;&lt;p&gt;There is a growing discontent around the current state of the World Wide Web.&lt;/p&gt;
&lt;p&gt;Web 1.0 felt like a place of freedom and creativity. Maybe I&#39;m being romantic, for sure had to have its issues... But remember the whimsical sites in Geocities, the simplicity of email discussion lists or the anonymity of IRC?&lt;/p&gt;
&lt;p&gt;That air of innocence has vanished. For good. A few decades later it has become a dystopian trap of surveillance and censorship, where governments and platforms gorge on our attention and personal data and force-feed us ads and fake news. The web today, as most people experience it, is a horrible place.&lt;/p&gt;
&lt;p&gt;This has been discussed for a while, but 2024 has seen a peak of discussions and contributions to this topic. I suggest three converging causes to this renaissance of the web: the late stage of &lt;a href=&quot;https://pluralistic.net/2023/01/08/watch-the-surpluses/&quot; class=&quot;link-external&quot;&gt;enshittification&lt;/a&gt; of the platforms; the revival of the personal blogs (and podcasts) during the covid pandemic; and the nostalgia of the generations that enjoyed the old web as teenagers and are now in their 30s and 40s.&lt;/p&gt;
&lt;p&gt;This is an on-going collection of essays, articles, projects and manifestos about what went wrong and what to do to make it right.&lt;/p&gt;
&lt;h2 id=&quot;the-disenshittified-internet-starts-with-loyal-%22user-agents%22&quot; tabindex=&quot;-1&quot;&gt;&lt;a href=&quot;https://pluralistic.net/2024/05/07/treacherous-computing/&quot; class=&quot;link-external&quot;&gt;The disenshittified internet starts with loyal &amp;quot;user agents&amp;quot;&lt;/a&gt; &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/08/the-case-for-a-better-web/#the-disenshittified-internet-starts-with-loyal-%22user-agents%22&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By &lt;a href=&quot;https://mamot.fr/@pluralistic&quot; class=&quot;link-mastodon&quot;&gt;Cory Doctorow&lt;/a&gt;, 7 May, 2024.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A web browser that&#39;s a &amp;quot;user agent&amp;quot; is a comforting thought. An agent&#39;s job is to serve you and your interests. [...] A &amp;quot;faithless&amp;quot; user agent is utterly different from a &amp;quot;clumsy&amp;quot; user agent, and faithless user agents have become the norm. Indeed, as crude early internet clients progressed in sophistication, they grew increasingly treacherous. Most non-browser tools are designed for treachery.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;reweirding-the-web&quot; tabindex=&quot;-1&quot;&gt;&lt;a href=&quot;https://webdirections.org/blog/reweirding-the-web/&quot; class=&quot;link-external&quot;&gt;Reweirding the Web&lt;/a&gt; &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/08/the-case-for-a-better-web/#reweirding-the-web&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By &lt;a href=&quot;https://indieweb.social/@johnallsopp&quot; class=&quot;link-mastodon&quot;&gt;John Allsopp&lt;/a&gt;, 3 May, 2024.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;More than at any time in the last decade or so I feel there’s a desire for this more personal web, and the tools and ideas to make it happen. So reclaim your little plot of the web, make it a bit weirder, a bit better. And connect with others who are doing likewise. It’s what drew me to the Web 30 years ago. One of the best decisions I ever made.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;See also the &lt;a href=&quot;https://deshittify.us/&quot; class=&quot;link-external&quot;&gt;The Disenshittify Project&lt;/a&gt;, 30 April, 2024.&lt;/p&gt;
&lt;h2 id=&quot;we-can-have-a-different-web&quot; tabindex=&quot;-1&quot;&gt;&lt;a href=&quot;https://www.citationneeded.news/we-can-have-a-different-web/&quot; class=&quot;link-external&quot;&gt;We can have a different web&lt;/a&gt; &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/08/the-case-for-a-better-web/#we-can-have-a-different-web&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By &lt;a href=&quot;https://hachyderm.io/@molly0xfff&quot; class=&quot;link-mastodon&quot;&gt;Molly White&lt;/a&gt;, 1 May, 2024.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Many yearn for the “good old days” of the web. We could have those good old days back — or something even better — and if anything, it would be easier now than it ever was.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;we-need-to-rewild-the-internet&quot; tabindex=&quot;-1&quot;&gt;&lt;a href=&quot;https://www.noemamag.com/we-need-to-rewild-the-internet/&quot; class=&quot;link-external&quot;&gt;We Need To Rewild The Internet&lt;/a&gt; &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/08/the-case-for-a-better-web/#we-need-to-rewild-the-internet&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By &lt;a href=&quot;https://hachyderm.io/@mariafarrell@mastodon.social&quot; class=&quot;link-mastodon&quot;&gt;Maria Farrel&lt;/a&gt; and &lt;a href=&quot;https://hachyderm.io/@robin@mastodon.social&quot; class=&quot;link-mastodon&quot;&gt;Robin Berjon&lt;/a&gt;, 16 April, 2024.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ecologists have reoriented their field as a “crisis discipline,” a field of study that’s not just about learning things but about saving them. We technologists need to do the same. Rewilding the internet connects and grows what people are doing across regulation, standards-setting and new ways of organizing and building infrastructure, to tell a shared story of where we want to go. It’s a shared vision with many strategies. The instruments we need to shift away from extractive technological monocultures are at hand or ready to be built.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;a-manifesto-for-small%2C-static%2C-web-apps&quot; tabindex=&quot;-1&quot;&gt;&lt;a href=&quot;https://rosswintle.uk/2024/02/a-manifesto-for-small-static-web-apps/&quot; class=&quot;link-external&quot;&gt;A manifesto for small, static, web apps&lt;/a&gt; &lt;a class=&quot;heading-link&quot; href=&quot;https://lamaquinadeturing.su/en/2024/08/the-case-for-a-better-web/#a-manifesto-for-small%2C-static%2C-web-apps&quot;&gt;§&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By &lt;a href=&quot;https://fosstodon.org/@ross&quot; class=&quot;link-mastodon&quot;&gt;Ross Wintle&lt;/a&gt;, 17 February, 2024.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Static first/only, No login, Don’t store user data, Use the smallest JS library possible, Use web standards as much as possible, Use simple build steps that won’t break, “Done” is a goal, Zero-maintenance (and easy maintenance) is a goal, Don’t minify, Be accessible.&lt;/p&gt;
&lt;/blockquote&gt;

    </content>
  </entry>
  <entry xml:lang="es">
    <title>Esta web no utiliza cookies</title>
    <link href="https://lamaquinadeturing.su/es/2024/08/esta-web-no-utiliza-cookies/" />
    <updated>2024-08-14T17:00:00Z</updated>
    <id>https://lamaquinadeturing.su/es/2024/08/esta-web-no-utiliza-cookies/</id>
    <content type="html">
      &lt;p&gt;&lt;img src=&quot;https://lamaquinadeturing.su/assets/media/questioning-moon_opt1200.jpg&quot; alt=&quot;&amp;quot;A l&amp;#39;Horizon, l&amp;#39;Ange des Certitudes, et Dans le Ciel Sombre un Regard Interrogateur&amp;quot; en &amp;quot;À Edgar Alan Poe&amp;quot;, cuarta placa, por Odilon Redon (1882).&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Este sitio web no utiliza cookies.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No recoge tus datos para mejorar su experiencia de navegación, ni sirve anuncios personalizados ni analiza tu tráfico.&lt;/p&gt;
&lt;p&gt;No tienes que consentir a nada para una experiencia de navegación óptima.&lt;/p&gt;
&lt;p&gt;No tienes que configurar tus opciones de privacidad a través de una lista de centenares de socios.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Este sitio web no sabe si estás utilizando un bloqueador de anuncios.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Este sitio web no depende de la publicidad, por lo tanto, no desactives el bloqueo de anuncios. Si lo tienes, no dudes en habilitarlo.&lt;/p&gt;
&lt;p&gt;Si no tienes un bloqueador de anuncios, te recomiendo que instales uno. Si tu navegador no lo admite, considera cambiar a un navegador diferente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Este sitio web no tiene una versión sin anuncios de pago.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No tienes que elegir entre una suscripción de pago o consentir que centenares de intermediarios de datos rastreen y vendan tus datos personales.&lt;/p&gt;
&lt;p&gt;Otros sitios web requieren una suscripción para acceder a su contenido, lo cual está bien. Pero esto es diferente al modelo de &amp;quot;pagar o consentir&amp;quot;.&lt;/p&gt;

    </content>
  </entry>
  <entry xml:lang="en">
    <title>This website does not use cookies</title>
    <link href="https://lamaquinadeturing.su/en/2024/08/this-website-does-not-use-cookies/" />
    <updated>2024-08-14T17:00:00Z</updated>
    <id>https://lamaquinadeturing.su/en/2024/08/this-website-does-not-use-cookies/</id>
    <content type="html">
      &lt;p&gt;&lt;img src=&quot;https://lamaquinadeturing.su/assets/media/questioning-moon_opt1200.jpg&quot; alt=&quot;&amp;quot;A l&amp;#39;Horizon, l&amp;#39;Ange des Certitudes, et Dans le Ciel Sombre un Regard Interrogateur&amp;quot; from &amp;quot;À Edgar Alan Poe&amp;quot;, plate four, by Odilon Redon (1882).&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;This website does not use cookies.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It does not collect your data to enhance your browsing experience, nor serve personalized ads or analyze your traffic.&lt;/p&gt;
&lt;p&gt;You do not have to consent to anything for an optimal browsing experience.&lt;/p&gt;
&lt;p&gt;You do not have to configure your privacy settings over a list of hundreds of partners.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This website does not know if you are using an ad blocker.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This website does not rely on advertising, so please do not disable your ad blocker. If you have it, feel free to enable it.&lt;/p&gt;
&lt;p&gt;If you do not have an ad blocker, I recommend you to install one. If your browser does not support it, consider switching to a different browser.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This website does not have a paid ad-free version.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You do not have to choose between a paid subscription or consenting to hundreds of data brokers tracking and selling your personal data.&lt;/p&gt;
&lt;p&gt;Some other websites require a subscription to access their content, which is fine. But that is different than the &amp;quot;pay or consent&amp;quot; model.&lt;/p&gt;

    </content>
  </entry>
  <entry xml:lang="ca">
    <title>Aquest lloc web no utilitza galetes</title>
    <link href="https://lamaquinadeturing.su/ca/2024/08/aquest-lloc-web-no-utilitza-galetes/" />
    <updated>2024-08-14T17:00:00Z</updated>
    <id>https://lamaquinadeturing.su/ca/2024/08/aquest-lloc-web-no-utilitza-galetes/</id>
    <content type="html">
      &lt;p&gt;&lt;img src=&quot;https://lamaquinadeturing.su/assets/media/questioning-moon_opt1200.jpg&quot; alt=&quot;&amp;quot;A l&amp;#39;Horizon, l&amp;#39;Ange des Certitudes, et Dans le Ciel Sombre un Regard Interrogateur&amp;quot; a &amp;quot;À Edgar Alan Poe&amp;quot;, quarta placa, per Odilon Redon (1882).&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Aquest lloc web no utilitza galetes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No recull les teves dades per millorar la teva experiència de navegació, ni serveix anuncis personalitzats ni analitza el teu trànsit.&lt;/p&gt;
&lt;p&gt;No has de consentir a res per a una experiència de navegació òptima.&lt;/p&gt;
&lt;p&gt;No has de configurar la teva configuració de privacitat a través d&#39;una llista de centenars de socis.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aquest lloc web no sap si estàs utilitzant un bloquejador d&#39;anuncis.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Aquest lloc web no depèn de la publicitat, per tant, no desactivis el bloqueig d&#39;anuncis. Si en tens un, no dubtis a habilitar-lo.&lt;/p&gt;
&lt;p&gt;Si no tens un bloquejador d&#39;anuncis, et recomano que n&#39;instal·lis un. Si el teu navegador no ho admet, considera canviar a un navegador diferent.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aquest lloc web no té una versió sense anuncis de pagament.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No has de triar entre una subscripció de pagament o consentir que centenars d&#39;intermediaris de dades rastregin i venguin les teves dades personals.&lt;/p&gt;
&lt;p&gt;Altres llocs web requereixen una subscripció per accedir al seu contingut, la qual cosa està bé. Però això és diferent del model de &amp;quot;pagar o consentir&amp;quot;.&lt;/p&gt;

    </content>
  </entry>
</feed>