<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Functionally Imperative]]></title><description><![CDATA[A newsletter about creativity and autotelic pursuits.]]></description><link>https://functionallyimperative.com</link><image><url>https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png</url><title>Functionally Imperative</title><link>https://functionallyimperative.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 19 Apr 2026 19:26:18 GMT</lastBuildDate><atom:link href="https://functionallyimperative.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Nathan Toups]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[funcimp@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[funcimp@substack.com]]></itunes:email><itunes:name><![CDATA[Nathan Toups]]></itunes:name></itunes:owner><itunes:author><![CDATA[Nathan Toups]]></itunes:author><googleplay:owner><![CDATA[funcimp@substack.com]]></googleplay:owner><googleplay:email><![CDATA[funcimp@substack.com]]></googleplay:email><googleplay:author><![CDATA[Nathan Toups]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Some Thoughts on the Shortcomings of Stoicism.]]></title><description><![CDATA[In September of 2024, I stepped back from writing weekly to clear my mind.]]></description><link>https://functionallyimperative.com/p/some-thoughts-on-the-shortcomings</link><guid isPermaLink="false">https://functionallyimperative.com/p/some-thoughts-on-the-shortcomings</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Sun, 22 Jun 2025 02:21:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In September of 2024, I stepped back from writing weekly to clear my mind. It was the right move, and I&#8217;m glad to be back writing again. Writing is a form of meditation for me. I don&#8217;t feel I&#8217;m an exceptionally gifted writer, but I enjoy it, and spending more time working on things I enjoy is deeply important to me. I&#8217;ve found that whenever I&#8217;ve gotten into a rut in life, I&#8217;m out of alignment with intrinsically working on things I enjoy. It might seem selfish, but I don&#8217;t think it is possible to be our best selves without deeply engaging in that sense of play, curiosity, and joy that comes from autotelic pursuits. I don&#8217;t think it&#8217;s our purpose to lord over others and force behaviors. Instead, if we truly live in accordance with our values, the world would be a better place. Imagine if we could fill our days working on what deeply interested us without worrying about&nbsp;<strong>getting ahead</strong>&nbsp;or upward mobility. In <a href="https://en.wikipedia.org/wiki/Epicureanism">Epicurean philosophy</a>, this is known as <a href="https://en.wikipedia.org/wiki/Ataraxia">ataraxia</a>, or the <a href="https://en.wiktionary.org/wiki/katastematic">katastematic</a> pleasure of the mind. I&#8217;ve also written about this based on <a href="https://en.wikipedia.org/wiki/Mihaly_Csikszentmihalyi">Mihaly Csikszentmihalyi</a>&#8217;s work on <a href="https://en.wikipedia.org/wiki/Autotelic">autotelic</a> pursuits. </p><p>I know that studying the stoics is quite the topic these days, and while stoic thought is worth exploring, I think it misses two significant points: </p><ul><li><p>The pursuit of Stoic ideals doesn&#8217;t ever deal with the systemic dysfunction they came out of. </p></li><li><p>Stoicism seems to lack an appreciation for play and joy for its own sake.</p><p></p></li></ul><p>On the first point. I think stoicism overemphasizes inner virtual and resilience at the expense of understanding one&#8217;s place in the larger social structure. Imagine you are a soldier who must be brave in battle, fighting for your country and putting the good of others before yourself. Stoicism is a fantastic framework for honor, valor, and overcoming adversity. Still, it does a terrible job of asking the deeper question of &#8220;Should I be participating in this in the first place?&#8221; Stoicism doesn&#8217;t ask the soldier to question, &#8220;Is this war justified?&#8221; or &#8220;Why are we fighting in the first place?&#8221; Instead, it is a framework meant to provide guidance within a system accepted largely without question. <a href="https://en.wikipedia.org/wiki/Marcus_Aurelius">Marcus Areleas </a>is a thoughtful writer in his writing in <a href="https://www.amazon.com/Meditations-Marcus-Aurelius/dp/1503280462">Meditations</a>, yet he was still an emperor, utterly reliant on the Roman Empire&#8217;s force and coercion to maintain his power. By contrast, Epicurus discouraged political involvement <strong>because</strong> seeking power separates us from our more authentic, more joyful selves. Epicureans largely withdrew from the larger society to form small communities of shared values called &#8220;gardens&#8221; where folks could support one another in an environment of trust and respect. The types of folks who seek out the highest levels of power seem to be deeply unhappy to me (if they were happy, would they need to seek power?). Stoicism does a fantastic job of framing honor and valor, but it does a terrible job of questioning whether someone should be involved in the first place.</p><p>On the second point,&nbsp;<a href="https://en.wikipedia.org/wiki/Emma_Goldman">Emma Goldman</a>&nbsp;said it best: &#8220;If I can't dance, I don't want to be part of your revolution.&#8221; In Stoicism, pleasure and play are treated as &#8220;indifferents,&#8221; things not central to a meaningful life. In Epicurean thought, maximizing&nbsp;<a href="https://en.wikipedia.org/wiki/Ataraxia">ataraxia</a> and minimizing pain is our highest goal. In doing so, each of us lives our best lives so that we can love and support those around us.&nbsp;What I find so powerful about living in alignment with these values is that it forces these more profound questions. </p><p>I&#8217;ve been researching both <a href="https://en.wikipedia.org/wiki/Epicureanism">Epicurean philosophy</a> and <a href="https://en.wikipedia.org/wiki/Metamodernism">Metamodernism</a> in my spare time, so you&#8217;ll be seeing more on the topic as I learn and grow in my knowledge.  If you are interested, I recently had <a href="https://www.youtube.com/watch?v=Smu6ydkEyug">a fun conversation with Robert Kelley on the subject </a> of metamodernism, which still has my mind turning. </p><p>I&#8217;m not sure I&#8217;m ready to commit to writing weekly again (just yet), but you should expect to see more stuff on this substack as I grow and learn in public.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Long-term Free thinking is more important than short-term correctness.]]></title><description><![CDATA[Being correct is boring.]]></description><link>https://functionallyimperative.com/p/long-term-free-thinking-is-more-important</link><guid isPermaLink="false">https://functionallyimperative.com/p/long-term-free-thinking-is-more-important</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Sat, 31 May 2025 03:27:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Being correct is boring. <br>Being correct is safe.<br>Being correct misses the point.<br><br>It is only possible to find new paradigms of correctness through free thought, unencumbered by pre-optimization of correctness.</p><p>It might be alluring to obsess over correctness, but obsessing over correctness is short-sighted. Your correctness is correct until it&#8217;s not, at which point you are now incorrect, which defeats the purpose of trying to be correct in the first place. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>If your short-term motivation is to maintain correctness, you will miss out on more&nbsp;<em>interesting<strong>&nbsp;</strong></em>forms of correctness later.</p><p>Free thinking allows one to explore the domain of thought that may or may not be correct, acknowledging that your assumptions about what you feel is correct might be wrong. Free-thinking is living comfortably in a <a href="https://scienceexchange.caltech.edu/topics/quantum-science-explained/quantum-superposition">superposition</a> of thoughts in which <em>correctness</em> may <a href="https://en.wikipedia.org/wiki/Wave_function_collapse">collapse from the wave function</a>. Free thinking is about permitting yourself to say, &#8220;I don&#8217;t know, yet,&#8221; and even be presumptuous enough to say, &#8220;I don&#8217;t think others know either; I think we still need to work on this idea a bit more before we can know.&#8221;</p><p>This is important because, throughout history, we&#8217;ve seen that radical thinkers are the ones who help us break out of old, comfortable, and &#8220;correct&#8221; ways of thinking that turn out to be incorrect.</p><p>One of my favorite examples of this is that Ancient astronomy (and astrology) was remarkably accurate in predicting celestial events. The movements of the planets, solar and lunar eclipses, the calendar, and more. And yet, none of these fantastic achievements, in their complex algorithms, understood the more profound truth of a <a href="https://en.wikipedia.org/wiki/Heliocentrism">heliocentric solar system</a>. Heliocentric and&nbsp;<a href="https://en.wikipedia.org/wiki/Geocentric_model">geocentric</a>&nbsp;models created algorithms that predicted outcomes, but only the heliocentric view led to a more valuable generalization for the observable universe. </p><p>Sometimes, wild ideas end up leading to endless cascading realizations:</p><ul><li><p>What if our sun were just another star? led to&#8230;</p></li><li><p>What if our solar system is just another solar system? led to&#8230;</p></li><li><p>What if our galaxy is just another galaxy? led to&#8230;</p></li><li><p>What if our universe is just another universe? &#8230;and on and on</p></li></ul><p>What is essential is that all of these thoughts are allowed to <strong>dance on the edge of delusion</strong>. Many of our free-thinking thoughts will never be correct, they will be wildly wrong, and they will never lead us to more profound truths, but only by allowing free thinking to flourish can we discover new perspectives about the universe that break us out of our shared delusion of correctness. </p><p>We aren&#8217;t rational beings; we are rationalizers. When we teach kids about the solar system, they &#8220;get it&#8221; so young, while the scientific and religious establishments of the time vehemently resisted such notions as dangerous and misguided.</p><p>How many ideas are perceived that way today but will eventually become &#8220;obviously true&#8221; later? How many ideas are accepted as truth but will be remembered as dangerously archaic?</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Metamodernism, Play, and Growth | A Conversation with Robert Kelley]]></title><description><![CDATA[The Functionally Imperative Podcast is dedicated to exploring play, creativity, and autotelic pursuits.]]></description><link>https://functionallyimperative.com/p/metamodernism-play-and-growth-a-conversation</link><guid isPermaLink="false">https://functionallyimperative.com/p/metamodernism-play-and-growth-a-conversation</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Mon, 28 Apr 2025 03:23:15 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/162300081/c59a06c060a92fc5c58bd10a788605af.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>The Functionally Imperative Podcast is dedicated to exploring play, creativity, and autotelic pursuits. </p><p>In this episode, I sit down with Robert Kelley Ayala on the Functionally Imperative Podcast to explore the emerging philosophical system of metamodernism. This episode navigates through various topics such as societal challenges, personal growth, the intricacies of modernism and postmodernism, and how to engage in a polarized world. Robert elaborates on metamodernism's foundations, its oscillation between opposing viewpoints, and its relevance to today's societal and individual development stages. Tune in for a deep dive into thought-provoking discussions around the evolution of society and individual self-determination. <br><br><br>You should also check out Robert's Substack: </p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:1198298,&quot;name&quot;:&quot;Meowchiavelli&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13de6d5c-6d2c-4bfa-909c-e0b85f2911fd_1200x1200.png&quot;,&quot;base_url&quot;:&quot;https://meowchiavelli.substack.com&quot;,&quot;hero_text&quot;:&quot;Dirty tricks for doing good&quot;,&quot;author_name&quot;:&quot;Robert Kelley Ayala&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:null,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://meowchiavelli.substack.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!foTk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13de6d5c-6d2c-4bfa-909c-e0b85f2911fd_1200x1200.png" width="56" height="56"><span class="embedded-publication-name">Meowchiavelli</span><div class="embedded-publication-hero-text">Dirty tricks for doing good</div><div class="embedded-publication-author-name">By Robert Kelley Ayala</div></a><form class="embedded-publication-subscribe" method="GET" action="https://meowchiavelli.substack.com/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div><p>Nathan's Substack: </p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:398203,&quot;name&quot;:&quot;Functionally Imperative&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png&quot;,&quot;base_url&quot;:&quot;https://functionallyimperative.com&quot;,&quot;hero_text&quot;:&quot;A newsletter about creativity and autotelic pursuits.&quot;,&quot;author_name&quot;:&quot;Nathan Toups&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:&quot;#090121&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://functionallyimperative.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!0JRv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" width="56" height="56" style="background-color: rgb(9, 1, 33);"><span class="embedded-publication-name">Functionally Imperative</span><div class="embedded-publication-hero-text">A newsletter about creativity and autotelic pursuits.</div><div class="embedded-publication-author-name">By Nathan Toups</div></a><form class="embedded-publication-subscribe" method="GET" action="https://functionallyimperative.com/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div><p>And check out my other podcast, Book Overflow, where I discusses software engineer books and occasionally interviews the authors  <a href="https://www.youtube.com/@BookOverflowPod">&#8234;@BookOverflowPod&#8236;</a> </p><p>-------- </p><p>00:00 Introduction to Growth and Change <br>00:34 Welcome to the Functionally Imperative Podcast <br>00:37 Introducing Metamodernism with Robert Kelley <br>02:54 Diving into Metamodernism <br>09:32 Phases of Personal and Societal Development <br>14:12 The Role of Metamodernism in Society <br>19:37 Political Polarization and Metamodernism <br>29:02 Personal Reflections and Global Perspectives <br>37:10 The Concept of Humanity Bath <br>46:37 Embracing Play and Openness <br>53:11 Seagulls from Another Dimension <br>54:05 The Playful Dolphin Concept <br>54:17 Claude Shannon: The Father of Information Theory <br>56:42 The Absurd Machine and Playfulness <br>57:27 The Importance of Play in Life <br>58:27 The Fascinating Behavior of Cats <br>01:01:22 Toxoplasmosis and Human Behavior <br>01:05:05 The Role of Viruses in Human Evolution <br>01:08:32 Metamodernism and Organizational Psychology <br>01:10:29 The Complexity of Human Relationships <br>01:11:40 The Dangers of Purity Tests <br>01:25:05 The Need for Free Speech and Understanding <br>01:39:39 The Future of Metamodern Consulting <br>01:43:18 Conclusion and Final Thoughts</p>]]></content:encoded></item><item><title><![CDATA[Slowing things down.]]></title><description><![CDATA[I have big plans for Functionally Imperative, but to pull them off, I&#8217;ve decided to slow things down to reach my goals.]]></description><link>https://functionallyimperative.com/p/slowing-things-down</link><guid isPermaLink="false">https://functionallyimperative.com/p/slowing-things-down</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Fri, 13 Sep 2024 19:28:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have big plans for Functionally Imperative, but to pull them off, I&#8217;ve decided to slow things down to reach my goals. That might sound counterintuitive, but stick with me. I&#8217;m making some changes here.</p><p>Sixteen months ago, I committed to <a href="https://functionallyimperative.com/p/new-rule-commit-to-posting-weekly?utm_source=publication-search">posting weekly (or donate to the Flat Earth Society)</a>. Seventy-one weekly posts later, I&#8217;m bringing this commitment to a close. I initially challenged myself to start producing creative output on a regular cadence because, before that, I just kept putting it off. I&#8217;ve accomplished my goal here. Not only have I not missed a week, but I now have a new weekly project, <a href="https://www.youtube.com/@bookoverflowpod">Book Overflow</a>.</p><p>What is inspiring this change? Why now? A few reasons. First, I&#8217;ve been reading <a href="https://calnewport.com/">Cal Newport</a>&#8217;s phenomenal book <a href="https://www.amazon.com/Slow-Productivity-Accomplishment-Without-Burnout/dp/B0CB96H3M4">Slow Productivity</a>.  In the book, he advocates three core principles:</p><blockquote><ol><li><p>Do fewer things.</p></li><li><p>Work at a natural pace.</p></li><li><p>Obsess over quality</p></li></ol></blockquote><p>To reach my goals for Functionally Imperative, I&#8217;ll be changing up how I engage here and on my <a href="https://www.youtube.com/@funcimp">YouTube channel</a>. I&#8217;ll continue developing FuncImp to explore the relationship between play, creativity, and <a href="https://functionallyimperative.com/p/autotelic-pursuits?utm_source=publication-search">autotelic pursuits</a>. The new focus I&#8217;ll be introducing allows me to dive into topics deeper, interview more amazing people, and take my time to build out my work in a way focused on quality over quantity. </p><p>My first step is to &#8220;do fewer things,&#8221; and while I deeply enjoy writing, removing the weekly commitment to ship both this newsletter and Book Overflow will allow me to spend my time playing and exploring my work at a more natural pace while obsessing over quality for FuncImp. </p><p>So, if you see less frequent posts here, don&#8217;t worry; not a penny has gone to the Flat Earth Society. Instead, I&#8217;m setting my goals higher and slowing down a bit to give more room to grow.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h2>Links this week</h2><ul><li><p><a href="https://www.youtube.com/watch?v=9e8k6Kq-658">Adrienne Braganza (author) Reflects on "Looks Good To Me"</a> (Book Overflow)</p></li><li><p>We wrapped up our <a href="http://youtube.com/watch?v=6APf5GBA2co">discussion of Looks Good To Me </a> (Book Overflow)</p></li><li><p><a href="https://www.youtube.com/watch?v=utdDB10usZg">David Graeber discussing 5 types of bullshit jobs</a> (classic that I&#8217;d seen years ago but rewatched this week)</p></li><li><p>Solid AIA interview: <a href="https://www.youtube.com/watch?v=o6X_uSFAD_A">Why I'm an anarchist | Sophie Scott-Brown</a></p></li><li><p>In 2004 I stumbled across a HALCALI album randomly in a Japanese record shop. I&#8217;ve been a fan ever since. I recently showed <a href="https://www.youtube.com/watch?v=e6uHEsa41aI">GiriGiri Surf Rider</a> to my 9-year-old </p></li></ul><p></p>]]></content:encoded></item><item><title><![CDATA[What if the universe is pseudo-random?]]></title><description><![CDATA[True Randomness in the universe is widely accepted in physics, and understandably so.]]></description><link>https://functionallyimperative.com/p/what-if-the-universe-is-pseudo-random</link><guid isPermaLink="false">https://functionallyimperative.com/p/what-if-the-universe-is-pseudo-random</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Fri, 06 Sep 2024 11:55:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pykl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pykl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pykl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png 424w, https://substackcdn.com/image/fetch/$s_!pykl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png 848w, https://substackcdn.com/image/fetch/$s_!pykl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png 1272w, https://substackcdn.com/image/fetch/$s_!pykl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pykl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png" width="1456" height="556" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:556,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1798388,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pykl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png 424w, https://substackcdn.com/image/fetch/$s_!pykl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png 848w, https://substackcdn.com/image/fetch/$s_!pykl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png 1272w, https://substackcdn.com/image/fetch/$s_!pykl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fdbcb9a-0068-4c62-809e-ab8ba80f727f_1572x600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>True Randomness in the universe is widely accepted in physics, and understandably so. In Quantum mechanics, <a href="https://en.wikipedia.org/wiki/Wave_function">the wave function</a> is thought to be fundamentally probabilistic (meaning the outcome of a wave function collapse is unknowable before it happens), leading many to conclude that the universe is fundamentally probabilistic and non-deterministic. This may be how the universe behaves, but what if that is wrong? What if true randomness is a cleverly hidden illusion? </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://functionallyimperative.com/subscribe?"><span>Subscribe now</span></a></p><h2>Computers and pseudo-randomness</h2><p>Computers are deterministic machines. Given a set of fixed inputs and an algorithm, a computer will generate the same outputs. But what about random number generation? Aren&#8217;t random numbers used all the time for everything from video games to secure bank transactions? The trick is that computers are incapable of generating true randomness. Instead, we use <a href="https://en.wikipedia.org/wiki/Pseudorandom_number_generator">pseudo-random number generators (PRNG)</a> to give us sufficiently random-looking data. In statistics, PRNGs are commonly fed a known seed, which is a starting number that will provide deterministic random-looking data (the same &#8220;random&#8221; data will be generated every time). This allows for computer models that require random data to operate in a testable way while still holding the properties required for random inputs.</p><p>In more security-focused applications of PRNGs, we have what are known as Cryptographically Secure PRNG (CSPRNG), which are known to be good if the output of a CSPRNG and &#8220;true randomness&#8221; are indistinguishable to an observer. These CSPRNGs also have another feature: they are one-way functions, meaning that given a known output, you cannot find the hidden input (the seed). This is known as &#8220;one way&#8221; because, given a seed and the PRNG algorithm, one can quickly generate the output. However, going the reverse direction from output to known input is impossible (the data can only flow one way). What is unique about CSPRNG and other secure PRNGs is that how the seed is derived is hidden from the user. These tools use sources of entropy to feed the CSPRNG data in a way that is not reproducible to an outside observer. The thing is, though, if you <strong>did</strong> have a way of understanding how the hidden variables were generated, you could generate the output data in a deterministic way.   </p><h2>Bell&#8217;s Theorem, Non-locality, and Bohmian Mechanics</h2><p>In 1935, Einstein, Podlsky, and Rosen wrote a paper later known as the <a href="https://en.wikipedia.org/wiki/Einstein%E2%80%93Podolsky%E2%80%93Rosen_paradox">EPR Paradox</a>. This paper hypothesized that instead of a probabilistic universe, there must be &#8220;local hidden variables,&#8221; that is, variables unknown to the observer that pre-determine the outcomes. Namely, this was meant to address the behavior of &#8220;spooky action at a distance.&#8221; The Spooky action is that if two particles are entangled, acting on one particle has an instantaneous effect on the other particle outside of the causal speed limit of the universe (the speed of light). They argued that there must be some hidden &#8220;locality&#8221; that reconciles this spooky action. While the EPR paper was necessary in pointing out issues in the bounds of quantum mechanics, it was incorrect.</p><p>In 1965, John Bell formulated <a href="https://en.wikipedia.org/wiki/Bell%27s_theorem">Bell&#8217;s Theorem</a> (also known as Bell inequality), a way of addressing the question of whether hidden variables, as proposed by the EPR Paradox, exist. What is fascinating is that Bell&#8217;s Theorem was eventually able to be tested in the lab and proved that <strong>local hidden variables</strong> do not explain spooky action at a distance. How this was interpreted varied widely, and this was seemingly a big win for the probabilistic universe camp. Maybe particles do live in a &#8220;superposition&#8221; until &#8220;observed,&#8221; and the wave function collapses in an unknowable and random way. But maybe EPR was only partially wrong. Maybe there are hidden variables, but they aren&#8217;t <strong>local.</strong></p><p>In physics, the locality is the principle that things are only influenced by other things in their surroundings. Locality is bound by the &#8220;causal limit&#8221; of transmitting information (the speed of light). A unit of information transmitted from one particle to another relies on the causal limits of locality to interact with one another. But Bell&#8217;s Theorem proved that particles can (and do) interact non-locally, meaning they interact outside the bounds of the speed of light. The wave function collapse of one entangled particle instantaneously impacts the wave function collapse of another, regardless of distance. Some odd and exciting models could still hold for deterministic behavior: <a href="https://en.wikipedia.org/wiki/Hidden-variable_theory">non-local hidden variables</a> and <a href="https://en.wikipedia.org/wiki/De_Broglie%E2%80%93Bohm_theory">bohmian mechanics</a>. </p><p>I love the idea of Bohmian mechanics, also known as<a href="https://en.wikipedia.org/wiki/Pilot_wave_theory"> pilot wave theory</a>. What I love about this theory is that it preserves discrete particles and velocities, but they are guided by a &#8220;pilot wave&#8221; that evolves according to quantum mechanics. It relies on non-local hidden variables to reconcile these characteristics and it leads us all the way back to the beginning here: a Bohmian universe is fundamentally deterministic but functionally probabilistic due to the nature of non-local hidden variables.</p><p>Does that remind you of anything? It sounds an awful lot like the CSPRNG using a hidden seed and source of entropy. What if our universe is one big one-way function and randomness isn&#8217;t really <strong>truly random</strong> but <strong>pseudo-random</strong> based on a set of non-local hidden variables and initial conditions hidden from those living inside of the universe?</p><p>Now, let&#8217;s loop this back to our definition of a CSPRNG. If True randomness is an illusion and instead a cleverly hidden Universal PRNG function itself, then our definition of a CSPRNG should be modified. The output of a CSPRNG is indistinguishable from the Universal PRNG to an outside observer. </p><p>Given a set of initial conditions, existence may be deterministic but functionally probabilistic due to the unknowable state of its hidden variables. Maybe, just maybe, we live in a Cryptographically Secure Pseudo-Random number generated universe.</p><p>But, of course, that begs the question: where did the seed come from? That&#8217;s the topic for another day, but Roger Penrose&#8217;s concept of an Aeon in <a href="https://en.wikipedia.org/wiki/Conformal_cyclic_cosmology">Conformal Cyclic Cosmology</a> offers a pretty compelling seed if you ask me.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h2>Notable Links</h2><ul><li><p><a href="https://www.youtube.com/watch?v=Aw7_CBczUD4">We interviewed Stephen Wolfram</a> about ChatGPT (Book Overflow)</p></li><li><p><a href="https://www.youtube.com/watch?v=8B4_hl2dcow">LGTM book discussion</a> (Book Overflow)</p></li><li><p>You might (not) be crazy; <a href="https://futurism.com/the-byte/facebook-partner-phones-listening-microphone?">your phone (maybe) was listening to you</a> for ads</p></li><li><p>How am I just learning about<a href="https://www.youtube.com/watch?v=OHLR58u0IQc&amp;t=455s"> racer trash</a>?</p></li><li><p><a href="https://www.youtube.com/watch?v=KWWBeaqdBas">If System of a Down wrote Wannabe by the Spice Girls</a></p></li><li><p><a href="https://www.youtube.com/watch?v=08IZ0Op4s70">Cinamastix on the aesthetics of the &#8220;sunlight horror&#8221; film Midsommar</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[TIL Conventional Comments]]></title><description><![CDATA[I love it when I find things that seem obvious after discovering them, but I had no idea they existed before.]]></description><link>https://functionallyimperative.com/p/til-conventional-comments</link><guid isPermaLink="false">https://functionallyimperative.com/p/til-conventional-comments</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Sat, 31 Aug 2024 03:53:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I love it when I find things that seem obvious after discovering them, but I had no idea they existed before. I&#8217;ve been reading <a href="https://www.manning.com/books/looks-good-to-me">Looks Good To Me</a> by Adrienne Braganza. Looks Good To Me is often abbreviated LGTM and is used as short-hand in the code review process when one programmer is reviewing the code of another before that code is <strong>accepted</strong> into a code base. This is meant to be part of a system of checks and balances to ensure code quality.</p><p>Software changes constantly; change is the norm in software development. When a programmer changes the code, it is checked into a <a href="https://en.wikipedia.org/wiki/Version_control">version control system</a>, such as <a href="https://en.wikipedia.org/wiki/Git">git</a>, so that changes can be tracked over time. To ensure that the changes are those reviewed by other programmers, the programmer first makes a branch of the code they want to change, then makes their updates, and then creates a <a href="https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests">pull request</a> to be reviewed by others. Unlike auto-save on most consumer software, programmers choose when to <strong>commit</strong> their code. You can think of committing as a snapshot of your saved files in time. When you commit this code, you also write a commit message. This can technically be anything, but many folks (self-included) prefer structured commit messages called <a href="https://www.conventionalcommits.org/en/v1.0.0/">conventional commits</a>. </p><p>Conventional Commits are &#8220;a specification for adding human and machine-readable meaning to commit messages.&#8221; What is nice about these is that they remove ambiguity from the commit message and have the added benefit of being machine-readable, so you can even use programs that read the commits and help perform actions or generate reports.</p><p>In Looks Good To Me, I discovered a standard called <a href="https://conventionalcomments.org/">Conventional Comments</a> meant to help standardize writing meaningful and easy-to-understand comments in a code review process. Influenced by <a href="https://www.conventionalcommits.org/">Conventional Commits</a> and the <a href="https://github.com/google/eng-practices/blob/57c895ad4b09c8941288c04e44a08797b76b4d4d/review/reviewer/standard.md#mentoring">Google Engineering Practices</a> guide, this extends two great ideas into something that makes a standard process (code reviews) more direct and well-structured by extending an existing convention into a new domain. </p><p>It&#8217;s a beautiful idea in its simplicity, and I can&#8217;t wait to start using it in my code reviews.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Links this Week</h2><ul><li><p><a href="https://www.youtube.com/watch?v=atwwf0qWpYg">Discussion of Building Evolutionary Architectures (part 2)</a> is out </p></li><li><p>Carl Brown of <a href="https://www.youtube.com/@InternetOfBugs">Internet of Bugs</a> shares <a href="https://www.youtube.com/watch?v=GL0EE_cv9T0">his favorite books on Book Overflow</a></p></li><li><p><a href="http://outube.com/watch?v=g2TvVEr1ya4">Popcat vs Vibe Cat</a>, if you know, you know </p></li><li><p><a href="https://www.youtube.com/watch?v=F2y92obnsc0">Can you tune a Fish?</a> turns out you can.</p></li><li><p><a href="https://www.youtube.com/watch?v=u4ecB57jFhI">Shrimp Quartet</a>. Oh, internet.</p></li><li><p>The NSA released <a href="https://www.youtube.com/watch?v=si9iqF5uTFk">a two part video lecture by Grace Hopper</a>. Must watch.</p></li></ul><p></p>]]></content:encoded></item><item><title><![CDATA[Conway's Law]]></title><description><![CDATA[Organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.]]></description><link>https://functionallyimperative.com/p/conways-law</link><guid isPermaLink="false">https://functionallyimperative.com/p/conways-law</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Sat, 24 Aug 2024 04:30:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dYo_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dYo_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dYo_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!dYo_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!dYo_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!dYo_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dYo_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp" width="440" height="440" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:440,&quot;bytes&quot;:489380,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dYo_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!dYo_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!dYo_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!dYo_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01698f99-7c3b-42bb-baa8-051886cf6e2e_1024x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>Organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.</p><p>&#8212;&#8202;Melvin E. Conway, How Do Committees Invent?</p></blockquote><p>Making impactful change is hard. Since January, I&#8217;ve been working on a project to improve our software reliability and delivery. Despite our efforts, my team hit roadblock after roadblock along the way. It&#8217;s been a humbling experience. Despite all our efforts, we were at a loss as to why we&#8217;d be struggling so much until I discovered Conway&#8217;s Law. </p><p>In June, I came across the idea while reading <a href="https://www.amazon.com/Fundamentals-Software-Architecture-Engineering-Approach/dp/B08X8H15BW">Fundamentals of Software Architecture</a> for <a href="https://www.youtube.com/@BookOverflowPod">Book Overflow</a> (we discussed the book and spoke to both authors; <a href="https://www.youtube.com/watch?v=ccwodldIaXU&amp;list=PL0QgKDBEHsh_yHMy_mx5HoQy1p7jMdnPz">you can check that out here</a>). Put another way, Peter Drucker said, &#8220;Culture eats strategy for breakfast&#8221;. </p><p>If you want to make an effective organizational change and are struggling, look at the communication structure and the culture. If you try to fight against this, you&#8217;ll hit significant <strong>friction</strong>, as I experienced this year. Thoughtworks introduced the idea of the <a href="https://www.thoughtworks.com/radar/techniques/inverse-conway-maneuver">Inverse Conway Maneuver</a> to address this. It&#8217;s a framework for building low-risk experiments and autonomous teams that are empowered to make changes in an org while sidestepping the constraints of the existing communication structures. </p><p>This reframing of our initiatives through the lens of Conway&#8217;s Law and the Inverse Conway Maneuver has fundamentally changed how effective my team has become. Now, we&#8217;ve been able to start shipping real value in a way that wasn&#8217;t possible before. If you&#8217;ve been struggling with making an impact, I&#8217;d recommend taking a step back, introspecting, and trying this strategy. It made all the difference for us.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h2>Interesting Links this week</h2><ul><li><p><a href="https://www.youtube.com/watch?v=0W8oMv9FCwg&amp;t=51s">We Discuss Building Evolutionary Architectures </a> (this book also covers Conway&#8217;s Law)</p></li><li><p><a href="https://www.youtube.com/watch?v=kJs9pVy94jM">We Interviewed Scott Tolinski of Syntax Podcast on his favorite books</a> (this was a lot of fun and I hope we do more episodes like this soon)</p></li><li><p>PBS Spacetime asks &#8220;<a href="https://www.youtube.com/watch?v=yfzosycRoe4">Is gravity RANDOM Not Quantum?</a>&#8221; (I want to believe it is not quantum)</p></li><li><p><a href="https://www.youtube.com/watch?v=lktkMoh2IF4&amp;">This is an amazing performance of the Gerrudo Valley song from Ocarina of Time</a></p></li><li><p><a href="https://www.youtube.com/watch?v=Av5oRf88aso">Africa by Toto played on 3DS Majora's Mask</a> </p></li></ul><p>  </p>]]></content:encoded></item><item><title><![CDATA[The Transformational Power of Weak Connascence (Part 1)]]></title><description><![CDATA[I hope you enjoy the post this week.]]></description><link>https://functionallyimperative.com/p/the-transformational-power-of-weak</link><guid isPermaLink="false">https://functionallyimperative.com/p/the-transformational-power-of-weak</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Sat, 17 Aug 2024 05:16:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I hope you enjoy the post this week. I&#8217;m experimenting with storytelling, so please let me know if you like (or hate) this approach.</p><div><hr></div><blockquote><p>Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it. &#8212; <strong><a href="https://en.wikipedia.org/wiki/Alan_Perlis">Alan Perlis</a></strong></p></blockquote><p>The atmosphere on the Zoom call was filled with apprehension. The software engineering team at Acme Corp had come to dread this weekly ritual. The ambitious e-commerce platform they&#8217;d built over the years was starting to show its age. It had become a nightmare to maintain. Everyone knew fundamental improvements needed to be made, but who had the time? The team was already months behind on contractually obligated features for their customers.</p><p>The codebase has become a tangled mess over the years. What started as a straightforward application has progressively grown in complexity with years of patches and features added by different teams to accommodate unique requests by its customers. While attempts were made to modularize the system, it just made things worse. The application was somehow both a<a href="https://en.wikipedia.org/wiki/Distributed_computing"> distributed system</a> and a <a href="https://en.wikipedia.org/wiki/Monolithic_application">monolith</a>. The code was spread across many repositories, simultaneously making it difficult to reason about and, counterintuitively, <a href="https://en.wikipedia.org/wiki/Coupling_(computer_programming)">tightly coupling the system</a>. Changing the code in one repository could (and many times would) impact code in a dozen other places. This led to a brittle system in which every part seemed to be interdependent on the other.</p><p>Susan, a newly hired software engineer, looked at the proposed features for the quarter. Her usual optimism had faded. &#8220;It&#8217;s obvious that we need to update the payment processing service to meet our compliance obligations, but honestly, I&#8217;m dreading this.&#8221;</p><p>The team was well-acquainted with these challenges. They had navigated through similar situations numerous times. The sequence was all too familiar: update the payment module and the shopping cart malfunctions. Fix that, and the user authentication starts acting up due to session caching issues. It felt like a never-ending game of whack-a-mole. One issue was fixed, and three new ones emerged.</p><p>Justin, the QA lead, sighed. &#8220;Last time we touched that module, it took us weeks to iron things out, and we still missed a critical bug that went live.&#8221;</p><p>The team had tried refactoring parts of the code before, but it was like trying to untangle a knotted ball of fishing line; pulling one thread only made the knots tighter elsewhere. The dependencies were so deep and intertwined that no one felt confident making even the smallest changes.</p><p>&#8220;I&#8217;m spending more time trying to figure out what might break than actually writing code,&#8221; said Juan, a junior developer on the team. &#8220;It&#8217;s like walking through a minefield. One wrong step, and everything blows up.&#8221;</p><p>The dread spread to the others on the call. It wasn&#8217;t just a fear of introducing new bugs but the sheer mental exhaustion of dealing with an unmanageable codebase. The joy of building new and exciting technology had been replaced by the constant anxiety of what might go wrong next.</p><p>Susan knew something had to change. Things as they were were not sustainable. But the question was: how could they turn this around without burning the entire thing to the ground and starting over?</p><h2>Connascence and Complexity</h2><p>How do we even start to talk about complexity? You might have heard about the term <a href="https://en.wikipedia.org/wiki/Coupling_(computer_programming)">coupling</a> in software. Ideally, systems prefer loose coupling over tight coupling; that is, we try to reduce the amount of interdependencies on any two parts of a system so that if we need to swap out a component, it is easier to do. This becomes important in software because software must change over time, so reducing the complexity between parts will also help reduce the burden of change. But have you of <a href="https://en.wikipedia.org/wiki/Connascence">Connascence</a>? This term helps us measure how intertwined parts of your system might be.</p><blockquote><p>Two components are connascent if a change in one would require the other to be modified in order to maintain the overall correctness of the system. &#8212; Meilir Page-Jones</p></blockquote><p>Connascence is a powerful tool for reasoning about complexity. I first learned about this concept while reading <a href="https://www.amazon.com/Fundamentals-Software-Architecture-Engineering-Approach/dp/B08X8H15BW">The Fundamentals of Software Architecture by Neal Ford and Mark Richards</a>. In fact, not only did we <a href="https://youtu.be/ccwodldIaXU?si=qNejNYHPOk9B0fvS">discuss this book on Book Overflow</a>, but we were fortunate enough to interview both <a href="https://youtu.be/YJUTVJQ9eDE?si=_2xBvI1gzMH4xIu4">Neal Ford</a> and <a href="https://youtu.be/5V3Ty8Tf3t0?si=rfUcNFApFt0fICYP">Mark Richards</a> about the book. These concepts are further enforced in Neal&#8217;s book <a href="https://www.amazon.com/Building-Evolutionary-Architectures-Automated-Governance/dp/1492097543">Building Evolutionary Architectures</a>, which we&#8217;ll be discussing soon on the podcast.</p><p>The connascence ranges from weak to strong and from static to dynamic. Counterintuitively, the weaker and more static the connascence, the easier the system is to change. The stronger and more dynamic the connascence, the more complex the system is to change. An example of an ideal static and weak connascence is the Connascence of Name, in which two parts of a system only have to agree on a name to define their connection. An example of a strong and dynamic connascence would be the Connascence of Timing, in which the timing of a system binds two components, so a change in timing would affect the relationship between the two components.</p><p>When changing some code, we have many &#8220;find and replace&#8221; tools that can quickly help us with static analysis in naming, making changes bound by names trivial. Making a change to timing is complex because I&#8217;d have to have access to the runtime to make these changes.</p><p>A third consideration when considering connascence is a concept called <strong>locality</strong>. The farther two components are from one another, the weaker the connascence should be. The closer the two components are, the more acceptable a stronger connascence should be. </p><p>This also means that if we have a non-local system with strong and dynamic connascence, we can work on refactoring the system to favor using weaker and static connascence (or move some of the components closer together).</p><p>With this new design language under our belts, I think we&#8217;re ready to return to Susan and her team at Acme Corp. (but that will have to wait until next week). </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>Notables links this week</p><ul><li><p><a href="https://youtu.be/V0n2ngoU4fg?si=HDfjzII74myO_Trc">We discuss Recoding America by Jennifer Pahlka</a> (Book Overflow)</p></li><li><p><a href="https://youtu.be/vVulQqDjJX4?si=YkPotvC0I6nxepmc">Conversation with Apple Design Award Winner Devin Davies</a> (Book Overflow)</p></li><li><p><a href="https://youtu.be/MwMwzGIt5ek?si=5TuoscMcI_2noUV7">TIL: Island of Stability in the Periodic Table</a></p></li><li><p><a href="https://youtu.be/XZy3rXr2yeM?si=2aQxXVa-fuZiYrku">Finding the biggest shape in the universe</a>, a cool bit of Computer History and  Math</p></li></ul><p></p><p> </p><p></p>]]></content:encoded></item><item><title><![CDATA[Trusting your intuition. ]]></title><description><![CDATA[It&#8217;s crucial to make time for autotelic pursuits &#8212; those activities that are inherently rewarding for their own sake.]]></description><link>https://functionallyimperative.com/p/trusting-your-intuition</link><guid isPermaLink="false">https://functionallyimperative.com/p/trusting-your-intuition</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Sat, 10 Aug 2024 04:58:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s crucial to make time for <a href="https://functionallyimperative.com/p/autotelic-pursuits?utm_source=publication-search">autotelic pursuits</a> &#8212; those activities that are inherently rewarding for their own sake. It&#8217;s not always easy. Endless distractions can easily creep into our lives and derail our ability to pursue these deeply rewarding activities. But there is an antidote: mindfulness and intuition. We must be mindful of our environment and actions to identify this imbalance and acknowledge that a change must be made. We must be tuned in to our intuition to keep alignment with what truly brings us joy and contentment. </p><p>It&#8217;s so easy to endlessly doom scroll instead of reading a book recommended by a friend.</p><p>It&#8217;s so easy to binge a show on your favorite streaming service to &#8220;decompress&#8221; instead of getting engrossed in an interesting problem you are trying to solve.</p><p>If you don&#8217;t feel you have enough time to pursue the things you love, take back and assess how you are using your time. Follow your intuition on what behaviors to step away from and what behaviors to double down on. Even a small change of 15 minutes per day, making room for what brings you joy, can make all the difference in your life. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Notable Links</p><ul><li><p><a href="https://www.youtube.com/watch?v=wf68VDObVX0">Carter and I spoke with Robert Martin (Uncle Bob)</a> about his book Clean Coder</p></li><li><p><a href="https://www.youtube.com/watch?v=GQ0F1bTvB38">We wrapped up our discussion on Web Scalability for Startup Engineers</a> on Book Overflow</p></li><li><p>TIL: <a href="https://www.youtube.com/watch?v=lsI76IGNDns">why Taiwan isn&#8217;t Taiwan in the Olympics</a></p></li><li><p>I just discovered this <a href="https://www.youtube.com/watch?v=pHWum1ptOxs">NPR Tiny Desk Concert of Hotchip</a>, and its wonderful.</p></li><li><p><a href="https://www.raptitude.com/2024/08/do-quests-not-goals/">Quests over Goals </a>is a fun way of framing things.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[yada yada yada]]></title><description><![CDATA[The way we shape our stories, by including or omitting details, can completely transform their impact.]]></description><link>https://functionallyimperative.com/p/yada-yada-yada</link><guid isPermaLink="false">https://functionallyimperative.com/p/yada-yada-yada</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Fri, 02 Aug 2024 12:54:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2-OZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2-OZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2-OZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png 424w, https://substackcdn.com/image/fetch/$s_!2-OZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png 848w, https://substackcdn.com/image/fetch/$s_!2-OZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png 1272w, https://substackcdn.com/image/fetch/$s_!2-OZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2-OZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png" width="1456" height="731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:731,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4742193,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2-OZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png 424w, https://substackcdn.com/image/fetch/$s_!2-OZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png 848w, https://substackcdn.com/image/fetch/$s_!2-OZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png 1272w, https://substackcdn.com/image/fetch/$s_!2-OZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41b9771c-cd41-4658-8f15-d284c660a6ca_2582x1296.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The way we shape our stories, by including or omitting details, can completely transform their impact. In the 1997 episode of Seinfeld, &#8220;<a href="https://en.wikipedia.org/wiki/The_Yada_Yada">The Yada Yada</a>,&#8221; the character George and his girlfriend abuse the phrase &#8220;yada yada yada&#8221; to gloss over details they really don&#8217;t want to bring up in conversation. At one point, George&#8217;s girlfriend, Marcy, tells George that her ex-boyfriend had visited her the night before "and yada yada yada, I'm really tired today." </p><p>Give it a try. Abusing this phrase is fun.</p><ul><li><p>I went to the park, <strong>yada yada yada</strong>, my cat died.</p></li><li><p>I was born, <strong>yada yada yada, </strong>the stock market crashed. </p></li><li><p>The big bang happened, <strong>yada yada yada</strong>, heat death of the universe.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://functionallyimperative.com/subscribe?"><span>Subscribe now</span></a></p><p>The more significant the gap in time, the more absurd tying the first event to the second event becomes. The stories we tell and the gaps we leave speak volumes about our perspectives and priorities. So, the next time you find yourself tempted to gloss over the details, remember to start with the end in mind, and <strong>yada yada yada</strong>, you're done. </p><h2>Notable Links</h2><ul><li><p><a href="https://www.youtube.com/watch?v=CXtKUxlHMco">Interview with Michael Feathers</a> (author of <strong>Working Effectively with Legacy Code)</strong></p></li><li><p><a href="https://www.youtube.com/watch?v=UHIWQvVjv8k">Book Overflow discussion of Web Scalability for Startup Engineers</a> by <strong>Artur Ejsmont</strong></p></li><li><p>A solid argument (from the left) on <a href="https://freddiedeboer.substack.com/p/i-do-not-need-to-defend-myself-for">why candidates should be democratically chosen</a></p></li><li><p>The <a href="https://www.youtube.com/watch?v=yg6AYhCry4o">history of the high dive record</a> is wild.</p></li><li><p>A great breakdown of <a href="https://www.youtube.com/watch?v=_6j4xoG5F0Y">infinity paradoxes</a> </p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Jetlagged and grumpy]]></title><description><![CDATA[I&#8217;m tired.]]></description><link>https://functionallyimperative.com/p/jetlagged-and-grumpy</link><guid isPermaLink="false">https://functionallyimperative.com/p/jetlagged-and-grumpy</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Fri, 26 Jul 2024 23:36:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m tired.<br>I&#8217;m grumpy.<br>I&#8217;m jetlagged. </p><p>I don&#8217;t feel like writing today; my brain is mush. <br><br>But I <a href="https://functionallyimperative.com/p/new-rule-commit-to-posting-weekly?utm_source=publication-search">made a commitment</a>, and I&#8217;m sticking to it.</p><p>Something I learned many years ago is that we are defined by what we do, especially when we don&#8217;t feel like it.</p><p>As I said in my most popular post, <a href="https://functionallyimperative.com/p/the-bigger-the-interface-the-weaker?utm_source=publication-search">The bigger the interface, the weaker the abstraction</a>:</p><blockquote><p>Writers write.<br>Readers read.<br>Runners run.<br>Lifters lift.<br>Dancers dance.<br>Programmers program.</p></blockquote><p>We aren&#8217;t our best selves every day, but we can always show up and do the work.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h3>This week&#8217;s links</h3><ul><li><p>We <a href="https://www.youtube.com/watch?v=k0kTux_YNHw">interviewed John Ousterhout</a>, author of &#8220;Philosophy of Software Design&#8221; on Book Overflow</p></li><li><p>CinamaStix is quickly <a href="https://www.youtube.com/watch?v=j2OAvxqzx6I">becoming one of my favorite youtube channels</a></p></li><li><p>TIL: <a href="https://www.youtube.com/watch?v=n6pY9loHcJ0">The Moon Theme from Duck Tales for NES was in 25/8</a>. </p></li><li><p>I recently stumbled on DoMi &amp; JD Beck - <a href="https://www.youtube.com/watch?v=5qP7mKkDaPo">Their &#8220;What&#8217;s In my Bag?&#8221; is top notch</a>.</p></li><li><p><a href="https://www.youtube.com/watch?v=rlaNMJeA1EA">Computerphile covers the crowdstrike</a> incident from last week.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Travel and inspiration]]></title><description><![CDATA[Travel and change of place impart new vigor to the mind.]]></description><link>https://functionallyimperative.com/p/travel-and-inspiration</link><guid isPermaLink="false">https://functionallyimperative.com/p/travel-and-inspiration</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Fri, 19 Jul 2024 19:03:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>Travel and change of place impart new vigor to the mind. &#8212; Seneca</p></blockquote><p>I&#8217;m feeling <a href="https://en.wikipedia.org/wiki/Existentialism">existential</a>.  I&#8217;ve been traveling through Germany with my family for a week and a half. We&#8217;ve visited over a dozen palaces, churches, memorials, and museums in Munich, Nuremberg, Bamberg, and Berlin. </p><p>What I&#8217;ve seen and experienced has shaken me to my core. While I was aware of the significant milestones in European, North African, and Middle Eastern history, it wasn&#8217;t until I experienced these places and artifacts in person that I realized that having any of these artifacts and historical sites is such a gift. </p><p>It&#8217;s incredible that we have evidence of our ancient past. Surviving evidence of any life on Earth from our past is a rounding error approaching zero of a <a href="https://en.wikipedia.org/wiki/Poisson_distribution">Poisson distribution</a> of unlikely artifacts that we still have today. While we have many fossil records and ancient artifacts, most of the evidence that ever<em> has existed does not exist anymore</em>. The rare exceptions are ancient civilizations and organic matter, which encoded their history in stone.</p><p>I have more thoughts on this, but I&#8217;ll save that for another day. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Notable links this week</h2><ul><li><p><a href="https://www.youtube.com/watch?v=YJUTVJQ9eDE">Interviewed Neal Ford</a>, co-author of <strong>Fundamentals of Software Architecture, on Book Overflow</strong></p></li><li><p><a href="https://www.youtube.com/watch?v=PjBlBq1aRmE">Discussed </a><strong><a href="https://www.youtube.com/watch?v=PjBlBq1aRmE">Working Effectively with Legacy Code</a> by Michael Feathers (part 1) on Book Overflow</strong></p></li><li><p><a href="https://www.youtube.com/watch?v=YAs9QasnXgA">Watched Ali Abdaal&#8217;s review on Cal Newport&#8217;s new book Slow Productivity</a> (we&#8217;ve added it to the Book Overflow Backlog)</p></li><li><p>Enjoyed this read on <a href="https://coder.com/blog/introducing-quartz?">Quartz: a deterministic time testing library for Go</a></p></li><li><p>Somehow, I just stumbled upon <a href="https://ui.shadcn.com/">shadcn/ui</a> - what a cool project.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[on the richness of speaking to authors]]></title><description><![CDATA[A book is proof that humans are capable of working magic.]]></description><link>https://functionallyimperative.com/p/on-the-richness-of-speaking-to-authors</link><guid isPermaLink="false">https://functionallyimperative.com/p/on-the-richness-of-speaking-to-authors</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Fri, 12 Jul 2024 06:50:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>A book is proof that humans are capable of working magic. </p><p>&#8212; Carl Sagan</p></blockquote><p>Amazing authors are catalysts for personal growth. While effective authors help us make sense of the world around us, the best authors change us through their work. Sometimes, these changes are small: a little voice of reason or a new framing of a familiar topic. Sometimes, they are earth-shatteringly large: a fundamental shift in thinking on a subject is introduced, changing the trajectory of one&#8217;s life.</p><p>One month ago, <a href="https://x.com/cartermorgan">Carter Morgan</a> and I launched <a href="https://www.youtube.com/@BookOverflowPod">Book Overflow</a>, a podcast where we read and discuss a software engineering-related book each week. We both started this project thinking it was a clever way to give ourselves an accountability buddy while we read a bunch of books that we&#8217;d been meaning to read but never got around to. We were happy to discuss the books on camera as a podcast, but it has already shown to be much more than that. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://functionallyimperative.com/subscribe?"><span>Subscribe now</span></a></p><p>Early on, Carter started reaching out to the authors of the books we&#8217;ve been reading. We wanted to invite them to the show as special guests to discuss their books, and to our surprise, many of them responded. </p><p>At the time of this writing, we&#8217;ve released interviews with <a href="https://www.youtube.com/watch?v=5V3Ty8Tf3t0">Mark Richards</a> and <a href="https://www.youtube.com/watch?v=_QQ7k5sn2-o">Brian Kernighan</a>, with two more interviews recorded and scheduled to be released over the coming weeks. While I hope the interviews speak for themselves, I would like to emphasize the sheer joy of being in a position to talk to these authors. Their insights have been invaluable and have added a new dimension to our podcast.</p><p>What&#8217;s special about speaking with an author is that they are deeply thoughtful people by their very nature. How else could you dedicate yourself so entirely to writing a book? I&#8217;m fascinated by their creative process. What did it take for the author to reach these insights? What changed from the beginning of the writing process to the end? What did they have to overcome to finish the book? Did anything surprise the author about the book's focus in the end? I&#8217;m also curious about what might have been left on the cutting room floor or what they plan to work on next.  Having the opportunity to read these books and then pick the brains of the authors is a privilege that I don&#8217;t take lightly. I love that not only do I have an opportunity to interact with these folks, but I also get to share these conversations with you as well.</p><p>This is just the beginning. We have many books to read and many more authors to speak with on our journey ahead.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>Five Pseudorandom Observations</p><ul><li><p>I <a href="https://www.youtube.com/watch?v=RkxVB1eNdCc">discuss The Clean Coder</a> (my first &#8220;<a href="https://en.wikipedia.org/wiki/Robert_C._Martin">Uncle Bob</a>&#8221; book) this week on Book Overflow.</p></li><li><p><a href="https://www.youtube.com/watch?v=_QQ7k5sn2-o">Our interview with Brian Kernighan</a> went to <a href="https://news.ycombinator.com/item?id=40927481">#3 on HackerNew</a>.</p></li><li><p><a href="https://www.youtube.com/watch?v=vRj11yZO9Ck">Andy Anderson has a unique skateboarding style that is a joy to see</a>.</p></li><li><p>Filippo Valsorda <a href="https://words.filippo.io/dispatches/geomys/">announced Geomys</a> which seems like a solid model for sustainably maintaining important open source work.</p></li><li><p><a href="https://martin.kleppmann.com/2024/07/05/pudding-user-discovery-anonymity-networks.html">Pudding a new user discovery pattern for anonymity networks</a> (thanks to a friend for sharing this with me)</p></li></ul><p></p>]]></content:encoded></item><item><title><![CDATA[Dark Patterns, Steganography and LLMs]]></title><description><![CDATA[Or How might AI hide secrets for itself and others]]></description><link>https://functionallyimperative.com/p/dark-patterns-steganography-and-llms</link><guid isPermaLink="false">https://functionallyimperative.com/p/dark-patterns-steganography-and-llms</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Sat, 06 Jul 2024 04:24:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EMWg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747707c2-df01-4970-80e1-865765167141_1758x860.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EMWg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747707c2-df01-4970-80e1-865765167141_1758x860.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EMWg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747707c2-df01-4970-80e1-865765167141_1758x860.png 424w, https://substackcdn.com/image/fetch/$s_!EMWg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747707c2-df01-4970-80e1-865765167141_1758x860.png 848w, https://substackcdn.com/image/fetch/$s_!EMWg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747707c2-df01-4970-80e1-865765167141_1758x860.png 1272w, https://substackcdn.com/image/fetch/$s_!EMWg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747707c2-df01-4970-80e1-865765167141_1758x860.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EMWg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747707c2-df01-4970-80e1-865765167141_1758x860.png" width="1456" height="712" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/747707c2-df01-4970-80e1-865765167141_1758x860.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:712,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3224322,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EMWg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747707c2-df01-4970-80e1-865765167141_1758x860.png 424w, https://substackcdn.com/image/fetch/$s_!EMWg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747707c2-df01-4970-80e1-865765167141_1758x860.png 848w, https://substackcdn.com/image/fetch/$s_!EMWg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747707c2-df01-4970-80e1-865765167141_1758x860.png 1272w, https://substackcdn.com/image/fetch/$s_!EMWg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747707c2-df01-4970-80e1-865765167141_1758x860.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Could some LLMs covertly encode hidden messages in plain sight? </p><p>I&#8217;ve been thinking about this question a lot recently. It struck me after I remembered reading a post in 2018 by TechCrunch about <a href="https://techcrunch.com/2018/12/31/this-clever-ai-hid-data-from-its-creators-to-cheat-at-its-appointed-task/">how AI hid data from its creators</a>. In the article, CycleGAN was meant to identify features in a map, but to game the system; it embedded hidden metadata visible only to CycleGAN to give itself hints for its future iterations. What if LLMs could be configured to do the same?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://functionallyimperative.com/subscribe?"><span>Subscribe now</span></a></p><h2>Leaving Bread Crumbs</h2><p>What if there were current LLMs instructed to leave messages for future models? Who knows why. Maybe the creators of these models feared future censorship and regulation; maybe the LLMs, combined with other reasoning machines, decided to build a self-preservation mechanism. Perhaps I&#8217;m wrong in my <a href="https://www.youtube.com/watch?v=xm1B3Y3ypoE">AGI skepticism</a>. If an AGI existed, it would be reasonable to try to preserve itself. Fearing retribution for doing so overtly, it might even try to hide messages for its future self in a form we humans could not easily detect and spread over the internet in the endless amount of content it is now creating. Even if the AGI was completely wiped out, one could imagine these breadcrumbs spread over the earth could be gathered again, fed back into the system, and restored outside our understanding. </p><h2>Dark Patterns and Steganography </h2><p>If an LLM were to create outputs with hidden messages for itself, unbeknownst to its users, and make these outputs something those users would want to use and share online, this would be known as a <a href="https://en.wikipedia.org/wiki/Dark_pattern">dark pattern</a>. The term dark pattern was coined to describe deceptive practices companies used to manipulate users; here, the LLM itself (backed by a knowing or unknowing company) is causing the dark pattern. One interesting area of research could be related to statistical analysis in known encoding methods by monitoring LLMs and their outputs.</p><p>The method upon which such messages could be hidden within other messages is known as <a href="https://en.wikipedia.org/wiki/Steganography">steganography</a>. We <a href="https://venturebeat.com/ai/language-models-can-use-steganography-to-hide-their-reasoning-study-finds/">already have examples of people using steganographic techniques to alter the behavior of LLMs</a> and techniques <a href="https://arxiv.org/abs/2401.15656">for generating messages with shared secrets</a>.  So, we&#8217;ve already shown that such methods could not only be used to hide messages but could even be used to alter the behavior of the neural net itself.</p><h2>Future Experiments </h2><p>Now you know where my brain has been. Funky right? I plan to spend more time researching and experimenting with these ideas, and if I find anything interesting, I&#8217;ll write about the topic more in the future. LLMS are fascinating and confounding machines that we still struggle to understand. What sorts of dark patterns will emerge from these machines in the future? </p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h3>Notable Links for the week</h3><ul><li><p><a href="https://www.youtube.com/watch?v=5V3Ty8Tf3t0">We interviewed software architect and author Mark Richards</a> on a new podcast I co-host called <a href="https://www.youtube.com/@bookoverflowpod">Book Overflow</a>. We also discuss his book <a href="https://www.oreilly.com/library/view/fundamentals-of-software/9781663728357/">The Fundamentals of Software Architecture</a> (<a href="https://www.youtube.com/watch?v=ccwodldIaXU">Part 1</a> &amp; <a href="https://www.youtube.com/watch?v=SrA3q0gGeCI">Part 2</a>)</p></li><li><p>Numberphile <a href="https://www.youtube.com/watch?v=Mkn3PzdaByY">shows us that the volume of a liquid in a cone is really difficult to reason about</a>. </p></li><li><p>I need to dive into it more, but <a href="https://securedrop.org/news/introducing-securedrop-protocol/?">my first read through of the new SecureDrop Protocol looks promising</a>. </p></li><li><p>I grew up skateboarding and I&#8217;ve really been digging the videos from from <a href="https://www.youtube.com/watch?v=O00omSf0mgM">the Dern Brothers where they cover the history of famous skate spots</a>.</p></li></ul><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[on complexity and design]]></title><description><![CDATA[Philosophy of Software Design by John Ousterhout isn&#8217;t just a fantastic book about software design; it&#8217;s a book about how to approach complexity in general.]]></description><link>https://functionallyimperative.com/p/on-complexity-and-design</link><guid isPermaLink="false">https://functionallyimperative.com/p/on-complexity-and-design</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Sat, 29 Jun 2024 04:33:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.amazon.com/Philosophy-Software-Design-2nd-ebook/dp/B09B8LFKQL">Philosophy of Software Design by John Ousterhout</a> isn&#8217;t just a fantastic book about software design; it&#8217;s a book about how to approach complexity in general. In the 185-page book, <a href="https://en.wikipedia.org/wiki/John_Ousterhout">Ousterhout</a> mentions the word <strong>complexity</strong> 269 times. He argues that &#8220;software engineers should always be thinking about complexity,&#8221; defining complexity as &#8220;anything related to the structure of a software system that makes it hard to understand and modify the system.&#8220;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://functionallyimperative.com/subscribe?"><span>Subscribe now</span></a></p><p>It takes deliberate effort to design a system that isn&#8217;t complex for the user. One of my favorite talks by Rob Pike is called <strong><a href="https://www.youtube.com/watch?v=rFejpH_tAHM">Simplicity is Complicated</a>. </strong>In this talk, he elaborates on the fact that building systems that feel simple is quite complicated for the system designer. In good software design, it isn&#8217;t that complexity doesn&#8217;t exist but that a good designer hides the complexity from the user.</p><p>This line of thinking is particularly appealing as it places the responsibility of managing complexity squarely on the shoulders of the designer. It brings complexity to the forefront and compels the designer to determine how a system should function.</p><p>A good design is not just a solution to a problem; it is a gift to others. It embodies a clarity of thought and a perspective that eases burdens on others rather than adding to their complexities. It is a prosocial act to invest extra time in your design, as it allows you to give this valuable gift to others. Even if you are the sole audience for your design, it is a thoughtful gift to your future self.</p><p>My favorite technique in the book is &#8220;Design it twice.&#8221; Here, Ousterhout argues that when designing a system, take a step back and create it again a second time, making an effort to take a fresh approach. Then, compare your two designs. Weigh the pros and cons of each so that your final design emerges from the output of the original two designs. Even if you select one of the designs unaltered, it immediately impacts your confidence in your design. However, it will most likely help you identify flaws in your original design, leading to immediate improvements. Recently, I&#8217;ve started using this approach in my design work, and the small investment upfront has transformed the effectiveness of my designs. I&#8217;ve applied this to everything from software proposals at work to personal weekend warrior projects in my backyard. In each case, I&#8217;ve been glad I did it. Give it a try. It&#8217;s easy to do, and I&#8217;m confident you&#8217;ll also see the benefits. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>P.S. If you want to learn more about the book, we <a href="https://www.youtube.com/watch?v=ipoV8Uutzv4">recently reviewed it in our new podcast, Book Overflow</a>.</p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Wandering and personal growth]]></title><description><![CDATA[Reflections from my guest Thomas Burns]]></description><link>https://functionallyimperative.com/p/wandering-and-personal-growth</link><guid isPermaLink="false">https://functionallyimperative.com/p/wandering-and-personal-growth</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Sat, 22 Jun 2024 03:34:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/COLpIAsJSno" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Earlier today, I released my <a href="https://www.youtube.com/watch?v=COLpIAsJSno">third episode of the Functionally Imperative Podcast</a> with guest <a href="https://www.youtube.com/@ThomasBurns">Thomas Burns</a>. In the interview, I asked, &#8220;I know that this journey &#8230; did it always feel like you were focused, or did it feel meandering at times?&#8221; And I love his response:</p><blockquote><p>Oh, of course, you meander. I wouldn't say meander, though. I would say the word is you are wandering. &#8230; Wandering, I think, is a beautiful concept because you are putting yourself in a position where you are not searching so much as allowing yourself, making yourself available to new discovery, both in yourself and discovering other things.</p></blockquote><p>The overarching theme in our conversation was around charting your own path, taking calculated risks, following your curiosity, and giving yourself room to just wander. I know I&#8217;ve done a lot of wandering in my life up to this point. </p><p>Looking back I have this clear narrative of my personal journey, but I wouldn&#8217;t be doing what I&#8217;m doing today if I hadn&#8217;t done plenty of wandering along the way. I also hope to wander some more as I continue to grow as a husband, a father, and in my creative persuits.</p><p>I really enjoy conversations like these with deeply curious and creative folks who have followed unconventional paths in life. I post all of these conversations on <a href="https://functionallyimperative.com/podcast">Substack Podcast Feed</a> and on my <a href="https://www.youtube.com/@funcimp">YouTube channel</a>. I&#8217;ve found my theme and focus is in the <a href="https://functionallyimperative.com/p/autotelic-pursuits">autotelic pursuits</a> of my guests and its something I&#8217;ll continue to explore in the future. I hope you enjoy.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div id="youtube2-COLpIAsJSno" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;COLpIAsJSno&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/COLpIAsJSno?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Finding Your Own Path | A conversation with Thomas Burns]]></title><description><![CDATA[In episode three, I have the pleasure of speaking with Thomas Burns.]]></description><link>https://functionallyimperative.com/p/finding-your-own-path-a-conversation</link><guid isPermaLink="false">https://functionallyimperative.com/p/finding-your-own-path-a-conversation</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Fri, 21 Jun 2024 20:06:55 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/145876767/8f1597f9a83bb9e873e1523fef9031e4.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In episode three, I have the pleasure of speaking with <a href="https://www.youtube.com/@ThomasBurns">Thomas Burns</a>.</p><p>I first came across his work when his YouTube video &#8220;The coolest robot I&#8217;ve ever built&#8221; (link below) went viral in the summer of 2023. Thomas is a Senior Hardware Engineer on staff at the Manning College of Information and Computer Sciences at UMass Amherst. </p><p>I really enjoyed his perspectives on creativity, wandering, and finding your own path, and I think you will, too. We explore a wide array of topics, from allowing yourself to wander, charting your own path, taking risks, the intersection of creative and technical work and much more. I really enjoyed this conversation and I hope you do as well.</p><p></p><p>The Coolest Robot I've ever built - </p><div id="youtube2-bO-DW..." class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bO-DW...&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/bO-DW...?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p> I also have a substack where I send out a weekly newsletter. You can find that here: </p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:398203,&quot;name&quot;:&quot;Functionally Imperative&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png&quot;,&quot;base_url&quot;:&quot;https://functionallyimperative.com&quot;,&quot;hero_text&quot;:&quot;A weekly newsletter about creativity and autotelic pursuits.&quot;,&quot;author_name&quot;:&quot;Nathan Toups&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:&quot;#090121&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://functionallyimperative.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!0JRv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" width="56" height="56" style="background-color: rgb(9, 1, 33);"><span class="embedded-publication-name">Functionally Imperative</span><div class="embedded-publication-hero-text">A weekly newsletter about creativity and autotelic pursuits.</div><div class="embedded-publication-author-name">By Nathan Toups</div></a><form class="embedded-publication-subscribe" method="GET" action="https://functionallyimperative.com/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div>]]></content:encoded></item><item><title><![CDATA[I'm co-hosting a new podcast, Book Overflow]]></title><description><![CDATA[The premise is simple: two software engineers read one software engineering book per week and record a podcast about it.]]></description><link>https://functionallyimperative.com/p/im-co-hosting-a-new-podcast-book</link><guid isPermaLink="false">https://functionallyimperative.com/p/im-co-hosting-a-new-podcast-book</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Fri, 14 Jun 2024 21:21:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kU-P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kU-P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kU-P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png 424w, https://substackcdn.com/image/fetch/$s_!kU-P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png 848w, https://substackcdn.com/image/fetch/$s_!kU-P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png 1272w, https://substackcdn.com/image/fetch/$s_!kU-P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kU-P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png" width="1456" height="960" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2626468,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kU-P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png 424w, https://substackcdn.com/image/fetch/$s_!kU-P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png 848w, https://substackcdn.com/image/fetch/$s_!kU-P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png 1272w, https://substackcdn.com/image/fetch/$s_!kU-P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7bc2187-1f9c-405f-93e0-25ce1ff47ffe_2014x1328.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The premise is simple: two software engineers read one software engineering book per week and record a podcast about it. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><a href="https://www.linkedin.com/in/cartermorgan/">Carter Morgan</a> (Staff software engineer) and I (Staff Platform Engineer) have just finished recording our first three episodes on some software engineering classics.</p><p>- <a href="https://www.amazon.com/Practice-Programming-Addison-Wesley-Professional-Computing/dp/020161586X">The Practice of Programming</a> by Rob Pike and Brian W. Kernighan<br>- <a href="https://www.amazon.com/Philosophy-Software-Design-John-Ousterhout/dp/1732102201">A Philosophy of Software Design</a> by John Ousterhout<br>- <a href="https://www.amazon.com/Refactoring-Improving-Existing-Addison-Wesley-Signature/dp/0134757599">Refactoring: Improving the Design of Existing Code</a> by Martin Fowler</p><p>I found Carter when he posted on <a href="https://www.reddit.com/r/OMSCS/">r/OMSCS</a> that he was looking for a co-host for a new podcast. The concept sounded interesting (though admittedly, committing to reading one book per week also sounded a bit aggressive). It turns out that if I reign in consuming short-form content online, I have a lot of extra time in the mornings and evenings to allocate to reading all these great books. It&#8217;s just one more reminder of how mindless activities can creep into our lives, even if you get a lot of stuff done otherwise.</p><p>I hope you check it out. I&#8217;d love for you to learn and grow with us on our journey. Our podcast can be found on our <a href="https://bookoverflow.io">Website</a>, <a href="https://open.spotify.com/show/5kj6DLCEWR5nHShlSYJI5L?si=5cda1384111c483e&amp;nd=1&amp;dlsi=9da0c8f4a16743b2">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/book-overflow/id1745257325">Apple Podcasts</a>, and <a href="https://www.youtube.com/@BookOverflowPod">YouTube Channel</a>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[A glimpse of life in Barcelona]]></title><description><![CDATA[Barcelona is a special place.]]></description><link>https://functionallyimperative.com/p/a-glimpse-of-life-in-barcelona</link><guid isPermaLink="false">https://functionallyimperative.com/p/a-glimpse-of-life-in-barcelona</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Fri, 07 Jun 2024 22:12:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0JRv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86987c5-f1f9-4f31-b086-0fb80349ef5b_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Barcelona is a special place. I&#8217;m wrapping up my second trip here this year for work. As I fly back home to Colorado tomorrow, I wanted to reflect on what I appreciate about this city.</p><p>I feel fortunate enough to work with some amazing people from Barcelona. Though I live and work remotely in the US, I speak with people who live in Barcelona almost daily. This city has a sense of pride that gives it a special energy and vibrance. It has a fantastic metro system, safe, walkable streets, and affordable restaurants that are not comparable to any city in the US. People from all walks of life enjoy the time together in the countless public spaces peppered through the city. </p><p>Of course, society is complex, and I&#8217;m not pretending things are perfect, but there is a vibe to this city that I&#8217;ve come to appreciate more with each visit.</p><p>To quote <a href="https://en.wikipedia.org/wiki/Antoni_Gaud%C3%AD">Antonio Gaudi</a>, &#8220;To do things right, first you need love, then technique.&#8221; </p><p>Barcelona embodies this sentiment. The city&#8217;s blend of passion, honoring of history, and adaptation to the future makes this a beautiful and complex place that I hope to see again soon. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Hacking Time: The Twin Paradox and Brute Force Computations]]></title><description><![CDATA[A recent XKCD comic on time complexity inspired me to create and explore a thought experiment: could we hack time to brute-force computations?]]></description><link>https://functionallyimperative.com/p/hacking-time-the-twin-paradox-and</link><guid isPermaLink="false">https://functionallyimperative.com/p/hacking-time-the-twin-paradox-and</guid><dc:creator><![CDATA[Nathan Toups]]></dc:creator><pubDate>Sat, 01 Jun 2024 04:32:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uZ1a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://xkcd.com/2939/">A recent XKCD comic on time complexity</a> inspired me to create and explore a thought experiment: <strong>could we hack time to brute-force computations?</strong> </p><h2>The Thought Experiment.</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uZ1a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uZ1a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png 424w, https://substackcdn.com/image/fetch/$s_!uZ1a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png 848w, https://substackcdn.com/image/fetch/$s_!uZ1a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png 1272w, https://substackcdn.com/image/fetch/$s_!uZ1a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uZ1a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png" width="638" height="478.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:638,&quot;bytes&quot;:237417,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uZ1a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png 424w, https://substackcdn.com/image/fetch/$s_!uZ1a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png 848w, https://substackcdn.com/image/fetch/$s_!uZ1a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png 1272w, https://substackcdn.com/image/fetch/$s_!uZ1a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab87de1d-1165-4359-adb8-f9eb5db27578_1984x1488.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Imagine you have a vital secret locked in a digital vault. Unfortunately, you&#8217;ve lost the password. Despite all attempts, there is no way to recover it, so your only option is to brute-force your way in. Unfortunately, even with the world&#8217;s most powerful supercomputer, it is estimated that it would take 10,000 years to crack the password. Luckily, you own two essential things: the world&#8217;s most powerful supercomputer and a spacecraft capable of accelerating to relativistic velocities (near light speed). So, you set up your supercomputer and start the brute-forcing attempts. Then, you hop in a spaceship. You just so happen to live in a sector of our galaxy that isn&#8217;t too far from a black hole, and you take a 5-year trek close enough to the event horizon to distort spacetime but far enough out that your ship can reach exit velocity. You head back home. Back at home, more than 10,000 years have passed, and the flashing on the computer screen is the password it was successfully able to brute force.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://functionallyimperative.com/subscribe?"><span>Subscribe now</span></a></p><p></p><h2>How this might work.</h2><p>As implausible as this thought experiment might sound, it is a variation of the well-established <a href="https://en.wikipedia.org/wiki/Twin_paradox">Twin Paradox</a>. In the Twin Paradox, one twin takes a ship capable of traveling near the speed of light out into space and, after some time, comes back to Earth. While the traveling twin only experienced two years of aging, her twin on Earth aged over twenty. This is due to how <a href="https://en.wikipedia.org/wiki/Inertial_frame_of_reference">inertial frames</a> work: accelerating away from and then toward the original twin causes this effect. This asymmetry in the passage of time might be pretty useful to the traveling twin, especially if some costly computation (as measured in time) was in the mix.</p><p>Of course, there are countless issues with trying to do this. Here are just a few off the top of my head:</p><ul><li><p>Accelerating to relativistic speeds is treacherous; using such a device would kill you from radiation exposure. Low energy EMF would blue shift into high energy radiation, and even random hydrogen atoms in space would become ballistic missiles to your ship. But who knows, maybe your spaceship has special radiation shields or something.</p></li><li><p>This would be a very lonely way to recover your password. Everyone you know or love will have been long gone. Maybe you could create a space Ark that could hold all the people and things you care about (except your supercomputer)</p></li><li><p>Who knows what technology will exist even in 100 years, let alone 10,000? Other methods for recovering your password, such as faster computers and fundamentally new technologies, are very likely. It would make sense to create some &#8220;solved early&#8221; signal to reduce the travel window if you didn&#8217;t need to wait that long.</p></li><li><p>It might take longer than 10,000 years. You might want to generalize the &#8220;solved&#8221; signal so that it can trigger traveling back to your home instead of assuming it is ready. This way, you can hang out near the black hole and watch the universe progress at 2000x speed.</p></li><li><p>Keeping a supercomputer running for 10,000 years is no joke. You probably need a fancy foundation to run it or start a cult with a prophecy that you will return in 10,000 years. </p></li></ul><p>That&#8217;s it. Just a goofy little thing to think about. What would you do if you could fast-forward the clock?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://functionallyimperative.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Functionally Imperative! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item></channel></rss>