<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Starred Articles</title>
    <description>Starred Articles</description>
    <atom:link href="https://feedbin.com/starred/0daa4d965211c65910806c5d426a3f41.xml" rel="self" type="application/rss+xml"/>
    <link>https://feedbin.com/</link>
    <item>
      <title><![CDATA[Ultima IX]]></title>
      <description><![CDATA[<p><a href="https://www.filfre.net/2026/02/ultima-ix/4051234-ultima-ix-ascension-windows-front-cover/" rel="attachment wp-att-6637"><img fetchpriority="high" decoding="async" class="aligncenter size-medium wp-image-6637" src="https://www.filfre.net/wp-content/uploads/2026/01/4051234-ultima-ix-ascension-windows-front-cover-488x600.jpg" alt="" width="488" height="600" srcset="https://www.filfre.net/wp-content/uploads/2026/01/4051234-ultima-ix-ascension-windows-front-cover-488x600.jpg 488w, https://www.filfre.net/wp-content/uploads/2026/01/4051234-ultima-ix-ascension-windows-front-cover.jpg 651w" sizes="(max-width: 488px) 100vw, 488px"></a></p>
<hr>
<div style="margin-bottom: 8px; text-align: center;"><strong>This article tells part of the story of <a href="https://www.filfre.net/tag/ultima/?order=asc">the <em>Ultima</em> series</a>.</strong></div>
<div style="margin-bottom: 32px;">
<hr>
</div>
<blockquote><p>Years ago, [Origin Systems] released <a href="https://www.mobygames.com/game/1365/strike-commander/">Strike Commander</a>, a high-concept flight sim that, while very entertaining from a purely theoretical point of view, was so resource-demanding that no one in the country actually owned a machine that could play it. Later, in <a href="https://www.mobygames.com/game/723/pagan-ultima-viii/">Ultima VIII</a>, the company decided to try to increase their sales numbers by adding action sequences straight out of a platform game to their ultra-deep RPG. The results managed to piss just about everyone off. With Ultima IX: Ascension, the company has made both mistakes again, but this time on a scale that is likely to make everyone finally forget about the company’s past mistakes and concentrate their efforts on making fun of this one.</p>
<p style="text-align: right;">— Trent C. Ward, writing for IGN</p>
<p>Appalling voice-acting. Clunky dialog-tree system. Over-simplistic, poorly implemented combat system. Disjointed story line… A huge slap in the face for all longtime Ultima fans… Insulting and contemptuous.</p>
<p style="text-align: right;">— Julian Schoffel, writing from the Department of “Other Than That, It Was Great” at Growling Dog Gaming</p>
</blockquote>
<p>The late 1990s introduced a new phenomenon to the culture of gaming: the truly epic failure, the game that failed to live up to expectations so comprehensively that it became a sort of anti-heroic legend, destined to be better remembered than almost all of its vastly more playable competition. It’s not as if the bad game was a new species; people had been making bad games — far more of them than really good ones, if we’re being honest — for as long as they had been making games at all. But it took the industry’s meteoric expansion over the course of the 1990s, from a niche hobby for kids and nerds (and usually both) to a media ecosystem with realistic mainstream aspirations, to give rise to the combination of hype, hubris, excess, and ineptitude which could yield a <a href="https://www.mobygames.com/game/42358/battlecruiser-3000ad/"><em>Battlecruiser 3000AD</em></a> or a&nbsp;<a href="https://www.mobygames.com/game/1678/john-romeros-daikatana/"><em>Daikatana</em></a>. Such games became cringe humor on a worldwide scale, whether they involved Derek Smart telling us <a href="https://www.retromags.com/gallery/image/49174-battlecruiser-3000ad-december-1995/">his game was better than sex</a> or John Romero saying <a href="https://www.reddit.com/r/RedditDayOf/comments/akx96j/john_romero_told_gamesauce_magazine_that_the_john/">he wanted to make us his bitch</a>.</p>
<p>Another dubiously proud member of the 1990s rogue’s gallery of suckitude — just to use some period-correct diction, you understand — was <em>Ultima IX: Ascension</em>, the broken, slapdash, bed-shitting end to one of the most iconic franchises in all of gaming history. I’ve loved a handful of the older <em>Ultimas</em> and viewed some of the others with more of a jaundiced eye in the course of writing these histories, but there can be no denying that these games were seminal building blocks of the CRPG genre as we know it today. Surely the series deserved a better send-off than this.</p>
<p>As it is, though, <em>Ultima IX</em> has long since become a meme, a shorthand for ludic disaster. More people than have ever actually played it<em>&nbsp;</em>have watched Noah Antwiler’s <a href="https://www.youtube.com/watch?v=mQUVfo_kBMU">rage-drenched two-hour takedown of the game</a> from 2012, in a video which has itself become oddly iconic as one of the founding texts (videos?) of long-form YouTube game commentary. Meanwhile Richard Garriott, the motivating force behind <em>Ultima</em> from first to last, has done his level best to write the aforementioned last out of history entirely. <em>Ultima IX</em> is literally never mentioned at all in his autobiography.</p>
<p>But, much though I may be tempted to, I can’t similarly sweep under the rug the eminently unsatisfactory denouement to the <em>Ultima</em> series. I have to tell you how this unfortunate last gasp fits into the broader picture of the series’s life and times, and do what I can to explain to you how it turned out so darn awful.</p>
<hr>
<div id="attachment_403" style="width: 359px" class="wp-caption aligncenter"><a href="https://www.filfre.net/2012/02/summer-camp/party2/" rel="attachment wp-att-403"><img decoding="async" aria-describedby="caption-attachment-403" class="size-full wp-image-403" src="https://www.filfre.net/wp-content/uploads/2012/02/party2.jpg" alt="" width="349" height="256" srcset="https://www.filfre.net/wp-content/uploads/2012/02/party2.jpg 349w, https://www.filfre.net/wp-content/uploads/2012/02/party2-300x220.jpg 300w" sizes="(max-width: 349px) 100vw, 349px"></a><p id="caption-attachment-403" class="wp-caption-text">Al Remmers, the man who unleashed Lord British and <em>Ultima</em> upon the world, is pictured here with his wife.</p></div>
<p>The great unsung hero of <em>Ultima</em> is a hard-disk salesman, software entrepreneur, and alleged drug addict named Al Remmers, who in 1980 agreed to distribute under the auspices of his company <a href="https://www.filfre.net/2011/12/california-pacific">California Pacific</a> a simple Apple II game called <a href="https://www.filfre.net/2011/12/akalabeth"><em>Akalabeth</em></a>, written by a first-year student at the University of Texas named Richard Garriott. It was Remmers who suggested crediting the game to <a href="https://www.filfre.net/2011/12/lord-british">“Lord British,”</a> a backhanded nickname Garriott had picked up from his <em>Dungeons &amp; Dragons</em> buddies to commemorate his having been born in Britain (albeit to American parents), his lack of a Texas drawl, and, one suspects, a certain lordly manner he had begun to display even as an otherwise ordinary suburban teenager. Thus this name that had been coined in a spirit of mildly deprecating irony became the official <em>nom de plume</em> of Garriott, a young man whose personality evinced little appetite for self-deprecation or irony. A year after <em>Akalabeth</em>, when Garriott delivered to Remmers a <a href="https://www.filfre.net/2012/02/ultima-part-1">second, more fully realized implementation</a> of “<em>Dungeons &amp; Dragons</em> on a computer” — also the first game into which he inserted himself/Lord British as the king of the realm of Britannia — Remmers came up with the name of <em>Ultima</em> as a catchier alternative to Garriott’s proposed <em>Ultimatum</em>. Having performed these enormous semiotic services for our young hero, Al Remmers then disappeared from the stage forever. By the time he did so, he had, according to Garriott, snorted all of his own and all of the young game developer’s money straight up his nose.</p>
<p>The&nbsp;<em>Ultima</em> series, however, was off to the races. After a brief, similarly unhappy <a href="https://www.filfre.net/2012/10/the-wizardry-and-ultima-sequels">dalliance with Sierra On-Line</a>, Garriott started the company <a href="https://www.filfre.net/2013/05/origin-systems">Origin Systems</a> in 1983 to publish <a href="https://www.filfre.net/2013/05/ultima-iii-in-pictures"><em>Ultima III</em></a>. For the balance of the decade, Origin was every inch The House That <em>Ultima</em> Built. It did release other games — quite a number of them, in fact — and sometimes these games even did fairly well, but the anchor of the company’s identity and its balance sheets were the new <em>Ultima</em> iterations that appeared in <a href="https://www.filfre.net/2014/07/ultima-iv/">1985</a>, <a href="https://www.filfre.net/2016/02/ultima-v">1988</a>, and <a href="https://www.filfre.net/2017/04/ultima-vi">1990</a>, each one more technically and narratively ambitious than the last. Origin was Lord British; Origin was <em>Ultima</em>;&nbsp;Lord British was&nbsp;<em>Ultima</em>. Any and all were inconceivable without the others.</p>
<p>But that changed just a few months after <em>Ultima VI</em>, when Origin released a game called&nbsp;<a href="https://www.filfre.net/2017/04/from-squadron-to-wingleader"><em>Wing Commander</em></a>, designed by an enthusiastic kid named Chris Roberts who also had a British connection: he had come to Austin, Texas, by way of Manchester, England. <em>Wing Commander</em> wasn’t revolutionary in terms of its core gameplay; it was a “space sim” that sought to replicate the dogfighting seen in <em>Star Wars</em> and&nbsp;<a href="https://www.filfre.net/2026/01/homeworld"><em>Battlestar Galactica</em></a>, part of a sub-genre that dated back to 1984’s <a href="https://www.filfre.net/2013/12/elite"><em>Elite</em></a>. What made it revolutionary was the stuff <em>around</em> the sim, a story that gave each mission you flew meaning and resonance. Gamers fell head over heels for <em>Wing Commander</em>, enough so to let it do the unthinkable: it outsold the latest <em>Ultima</em>. Just like that, Origin became the house of&nbsp;<em>Wing Commander</em> <strong>and</strong>&nbsp;<em>Ultima</em> — and in that order in the minds of many. Now Chris Roberts’s pudgy chipmunk smile was as much the face of the company as the familiar bearded mien of Lord British.</p>
<p>The next few years were the best in Origin’s history, in a business sense and arguably in a creative one as well, but the impressive growth in revenues was almost entirely down to the new <em>Wing Commander</em> franchise, which spawned a bewildering array of <a href="https://www.filfre.net/2018/03/wing-commander-ii">sequels</a>, spin-offs, and add-ons that together constituted the most successful product line in computer gaming during the last few years before <a href="https://www.filfre.net/2020/06/the-shareware-scene-part-4-doom"><em>DOOM</em></a> came along to upend everything. <em>Ultima</em> produced more mixed results. A rather delightful spinoff line called&nbsp;<a href="https://www.filfre.net/2018/02/the-worlds-of-ultima"><em>The Worlds of Ultima</em></a>, moving the formula away from high fantasy and into pulp adventure of the Arthur Conan Doyle and H.G. Wells stripe, sold poorly and fizzled out after just two installments. The next mainline&nbsp;<em>Ultima</em>, 1992’s <a href="https://www.filfre.net/2019/02/ultima-vii"><em>Ultima VII: The Black Gate</em></a>, is widely regarded today as the series’s absolute peak, but it was accorded a surprisingly muted reception at the time; Charles Ardai wrote in <em>Computer Gaming World</em> how “weary gamers [are] sure that they have played enough <em>Ultima</em> to last them a lifetime,” how “computer gaming needs another visit to good old Britannia like the movies need another visit from Freddy Krueger.” That year the first-person-perspective, more action-oriented spinoff <a href="https://www.filfre.net/2019/01/life-off-the-grid-part-1-making-ultima-underworld"><em>Ultima Underworld</em></a>, the first project of the legendary Boston-based studio Looking Glass, actually sold better than the latest mainline entry in the series, another event that had seemed unthinkable until it came to pass.</p>
<p>Men with small egos don’t tend to dress themselves up as kings and unironically bless their fans during trade shows and conventions, as Richard Garriott had long made a habit of doing. It had to rankle him that the franchise invented by Chris Roberts, no shrinking violet himself, was by now generating the lion’s share of Origin’s profits. And yet there could be no denying that when <a href="https://www.filfre.net/2019/09/origin-sells-out">Electronic Arts bought the company Garriott had founded</a> on September 25, 1992, it was primarily <em>Wing Commander</em> that it wanted to get its hands on.</p>
<p>So, taking a hint from the success of not only&nbsp;<em>Wing Commander</em> but also <em>Ultima Underworld</em>, Garriott decided that the mainline games in his signature series as well had to become more streamlined and action-oriented. He decided to embrace, of all possible gameplay archetypes, the <em><a href="https://www.filfre.net/2016/10/how-jordan-mechner-made-a-different-sort-of-interactive-movie-or-the-virtues-of-restraint">Prince of Persia</a></em>-style platformer. The result was 1994’s <a href="https://www.filfre.net/2021/02/ultima-viii-or-how-to-destroy-a-gaming-franchise-in-one-easy-step"><em>Ultima VIII: Pagan</em></a>, a game that seems like something less than a complete and total disaster today only by comparison with <em>Ultima IX</em>. Its action elements were executed far too ineptly to attract new players. And as for the <em>Ultima</em> old guard, they would have heaped scorn upon it even if it had been a good example of what it was trying to be; their favorite nickname for it was <em>Super Ultima Bros.</em> It stank up the joint so badly that Origin chose toward the end of the year not to even bother putting out an expansion pack that its development team had ready to go, right down to the box art.</p>
<p>The story of <em>Ultima IX</em> proper begins already at this fraught juncture, more than five years before that game’s eventual release. The team that had made <em>Ultima VIII</em> was split in two, with the majority going to work on&nbsp;<a href="https://www.mobygames.com/game/851/crusader-no-remorse/"><em>Crusader: No Remorse</em></a>, a rare 1990s Origin game that bore the name of neither&nbsp;<em>Ultima</em> nor&nbsp;<em>Wing Commander</em>. (It was a science-fiction exercise that wound up using the <em>Ultima VIII</em> engine to better effect, most critics and gamers would judge, than&nbsp;<em>Ultima VIII</em> itself had.) Just a few people were assigned to <em>Ultima IX</em>. An issue of Origin’s internal newsletter dating from February of 1995 describes them as “finishing [the] script stage, evaluating technology, and assembling a crack development team.” Origin programmer Mike McShaffry:</p>
<blockquote><p>Right after the release [of Ultima VIII], Origin’s customer-service department compiled a list of customer complaints. It weighed about ten pounds! The Ultima IX core team went over this with a fine-toothed comb, and we decided along with Richard that we should get back to the original Ultima design formula. Ultima IX was going to be a game inspired by Ultimas IV and VII and nothing else. When I think of that game design I get chills; it was going to be awesome.</p></blockquote>
<p>As McShaffry says, it was hoped that <em>Ultima IX</em> could rejuvenate the franchise by righting the wrongs of&nbsp;<em>Ultima VIII</em>. It would be evolutionary rather than revolutionary, placing a a modernized gloss on what fans had loved about the games that came before: a deep world simulation, a whole party of adventurers to command, lots and lots of dialog in a richly realized setting. The isometric engine of&nbsp;<em>Ultima VII</em> was&nbsp;re-imagined as a 3D space, with a camera that the player could pan and zoom around the world. “For the first time ever, you could see what was on the south and east side of walls,” laughs McShaffry. “When you walked in a house, the roof would pop off and you could see inside.” <em>Ultima IX</em> was also to be the first entry in the series to be fully voice-acted. Origin hired one Bob White, an old friend with whom Richard Garriott had played <em>Dungeons &amp; Dragons</em> as a teenager, to turn Garriott’s vague story ideas into a proper script for the voice actors to perform.</p>
<p>Garriott himself had been slowly sidling back from day-to-day involvement with <em>Ultima</em> development since roughly 1986, when he was cajoled into accepting that the demands of designing, writing, coding, and even drawing each game all by himself <a href="https://www.filfre.net/2016/02/the-road-to-v">had become unsustainable</a>. By the time that&nbsp;<em>Ultima VII</em> and&nbsp;<em>VIII</em> rolled around, he was content to provide a set of design goals and some high-level direction for the story only, while he busied himself with goings-on in the executive suite and playing Lord British for the fans. This trend would do little to reverse itself over the next five years, notwithstanding the occasional pledge from Garriott to “discard the mantle of authority within even my own group so I can stay at the designer level.” (Yes, he really talked like that.) This chronic reluctance on the part of <em>Ultima IX’</em>s&nbsp;most prominent booster to get his hands dirty would be a persistent issue for the project as the corporate politics surrounding it waxed and waned.</p>
<p>For now, the team did what they could with the high-level guidance he provided. Garriott had come to see <em>Ultima IX</em> as the culmination of a “trilogy of trilogies.” Long before it became clear to him that the game would probably mark the end of the series for purely business reasons, he intended it to mark the end of an <em>Ultima </em>era at the very least. He told Bob White that he wanted him to blow up Britannia at the conclusion of the game in much the same way that <a href="https://www.filfre.net/2024/07/the-later-years-of-douglas-adams">Douglas Adams had blown up every possible version of the Earth in his novel <em>Mostly Harmless</em></a>, and for the same reason: in order to ensure that he would have his work cut out for him if he decided to go back on his promise to himself and try to make yet another sequel set in Britannia. By September of 1996, White’s script was far enough along to record an initial round of voice-acting sessions, in the same Hollywood studio used by <em>The Simpsons</em>.</p>
<p>But just as momentum seemed to be coalescing around <em>Ultima IX</em>, two other events at Origin Systems conspired to derail it. The first was the release of <a href="https://www.filfre.net/2023/04/wing-commander-iv"><em>Wing Commander IV: The Price of Freedom</em></a> in April of 1996. Widely trumpeted as the most expensive computer game yet made, the first with a budget that ran to eight digits, it marked the apex of Chris Roberts’s fixation on making “interactive movies,” starring Mark Hamill of <em>Star Wars</em> fame and a supporting cast of Hollywood regulars acting on a real Hollywood sound stage. But it resoundingly failed to live up to Origin’s sky-high commercial expectations for it; at three times the cost of <a href="https://www.filfre.net/2021/03/wing-commander-iii"><em>Wing Commander III</em></a> (which had also featured Hamill), it generated one-third as many sales. This failure threw all of Origin Systems into an existential tizzy. Roberts and few of his colleagues left after being informed that the current direction of the&nbsp;<em>Wing Commander</em> series was financially untenable, and everyone who remained behind wondered how they were going to keep the lights on now that both of Origin’s flagship franchises had fallen on hard times. The studio went through several rounds of layoffs, which deeply scarred the communal psyche of the survivors; Origin would never fully recover from the rupture, never regain its old confident swagger.</p>
<p>Partially in response to this crisis, another project that bore the name of <em>Ultima </em>saw its profile elevated. <em>Ultima Online </em>was to be the fruition of a dream of a persistent multiplayer fantasy world that Richard Garriott had been nursing since the 1980s. In 1995, when rapidly spreading Internet connectivity combined with the latest computer hardware were beginning to make the dream realistically conceivable, he had <a href="https://www.filfre.net/2024/02/the-rise-of-pomg-part-2-multima">hired Raph and Kristen Koster</a>, a pair of Alabama graduate students who were stars of the <a href="https://www.filfre.net/2017/12/games-on-the-net-before-the-web-part-2-mud">textual-MUD</a> scene, to come to Austin and build a multiplayer Britannia. <em>Ultima Online</em> had at first been regarded more as a blue-sky research project than a serious effort to create a money-making game; it had seemed the longest of long shots, and was barely tolerated on that basis by the rest of Origin and EA’s management.</p>
<p>But the collapse of the industry’s “Siliwood” interactive-movie movement, as evinced by the failure of <em>Wing Commander IV</em>, had come in the midst of a major commercial downturn for single-player CRPGs like the traditional <em>Ultimas</em> as well. Both of Origin’s core competencies looked like they might not be applicable to the direction that gaming writ large was going. In this terrifying situation, <em>Ultima Online</em> began to look much more appealing. <a href="https://www.filfre.net/2024/01/the-rise-of-pomg-part-1-it-takes-a-village">Online gaming</a> was growing apace alongside the young World Wide Web, even as the appeal of <em>Ultima Online’</em>s new revenue model, whereby customers could be expected to pay once to buy the game in a box and then&nbsp;<em>keep paying</em> every single month to maintain access to the online multiplayer Britannia, hardly requires further clarification. <em>Ultima Online</em>, it seemed, might be the necessary future for Origin Systems, if it was to have a future at all. These incipient ideas were given a new impetus over the last four months of 1996, when two other massively-multiplayer-online-role-playing games — a term coined by Richard Garriott — <a href="https://www.filfre.net/2024/02/the-rise-of-pomg-part-3-competition-and-conflict/">were launched to a cautiously positive reception</a>. This relative success came even though neither 3DO’s <em>Meridian 59</em> nor Sierra’s <em>The Realm</em>&nbsp;was anywhere near as technically and socially sophisticated as the Kosters intended <em>Ultima Online</em> to be.</p>
<p>By the beginning of 1997, the <em>Ultima Online</em> developers were closing in on <a href="https://www.filfre.net/2024/03/the-rise-of-pomg-part-4-a-world-for-the-taking">a wide-scale beta test</a>, the last step before their game went live for paying customers. Rather cheekily, they asked the fans who had been following their progress closely on the Internet to pony up $5 each months in advance for the privilege of becoming their guinea pigs; cheeky or not, tens of thousands of fans did so. This evidence of pent-up demand convinced the still-tiny team’s managers to go all-in on their game. In March of 1997, the nine <em>Ultima Online</em> people were moved into the office space currently occupied by the 23 people who were making <em>Ultima IX</em>. The latter were ordered to set aside what they were working on and help their new colleagues get their MMORPG into shape for the beta test. In the space of a year, <em>Ultima Online</em> had gone from an afterthought to a major priority, while <em>Ultima IX</em> had done precisely the opposite. Although both games&nbsp;were risky projects, it looked like&nbsp;<em>Ultima Online</em> might be the better match for where gaming was going.</p>
<p>The conjoined team got <em>Ultima Online</em> to beta that summer and into boxes in stores that September, albeit not without a certain degree of backbiting and infighting. (The&nbsp;<em>Ultima Online</em> people regarded the&nbsp;<em>Ultima IX</em> people as last-minute jumpers on their bandwagon; the <em>Ultima IX</em> people were equally resentful, suspecting — and not without some justification — that their own project would never be restarted, especially if the MMORPG took off as Origin hoped it would.) Although dogged throughout its early years by technical issues and teething problems of design, the inevitable niggles of a pioneer, <em>Ultima Online</em> was soon able to attract a fairly stable base of some 90,000 players, each of whom paid Origin $10 per month to roam the highways and byways of Britannia with others.</p>
<p>It became a vital revenue stream for a studio that otherwise didn’t have much of anything going for it. The same year as <em>Ultima Online’</em>s launch,&nbsp;<a href="https://www.filfre.net/2025/11/the-space-sims-last-hurrah"><em>Wing Commander: Prophecy</em></a>, an attempt to reboot the series for this post-Chris Roberts, post-interactive-movie era, was released to sales even worse than those of <em>Wing Commander IV</em>, marking the anticlimactic end of the franchise that had been the biggest in computer gaming just a few years earlier. Any petty triumph Richard Garriott might have been tempted to feel at having seen his <em>Ultima</em> outlive&nbsp;<em>Wing Commander</em> was undermined by the harsh reality of Origin’s plight. The only single-player games now left in development at the incredible shrinking studio were the <a href="https://www.mobygames.com/group/338/janes-combat-simulations-longbow-series/"><em>Jane’s Longbow</em></a> hardcore helicopter simulations, entries in yet another genre that was falling on hard commercial times.</p>
<p>Electronic Arts was taking a more and more hands-on role as Origin’s fortunes declined. A pair of executives named Neil Young and Chris Yates had been parachuted in from the Silicon Valley mother ship to become Origin’s new General Manager and Chief Technical Officer respectively. Much to the old team’s surprise, they opted to restart <em>Ultima IX</em> in late 1997. They read the massive success of the CRPG-lite <a href="https://www.filfre.net/2023/07/diablo"><em>Diablo</em></a> as a sign that the genre might not be as dead to gamers as everyone had thought, especially if it was given an audiovisual facelift and, following the example of <em>Diablo</em>, had its gameplay greatly simplified. A producer named Edward Alexander Del Castillo was hired away from Westwood Studios, where he had been in charge of the mega-selling <a href="https://www.filfre.net/2023/06/a-dialog-in-real-time-strategy"><em>Command &amp; Conquer</em></a> series of real-time-strategy games. If anyone could figure out how to make the latest single-player <em>Ultima</em> seem relevant to fans of more recent gameplay paradigms, it ought to be him.</p>
<p>What with the ongoing layoffs and other forms of attrition, fewer than half of the 23 people who had been working on <em>Ultima IX</em> prior to the&nbsp;<em>Ultima Online</em> interregnum returned to the project. Those who did sifted through the leavings of their earlier efforts, trying to salvage whatever they could to suit Del Castillo’s new plans for the project. He re-imagined the game into something that looked more like the misbegotten <em>Ultima VIII</em> than the hallowed&nbsp;<em>Ultima VII</em>. The additional party members were done away with, as was the roving camera, and the visuals and interface came to mimic third-person action games like the hugely popular <a href="https://www.filfre.net/2023/06/tomb-raider"><em>Tomb Raider</em></a>.&nbsp;Del Castillo convinced Richard Garriott to come up with a new story outline in which Britannia didn’t get destroyed, an event which might now read as confusing, given that people would presumably still be logging into <em>Ultima Online</em> to adventure there after this single-player game’s release. In the new script, as fleshed out once again by Bob White, the player’s goal would be to become one with the villainous Guardian, who would turn out to be the other half of himself, and rise as one being with him to a higher plane of existence; thus the “ascension” of the eventual subtitle. It felt like the older games in the way it flirted with spirituality, for all that it did so a bit clumsily. (Garriott stated in a contemporaneous interview that “I’m enamored with Buddhism right now,” as if it was a catchy tune he’d heard on the radio; this isn’t the way spirituality is supposed to work.)</p>
<p>In May of 1998, Origin brought the work in progress to the E3 trade show.&nbsp;It did not go well.&nbsp;The old-school fans were appalled by <a href="https://www.youtube.com/watch?v=vx1cbsAzCsg">the teaser video</a> the team brought with them, featuring lots of blood-splattered carnage choreographed to a thrash-metal soundtrack, more <em>DOOM</em> than&nbsp;<em>Ultima</em>. Del Castillo got defensive and derisive when confronted with their criticisms, making a bad situation worse: “<em>Ultimas</em> are not about stick men and baking bread.&nbsp;<em>Ultimas</em> are about using the computer as a tool to enhance the fantasy experience. To take away the clumsy dice, slow charts and paper and give you wonderful gameplay instead. They were never meant to mimic paper RPGs; they were meant to exceed them.” In addition to being a straw-man argument, this was also an ahistorical one: like all of <a href="https://www.filfre.net/2011/08/the-first-crpgs">the first CRPGs</a>, Richard Garriott’s first <em>Ultima</em> games had been literal, explicit attempts to put the <a href="https://www.filfre.net/2011/07/dungeons-and-dragons">tabletop <em>Dungeons &amp; Dragons</em> game</a> he loved on a computer. Internet forums and Usenet message boards burned with indignation in the weeks and months after the show.</p>
<p>Those who could abandoned the increasingly dysfunctional ship. Bob White bailed for John Romero’s new company Ion Storm, where he became a designer on <a href="https://www.mobygames.com/game/1749/deus-ex/"><em>Deus Ex</em></a>. Then Del Castillo was fired, thanks to “philosophical differences” with Richard Garriott. Lead programmer Bill Randolph recalls the last words Del Castillo said to him on the day he left: “They don’t care about the game. They’re just going to shove it out the door unfinished.”</p>
<p>Garriott announced, not for the first time, that he intended to step in and take a more hands-on role at this juncture, but that never amounted to much beyond an unearned “Director” credit. “You know, he had a lot of other obligations, and he had a lot going on, and a lot of other interests that he was pursuing too,” says Randolph by way of apologizing for his boss. Be that as it may, Garriott’s presence on the org chart but non-presence in the office resulted in a classic power vacuum; everyone could see that the game was shaping up to be hot garbage, but no one felt empowered to take the steps that were needed to fix it. Turnover continued to be a problem as Origin continued to take on water. Few of the people left on the team had any experience with or emotional connection to the previous single-player <em>Ultima</em> games.</p>
<p>Del Castillo’s ominous prophecy came true on November 26, 1999, after a frantic race to the bottom, during which the exhausted, demoralized team tried to hammer together a bunch of ill-fitting fragments into some semblance of a playable game in time for EA’s final deadline. They met the deadline — what other choice did they have? — but the playable game eluded them.</p>
<hr>
<p><a href="https://www.filfre.net/2026/02/ultima-ix/u9_10/" rel="attachment wp-att-6650"><img decoding="async" class="aligncenter size-medium wp-image-6650" src="https://www.filfre.net/wp-content/uploads/2026/02/u9_10-600x300.jpg" alt="" width="600" height="300" srcset="https://www.filfre.net/wp-content/uploads/2026/02/u9_10-600x300.jpg 600w, https://www.filfre.net/wp-content/uploads/2026/02/u9_10.jpg 640w" sizes="(max-width: 600px) 100vw, 600px"></a><br>
I don’t want to spend a lot of time here excoriating <em>Ultima IX</em> in detail, the way I did&nbsp;<em>Omikron: The Nomad Soul</em> in <a href="https://www.filfre.net/2026/01/omikron-the-nomad-soul">my very last article</a>. I nominated <em>Omikron</em> for Worst Game of 1999, but <em>Ultima IX</em> has run away with that prize. Although I found <em>Omikron</em> to be deliriously lousy, it was at least lousy in a somewhat interesting way, the product of a distinctive if badly misguided vision. <em>Ultima IX</em>, alas, doesn’t have even that much going for it. Whatever original creative vision it might once have evinced has been so thoroughly ground away by outside pressures and corporate interference that it’s not even fun to make fun of. As far as kind words go, all I can come up with is that the box looks pretty good — a right proper <em>Ultima</em> box, that is — and some of the landscape vistas are impressive, as long as you don’t spoil the experience by trying to do anything as you’re looking at them. Everything else is pants.</p>
<p>Imagine the worst possible implementation of every single thing <em>Ultima IX</em> tries to do and be, and you’ll have a reasonably good picture of what this game is like. Even 26 years later, it remains a technical disaster: crashing constantly, full of memory leaks that gradually degrade performance as you play. Characters and monsters have an unnerving habit of floating in the air, their feet at the height of your eyes; corpses — and not undead ones — sometimes inexplicably keep on fighting instead of staying put on the ground (or in mid-air, as the case may be). These things ought to be funny in a “so bad it’s good” kind of way, but somehow they aren’t. Absolutely nothing about this game is entertaining — not the cutscenes that were earmarked for an earlier incarnation of the script only to be shoehorned into this one, not the countless other parts of the story that just don’t make any sense. Nothing <em>feels</em> right; the physics of the world are subtly off even when everything is ostensibly working correctly. The fixed camera always seems to be pointing precisely where you don’t want it to, and combat is just bashing away on the mouse button, an action which feels peculiarly disconnected from what you see your character doing onscreen.</p>
<p>Of course, one can make the argument that <em>Ultima</em> wasn’t really&nbsp;<em>about</em> combat even in its best years;&nbsp;<em>Ultima VII’</em>s combat system is almost as bad as this one, and that hasn’t prevented that game from becoming the consensus choice for the peak of the entire series. What well and truly pissed off the series’s hardcore fan base back in the day was how badly this game fails as an <em>Ultima</em>. A game that was once supposed to correct the ill-advised misstep that had been <em>Ultima VIII</em> and mark a return to the franchise’s core values managed in the end to feel like even more of a betrayal than its predecessor. This final installment of a series famous for the freedom it affords its player is a rigidly linear slog through underwhelming plot point after underwhelming plot point. Go to the next city; perform the same set of rote tasks as in the last one; rinse and repeat. If you try too hard to do something other than that which has been foreordained for you, you just end up breaking the game and having to start over.</p>
<p>And yet it’s not as if <em>Ultima IX</em> doesn’t <em>try</em> to exploit its heritage. In fact, no&nbsp;<em>Ultima</em> that came before was as relentlessly self-referential as this one. You create your character by answering questions from a gypsy fortuneteller, like in the iconic opening of <em>Ultima IV</em>. The plot hinges on yet another corruption of the Virtues, like in the fourth, fifth, and sixth games. You visit Lord British in his castle, like in every <em>Ultima</em> ever. There you find a newly constructed museum celebrating your exploits, from your defeat of the evil wizard Mondain in <em>Ultima I</em> to your recent difficulties with the Guardian, the overarching villain of this third trilogy of trilogies. The foregrounded self-referentiality quickly becomes much, much too much; it gives the game a past-its-time, sclerotic feel that must have thoroughly nonplussed any of the new generation CRPG players, weaned on <a href="https://www.filfre.net/2025/03/the-crpg-renaissance-part-5-fallout-2-and-baldurs-gate"><em>Baldur’s Gate</em></a> and&nbsp;<a href="https://www.filfre.net/2025/02/the-crpg-renaissance-part-2-might-and-magic-vi"><em>Might and Magic VI</em></a> and&nbsp;<a href="https://www.filfre.net/2025/07/the-year-of-peak-might-and-magic"><em>VII</em></a>, who might have been unwise enough to pick this game up instead of <a href="https://www.mobygames.com/game/648/planescape-torment/"><em>Planescape: Torment</em></a>, its primary competition that Christmas season of 1999. <em>Ultima IX</em> is like that boring old man who can’t seem to shut up about all the cool stuff he used to get up to.</p>
<p>But at the same time, and almost paradoxically,&nbsp;<em>Ultima IX</em> is utterly clueless about its heritage, all too obviously the product — and I use that word advisedly — of people who knew&nbsp;<em>Ultima</em> only as a collection of tropes. I don’t really mean all the little details that it gets wrong, which the fans have, predictably enough, <a href="https://hacki.bootstrike.com/english/nitpicks_u9_tapestry.htm">cataloged at exhaustive length</a>. When it comes to questions of continuity, I’m actually prepared to extend quite a lot of slack to a series that went from games written by a teenager all by himself in his bedroom to multi-million-dollar productions like this one over the course of almost twenty years of tempestuous technical and cultural evolution in the field of gaming. Rather than the nitpicky details, it’s the huge, fundamental things that this game and its protagonist seem not to know that flummox me. (Remember, the official line is that the Avatar is <em>the same guy</em> through all nine mainline <em>Ultima </em>games and all of the spinoffs to boot.) At one point in this game, the Avatar encounters the Codex of Ultimate Wisdom, the object around which revolved the plot of <em>Ultima IV</em>, probably the best-remembered and most critically lauded entry in the series except for&nbsp;<em>Ultima VII</em>. “The Codex of Ultimate Wisdom?” he repeats in a confused tone of voice, as if he’s sounding out the words as he goes. As Noah Antwiler said in my favorite quip from his video series, this is like the pope asking someone if she happens to know what this Bible thing is that the priests around him keep banging on about.</p>
<p>The most famous meme that came out of Antwiler’s videos is another example of the Avatar’s slack-jawed cluelessness. “What’s a paladin?” he asks the first person he meets in Trinsic, the town of Honor which he has visited many times in the course of his questing. You have to <a href="https://www.youtube.com/watch?v=Otf9Bnm48Kk">hear him say it</a>, in the voice of a bored television announcer, to fully appreciate it. (Like everything else in this game, the voice-acting, which had to be redone at the last minute to fit the new script, is uniformly atrocious, the output of people who all too clearly have no idea what they’re saying or why they’re saying it. Lord British sounds like a doddering old fool, inadvertently mirroring the state of the series by this point.)</p>
<p>You can make excuses for the existence of some of this stuff, if not the piss-poor execution. Origin obviously felt a need to make <em>Ultima IX</em> comprehensible and accessible to new players, coming as it did fully five and a half years after its predecessor. Lots of people had joined the gaming hobby over those years, and some of the old-timers had left it. But such excuses didn’t keep the people who were most invested in the series from seeing it as a slap to the face. “What’s a paladin?” indeed. They felt as if a treasured artifact of their childhood had been stolen and desecrated by a bunch of philistines who didn’t know an ankh from a hole in the ground. Origin ended up with the worst of all worlds: a game that felt too wrapped up in its lore to live and breathe for newcomers, even as it felt insultingly dumbed-down to the faithful who had been awaiting it with bated breath since 1994.</p>
<p>Any lessons we might hope to draw from this fiasco are, much like the game itself, almost too banal to be worth discussing. But, for the record:</p>
<ul>
<li>No game can be all things to all people.</li>
<li>Development teams need a clear leader with a clear vision.</li>
<li>Checking off a list of bullet points sent down from marketing does not a good game make.</li>
<li>When the design goals do change radically, it’s often better to throw everything out and start over from scratch than to keep retro-fitting bits and pieces onto the Frankenstein’s monster.</li>
<li>It’s better to release a good game late than a bad game on time.</li>
</ul>
<p>Beginning with&nbsp;<em>Ultima VIII</em>, the series had begun to chase trends rather than to blaze its own trails. This game, despite all the good intentions with which it was begun, doubled down on that trend in the end. Even if the execution had been better, it would still have felt like a pale shadow of the earlier <em>Ultima</em> games, the ones that had the courage of their convictions. It’s not just a bad game; it’s a dull, soulless one too. If the&nbsp;<em>Ultima</em> series had to go out on a sour note, it would have been infinitely nicer to see it blow itself up in some sort of spectacular failure rather than ending in this flaccid fashion. Origin’s Neil Young could have learned a lesson from his musical namesake: <a href="https://www.youtube.com/watch?v=w_hoW6qmeOo">“It’s better to burn out than to fade away.”</a></p>
<hr>
<div id="attachment_6640" style="width: 610px" class="wp-caption aligncenter"><a href="https://www.filfre.net/2026/02/ultima-ix/u9_2/" rel="attachment wp-att-6640"><img decoding="async" aria-describedby="caption-attachment-6640" class="size-medium wp-image-6640" src="https://www.filfre.net/wp-content/uploads/2026/01/u9_2-600x450.jpg" alt="" width="600" height="450" srcset="https://www.filfre.net/wp-content/uploads/2026/01/u9_2-600x450.jpg 600w, https://www.filfre.net/wp-content/uploads/2026/01/u9_2.jpg 640w" sizes="(max-width: 600px) 100vw, 600px"></a><p id="caption-attachment-6640" class="wp-caption-text">You start out in your house on Earth, even though this directly contradicts the ending of <em>Ultima VIII</em>.</p></div>
<div id="attachment_6639" style="width: 610px" class="wp-caption aligncenter"><a href="https://www.filfre.net/2026/02/ultima-ix/u9_1/" rel="attachment wp-att-6639"><img decoding="async" aria-describedby="caption-attachment-6639" class="size-medium wp-image-6639" src="https://www.filfre.net/wp-content/uploads/2026/01/u9_1-600x450.jpg" alt="" width="600" height="450" srcset="https://www.filfre.net/wp-content/uploads/2026/01/u9_1-600x450.jpg 600w, https://www.filfre.net/wp-content/uploads/2026/01/u9_1.jpg 640w" sizes="(max-width: 600px) 100vw, 600px"></a><p id="caption-attachment-6639" class="wp-caption-text">The gypsy fortuneteller makes a return to help you choose a class and send you on your way to Britannia.</p></div>
<div id="attachment_6641" style="width: 610px" class="wp-caption aligncenter"><a href="https://www.filfre.net/2026/02/ultima-ix/u9_3/" rel="attachment wp-att-6641"><img decoding="async" aria-describedby="caption-attachment-6641" class="size-medium wp-image-6641" src="https://www.filfre.net/wp-content/uploads/2026/01/u9_3-600x450.jpg" alt="" width="600" height="450" srcset="https://www.filfre.net/wp-content/uploads/2026/01/u9_3-600x450.jpg 600w, https://www.filfre.net/wp-content/uploads/2026/01/u9_3.jpg 640w" sizes="(max-width: 600px) 100vw, 600px"></a><p id="caption-attachment-6641" class="wp-caption-text">Lord British has… lost a step.</p></div>
<div id="attachment_6642" style="width: 610px" class="wp-caption aligncenter"><a href="https://www.filfre.net/2026/02/ultima-ix/u9_4/" rel="attachment wp-att-6642"><img decoding="async" aria-describedby="caption-attachment-6642" class="size-medium wp-image-6642" src="https://www.filfre.net/wp-content/uploads/2026/01/u9_4-600x450.jpg" alt="" width="600" height="450" srcset="https://www.filfre.net/wp-content/uploads/2026/01/u9_4-600x450.jpg 600w, https://www.filfre.net/wp-content/uploads/2026/01/u9_4.jpg 640w" sizes="(max-width: 600px) 100vw, 600px"></a><p id="caption-attachment-6642" class="wp-caption-text">Yes, that is a euphemism for sex. (Why are so many games from this era so horny?)</p></div>
<div id="attachment_6643" style="width: 610px" class="wp-caption aligncenter"><a href="https://www.filfre.net/2026/02/ultima-ix/u9_5/" rel="attachment wp-att-6643"><img decoding="async" aria-describedby="caption-attachment-6643" class="size-medium wp-image-6643" src="https://www.filfre.net/wp-content/uploads/2026/01/u9_5-600x450.jpg" alt="" width="600" height="450" srcset="https://www.filfre.net/wp-content/uploads/2026/01/u9_5-600x450.jpg 600w, https://www.filfre.net/wp-content/uploads/2026/01/u9_5.jpg 640w" sizes="(max-width: 600px) 100vw, 600px"></a><p id="caption-attachment-6643" class="wp-caption-text">“What? Where? By the way, what’s a paladin?”</p></div>
<div id="attachment_6644" style="width: 610px" class="wp-caption aligncenter"><a href="https://www.filfre.net/2026/02/ultima-ix/u9_6/" rel="attachment wp-att-6644"><img decoding="async" aria-describedby="caption-attachment-6644" class="size-medium wp-image-6644" src="https://www.filfre.net/wp-content/uploads/2026/01/u9_6-600x450.jpg" alt="" width="600" height="450" srcset="https://www.filfre.net/wp-content/uploads/2026/01/u9_6-600x450.jpg 600w, https://www.filfre.net/wp-content/uploads/2026/01/u9_6.jpg 640w" sizes="(max-width: 600px) 100vw, 600px"></a><p id="caption-attachment-6644" class="wp-caption-text">The Gargoyles still speak only in infinitives. (Hey, Yoda’s speech patterns were already taken.)</p></div>
<div id="attachment_6645" style="width: 610px" class="wp-caption aligncenter"><a href="https://www.filfre.net/2026/02/ultima-ix/u9_7/" rel="attachment wp-att-6645"><img decoding="async" aria-describedby="caption-attachment-6645" class="size-medium wp-image-6645" src="https://www.filfre.net/wp-content/uploads/2026/01/u9_7-600x450.jpg" alt="" width="600" height="450" srcset="https://www.filfre.net/wp-content/uploads/2026/01/u9_7-600x450.jpg 600w, https://www.filfre.net/wp-content/uploads/2026/01/u9_7.jpg 640w" sizes="(max-width: 600px) 100vw, 600px"></a><p id="caption-attachment-6645" class="wp-caption-text">Good for you, buddy.</p></div>
<div id="attachment_6646" style="width: 610px" class="wp-caption aligncenter"><a href="https://www.filfre.net/2026/02/ultima-ix/u9_8/" rel="attachment wp-att-6646"><img decoding="async" aria-describedby="caption-attachment-6646" class="size-medium wp-image-6646" src="https://www.filfre.net/wp-content/uploads/2026/01/u9_8-600x450.jpg" alt="" width="600" height="450" srcset="https://www.filfre.net/wp-content/uploads/2026/01/u9_8-600x450.jpg 600w, https://www.filfre.net/wp-content/uploads/2026/01/u9_8.jpg 640w" sizes="(max-width: 600px) 100vw, 600px"></a><p id="caption-attachment-6646" class="wp-caption-text">Stanley Kubrick called. He wants his monolith back.</p></div>
<hr>
<p><code> </code><br>
As you have probably surmised, <em>Ultima IX</em> did not do well in the marketplace. There was never any serious discussion of continuing the single-player series after it was greeted with bad reviews and worse sales. In fact, it managed not only to kill the series to which it belonged but for all intents and purposes the studio that had always been so closely identified with it as well. It was the last single-player game ever to be completed at Origin Systems.</p>
<p>Officially speaking, Origin continued to exist for another four years after it, but only as an MMORPG house. Right about the same time that <em>Ultima IX</em> was reaching stores, <em>Ultima Online</em>&nbsp;was actually ceding its crown as the biggest MMORPG of all to <a href="https://www.filfre.net/2025/07/everquest"><em>EverQuest</em></a>. Nevertheless, in a bull market for shared worlds like these in general amidst the first wave of widespread broadband-Internet adoption, <em>Ultima Online’</em>s raw numbers still increased, reaching as many as 250,000 subscribers in early 2003. But the numbers started to go the other way thereafter as the MMORPG field became ever more crowded with younger, slicker entrants. Inevitably, there came a day in February of 2004 when it no longer made sense to EA to keep an office open in Austin just to support a single aged and declining online game. And so the story of Origin Systems came to its belated, scarcely noticed end, a decade after its best years were over.</p>
<p>By then,&nbsp;Richard Garriott was long gone; he had left Origin in March of 2000. His subsequent career did little to prove that his dilettantish approach to the later <em>Ultima </em>games had been a fluke. He dabbled in gaming only in fits and starts, most notably by lending his name to several more MMORPGs. As <a href="https://www.filfre.net/2025/11/mr-roberts-goes-to-hollywood-part-1-a-digital-anvil">also happened with his old Origin sparring partner Chris Roberts</a>, an unfortunate whiff of grift came to attach itself to him; I tend to think that it’s born more of carelessness in his choice of projects and associates than guile in his case, but that doesn’t make it any more pleasant to witness. <em>Shroud of the Avatar</em>, his Kickstarter-funded would-be second coming of <em>Ultima Online</em>, produced more than its fair share of broken promises and ethical questions about its pay-to-win focus during the 2010s. More recently, he has talked up an MMORPG based on blockchain technology (Lord help us!) that now appears unlikely to turn into anything at all. It seems abundantly plain that his heart hasn’t really been in making games for many years now. One hopes he will finally be content just to retire from an industry that has long since passed him by.</p>
<hr>
<div id="attachment_6638" style="width: 610px" class="wp-caption aligncenter"><a href="https://www.filfre.net/2026/02/ultima-ix/richard_garriott_gdc_2018_cropped/" rel="attachment wp-att-6638"><img decoding="async" aria-describedby="caption-attachment-6638" class="size-medium wp-image-6638" src="https://www.filfre.net/wp-content/uploads/2026/01/Richard_garriott_gdc_2018_cropped-600x572.jpg" alt="" width="600" height="572" srcset="https://www.filfre.net/wp-content/uploads/2026/01/Richard_garriott_gdc_2018_cropped-600x572.jpg 600w, https://www.filfre.net/wp-content/uploads/2026/01/Richard_garriott_gdc_2018_cropped-1024x976.jpg 1024w, https://www.filfre.net/wp-content/uploads/2026/01/Richard_garriott_gdc_2018_cropped-768x732.jpg 768w, https://www.filfre.net/wp-content/uploads/2026/01/Richard_garriott_gdc_2018_cropped-1536x1464.jpg 1536w, https://www.filfre.net/wp-content/uploads/2026/01/Richard_garriott_gdc_2018_cropped.jpg 1582w" sizes="(max-width: 600px) 100vw, 600px"></a><p id="caption-attachment-6638" class="wp-caption-text">There’s something a little sad about watching Richard Garriott play the hits in his Lord British get-up as he closes in on retirement age.</p></div>
<p>However cheerless of a conclusion it might be, this very last article about Richard Garriott and <em>Ultima </em>marks a milestone for these histories. I’ve genuinely loved some of the <em>Ultima</em> games I’ve played these past fifteen years: <em>Ultima I</em> for its irrepressible teenage-Dungeonmaster enthusiasm, <em>Ultima VII</em> for its literary and <a href="https://www.filfre.net/2019/03/scientology-and-the-fellowship">thematic</a> audacity, <em>Ultima Underworld</em> for its bold spirit of innovation. Most of all, I found myself loving the rollicking <em>Worlds of Ultima</em> games, two of the least played, least remembered entries in the series. (By all means, go check them out if you haven’t tried them!) As for the rest — at least the ones that came before <em>Ultima VIII</em> — I can see their place in history and see why others love or once loved them, even if I do also see them more as artifacts of their time than timeless.</p>
<p>But such carping is almost irrelevant to the cultural significance of <em>Ultima</em>.&nbsp;Richard Garriott had a huge impact on thousands upon thousands of people through <em>Ultima IV</em> in particular, a game which caused many of its young players to think seriously about the nature of morality and their place in the world for the very first time. Coming from a fellow not much older than they were, raised on the same sci-fi flicks and fantasy fiction that they were consuming, moral philosophy felt more real and relevant than it did when it was taught to them in school. Small wonder that so many of them still adore him for what his work meant to them all those years ago, still rush to defend him whenever a curmudgeon like myself points out his feet of clay. And that’s fine; we need to be clear-eyed about things sometimes, but at other times we just need our heroes.</p>
<p>So, let us bid a fond farewell to Richard Garriott — or, if you insist, Lord British, the virtuous king of Britannia. His legacy as one of gaming’s greatest visionaries is secure.</p>
<hr>
<p><code> </code><br>
<strong>Did you enjoy this article? If so, please think about pitching in to help me make many more like it. You can pledge any amount you like.</strong></p>
<p><a href="https://www.patreon.com/DigitalAntiquarian" rel="attachment wp-att-5598"><img decoding="async" class="aligncenter wp-image-5598 size-full" src="https://www.filfre.net/wp-content/uploads/2023/04/Patreon-300x133-1.png" alt="" width="300" height="133"></a></p>
<hr>
<p><code> </code></p>
<p><strong>Sources</strong><strong>:</strong> The books&nbsp;<em>Explore/Create: My Life in Pursuit of New Frontiers, Hidden Worlds, and the Creative Spark</em> by Richard Garriott with David Fisher;&nbsp;<em>Through the Moongate: The Story of Richard Garriott, Origin Systems Inc. and Ultima</em>, in two parts by Andrea Contato;&nbsp;<em>Ultima IX: Prima’s Official Strategy Guide</em>;&nbsp;<em>Online Game Pioneers at Work</em> by Morgan Ramsay.&nbsp;Origin Systems’s internal newsletter&nbsp;<em>Point of Origin</em> of December 6 1991, February 10 1995, and September 20 1996;&nbsp;<em>Next Generation</em> of March 1998;&nbsp;<em>Computer Gaming World</em> of September 1992 and February 2000.</p>
<p>Online sources include <a href="https://hacki.bootstrike.com/english/nitpicks_u9_tapestry.htm">“<em>Ultima IX</em> Nitpicks on the Tapestry of the Ages”</a> on&nbsp;<em>Hacki’s Ultima Page</em>; Noah Anwiler’s <a href="https://www.youtube.com/watch?v=mQUVfo_kBMU">video lacerations of&nbsp;<em>Ultima IX</em></a>; the&nbsp;<em>Ultima Codex’</em>s <a href="https://wiki.ultimacodex.com/wiki/Development_history_of_Ultima_IX">“Development History of&nbsp;<em>Ultima IX</em></a>“;&nbsp;<em>Ultima Codex</em> interviews with <a href="https://ultimacodex.com/interviews/oh-no-not-moonglow-again-an-interview-with-mike-mcshaffry/">Mike McShaffry</a> and <a href="https://ultimacodex.com/interviews/an-inertia-of-legend-an-interview-with-bill-randolph/">Bill Randolph</a>; an old&nbsp;<em>GameSpot</em> <a href="https://web.archive.org/web/19981206110532/http://www.gamespot.com/features/ultima9">interview with McShaffry</a>; Julian Schoffel’s&nbsp;<a href="https://web.archive.org/web/20160818215354/http://www.growlingdoggames.com/2012/05/ultima-9-ascension-review/"><em>Ultima IX</em> retrospective</a> for&nbsp;<em>Growling Dog Games</em>; a December 1999 <a href="https://uo.stratics.com/uohoc/logs/1999-12-14-u9hoc.shtml">group chat</a> with some of the&nbsp;<em>Ultima IX</em> team; Desslock’s October 1998 <a href="http://web.archive.org/web/20000226014752/http://desslock.gamespot.com/features/ultima/interview-index.html">interview with Richard Garriott</a> for&nbsp;<em>GameSpot</em>; Trent C. Ward’s <a href="https://web.archive.org/web/20020225004539/http://pc.ign.com/articles/161/161753p1.html">review of <em>Ultima IX</em></a> for&nbsp;<em>IGN</em>; KiraTV’s <a href="https://www.youtube.com/watch?v=EMxjwtxn6NI">documentary about&nbsp;<em>Shroud of the Avatar</em></a> (but do be aware that the first part of this video uncritically regurgitates the legend rather than the reality of Richard Garriott’s pre-millennial career).</p>
<p><strong>Where to Get It:</strong>&nbsp;<em><a href="https://www.gog.com/en/game/ultima_9_ascension">Ultima IX: Ascension</a> </em>is available as a digital purchase at GOG.com.</p>
]]></description>
      <pubDate>Fri, 06 Feb 2026 17:09:05 +0000</pubDate>
      <link>https://www.filfre.net/2026/02/ultima-ix/</link>
      <dc:creator>The Digital Antiquarian</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/5109736425</guid>
    </item>
    <item>
      <title><![CDATA[40(ish) pieces of "advice" from 2025]]></title>
      <description><![CDATA[<meta charset="utf-8"><title>40(ish) pieces of "advice" from 2025</title><style>
@media (max-width: 1024px) {
  .typography .pullquote-align-left,
  .typography.editor .pullquote-align-left,
  .typography .pullquote-align-right,
  .typography.editor .pullquote-align-right,
  .typography .pullquote-align-wide,
  .typography.editor .pullquote-align-wide,
  .typography .pullquote-align-center,
  .typography.editor .pullquote-align-center {
    float: none;
    margin: 0 auto;
    width: 100%;
    max-width: 100%;
  }
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .typography .markup table.image-wrapper img,
  .typography.editor .markup table.image-wrapper img,
  .typography .markup table.kindle-wrapper img,
  .typography.editor .markup table.kindle-wrapper img {
    max-width: 550px;
  }
}
@media (min-width: 1024px) {
  .typography:not(:has(#toc)) .captioned-image-container figure:has(> a.image2-offset-left),
  .typography.editor:not(:has(#toc)) .captioned-image-container figure:has(> a.image2-offset-left) {
    margin-left: var(--image-offset-margin);
  }
  .typography:not(:has(#toc)) .captioned-image-container figure:has(> a.image2-offset-right),
  .typography.editor:not(:has(#toc)) .captioned-image-container figure:has(> a.image2-offset-right) {
    margin-right: var(--image-offset-margin);
  }
}
@media (min-width: 1300px) {
  .typography .captioned-image-container figure:has(> a.image2-offset-left),
  .typography.editor .captioned-image-container figure:has(> a.image2-offset-left) {
    margin-left: var(--image-offset-margin);
  }
  .typography .captioned-image-container figure:has(> a.image2-offset-right),
  .typography.editor .captioned-image-container figure:has(> a.image2-offset-right) {
    margin-right: var(--image-offset-margin);
  }
}
@media (max-width: 1024px) {
  .typography,
  .typography.editor {
    /* Disable offset on mobile/tablet */
  }
  .typography .captioned-image-container figure:has(> a.image2-align-left),
  .typography.editor .captioned-image-container figure:has(> a.image2-align-left),
  .typography .captioned-image-container figure:has(> a.image2-align-right),
  .typography.editor .captioned-image-container figure:has(> a.image2-align-right) {
    float: none;
    margin: 1em auto;
    max-width: 100%;
    width: auto;
    padding: 0;
  }
  .typography .captioned-image-container figure:has(> a.image2-align-left.thefp),
  .typography.editor .captioned-image-container figure:has(> a.image2-align-left.thefp),
  .typography .captioned-image-container figure:has(> a.image2-align-right.thefp),
  .typography.editor .captioned-image-container figure:has(> a.image2-align-right.thefp) {
    margin: 1em auto;
  }
  .typography .captioned-image-container figure:has(> a.image2-offset-left),
  .typography.editor .captioned-image-container figure:has(> a.image2-offset-left),
  .typography .captioned-image-container figure:has(> a.image2-offset-right),
  .typography.editor .captioned-image-container figure:has(> a.image2-offset-right) {
    margin: 1em auto;
  }
  .typography .captioned-image-container figure:has(> a.image2-align-left) .image2-inset,
  .typography.editor .captioned-image-container figure:has(> a.image2-align-left) .image2-inset,
  .typography .captioned-image-container figure:has(> a.image2-align-right) .image2-inset,
  .typography.editor .captioned-image-container figure:has(> a.image2-align-right) .image2-inset {
    display: block;
    justify-content: initial;
  }
}
@media (max-width: 768px) {
  .typography .markup div.sponsorship-campaign-embed,
  .typography.editor .markup div.sponsorship-campaign-embed {
    margin-top: 24px;
    margin-bottom: 24px;
  }
  .typography .markup div.sponsorship-campaign-embed:first-child,
  .typography.editor .markup div.sponsorship-campaign-embed:first-child {
    margin-top: 0px;
  }
}
@media screen and (max-width: 650px) {
  .typography .markup div.youtube-overlay,
  .typography.editor .markup div.youtube-overlay,
  .typography .markup div.vimeo-overlay,
  .typography.editor .markup div.vimeo-overlay {
    display: none !important;
  }
}
@media screen and (max-width: 370px) {
  .typography .markup div.tiktok-wrap,
  .typography.editor .markup div.tiktok-wrap {
    width: calc(95vw - 32px);
    height: calc((95vw - 32px - 2px) / 0.485714);
  }
}
@media screen and (max-width: 650px) {
  .typography .markup div.embedded-publication-wrap .embedded-publication.show-subscribe,
  .typography.editor .markup div.embedded-publication-wrap .embedded-publication.show-subscribe {
    padding: 24px;
  }
}
@media screen and (max-width: 650px) {
  .typography .markup div.subscription-widget-wrap .subscription-widget.show-subscribe,
  .typography.editor .markup div.subscription-widget-wrap .subscription-widget.show-subscribe,
  .typography .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe,
  .typography.editor .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe,
  .typography .markup div.captioned-button-wrap .subscription-widget.show-subscribe,
  .typography.editor .markup div.captioned-button-wrap .subscription-widget.show-subscribe {
    padding: 0px 24px;
  }
}
@media screen and (max-width: 650px) {
  .typography .markup div.subscription-widget-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  .typography.editor .markup div.subscription-widget-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  .typography .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  .typography.editor .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  .typography .markup div.captioned-button-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  .typography.editor .markup div.captioned-button-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button {
    padding: 10px 12px;
    min-width: 110px;
  }
}
@media (max-width: 650px) {
  .typography .markup .twitter-embed,
  .typography.editor .markup .twitter-embed,
  .typography .markup .tweet,
  .typography.editor .markup .tweet {
    padding: 12px;
  }
}
@media (max-width: 650px) {
  .typography .markup .twitter-embed .tweet-text,
  .typography.editor .markup .twitter-embed .tweet-text,
  .typography .markup .tweet .tweet-text,
  .typography.editor .markup .tweet .tweet-text {
    font-size: 14px;
    line-height: 20px;
  }
}
@media (max-width: 650px) {
  .typography .markup .twitter-embed .tweet-photos-container.two,
  .typography.editor .markup .twitter-embed .tweet-photos-container.two,
  .typography .markup .tweet .tweet-photos-container.two,
  .typography.editor .markup .tweet .tweet-photos-container.two,
  .typography .markup .twitter-embed .tweet-photos-container.three,
  .typography.editor .markup .twitter-embed .tweet-photos-container.three,
  .typography .markup .tweet .tweet-photos-container.three,
  .typography.editor .markup .tweet .tweet-photos-container.three,
  .typography .markup .twitter-embed .tweet-photos-container.four,
  .typography.editor .markup .twitter-embed .tweet-photos-container.four,
  .typography .markup .tweet .tweet-photos-container.four,
  .typography.editor .markup .tweet .tweet-photos-container.four {
    height: 200px;
  }
}
@media (max-width: 650px) {
  .typography .markup .twitter-embed a.expanded-link .expanded-link-img,
  .typography.editor .markup .twitter-embed a.expanded-link .expanded-link-img,
  .typography .markup .tweet a.expanded-link .expanded-link-img,
  .typography.editor .markup .tweet a.expanded-link .expanded-link-img {
    max-height: 180px;
  }
}
@media (max-width: 650px) {
  .typography .markup .twitter-embed a.expanded-link .expanded-link-description,
  .typography.editor .markup .twitter-embed a.expanded-link .expanded-link-description,
  .typography .markup .tweet a.expanded-link .expanded-link-description,
  .typography.editor .markup .tweet a.expanded-link .expanded-link-description {
    display: none;
  }
}
@media screen and (max-width: 650px) {
  .typography .markup .apple-podcast-container,
  .typography.editor .markup .apple-podcast-container {
    width: unset;
  }
}
@media (max-width: 420px) {
  .typography .markup .install-substack-app-embed img.install-substack-app-embed-img,
  .typography.editor .markup .install-substack-app-embed img.install-substack-app-embed-img {
    margin: 0 auto 16px auto;
  }
}
@media (max-width: 420px) {
  .typography .markup .install-substack-app-embed .install-substack-app-embed-text,
  .typography.editor .markup .install-substack-app-embed .install-substack-app-embed-text {
    margin: 0 0 12px 0;
    max-width: 100%;
    width: auto;
    text-align: center;
  }
}
@media (max-width: 420px) {
  .typography .markup .install-substack-app-embed .install-substack-app-embed-link,
  .typography.editor .markup .install-substack-app-embed .install-substack-app-embed-link {
    display: flex;
    justify-content: center;
  }
}
@media screen and (min-width: 481px) {
  .share-button-container {
    height: 38px;
  }
}
@media screen and (min-width: 481px) {
  .share-button-container a.comment {
    height: 38px;
    line-height: 38px;
    padding-right: 10px;
  }
}
@media screen and (max-width: 480px) {
  .share-button-container .separator {
    display: block;
    margin: 0;
    height: 8px;
    border-left: none;
  }
}
@media screen and (max-width: 480px) {
  .share-button-container a.share.first img {
    padding-left: 0;
  }
}
@media screen and (min-width: 481px) {
  .share-button-container a.mobile {
    display: none !important;
  }
}
@media screen and (min-width: 541px) {
  .settings-add-pub-modal-wrapper .container .add-recommending-pub-modal-container {
    padding: 36px;
    height: 680px;
  }
}
@media screen and (min-width: 541px) {
  .settings-add-pub-modal-wrapper .container .add-recommending-pub-modal-container .footer {
    position: absolute;
    bottom: 36px;
    margin: 0px;
  }
}
@media screen and (max-width: 650px) {
  .header-anchor-parent {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .post {
    padding: 16px 0 0 0;
  }
}
@media screen and (max-width: 650px) {
  .post .post-header .post-label {
    margin-top: 8px;
  }
}
@media screen and (max-width: 650px) {
  .post .post-header .meta-author-wrap.alternative-meta .meta-right-column .post-meta {
    margin-top: 6px;
  }
}
@media screen and (max-width: 650px) {
  .post .footer-facepile-container {
    height: 64px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
  }
}
@media screen and (max-width: 650px) {
  .post .post-footer.use-separators {
    justify-content: center;
  }
}
@media screen and (max-width: 650px) {
  .post .post-footer.next-prev {
    height: 64px;
    justify-content: space-between;
    box-sizing: border-box;
  }
}
@media screen and (max-width: 650px) {
  .post-contributor-footer .post-contributor-bio-table {
    display: block;
  }
  .post-contributor-footer .post-contributor-bio-table-row {
    display: flex;
    flex-direction: row;
  }
  .post-contributor-footer .post-contributor-bio-userhead-cell,
  .post-contributor-footer .post-contributor-bio-body-cell {
    display: block;
  }
  .post-contributor-footer .post-contributor-bio-body-cell {
    flex-grow: 1;
  }
  .post-contributor-footer .post-contributor-bio-body-table {
    display: block;
  }
  .post-contributor-footer .post-contributor-bio-body-table-row {
    display: block;
  }
  .post-contributor-footer .post-contributor-bio-copy-cell,
  .post-contributor-footer .post-contributor-bio-controls-cell {
    display: block;
  }
  .post-contributor-footer .post-contributor-bio-copy-cell {
    margin: 0 0 16px 0;
  }
  .post-contributor-footer .post-contributor-bio-controls-cell {
    width: auto;
  }
  .post-contributor-footer .post-contributor-bio-controls {
    margin: auto;
  }
  .post-contributor-footer .post-contributor-bio-controls .button.primary {
    width: 100%;
  }
  .post-contributor-footer .post-contributor-bio-text {
    font-size: 14px;
  }
}
@media screen and (min-width: 768px) {
  .post-silhouette {
    padding: 32px 0;
  }
}
@media screen and (max-width: 650px) {
  .post-silhouette .post-silhouette-title {
    margin-top: 10.44225025px;
    height: 120px;
  }
}
@media screen and (max-width: 650px) {
  .post-silhouette .post-silhouette-meta {
    width: 75%;
  }
}
@media screen and (max-width: 650px) {
  .post-silhouette .post-silhouette-meta.with-byline-image {
    margin: 20px 0;
  }
}
@media screen and (max-width: 650px) {
  .use-theme-bg .post-meta.alternative-meta .post-meta-item,
  .post-meta.alternative-meta .post-meta-item {
    padding-right: 16px;
  }
}
@media screen and (max-width: 370px) {
  .use-theme-bg .post-meta.alternative-meta .post-meta-item,
  .post-meta.alternative-meta .post-meta-item {
    font-size: 14px;
  }
}
@media screen and (max-width: 650px) {
  .use-theme-bg .post-meta.alternative-meta .post-meta-item.guest-author-publication,
  .post-meta.alternative-meta .post-meta-item.guest-author-publication {
    display: none;
  }
}
@media screen and (max-width: 370px) {
  .post-meta .post-meta-item .post-meta-button {
    height: 36px !important;
    /* important to override in-line height style on emails */
  }
  .post-meta .post-meta-item .post-meta-button .meta-button-label {
    display: none;
  }
  .post-meta .post-meta-item .post-meta-button > svg {
    margin-right: 0;
  }
}
@media screen and (max-width: 370px) {
  .post-meta .post-meta-item {
    font-size: 12px;
  }
}
@media screen and (max-width: 650px) {
  .post .floating-subscribe-button {
    bottom: 20px;
    right: 20px;
  }
}
@media (max-width: 1024px) {
  body .pullquote-align-left,
  body .pullquote-align-right,
  body .pullquote-align-wide,
  body .pullquote-align-center {
    float: none;
    margin: 0 auto;
    width: 100%;
    max-width: 100%;
  }
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  body .markup table.image-wrapper img,
  body .markup table.kindle-wrapper img {
    max-width: 550px;
  }
}
@media (min-width: 1024px) {
  body:not(:has(#toc)) .captioned-image-container figure:has(> a.image2-offset-left) {
    margin-left: var(--image-offset-margin);
  }
  body:not(:has(#toc)) .captioned-image-container figure:has(> a.image2-offset-right) {
    margin-right: var(--image-offset-margin);
  }
}
@media (min-width: 1300px) {
  body .captioned-image-container figure:has(> a.image2-offset-left) {
    margin-left: var(--image-offset-margin);
  }
  body .captioned-image-container figure:has(> a.image2-offset-right) {
    margin-right: var(--image-offset-margin);
  }
}
@media (max-width: 1024px) {
  body {
    /* Disable offset on mobile/tablet */
  }
  body .captioned-image-container figure:has(> a.image2-align-left),
  body .captioned-image-container figure:has(> a.image2-align-right) {
    float: none;
    margin: 1em auto;
    max-width: 100%;
    width: auto;
    padding: 0;
  }
  body .captioned-image-container figure:has(> a.image2-align-left.thefp),
  body .captioned-image-container figure:has(> a.image2-align-right.thefp) {
    margin: 1em auto;
  }
  body .captioned-image-container figure:has(> a.image2-offset-left),
  body .captioned-image-container figure:has(> a.image2-offset-right) {
    margin: 1em auto;
  }
  body .captioned-image-container figure:has(> a.image2-align-left) .image2-inset,
  body .captioned-image-container figure:has(> a.image2-align-right) .image2-inset {
    display: block;
    justify-content: initial;
  }
}
@media (max-width: 768px) {
  body .markup div.sponsorship-campaign-embed {
    margin-top: 24px;
    margin-bottom: 24px;
  }
  body .markup div.sponsorship-campaign-embed:first-child {
    margin-top: 0px;
  }
}
@media screen and (max-width: 650px) {
  body .markup div.youtube-overlay,
  body .markup div.vimeo-overlay {
    display: none !important;
  }
}
@media screen and (max-width: 370px) {
  body .markup div.tiktok-wrap {
    width: calc(95vw - 32px);
    height: calc((95vw - 32px - 2px) / 0.485714);
  }
}
@media screen and (max-width: 650px) {
  body .markup div.embedded-publication-wrap .embedded-publication.show-subscribe {
    padding: 24px;
  }
}
@media screen and (max-width: 650px) {
  body .markup div.subscription-widget-wrap .subscription-widget.show-subscribe,
  body .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe,
  body .markup div.captioned-button-wrap .subscription-widget.show-subscribe {
    padding: 0px 24px;
  }
}
@media screen and (max-width: 650px) {
  body .markup div.subscription-widget-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  body .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  body .markup div.captioned-button-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button {
    padding: 10px 12px;
    min-width: 110px;
  }
}
@media (max-width: 650px) {
  body .markup .twitter-embed,
  body .markup .tweet {
    padding: 12px;
  }
}
@media (max-width: 650px) {
  body .markup .twitter-embed .tweet-text,
  body .markup .tweet .tweet-text {
    font-size: 14px;
    line-height: 20px;
  }
}
@media (max-width: 650px) {
  body .markup .twitter-embed .tweet-photos-container.two,
  body .markup .tweet .tweet-photos-container.two,
  body .markup .twitter-embed .tweet-photos-container.three,
  body .markup .tweet .tweet-photos-container.three,
  body .markup .twitter-embed .tweet-photos-container.four,
  body .markup .tweet .tweet-photos-container.four {
    height: 200px;
  }
}
@media (max-width: 650px) {
  body .markup .twitter-embed a.expanded-link .expanded-link-img,
  body .markup .tweet a.expanded-link .expanded-link-img {
    max-height: 180px;
  }
}
@media (max-width: 650px) {
  body .markup .twitter-embed a.expanded-link .expanded-link-description,
  body .markup .tweet a.expanded-link .expanded-link-description {
    display: none;
  }
}
@media screen and (max-width: 650px) {
  body .markup .apple-podcast-container {
    width: unset;
  }
}
@media (max-width: 420px) {
  body .markup .install-substack-app-embed img.install-substack-app-embed-img {
    margin: 0 auto 16px auto;
  }
}
@media (max-width: 420px) {
  body .markup .install-substack-app-embed .install-substack-app-embed-text {
    margin: 0 0 12px 0;
    max-width: 100%;
    width: auto;
    text-align: center;
  }
}
@media (max-width: 420px) {
  body .markup .install-substack-app-embed .install-substack-app-embed-link {
    display: flex;
    justify-content: center;
  }
}
@media screen and (min-width: 500px) {
  body .header a.logo {
    width: 42px;
    height: 42px;
    border-radius: 12px;
  }
}
@media screen and (max-width: 420px) {
  body .subscription-receipt table:first-of-type .subscription-amount .subscription-discount {
    width: 72px !important;
  }
}
@media screen and (min-width: 481px) {
  body .share-button-container {
    height: auto;
  }
}
@media screen and (max-width: 480px) {
  body .share-button-container .separator {
    display: block !important;
    margin: 0 !important;
    height: 8px !important;
    border-left: none !important;
  }
}
@media screen and (max-width: 650px) {
  .digest .item .post-meta-item.audience {
    display: none;
  }
}
@media screen and (min-width: 500px) {
  .digest-publication .logo img {
    width: 42px;
    height: 42px;
    border-radius: 8px;
  }
}
@media screen and (max-width: 650px) {
  .comments-page .container .comment-list .collapsed-reply {
    margin-left: calc(10 + 32px - 24px);
  }
}
@media screen and (max-width: 650px) {
  .comment > .comment-list {
    padding-left: 24px;
  }
}
@media screen and (max-width: 650px) {
  .finish-magic-login-modal .modal-content .container {
    padding: 24px 0;
  }
}
@media (max-width: 650px) {
  .reader2-text-b3 {
    line-height: 24px;
  }
}
@media screen and (max-width: 650px) {
  .reader2-text-h4 {
    line-height: 24px;
  }
}
@media screen and (min-width: 541px) {
  .user-profile-modal {
    padding-left: 12px;
    padding-right: 12px;
  }
}
@media screen and (max-width: 650px) {
  .subscribe-widget form.form .sideBySideWrap button.rightButton {
    padding: 10px 12px;
  }
}
@media screen and (min-width: 541px) {
  .pub-icon:hover .logo-hover,
  .feed-item-icon:hover .logo-hover {
    display: block;
  }
}
@media screen and (max-width: 650px) {
  .post-ufi.single-full-width-button .post-ufi-button-wrapper {
    width: 100%;
    padding: 16px;
  }
  .post-ufi.single-full-width-button .post-ufi-button-wrapper:empty {
    display: none;
  }
  .post-ufi.single-full-width-button .post-ufi-button {
    width: 100%;
    justify-content: center;
  }
}
@media screen and (max-width: 768px) {
  .file-embed-wrapper {
    padding: 0;
  }
}
@media screen and (max-width: 768px) {
  .file-embed-wrapper-editor {
    padding: 0;
  }
}
@media screen and (max-width: 768px) {
  .file-embed-wrapper-editor:active {
    padding: 0;
  }
}
@media only screen and (max-width: 650px) {
  .file-embed-button.wide,
  .file-embed-error-button.wide {
    display: none;
  }
}
@media only screen and (min-width: 630px) {
  .file-embed-button.narrow,
  .file-embed-error-button.narrow {
    display: none;
  }
}
@media screen and (min-width: 541px) {
  .audio-player-wrapper .audio-player {
    min-width: 500px;
  }
}
@media screen and (max-width: 650px) {
  .audio-player-wrapper .audio-player .audio-player-progress {
    border-left-width: 16px;
    border-right-width: 16px;
  }
}
@media screen and (max-width: 650px) {
  .audio-player-wrapper .audio-player .audio-player-progress .audio-player-progress-bar .audio-player-progress-bar-popup {
    top: -54px;
  }
}
@media screen and (max-width: 650px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-progress {
    border-left-width: 16px;
    border-right-width: 16px;
  }
}
@media screen and (max-width: 650px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-progress .audio-player-progress-bar .audio-player-progress-bar-popup {
    top: -54px;
  }
}
@media (min-width: 250px) {
  .audio-player-wrapper-fancy .audio-player {
    padding: 32px;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group {
    display: flex;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group .button:last-of-type {
    display: block;
  }
}
@media (min-width: 300px) {
  .audio-player-wrapper-fancy .audio-player .btn-group {
    display: block;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group .button:first-of-type {
    display: block;
  }
}
@media (min-width: 350px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-substack-logo {
    display: block;
  }
  .audio-player-wrapper-fancy .audio-player .audio-player-title {
    margin-top: 16px;
  }
  .audio-player-wrapper-fancy .audio-player .audio-player-hero-image-container {
    padding-top: 15%;
    width: 15%;
    display: block;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group .button:first-of-type {
    display: block;
  }
  .audio-player-wrapper-fancy .audio-player .audio-player-substack-logo {
    display: block;
  }
}
@media (min-width: 350px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-hero-image-container {
    padding-top: 25%;
    width: 25%;
    display: block;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group {
    display: flex;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group .button:first-of-type {
    display: block;
  }
}
@media (min-width: 400px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-hero-image-container {
    padding-top: 40%;
    width: 40%;
  }
}
@media (max-width: 400px) {
  .audio-player-wrapper-fancy .audio-player .btn-group {
    margin-top: 12px;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group .button {
    font-size: 13px;
    padding: 6px 12px;
    height: auto;
    margin-top: 10px;
  }
}
@media (min-width: 600px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-hero-image-container {
    padding-top: 55%;
    width: 55%;
  }
}
@media (max-width: 650px) {
  .poll-editor-modal {
    min-width: calc(100% - 20px);
  }
}
@media (max-width: 750px) {
  .poll-embed .poll-anchor-target .poll-anchor-copy-button {
    left: 8px;
    top: 45px;
  }
}
@media not all and (min-resolution: 0.001dpcm) {
  @supports (-webkit-appearance: none) {
    p a:not(.primary.button),
    .post p:not(.button-wrapper) a:not(.primary.button),
    .footnote a.footnote-anchor:not(.primary.button),
    .thread-head .markup p:not(.button-wrapper) a:not(.primary.button) {
      color: #c1938b;
      text-decoration: none;
    }
    p a:not(.primary.button):hover,
    .post p:not(.button-wrapper) a:not(.primary.button):hover,
    .footnote a.footnote-anchor:not(.primary.button):hover,
    .thread-head .markup p:not(.button-wrapper) a:not(.primary.button):hover {
      text-decoration: underline;
    }
  }
}</style><img src="https://eotrx.substackcdn.com/open?token=eyJtIjoiPDIwMjUxMjI5MjA1OTU5LjMuZDc0NzcwMmNmMTcwYzUzOUBtZzIuc3Vic3RhY2suY29tPiIsInUiOjMzNTI3NzU3OSwiciI6Ijg4NmJiYTIzQGZlZWRiLmluIiwiZCI6Im1nMi5zdWJzdGFjay5jb20iLCJwIjoxODI4OTAwODksInQiOiJuZXdzbGV0dGVyIiwiYSI6ImV2ZXJ5b25lIiwicyI6MzM2OTEsImMiOiJwb3N0IiwiZiI6dHJ1ZSwicG9zaXRpb24iOiJ0b3AiLCJpYXQiOjE3NjcwNDIwNTgsImV4cCI6MTc2OTYzNDA1OCwiaXNzIjoicHViLTAiLCJzdWIiOiJlbyJ9.gCps0uHvjdAwBOJVqWVf7jczTu2VEQHP6KfcAw1xExg" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;"><div class="preview" style="display:none;font-size:1px;color:#333333;line-height:1px;max-height:0px;max-width:0px;opacity:0;overflow:hidden;">a constellation of insights, provocations, and downloads</div><div class="preview" style="display:none;font-size:1px;color:#333333;line-height:1px;max-height:0px;max-width:0px;opacity:0;overflow:hidden;">͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­͏ &nbsp;   ­</div><table class="email-body-container" role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td></td><td class="content" width="550"></td><td></td></tr><tr><td></td><td class="content" width="550" align="left"><div style="font-size: 16px;line-height: 26px;max-width: 550px;width: 100%;margin: 0 auto;overflow-wrap: break-word;"><table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td align="right" style="height:20px;"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="vertical-align:middle;"><span class="pencraft pc-reset reset-IxiVJZ tw-font-body tw-text-ssm tw-text-substack-secondary" style="font-family: SF Pro Text, -apple-system, system-ui, BlinkMacSystemFont, Inter, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;font-size: 13px;color: unset;list-style: none;text-decoration: unset;margin: 0;"><div class="pencraft pc-reset align-right-VJbKw5 size-12-mmZ61m reset-IxiVJZ" style="list-style: none;color: unset;text-align: right;font-size: 12px;line-height: 16px;text-decoration: unset;margin: 0;"><span class="pencraft pc-reset reset-IxiVJZ" translated="" style="list-style: none;color: unset;text-decoration: unset;margin: 0;">Forwarded this email? <a class="pencraft pc-reset decoration-underline-ClTkYc reset-IxiVJZ" href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly93ZWxsbmVzc3dpc2RvbS5zdWJzdGFjay5jb20vc3Vic2NyaWJlP3V0bV9zb3VyY2U9ZW1haWwmdXRtX2NhbXBhaWduPWVtYWlsLXN1YnNjcmliZSZyPTVqbTV1MyZuZXh0PWh0dHBzJTNBJTJGJTJGd2VsbG5lc3N3aXNkb20uc3Vic3RhY2suY29tJTJGcCUyRjQwaXNoLXBpZWNlcy1vZi1hZHZpY2UtZnJvbS0yMDI1IiwicCI6MTgyODkwMDg5LCJzIjozMzY5MSwiZiI6dHJ1ZSwidSI6MzM1Mjc3NTc5LCJpYXQiOjE3NjcwNDIwNTgsImV4cCI6MjA4MjYxODA1OCwiaXNzIjoicHViLTAiLCJzdWIiOiJsaW5rLXJlZGlyZWN0In0.mYqBLlUe0MltzuWW40Ga62lS3hLErLCVO1th9xcEwn0?" style="list-style: none;color: unset;text-decoration: unset;margin: 0;-webkit-text-decoration-line: underline;text-decoration-line: underline;">Subscribe here</a> for more</span></div></span></td></tr></tbody></table></td></tr></tbody></table><div class="post typography" dir="auto" style="--image-offset-margin: -120px;padding: 32px 0 0 0;font-size: 16px;line-height: 26px;"><div class="post-header" role="region" aria-label="Post header" style="font-size: 16px;line-height: 26px;"><h1 class="post-title published title-X77sOw" dir="auto" style="direction: auto;text-align: start;unicode-bidi: isolate;color: rgb(54,55,55);font-family: Lora,sans-serif;font-weight: 600;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: antialiased;-webkit-appearance: optimizelegibility;-moz-appearance: optimizelegibility;appearance: optimizelegibility;margin: 0;line-height: 36px;font-size: 32px;"><a href="https://substack.com/app-link/post?publication_id=33691&amp;post_id=182890089&amp;utm_source=post-email-title&amp;utm_campaign=email-post-title&amp;isFreemail=true&amp;r=5jm5u3&amp;token=eyJ1c2VyX2lkIjozMzUyNzc1NzksInBvc3RfaWQiOjE4Mjg5MDA4OSwiaWF0IjoxNzY3MDQyMDU4LCJleHAiOjE3Njk2MzQwNTgsImlzcyI6InB1Yi0zMzY5MSIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.46-_-sM-0QgogvNnSVttEumV3XSjhFPMaUdhjq-ljzU" style="color: rgb(54,55,55);text-decoration: none;">40(ish) pieces of "advice" from 2025</a></h1><h3 class="subtitle subtitle-HEEcLo" dir="auto" style="direction: auto;text-align: start;unicode-bidi: isolate;font-family: 'SF Pro Display',-apple-system-headline,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: normal;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: antialiased;-webkit-appearance: optimizelegibility;-moz-appearance: optimizelegibility;appearance: optimizelegibility;margin: 4px 0 0;color: #777777;line-height: 24px;font-size: 18px;margin-top: 12px;">a constellation of insights, provocations, and downloads </h3><table class="post-meta" role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0" style="margin: 1em 0;height: 20px;align-items: center;"><tbody><tr><td><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="vertical-align:middle;"><div class="pencraft pc-reset color-primary-zABazT line-height-20-t4M0El font-meta-MWBumP size-11-NuY2Zx weight-medium-fw81nC transform-uppercase-yKDgcq reset-IxiVJZ meta-EgzBVA custom-css-email-post-author" style="list-style: none;font-size: 11px;line-height: 20px;text-decoration: unset;color: rgb(54,55,55);margin: 0;font-family: 'SF Compact',-apple-system,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: 500;text-transform: uppercase;letter-spacing: .2px;"><a class="pencraft pc-reset color-primary-zABazT line-height-20-t4M0El font-meta-MWBumP size-11-NuY2Zx weight-medium-fw81nC transform-uppercase-yKDgcq reset-IxiVJZ meta-EgzBVA" style="list-style: none;color: rgb(54,55,55);margin: 0;font-size: 11px;line-height: 20px;font-family: 'SF Compact',-apple-system,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: 500;text-transform: uppercase;letter-spacing: .2px;text-decoration: none" href="https://substack.com/@patriciamou">Patricia Mou</a></div></td></tr></tbody></table></td></tr><tr><td><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="vertical-align:middle;"><div class="pencraft pc-reset color-secondary-ls1g8s line-height-20-t4M0El font-meta-MWBumP size-11-NuY2Zx weight-medium-fw81nC transform-uppercase-yKDgcq reset-IxiVJZ meta-EgzBVA" style="list-style: none;font-size: 11px;line-height: 20px;text-decoration: unset;color: rgb(119,119,119);margin: 0;font-family: 'SF Compact',-apple-system,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: 500;text-transform: uppercase;letter-spacing: .2px;"><time datetime="2025-12-29T21:00:57.589Z">Dec 29</time></div></td></tr></tbody></table></td></tr></tbody></table></td><td align="right"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="vertical-align:middle;"><a href="https://substack.com/@patriciamou"><img class="custom-css-email-avatar avatar-QIQ5yR" src="https://substackcdn.com/image/fetch/$s_!wzB_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5474b96-01b9-4860-a289-a209dc07667d_400x400.jpeg" style="box-sizing: border-box;border-radius: 500000px;max-width: 550px;border: none;vertical-align: middle;width: 40px;height: 40px;min-width: 40px;min-height: 40px;object-fit: cover;margin: 0px;display: inline" width="40" height="40"></a></td></tr></tbody></table></td></tr></tbody></table><table class="email-ufi-2-top" role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0" style="border-top: 1px solid rgb(0,0,0,.1);border-bottom: 1px solid rgb(0,0,0,.1);min-width: 100%;"><tbody><tr height="16"><td height="16" style="font-size:0px;line-height:0;">&nbsp;</td></tr><tr><td><table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="vertical-align:middle;"><table role="presentation" width="38" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td align="center"><a class="email-icon-button" href="https://substack.com/app-link/post?publication_id=33691&amp;post_id=182890089&amp;utm_source=substack&amp;isFreemail=true&amp;submitLike=true&amp;token=eyJ1c2VyX2lkIjozMzUyNzc1NzksInBvc3RfaWQiOjE4Mjg5MDA4OSwicmVhY3Rpb24iOiLinaQiLCJpYXQiOjE3NjcwNDIwNTgsImV4cCI6MTc2OTYzNDA1OCwiaXNzIjoicHViLTMzNjkxIiwic3ViIjoicmVhY3Rpb24ifQ.Z0kLszWYLcX5qcVMjirmDRVlDuTD5V-EADVRIZXZ12M&amp;utm_medium=email&amp;utm_campaign=email-reaction&amp;r=5jm5u3" style="font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';display: inline-block;font-weight: 500;border: 1px solid rgb(0,0,0,.1);border-radius: 9999px;text-transform: uppercase;font-size: 12px;line-height: 1;padding: 9px 0;text-decoration: none;color: rgb(119,119,119);min-width: 38px;box-sizing: border-box;width: 38px"><img class="icon" src="https://substackcdn.com/image/fetch/$s_!PeVs!,w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideHeart%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none;vertical-align: middle;max-width: 18px" alt=""></a></td></tr></tbody></table></td><td width="8" style="min-width: 8px"></td><td style="vertical-align:middle;"><table role="presentation" width="38" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td align="center"><a class="email-icon-button" href="https://substack.com/app-link/post?publication_id=33691&amp;post_id=182890089&amp;utm_source=substack&amp;utm_medium=email&amp;isFreemail=true&amp;comments=true&amp;token=eyJ1c2VyX2lkIjozMzUyNzc1NzksInBvc3RfaWQiOjE4Mjg5MDA4OSwiaWF0IjoxNzY3MDQyMDU4LCJleHAiOjE3Njk2MzQwNTgsImlzcyI6InB1Yi0zMzY5MSIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.46-_-sM-0QgogvNnSVttEumV3XSjhFPMaUdhjq-ljzU&amp;r=5jm5u3&amp;utm_campaign=email-half-magic-comments&amp;action=post-comment&amp;utm_source=substack&amp;utm_medium=email" style="font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';display: inline-block;font-weight: 500;border: 1px solid rgb(0,0,0,.1);border-radius: 9999px;text-transform: uppercase;font-size: 12px;line-height: 1;padding: 9px 0;text-decoration: none;color: rgb(119,119,119);min-width: 38px;box-sizing: border-box;width: 38px"><img class="icon" src="https://substackcdn.com/image/fetch/$s_!x1tS!,w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideComments%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none;vertical-align: middle;max-width: 18px" alt=""></a></td></tr></tbody></table></td><td width="8" style="min-width: 8px"></td><td style="vertical-align:middle;"><table role="presentation" width="38" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td align="center"><a class="email-icon-button" href="https://substack.com/app-link/post?publication_id=33691&amp;post_id=182890089&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;utm_campaign=email-share&amp;action=share&amp;triggerShare=true&amp;isFreemail=true&amp;r=5jm5u3&amp;token=eyJ1c2VyX2lkIjozMzUyNzc1NzksInBvc3RfaWQiOjE4Mjg5MDA4OSwiaWF0IjoxNzY3MDQyMDU4LCJleHAiOjE3Njk2MzQwNTgsImlzcyI6InB1Yi0zMzY5MSIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.46-_-sM-0QgogvNnSVttEumV3XSjhFPMaUdhjq-ljzU" style="font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';display: inline-block;font-weight: 500;border: 1px solid rgb(0,0,0,.1);border-radius: 9999px;text-transform: uppercase;font-size: 12px;line-height: 1;padding: 9px 0;text-decoration: none;color: rgb(119,119,119);min-width: 38px;box-sizing: border-box;width: 38px"><img class="icon" src="https://substackcdn.com/image/fetch/$s_!_L14!,w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideShare2%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none;vertical-align: middle;max-width: 18px" alt=""></a></td></tr></tbody></table></td><td width="8" style="min-width: 8px"></td><td style="vertical-align:middle;"><table role="presentation" width="38" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td align="center"><a class="email-icon-button" href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9vcGVuLnN1YnN0YWNrLmNvbS9wdWIvd2VsbG5lc3N3aXNkb20vcC80MGlzaC1waWVjZXMtb2YtYWR2aWNlLWZyb20tMjAyNT91dG1fc291cmNlPXN1YnN0YWNrJnV0bV9tZWRpdW09ZW1haWwmdXRtX2NhbXBhaWduPWVtYWlsLXJlc3RhY2stY29tbWVudCZhY3Rpb249cmVzdGFjay1jb21tZW50JnI9NWptNXUzJnRva2VuPWV5SjFjMlZ5WDJsa0lqb3pNelV5TnpjMU56a3NJbkJ2YzNSZmFXUWlPakU0TWpnNU1EQTRPU3dpYVdGMElqb3hOelkzTURReU1EVTRMQ0psZUhBaU9qRTNOamsyTXpRd05UZ3NJbWx6Y3lJNkluQjFZaTB6TXpZNU1TSXNJbk4xWWlJNkluQnZjM1F0Y21WaFkzUnBiMjRpZlEuNDYtXy1zTS0wUWdvZ3ZOblNWdHRFdW1WM1hTamhGUE1hVWRoanEtbGp6VSIsInAiOjE4Mjg5MDA4OSwicyI6MzM2OTEsImYiOnRydWUsInUiOjMzNTI3NzU3OSwiaWF0IjoxNzY3MDQyMDU4LCJleHAiOjIwODI2MTgwNTgsImlzcyI6InB1Yi0wIiwic3ViIjoibGluay1yZWRpcmVjdCJ9.y8eBf8vPyMbRPRt9T85yt7bJjfzKBlYXZe1X6xreUFU?&amp;utm_source=substack&amp;utm_medium=email" style="font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';display: inline-block;font-weight: 500;border: 1px solid rgb(0,0,0,.1);border-radius: 9999px;text-transform: uppercase;font-size: 12px;line-height: 1;padding: 9px 0;text-decoration: none;color: rgb(119,119,119);min-width: 38px;box-sizing: border-box;width: 38px"><img class="icon" src="https://substackcdn.com/image/fetch/$s_!5EGt!,w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FNoteForwardIcon%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none;vertical-align: middle;max-width: 18px" alt=""></a></td></tr></tbody></table></td></tr></tbody></table></td><td align="right"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="vertical-align:middle;"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td align="center"><a class="email-button-outline" href="https://open.substack.com/pub/wellnesswisdom/p/40ish-pieces-of-advice-from-2025?utm_source=email&amp;redirect=app-store&amp;utm_campaign=email-read-in-app" style="font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';display: inline-block;font-weight: 500;border: 1px solid rgb(0,0,0,.1);border-radius: 9999px;text-transform: uppercase;font-size: 12px;line-height: 12px;padding: 9px 14px;text-decoration: none;color: rgb(119,119,119);"><div class="email-button-spacer" style="font-size: 16px;line-height: 26px;display: inline-block;vertical-align: middle;max-width: 0;min-height: 18px;"></div><span class="email-button-text" style="vertical-align: middle;margin-right: 4px">READ IN APP</span><img class="icon text-icon" src="https://substackcdn.com/image/fetch/$s_!ET-_!,w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideArrowUpRight%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="min-width: 18px;min-height: 18px;border: none;vertical-align: middle;margin-right: 0;margin-left: 0;max-width: 18px" alt=""></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr><tr height="16"><td height="16" style="font-size:0px;line-height:0;">&nbsp;</td></tr></tbody></table></div></div><div class="pencraft pc-paddingTop-16 pc-reset" style="text-decoration: unset;list-style: none;padding-top: 16px;font-size: 16px;line-height: 26px;"><div class="pencraft pc-padding-16 pc-reset bg-primary-hover-d7iQcV border-detail-EGrm7T pc-borderRadius-md" style="text-decoration: unset;list-style: none;border-radius: 12px;padding: 16px;border: 1px solid rgb(0,0,0,.1);background-color: rgb(250,250,250);font-size: 16px;line-height: 26px;"><div class="pencraft pc-reset line-height-24-jnGwiv font-text-qe4AeH size-17-JHHggF weight-heavy-BCI3Mb reset-IxiVJZ" translated="" style="list-style: none;color: unset;font-size: 17px;line-height: 24px;text-decoration: unset;margin: 0;font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: 800;">Welcome to wellness wisdom</div><div class="pencraft pc-paddingTop-8 pc-reset color-secondary-ls1g8s line-height-20-t4M0El font-text-qe4AeH size-13-hZTUKr font-style-italic-I3_Jdy weight-regular-mUq6Gb reset-IxiVJZ" translated="" style="list-style: none;padding-top: 8px;font-style: italic;font-size: 13px;line-height: 20px;text-decoration: unset;color: rgb(119,119,119);margin: 0;font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: 400;">Don’t recognize this sender? <a class="pencraft pc-reset color-accent-BVX_7M decoration-underline-ClTkYc reset-IxiVJZ" href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly93ZWxsbmVzc3dpc2RvbS5zdWJzdGFjay5jb20vYWN0aW9uL2Rpc2FibGVfZW1haWwvZGlzYWJsZT90b2tlbj1leUoxYzJWeVgybGtJam96TXpVeU56YzFOemtzSW5CdmMzUmZhV1FpT2pFNE1qZzVNREE0T1N3aWFXRjBJam94TnpZM01EUXlNRFU0TENKbGVIQWlPakUzT1RnMU56Z3dOVGdzSW1semN5STZJbkIxWWkwek16WTVNU0lzSW5OMVlpSTZJbVJwYzJGaWJHVmZaVzFoYVd3aWZRLmJpUVpoSGV5TjZKeWo5WjlKOV9FU1h4eUMzNkE5Q0lnbDZ2dGRqY050a1EmYWxsX3NlY3Rpb25zPXRydWUmcmVwb3J0X2ltcG9ydD10cnVlIiwicCI6MTgyODkwMDg5LCJzIjozMzY5MSwiZiI6dHJ1ZSwidSI6MzM1Mjc3NTc5LCJpYXQiOjE3NjcwNDIwNTgsImV4cCI6MjA4MjYxODA1OCwiaXNzIjoicHViLTAiLCJzdWIiOiJsaW5rLXJlZGlyZWN0In0.Cn4OEP1CkfSeeuQv2DaKbeAJB4M0tpOQBwhv1Edb5-Q?" style="list-style: none;text-decoration: unset;color: rgb(255,103,25);margin: 0;-webkit-text-decoration-line: underline;text-decoration-line: underline;">Unsubscribe with one click</a></div><div class="pencraft pc-paddingTop-8 pc-reset line-height-20-t4M0El font-text-qe4AeH size-13-hZTUKr weight-regular-mUq6Gb reset-IxiVJZ" translated="" style="list-style: none;padding-top: 8px;color: unset;font-size: 13px;line-height: 20px;text-decoration: unset;margin: 0;font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: 400;">Patricia Mou recently imported your email address from another platform to Substack. You'll now receive their posts via email or the <a class="pencraft pc-reset decoration-underline-ClTkYc reset-IxiVJZ" href="https://substack.com/redirect/89504b02-e744-4c07-88dd-561fa3db26b1?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" style="list-style: none;color: unset;text-decoration: unset;margin: 0;-webkit-text-decoration-line: underline;text-decoration-line: underline;">Substack app</a>. To set up your profile and discover more on Substack, <a class="pencraft pc-reset decoration-underline-ClTkYc reset-IxiVJZ" href="https://substack.com/redirect/27ad1c13-91a4-488b-96ed-4b18eb3924ff?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" style="list-style: none;color: unset;text-decoration: unset;margin: 0;-webkit-text-decoration-line: underline;text-decoration-line: underline;">click here</a>.</div></div></div><div class="post typography" dir="auto" style="--image-offset-margin: -120px;padding: 32px 0 0 0;font-size: 16px;line-height: 26px;"><div class="body markup" dir="auto" style="text-align: initial;font-size: 16px;line-height: 26px;width: 100%;word-break: break-word;margin-bottom: 16px;font-family: 'Roboto Slab',sans-serif;font-weight: 400;"><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;font-size: 16px;margin-top: 0;">In no particular order, here’s a smattering of insights, provocations, and downloads from 2025: </p><div class="captioned-image-container-static" style="font-size: 16px;line-height: 26px;margin: 32px auto;"><figure style="width: 100%;margin: 0 auto;"><table class="image-wrapper" width="100%" border="0" cellspacing="0" cellpadding="0" data-component-name="Image2ToDOMStatic" style="mso-padding-alt: 1em 0 1.6em;"><tbody><tr><td style="text-align: center;"></td><td class="content" align="left" width="720" style="text-align: center;"><a class="image-link" target="_blank" href="https://substack.com/redirect/9d86a0b4-8739-4813-9fa2-e68d9790b758?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="position: relative;flex-direction: column;align-items: center;padding: 0;width: auto;height: auto;border: none;text-decoration: none;display: block;margin: 0;"><img class="wide-image" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44031eca-af5c-46bb-9237-8eea623e21a6_640x413.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:413,&quot;width&quot;:640,&quot;resizeWidth&quot;:720,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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}" alt="Image" title="Image" width="550" height="354.921875" src="https://substackcdn.com/image/fetch/$s_!jTWG!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44031eca-af5c-46bb-9237-8eea623e21a6_640x413.png" style="border: none !important;vertical-align: middle;display: block;-ms-interpolation-mode: bicubic;height: auto;margin-bottom: 0;width: auto !important;max-width: 100% !important;margin: 0 auto;"></a></td><td style="text-align: center;"></td></tr></tbody></table></figure></div><h2 class="header-anchor-post" style="position: relative;font-family: 'SF Pro Display',-apple-system-headline,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: bold;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: antialiased;-webkit-appearance: optimizelegibility;-moz-appearance: optimizelegibility;appearance: optimizelegibility;margin: 1em 0 0.625em 0;color: rgb(54,55,55);line-height: 1.16em;font-size: 1.625em;"><strong>on how to live.</strong></h2><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">follow the energy instead of the form</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">my main barometer for if i’m succeeding in life is how enchanted each day felt</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">Imagine reading a book with no way to turn back the page. How carefully would you read it? That’s life. </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>words are literally spells. Buddha said let your words pass through 3 gates:</span><br><span>Is it true? is it necessary? is it kind?</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">on free will: you have choice, but your choices arise from conditions you did not create. you are accountable, but you are not ultimately in charge. you co-create your life, but the deep river of reality carries all things beyond individual mastery</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>there is great freedom in being an amateur. I'd like to be one for the rest of my life. the word "amateur" comes from the Latin word amator, which means: "</span><em>one who loves</em><span>". Or in other words one who engages in a craft, art, or discipline for the sheer joy of it~</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>“</span><em>Walk until your day becomes interesting—even if this means wandering out of town and strolling the countryside. Eventually you’ll see a scene or meet a person that makes your walk worthwhile</em><span>."  ― Rolf Potts</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>I think culture needs to normalize around the idea of slow texting: If I haven’t replied to you, it means I haven’t looked at my phone. And if I’m not looking at my phone, I’m in my good place. to expect instant responses from others is to hope for them to not be fully absorbed in their own present. </span><em>could any hope be less loving?  what if we saw all our slow text convos as a win and stopped taking it so damn personally?</em></p></li></ul><h2 class="header-anchor-post" style="position: relative;font-family: 'SF Pro Display',-apple-system-headline,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: bold;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: antialiased;-webkit-appearance: optimizelegibility;-moz-appearance: optimizelegibility;appearance: optimizelegibility;margin: 1em 0 0.625em 0;color: rgb(54,55,55);line-height: 1.16em;font-size: 1.625em;"><strong>on creating our art.</strong></h2><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">“most people think their purpose is about some external thing that they create which produces results. your purpose is more about what kind of experience you want to gain to become more whole, have a greater awareness of yourself, and expand your capabilities.” - on purpose via scott briton</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>the surest indication of whether you're following your own authentic truth, is if the path before you disappears. by definition of it being *your* unique path, it is one that has not been walked before. do not fear - the path creates itself, as you keep walking~ "</span><em>Do not go where the path may lead; go instead where there is no path and leave a trail."</em><span> - Ralph Waldo Emerson</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">darlings, you think you’re simply creating a community, starting a new company, or making art. what you’re actually doing is encoding a new civilizational pattern into the morphic field. and perhaps you’re not meant to “scale” your work, but rather build one version so pure that it functions as a tuning fork, calling forth similar frequencies to replicate its harmonic through resonance in their own fields, and all fields they subsequently touch</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">Your life’s purpose isn’t a singular noun (“founder,” “writer,” “healer”). It’s a frequency your body emits when in deep attunement with the Whole. That frequency channels forth certain projects, relationships, and ideas into form~ When certain decisions feel like “recognition” rather than choice, you know you’re on the right path</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;">Focus on your likes, not your wants. Wanting is the desire you feel before doing something. Liking is the satisfaction you feel after doing something. Let your likes guide you.</p><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>You may not </span><em>want</em><span> to exercise, but you </span><em>like</em><span> how it makes you feel.</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>You may not </span><em>want</em><span> to write, but you </span><em>like</em><span> the feeling of accomplishment.</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>You may not </span><em>want</em><span> to wake up early, but you </span><em>like</em><span> the calm beauty of morning.</span></p></li></ul></li></ul><div class="captioned-image-container-static" style="font-size: 16px;line-height: 26px;margin: 32px auto;"><figure style="width: 100%;margin: 0 auto;"><table class="image-wrapper" width="100%" border="0" cellspacing="0" cellpadding="0" data-component-name="Image2ToDOMStatic" style="mso-padding-alt: 1em 0 1.6em;"><tbody><tr><td style="text-align: center;"></td><td class="content" align="left" width="1154" style="text-align: center;"><a class="image-link" target="_blank" href="https://substack.com/redirect/c391bdc6-0a42-4b12-969f-ce4bcf171a76?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="position: relative;flex-direction: column;align-items: center;padding: 0;width: auto;height: auto;border: none;text-decoration: none;display: block;margin: 0;"><img class="wide-image" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ed349620-df6c-40a5-97e1-fcedde80d66c_1154x586.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:586,&quot;width&quot;:1154,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1499764,&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;:false,&quot;internalRedirect&quot;:&quot;https://wellnesswisdom.substack.com/i/182890089?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed349620-df6c-40a5-97e1-fcedde80d66c_1154x586.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" alt="" width="550" height="279.2894280762565" src="https://substackcdn.com/image/fetch/$s_!_SWx!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed349620-df6c-40a5-97e1-fcedde80d66c_1154x586.png" style="border: none !important;vertical-align: middle;display: block;-ms-interpolation-mode: bicubic;height: auto;margin-bottom: 0;width: auto !important;max-width: 100% !important;margin: 0 auto;"></a></td><td style="text-align: center;"></td></tr></tbody></table></figure></div><h2 class="header-anchor-post" style="position: relative;font-family: 'SF Pro Display',-apple-system-headline,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: bold;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: antialiased;-webkit-appearance: optimizelegibility;-moz-appearance: optimizelegibility;appearance: optimizelegibility;margin: 1em 0 0.625em 0;color: rgb(54,55,55);line-height: 1.16em;font-size: 1.625em;"><strong>the bigger picture.</strong></h2><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">the universe cares more about the progression and expansion of your soul, than your individual likes and preferences. and suffering happens to be the most potent technology for learning. same with falling in love - in that it makes what was once rigid, soft again. ready to be destroyed and re-molded. </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>i've found that embodying deep okayness marks the beginning of a multi-year process of feeling deep pain.. but with no/minimal suffering</span><br><br><span>when we finally get a taste of true self-love &amp; secure attachment with reality, all parts of ourselves that feel unloved scramble from the shadows to the surface in order to be met and attuned to with that love</span><br><br><span>all of a sudden the universe sends you the biggest triggers, dark nights, and traumatizing circumstances  to aid those parts into re-surfacing with stronger activation energy. this is by design as nature finally seizes this opportunity to heal itself </span><br><br><span>all therapy, bodywork, energetics, meditation, healing containers are simply technologies that help reinforce the container in which you are ultimately holding yourself, to fully feel it all without having a change agenda. eventually you'll need those technologies less and less as You holds you. </span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>The real question isn’t whether life has meaning, but whether we are attuned to its inherent meaning.</span><br><br><span>There is no Meaning Crisis if you have secure attachment with reality / the unfolding of the universe. If you experience yourself as part of larger patterns. </span><br><br><span>One becomes a participant in the interconnected network of reality and in its inherent meaning. There is a higher-level order to it all, a mysterious directionality and emergent intelligence, in which you are deeply attuned to.</span></p></li></ul><div class="captioned-image-container-static" style="font-size: 16px;line-height: 26px;margin: 32px auto;"><figure style="width: 100%;margin: 0 auto;"><table class="image-wrapper" width="100%" border="0" cellspacing="0" cellpadding="0" data-component-name="Image2ToDOMStatic" style="mso-padding-alt: 1em 0 1.6em;"><tbody><tr><td style="text-align: center;"></td><td class="content" align="left" width="1456" style="text-align: center;"><a class="image-link" target="_blank" href="https://substack.com/redirect/9aa1bd0a-239d-44e6-abe9-abefb5f7de0a?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="position: relative;flex-direction: column;align-items: center;padding: 0;width: auto;height: auto;border: none;text-decoration: none;display: block;margin: 0;"><img class="wide-image" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1df89ee4-844a-4d90-ad4e-d3972b37d014_1814x952.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:764,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" alt="" width="550" height="288.5989010989011" src="https://substackcdn.com/image/fetch/$s_!lvDd!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df89ee4-844a-4d90-ad4e-d3972b37d014_1814x952.png" style="border: none !important;vertical-align: middle;display: block;-ms-interpolation-mode: bicubic;height: auto;margin-bottom: 0;width: auto !important;max-width: 100% !important;margin: 0 auto;"></a></td><td style="text-align: center;"></td></tr></tbody></table></figure></div><h2 class="header-anchor-post" style="position: relative;font-family: 'SF Pro Display',-apple-system-headline,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: bold;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: antialiased;-webkit-appearance: optimizelegibility;-moz-appearance: optimizelegibility;appearance: optimizelegibility;margin: 1em 0 0.625em 0;color: rgb(54,55,55);line-height: 1.16em;font-size: 1.625em;"><strong>on healing &amp; emotions</strong></h2><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">Convinced that the majority of the worlds problems hinge on whether your parents embodied deep love and attunement to you in the first 5 years of life.</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">Each time I prevent myself myself from feeling the deepest scariest thing, I prevent the little girl inside of me from completing her grief process.</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>every shadow has a gift. trauma isn't just pain frozen in time. it is potential </span><a href="https://substack.com/redirect/71c09b10-5dfc-4702-bde1-6737fbe1514e?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="color: #c1938b;text-decoration: none;">energy awaiting expression</a><span> until the time is right (when the wielder has the maturity to wield it well)</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>"</span><em>When a complex system is far from equilibrium, small islands of coherence in a sea of chaos have the capacity to shift the entire system to a higher order.</em><span>"  - Ilya Prigogine. starting with the small islands of coherence within you~</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;">a powerful indicator of where you are on the journey to wholeness is how intensely you're triggered or disturbed by others. the more triggered, the more work you have. here are good qs to work with when you get triggered:</p><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">what are they doing that's unacceptable in my eyes? </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">what do they get to do that I don't allow myself to do? what quality allows them to do that?  </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">how have those qualities been dangerous for me to fully inhabit and express? what's the risk to me? </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">why do i need that capacity now? what's the risk if I don't step into those characteristics my shadow is holding?  </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">what facet of wholeness do i need to reincorporate this characteristic into my being?  </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">additional tip: assume all projections being levied at you are somewhat true. try it on. what's true about it? how are you exactly like that</p></li></ul></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>"</span><em>We are intelligently drawn to those who can heal us, those who will, knowingly or not, bring up the unmet, unloved, unseen parts of ourselves, inviting the darkness back into the light, calling us to evolve, to feel more fully, to speak out with greater conviction, to draw clearer boundaries, to know ourselves more deeply. To strengthen our relationship with Lif</em><span>e."- Jeff Foster</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;">Gut feelings, dreams, deja-vu, and synchronicities are a kind of sacred communication technology we have with the universe~</p><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">A clean “yes” often signals alignment.</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">A heavy dread can be a caution: slow down, re-check the path.</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>Déjà vu is a “node” moment - pay attention; choice matters. A “node” is a moment where: a familiar </span><em>pattern</em><span> is active (a repeating lesson, dynamic, or archetype), and your choice here has outsized influence on what comes next.</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">A synchronicity is the universe saying: yes, you’re in dialogue with life. keep going, but don’t outsource your agency to the sign.</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;">Dreams are where your consciousness loosens its grip on the day-world story and returns to a wider field. In that wider field, it does three main things:</p><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">Metabolizes what you couldn’t fully feel or process while awake.</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">Re-patterns you: it updates your emotional software, rehearses responses, and integrates shadow material.</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>Orients you: it shows you the </span><em>shape</em><span> of what’s coming, not as fixed fate, but as probable currents.</span></p></li></ul></li></ul></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">“Being centered is a quality of your awareness arising from your center, i.e. embodied intelligence, as well as pivoting around your center. Your center is your body. So being centered is living from the way your body informs your experiences. Your body arises according to Life’s Intelligence. And the more you can heal your relationship with it and center yourself firmly in it, and live from the signals and feedback and guidance it gives you, the better. Your body is one of the primary tools through which Deeper Intelligence communicates with, and guides, you.” </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">A persistent fear or pattern can have multiple roots at once: an early attachment experience and a deeper ancestral or karmic imprint. In a soul-oriented frame, incarnation may involve entering conditions that reliably activate an old theme so it can be consciously re-felt and integrated. The wound becomes a portal, allowing what was frozen in the system to metabolize into freedom. As that integration happens, the wound often ripens into a gift: a hard-won capacity for empathy and steadiness that can hold others in terrain once endured alone, turning healing into service.</p></li></ul><h2 class="header-anchor-post" style="position: relative;font-family: 'SF Pro Display',-apple-system-headline,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: bold;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: antialiased;-webkit-appearance: optimizelegibility;-moz-appearance: optimizelegibility;appearance: optimizelegibility;margin: 1em 0 0.625em 0;color: rgb(54,55,55);line-height: 1.16em;font-size: 1.625em;"><strong>on relationships.</strong></h2><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>“</span><em>There is almost a sensual longing for communion with others who have a large vision. The immense fulfilment of the friendship between those engaged in furthering the evolution of consciousness has a quality impossible to describe</em><span>.” — Pierre Teilhard de Chardin</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">when speaking hard truths, the mystics (jesus, buddha, etc.) often used parables and stories, inviting people to reflect and arrive at their own realizations. they knew that truth lands better when it feels discovered rather than imposed</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>in a 50/50 relationship society, what does the feminine bring to the table you ask?  why no other than music, dance, laughter, the divine, creation, generation of energy, a lifeforce multiplier, enchantment, the being and becoming~ when you provide a safe container and she creates the space for you to do so, watch her unfold. </span><em>Plot twist: the feminine is all of us regardless of gender</em></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">the feeling of simultaneous distance and soul connection when you meet someone who's singing the same song, but on a slightly different wavelength. it's like seeing a parallel life in real-time. a nostalgic melody that sounds like home, somewhere far away. </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">“Each friend represents a world in us, a world possibly not born until they arrive, and it is only by this meeting that a new world is born.” - Anais Nin</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;">Inner union, sometimes called the sacred marriage or hieros gamos in various traditions, is the alchemical process of integrating what Jung called the anima and animus - the inner feminine and masculine principles within a single psyche. This isn’t about gender. It’s about the fundamental polarities of consciousness: </p><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">Inner Masculine: Direction, clarity, action, protection, structure, penetrating awareness, the capacity to hold boundaries, to choose, to move toward goals.</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">Inner Feminine: Receptivity, intuition, flow, creativity, cycles, diffuse awareness, the capacity to surrender, to allow, to trust the unfolding. Most people project one of these poles onto partners. </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">Women often project their masculine onto men, expecting them to provide direction, protection, clarity. Men often project their feminine onto women, expecting them to provide flow, intuition, emotional attunement. Inner union happens when you can access both poles within yourself - when you no longer need another person to complete you because you can hold your own masculine-feminine dance internally. This doesn’t mean you don’t desire partnership. It means partnership becomes choice and celebration rather than necessity and completion.</p></li></ul></li></ul><div class="captioned-image-container-static" style="font-size: 16px;line-height: 26px;margin: 32px auto;"><figure style="width: 100%;margin: 0 auto;"><table class="image-wrapper" width="100%" border="0" cellspacing="0" cellpadding="0" data-component-name="Image2ToDOMStatic" style="mso-padding-alt: 1em 0 1.6em;"><tbody><tr><td style="text-align: center;"></td><td class="content" align="left" width="1456" style="text-align: center;"><a class="image-link" target="_blank" href="https://substack.com/redirect/283229bf-a3a3-4f97-aece-3c285f11e231?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="position: relative;flex-direction: column;align-items: center;padding: 0;width: auto;height: auto;border: none;text-decoration: none;display: block;margin: 0;"><img class="wide-image" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/714fe89a-e85b-4d9c-8807-40f8db5471e3_1484x732.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:718,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" alt="" width="550" height="271.2225274725275" src="https://substackcdn.com/image/fetch/$s_!IYuL!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F714fe89a-e85b-4d9c-8807-40f8db5471e3_1484x732.png" style="border: none !important;vertical-align: middle;display: block;-ms-interpolation-mode: bicubic;height: auto;margin-bottom: 0;width: auto !important;max-width: 100% !important;margin: 0 auto;"></a></td><td style="text-align: center;"></td></tr></tbody></table></figure></div><h2 class="header-anchor-post" style="position: relative;font-family: 'SF Pro Display',-apple-system-headline,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: bold;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: antialiased;-webkit-appearance: optimizelegibility;-moz-appearance: optimizelegibility;appearance: optimizelegibility;margin: 1em 0 0.625em 0;color: rgb(54,55,55);line-height: 1.16em;font-size: 1.625em;"><strong>on spirituality</strong><span>. </span></h2><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">we are spiritual beings having a human experience, and both dimensions are equally sacred</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">the “spiritual path” is the constant conscious toggle between “I figured it out!” and “I know literally nothing”.  And holding the view that both are true</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">what we experience as "progression" or development is actually consciousness learning to perceive more dimensions of an already-complete pattern. this is why genuine insight feels like remembering rather than discovering</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">down the line, the process of awakening will take over itself. There’s an intelligence in life that, from the infinite possible pathways, gravitates toward the ones that metabolize karma fastest. </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>Karma has to be felt but not acted out again - it’s more about healing </span><em>how we relate</em><span> to the suffering vs healing the suffering itself</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>the point is not to destroy the ego. understand the ego and how it forms. be aware of it. loosen its power when lower energy states shine through it, magnify its power when higher energy states illuminate it. let it be a tool to acheive the hearts aims. let life use life. </span><em>"we should take care not to make the intellect our god; it has, of course, powerful muscles, but no personality. it cannot lead; it can only serve.</em><span>" - albert einstein "</span><em>the most confused we ever get is when we're trying to convince our heads of something our heart knows is a lie"</em><span> - karen moning</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">the emotional depths plumbing workshop after workshop ppl need more emptiness. the 5th jhana spiritual meaningness bros need more form. </p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">a shift that has really supported me is no longer trying to find the "perfect" teacher - spiritually, intellectually, etc. which is often a misplaced desire to reunify with the "perfect parents" we never had (understandable but problematic in it of itself). I used to attend talks / retreats with the frame of trying to discern if x person is "legit". unless the second coming of the Buddha/Jesus etc. is amongst us now, all teachers have shadow / personal bias no matter how "enlightened" they portray themselves. As light is moving through a fundamentally human vessel. Instead, view teachers as having one piece of the puzzle or one angle / filter of the truth   - there's always something to learn from them. The same applies towards friendships and romantic partners. We're all walking puzzle pieces. When I embody the perspective, the whole world becomes re-enchanted, my heart opens, and people become sparkly open books of mutual learning.</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;">“To be one with the infinite in the midst of the finite and to be eternal in a  moment, that is the immortality of religion.” - Friedrich Schleiermacher</p><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;"></p></li></ul><div class="captioned-image-container-static" style="font-size: 16px;line-height: 26px;margin: 32px auto;"><figure style="width: 100%;margin: 0 auto;"><table class="image-wrapper" width="100%" border="0" cellspacing="0" cellpadding="0" data-component-name="Image2ToDOMStatic" style="mso-padding-alt: 1em 0 1.6em;"><tbody><tr><td style="text-align: center;"></td><td class="content" align="left" width="1456" style="text-align: center;"><a class="image-link" target="_blank" href="https://substack.com/redirect/118e68b8-b0a1-4974-9194-ba098175ad6f?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="position: relative;flex-direction: column;align-items: center;padding: 0;width: auto;height: auto;border: none;text-decoration: none;display: block;margin: 0;"><img class="wide-image" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fcc40f71-50bc-4ac8-aa1e-09862dab1f0c_1502x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:744,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" alt="" width="550" height="281.04395604395603" src="https://substackcdn.com/image/fetch/$s_!PJ9v!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcc40f71-50bc-4ac8-aa1e-09862dab1f0c_1502x768.png" style="border: none !important;vertical-align: middle;display: block;-ms-interpolation-mode: bicubic;height: auto;margin-bottom: 0;width: auto !important;max-width: 100% !important;margin: 0 auto;"></a></td><td style="text-align: center;"></td></tr></tbody></table></figure></div><h2 class="header-anchor-post" style="position: relative;font-family: 'SF Pro Display',-apple-system-headline,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: bold;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: antialiased;-webkit-appearance: optimizelegibility;-moz-appearance: optimizelegibility;appearance: optimizelegibility;margin: 1em 0 0.625em 0;color: rgb(54,55,55);line-height: 1.16em;font-size: 1.625em;"><strong>on metaphysics.</strong></h2><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">Everything is a placebo. Astrology is one of many chosen meaning-systems: it can work like a placebo, not because it’s “fake,” but because it organizes attention and belief. The truth starts within, and we use external tools or deities this to help entrain our psyche into that truth until it becomes lived reality. The problem is when we confuse the tool for the thing itself, and start worshipping the finger instead of looking at the moon.</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;">neither disenchantment nor re-enchantment is sufficient alone   </p><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;">each illuminates a distinct dimension of human existence: disenchantment clarifies how things work (causality, mechanisms, science). while re-enchantment illuminates why things matter (meaning, ethics, transcendence). integration begins by acknowledging that these modes are complementary and incomplete without the other</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>Donna Meadows argues that one of the deepest leverage points to change a system is to shift the fundamental paradigms and perspectives people hold when engaging with the world. However, she mentions an even deeper leverage point: being in the great mystery at the heart of existence. </span><em>"That is to keep oneself unattached in the arena of paradigms, to stay flexible, to realize that NO paradigm is “true,” that every one, including the one that sweetly shapes your own worldview, is a tremendously limited understanding of an immense and amazing universe that is far beyond human comprehension. It is to “get” at a gut level the paradigm that there are paradigms, and to see that that itself is a paradigm, and to regard that whole realization as devastatingly funny." </em><span> </span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">the universe teaches through contrast. that’s why duality exists. </p></li></ul><h2 class="header-anchor-post" style="position: relative;font-family: 'SF Pro Display',-apple-system-headline,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: bold;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: antialiased;-webkit-appearance: optimizelegibility;-moz-appearance: optimizelegibility;appearance: optimizelegibility;margin: 1em 0 0.625em 0;color: rgb(54,55,55);line-height: 1.16em;font-size: 1.625em;"><strong>longer format personal writing</strong></h2><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>curated 12 issues of </span><a href="https://substack.com/redirect/6d3b2439-4f77-4cc5-88c9-300a07ea0299?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="color: #c1938b;text-decoration: none;">Rabbit Holes </a><span>- every month I ask: What does it mean to live a life of meaning and beauty?</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><a href="https://substack.com/redirect/554a620d-437a-48a5-96a9-41ab129b9d29?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="color: #c1938b;text-decoration: none;">a civic hearth for dharma</a><strong> - </strong><span>many paths to self-actualization, with a center that holds</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><a href="https://substack.com/redirect/717493f6-c0ad-46d3-b53f-22609b4d2d19?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="color: #c1938b;text-decoration: none;">the future will be mystical</a><span> - designing the social architecture for post-religious spirituality</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><a href="https://substack.com/redirect/d4b2e50a-bd6e-4cd0-b938-a8c6abf03a05?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="color: #c1938b;text-decoration: none;">thresholds of the sacred</a><strong> - </strong><span>buddhist interfaces between worlds</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><a href="https://substack.com/redirect/e30e38d2-6f4b-46e2-9c19-305dd53d5f90?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="color: #c1938b;text-decoration: none;">containers for emergence &amp; pluralism</a><strong> - </strong><span>holding complexity without collapse &amp; 2 experiments</span></p></li></ul><div style="font-size: 16px;line-height: 26px;"><hr style="margin: 32px 0;padding: 0;height: 1px;background: rgb(0,0,0,.1);border: none;"></div><h2 class="header-anchor-post" style="position: relative;font-family: 'SF Pro Display',-apple-system-headline,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-weight: bold;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: antialiased;-webkit-appearance: optimizelegibility;-moz-appearance: optimizelegibility;appearance: optimizelegibility;margin: 1em 0 0.625em 0;color: rgb(54,55,55);line-height: 1.16em;font-size: 1.625em;"><strong>going into 2026~</strong></h2><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;font-size: 16px;">beholds less definite plans or goals, but rather strong intentions, weakly held, in surrender to the universal flow: </p><ul style="margin-top: 0;padding: 0;"><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>prototyping “sunday service” for “spiritual-but-not-religious” in SF. </span><a href="https://substack.com/redirect/7cc57786-3616-42cc-a3df-b19a2e7fd984?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="color: #c1938b;text-decoration: none;">Sign-up</a><span>.</span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>engaging in praxis on how to build</span><a href="https://substack.com/redirect/554a620d-437a-48a5-96a9-41ab129b9d29?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="color: #c1938b;text-decoration: none;"> modern wisdom institutions</a><span> &amp; stepping more fully into service </span></p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;">exploring ritual arts, egyptian cosmology, and dance as prayer</p></li><li style="margin: 8px 0 0 32px;mso-special-format: bullet;"><p style="color: rgb(54,55,55);line-height: 26px;margin-bottom: 0;box-sizing: border-box;padding-left: 4px;font-size: 16px;margin: 0;"><span>sharing my learnings as I go along on </span><a href="https://substack.com/redirect/502525d4-937c-4e1f-8fdb-720908e481c3?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="color: #c1938b;text-decoration: none;">X</a><span>, </span><a href="https://substack.com/redirect/a77f60e9-0a63-4024-a4a5-79717d3a5dc1?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="color: #c1938b;text-decoration: none;">instagram</a><span>, and </span><a href="https://substack.com/redirect/6d3b2439-4f77-4cc5-88c9-300a07ea0299?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" rel="" style="color: #c1938b;text-decoration: none;">rabbit holes newsletter</a></p></li></ul><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;font-size: 16px;">with love, </p><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;font-size: 16px;">Patricia Mou</p><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;font-size: 16px;"></p><p style="margin: 0 0 20px 0;color: rgb(54,55,55);line-height: 26px;font-size: 16px;margin-bottom: 0;"></p></div></div><div class="container-border" style="margin: 32px 0 0;width: 100%;box-sizing: border-box;border-top: 1px solid #e6e6e6;font-size: 16px;line-height: 26px;"></div><div class="post-cta typography markup" style="--image-offset-margin: -120px;font-family: 'Roboto Slab',sans-serif;font-weight: 400;text-align: initial;word-break: break-word;margin-bottom: 32px;margin: 32px 0;font-size: 16px;line-height: 26px;"><p style="color: rgb(54,55,55);margin: 0 auto 20px;text-align: center;width: 90%;line-height: 26px;font-size: 16px;margin-top: 0;"><span class="pencraft pc-reset reset-IxiVJZ" translated="" style="list-style: none;color: unset;text-decoration: unset;margin: 0;">You're currently a free subscriber to <a href="https://substack.com/redirect/2257305b-cf10-4d6f-b590-f2621340fd1f?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" style="color: #c1938b;text-decoration: none;">wellness wisdom</a>. For the full experience, <a href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly93ZWxsbmVzc3dpc2RvbS5zdWJzdGFjay5jb20vc3Vic2NyaWJlP3V0bV9zb3VyY2U9cG9zdCZ1dG1fY2FtcGFpZ249ZW1haWwtY2hlY2tvdXQmbmV4dD1odHRwcyUzQSUyRiUyRndlbGxuZXNzd2lzZG9tLnN1YnN0YWNrLmNvbSUyRnAlMkY0MGlzaC1waWVjZXMtb2YtYWR2aWNlLWZyb20tMjAyNSZyPTVqbTV1MyZ0b2tlbj1leUoxYzJWeVgybGtJam96TXpVeU56YzFOemtzSW1saGRDSTZNVGMyTnpBME1qQTFPQ3dpWlhod0lqb3hOelk1TmpNME1EVTRMQ0pwYzNNaU9pSndkV0l0TXpNMk9URWlMQ0p6ZFdJaU9pSmphR1ZqYTI5MWRDSjkuTmQ5Tk1nSWJiZENjUkRuanQ2ZDFKaXVpR0Z4dTA4Y1UyeXNWWkJUN29RYyIsInAiOjE4Mjg5MDA4OSwicyI6MzM2OTEsImYiOnRydWUsInUiOjMzNTI3NzU3OSwiaWF0IjoxNzY3MDQyMDU4LCJleHAiOjIwODI2MTgwNTgsImlzcyI6InB1Yi0wIiwic3ViIjoibGluay1yZWRpcmVjdCJ9.epHQHJmxt9tl7JTcUBUNLg9lm4siS_qPmnepp26TtZs?&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=postcta" style="color: #c1938b;text-decoration: none;">upgrade your subscription.</a></span></p><p class="cta-box" style="color: rgb(54,55,55);margin: 0 auto 20px;width: 90%;line-height: 26px;font-size: 16px;margin-bottom: 0;text-align: center;margin-left: auto;margin-right: auto;"><a class="button primary" role="button" href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly93ZWxsbmVzc3dpc2RvbS5zdWJzdGFjay5jb20vc3Vic2NyaWJlP3V0bV9zb3VyY2U9cG9zdCZ1dG1fY2FtcGFpZ249ZW1haWwtY2hlY2tvdXQmbmV4dD1odHRwcyUzQSUyRiUyRndlbGxuZXNzd2lzZG9tLnN1YnN0YWNrLmNvbSUyRnAlMkY0MGlzaC1waWVjZXMtb2YtYWR2aWNlLWZyb20tMjAyNSZyPTVqbTV1MyZ0b2tlbj1leUoxYzJWeVgybGtJam96TXpVeU56YzFOemtzSW1saGRDSTZNVGMyTnpBME1qQTFPQ3dpWlhod0lqb3hOelk1TmpNME1EVTRMQ0pwYzNNaU9pSndkV0l0TXpNMk9URWlMQ0p6ZFdJaU9pSmphR1ZqYTI5MWRDSjkuTmQ5Tk1nSWJiZENjUkRuanQ2ZDFKaXVpR0Z4dTA4Y1UyeXNWWkJUN29RYyIsInAiOjE4Mjg5MDA4OSwicyI6MzM2OTEsImYiOnRydWUsInUiOjMzNTI3NzU3OSwiaWF0IjoxNzY3MDQyMDU4LCJleHAiOjIwODI2MTgwNTgsImlzcyI6InB1Yi0wIiwic3ViIjoibGluay1yZWRpcmVjdCJ9.epHQHJmxt9tl7JTcUBUNLg9lm4siS_qPmnepp26TtZs?&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=postcta" style="font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';display: inline-block;box-sizing: border-box;cursor: pointer;border: none;height: 40px;border-radius: 8px;font-size: 14px;line-height: 20px;font-weight: 600;text-align: center;padding: 10px 20px;margin: 0;opacity: 1;outline: none;white-space: nowrap;color: #ffffff !important;text-decoration: none !important;background-color: #C1938B;">Upgrade to paid</a></p></div><table class="email-ufi-2-bottom" role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0" style="border-top: 1px solid rgb(0,0,0,.1);border-bottom: 1px solid rgb(0,0,0,.1);min-width: 100%;"><tbody><tr height="16"><td height="16" style="font-size:0px;line-height:0;">&nbsp;</td></tr><tr><td><table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0" style="margin:0 auto;"><tbody><tr><td style="vertical-align:middle;"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td align="center"><a class="email-button-outline" href="https://substack.com/app-link/post?publication_id=33691&amp;post_id=182890089&amp;utm_source=substack&amp;isFreemail=true&amp;submitLike=true&amp;token=eyJ1c2VyX2lkIjozMzUyNzc1NzksInBvc3RfaWQiOjE4Mjg5MDA4OSwicmVhY3Rpb24iOiLinaQiLCJpYXQiOjE3NjcwNDIwNTgsImV4cCI6MTc2OTYzNDA1OCwiaXNzIjoicHViLTMzNjkxIiwic3ViIjoicmVhY3Rpb24ifQ.Z0kLszWYLcX5qcVMjirmDRVlDuTD5V-EADVRIZXZ12M&amp;utm_medium=email&amp;utm_campaign=email-reaction&amp;r=5jm5u3" style="font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';display: inline-block;font-weight: 500;border: 1px solid rgb(0,0,0,.1);border-radius: 9999px;text-transform: uppercase;font-size: 12px;line-height: 12px;padding: 9px 14px;text-decoration: none;color: rgb(119,119,119);"><img class="icon" src="https://substackcdn.com/image/fetch/$s_!PeVs!,w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideHeart%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="margin-right: 8px;min-width: 18px;min-height: 18px;border: none;vertical-align: middle;max-width: 18px" alt=""><span class="email-button-text" style="vertical-align: middle;">Like</span></a></td></tr></tbody></table></td><td width="8" style="min-width: 8px"></td><td style="vertical-align:middle;"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td align="center"><a class="email-button-outline" href="https://substack.com/app-link/post?publication_id=33691&amp;post_id=182890089&amp;utm_source=substack&amp;utm_medium=email&amp;isFreemail=true&amp;comments=true&amp;token=eyJ1c2VyX2lkIjozMzUyNzc1NzksInBvc3RfaWQiOjE4Mjg5MDA4OSwiaWF0IjoxNzY3MDQyMDU4LCJleHAiOjE3Njk2MzQwNTgsImlzcyI6InB1Yi0zMzY5MSIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.46-_-sM-0QgogvNnSVttEumV3XSjhFPMaUdhjq-ljzU&amp;r=5jm5u3&amp;utm_campaign=email-half-magic-comments&amp;action=post-comment&amp;utm_source=substack&amp;utm_medium=email" style="font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';display: inline-block;font-weight: 500;border: 1px solid rgb(0,0,0,.1);border-radius: 9999px;text-transform: uppercase;font-size: 12px;line-height: 12px;padding: 9px 14px;text-decoration: none;color: rgb(119,119,119);"><img class="icon" src="https://substackcdn.com/image/fetch/$s_!x1tS!,w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideComments%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="margin-right: 8px;min-width: 18px;min-height: 18px;border: none;vertical-align: middle;max-width: 18px" alt=""><span class="email-button-text" style="vertical-align: middle;">Comment</span></a></td></tr></tbody></table></td><td width="8" style="min-width: 8px"></td><td style="vertical-align:middle;"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td align="center"><a class="email-button-outline" href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9vcGVuLnN1YnN0YWNrLmNvbS9wdWIvd2VsbG5lc3N3aXNkb20vcC80MGlzaC1waWVjZXMtb2YtYWR2aWNlLWZyb20tMjAyNT91dG1fc291cmNlPXN1YnN0YWNrJnV0bV9tZWRpdW09ZW1haWwmdXRtX2NhbXBhaWduPWVtYWlsLXJlc3RhY2stY29tbWVudCZhY3Rpb249cmVzdGFjay1jb21tZW50JnI9NWptNXUzJnRva2VuPWV5SjFjMlZ5WDJsa0lqb3pNelV5TnpjMU56a3NJbkJ2YzNSZmFXUWlPakU0TWpnNU1EQTRPU3dpYVdGMElqb3hOelkzTURReU1EVTRMQ0psZUhBaU9qRTNOamsyTXpRd05UZ3NJbWx6Y3lJNkluQjFZaTB6TXpZNU1TSXNJbk4xWWlJNkluQnZjM1F0Y21WaFkzUnBiMjRpZlEuNDYtXy1zTS0wUWdvZ3ZOblNWdHRFdW1WM1hTamhGUE1hVWRoanEtbGp6VSIsInAiOjE4Mjg5MDA4OSwicyI6MzM2OTEsImYiOnRydWUsInUiOjMzNTI3NzU3OSwiaWF0IjoxNzY3MDQyMDU4LCJleHAiOjIwODI2MTgwNTgsImlzcyI6InB1Yi0wIiwic3ViIjoibGluay1yZWRpcmVjdCJ9.y8eBf8vPyMbRPRt9T85yt7bJjfzKBlYXZe1X6xreUFU?&amp;utm_source=substack&amp;utm_medium=email" style="font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';display: inline-block;font-weight: 500;border: 1px solid rgb(0,0,0,.1);border-radius: 9999px;text-transform: uppercase;font-size: 12px;line-height: 12px;padding: 9px 14px;text-decoration: none;color: rgb(119,119,119);"><img class="icon" src="https://substackcdn.com/image/fetch/$s_!5EGt!,w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FNoteForwardIcon%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="margin-right: 8px;min-width: 18px;min-height: 18px;border: none;vertical-align: middle;max-width: 18px" alt=""><span class="email-button-text" style="vertical-align: middle;">Restack</span></a></td></tr></tbody></table></td></tr></tbody></table></td><td align="right"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tbody><tr></tr></tbody></table></td></tr></tbody></table></td></tr><tr height="16"><td height="16" style="font-size:0px;line-height:0;">&nbsp;</td></tr></tbody></table><div class="footer footer-ZM59BM" style="color: rgb(119,119,119);text-align: center;font-size: 16px;line-height: 26px;padding: 24px0;"><div style="font-size: 16px;line-height: 26px;padding-bottom: 24px"><p class="pencraft pc-reset color-secondary-ls1g8s size-12-mmZ61m reset-IxiVJZ small meta-B2bqa5" style="list-style: none;font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';padding-bottom: 0;font-size: 12px;line-height: 16px;margin: 0;color: rgb(119,119,119);text-decoration: unset;">© 2025 <span>Patricia Mou</span><br>548 Market Street PMB 72296, San Francisco, CA 94104 <br><a href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly93ZWxsbmVzc3dpc2RvbS5zdWJzdGFjay5jb20vYWN0aW9uL2Rpc2FibGVfZW1haWw_dG9rZW49ZXlKMWMyVnlYMmxrSWpvek16VXlOemMxTnprc0luQnZjM1JmYVdRaU9qRTRNamc1TURBNE9Td2lhV0YwSWpveE56WTNNRFF5TURVNExDSmxlSEFpT2pFM09UZzFOemd3TlRnc0ltbHpjeUk2SW5CMVlpMHpNelk1TVNJc0luTjFZaUk2SW1ScGMyRmliR1ZmWlcxaGFXd2lmUS5iaVFaaEhleU42SnlqOVo5SjlfRVNYeHlDMzZBOUNJZ2w2dnRkamNOdGtRIiwicCI6MTgyODkwMDg5LCJzIjozMzY5MSwiZiI6dHJ1ZSwidSI6MzM1Mjc3NTc5LCJpYXQiOjE3NjcwNDIwNTgsImV4cCI6MjA4MjYxODA1OCwiaXNzIjoicHViLTAiLCJzdWIiOiJsaW5rLXJlZGlyZWN0In0.H0LXEANDNGh-LDRSgC82Nsk02Vhw4C9sOA9rrCQykvA?" style="color: #c1938b;text-decoration: none;"><span style="color: rgb(119,119,119);text-decoration: underline;">Unsubscribe</span></a></p></div><p class="footerSection-EHR0jG small powered-by-substack" style="padding: 0 24px;font-size: 12px;line-height: 20px;margin: 0;color: rgb(119,119,119);font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';padding-bottom: 0;margin-top: 0;"><a href="https://substack.com/redirect/5858d01f-8f4f-40b4-b0e7-7d6588f93cb3?j=eyJ1IjoiNWptNXUzIn0.67LdWacSSJkDQAT6Mo7QmRfCsQX_aqH7luR4f_nr98w" style="color: #c1938b;text-decoration: none;display: inline-block;margin: 0 4px;"><img src="https://substackcdn.com/image/fetch/$s_!IzGP!,w_262,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fgeneric-app-button%402x.png" srcset="https://substackcdn.com/image/fetch/$s_!DIki!,w_131,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fgeneric-app-button.png, https://substackcdn.com/image/fetch/$s_!IzGP!,w_262,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fgeneric-app-button%402x.png 2x, https://substackcdn.com/image/fetch/$s_!QWua!,w_393,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fgeneric-app-button%403x.png 3x" width="131" alt="Get the app" height="40" style="max-width: 550px;border: none !important;vertical-align: middle;"></a><a href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9zdWJzdGFjay5jb20vc2lnbnVwP3V0bV9zb3VyY2U9c3Vic3RhY2smdXRtX21lZGl1bT1lbWFpbCZ1dG1fY29udGVudD1mb290ZXImdXRtX2NhbXBhaWduPWF1dG9maWxsZWQtZm9vdGVyJmZyZWVTaWdudXBFbWFpbD04ODZiYmEyM0BmZWVkYi5pbiZyPTVqbTV1MyIsInAiOjE4Mjg5MDA4OSwicyI6MzM2OTEsImYiOnRydWUsInUiOjMzNTI3NzU3OSwiaWF0IjoxNzY3MDQyMDU4LCJleHAiOjIwODI2MTgwNTgsImlzcyI6InB1Yi0wIiwic3ViIjoibGluay1yZWRpcmVjdCJ9.VgVSU33Lo0hYG3iWOwA2sVc4KXKGrBSqFYaoIGQ4RqQ?" style="color: #c1938b;text-decoration: none;display: inline-block;margin: 0 4px;"><img src="https://substackcdn.com/image/fetch/$s_!LkrL!,w_270,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fpublish-button%402x.png" srcset="https://substackcdn.com/image/fetch/$s_!wgfj!,w_135,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fpublish-button.png, https://substackcdn.com/image/fetch/$s_!LkrL!,w_270,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fpublish-button%402x.png 2x, https://substackcdn.com/image/fetch/$s_!KjtY!,w_405,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fpublish-button%403x.png 3x" width="135" alt="Start writing" height="40" style="max-width: 550px;border: none !important;vertical-align: middle;"></a></p></div></div></td><td></td></tr></tbody></table><img src="https://eotrx.substackcdn.com/open?token=eyJtIjoiPDIwMjUxMjI5MjA1OTU5LjMuZDc0NzcwMmNmMTcwYzUzOUBtZzIuc3Vic3RhY2suY29tPiIsInUiOjMzNTI3NzU3OSwiciI6Ijg4NmJiYTIzQGZlZWRiLmluIiwiZCI6Im1nMi5zdWJzdGFjay5jb20iLCJwIjoxODI4OTAwODksInQiOiJuZXdzbGV0dGVyIiwiYSI6ImV2ZXJ5b25lIiwicyI6MzM2OTEsImMiOiJwb3N0IiwiZiI6dHJ1ZSwicG9zaXRpb24iOiJib3R0b20iLCJpYXQiOjE3NjcwNDIwNTgsImV4cCI6MTc2OTYzNDA1OCwiaXNzIjoicHViLTAiLCJzdWIiOiJlbyJ9.NI1wUfSLYaoMsM1RbfVvGzLaQUDpnTAs9r17-qbnDro" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;"><img width="1" height="1" alt="" src="https://email.mg2.substack.com/o/eJw8kEuqKyEURUcTm8Xxrw3HUvg5lSev1OAnoWZ_yU243bVhsdjRT7y3frlHG5MkJxI10hB0VCsNgoECgsXnc79jxe4npt3Pv1UaLjX556yhhxCgPAcd9SEoQrAWDEUtPVeKZMeAScqYZSCttBvfkhZaA4sH1RAltzcB5c62scKYPv7fYiskj_3o-BvgZl9I3pm7Xyljjejwif1q9YtzctQwYwGM_ZB5PdBVfI0T58ROHivssZWyap7XjtWHE9NXvMKZo5-51beIc2Up6c4YFYJn_CbgQExhy5WMFVIrPlf3wvOsOMYrj9QKmZ8X18D-cUimtdSWPB37CQAA__9U2nVw">
]]></description>
      <pubDate>Mon, 29 Dec 2025 21:01:04 +0000</pubDate>
      <link>https://newsletters.feedbinusercontent.com/784/784eb126a7ec5260489f723ce46c8512bdd19d1e.html</link>
      <dc:creator>Patricia Mou from wellness wisdom</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/5064195252</guid>
    </item>
    <item>
      <title><![CDATA[Design is more than code]]></title>
      <description><![CDATA[<p>Designing with code is a recurring discussion, and it’s flared up again. I’ve written about it twice now. <a href="https://x.com/karrisaarinen/status/1999730838280503775">Design as a search</a>, not a pipeline. How <a href="https://x.com/karrisaarinen/status/2000451411696603437">tools carry opinions</a>, and how those opinions shape what feels “reasonable” to attempt. Why constraints that arrive too early can close off possibilities before you’ve had a chance to find them. I’m skeptical of the industry’s drive toward grand unification, collapsing a nuanced process into code and calling it progress.</p><p>The recent discourse has focused on whether designers should code, whether code is the right medium for design, how code “presents the truth” of a design, and so on. But I think centering this debate on code and tools is reductive.</p><p>The bigger question to me is what happens to how we see designers contributing in the future, especially now with AI and these new tools. How do roles evolve, and what do we start expecting from each of them?</p><p>Are designers now engineers, with the same expectations? Do engineers start having the same expectations of designers? Will we still have a “head of engineering” and “head of design”, or does it turn into something like “head of craft”? Titles don’t matter that much, but these questions are useful because they reveal what we value and how we think the job gets done.</p><p>And then the practical question. If designers get funneled toward engineering, designing with code directly, is that a good direction? What do we lose or gain?</p><p>Part of why this discussion gets messy is that design means different things to different people. Your view on it depends on what kind of design you do, and how you understand design as a practice.</p><p>I believe design comes in many flavors. It’s influenced by the person, the domain, the market, the customers. In consumer products, you might need to test ideas quickly because motivations are hard to predict. In B2B or enterprise, you often have more context and can design from that. Some industries require extreme reliability and clarity. The environment matters too. Stakeholders, clients, company culture, and your skills as a designer. If you’re more visual, you lead with visuals. If you’re strong in code, you might use it earlier.</p><p>And for some, design simply is getting the button on the screen and moving on.</p><p>So there’s a broad domain of software design, with different tools and methods inside it. The code vs no-code argument often misses the point and becomes a polarizing force.</p><p>What I’m trying to say is that I want to elevate this discussion above tools, and make sure tools don’t take over the future of design. I don’t want us to needlessly devalue conceptual and divergent thinking just because new tools make execution easier.</p><p>Even engineers who work with code all day step away from it. They draw architectures, plan systems, and reason about tradeoffs. While code is where software lives, it’s not always where all decisions should be made.</p><p>To explain what I mean, I have to start with how I understand design and how I’ve practiced it.</p><h3>Designing the problem</h3><p>First of all, I’m not a formally trained designer. It’s been self-taught through hundreds of design projects over the last two decades. So I’m not advocating gatekeeping, or any one “right” way to design. But I do think design is rarely linear. You work at different levels of abstraction, move between them. And while the outcome is the goal, spending time on the journey can make the outcome better.</p><p>Through that work, I learned to question the problem first, not treat it as an assumption. If asked to work on something, I start with: is this a real problem? What if we don’t do this? Who defined the problem?</p><p>It sounds philosophical, but what I’ve found is that the most common reason design projects drag or fail is that the problem wasn’t clear. People won’t agree on solutions, because they have different problems in mind. The solution becomes a compromise of many different problems, instead of a clean solution to one major problem. This compounds when you have too many stakeholders.</p><p>To tackle this, I’d do two things. Write the problem the way I understood it, and ask who the stakeholders are. Then when presenting solutions to those stakeholders, I’d repeat the problem to see if it caused reactions. If it did, I’d stop and get the room to align on the problem. So what does this have to do with design? This sounds kind of corporate.</p><p>You’re always going to have stakeholders, if not colleagues, then customers. You have to understand whether feedback is true because the solution isn’t good, or because people don’t agree on what the problem is. Sometimes you’re designing against the wrong problem. The problem is the first part of the equation. It’s the foundation of what you’re trying to design and build.</p><p>At Linear, we knew quickly that companies needed projects. So what goes on the roadmap is “build projects.” Everyone agrees it’s needed. But if you think about it more, why do companies organize work into projects? Why not just work on the next task? What happens if they don’t have projects?</p><p>You can go deep on project management. There’s a whole discipline behind it, and many ways of doing it. But if your vision is to build a purpose-built tool for software companies, you start narrowing. What do they actually care about?</p><p>Simply put, projects are a natural abstraction for companies to manage streams of work. They help with accountability, ownership, cross-team collaboration, predictability, and visibility.</p><p>Now you might ask why research something so basic or well understood. Sometimes you don’t need to. But learning the landscape and history gives you orientation. You find assumptions you can challenge, or you decide which traditions to follow.</p><p>Most importantly, learning the problem first helps you decide what you want to do about it. What direction the product vision is pulling you toward. What you want to optimize and influence.</p><p>At Linear, we saw that projects might be the most important unit of work. Products are made of them, organizations orient around them, and you celebrate when one ships. That understanding gave us a direction for what problem we were trying to solve.</p><h3>Designing the solution</h3><p>I think of designing the solution in two stages: The conceptual stage and the execution stage. The conceptual stage is finding the overall form the design will take. While the execution stage is building it out and getting it onto the screen.</p><p>Take projects in an issue tracking tool, you could treat them as one large issue with sub-issues, a folder or label of issues, or its own entity connected to issues. Those are conceptual ideas you can consider without putting anything on the screen. The decision comes down to your understanding of users, the company, and the vision you want. All of these concepts can work, and you can find them in real products.</p><p>Because we saw projects as important, and different to issues, they needed to be their own entity, with their own shape. A project should have a recognizable form and functionality that communicates status, reasoning, user feedback, prioritization, timing, and connection to larger initiatives. Demoting projects to a label or a loose collection of issues didn’t feel right.</p><p>This conceptual stage might happen in words, on paper, in a design tool, or in code. It’s just about giving those ideas a shape, trying different directions and eventually choosing the direction that serves the problem and the product vision the best.</p><p>Once I have a direction I believe in, it’s ready for broader feedback. You test the concept by building it.</p><p>It’s the part closest to the final output. You make the design concept actually work, shaping it into something real. Code, or working with the material, is essential for this. And there are times when you gain new insights and have to go back and revisit the problem or concept.</p><p>There are different ways to use code in this stage. You can build tools, or “sketch” with throwaway code. This removes some of the constraints of production code and makes the process more exploratory. My point is that while you might see the execution stage as the real part of design, you’ve already built a foundation of context and confidence. When the material fights back, you’re pushing with that confidence.</p><p>Think of it in LLM terms. The design work you do before is the goal, context, and prompt you’re building for the agent to address the problem. The execution work is where you guide the agent through specific decisions.</p><p>After reading all this, you might think, who has time for this? We need to ship. Why not build right away and figure it out as we go? I don’t think it comes down to time. My explanation might have been long, but the process itself can be fast. You just spend the time needed.</p><p>My feeling is that without that context and goal built in, you might be iterating toward a direction, but not one that was chosen intentionally.</p><p>This brings me back to where I started. Our industry is not very patient, and once you start building designs directly to production as the default, the culture and organizational reasons to consider problems, concepts, and intentions start evaporating. We start devaluing the why behind our designs in favor of output.</p><p>My worry isn’t the code or the tools themselves. It’s a decline in consideration, and with that, a decline in unique, well-designed products. The question is how we keep that alive even as new tools and technologies emerge.</p><p>To me, design was never about what the button is or does, or which medium you work in. It was and is about finding the right problem, the right intent, the right vision. The feature you design and build today should be a considered step toward that vision.</p><hr><p><strong>Thank you Charlie Aufmann, Tuhin Kumar, Ramon Marc, Conor Muirhead, Gavin Nelson, Raphael Schaad, Jeff Smith, and Soleio for their comments and discussion on this topic.</strong></p><p><br></p><p></p>]]></description>
      <pubDate>Fri, 19 Dec 2025 19:30:00 +0000</pubDate>
      <link>https://linear.app/now/design-is-more-than-code</link>
      <dc:creator>Linear Blog</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/5054474621</guid>
    </item>
    <item>
      <title><![CDATA[A video featuring Magnus Carlsen trying to beat a very novice player...]]></title>
      <description><![CDATA[
        <a href="https://www.youtube.com/watch?v=iSP6GIK9FUg">A video featuring Magnus Carlsen trying to beat a <em>very</em> novice player at chess with increasingly unfair rules</a> (opponent gets two moves per turn, opponent starts with 23 queens, Magnus starts with 1 king and 23 pawns, etc.)

        

        

         <p>💬 <a href="https://kottke.org/25/12/0047975-a-video-featuring-magnus-">Join the discussion on kottke.org</a> →</p>

    ]]></description>
      <pubDate>Mon, 08 Dec 2025 18:38:02 +0000</pubDate>
      <link>https://kottke.org/25/12/0047975-a-video-featuring-magnus-</link>
      <dc:creator>kottke.org</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/5041679121</guid>
    </item>
    <item>
      <title><![CDATA[A high-level picture of physiological training load for runners]]></title>
      <description><![CDATA[
<p>Runners and coaches throw around the term “training load” a lot, assuming everyone knows what they’re talking about. But when you start to dig into the meaning of that term, you end up with what you might call the “tempo run” problem—the term means something different for just about everyone!</p>



<p>In this article, I am beginning a three-part series on <em>how to think about </em>training load. I’m not going to laboriously cover the mathematics of every possible training load metric.</p>



<p>Instead, I want to present a high-level conceptual framework—specifically, my claim is that there are three types of training load that you should consider in training: <strong>physiological training load</strong>, <strong><a href="https://runningwritings.com/2025/11/biomechanical-training-load-for-runners.html" data-type="link" data-id="https://runningwritings.com/2025/11/biomechanical-training-load-for-runners.html">biomechanical training load</a></strong>, and <strong>psychological training load</strong>.</p>



<p>Each of these types of training load has various ways of being quantified, and arguably various sub-components as well. The three types of training load also relate <em>to one another </em>in some interesting ways. But before talking about interactions, we need to understand each type of load on its own first.</p>



<p>Our topic today is the first of these three: physiological training load.</p>



<p>In short, <strong>physiological training load</strong> describes the stimulus experienced by the various biological subsystems of your body that contribute to energetics writ large: so, your bloodstream, your mitochondria, your lactate transport proteins, and even the primary motor cortex of your brain. Proper physiological training load drives <em>improvement</em>: gains in your body’s energetic capabilities that allow you to run faster and further.</p>



<p><em>See also: </em><a href="https://runningwritings.com/2025/11/biomechanical-training-load-for-runners.html">Part II - biomechanical training load</a></p>



<span id="more-2367"></span>



<h2 class="wp-block-heading">The basic concept of physiological training load</h2>



<p>Physiological training load is what most people think they’re talking about when they say “training load.” Metrics like training stress score (TSS), training impulse (TRIMP), metabolic equivalents (METs), and various metrics of acute and chronic “training load” (ATL, CTR, acute-to-chronic training load) are all trying to capture something <em>physiological </em>in nature—that’s why they are based on things like heart rate, oxygen consumption, or caloric expenditure.</p>



<p>As an example, exercise physiology studies often match training interventions on <strong>total oxygen consumption</strong>—something you might naturally as a way of quantifying “how much total metabolic work” someone did. Let’s say you wanted to compare the benefits of low-intensity training versus high-intensity intervals—you might naively compare a protocol like this:</p>



<ul class="wp-block-list">
<li>Group A: 60 minutes at 50% VO2max, 5 days per week</li>



<li>Group B: 4 x 4 minutes at 100% VO2max, 5 days per week</li>
</ul>



<p>But there’s an issue with this comparison: using units of total oxygen consumed (and setting VO2max to “1.0 units”), Group A has a “<strong>total workload</strong>” of 60 × 0.5 × 5 = 150 units of oxygen per week, while Group B only has 4 × 4 × 1.0 × 5 = 80 units of oxygen per week.<a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftn1" id="_ftnref1"><sup>[1]</sup></a></p>



<p>If Group A improved, was it because low intensity running is better, or because they just consumed more oxygen in total?</p>



<p>This example illustrates why physiological training load is a useful concept. Suppose you instead adjusted Group A to have an equivalent amount of oxygen consumed per week (e.g. 32 min at 50% VO2max, 5 days per week = 80 units total), <em>now</em> you could say something definitive about the benefits of high-intensity intervals versus low-intensity continuous training with your study.</p>



<p>You could imagine a similar system that matches groups on total caloric expenditure, and you’d get <em>almost </em>the same result (since oxygen consumption scales nearly linearly with caloric consumption).<a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftn2" id="_ftnref2"><sup>[2]</sup></a></p>



<h3 class="wp-block-heading"><a></a>Mileage naturally controls for energetic expenditure and oxygen consumption</h3>



<p>Let’s stay with the same “total workload” interpretation of training load for a moment. How would you best plan your training to capture this total workload idea? The answer is simple: <strong>just use mileage</strong>.</p>



<p>Mileage works so well to control for total energetic workload because running economy is (nearly) constant as a function of speed. In other words, the amount of energy it takes to run a mile does not depend on how fast you run. The same is true for total oxygen consumption.</p>



<p>Yes, your <em>rate </em>of energy expenditure (your “<strong>metabolic power</strong>”) goes up when you run faster. But it just so happens that you cover ground faster, in a way that’s almost exactly proportional to how much your metabolic power is going up.</p>



<p>So, when you make a plot of a runner’s energetic cost <em>per mile of running</em> (or per kilometer), you get a curve like this:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="563" src="https://runningwritings.com/wp-content/uploads/2025/10/01-running-economy-is-independent-of-speed-1024x563.png" alt="" class="wp-image-2369" srcset="https://runningwritings.com/wp-content/uploads/2025/10/01-running-economy-is-independent-of-speed-1024x563.png 1024w, https://runningwritings.com/wp-content/uploads/2025/10/01-running-economy-is-independent-of-speed-300x165.png 300w, https://runningwritings.com/wp-content/uploads/2025/10/01-running-economy-is-independent-of-speed-768x422.png 768w, https://runningwritings.com/wp-content/uploads/2025/10/01-running-economy-is-independent-of-speed-1536x844.png 1536w, https://runningwritings.com/wp-content/uploads/2025/10/01-running-economy-is-independent-of-speed-2048x1126.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure>



<p>This plot, by the way, comes straight from one of the chapters of my new book, <strong><a href="https://amzn.to/3IXlFZn" data-type="link" data-id="https://amzn.to/3IXlFZn">Marathon Excellence for Everyone</a></strong>—check it out if you want a deeper dive into the science behind running performance!</p>



<p>Notice how the units on the Y axis of the above plot are literal food calories per mile of running – <a href="https://pubmed.ncbi.nlm.nih.gov/28459289/">yes, there is a slight U-shaped curve</a>, but across a wide range of speeds, the change is well under ten percent.<a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftn3" id="_ftnref3"><sup>[3]</sup></a> The same is true for plotting oxygen consumption per mile:</p>



<p>You can still think of some easy ways to break this relationship—doing lots of trail runs on very steep inclines, for example—but for road and track athletes, <strong>mileage is a simple and effective way to measure total physiological training load</strong>, in the total-workload sense (total energetic expenditure or total oxygen consumed).<a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftn4" id="_ftnref4"><sup>[4]</sup></a></p>



<h3 class="wp-block-heading"><a></a>Duration does not control for energy expenditure or oxygen consumption</h3>



<p>The fact that mileage <em>does </em>control for total energy expenditure, and total oxygen consumption, also implies that the same is <strong>not </strong>true for training by duration (e.g. hours of running per week).</p>



<p>In contrast with mileage, <strong>training by duration does <em>not </em>account for total workload differences</strong> at different intensities. This is a very important point! If you run seven hours per week, <em>your total workload depends on how fast you go</em>. The same is not true if you run 50 miles per week.<a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftn5" id="_ftnref5"><sup>[5]</sup></a></p>



<h2 class="wp-block-heading"><a></a>Physiological training load should combine volume and intensity, but how?</h2>



<p>If you believe, as I do, that the specific physiological effects of training depend on intensity, you would agree that you can’t just add up mileage covered, hour of training, or calories burned and call it the singular authoritative measure of physiological training load.<a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftn6" id="_ftnref6"><sup>[6]</sup></a></p>



<p>This finding motivates various training load schemes that apply a <strong>weighting factor </strong>to different intensities, to give you “more credit” for running 5 km fast versus 5 km easy (or 20 minutes fast versus 20 minutes easy).</p>



<p>This intuition seems directionally correct: if you could only run 30 miles in a week (or 5 hours, or some other constant amount of “absolute load”), it feels like there are better and worse ways of distributing intensity within the week. This intuition gives rise to the many, <em>many</em> different weighted training load schemes like training impulse (TRIMP) and training stress score (TSS), to name just a few.</p>



<p>Some of these weighted training metrics also add a weighted average to different workouts <em>over time</em>, to capture a temporal snapshot of your physiological training load over the last week, month, or six weeks.</p>



<p>From my perspective, though, these temporal schemes address the question of <em>how to aggregate </em>physiological training load, not <em>what physiological training load means</em>—two people could agree on a training load metric, but disagree on the correct aggregation (weekly, monthly, exponential moving average, etc.).</p>



<h3 class="wp-block-heading"><a></a>Sometimes it’s better to just consider different intensities differently</h3>



<p>The various weighted-intensity approaches are often less helpful than just <em>separating out </em>the physiological training load into different categories.</p>



<p>This approach is one of the virtues of <strong>zone training</strong>, which implicitly acknowledges that you want to take a <strong>multivariate</strong> view of training, with different weekly or monthly volume targets in each of several different zones of intensity.</p>



<p>This is the core idea of “<strong>training intensity distribution</strong>” (TID) models—again, there are many of these, but they share the assumption that different intensities have different effects, even per minute or per mile of running. Even the simple “80/20” rule falls into this category: training volume is put into two different buckets of intensity (high and low).</p>



<p><a href="https://runningwritings.com/2023/12/percentage-based-training.html"><strong>Renato Canova’s training philosophy</strong></a> takes an even bolder view, breaking down training into <em>many </em>different “zones.” In such an approach, a 5k runner might have separate training load goals at &lt;60%, 65–75%, 90%, 85%, 90%, 95%, 100%, 105%, 110%, and &gt;110% 5k pace!</p>



<h3 class="wp-block-heading" id="biological-systems"><a></a>Physiological training load can be different for different biological systems</h3>



<p>One reason I find the Canova approach so useful is that it’s natural to extend it one step further: different intensities not only have different effects on the body, but <em>different systems in the body respond to intensity differently</em>.</p>



<p>Here’s one concrete example: people talk about “mitochondrial function” a lot, but your mitochondrial capabilities are a combination of two different qualities: your <strong>mitochondrial density</strong> and your <strong>mitochondrial respiratory power</strong>.</p>



<p><strong>Mitochondrial density</strong> is just how much mitochondria you have in a given volume of muscle.<a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftn7" id="_ftnref7"><sup>[7]</sup></a>&nbsp; If mitochondria are “power engines,” your mitochondrial density tells you “how many engines you have.”</p>



<p>Training increases mitochondrial density, but the effect is <em>completely independent of intensity </em>(as long as you’re below a nominal intensity of 100% VO2max). That’s the conclusion of <a href="https://link.springer.com/article/10.1007/s40279-018-0936-y">a meta-analysis of exercise studies totaling over 1,200 people</a>. <strong>High-intensity and low-intensity training are equally effective at boosting mitochondrial density</strong> once you control for total workload (as in the Group A / Group B example earlier).</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="422" src="https://runningwritings.com/wp-content/uploads/2025/10/02-granata-et-al-mitochondrial-density-and-training-volume-vs-intensity-1-1024x422.png" alt="" class="wp-image-2377" srcset="https://runningwritings.com/wp-content/uploads/2025/10/02-granata-et-al-mitochondrial-density-and-training-volume-vs-intensity-1-1024x422.png 1024w, https://runningwritings.com/wp-content/uploads/2025/10/02-granata-et-al-mitochondrial-density-and-training-volume-vs-intensity-1-300x124.png 300w, https://runningwritings.com/wp-content/uploads/2025/10/02-granata-et-al-mitochondrial-density-and-training-volume-vs-intensity-1-768x316.png 768w, https://runningwritings.com/wp-content/uploads/2025/10/02-granata-et-al-mitochondrial-density-and-training-volume-vs-intensity-1-1536x633.png 1536w, https://runningwritings.com/wp-content/uploads/2025/10/02-granata-et-al-mitochondrial-density-and-training-volume-vs-intensity-1.png 1830w" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure>



<p>As the plot shows, mitochondrial density changes are wholly dependent on training volume, not intensity. Here, mitochondrial density is being estimated by changes in citrate synthase activity (labeled “CS activity”). These studies are on the exercise bike, you can think of “Wmax” as “VO2max” in a running context.</p>



<p>However, the situation is completely reversed with <strong>mitochondrial respiratory power</strong>—the aerobic power output <em>per gram of mitochondria</em>. If mitochondria are “power engines,” your mitochondrial respiratory power tells you “how powerful each engine is.”</p>



<p><strong>To improve mitochondrial respiratory power, you need intensity</strong>: the same meta-analysis found that training above 90% VO2max is critical for improving mitochondrial respiratory power. You get <em>much </em>more effective adaptations, even per amount of workload, from higher-intensity training.</p>



<p>Again, data from <a href="https://link.springer.com/article/10.1007/s40279-018-0936-y" data-type="link" data-id="https://link.springer.com/article/10.1007/s40279-018-0936-y">the Granata et al. meta-analysis</a> bear this finding out:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="728" src="https://runningwritings.com/wp-content/uploads/2025/10/03-granata-et-al-mitochondrial-respiratory-power-improvement-depends-on-intensity-1024x728.png" alt="" class="wp-image-2374" srcset="https://runningwritings.com/wp-content/uploads/2025/10/03-granata-et-al-mitochondrial-respiratory-power-improvement-depends-on-intensity-1024x728.png 1024w, https://runningwritings.com/wp-content/uploads/2025/10/03-granata-et-al-mitochondrial-respiratory-power-improvement-depends-on-intensity-300x213.png 300w, https://runningwritings.com/wp-content/uploads/2025/10/03-granata-et-al-mitochondrial-respiratory-power-improvement-depends-on-intensity-768x546.png 768w, https://runningwritings.com/wp-content/uploads/2025/10/03-granata-et-al-mitochondrial-respiratory-power-improvement-depends-on-intensity-1536x1092.png 1536w, https://runningwritings.com/wp-content/uploads/2025/10/03-granata-et-al-mitochondrial-respiratory-power-improvement-depends-on-intensity.png 1671w" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure>



<p>These mitochondrial findings help demonstrate that even a <em>weighted </em>physiological training load will fail to correctly capture how all biological systems respond to a given training intervention—you can’t always capture every aspect of the body’s response to training with one singular metric.</p>



<h2 class="wp-block-heading"><a></a>Some practical takeaways on how to think about physiological training load</h2>



<p>Often in physiology, you dive into a subject and open a can of worms, leaving more confused than when you started. While that may be the case here, there <em>are </em>some helpful takeaways you can apply to your own training from what we’ve learned about physiological training load:</p>



<h3 class="wp-block-heading"><a></a>Physiological training load is a useful way to think about overtraining and undertraining</h3>



<p>Compressing all the training you do into one number—or even just a hypothetical number, without actually quantifying it—can be a useful heuristic for thinking about the overall physiological stimulus to your body as it relates to “how much” training you are doing globally. If you want a quick, first-pass understanding of a given training approach, calculating a physiological training load metric of some kind is a good way to do it.</p>



<p>For example, if I was asked about a very successful high school cross-country program doing an exotic, unconventional, Mihály Iglói-inspired interval-focused training approach, the first thing I’d do is check out some quick metrics like:</p>



<ul class="wp-block-list">
<li>What’s the total weekly mileage?</li>



<li>How much of that volume is high-end aerobic running (<a href="https://runningwritings.com/2025/02/runners-guide-to-lt1.html">above LT1</a>, below <a href="https://runningwritings.com/2024/08/steady-state-max-for-runners.html">steady-state max</a>)?</li>



<li>How much of that volume is within 5% or so of race pace?</li>
</ul>



<p>(You could imagine doing something very similar with TSS, TRIMP, heart rate zones, etc.).</p>



<p>If it turned out that this team was averaging 75 miles per week, with 25 mi of it at speeds above LT1, that would explain a lot of that team’s success.</p>



<p>Likewise, if I saw a Reddit post by a high schooler planning out summer training under a similar system, but ran these checks and found it would only total 18 miles per week with three miles above LT1, then I’d predict that this runner would <em>not </em>find very much success with this approach, relative to more traditional training—the overall physiological training load is just not high enough.</p>



<p><strong>Overtraining</strong> is another situation where physiological training load is the relevant metric: since overtraining is fundamentally a failure of your physiological systems to respond to the stimulus they’re receiving, you want some number (or set of numbers) that quantify the physiological stimulus to get a handle on the situation.<a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftn8" id="_ftnref8"><sup>[8]</sup></a></p>



<h3 class="wp-block-heading"><a></a>Physiological training load is <strong>not</strong> a useful way to think about overuse injuries</h3>



<p>Injuries are biomechanical, not physiological. Physiological training load—and physiologically based metrics like TRIMP, TSS, etc.—are <em>not </em>the best way to design training to avoid injury.</p>



<p>We’ll go into this problem in much more depth in the article on biomechanical training load, but the core intuition is as follows: weighted physiological training load metrics like TRIMP or TSS give extra “points” to higher intensities, but the weighting scheme is not designed to scale according to the biomechanical forces that your legs are experiencing.</p>



<p>Concretely: running 5 km fast does much more damage to your body than running 5 km slow, <em>even to a greater extent</em> than captured by various physiological weighting schemes. <strong>High heart rates don’t cause injuries; high biomechanical loads do.</strong></p>



<p>Now, there’s often a <em>correlation </em>between physiological training load and biomechanical training load, and in practice things like very high mileage and very fast workouts will increase both. But if you are using the exact same framing to think about physiological load and biomechanical load, you’re making a big mistake.</p>



<h3 class="wp-block-heading"><a></a>Mileage is a very good physiological training load metric</h3>



<p>I think mileage gets a bad rap. It is a very simple measure of physiological training load that has a very powerful property: because running economy is essentially constant across speeds, <strong>mileage automatically accounts for changes in energy expenditure at different speeds</strong>.</p>



<p>As we saw earlier, if you run 5 km, your total energetic expenditure (in calories) and your total oxygen consumption (in liters) is the same, whether you run 5 km in 18 minutes or 28 minutes.</p>



<p>This property makes mileage a very robust metric for physiological training load—it’s hard to do better as a high-level estimate of your body’s “total workload.”</p>



<h3 class="wp-block-heading"><a></a>Consider tracking your volume in different intensity ranges separately</h3>



<p>Our mitochondrial density vs. mitochondrial respiratory power example from earlier illustrated why even the most clever intensity-weighting scheme will fail to fully capture your body’s response to a given training stimulus: <strong>not all physiological sub-systems respond the same to different intensities</strong>.</p>



<p>The best “solution” here is to just track different intensities separately. For all their flaws, “Zone Training” models do this quite naturally, as does <a href="https://runningwritings.com/2023/12/percentage-based-training.html">Renato Canova-style full spectrum training</a>. Depending on your training goals, you might either focus on your “global” physiological training load (e.g. weekly mileage), or your physiological training load at a particular intensity (e.g. monthly volume at 80–92% 5k pace).&nbsp;</p>



<p>For example, when writing the <strong><a href="https://marathonexcellence.com/plans">Marathon Excellence training plans</a></strong>, I tracked weekly mileage <em>and </em>distance covered in each workout at 90, 95, 100, 105, and 110% of marathon pace.</p>



<h2 class="wp-block-heading"><a></a>Recap</h2>



<p>Physiological training load captures the “dose” received by the various biological systems of your body as a result of training. It is a highly useful conceptual tool, even though there’s no singular metric for physiological training load metric that captures the full picture of your body’s response to training.</p>



<p>If you want a high-level overview of your total workload, just look at your mileage: it correctly accounts for the fact that higher running intensities burn more energy, so you can cleanly separate the effects of total workload versus the effects of higher intensity.</p>



<p>Weighted intensity metrics like training stress score or training impulse can be useful in some cases, but you should also consider analyzing your training volume in several different intensity ranges simultaneously. Taking a “multivariate” view of physiological training load can lead to insights you’d miss when trying to compress training load down to one number.</p>



<h2 class="wp-block-heading"><a></a>Learn more about the science of running</h2>



<p>If you want to know when my follow-up articles on biomechanical training load and psychological training load come out, sign up for my free email list! You’ll be the first to find out when I have new articles, new <a href="https://apps.runningwritings.com/">apps and calculators</a>, and new projects coming out.</p>



<div style="display:flex; justify-content: center; padding-bottom: 1em;"><script async="" src="https://eomail6.com/form/187bb3d4-92e9-11ed-8dcb-9536633250ee.js" data-form="187bb3d4-92e9-11ed-8dcb-9536633250ee"></script></div>



<p>I also have a new book out this month, <strong><a href="https://amzn.to/3Wsm6Og" data-type="link" data-id="https://www.amazon.com/dp/B0FNRPHLRY"><em>Marathon Excellence for Everyone</em></a></strong>, which covers the modern, scientifically based approach to marathon training. You can <a href="https://amzn.to/3Wsm6Og" data-type="link" data-id="https://amzn.to/3Wsm6Og">get it on Amazon</a> or learn more about the book at <strong><a href="https://marathonexcellence.com/" data-type="link" data-id="https://marathonexcellence.com/">MarathonExcellence.com</a></strong>.</p>



<p>I also have a shorter book, <a href="https://amzn.to/3JLJiAR"><strong><em>Modern Training and Physiology for Middle and Long-Distance Runners</em></strong></a>, that focuses on the science of performance and training for events from 800m to the 10k. Make sure to check them both out!</p>



<h2 class="wp-block-heading"><a></a>Footnotes</h2>



<hr class="wp-block-separator has-alpha-channel-opacity">



<p><a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftnref1" id="_ftn1"><sup>[1]</sup></a> This is a somewhat contrived example to make the math easy; of course you might more reasonably assign “mixed” training to group B including some intense intervals and some easy exercise. We are also ignoring the fact that doing 3 min at the intensity associated with “100% VO2max” does not actually involve 3 x (your VO2max) units of oxygen, but in practice it is not that hard to account for things like oxygen kinetics, mixed training, etc. The important point is that we want to parse out the effects of <em>the intensity per se</em> from the effects of the <em>overall volume of oxygen consumed</em>.</p>



<p><a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftnref2" id="_ftn2"><sup>[2]</sup></a> Technically there is some divergence between oxygen consumption and caloric expenditure as you shift towards burning more carbs and less fat at higher intensities, but at its worst the differences are ~5% or so.</p>



<p><a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftnref3" id="_ftn3"><sup>[3]</sup></a> Running is unique in its “flat” economy curve: walking has a very pronounced U-shaped curve, for example, and in cycling, gear ratio and cadence complicate the picture somewhat.</p>



<p><a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftnref4" id="_ftn4"><sup>[4]</sup></a> Sometimes I find it helpful to think about training from the perspective of a single muscle cell, or even a single mitochondrial membrane. All you’d really “know” is (1) how fast oxygen is diffusing across your membrane, and (2) how much oxygen you consumed in total. These two experiences map directly to intensity and total workload.</p>



<p><a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftnref5" id="_ftn5"><sup>[5]</sup></a> It might be interesting to explore workload differences in runners who have high vs. low running economy. In this case, the runner doing 50 miles per week with very good running economy <em>does </em>have a lower total energetic expenditure (even relative to body mass) than the runner with poor running economy!</p>



<p><a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftnref6" id="_ftn6"><sup>[6]</sup></a> You might call the opposite view “<strong>training load maximalism</strong>”—the view that intensity <em>does not </em>matter, and instead, all that matters is sustaining the highest training load possible, regardless of the intensity. Even though I reject this view, I still think it’s worth taking seriously: a good first-pass analysis of any new or unusual training method is “does this just increase overall training load?” </p>



<p>I’ll write up a full article on training load maximalism at some point, but a good intuitive argument against it comes from considering how triathletes and ultramarathoners fare in shorter distances. If training load is all that matters, why don’t people like Courtney Dauwalter, Gwen Jorgensen, and Alex Yee drop down to shorter events and destroy everyone? They’re <em>very good </em>at shorter running events, to be sure, but typically not the <em>very best</em>.</p>



<p><a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftnref7" id="_ftn7"><sup>[7]</sup></a> I’m consciously saying “how much” and not “how many” mitochondria, since the college-textbook picture of mitochondria as discrete, individual bean-shaped cells is not correct for muscles: within a muscle, the mitochondria <a href="https://med-fom-pcdd.sites.olt.ubc.ca/files/2018/08/musclemito_gallerydl.png">forms a three-dimensional mesh that surrounds muscles</a> and manages electrical potentials and power flow across many different muscle fibrils at once.</p>



<p><a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html#_ftnref8" id="_ftn8"><sup>[8]</sup></a> Overtraining is a complicated subject; often psychological training load plays a role in overtraining as well. But physiological training load is not a bad place to start: if the physiological load is moderate, and the athlete feels overtrained, that suggests the problem lies outside of the training itself: sleep, life stress, nutrition, post-viral syndrome, etc.</p>



<h2 class="wp-block-heading">Related articles</h2>



<div class="gb-grid-wrapper gb-grid-wrapper-34fb99e4 gb-query-loop-wrapper">
<div class="gb-grid-column gb-grid-column-209a79d5 gb-query-loop-item post-2503 post type-post status-publish format-standard has-post-thumbnail hentry category-biomechanics category-science"><div class="gb-container gb-container-209a79d5">
<figure class="gb-block-image gb-block-image-51a72331"><img loading="lazy" decoding="async" width="2048" height="1012" src="https://runningwritings.com/wp-content/uploads/2025/11/skeleton-paperclip-running-injuries.jpg" class="gb-image-51a72331" alt="" srcset="https://runningwritings.com/wp-content/uploads/2025/11/skeleton-paperclip-running-injuries.jpg 2048w, https://runningwritings.com/wp-content/uploads/2025/11/skeleton-paperclip-running-injuries-300x148.jpg 300w, https://runningwritings.com/wp-content/uploads/2025/11/skeleton-paperclip-running-injuries-1024x506.jpg 1024w, https://runningwritings.com/wp-content/uploads/2025/11/skeleton-paperclip-running-injuries-768x380.jpg 768w, https://runningwritings.com/wp-content/uploads/2025/11/skeleton-paperclip-running-injuries-1536x759.jpg 1536w" sizes="auto, (max-width: 2048px) 100vw, 2048px"></figure>

<h2 class="gb-headline gb-headline-57640c7a gb-headline-text"><a href="https://runningwritings.com/2025/12/tissue-loading-and-damage-in-running-injuries.html">Understanding tissue loading, tissue damage, and running injuries</a></h2>

<p class="gb-headline gb-headline-9546576f gb-headline-text"><time class="entry-date published" datetime="2025-12-02T20:04:14-06:00">December 2, 2025</time></p>

<div class="gb-headline gb-headline-1c4c5bee gb-headline-text">In my article on biomechanical training load, I covered the basics behind how biomechanical loading is related to the development of running injuries. The basic idea is pretty straightforward: every time you take a step, your tendons, bones, and joints experience a loading cycle: a build-up and release of mechanical force. Each loading cycle does ... <a title="Understanding tissue loading, tissue damage, and running injuries" class="read-more" href="https://runningwritings.com/2025/12/tissue-loading-and-damage-in-running-injuries.html" aria-label="Read more about Understanding tissue loading, tissue damage, and running injuries">Read more</a></div>
</div></div>

<div class="gb-grid-column gb-grid-column-209a79d5 gb-query-loop-item post-2412 post type-post status-publish format-standard has-post-thumbnail hentry category-biomechanics category-science category-training tag-achilles tag-injury tag-training"><div class="gb-container gb-container-209a79d5">
<figure class="gb-block-image gb-block-image-51a72331"><img loading="lazy" decoding="async" width="1536" height="1024" src="https://runningwritings.com/wp-content/uploads/2025/11/runner-and-skeleton-argue-about-biomechanics.png" class="gb-image-51a72331" alt="" srcset="https://runningwritings.com/wp-content/uploads/2025/11/runner-and-skeleton-argue-about-biomechanics.png 1536w, https://runningwritings.com/wp-content/uploads/2025/11/runner-and-skeleton-argue-about-biomechanics-300x200.png 300w, https://runningwritings.com/wp-content/uploads/2025/11/runner-and-skeleton-argue-about-biomechanics-1024x683.png 1024w, https://runningwritings.com/wp-content/uploads/2025/11/runner-and-skeleton-argue-about-biomechanics-768x512.png 768w" sizes="auto, (max-width: 1536px) 100vw, 1536px"></figure>

<h2 class="gb-headline gb-headline-57640c7a gb-headline-text"><a href="https://runningwritings.com/2025/11/biomechanical-training-load-for-runners.html">A high-level picture of biomechanical training load for runners</a></h2>

<p class="gb-headline gb-headline-9546576f gb-headline-text"><time class="entry-date published" datetime="2025-11-02T00:08:44-06:00">November 2, 2025</time></p>

<div class="gb-headline gb-headline-1c4c5bee gb-headline-text">What do we mean when we say “training load”? This is the second article in a three-part series aimed at answering that question. My core argument in this series is that there are three distinct types of training load you should consider—physiological training load, biomechanical training load, and psychological training load. Today, we turn our ... <a title="A high-level picture of biomechanical training load for runners" class="read-more" href="https://runningwritings.com/2025/11/biomechanical-training-load-for-runners.html" aria-label="Read more about A high-level picture of biomechanical training load for runners">Read more</a></div>
</div></div>

<div class="gb-grid-column gb-grid-column-209a79d5 gb-query-loop-item post-2367 post type-post status-publish format-standard has-post-thumbnail hentry category-science category-training tag-physiology"><div class="gb-container gb-container-209a79d5">
<figure class="gb-block-image gb-block-image-51a72331"><img loading="lazy" decoding="async" width="1536" height="1024" src="https://runningwritings.com/wp-content/uploads/2025/10/header-physiological-training-load-for-runners.png" class="gb-image-51a72331" alt="" srcset="https://runningwritings.com/wp-content/uploads/2025/10/header-physiological-training-load-for-runners.png 1536w, https://runningwritings.com/wp-content/uploads/2025/10/header-physiological-training-load-for-runners-300x200.png 300w, https://runningwritings.com/wp-content/uploads/2025/10/header-physiological-training-load-for-runners-1024x683.png 1024w, https://runningwritings.com/wp-content/uploads/2025/10/header-physiological-training-load-for-runners-768x512.png 768w" sizes="auto, (max-width: 1536px) 100vw, 1536px"></figure>

<h2 class="gb-headline gb-headline-57640c7a gb-headline-text"><a href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html">A high-level picture of physiological training load for runners</a></h2>

<p class="gb-headline gb-headline-9546576f gb-headline-text"><time class="entry-date published" datetime="2025-10-20T15:38:43-06:00">October 20, 2025</time></p>

<div class="gb-headline gb-headline-1c4c5bee gb-headline-text">Runners and coaches throw around the term “training load” a lot, assuming everyone knows what they’re talking about. But when you start to dig into the meaning of that term, you end up with what you might call the “tempo run” problem—the term means something different for just about everyone! In this article, I am ... <a title="A high-level picture of physiological training load for runners" class="read-more" href="https://runningwritings.com/2025/10/physiological-training-load-for-runners.html" aria-label="Read more about A high-level picture of physiological training load for runners">Read more</a></div>
</div></div>

<div class="gb-grid-column gb-grid-column-209a79d5 gb-query-loop-item post-2007 post type-post status-publish format-standard has-post-thumbnail hentry category-marathon category-science tag-heat"><div class="gb-container gb-container-209a79d5">
<figure class="gb-block-image gb-block-image-51a72331"><img loading="lazy" decoding="async" width="1536" height="1024" src="https://runningwritings.com/wp-content/uploads/2025/04/marathon-running-in-the-heat.png" class="gb-image-51a72331" alt="" srcset="https://runningwritings.com/wp-content/uploads/2025/04/marathon-running-in-the-heat.png 1536w, https://runningwritings.com/wp-content/uploads/2025/04/marathon-running-in-the-heat-300x200.png 300w, https://runningwritings.com/wp-content/uploads/2025/04/marathon-running-in-the-heat-1024x683.png 1024w, https://runningwritings.com/wp-content/uploads/2025/04/marathon-running-in-the-heat-768x512.png 768w" sizes="auto, (max-width: 1536px) 100vw, 1536px"></figure>

<h2 class="gb-headline gb-headline-57640c7a gb-headline-text"><a href="https://runningwritings.com/2025/04/heat-humidity-marathon-times.html">Calculating the effects of heat and humidity on marathon performance</a></h2>

<p class="gb-headline gb-headline-9546576f gb-headline-text"><time class="entry-date published" datetime="2025-04-23T01:47:00-06:00">April 23, 2025</time></p>

<div class="gb-headline gb-headline-1c4c5bee gb-headline-text">How much does heat and humidity affect performance in the marathon? And how do we know how much those conditions affect marathon performance? These questions matter both for planning what marathon race you want to sign up for as well as for adjusting your pacing plan the week of the race once the weather forecast ... <a title="Calculating the effects of heat and humidity on marathon performance" class="read-more" href="https://runningwritings.com/2025/04/heat-humidity-marathon-times.html" aria-label="Read more about Calculating the effects of heat and humidity on marathon performance">Read more</a></div>
</div></div>

<div class="gb-grid-column gb-grid-column-209a79d5 gb-query-loop-item post-1919 post type-post status-publish format-standard has-post-thumbnail hentry category-science tag-lactate tag-physiology"><div class="gb-container gb-container-209a79d5">
<figure class="gb-block-image gb-block-image-51a72331"><img loading="lazy" decoding="async" width="1792" height="1024" src="https://runningwritings.com/wp-content/uploads/2025/02/warmup-before-sub-threshold-workout-2.webp" class="gb-image-51a72331" alt="" srcset="https://runningwritings.com/wp-content/uploads/2025/02/warmup-before-sub-threshold-workout-2.webp 1792w, https://runningwritings.com/wp-content/uploads/2025/02/warmup-before-sub-threshold-workout-2-300x171.webp 300w, https://runningwritings.com/wp-content/uploads/2025/02/warmup-before-sub-threshold-workout-2-1024x585.webp 1024w, https://runningwritings.com/wp-content/uploads/2025/02/warmup-before-sub-threshold-workout-2-768x439.webp 768w, https://runningwritings.com/wp-content/uploads/2025/02/warmup-before-sub-threshold-workout-2-1536x878.webp 1536w" sizes="auto, (max-width: 1792px) 100vw, 1792px"></figure>

<h2 class="gb-headline gb-headline-57640c7a gb-headline-text"><a href="https://runningwritings.com/2025/02/runners-guide-to-lt1.html">A runner’s guide to LT1, the first lactate threshold</a></h2>

<p class="gb-headline gb-headline-9546576f gb-headline-text"><time class="entry-date published" datetime="2025-02-16T23:11:58-06:00">February 16, 2025</time></p>

<div class="gb-headline gb-headline-1c4c5bee gb-headline-text">LT1 is the first lactate threshold: one of two key thresholds that define your body’s pattern of physiological response to different running speeds (the other being steady-state max or “SSmax”). Your LT1 can be intuitively understood as the boundary between paces that feel easy versus paces that feel moderate, steady, or strong. On a physiological ... <a title="A runner’s guide to LT1, the first lactate threshold" class="read-more" href="https://runningwritings.com/2025/02/runners-guide-to-lt1.html" aria-label="Read more about A runner’s guide to LT1, the first lactate threshold">Read more</a></div>
</div></div>

<div class="gb-grid-column gb-grid-column-209a79d5 gb-query-loop-item post-1846 post type-post status-publish format-standard has-post-thumbnail hentry category-science tag-heart-rate tag-lactate tag-physiology"><div class="gb-container gb-container-209a79d5">
<figure class="gb-block-image gb-block-image-51a72331"><img loading="lazy" decoding="async" width="1792" height="1024" src="https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-lt1-lt2.webp" class="gb-image-51a72331" alt="Crop tops under sports bras are the next big thing in running fashion, you heard it here first" srcset="https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-lt1-lt2.webp 1792w, https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-lt1-lt2-300x171.webp 300w, https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-lt1-lt2-1024x585.webp 1024w, https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-lt1-lt2-768x439.webp 768w, https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-lt1-lt2-1536x878.webp 1536w" sizes="auto, (max-width: 1792px) 100vw, 1792px"></figure>

<h2 class="gb-headline gb-headline-57640c7a gb-headline-text"><a href="https://runningwritings.com/2025/02/lt1-lt2-heart-rate-individual-variation.html">Individual variation in heart rates at LT1 and LT2 in runners, and the implications for zone training</a></h2>

<p class="gb-headline gb-headline-9546576f gb-headline-text"><time class="entry-date published" datetime="2025-02-05T01:06:46-06:00">February 5, 2025</time></p>

<div class="gb-headline gb-headline-1c4c5bee gb-headline-text">The entire purpose of running by heart rate zones is to create a specific pattern of physiological response in your body when running in each zone. “Zone 2 training,” for example, has specific (purported) fitness benefits that are connected with the physiological responses seen below LT1, the first lactate threshold. There is a similar connection ... <a title="Individual variation in heart rates at LT1 and LT2 in runners, and the implications for zone training" class="read-more" href="https://runningwritings.com/2025/02/lt1-lt2-heart-rate-individual-variation.html" aria-label="Read more about Individual variation in heart rates at LT1 and LT2 in runners, and the implications for zone training">Read more</a></div>
</div></div>

<div class="gb-grid-column gb-grid-column-209a79d5 gb-query-loop-item post-1837 post type-post status-publish format-standard has-post-thumbnail hentry category-science tag-heart-rate tag-lactate tag-physiology"><div class="gb-container gb-container-209a79d5">
<figure class="gb-block-image gb-block-image-51a72331"><img loading="lazy" decoding="async" width="1792" height="1024" src="https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-arm-band-watch.jpg" class="gb-image-51a72331" alt="" srcset="https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-arm-band-watch.jpg 1792w, https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-arm-band-watch-300x171.jpg 300w, https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-arm-band-watch-1024x585.jpg 1024w, https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-arm-band-watch-768x439.jpg 768w, https://runningwritings.com/wp-content/uploads/2025/02/runner-heart-rate-zones-arm-band-watch-1536x878.jpg 1536w" sizes="auto, (max-width: 1792px) 100vw, 1792px"></figure>

<h2 class="gb-headline gb-headline-57640c7a gb-headline-text"><a href="https://runningwritings.com/2025/02/lt1-lt2-heart-rate-zone-science.html">LT1, LT2, and the scientific basis of heart rate zones for runners</a></h2>

<p class="gb-headline gb-headline-9546576f gb-headline-text"><time class="entry-date published" datetime="2025-02-03T00:40:41-06:00">February 3, 2025</time></p>

<div class="gb-headline gb-headline-1c4c5bee gb-headline-text">Heart rate zones are all the rage for many runners. Various experts and authorities tout the benefits of different “zones,” though exactly how many zones there are—and what heart rates define each zone—are points of vociferous disagreement. Instead of tackling the behemoth that is heart rate training in one post, this article is focused on ... <a title="LT1, LT2, and the scientific basis of heart rate zones for runners" class="read-more" href="https://runningwritings.com/2025/02/lt1-lt2-heart-rate-zone-science.html" aria-label="Read more about LT1, LT2, and the scientific basis of heart rate zones for runners">Read more</a></div>
</div></div>

<div class="gb-grid-column gb-grid-column-209a79d5 gb-query-loop-item post-1793 post type-post status-publish format-standard has-post-thumbnail hentry category-science category-training tag-10k tag-3k tag-5k tag-800m tag-college tag-high-school tag-mile tag-physiology"><div class="gb-container gb-container-209a79d5">
<figure class="gb-block-image gb-block-image-51a72331"><img loading="lazy" decoding="async" width="1792" height="1024" src="https://runningwritings.com/wp-content/uploads/2025/01/aerobic-anaerobic-energy-for-running-events.webp" class="gb-image-51a72331" alt="Fast-twitch Frannie and Slow-twitch Sallie face off in an ultimate battle to discover who is truly the queen of the mile" srcset="https://runningwritings.com/wp-content/uploads/2025/01/aerobic-anaerobic-energy-for-running-events.webp 1792w, https://runningwritings.com/wp-content/uploads/2025/01/aerobic-anaerobic-energy-for-running-events-300x171.webp 300w, https://runningwritings.com/wp-content/uploads/2025/01/aerobic-anaerobic-energy-for-running-events-1024x585.webp 1024w, https://runningwritings.com/wp-content/uploads/2025/01/aerobic-anaerobic-energy-for-running-events-768x439.webp 768w, https://runningwritings.com/wp-content/uploads/2025/01/aerobic-anaerobic-energy-for-running-events-1536x878.webp 1536w" sizes="auto, (max-width: 1792px) 100vw, 1792px"></figure>

<h2 class="gb-headline gb-headline-57640c7a gb-headline-text"><a href="https://runningwritings.com/2025/01/aerobic-vs-anaerobic-contributions-in-running.html">Individual variation in aerobic and anaerobic energy contributions to different events</a></h2>

<p class="gb-headline gb-headline-9546576f gb-headline-text"><time class="entry-date published" datetime="2025-01-19T23:11:08-06:00">January 19, 2025</time></p>

<div class="gb-headline gb-headline-1c4c5bee gb-headline-text">Many books on training and exercise physiology (including mine) begin with a discussion of aerobic and anaerobic energy production. The next logical question to ask is how much these two energy systems contribute to the various running events—how “aerobic” is, say, the 800m? Such a question is sure to spark heated debate online, but I ... <a title="Individual variation in aerobic and anaerobic energy contributions to different events" class="read-more" href="https://runningwritings.com/2025/01/aerobic-vs-anaerobic-contributions-in-running.html" aria-label="Read more about Individual variation in aerobic and anaerobic energy contributions to different events">Read more</a></div>
</div></div>
</div>
]]></description>
      <pubDate>Mon, 20 Oct 2025 21:38:43 +0000</pubDate>
      <link>https://runningwritings.com/2025/10/physiological-training-load-for-runners.html</link>
      <dc:creator>Running Writings</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4986963118</guid>
    </item>
    <item>
      <title><![CDATA[Easier layout with margin-trim]]></title>
      <description><![CDATA[<p>If you write a lot of CSS, you are familiar with those moments when you aren’t quite sure how to accomplish what you want to accomplish. Usually, you’ll turn to tutorials or documentation, and learn more about CSS to get your work done. But every once in a while, you realize there is no “proper” way to do what you want to do.  So you come up with (or borrow) a solution that feels hacky. Maybe it requires a lot of complex selectors. Or maybe it works for the content you have at the moment, but you worry that someday, someone might throw different HTML at the site, and the solution you wrote will break.</p>
<p>CSS has matured a lot over the last decade. Many robust solutions filled in gaps that previously required fragile hacks. And now, there’s one more — <code>margin-trim</code>.</p>
<h2>Margin trim</h2>
<p>The <code>margin-trim</code> property lets you tell a container to trim the margins off its children — any margins that push up against the container. In one fell swoop, all of the margin space between the children and the container is eliminated.</p>
<figure class="mattewhite black widescreen"><img loading="lazy" decoding="async" src="https://webkit.org/wp-content/uploads/margin-trim-simple-scaled.png" alt="diagrams of how margin-trim affects layout —&nbsp;before and after." width="2560" height="1439" class="aligncenter size-full wp-image-16863 preserve-color" srcset="https://webkit.org/wp-content/uploads/margin-trim-simple-scaled.png 2560w, https://webkit.org/wp-content/uploads/margin-trim-simple-300x169.png 300w, https://webkit.org/wp-content/uploads/margin-trim-simple-1024x576.png 1024w, https://webkit.org/wp-content/uploads/margin-trim-simple-768x432.png 768w, https://webkit.org/wp-content/uploads/margin-trim-simple-1536x863.png 1536w, https://webkit.org/wp-content/uploads/margin-trim-simple-2048x1151.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px"></figure>
<p>This also works when the margins are on the grandchildren or great grand-children, or great great great great grand-children. If there is space created with margins on any of the content inside the container, and that space buts up against the container, it’s trimmed away when <code>margin-trim</code> is applied <em>to the container.</em></p>
<figure class="mattewhite black widescreen"><img loading="lazy" decoding="async" src="https://webkit.org/wp-content/uploads/margin-trim-complex-scaled.png" alt="Another diagram of how margin trim affects layout before &amp; after —&nbsp;this time  with grandchildren that have margins" width="2560" height="1439" class="aligncenter size-full wp-image-16864 preserve-color" srcset="https://webkit.org/wp-content/uploads/margin-trim-complex-scaled.png 2560w, https://webkit.org/wp-content/uploads/margin-trim-complex-300x169.png 300w, https://webkit.org/wp-content/uploads/margin-trim-complex-1024x576.png 1024w, https://webkit.org/wp-content/uploads/margin-trim-complex-768x432.png 768w, https://webkit.org/wp-content/uploads/margin-trim-complex-1536x863.png 1536w, https://webkit.org/wp-content/uploads/margin-trim-complex-2048x1151.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px"></figure>
<p>Let’s imagine a practical example. Let’s say we have multiple paragraphs inside an <code>article</code> element, and those paragraphs have margins. Also at the same time, the container has padding on it.</p>
<pre><code class="css"><span class="keyword">article</span> {
  <span class="attribute">padding</span>: <span class="number">2</span><span class="identifier">lh</span>;
  <span class="attribute">background</span>: <span class="identifier">white</span>;
  <span class="attribute">p</span> {
    <span class="attribute">margin-block</span>: <span class="number">1</span><span class="identifier">lh</span>;
  }
}
</code></pre>
<p>This is very typical code. The padding on the container is supposed to create an even amount of space all the way around the box, but instead there’s extra white space above and below the content. Like this:</p>
<figure><picture><source srcset="https://webkit.org/wp-content/uploads/text-before-dark.png" media="(prefers-color-scheme: dark)"><img loading="lazy" decoding="async" src="https://webkit.org/wp-content/uploads/text-before-light.png" alt="Four paragraphs of text in a white box on a tan background. The white box has a lot more space above and below the text than it does on the sides of the text." width="1934" height="1464" class="aligncenter size-full wp-image-16867" srcset="https://webkit.org/wp-content/uploads/text-before-light.png 1934w, https://webkit.org/wp-content/uploads/text-before-light-300x227.png 300w, https://webkit.org/wp-content/uploads/text-before-light-1024x775.png 1024w, https://webkit.org/wp-content/uploads/text-before-light-768x581.png 768w, https://webkit.org/wp-content/uploads/text-before-light-1536x1163.png 1536w" sizes="auto, (max-width: 1934px) 100vw, 1934px">
</picture></figure>
<p>By <a href="https://webkit.org/blog/16831/line-height-units/">using <code>1lh</code> for the margins between the paragraphs</a>, and <code>2lh</code> for the padding on the <code>article</code> box, we’re attempting to create a beautiful typographic layout. Let’s turn on some guides to better see where the extra space is coming from. The padding on the article box and the margins on the paragraphs are each marked in separate colors.</p>
<figure><picture><source srcset="https://webkit.org/wp-content/uploads/guides-before-dark.png" media="(prefers-color-scheme: dark)"><img loading="lazy" decoding="async" src="https://webkit.org/wp-content/uploads/guides-before-light.png" alt="The same example of text in a box with margins, now with one color marking the padding, and another color marking the margins." width="1934" height="1464" class="aligncenter size-full wp-image-16871" srcset="https://webkit.org/wp-content/uploads/guides-before-light.png 1934w, https://webkit.org/wp-content/uploads/guides-before-light-300x227.png 300w, https://webkit.org/wp-content/uploads/guides-before-light-1024x775.png 1024w, https://webkit.org/wp-content/uploads/guides-before-light-768x581.png 768w, https://webkit.org/wp-content/uploads/guides-before-light-1536x1163.png 1536w" sizes="auto, (max-width: 1934px) 100vw, 1934px"></picture></figure>
<p>The margins on the first and last paragraphs (<code>1lh</code>) are being added to the padding (<code>2lh</code>) to create a space in the block direction that measures <code>3lh</code>.</p>
<p>It will be better for the design if we get rid of the margin above the first paragraph and the margin below the last paragraph. Before we had <code>margin-trim</code>, we would attempt to remove the margins from the first and last paragraphs, or lessen the padding in the block direction… but any approach we take will be dependent on the content inside. Perhaps another instance of this <code>article</code> will start with a headline that has a different amount for a top margin. Or start with an image that has no margin.</p>
<p>Without being 100% sure of what kind of content will be in the box, it’s hard to guarantee the spacing will come out as desired. Until now.</p>
<p>The new <code>margin-trim</code> property gives us an easy way to ask directly for what we want. We can tell the box to eliminate any margins that are butting up against that box.</p>
<p>For example:</p>
<pre><code class="css"><span class="keyword">article</span> {
  <span class="attribute">margin-trim</span>: <span class="identifier">block</span>;
  <span class="attribute">padding</span>: <span class="number">2</span><span class="identifier">lh</span>;
  <span class="attribute">background</span>: <span class="identifier">white</span>;
  <span class="attribute">p</span> {
    <span class="attribute">margin-block</span>: <span class="number">1</span><span class="identifier">lh</span>;
  }
}
</code></pre>
<p>Now the browser automatically chops off any margins that touch the edge of the <code>article</code> box in the block direction — in this case the top and bottom of the box.</p>
<figure><picture><source srcset="https://webkit.org/wp-content/uploads/guides-after-dark.png" media="(prefers-color-scheme: dark)"><img loading="lazy" decoding="async" src="https://webkit.org/wp-content/uploads/guides-after-light.png" alt="The same example again, now with the margins above and below the text chopped off. The colored stripes marking margins no longer exist above and below the content. " width="1934" height="1364" class="aligncenter size-full wp-image-16874" srcset="https://webkit.org/wp-content/uploads/guides-after-light.png 1934w, https://webkit.org/wp-content/uploads/guides-after-light-300x212.png 300w, https://webkit.org/wp-content/uploads/guides-after-light-1024x722.png 1024w, https://webkit.org/wp-content/uploads/guides-after-light-768x542.png 768w, https://webkit.org/wp-content/uploads/guides-after-light-1536x1083.png 1536w" sizes="auto, (max-width: 1934px) 100vw, 1934px"></picture></figure>
<p>Note that while the margins are defined on the <code>&lt;p&gt;</code> element, you declare <code>margin-trim</code> on the <code>&lt;article&gt;</code> element. You always apply <code>margin-trim</code> to the container, not the element that has the margin in the first place.</p>
<p>Here’s the end result.</p>
<figure><picture><source srcset="https://webkit.org/wp-content/uploads/text-after-dark.png" media="(prefers-color-scheme: dark)"><img loading="lazy" decoding="async" src="https://webkit.org/wp-content/uploads/text-after-light.png" alt="The same demo, without any guides, now seeing the clean text, and seeing that the space above &amp; below the text, and the space on the sides is the same amount. " width="1934" height="1364" class="aligncenter size-full wp-image-16876" srcset="https://webkit.org/wp-content/uploads/text-after-light.png 1934w, https://webkit.org/wp-content/uploads/text-after-light-300x212.png 300w, https://webkit.org/wp-content/uploads/text-after-light-1024x722.png 1024w, https://webkit.org/wp-content/uploads/text-after-light-768x542.png 768w, https://webkit.org/wp-content/uploads/text-after-light-1536x1083.png 1536w" sizes="auto, (max-width: 1934px) 100vw, 1934px"></picture></figure>
<h2>Try it yourself</h2>
<p>You can try out <code>margin-trim</code> in <a href="https://codepen.io/jensimmons/full/YPKZgvX">this live demo</a>, in Safari 16.4 or greater.</p>
<figure><picture><source srcset="https://webkit.org/wp-content/uploads/demo-dark-2-scaled.png" media="(prefers-color-scheme: dark)"><img loading="lazy" decoding="async" src="https://webkit.org/wp-content/uploads/demo-light-2-scaled.png" alt="Screenshot of the demo on the web where people can try it out for themselves. " width="2560" height="1621" class="aligncenter size-full wp-image-16880" srcset="https://webkit.org/wp-content/uploads/demo-light-2-scaled.png 2560w, https://webkit.org/wp-content/uploads/demo-light-2-300x190.png 300w, https://webkit.org/wp-content/uploads/demo-light-2-1024x648.png 1024w, https://webkit.org/wp-content/uploads/demo-light-2-768x486.png 768w, https://webkit.org/wp-content/uploads/demo-light-2-1536x973.png 1536w, https://webkit.org/wp-content/uploads/demo-light-2-2048x1297.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px"></picture></figure>
<h2>Browser Support</h2>
<p>Support for<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/margin-trim"><code>margin-trim</code></a> shipped in Safari over two years ago. But so far, Safari is the only <a href="https://caniuse.com/mdn-css_properties_margin-trim">browser with support</a>. So what should you do for browsers without support? For our demo, you could write fallback code inside of feature queries, like this:</p>
<pre><code class="css"><span class="keyword">article</span> { 
  <span class="attribute">margin-trim</span>: <span class="identifier">block</span>;
  <span class="attribute">font-size</span>: <span class="number">1.2</span><span class="identifier">rem</span>;
  <span class="attribute">line-height</span>: <span class="number">1.3</span>;
  <span class="attribute">padding</span>: <span class="number">2</span><span class="identifier">lh</span>;
  <span class="attribute">p</span> {
    <span class="attribute">margin-block</span>: <span class="number">1</span><span class="identifier">lh</span>;
  }
}
<span class="keyword">@support</span> <span class="keyword">not</span> (<span class="keyword">margin-trim</span>: <span class="keyword">block</span>) {
  <span class="attribute">article</span> { 
    :<span class="identifier">first-child</span> {
      <span class="identifier">margin-block-start</span>: <span class="number">0</span>;
    }
    <span class="preprocessor">:last-child</span> {
      <span class="attribute">margin-block-end</span>: <span class="number">0</span>;
    }
  }
}
</code></pre>
<p>This helps to clarify the difference between <code>margin-trim</code> and the older techniques we’ve been using.</p>
<p>When using <code>:first-child</code> and <code>:last-child</code> any element that’s the first or last <em>direct child of the container</em> will have its margins trimmed. But any content that either isn’t wrapped in an element, or that is nested further down in the DOM structure will not.</p>
<figure class="mattewhite black widescreen"><img loading="lazy" decoding="async" src="https://webkit.org/wp-content/uploads/margin-trim-compared-to-old-technique-scaled.png" alt="Another diagram showing how the interaction of margins and margin trim works —&nbsp;this time with three drawings, to show margins on children and grandchildren with no margin trim, and older technique for solving this, and using margin trim. " width="2560" height="1439" class="aligncenter size-full wp-image-16883 preserve-color" srcset="https://webkit.org/wp-content/uploads/margin-trim-compared-to-old-technique-scaled.png 2560w, https://webkit.org/wp-content/uploads/margin-trim-compared-to-old-technique-300x169.png 300w, https://webkit.org/wp-content/uploads/margin-trim-compared-to-old-technique-1024x576.png 1024w, https://webkit.org/wp-content/uploads/margin-trim-compared-to-old-technique-768x432.png 768w, https://webkit.org/wp-content/uploads/margin-trim-compared-to-old-technique-1536x863.png 1536w, https://webkit.org/wp-content/uploads/margin-trim-compared-to-old-technique-2048x1151.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px"></figure>
<p>For example, if the first element is a figure with a top margin, and the figure contains an image that also has a top margin, both of those margins will be trimmed by <code>margin-trim</code>, while only the figure margin will be trimmed by <code>:first-child</code>.</p>
<pre><code class="html"><span class="tag">&lt;<span class="keyword">article</span>&gt;</span>
  <span class="tag">&lt;<span class="keyword">figure</span> <span class="keyword attribute">style</span>=<span class="attribute value string">"margin-top: 1em"</span>&gt;</span>
    <span class="tag">&lt;<span class="keyword">img</span>  <span class="keyword attribute">style</span>=<span class="attribute value string">"margin-top: 1em"</span> <span class="keyword attribute">src</span>=<span class="attribute value string">"photo.jxl"</span> <span class="keyword attribute">alt</span>=<span class="attribute value string">"[alt]"</span>&gt;</span>
    <span class="tag">&lt;<span class="keyword">figcaption</span>&gt;</span>[caption]<span class="tag">&lt;/<span class="keyword">figcaption</span>&gt;</span>
  <span class="tag">&lt;/<span class="keyword">figure</span>&gt;</span>
<span class="tag">&lt;/<span class="keyword">article</span>&gt;</span>  
</code></pre>
<p>The <code>margin-trim</code> property makes trimming such margins easier and more robust than older techniques.</p>
<p>Even though Safari is the only browser with support at the moment, it makes sense to use it today. Put the hackier layout code in a feature query for the browsers without support ( like<code>@support not (margin-trim: block) { }</code>), while using <code>margin-trim</code> for the browsers that do have it. Hopefully the less robust code will work. It’s the code you are going to have to write anyway. But meanwhile, browsers with support get a more robust solution. And as more and more browsers add support, more and more users will be guaranteed to have a layout that never breaks, no matter what’s thrown at it.</p>
<h2>Options for Margin Trim</h2>
<p>The values for <code>margin-trim</code> are all logical values, referring to <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_logical_properties_and_values/Basic_concepts_of_logical_properties_and_values#block_and_inline_dimensions">the <code>block</code> and <code>inline</code> directions</a>.</p>
<ul>
<li><code>margin-trim: none</code> </li>
<li><code>margin-trim: block</code> </li>
<li><code>margin-trim: inline</code> </li>
<li><code>margin-trim: block-start</code> </li>
<li><code>margin-trim: block-end</code> </li>
<li><code>margin-trim: inline-start</code> </li>
<li><code>margin-trim: inline-end</code> </li>
</ul>
<p>If you want to trim in both directions at the same time, you can do so by combining long-hand values. For example:</p>
<pre><code class="css"><span class="keyword">margin-trim</span>: <span class="keyword">block-start</span> <span class="keyword">block-end</span> <span class="keyword">inline-start</span> <span class="keyword">inline-end</span>;
</code></pre>
<p>In December 2024, the CSSWG resolved to also allow the shorter <code>block</code> and <code>inline</code> keywords in combination, allowing for syntax like this:</p>
<pre><code class="css"><span class="keyword">margin-trim</span>: <span class="keyword">block</span> <span class="keyword">inline</span>;
</code></pre>
<p>The work has been <a href="https://github.com/WebKit/WebKit/pull/44515">done in WebKit</a> to support this last option. <a href="https://developer.apple.com/documentation/safari-technology-preview-release-notes">Look for it in Safari Technology Preview</a> soon. Follow <a href="https://bugs.webkit.org/show_bug.cgi?id=284978">this issue</a> for more updates.</p>
<h2>Let us know</h2>
<p>CSS has never been better. It’s my hope you learn about small improvements like this one, and use it to write more robust code. Let me know what you think on <a href="https://bsky.app/profile/jensimmons.bsky.social">Bluesky</a> or <a href="https://front-end.social/@jensimmons">Mastodon</a>. I’d love to hear your stories, feature requests, and questions.</p>
]]></description>
      <pubDate>Thu, 01 May 2025 14:00:20 +0000</pubDate>
      <link>https://webkit.org/blog/16854/margin-trim/</link>
      <dc:creator>WebKit</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4808117731</guid>
    </item>
    <item>
      <title><![CDATA[“I Will Solve Your Problem for You and You Will Pay Me”]]></title>
      <description><![CDATA[<p>After seeing my buddies at Studio Neat launch <a href="https://www.studioneat.com/products/patch003">an amazing new patch</a>, I fell down the rabbit hole that is the NeXT logo.</p>
<p>Dan and Tom linked to <a href="https://www.youtube.com/watch?v=OUTxtvlyJDc">this video</a>, which shows Paul Rand delivering his work to Steve Jobs and his team at NeXT. I hadn’t seen this before, and boy, I wish it were longer than a mere 80 seconds in length:</p>
<div class="jetpack-video-wrapper"><iframe title="Famous Graphic Desingers - Paul Rand Introducing the NeXT identity" width="640" height="480" src="https://www.youtube.com/embed/OUTxtvlyJDc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe></div>
<p>Rand did powerful and authoritative work <a href="https://www.logodesignlove.com/paul-rand-logo-presentations">when it came to corporate logos</a>, as reflected upon by Jobs in <a href="https://www.youtube.com/watch?v=xb8idEf-Iak">a 1993 interview</a>:</p>
<div class="jetpack-video-wrapper"><iframe loading="lazy" title="1993 interview re: Paul Rand and Steve Jobs" width="640" height="480" src="https://www.youtube.com/embed/xb8idEf-Iak?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe></div>
<blockquote><p>
  I asked him if he would come up with a few options, and he said, “No, I will solve your problem for you and you will pay me. You don’t have to use the solution. If you want options go talk to other people.”
</p></blockquote>
]]></description>
      <pubDate>Tue, 14 Oct 2025 16:16:42 +0000</pubDate>
      <link>https://512pixels.net/2025/10/i-will-solve-your-problem-for-you-and-you-will-pay-me/</link>
      <dc:creator>512 Pixels</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4980042464</guid>
    </item>
    <item>
      <title><![CDATA[Hybrid ASCII Art]]></title>
      <description><![CDATA[
        <p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-01.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/enigmatriz-ascii-01.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-01.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="1300" border="0" alt="ASCII art overlaid on two people boxing"></p>

<p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-02.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/enigmatriz-ascii-02.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-02.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="1300" border="0" alt="ASCII art of a horse overlaid on a man riding a bucking bronco"></p>

<p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-03.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/enigmatriz-ascii-03.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-03.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="1300" border="0" alt="ASCII art overlaid on a pair of black shoes"></p>

<p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-04.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/enigmatriz-ascii-04.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-04.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="1300" border="0" alt="ASCII art incorporated into an illustration of horses"></p>

<p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-05.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/enigmatriz-ascii-05.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-05.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="1464" border="0" alt="ASCII art overlaid on Vermeer's painting of a milkmaid"></p>

<p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-06.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/enigmatriz-ascii-06.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/enigmatriz-ascii-06.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="923" border="0" alt="ASCII art overlaid on a painting of two religious men"></p>

<p><a href="https://enigmatriz.com/">Enigmatriz</a> uses ASCII art to punch up and blow out public domain photos and illustrations — I love their style. From <a href="https://www.itsnicethat.com/articles/enigmatriz-digital-art-discover-100925">It’s Nice That</a>:</p>

<blockquote><p>Using the Image to ASCII tool available online, Enigmatriz found a new way to play with digital assets. “Everyday, I sit on my computer and browse through hundreds of images in the public domain to find things that catch my attention and feel are worth shining a new light on them,” says Enigmatriz. “When working with ASCII, what I like and find particularly interesting is the blend between hundred old paintings, photographs etc. and modern technologies.” Enigmatriz creates unique contrasts between images — historical paintings are overlaid with spatterings of text, ASCII renders are layered on top of playing cards or archival imagery.</p></blockquote>

<p>You can find more of their work <a href="https://www.instagram.com/enigmatriz">on Instagram</a>.</p>

        

         <p><strong>Tags:</strong> <a href="https://kottke.org/tag/art">art</a> · <a href="https://kottke.org/tag/ASCII">ASCII</a> · <a href="https://kottke.org/tag/design">design</a> · <a href="https://kottke.org/tag/Enigmatriz">Enigmatriz</a> · <a href="https://kottke.org/tag/remix">remix</a></p>

         <p>💬 <a href="https://kottke.org/25/09/hybrid-ascii-art">Join the discussion on kottke.org</a> →</p>

    ]]></description>
      <pubDate>Wed, 24 Sep 2025 17:52:03 +0000</pubDate>
      <link>https://kottke.org/25/09/hybrid-ascii-art</link>
      <dc:creator>kottke.org</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4956602152</guid>
    </item>
    <item>
      <title><![CDATA[Moving from Notion to Obsidian]]></title>
      <description><![CDATA[<p>As the world turns, so doth productivity apps churn. Readers of this blog will know I’ve been a user of Notion for the last seven-plus years. The block-based editor, the database features, and general “webbiness” of Notion suited me and let my inner productivity- and systems-wonk flourish.</p>
<p>Hearing rave reviews about Obsidian from friends (who are certainly not a cult, I’m told), I’ve tried to switch twice before. I spent entire weekends setting up a trial vault but never felt compelled enough to switch fully. But today –after a slow month-long process– I’m happy to report I’ve ditched Notion and am using Obsidian now. So… what changed?</p>
<h2>My problems with Notion</h2>
<p>In March, Notion notified me that my monthly cost is increasing from $8/mo to $12/mo (a +50% increase). On top of that, Notion has been pushing AI hard the last couple years culminating in sparkle emojis everywhere and an ever-present animated floating mascot in the corner<sup class="footnote-ref"><a href="https://daverupert.com/2025/05/notion-to-obsidian/#fn1" id="fnref1">1</a></sup>. I poked around at the AI features, used my free credits, but came to the conclusion that AI inside Notion is almost the antithesis of what I want in Notion. I use Notion as a thinking tool, I don’t need it to be a think-for-me tool.</p>
<p>The emphasis on AI and the price hike forced me to scrutinize and re-think my commitment. Correct or not, I associated the two chafing points and felt like I was subsidizing other user’s AI usage rather than getting more value out of the app. That was the tipping point for me. I don’t harbor any hatred or disgust for Notion; it’s truly a “we’re growing in two different directions” sort of divorce.</p>
<p>Economically, Obsidian takes me in the opposite direction at $4/mo for Obsidian’s vault sync feature. It also takes me into a more bare bones, hands-on setup experience. That real farm-to-table organic content that forms the bedrock of my personal brand. 😂</p>
<h2>My new Obsidian setup</h2>
<p><img src="https://cdn.daverupert.com/posts/2025/obsidian-graph-view-2.jpg" alt="screenshot of my obsidian setup showing a file tree on the left sidebar and a circular graph view of interconnected nodes in the main content area"></p>
<p>I’ve watched hours of videos about the perfect Obsidian setup but what truly unlocked it for me was Tyler Sticka’s post <em><a href="https://tylersticka.com/journal/obsidian-miscellany/">Obsidian Miscellany</a></em>. Seeing Tyler’s setup and the plugins he uses to craft Obsidian’s brutalist nature into something cozy gave me the courage to try a third time. Obsidian has a great plugin system and an active community of developers, where the WordPress-style “There’s a plugin for that” rings true (and probably has similar performance pitfalls). Getting a handful of plugins configured to your liking moves the user experience needle from “Something I use” to “This is mine”.</p>
<p>Copying most of Tyler’s list, here’s the list of plugins I’m using:</p>
<ul>
<li><a href="https://github.com/tgrosinger/advanced-tables-obsidian">Advanced Tables</a> - Make markdown tables draggable</li>
<li><a href="https://github.com/nekoshita/obsidian-auto-card-link">Auto Card Link</a> - Add unfurl-style link preview cards</li>
<li><a href="https://github.com/blacksmithgu/obsidian-dataview">Dataview</a> - A query language that allows you to build up list or table views using an SQL-like syntax</li>
<li><a href="https://github.com/ozntel/file-explorer-note-count">File Explorer Note Count</a> - Show file counts in the sidebar</li>
<li><a href="https://github.com/kelszo/obsidian-file-explorer-plus">File Explorer++</a> - Allows you to pin and hide items or folders (e.g. I’m hiding templates)</li>
<li><a href="https://github.com/kepano/obsidian-hider">Hider</a> - Hide parts of the UI you don’t need/like</li>
<li><a href="https://github.com/chetachiezikeuzor/Highlightr-Plugin">Highlightr</a> - Allows you to add highlighter effects to notes.</li>
<li><a href="https://github.com/FlorianWoelki/obsidian-iconize">Iconize</a> - Add icons to files and folders</li>
<li><a href="https://github.com/obsidianmd/obsidian-importer">Importer</a> - Import items from other note-taking apps</li>
<li><a href="https://github.com/platers/obsidian-linter">Linter</a> - Keep files tidy</li>
<li><a href="https://github.com/kevboh/longform">Longform</a> - A Scrivener-like tool for managing long form content (e.g. my shitty sci-fi stories)</li>
<li><a href="https://minimal.guide/home">Minimal Theme</a> - A Notion-like theme, but more minimal. Highly customizable.</li>
<li><a href="https://github.com/kepano/obsidian-minimal-settings">Minimal Theme Settings</a> - A UI to manage your Minimal Theme</li>
<li><a href="https://github.com/gtg922r/obsidian-numerals">Numerals</a> - A micro-spreadsheet that lets you do calculations</li>
<li><a href="https://github.com/marcusolsson/obsidian-projects">Projects</a> - A folder-o-files powered kanban board</li>
<li><a href="https://github.com/mgmeyers/obsidian-style-settings">Style Settings</a> - Override Obsidian styles</li>
<li><a href="https://github.com/pjeby/tag-wrangler">Tag Wrangler</a> - Normalize, dedupe, and merge tags</li>
<li><a href="https://github.com/markahesketh/write-good-obsidian">Write Good</a> - A linter to help correct weasel words and remove passive voice, a poor man’s Grammarly</li>
</ul>
<p>These breakdown into three major categories of plugins: themes, editor, and process… which is a great segue to talk about the organization and processes I have for my new vault.</p>
<h2>Inputs, Outputs, and Tasks</h2>
<p>For years <a href="https://daverupert.com/2022/04/productivity-sniped-by-para/">I’ve been attempting to do PARA in Notion</a>, but I never found it a perfect match. “Projects have an end date” was revelatory and “Areas” helped me take inventory of my life, but pulling it all together and putting everything in the correct bucket felt like high ceremony. Moving to Obsidian gave me a chance to rethink how I wanted to organize my second brain.</p>
<p>By default, Obsidian nudges you towards no organization, which is to say it wants you to tag and link content to build wiki-like associations in a flat’ish file structure. This doesn’t work for my brain at all. I need a bit of structure to my content. I spent a long time researching different organization systems from the loose (Zettelkasten) to the strict (Johnny Decimal) and I settled on a modification of <a href="https://www.youtube.com/watch?v=d93SGaf82OM">August Bradley’s Pipelines, Pillars and Vaults</a> that I call “Inputs, Outputs, and Tasks.”</p>
<p><strong>Inputs</strong> are scraps of content and ideas that influence your thinking that you want to keep to reference later. I collect these “Inputs” in small files organized in folders by content types like books, links, quotes, and unorganized notes.</p>
<p><strong>Outputs</strong> are a big part of why I use a note-taking app; to get ideas out of my head. Whereas Inputs are inert and fine to live in cold storage indefinitely, Outputs want to live in the world and need a little process behind them to maintain momentum. I’ve recruited the help of some kanban and writing plugins to add a thin layer of process to my blog posts and projects.</p>
<p><strong>Tasks</strong> are the final leg of the stool and a tool for jumping back into finishing projects or other work. The one key thing about Tasks is that they’re <em>actionable</em> and <em>achievable</em>. Tasks can’t be big abstract to-dos like “Do taxes” or “Make a video game”, they have to be actionable like “Get 1099-R from SEP IRA” or “Prototype fog-of-war system.” Descriptive enough to be <em>actionable</em>, atomic enough to be <em>achievable</em>.</p>
<p>Thankfully, I don’t need a separate Tasks plugin to manage this, I can use the <code>[ ] Task Name</code> syntax in my project note and then use Dataview to slurp up a list of Tasks that I’ve created across all my active projects.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>```dataview
TASK
FROM "Outputs"
WHERE !completed 
AND file.frontmatter.status != "DEADPOOL" 
AND file.frontmatter.status != "Archived"
GROUP BY file.name
```
</code></pre></div></div>
<p>You’d need to customize your <code>WHERE</code> clause to how you have your Obsidian setup, but that query generates a view like this where I group all to-dos by project or note.</p>
<p><img src="https://cdn.daverupert.com/posts/2025/obsidian-tasks.jpg" alt="a todo list where a list of projects have one to three to-do items listed below"></p>
<h2>Adding process to Outputs</h2>
<p>To manage my outputs I have three plug-ins that help add a layer of process to help get the work out the door.</p>
<h3>Projects</h3>
<p><img src="https://cdn.daverupert.com/posts/2025/obsidian-projects-view.jpg" alt="screenshot of a kanban board for side projects"></p>
<p>One of my favorite and most used features of my Notion was <a href="https://daverupert.com/2021/09/my-notion-blogging-kanban/">my Blogging Kanban</a>. This was the heart of my content generation flywheel; keeping track of all these scraps of ideas in different states. Blogging and side projects that have a somewhat linear flow and it’s great to visualize a post or project nearing a checkpoint or a published state.</p>
<p>Of all the kanban plugins I tried, Projects felt like the best fit. I know I’m violating open source protocol by heaping requests on free software, but I wish the querying and filtering was a bit more advanced. There’s a lot to be desired on achieving parity with Notion’s rich Kanban and Table system, but it looks like <a href="https://obsidian.md/roadmap/">dynamic tables is on the Obsidian roadmap</a>, so I’m fine using the nerfed versions for now.</p>
<h3>Longform</h3>
<p><img src="https://cdn.daverupert.com/posts/2025/obsidian-longform-view.jpg" alt="screenshot of the longform sidebar UI panel with a story in the main content area"></p>
<p>I have six or so shitty sci-fi stories burrowing a hole in my brain as well as an entire failed book pitch on prototypes. To help add structure to this process, I’ve employed a plugin called Longform. It allows me to break stories up into scenes or chapters, rearrange them, and then stitch that all together into a manuscript for review.</p>
<h3>Write Good</h3>
<p><img src="https://cdn.daverupert.com/posts/2025/obsidian-write-good-plugin.jpg" alt="screenshot of a run of text with highlighted erros like “the word so adds no meaning”, “the phrase there is unnecessary”, “absolutely can weaken meaning”, and “many is a weasel word”"></p>
<p>Write Good is a poor man’s Grammarly. Unfettered, I tend to default to passive voice or use weasel words as sentence filler. For example, In the previous sentence I tried to use the word “employ” instead of “use”, like I’m the damn King of England. Write Good nudges me towards simpler phrasing and an active voice. Passive voice is natural for me and I don’t hate that part about me, but there are people (grammar nazis) who do care, so why not remove that stumbling block? Over time I’ve come to prefer an enforced writing style and think the active voice tightens up most sentences.</p>
<p>Write Good also helps filter out technical writing no-nos like the word “<a href="https://bradfrost.com/blog/post/just/">Just</a>”. That itself is worth the price of entry. I can break the rules any time, but requires me turning off the part of my brain that obeys linters.</p>
<p>I’ve actually been using Write Good for years but as part of a secondary <a href="https://daverupert.com/2021/10/pre-publish-blogging-rituals/">pre-publish process</a> as a <a href="https://marketplace.visualstudio.com/items?itemName=travisthetechie.write-good-linter">VS Code plugin</a>. With Obsidian I’ve been able to “shift left” that part of the process to the writing phase. Keeps me honest on how much work is actually left.</p>
<h2>What I don’t like about Obsidian</h2>
<p>After a month of solid use, I only have one major gripe: the finickiness of the editor.</p>
<p>The swapping between reading mode and editing mode feels erratic and jumpy in a way that Notion never did. I use a lot of <code>CMD + E</code> to manually swap between reading and editing, but it either remembers too well or not well enough on how I want to view different files. I don’t know if I’ll ever be happy here because I think the core problem is that rich text editing is weird.</p>
<p>One other aspect I think Obsidian could improve is creating a component library or style guide for plugins. Not all plugins generate side panel UI, but for those that do… it’s a zoo. I think a little effort here and design systems work for plugins could create a cohesive look and feel.</p>
<h2>The mobile app is fast</h2>
<p>One of Notion’s biggest well-known issues is poor app performance. I don’t spent my entire days worrying about this because I tend to be on desktop and once it’s opened, it’s opened. But after firing up Obsidian’s mobile app, you can’t unsee the difference.</p>
<p>Obsidian’s mobile app is fast. Downright instant. And it somehow dodges the finickiness of the macOS app I complained about above. I know it’s not the flagship product, but the mobile app feels like a first-party experience and not an afterthought. It’s useful and has the right performance profile for jotting little notes on the go.</p>
<p>It’s also impressive that all my JavaScript-based plugins are working inside the native mobile app. I assumed most plugins wouldn’t work inside the WebView environment<sup class="footnote-ref"><a href="https://daverupert.com/2025/05/notion-to-obsidian/#fn2" id="fnref2">2</a></sup>. This made for a situation where I had low expectations but was pleasantly surprised.</p>
<h2>Nothing beats a folder full of markdown files</h2>
<p>Obsidian reinforces a lesson I’ve learned from my last decade and a half of blogging; nothing beats a folder full of markdown files. A note-taking app doesn’t have to be complex machinery. A little bit of YAML frontmatter can go a long way.</p>
<p>This migration identified one subtle problem I didn’t know I had; I “over-databased” in Notion. I created entire sections in Notion with a database to get the editable table UI. This creates a lot of click-thru flows, excess documents, and feels like building an entire CMS for a one-page website. Obsidian nudges me to think more simple.</p>
<h2>Your productivity app and my productivity app will look different</h2>
<p>It took a solid month to migrate my thousands of documents to Notion. I declared bankruptcy on my Web Clipper links, but settled on <a href="https://daverupert.com/2025/05/obsidian-link-aggregator/">a better system with a link aggregator</a>. I think what learned through this process and giant deep-dive into productivity tools is that productivity is personal. Your dream setup and my dream setup will look different.</p>
<p>We have different brains that understand the world differently. Some people are Type A controlling, some are Type B hot-messes, and some of us are chill Type O. We have different goals for our note-taking apps; some might be pure archivists, some might be on a hustle grind, and some might need to organize their DnD sessions.</p>
<p>I come back to an old quote I’ve mentioned a handful of times before from Kevin Kelley, founder of the Whole Earth Review…</p>
<blockquote>
<p>A tool is an opportunity with a handle.</p>
</blockquote>
<p>Grab hold of good tools that give you good opportunities.</p>
<section class="footnotes">
<ol>
<li id="fn1">
<p>I affectionately call the Notion mascot “Churny” because he makes me want to leave the application <a href="https://daverupert.com/2025/05/notion-to-obsidian/#fnref1" class="footnote-backref">↩</a></p>
</li>
<li id="fn2">
<p>I’m sure there are plugins that don’t work in-app like Obsidian Copilot which side-loads an AI model <a href="https://daverupert.com/2025/05/notion-to-obsidian/#fnref2" class="footnote-backref">↩</a></p>
</li>
</ol>
</section>
]]></description>
      <pubDate>Tue, 20 May 2025 23:44:00 +0000</pubDate>
      <link>https://daverupert.com/2025/05/notion-to-obsidian/</link>
      <dc:creator>daverupert.com</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4829207873</guid>
    </item>
    <item>
      <title><![CDATA[Epizone AI: Outside the Code Stack]]></title>
      <description><![CDATA[
<p></p>



<p>Thesis: The missing element in forecasting the future of AI is to understand that AI needs culture just as humans need culture.</p>



<p>One of the most significant scientific insights into understanding our own humanity was the relatively recent insight that we are the product of more than just the evolution of genes. While we are genetic descendents of some ape-like creatures in the past, we modern humans are also molded each generation by a shared learning that is passed along by a different mechanism outside of biology. Commonly called “culture”, this human-created environment forms much of what we consider best about our species. Culture is so prevalent in our lives, especially our modern urban lives, that it is invisible and hard to recognize. But without human culture to support us, we humans would be unrecognizable.</p>



<p>A solo, naked human trying to survive in the prehistoric wilderness, without the benefit of the skills and knowledge gained by other humans, would rarely be able to learn fast enough to survive on their own. Very few humans by themselves would be able to discover the secrets of making fire, or the benefits of cooking food, or to discover the medicines found in plants, or learn all the behaviors of animals to hunt, let alone the additional educations need for the habits of planting crops, learning how to knap stone points, sew and fish.</p>



<p>Humanity is chiefly a social endeavor. Because we invented language – the most social thing ever – we have been able to not only coordinate and collaborate in the present, but also to pass knowledge and know-how along from generation to generation. This is often pictured as a parallel evolution to the fundamental natural selection evolution of our bodies. Inside the long biological evolution happening in our cells, learning is transmitted through our genes. Anything good we learn as a species is conveyed through inheritable DNA. And that is where learning ends for most natural creatures.&nbsp;</p>



<p>But in humans, we launched an extended evolution that transmits good things outside of the code of DNA, embedded in the culture conveyed in families, clans, and human society as a whole. From the very beginning this culture contains laws, norms, morals, best practices, personal education, world views, knowledge of the world, learnable survival skills, altruism, and a pool of hard-won knowledge about reality. While individual societies have died out, human culture as a whole has continued to expand, deepen, grow, and prosper, so that every generation benefits from this accumulation.</p>



<p>Our newest invention – artificial intelligence – is usually viewed in genetic terms. The binary code of AI is copied, deployed, and improved upon. New models are bred from the code of former leading models – inheriting their abilities –, and then distributed to users. One of the first significant uses for this AI is in facilitating the art of coding, and in particular helping programmers to code new and better AIs. So this DNA-like code experiences compounding improvement as it spreads into human society. We can trace the traits and abilities of AI by following its inheritance in code.</p>



<p>However, this genetic version of AI has been limited in its influence on humans so far. While the frontier of AI research runs fast, its adoption and diffusion runs slow. Despite some unexpected abilities, AI so far has not penetrated very deep into society. By 2025 it has disrupted our collective attention, but it has not disrupted our economy, or jobs, or our daily lives (with very few exceptions).</p>



<p>I propose that AI will not disrupt human daily life until it also migrates from a genetic-ish code-based substrate to a widespread, heterodox culture-like platform. AI needs to have its own culture in order to evolve faster, just as humans did. It cannot remain just a thread of improving software/hardware functions; it must become an embedded ecosystem of entities that adapt, learn, and improve outside of the code stack. This AI epizone will enable its cultural evolution, just as the human society did for humans.</p>



<p>Civilization began as songs, stories, ballads around a campfire, and institutions like grandparents and shamans conveyed very important qualities not carried in our genes. Later, religions and schools carried more. Then we invented writing, reading, texts and pictures to substitute for reflexes. When we invented books, libraries, courts, calendars, and math, we moved a huge amount of our inheritance to this collaborative, distributed platform of culture that was not owned by anyone.</p>



<p>AI civilization requires a similar epizone running outside the tech stack. It begins with humans using AI everyday, and an emerging skill set of AI collaboration taught by the AI whisperers.There will be alignment protocols, and schools for shaping the moralities of AIs. There will be shamans and doctors to monitor and nurture the mental health of the AIs. There needs to be corporate best practices for internal AIs, and review committees overseeing their roles. New institutions for reviewing, hiring and recommending various species of AI. Associations of AIs that work best together. Whole departments are needed to train AIs for certain roles and applications, as some kinds of training will take time (not just downloaded). The AIs themselves will evolve AI-only interlinguals, which needs mechanisms to preserve and archive. There’ll be ecosystems of AIs co-dependent on each other. AIs that police other AIs. The AIs need libraries of content and intermediate weights, latent spaces, and petabytes of data that need to be remembered rather than re-invented.&nbsp; There are the human agents that have to manage the purchase of, and maintenance of, this AI epizone, at local, national and global levels. This is a civilization of AIs.</p>



<p>A solo, naked AI won’t do much on their own. AIs need a wide epizone to truly have consequence. They need to be surrounded and embedded into an AI culture, just as humans need culture to thrive.</p>



<p>Stewart Brand devised a beautiful analogy to understand civilizational traits. He explains that the functions of the world can be ranked by their pace layers, which depend on all the layers below it. Running the fastest is the fashion layers which fluctuate daily. Not far behind it in speed is the tech layer, which includes the tech of AI. It changes by the week. Below that, (and dependent on it), is the infrastructure layer, which moves slower, and even slower below that is culture, which crawls in comparison. (At the lowest, slowest level is nature, glacial in its speed.) All these layers work at the same time, and upon each other, and many complex things share multiple levels. Artificial Intelligence also works at several levels. Its code-base improves at internet speed, but its absorption and deployment runs at the cultural level. In order for AI to be truly implemented, it must be captured by human culture. That will take time, perhaps decades, because that is the pace of culture. No matter how quick the tech runs, the AI culture will run slower.</p>



<p>That is good news in many respects, because part of what the AI epizone does is incorporate and integrate the inheritable improvements in the tech stack and put them into the slower domain of AI culture. That gives us time to adapt to the coming complex changes. But to prepare for the full consequences of these AIs, we must give our attention to the emerging epizone of AIs outside the code stack.</p>



<p></p>



<figure class="wp-block-image"><img src="https://caterina.net/wp-content/uploads/2014/12/pace_layering.jpg?w=640" alt="The Pace Layers of Civilization – Caterina.net"></figure>
]]></description>
      <pubDate>Tue, 22 Apr 2025 00:22:45 +0000</pubDate>
      <link>https://kk.org/thetechnium/epizone-ai-outside-the-code-stack/</link>
      <dc:creator>The Technium</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4797459531</guid>
    </item>
    <item>
      <title><![CDATA[Restoring an LC630]]></title>
      <description><![CDATA[<p>iiiDIY has a great video about getting a LC630 cleaned up and running again:</p>
<div class="jetpack-video-wrapper"><iframe title="PC or Mac? ...YES! The LC 630 DOS Full Restoration - iiiDIY" width="640" height="360" src="https://www.youtube.com/embed/YFKG-6O0EC8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe></div>]]></description>
      <pubDate>Fri, 28 Mar 2025 14:50:04 +0000</pubDate>
      <link>https://512pixels.net/2025/03/restoring-an-lc630/</link>
      <dc:creator>512 Pixels</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4771271190</guid>
    </item>
    <item>
      <title><![CDATA[A USB interface to the "Mother of All Demos" keyset]]></title>
      <description><![CDATA[<p>In the early 1960s, Douglas Engelbart started investigating how computers could augment human intelligence: <!-- https://youtu.be/yJDv-zdhzMY?si=m8GpQSIqnYfNnFsf&t=130)-->
"If, in your office, you as an intellectual worker
were supplied with a computer display backed up by a computer that was alive for you all day and was instantly responsive to every
action you had, how much value could you derive from that?"
Engelbart developed many features of modern computing that we now take for granted: the mouse,<span id="fnref:mouse"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:mouse">1</a></span> hypertext, shared documents, windows,
and a graphical user interface.
At the 1968 Joint Computer Conference, Engelbart demonstrated these innovations in a groundbreaking presentation, now known as
"The Mother of All Demos."</p>
<!-- [Engelbart using the keyset to edit text. Note that the display doesn't support lower case text; instead, upper case is indicated by a line above the character. Adapted from <a href="https://youtu.be/UhpTiWyVa6k?si=cqfTbRsOxTy8eE01">The Mother of All Demos</a>.](keyset-video2.jpg "w500")  -->

<p><a href="https://static.righto.com/images/engelbart/interface.jpg"><img alt="The keyset with my prototype USB interface." class="hilite" height="364" src="https://static.righto.com/images/engelbart/interface-w500.jpg" title="The keyset with my prototype USB interface." width="500"></a></p><div class="cite">The keyset with my prototype USB interface.</div><p></p>
<p>Engelbart's demo also featured an input device known as the keyset, but unlike his other innovations, the keyset failed to catch on.
The 5-finger keyset lets you type without moving your hand, entering characters by pressing multiple keys simultaneously as a chord.
Christina Englebart, his daughter, loaned one of Engelbart's keysets to me.
I constructed an interface to connect the keyset to USB, so that it can be used with a modern computer.
The video below shows me typing with the keyset, using the mouse buttons to select upper case and special characters.<span id="fnref:keys"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:keys">2</a></span></p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/DpshKBKt_os?si=gzyYjd-2_ltR9oeI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>I wrote this blog post to describe my USB keyset interface.
Along the way, however, I got sidetracked by the history of The Mother of All Demos and how it obtained that name.
It turns out that Engelbart's demo isn't the first demo to be called "The Mother of All Demos".</p>
<h2>Engelbart and The Mother of All Demos</h2>
<!--
As SRI put it, Doug Engelbart envisioned harnessing the power of computers as tools for collaboration and the augmentation of our collective
intelligence to work on humanity's most important problems.
-->

<p>Engelbart's work has its roots in
Vannevar Bush's 1945 visionary essay, "<a href="https://worrydream.com/refs/Bush%20-%20As%20We%20May%20Think%20(Life%20Magazine%209-10-1945).pdf">As We May Think</a>."
Bush envisioned thinking machines, along with the "memex", a compact machine holding a library of collective knowledge with hypertext-style links: "The Encyclopedia Britannica could be reduced to the volume of a matchbox."
The memex could search out information based on associative search, building up a hypertext-like trail of connections.</p>
<p>In the early 1960s, Engelbart was inspired by Bush's essay and set out
to develop means to augment human intellect: "increasing the capability of a man to approach a complex problem situation, to gain comprehension to suit his particular needs, and to derive solutions to problems."<span id="fnref:1962"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:1962">3</a></span>
Engelbart founded the Augmentation Research Center at the Stanford Research Institute (now SRI), where
he and his team created a system called NLS (oN-Line System).</p>
<p><a href="https://static.righto.com/images/engelbart/shopping-list.jpg"><img alt="Engelbart editing a hierarchical shopping list." class="hilite" height="351" src="https://static.righto.com/images/engelbart/shopping-list-w500.jpg" title="Engelbart editing a hierarchical shopping list." width="500"></a></p><div class="cite">Engelbart editing a hierarchical shopping list.</div><p></p>
<p>In 1968, Engelbart demonstrated NLS to a crowd of two thousand people
at the Fall Joint Computer Conference.
Engelbart gave the demo from the stage, wearing a crisp shirt and tie and a headset microphone.
Engelbart created hierarchical documents, such as the shopping list above, and moved around them with hyperlinks.
He demonstrated how text could be created, moved, and edited with the keyset and mouse.
Other documents included graphics, crude line drawing by today's standards but cutting-edge for the time.
The computer's output was projected onto a giant screen, along with video of Engelbart.</p>
<p><a href="https://static.righto.com/images/engelbart/keyset-video.jpg"><img alt="Engelbart using the keyset to edit text. Note that the display doesn't support lowercase text; instead, uppercase is indicated by a line above the character. Adapted from The Mother of All Demos." class="hilite" height="354" src="https://static.righto.com/images/engelbart/keyset-video-w500.jpg" title="Engelbart using the keyset to edit text. Note that the display doesn't support lowercase text; instead, uppercase is indicated by a line above the character. Adapted from The Mother of All Demos." width="500"></a></p><div class="cite">Engelbart using the keyset to edit text. Note that the display doesn't support lowercase text; instead, uppercase is indicated by a line above the character. Adapted from <a href="https://youtu.be/UhpTiWyVa6k?si=cqfTbRsOxTy8eE01">The Mother of All Demos</a>.</div><p></p>
<p>Engelbart sat at a specially-designed Herman Miller desk<span id="fnref:herman-miller"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:herman-miller">6</a></span> that held the
keyset, keyboard, and mouse, shown above.
While Engelbart was on stage in San Francisco,
the SDS 940<span id="fnref:sds940"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:sds940">4</a></span> computer that ran the NLS software was 30 miles to the south in Menlo Park.<span id="fnref:moad-video"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:moad-video">5</a></span></p>
<p>To the modern eye, the demo resembles a PowerPoint presentation over Zoom, as
Engelbart collaborated with
Jeff Rulifson and Bill Paxton, miles away in Menlo Park.
(Just like a modern Zoom call, the remote connection started with "We're not hearing you. How about now?")
Jeff Rulifson browsed the NLS code, jumping between code files with hyperlinks and expanding subroutines by clicking on them.
NLS was written in custom <a href="https://bitsavers.org/pdf/sri/arc/NLS_Programmers_Guide_Jan76.pdf">high-level languages</a>, which they developed
with a "compiler compiler" called <a href="https://en.wikipedia.org/wiki/TREE-META">TREE-META</a>.
The NLS system held interactive documentation as well as tracking bugs and changes.
Bill Paxton interactively drew a diagram and then demonstrated how NLS could be used as a database, retrieving information by searching on keywords.
(Although Engelbart was stressed by the live demo, Paxton told me that he was "too young and inexperienced to be concerned.")</p>
<p><a href="https://static.righto.com/images/engelbart/demo-english.jpg"><img alt="Bill Paxton, in Menlo Park, communicating with the conference in San Francisco." class="hilite" height="326" src="https://static.righto.com/images/engelbart/demo-english-w500.jpg" title="Bill Paxton, in Menlo Park, communicating with the conference in San Francisco." width="500"></a></p><div class="cite">Bill Paxton, in Menlo Park, communicating with the conference in San Francisco.</div><p></p>
<p>Bill English, an electrical engineer, not only built the first mouse for Engelbart but was also the hardware mastermind behind the demo.
In San Francisco, the screen images were projected on a 20-foot screen by a Volkswagen-sized
Eidophor projector, bouncing light off a modulated oil film.
Numerous cameras, video switchers and mixers created the video image.
Two leased microwave links and half a dozen antennas connected SRI in Menlo Park to the demo in San Francisco.
High-speed modems send the mouse, keyset, and keyboard signals from the demo back to SRI.
Bill English spent months assembling the hardware and network for the demo and then managed the demo behind the scenes, assisted by a team of about 17 people.</p>
<p>Another participant was the famed counterculturist Stewart Brand, known for the <a href="https://en.wikipedia.org/wiki/Whole_Earth_Catalog">Whole Earth Catalog</a>
and the WELL, one of the oldest online virtual communities.
Brand advised Engelbart on the presentation, as well as running a camera. He'd often point the camera at a monitor to generate swirling psychedelic
feedback patterns, reminiscent of the LSD that he and Engelbart had experimented with.</p>
<p>The demo received press attention such as
a San Francisco Chronicle article titled "Fantastic World of Tomorrow's Computer".
It stated, "The most fantastic glimpse into the computer future was taking place in a windowless room on the third floor of the Civic Auditorium"
where Engelbart "made a computer in Menlo Park do secretarial work for him that ten efficient secretaries couldn't do in twice the time."
His goal: "We hope to help man do better what he does—perhaps by as much as 50 per cent."
However, the demo received little attention in the following decades.<span id="fnref:attention"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:attention">7</a></span></p>
<p>Engelbart continued his work at SRI for almost a decade, but as Engelbart commented with frustration,
“There was a slightly less than universal perception of our value at SRI”.<span id="fnref:levy"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:levy">8</a></span>
In 1977, SRI sold the Augmentation Research Center to Tymshare, a time-sharing computing company.
(Timesharing was the cloud computing of the 1970s and 1980s,
where companies would use time on a centralized computer.)
At Tymshare, Engelbart's system was renamed AUGMENT and marketed as an office automation service, but Engelbart himself was sidelined from development,
a situation that he <a href="https://stanford.edu/dept/SUL/sites/engelbart/engfmst3-ntb.html">described</a> as
sitting in a corner and becoming invisible.</p>
<p>Meanwhile, Bill English and some other SRI researchers<span id="fnref:researchers"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:researchers">9</a></span> migrated four miles south to Xerox PARC and worked on the Xerox Alto computer.
The Xerox Alto incorporated many ideas from the Augmentation Research Center including the graphical user interface, the mouse, and the keyset.
The Alto's keyset 
was almost identical to the Engelbart keyset, as can be seen in the photo below.
The Alto's keyset was most popular for the networked 3D shooter game "<a href="https://www.digibarn.com/collections/games/xerox-maze-war/index.html">Maze War</a>", with the clicking of keysets echoing through the hallways of Xerox PARC.</p>
<p><a href="https://static.righto.com/images/engelbart/alto.jpg"><img alt="A Xerox Alto with a keyset on the left." class="hilite" height="359" src="https://static.righto.com/images/engelbart/alto-w500.jpg" title="A Xerox Alto with a keyset on the left." width="500"></a></p><div class="cite">A Xerox Alto with a keyset on the left.</div><p></p>
<p>Xerox famously failed to commercialize the ideas from the Xerox Alto, but Steve Jobs recognized the importance of interactivity, the graphical user interface, and the mouse
when he visited Xerox PARC in 1979.
Steve Jobs provided the Apple Lisa and Macintosh ended up with a graphical user interface and the mouse (streamlined to one button instead of three), but he left the keyset behind.<span id="fnref:parc"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:parc">10</a></span></p>
<p>When McDonnell Douglas acquired Tymshare in 1984, Engelbart and his software—now called Augment—had a new home.<span id="fnref:augment"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:augment">11</a></span>
In 1987, McDonnell Douglas released a text editor and outline processor for the IBM PC called
<a href="https://archive.org/details/1987-augment-mini-base-users-guide_202503">MiniBASE</a>, 
one of the few PC applications that supported a keyset.
The functionality of MiniBASE was almost identical to Engelbart's 1968 demo, but in 1987, MiniBASE
was competing against GUI-based word processors such as MacWrite and Microsoft Word, so MiniBASE had little impact.
Engelbart left McDonnell Douglas in 1988, forming a research foundation called the <a href="https://www.nytimes.com/1988/09/05/business/business-people-computer-scientist-forming-a-foundation.html">Bootstrap Institute</a> to continue his research independently.</p>
<h2>The name: "The Mother of All Demos"</h2>
<p>The name "The Mother of All Demos" has its roots in the Gulf War.
In August 1990, Iraq invaded Kuwait, leading to war between Iraq and a coalition of the United States and 41 other countries.
During the months of buildup prior to active conflict, Iraq's leader, Saddam Hussein,
exhorted the Iraqi people to prepare for "<a href="https://www.nytimes.com/1990/09/22/world/confrontation-in-the-gulf-leaders-bluntly-prime-iraq-for-mother-of-all-battles.html">the mother of all battles</a>",<span id="fnref:mother"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:mother">12</a></span> a phrase that caught the attention of the media.
The battle didn't proceed as Hussein hoped: during <a href="https://www.nytimes.com/1991/02/28/world/war-gulf-president-bush-halts-offensive-combat-kuwait-freed-iraqis-crushed.html">exactly 100 hours</a> of ground combat, the US-led coalition liberated Kuwait, pushed into Iraq, crushed the Iraqi forces,
and declared a ceasefire.<span id="fnref:gulf-war"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:gulf-war">13</a></span>
Hussein's mother of all battles became the <a href="https://www.nytimes.com/1991/02/27/arts/critic-s-notebook-human-images-help-add-drama-to-war-coverage.html">mother of all surrenders</a>.</p>
<p>The phrase "mother of all ..." became the 1990s equivalent of a meme, used as a slightly-ironic superlative.
It was applied to everything
from <a href="https://www.nytimes.com/1993/06/18/sports/us-open-golf-notebook-fore-the-mother-of-all-traffic-jams.html">The Mother of All Traffic Jams</a> to <a href="https://amzn.to/4bzQ7Tc">The Mother of All Windows Books</a>, from <a href="https://cooking.nytimes.com/recipes/1132-the-mother-of-all-butter-cookies">The Mother of All Butter Cookies</a> to Apple calling mobile devices
<a href="https://www.nytimes.com/1992/07/19/business/the-executive-computer-mother-of-all-markets-or-a-pipe-dream-driven-by-greed.html">The Mother of All Markets</a>.<span id="fnref:mobile"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:mobile">14</a></span></p>
<p>In 1991, this superlative was applied to a computer demo, but it wasn't Engelbart's demo.
Andy Grove, Intel's president, gave a keynote speech at Comdex 1991 entitled <a href="https://www.youtube.com/watch?v=CwvOeKqXv18">The Second Decade: Computer-Supported Collaboration</a>,
a live demonstration of his vision for PC-based video conferencing and wireless communication in the PC's second decade.
This complex hour-long demo required almost six months to prepare, with 15 companies collaborating.
Intel called this demo "The Mother of All Demos", a name repeated in the New York Times, San Francisco Chronicle, Fortune, and PC Week.<span id="fnref:intel"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:intel">15</a></span>
Andy Grove's demo was a hit, with over 20,000 people requesting a video tape, but the demo was soon forgotten.</p>
<p><a href="https://static.righto.com/images/engelbart/nytimes-moad.jpg"><img alt="On the eve of Comdex, the New York Times wrote about Intel's &quot;Mother of All Demos&quot;. Oct 21, 1991, D1-D2." class="hilite" height="357" src="https://static.righto.com/images/engelbart/nytimes-moad-w350.jpg" title="On the eve of Comdex, the New York Times wrote about Intel's &quot;Mother of All Demos&quot;. Oct 21, 1991, D1-D2." width="350"></a></p><div class="cite">On the eve of Comdex, the New York Times <a href="https://www.nytimes.com/1991/10/21/business/computer-industry-gathers-amid-chaos.html">wrote</a> about Intel's "Mother of All Demos". Oct 21, 1991, D1-D2.</div><p></p>
<p>In 1994, <em>Wired</em> writer Steven Levy wrote <a href="https://amzn.to/4kCE63A">Insanely Great: The Life and Times of Macintosh, the Computer that Changed Everything</a>.<span id="fnref2:levy"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:levy">8</a></span>
In the second chapter of this comprehensive book, Levy explained how Vannevar Bush and Doug Engelbart "sparked a chain reaction" that led to the Macintosh.
The chapter described Engelbart's 1968 demo in detail including a throwaway line saying, "<a href="https://archive.org/details/insanely_great_levy_hard_cover_1994_pdf__mlib/page/42/mode/1up">It was the mother of all demos.</a>"<span id="fnref:vandam"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:vandam">16</a></span>
Based on my research, I think this is the source of the name "The Mother of All Demos" for Engelbart's demo.</p>
<p>By the end of the century, multiple publications echoed Levy's catchy phrase.
In February 1999, the San Jose Mercury News had a <a href="https://web.archive.org/web/19991003082606/http://www.mercurycenter.com/svtech/news/special/engelbart/part4.htm">special article</a> on Engelbart, saying that the demonstration was "still called 'the mother of all demos'", a description echoed by
the industry publication <a href="https://archive.org/details/sim_computerworld_1999-05-10_33_19/page/n83/mode/1up">Computerworld</a>.<span id="fnref:still"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:still">17</a></span>
The book <a href="https://archive.org/details/nerds20100step/page/124/mode/2up">Nerds: A Brief History of the Internet</a> stated that the demo "has entered legend as 'the mother of all demos'".
By this point, Engelbart's fame for the "mother of all demos" was cemented and the phrase became near-obligatory when writing about him.
The classic Silicon Valley history <a href="https://archive.org/details/fireinvalleymaki0000frei">Fire in the Valley</a> (1984), for example,
didn't even mention Engelbart but in the <a href="https://archive.org/details/fireinvalleymaki00frei_0/page/303">second edition</a> (2000),
"The Mother of All Demos" had its own chapter.</p>
<h2>Interfacing the keyset to USB</h2>
<p>Getting back to the keyset interface,
the keyset consists of five microswitches, triggered by the five levers.
The switches are wired to a standard DB-25 connector.
I used a <a href="https://www.pjrc.com/store/teensy36.html">Teensy 3.6</a> microcontroller board for the interface, since this board can act both as a USB device
and as a USB host.
As a USB device, the Teensy can emulate a standard USB keyboard.
As a USB host, the Teensy can receive input from a standard USB mouse.</p>
<p>Connecting the keyset to the Teensy is (almost) straightforward, wiring the switches to five data inputs on the Teensy and the common line connected to ground.
The Teensy's input lines can be configured with pullup resistors inside the microcontroller. The result is that a data line shows <code>1</code> by default and
<code>0</code> when the corresponding key is pressed.
One complication is that the keyset apparently has a 1.5 kΩ between the leftmost button and ground, maybe to indicate that the device is plugged in.
This resistor caused that line to always appear low to the Teensy.
To counteract this and allow the Teensy to read the pin, I connected a 1 kΩ pullup resistor to that one line.</p>
<h3>The interface code</h3>
<p>Reading the keyset and sending characters over USB is mostly straightforward, but there are a few complications.
First, it's unlikely that the user will press multiple keyset buttons at exactly the same time. Moreover, the button contacts may bounce.
To deal with this, I wait until the buttons have a stable value for 100 ms (a semi-arbitrary delay) before sending a key over USB.</p>
<p>The second complication is that with five keys, the keyset only supports 32 characters. To obtain upper case, numbers, special characters, and control
characters, the keyset is designed to be used in conjunction with mouse buttons.
Thus, the interface needs to act as a USB host, so I can plug in a USB mouse to the interface.
If I want the mouse to be usable as a mouse, not just buttons in conjunction with the keyset, the interface mus forward mouse events over USB.
But it's not that easy, since mouse clicks in conjunction with the keyset shouldn't be forwarded. Otherwise, unwanted clicks will happen while
using the keyset.</p>
<p>To emulate a keyboard, the code uses the <a href="https://docs.arduino.cc/language-reference/en/functions/usb/Keyboard/">Keyboard</a> library. This library provides
an API to send characters to the destination computer.
Inconveniently, the simplest method, <code>print()</code>, supports only regular characters, not special characters like <code>ENTER</code> or <code>BACKSPACE</code>. For those, I needed to
use the lower-level <code>press()</code> and <code>release()</code> methods.
To read the mouse buttons, 
the code uses the <a href="https://github.com/PaulStoffregen/USBHost_t36">USBHost_t36</a> library, the Teensy version of the <a href="https://docs.arduino.cc/libraries/usb-host-shield-library-2.0/">USB Host</a> library.
Finally, to pass mouse motion through to the destination computer, I use the <a href="https://docs.arduino.cc/language-reference/en/functions/usb/Mouse/">Mouse</a> library.</p>
<p>If you want to make your own keyset, Eric Schlaepfer has a model <a href="https://github.com/schlae/engelbart-keyset">here</a>.</p>
<h2>Conclusions</h2>
<p>Engelbart claimed <!-- https://web.stanford.edu/class/history34q/readings/Engelbart/Engelbart_AugmentWorkshop.html --> that learning a keyset wasn't
difficult—a six-year-old kid could learn it in less than a week—but I'm not willing to invest much time into learning it. In my brief use of the keyset, I found it very difficult to use physically.
Pressing four keys at once is difficult, with the worst being all fingers except the ring finger. Combining this with a mouse button or two at the same time
gave me the feeling that I was sight-reading a difficult piano piece.
Maybe it becomes easier with use, but I noticed that Alto programs tended to treat the keyset as function keys, rather than a mechanism for typing with chords.<span id="fnref:alto"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:alto">18</a></span>
David Liddle of Xerox PARC <a href="https://archive.computerhistory.org/resources/access/text/2020/06/102792010-05-01-acc.pdf#page=9">said</a>, "We found that [the keyset] was tending to slow people down, once you got away from really hot [stuff] system programmers.
It wasn't quite so good if you were giving it to other engineers, let alone clerical people and so on."</p>
<p>If anyone else has a keyset that they want to connect via USB (unlikely as it may be), my code is on
<a href="https://github.com/shirriff/keyset-to-usb-interface">github</a>.<span id="fnref:hackaday"><a class="ref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fn:hackaday">19</a></span>  Thanks to Christina Engelbart for loaning me the keyset. Thanks to Bill Paxton for answering my questions.
Follow me on Bluesky (<a href="https://bsky.app/profile/righto.com">@righto.com</a>) or <a href="https://www.righto.com/feeds/posts/default">RSS</a> for updates.</p>
<h2>Footnotes and references</h2>
<div class="footnote">
<ol>
<li id="fn:mouse">
<p>Engelbart's use of the mouse wasn't arbitrary, but based on research.
In 1966, shortly after inventing the mouse, Engelbart carried out a
<a href="https://archive.org/details/nasa_techdoc_19660020914">NASA-sponsored study</a>
that evaluated six input devices: two types of joysticks, a Graphacon positioner, the mouse,
a light pen, and a control operated by the knees (leaving the hands free).
The mouse, knee control, and light pen performed best, with users finding the mouse satisfying to use. Although inexperienced subjects had some trouble with the mouse, experienced subjects considered
it the best device.</p>
<p><a href="https://static.righto.com/images/engelbart/devices.jpg"><img alt="A joystick, Graphacon, mouse, knee control, and light pen were examined as input devices. Photos from the study." class="hilite" height="546" src="https://static.righto.com/images/engelbart/devices-w600.jpg" title="A joystick, Graphacon, mouse, knee control, and light pen were examined as input devices. Photos from the study." width="600"></a></p><div class="cite">A joystick, Graphacon, mouse, knee control, and light pen were examined as input devices. Photos from <a href="https://archive.org/details/nasa_techdoc_19660020914">the study</a>.</div><p></p>
<p><!-- -->&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:mouse" title="Jump back to footnote 1 in the text">↩</a></p>
</li>
<li id="fn:keys">
<p>The information sheet below from the Augmentation Research Center shows what keyset chords correspond to each character.
I used this encoding for my interface software.
Each column corresponds to a different combination of mouse buttons.</p>
<p><a href="https://static.righto.com/images/engelbart/keyset-sheet-front.jpg"><img alt="The information sheet for the keyset specifies how to obtain each character." class="hilite" height="626" src="https://static.righto.com/images/engelbart/keyset-sheet-front-w400.jpg" title="The information sheet for the keyset specifies how to obtain each character." width="400"></a></p><div class="cite">The information sheet for the keyset specifies how to obtain each character.</div><p></p>
<p>The special characters above are <code>&lt;CD&gt;</code> (Command Delete, i.e. cancel a partially-entered command), <code>&lt;BC&gt;</code> (Backspace Character), <code>&lt;OK&gt;</code> (confirm command), <code>&lt;BW&gt;</code>(Backspace Word), <code>&lt;RC&gt;</code> (Replace Character), <code>&lt;ESC&gt;</code> (which does filename completion).</p>
<p>NLS and the Augment software have the concept of a <a href="https://dougengelbart.org/content/view/218/">viewspec</a>, a view specification that controls the
view of a file.
For instance, viewspecs can expand or collapse an outline to show more or less detail, filter the content, or show authorship of sections.
The keyset can select viewspecs, as shown below.</p>
<p><a href="https://static.righto.com/images/engelbart/keyset-sheet-back.jpg"><img alt="Back of the keyset information sheet." class="hilite" height="621" src="https://static.righto.com/images/engelbart/keyset-sheet-back-w400.jpg" title="Back of the keyset information sheet." width="400"></a></p><div class="cite">Back of the keyset information sheet.</div><p></p>
<p>Viewsets are explained in more detail in <a href="https://youtu.be/UhpTiWyVa6k?si=FsrEOWVd4QCszEGI&amp;t=316">The Mother of All Demos</a>.
For my keyset interface, I ignored viewspecs since I don't have software to use these inputs, but
it would be easy to modify the code to output the desired viewspec characters.</p>
<p><!-- -->&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:keys" title="Jump back to footnote 2 in the text">↩</a></p>
</li>
<li id="fn:1962">
<p>See <a href="https://www.dougengelbart.org/pubs/augment-3906.html">Augmenting Human Intellect: A Conceptual Framework</a>, Engelbart's 1962 report.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:1962" title="Jump back to footnote 3 in the text">↩</a></p>
</li>
<li id="fn:sds940">
<p>Engelbart <a href="https://dougengelbart.org/pubs/papers/scanned-original/1968-augment-3954-A-Research-Center-for-Augmenting-Human-Intellect.pdf">used</a> an SDS 940 computer running the Berkeley Timesharing System.
The computer had 64K words of core memory, with 4.5 MB of drum storage for swapping and 96 MB of disk storage for files.
For displays, the computer drove twelve 5" high-resolution CRTs, but these weren't viewed directly.
Instead, each CRT had a video camera pointed at it and the video was redisplayed on a larger display in a work station in each office.</p>
<p>The SDS 940 was a large 24-bit scientific computer, built by Scientific Data Systems.
Although SDS built the first integrated-circuit-based commercial computer in 1965 (the <a href="https://en.wikipedia.org/wiki/Scientific_Data_Systems#SDS_92">SDS 92</a>),
the SDS 940 was a transistorized system.
It consisted of multiple refrigerator-sized cabinets, as shown below. Since each memory cabinet held 16K words and the computer at SRI had 64K,
SRI's computer had two additional cabinets of memory.</p>
<p><a href="https://static.righto.com/images/engelbart/sds940.jpg"><img alt="Front view of an SDS 940 computer. From the Theory of Operation manual." class="hilite" height="370" src="https://static.righto.com/images/engelbart/sds940-w800.jpg" title="Front view of an SDS 940 computer. From the Theory of Operation manual." width="800"></a></p><div class="cite">Front view of an SDS 940 computer. From the <a href="http://www.bitsavers.org/pdf/sds/9xx/940/980126A_940_TheoryOfOperation_Mar67.pdf">Theory of Operation</a> manual.</div><p></p>
<p>In the late 1960s, Xerox wanted to get into the computer industry, so Xerox
<a href="https://www.nytimes.com/1969/05/16/archives/xerox-joins-computer-industry-xerox-entering-computer-field.html">bought</a> Scientific Data Systems in 1969 for $900 million (about $8 billion in current dollars).
The acquisition was a disaster. After steadily losing money, Xerox decided to <a href="https://www.nytimes.com/1975/07/22/archives/computer-making-will-end-at-xerox-844million-writeoff-is-taken-in.html">exit</a> the mainframe computer business in 1975.
Xerox's CEO summed up the purchase: "With hindsight, we would not have done the same thing."&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:sds940" title="Jump back to footnote 4 in the text">↩</a></p>
</li>
<li id="fn:moad-video">
<p>The Mother of All Demos is on <a href="https://www.youtube.com/watch?v=UhpTiWyVa6k">YouTube</a>,
as well as a five-minute <a href="https://www.youtube.com/watch?v=B6rKUf9DWRI">summary</a> for the impatient.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:moad-video" title="Jump back to footnote 5 in the text">↩</a></p>
</li>
<li id="fn:herman-miller">
<p>The desk for the keyset and mouse was designed by Herman Miller, the office furniture company.
Herman Miller worked with SRI to design the
desks, chairs, and office walls as part of their plans for the office of the future.
Herman Miller invented the cubicle office in 1964, creating a modern replacement for the commonly used open office arrangement.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:herman-miller" title="Jump back to footnote 6 in the text">↩</a></p>
</li>
<li id="fn:attention">
<p>Engelbart's demo is famous now, but for many years it was ignored.
For instance, Electronic Design had a long
<a href="https://archive.org/details/bitsavers_ElectronicignV17N0319690201_71033514/page/25/mode/1up">article</a>
on Engelbart's work in 1969 (putting the system on the cover), but there was no mention of the demo.</p>
<p><a href="https://static.righto.com/images/engelbart/electronic-design.jpg"><img alt="Engelbart's system was featured on the cover of Electronic Design. Feb 1, 1969. (slightly retouched)" class="hilite" height="398" src="https://static.righto.com/images/engelbart/electronic-design-w500.jpg" title="Engelbart's system was featured on the cover of Electronic Design. Feb 1, 1969. (slightly retouched)" width="500"></a></p><div class="cite">Engelbart's system was featured on the <a href="https://archive.org/details/bitsavers_ElectronicignV17N0319690201_71033514/mode/1up">cover</a> of Electronic Design. Feb 1, 1969. (slightly retouched)</div><p></p>
<p>But by the 1980s, the Engelbart demo started getting attention.
The 1986 documentary <a href="https://archive.org/details/XD303_86KTEH54_SiliconVllyBoomtown?start=1884.5">Silicon Valley Boomtown</a> had a long
section on Engelbart's work and the demo. By 1988, the New York Times was referring to the demo as <a href="https://www.nytimes.com/1988/09/05/business/business-people-computer-scientist-forming-a-foundation.html">legendary</a>.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:attention" title="Jump back to footnote 7 in the text">↩</a></p>
</li>
<li id="fn:levy">
<p>Levy had written about Engelbart a decade earlier, in the May 1984 issue of the magazine <a href="https://guidebookgallery.org/articles/ofmiceandmen">Popular Computing</a>.
The article focused on the mouse, recently available to the public through the Apple Lisa and the IBM PC (as an option).
The big issue at the time was how many buttons a mouse should have: three like Engelbart's mouse, the one button that Apple used, or two buttons 
as Bill Gates preferred.
But Engelbart's larger vision also came through in Levy's interview along with his frustration that most of his research had been ignored,
overshadowed by the mouse.
Notably, there was no mention of Engelbart's 1968 demo in the article.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:levy" title="Jump back to footnote 8 in the text">↩</a><a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref2:levy" title="Jump back to footnote 8 in the text">↩</a></p>
</li>
<li id="fn:researchers">
<p>The SRI researchers who moved to Xerox include Bill English, Charles Irby, Jeff Rulifson, Bill Duval, and Bill Paxton (<a href="https://web.stanford.edu/class/history34q/readings/Engelbart/Engelbart_AugmentWorkshop.html">details</a>).&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:researchers" title="Jump back to footnote 9 in the text">↩</a></p>
</li>
<li id="fn:parc">
<p>In 2023, Xerox donated the entire Xerox PARC research center to SRI. The research center remained in Palo Alto but became part of SRI.
In a sense, this closed the circle, since many of the people and ideas from SRI had gone to PARC in the 1970s.
However, both PARC and SRI had changed radically since the 1970s, with the cutting edge of computer research moving elsewhere.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:parc" title="Jump back to footnote 10 in the text">↩</a></p>
</li>
<li id="fn:augment">
<p>For a detailed discussion of the Augment system, see <a href="https://archive.org/details/seyboldreportonw00medi">Tymshare's Augment: Heralding a New Era</a>, Oct 1978.
Augment provided a "broad range of information handling capability" that was not available elsewhere.
Unlike other word processing systems, Augment was targeted at the professional, not clerical workers,
people who were "eager to explore the open-ended possibilities" of the interactive process.</p>
<p>The main complaints about Augment were its price and that it was not easy to use. Accessing Engelbart's NLS system over ARPANET cost an eye-watering $48,000 a year (over $300,000 a year in current dollars).
Tymshare's Augment service was cheaper (about $80 an hour in current dollars), but still much more expensive than a standard word processing
service.</p>
<p>Overall, the article found that Augment users were delighted with the system: "It is stimulating to belong to the electronic intelligentsia."
Users found it to be "a way of life—an absorbing, enriching experience".&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:augment" title="Jump back to footnote 11 in the text">↩</a></p>
</li>
<li id="fn:mother">
<p>William Safire provided background in the New York Times, <a href="https://www.nytimes.com/1991/02/24/magazine/on-language-degrading-attrition.html">explaining</a>
that "the mother of all battles"
originally referred to the battle of Qadisiya in A.D. 636, and Saddam Hussein was referencing that ancient battle.
A translator <a href="https://www.nytimes.com/1991/03/07/opinion/l-mother-of-battles-mistranslates-arabic-834791.html">responded</a>, however,
that the Arabic expression would be better translated as "the great battle" than "the mother of all battles."&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:mother" title="Jump back to footnote 12 in the text">↩</a></p>
</li>
<li id="fn:gulf-war">
<p>The end of the Gulf War left Saddam Hussein in control of Iraq and left thousands of US troops in Saudi Arabia.
These factors would turn out to be catastrophic in the following years.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:gulf-war" title="Jump back to footnote 13 in the text">↩</a></p>
</li>
<li id="fn:mobile">
<p>At the Mobile '92 conference, Apple's CEO, John Sculley, said personal communicators could be "the mother of all markets,"
while Andy Grove of Intel said that the idea of a wireless personal communicator in every pocket is "a pipe dream driven by greed"
(<a href="https://www.nytimes.com/1992/07/19/business/the-executive-computer-mother-of-all-markets-or-a-pipe-dream-driven-by-greed.html">link</a>).
In hindsight, Sculley was completely right and Grove was completely wrong.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:mobile" title="Jump back to footnote 14 in the text">↩</a></p>
</li>
<li id="fn:intel">
<p>Some references to Intel's "Mother of all demos" are
<a href="https://www.nytimes.com/1991/10/21/business/computer-industry-gathers-amid-chaos.html">Computer Industry Gathers Amid Chaos</a>, New York Times, Oct 21, 1991 
and "Intel's High-Tech Vision of the Future: Chipmaker proposes using computers to dramatically improve productivity", San Francisco Chronicle, Oct 21, 1991, p24.
The title of an article in Microprocessor Report, "Intel Declares Victory in the Mother of All Demos" (Nov. 20, 1991), alluded to the recently-ended war.
<a href="https://archive.org/details/fortune135janluce/page/n401/mode/1up">Fortune</a> wrote about Intel's demo in the  Feb 17, 1997 issue.
A longer description of Intel's demo is in the book <a href="https://books.google.com/books?id=VazSDwAAQBAJ&amp;pg=PA264">Strategy is Destiny</a>.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:intel" title="Jump back to footnote 15 in the text">↩</a></p>
</li>
<li id="fn:vandam">
<p>Several sources claim that Andy van Dam was the first to call Engelbart's demo "The Mother of All Demos." Although van Dam attended the 1968 demo,
I couldn't find any evidence that he coined the phrase. 
John Markoff, a technology journalist for The New York Times, wrote a book <a href="https://books.google.com/books?id=cTyfxP-g2IIC&amp;pg=PT228&amp;dq=%22van+dam%22+%22mother+of+all+demos%22&amp;hl=en&amp;newbks=1&amp;newbks_redir=0&amp;sa=X&amp;ved=2ahUKEwiC4ajp7JKMAxWKLkQIHTMiGLoQ6AF6BAgGEAM#v=onepage&amp;q=%22van%20dam%22%20%22mother%20of%20all%20demos%22&amp;f=false">What the Dormouse Said: How the Sixties Counterculture Shaped the Personal Computer Industry</a>.
In this book, Markoff wrote about Engelbart's demo, saying "Years later, his talk remained 'the mother of all demos' in the words of Andries van Dam, a Brown University computer scientist."
As far as I can tell, van Dam used the phrase but only after it had already been popularized by Levy.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:vandam" title="Jump back to footnote 16 in the text">↩</a></p>
</li>
<li id="fn:still">
<p>It's curious to write that the demonstration was <em>still</em> called the "mother of all demos" when the phrase was just a few years old.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:still" title="Jump back to footnote 17 in the text">↩</a></p>
</li>
<li id="fn:alto">
<p>The photo below shows a keyset from the Xerox Alto.
The five keys are labeled with separate functions—Copy, Undelete, Move, Draw, and Fine—
for use with <a href="https://xeroxparcarchive.computerhistory.org/indigo/da/AlePaper.dm!1_/.Ale.paper.html">ALE</a>,
a program for IC design.
ALE supported
<a href="https://xeroxparcarchive.computerhistory.org/ivy/sweet/alto/ale/.ALE.press!1.pdf">keyset chording</a>
in combination with the mouse.</p>
<p><a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:alto" title="Jump back to footnote 18 in the text">↩</a><a href="https://static.righto.com/images/engelbart/alto-keyset.jpg"><img alt="Keyset from a Xerox Alto, courtesy of Digibarn." class="hilite" height="415" src="https://static.righto.com/images/engelbart/alto-keyset-w500.jpg" title="Keyset from a Xerox Alto, courtesy of Digibarn." width="500"></a></p><div class="cite">Keyset from a Xerox Alto, courtesy of Digibarn.</div><p></p>
</li>
<li id="fn:hackaday">
<p>After I implemented this interface, I came across a project that constructed a 3D-printed chording keyset, also using a Teensy for the USB interface. You can find that project <a href="https://www.pjrc.com/engelbart-chording-keyset/">here</a>.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html#fnref:hackaday" title="Jump back to footnote 19 in the text">↩</a></p>
</li>
</ol>
</div>
]]></description>
      <pubDate>Sun, 23 Mar 2025 15:25:00 +0000</pubDate>
      <link>http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html</link>
      <dc:creator>Ken Shirriff&#39;s blog</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4765450125</guid>
    </item>
    <item>
      <title><![CDATA[Tololo Totality]]></title>
      <description><![CDATA[<p><a href="https://apod.nasa.gov/apod/ap250315.html"><img src="https://apod.nasa.gov/apod/calendar/S_250315.jpg" align="left" alt="Tololo Totality " border="0"></a> Tololo Totality </p><br clear="all">]]></description>
      <pubDate>Sun, 16 Mar 2025 04:47:30 +0000</pubDate>
      <link>https://apod.nasa.gov/apod/ap250315.html</link>
      <dc:creator>APOD</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4757573075</guid>
    </item>
    <item>
      <title><![CDATA[A Basic Shirt Wardrobe, Part Two]]></title>
      <description><![CDATA[<p>In 2008, a StyleForum member shared photos of a bespoke shirt they had made by the renowned Neapolitan shirtmaker Anna Matuozzo. Though the images have since been lost to time, they showed a blue-and-white Bengal-striped dress shirt made from Carlo Riva cotton, featuring a semi-spread collar and some extraordinary details. The buttons were firmly shanked, [...]</p>
<p><a class="btn btn-secondary understrap-read-more-link" href="https://dieworkwear.com/2025/03/13/a-basic-shirt-wardrobe-part-two/" data-wpel-link="internal">Read More...</a></p>
<p>The post <a href="https://dieworkwear.com/2025/03/13/a-basic-shirt-wardrobe-part-two/" data-wpel-link="internal">A Basic Shirt Wardrobe, Part Two</a> appeared first on <a href="https://dieworkwear.com" data-wpel-link="internal">Die, Workwear!</a>.</p>
]]></description>
      <pubDate>Thu, 13 Mar 2025 21:18:36 +0000</pubDate>
      <link>https://dieworkwear.com/2025/03/13/a-basic-shirt-wardrobe-part-two/</link>
      <dc:creator>Die, Workwear!</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4754678730</guid>
    </item>
    <item>
      <title><![CDATA[“Jaws” myths exploded by Spielberg, via Vaziri ↦]]></title>
      <description><![CDATA[<figure><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/sixcolors.com/wp-content/uploads/2025/01/scheider-star-6c.png?ssl=1" alt="" data-image-w="" data-image-h="" class=" jetpack-broken-image"><br>
</figure>
<p>VFX artist and movie fan (and Friend of Six Colors) Todd Vaziri, in <a href="https://fxrant.blogspot.com/2018/09/the-myth-of-jaws-shooting-star.html">a post from 2018</a> that he updated Monday with new information that debunks the myth that there was an “actual shooting star” in a couple of shots in the movie “Jaws”:</p>
<blockquote><p>
  I reached out to film historian Jamie Benning about this issue. He said, “let me ask Joe Alves.” Alves was the “Jaws” production designer and also worked with Spielberg on “The Sugarland Express” and “Close Encounters of the Third Kind”, and has spoken extensively about his experience on “Jaws”. Paraphrasing, this is the response he got from Alves in August 2023: yes, the shooting stars in the movie were animated. Yes, they were added in post-production….</p>
<p>  Another source has access to Steven Spielberg. So this person asked Steven Spielberg in September 2023… Paraphrasing from Spielberg: <em>Yep, it’s animated shooting star, animated by Albert Whitlock.</em></p>
<p>  This was a bombshell for me. No, not that Spielberg confirmed that it was animated, but that it was supervised by none other than <a href="http://nzpetesmatteshot.blogspot.com/2018/11/a-career-portrait-of-master-mattes.html">Al Whitlock</a>&nbsp;who passed away in 1999, the veteran visual effects artist who contributed to some of the most amazing visual effects of all time. Not to mention that really <a href="https://x.com/tvaziri/status/1262970720125980672">terrific illusion in “The Blues Brothers” (1980) that I documented on Twitter.</a>
</p></blockquote>
<p>Todd’s site <a href="https://fxrant.blogspot.com/">FXRant</a> seems to be slowly emerging from hibernation, and just as he does on social media, he’s using it to combat misinformation about how special effects are used in movies. (If you didn’t know, Todd is a longtime VFX artist for Industrial Light and Magic.) Just yesterday, he slapped down that meme about how <a href="https://fxrant.blogspot.com/2025/01/battling-misinformation-severance.html">it took five months to film one scene in ‘Severance’</a>, which <em>of course it didn’t</em>.</p>
<p>But still… going to Spielberg to debunk misinformation about how he made “Jaws.” That’s next-level stuff, even for Todd.</p>
<p><a href="https://fxrant.blogspot.com/2018/09/the-myth-of-jaws-shooting-star.html">Go to the linked site</a>.</p><p><a href="https://sixcolors.com/link/2025/01/jaws-myths-exploded-by-spielberg-via-vaziri/">Read on Six Colors</a>.</p>]]></description>
      <pubDate>Tue, 21 Jan 2025 16:54:46 +0000</pubDate>
      <link>https://sixcolors.com/link/2025/01/jaws-myths-exploded-by-spielberg-via-vaziri/</link>
      <dc:creator>Six Colors</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4697408765</guid>
    </item>
    <item>
      <title><![CDATA[NROL has the best mission patches]]></title>
      <description><![CDATA[<div style="text-align: center; width: 100%; max-width: 2191px; margin: 0 auto;"><div style="display: flex; gap: 0.5em; margin-bottom: 0.5em;"><div style="flex: 0.938"><a href="https://www.nro.gov/news-media-featured-stories/NRO-Patch-Madness/"><img src="https://cdn.jwz.org/images/scaled/768/2024/nrol61_launch_patch_png_large.png" width="1060" height="1110" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/nrol61_launch_patch_png_large.png 1060w, https://cdn.jwz.org/images/scaled/768/2024/nrol61_launch_patch_png_large.png 768w, https://cdn.jwz.org/images/scaled/640/2024/nrol61_launch_patch_png_large.png 640w, https://cdn.jwz.org/images/scaled/360/2024/nrol61_launch_patch_png_large.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="1060x1110"></a></div><div style="flex: 1"><a href="https://www.nro.gov/news-media-featured-stories/NRO-Patch-Madness/"><img src="https://cdn.jwz.org/images/2024/41_nrol-35_mission_logo.png" width="675" height="663" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/41_nrol-35_mission_logo.png 675w, https://cdn.jwz.org/images/scaled/640/2024/41_nrol-35_mission_logo.png 640w, https://cdn.jwz.org/images/scaled/360/2024/41_nrol-35_mission_logo.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="675x663"></a></div></div><div style="display: flex; gap: 0.5em; margin-bottom: 0.5em;"><div style="flex: 1"><a href="https://www.nro.gov/news-media-featured-stories/NRO-Patch-Madness/"><img src="https://cdn.jwz.org/images/scaled/768/2024/nrol-45.png" width="2400" height="2296" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/nrol-45.png 2400w, https://cdn.jwz.org/images/scaled/1280/2024/nrol-45.png 1280w, https://cdn.jwz.org/images/scaled/768/2024/nrol-45.png 768w, https://cdn.jwz.org/images/scaled/640/2024/nrol-45.png 640w, https://cdn.jwz.org/images/scaled/360/2024/nrol-45.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="2400x2296"></a></div><div style="flex: 0.9671"><a href="https://www.nro.gov/news-media-featured-stories/NRO-Patch-Madness/"><img src="https://cdn.jwz.org/images/scaled/768/2024/nrol-82-1024px_1.png" width="1024" height="1013" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/nrol-82-1024px_1.png 1024w, https://cdn.jwz.org/images/scaled/768/2024/nrol-82-1024px_1.png 768w, https://cdn.jwz.org/images/scaled/640/2024/nrol-82-1024px_1.png 640w, https://cdn.jwz.org/images/scaled/360/2024/nrol-82-1024px_1.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="1024x1013"></a></div><div style="flex: 0.9567"><a href="https://www.nro.gov/news-media-featured-stories/NRO-Patch-Madness/"><img src="https://cdn.jwz.org/images/scaled/768/2024/46_nrol-79_mission_patch.png" width="2024" height="2024" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/46_nrol-79_mission_patch.png 2024w, https://cdn.jwz.org/images/scaled/1280/2024/46_nrol-79_mission_patch.png 1280w, https://cdn.jwz.org/images/scaled/768/2024/46_nrol-79_mission_patch.png 768w, https://cdn.jwz.org/images/scaled/640/2024/46_nrol-79_mission_patch.png 640w, https://cdn.jwz.org/images/scaled/360/2024/46_nrol-79_mission_patch.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="2024x2024"></a></div></div><div style="display: flex; gap: 0.5em; margin-bottom: 0.5em;"><div style="flex: 1"><a href="https://www.nro.gov/news-media-featured-stories/NRO-Patch-Madness/"><img src="https://cdn.jwz.org/images/scaled/768/2024/nro-85_logo_1024px_1.png" width="944" height="939" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/nro-85_logo_1024px_1.png 944w, https://cdn.jwz.org/images/scaled/768/2024/nro-85_logo_1024px_1.png 768w, https://cdn.jwz.org/images/scaled/640/2024/nro-85_logo_1024px_1.png 640w, https://cdn.jwz.org/images/scaled/360/2024/nro-85_logo_1024px_1.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="944x939"></a></div><div style="flex: 0.9947"><a href="https://www.nro.gov/news-media-featured-stories/NRO-Patch-Madness/"><img src="https://cdn.jwz.org/images/scaled/768/2024/nrol-162-patch_1024px_1.png" width="1024" height="1024" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/nrol-162-patch_1024px_1.png 1024w, https://cdn.jwz.org/images/scaled/768/2024/nrol-162-patch_1024px_1.png 768w, https://cdn.jwz.org/images/scaled/640/2024/nrol-162-patch_1024px_1.png 640w, https://cdn.jwz.org/images/scaled/360/2024/nrol-162-patch_1024px_1.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="1024x1024"></a></div><div style="flex: 0.9441"><a href="https://www.nro.gov/news-media-featured-stories/NRO-Patch-Madness/"><img src="https://cdn.jwz.org/images/2024/nrol-108_1.png" width="392" height="413" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/nrol-108_1.png 392w, https://cdn.jwz.org/images/scaled/360/2024/nrol-108_1.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="392x413"></a></div></div><div style="display: flex; gap: 0.5em; margin-bottom: 0.5em;"><div style="flex: 0.8594"><a href="https://www.nro.gov/news-media-featured-stories/NRO-Patch-Madness/"><img src="https://cdn.jwz.org/images/scaled/768/2024/42_nrol-55_mission_logo.png" width="6944" height="8080" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/42_nrol-55_mission_logo.png 6944w, https://cdn.jwz.org/images/scaled/1280/2024/42_nrol-55_mission_logo.png 1280w, https://cdn.jwz.org/images/scaled/768/2024/42_nrol-55_mission_logo.png 768w, https://cdn.jwz.org/images/scaled/640/2024/42_nrol-55_mission_logo.png 640w, https://cdn.jwz.org/images/scaled/360/2024/42_nrol-55_mission_logo.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="6944x8080"></a></div><div style="flex: 0.9752"><a href="https://www.nro.gov/news-media-featured-stories/NRO-Patch-Madness/"><img src="https://cdn.jwz.org/images/scaled/768/2024/nrol-87_1024px.png" width="1024" height="1050" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/nrol-87_1024px.png 1024w, https://cdn.jwz.org/images/scaled/768/2024/nrol-87_1024px.png 768w, https://cdn.jwz.org/images/scaled/640/2024/nrol-87_1024px.png 640w, https://cdn.jwz.org/images/scaled/360/2024/nrol-87_1024px.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="1024x1050"></a></div><div style="flex: 1"><a href="https://www.nro.gov/news-media-featured-stories/NRO-Patch-Madness/"><img src="https://cdn.jwz.org/images/scaled/768/2024/48_nrol-42_mission_logo_1.png" width="1200" height="1200" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/48_nrol-42_mission_logo_1.png 1200w, https://cdn.jwz.org/images/scaled/768/2024/48_nrol-42_mission_logo_1.png 768w, https://cdn.jwz.org/images/scaled/640/2024/48_nrol-42_mission_logo_1.png 640w, https://cdn.jwz.org/images/scaled/360/2024/48_nrol-42_mission_logo_1.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="1200x1200"></a></div></div> <p><a href="https://www.jwz.org/blog/2019/10/nrol-39/">Previously</a>, <a href="https://www.jwz.org/blog/2022/04/dancing-with-darkness/">previously</a>, <a href="https://www.jwz.org/blog/2024/12/telescope-spooks/">previously</a>, <a href="https://www.jwz.org/blog/2022/07/space-force-aliens-versus-dragons/">previously</a>, <a href="https://www.jwz.org/blog/2022/03/space-force/">previously</a>, <a href="https://www.jwz.org/blog/2021/03/u-s-cyber-commands-cyber-national-meme-force/">previously</a>, <a href="https://www.jwz.org/blog/2018/05/happy-fun-algorithmic-warfare-cross-functional-team/">previously</a>, <a href="https://www.jwz.org/blog/2014/03/mystic-retro/">previously</a>, <a href="https://www.jwz.org/blog/2011/06/sinister-psyops-mission-patches/">previously</a>.</p></div>]]></description>
      <pubDate>Sun, 29 Dec 2024 21:06:22 +0000</pubDate>
      <link>https://www.jwz.org/blog/2024/12/nrol-has-the-best-mission-patches/</link>
      <dc:creator>jwz</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4674323084</guid>
    </item>
    <item>
      <title><![CDATA[Star Wars Grindhouse]]></title>
      <description><![CDATA[<div style="text-align: center; width: 70%; max-width: 3276px; margin: 0 0 1em 1em; float: right;"><div style="display: flex; gap: 0.5em; margin-bottom: 0.5em;"><div style="flex: 1"><a href="https://eigenmagic.net/@vampiress/113619846906439344"><img src="https://cdn.jwz.org/images/scaled/768/2024/a6cbf267ec7e28db.png" width="1644" height="594" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/a6cbf267ec7e28db.png 1644w, https://cdn.jwz.org/images/scaled/1280/2024/a6cbf267ec7e28db.png 1280w, https://cdn.jwz.org/images/scaled/768/2024/a6cbf267ec7e28db.png 768w, https://cdn.jwz.org/images/scaled/640/2024/a6cbf267ec7e28db.png 640w, https://cdn.jwz.org/images/scaled/360/2024/a6cbf267ec7e28db.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="1644x594"></a></div><div style="flex: 0.9595"><a href="https://eigenmagic.net/@vampiress/113619846906439344"><img src="https://cdn.jwz.org/images/scaled/768/2024/ed2cb4e4fbaa7e84.png" width="1604" height="604" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/ed2cb4e4fbaa7e84.png 1604w, https://cdn.jwz.org/images/scaled/1280/2024/ed2cb4e4fbaa7e84.png 1280w, https://cdn.jwz.org/images/scaled/768/2024/ed2cb4e4fbaa7e84.png 768w, https://cdn.jwz.org/images/scaled/640/2024/ed2cb4e4fbaa7e84.png 640w, https://cdn.jwz.org/images/scaled/360/2024/ed2cb4e4fbaa7e84.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="1604x604"></a></div></div><div style="display: flex; gap: 0.5em; margin-bottom: 0.5em;"><div style="flex: 1"><a href="https://eigenmagic.net/@vampiress/113619846906439344"><img src="https://cdn.jwz.org/images/scaled/768/2024/5ac5b65865210f87.png" width="1616" height="602" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/5ac5b65865210f87.png 1616w, https://cdn.jwz.org/images/scaled/1280/2024/5ac5b65865210f87.png 1280w, https://cdn.jwz.org/images/scaled/768/2024/5ac5b65865210f87.png 768w, https://cdn.jwz.org/images/scaled/640/2024/5ac5b65865210f87.png 640w, https://cdn.jwz.org/images/scaled/360/2024/5ac5b65865210f87.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="1616x602"></a></div><div style="flex: 0.9873"><a href="https://eigenmagic.net/@vampiress/113619846906439344"><img src="https://cdn.jwz.org/images/scaled/768/2024/d7efc8b1ed1cefb3.png" width="2502" height="944" style="width: 100%; height: auto; border: 1px solid;" srcset="https://cdn.jwz.org/images/2024/d7efc8b1ed1cefb3.png 2502w, https://cdn.jwz.org/images/scaled/1280/2024/d7efc8b1ed1cefb3.png 1280w, https://cdn.jwz.org/images/scaled/768/2024/d7efc8b1ed1cefb3.png 768w, https://cdn.jwz.org/images/scaled/640/2024/d7efc8b1ed1cefb3.png 640w, https://cdn.jwz.org/images/scaled/360/2024/d7efc8b1ed1cefb3.png 360w" sizes="(max-width: 660px) 100vw, 72em" loading="lazy" data-size="2502x944"></a></div></div></div><a href="https://eigenmagic.net/@vampiress/113619846906439344">Elissa:</a> <p></p><blockquote style="margin: 1em 0 1em 1.5em; padding: 0.75em 0.5em 0.75em 1em; border: 1px solid; border-left: 4px solid;"> <p>Someone found very stepped-on prints of the original Star Wars trilogy and digitised them. </p><p><a href="https://www.dropbox.com/scl/fo/iozg1gm9snx2oq4bza4jd/AGawAwstU24C6xoEpRe-Sgw?rlkey=vgzm9k3f1m19c6406j892o0py&amp;e=3&amp;dl=0">STAR WARS: GRINDHOUSE VERSION is beautiful.</a></p></blockquote> <p><i>These prints are quite evocative. I can <u>smell</u> the cigarettes. I can <u>feel</u> the sticky carpet.</i> </p><p><a href="https://www.jwz.org/blog/2019/12/two-djs-walk-into-a-bar/">Previously</a>, <a href="https://www.jwz.org/blog/2017/05/star-wars-ships-only/">previously</a>, <a href="https://www.jwz.org/blog/2015/05/star-wars-the-binks-awakens/">previously</a>, <a href="https://www.jwz.org/blog/2014/06/the-joker-tells-luke-skywalker-hes-his-father/">previously</a>, <a href="https://www.jwz.org/blog/2012/04/star-wars-kinect-filk/">previously</a>.</p>]]></description>
      <pubDate>Mon, 09 Dec 2024 02:09:39 +0000</pubDate>
      <link>https://www.jwz.org/blog/2024/12/star-wars-grindhouse/</link>
      <dc:creator>jwz</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4653819366</guid>
    </item>
    <item>
      <title><![CDATA[Vintage Hand-Drawn VHS Labels]]></title>
      <description><![CDATA[
        <p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/vhs-labels-01.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/vhs-labels-01.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/vhs-labels-01.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1284" height="1263" border="0" alt="hand-drawn label on a VHS tape"></p>

<p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/vhs-labels-02.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/vhs-labels-02.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/vhs-labels-02.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1284" height="1222" border="0" alt="hand-drawn label on a VHS tape"></p>

<p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/vhs-labels-03.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/vhs-labels-03.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/vhs-labels-03.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1284" height="1268" border="0" alt="hand-drawn label on a VHS tape"></p>

<p>This person posted <a href="https://www.reddit.com/r/VHS/comments/1h3rold/sample_size_of_my_dads_collection_of_hundreds_of/">a bunch of images of their dad’s old VHS tapes</a> with lovingly hand-drawn labels indicating their contents. Kids, this is what people did before the internet.</p>

<p>Also, it’s weird/interesting that CDs, DVDs, Blu-ray, LaserDisc, cassettes, MiniDisc, and 8-tracks are all played on devices named for the media (e.g. CD player) but VHS tapes are played on VCRs. We could have easily started calling them “VCR tapes” or “VHS players” en masse, but we mostly collectively stuck to the “correct” terminology. (thx, david)</p>

        

         <p><strong>Tags:</strong> <a href="https://kottke.org/tag/design">design</a> · <a href="https://kottke.org/tag/movies">movies</a></p>

         <p>💬 <a href="https://kottke.org/24/12/vintage-hand-drawn-vhs-labels">Join the discussion on kottke.org</a> →</p>

    ]]></description>
      <pubDate>Thu, 05 Dec 2024 20:25:52 +0000</pubDate>
      <link>https://kottke.org/24/12/vintage-hand-drawn-vhs-labels</link>
      <dc:creator>kottke.org</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4650777103</guid>
    </item>
    <item>
      <title><![CDATA[Surreal Glitch Pulls]]></title>
      <description><![CDATA[
        <p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/niall-staines-01.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/niall-staines-01.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/niall-staines-01.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="1625" border="0" alt=""></p>

<p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/niall-staines-02.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/niall-staines-02.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/niall-staines-02.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="1625" border="0" alt=""></p>

<p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/niall-staines-03.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/niall-staines-03.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/niall-staines-03.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="1300" border="0" alt=""></p>

<p>Artist and “pixel pusher” <a href="https://www.niallstaines.com">Niall Staines</a> creates these slightly surreal scenes by pulling a 1-px slices to the edge of his images. I’ve used this technique myself but Staines deploys it to great effect here. I love these. You can find more of his work <a href="https://www.niallstaines.com/prints">on his website</a> and <a href="https://www.instagram.com/staines/">Instagram</a>.</p>

        

         <p><strong>Tags:</strong> <a href="https://kottke.org/tag/art">art</a> · <a href="https://kottke.org/tag/Niall%20Staines">Niall Staines</a></p>

         <p>💬 <a href="https://kottke.org/24/11/surreal-glitch-pulls">Join the discussion on kottke.org</a> →</p>

    ]]></description>
      <pubDate>Fri, 08 Nov 2024 21:29:12 +0000</pubDate>
      <link>https://kottke.org/24/11/surreal-glitch-pulls</link>
      <dc:creator>kottke.org</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4621447108</guid>
    </item>
    <item>
      <title><![CDATA[How to create software quality.]]></title>
      <description><![CDATA[<p>I’ve been reading Steven Sinofsky’s <em><a href="https://www.amazon.com/Hardcore-Software-Inside-Rise-Revolution-ebook/dp/B0CYBS9PFY">Hardcore Software</a></em>, and particularly enjoyed this quote from a memo discussed in the <a href="https://hardcoresoftware.learningbyshipping.com/p/006-zero-defects">Zero Defects</a> chapter:</p>
<blockquote>
<p>You <em>can</em> improve the quality of your code, and if you do, the rewards
for yourself and for Microsoft will be immense.
<em>The hardest part is to decide that you want to write perfect code.</em></p>
</blockquote>
<p>If I wrote that in an internal memo, I imagine the engineering team would mutiny, but
software quality is certainly an interesting topic where I continue to refine my thinking.
There are so many software quality playbooks out there, and I increasingly believe that all
these playbooks work <em>in their intended context</em>, but are often misapplied.</p>
<p>For example, pretty much every startup has someone on an infrastructure team who believes that
all quality problems can be solved with a sufficiently nuanced automated rollout strategy.
That’s generally been true in my experience at companies with a high volume of engaged usage,
and has not at all been true in environments with low or highly varied usage.
Unsurprisingly, folks who’ve only seen high volume scenarios tend to overestimate the value of rollout techniques,
and folks who’ve never seen high volume scenarios tend to underestimate the value of rollout techniques.</p>
<p>This observation is the underpinning of my beliefs about creating software quality.
Expanding from that observation, I’ll try to convince you of two things:</p>
<ol>
<li>
<p>Creating quality is context specific. There are different techniques for
solving essential domain complexity, scaling complexity, and accidental complexity.</p>
<p>For example, phased automated rollouts don’t help much if there’s little consistency
among your users’ behaviors.</p>
</li>
<li>
<p>Quality is created both within the development loop and across iterations of the development loop.
Feedback within the loop, as opposed to across iterations, creates quality more quickly.
Feedback across iterations tends to <em>measure</em> quality, which informs future quality, but
does not necessarily create it.</p>
<p>For example, bugs detected after software is nominally complete tend to be fixed locally,
even if they reveal a suboptimal approach. I’ve seen projects launch using Redis for no reason,
which later causes a production incident, just because the developer was interested in learning
about Redis and it was too late to rip it out without doing substantial rework.</p>
</li>
</ol>
<p>Those are some nice words. Let’s see if I can convince you that they’re meaningful words.</p>
<h2 id="defining-quality">Defining quality</h2>
<p>Generally I think quality is in the eye of the beholder, but my experience writing for the internet indicates that people will
be upset if I don’t supply a definition of quality, so here’s my working direction:</p>
<ul>
<li>Software behaves as its users anticipate it should behave</li>
<li>Software is easy to modify</li>
<li>Software meets reasonable non-functionality requirements (latency, cost, etc)</li>
</ul>
<p>There are, undoubtedly, better definitions out there, and feel free to insert yours.</p>
<h2 id="kinds-of-complexity">Kinds of complexity</h2>
<p>Managing quality is largely about finding useful ways to deal with complexity.
For example, a codebase might be complex due to its size. Complexity in large codebases
can be managed by using a strongly typed language, increasing test coverage, and so on.</p>
<p>I find it useful to recognize whether complexity is mostly driven by high scale (e.g. you’re
performing 10,000s or 100,000s of requests per second) or whether complexity is mostly driven
by a complex business domain (e.g. you’re trying to capture the intent of open-ended business contracts into
a structured database). I think of the former as “scale complexity” and the later as
“essential domain complexity”, extending the phrase from Fred Brooks’ <a href="https://en.wikipedia.org/wiki/No_Silver_Bullet">No Silver Bullet</a>.</p>
<p><img src="https://lethain.com/static/blog/2024/complexity-grid.png" alt="Two-by-two grid of complexity due to scale versus due to essential domain complexity."></p>
<p>The third common sort of complexity is accidental complexity. If you’ve used a bunch of different technologies
for each part of your product because your team was excited to “try out something new”, then your problems are
likely of the accidental variety.</p>
<h2 id="creating-quality-is-context-specific">Creating quality is context-specific</h2>
<p>My experience is that most folks in technology develop strongly-held opinions about creating quality that anchor heavily on their first working experiences. For example, many folks whose early jobs included:</p>
<ul>
<li>high-volume websites or APIs believe that automated rollbacks driven by production metrics are a fundamental mechanism to prevent a low quality release from impacting users. However, in a domain with infrequent, complex and precise user actions–very much the case for Carta’s domains of fund accounting and managing cap tables–those techniques are less helpful. They certainly might prevent <em>some</em> issues, but they’d fail to prevent many others because the volume of user actions is insufficient to test the full cardinality of potential configurations</li>
<li>high-volume consumer-facing applications believe that A/B testing can determine quality. However, Michelle Bu’s <a href="https://increment.com/apis/api-design-for-eager-discerning-developers/">Eagerly discerning, discerningly eager</a> discusses how many tools for validating quality don’t apply effectively when it comes to API design. She proposes friction logs as a replacement for user interviews, pilot programs as a replacement for beta testing, and dogfooding as a replacement for A/B testing</li>
<li>highly critical and narrow problem spaces might benefit from multiple heterogeneous implementations voting to determine the correct answer in the face of software errors, as described in Gloria Davis’ 1987 paper <a href="https://ntrs.nasa.gov/api/citations/19870019975/downloads/19870019975.pdf">An Analysis of Redundancy Management Algorithms for Asynchrous Fault Tolerant Control Systems</a>. However, maintaining and verifying multiple heterogeneous implementations would be extremely costly for broad problem domains that are expected to change frequently (the typical problem domain for startups)</li>
</ul>
<p>The key observation here is that there’s no universal solution that “just works” across all problem domains. Even the universally accepted ideal of “have a highly conscientious and high-context engineer do it all themselves” isn’t a viable solution in an environment where the current team is too small for the desired volume of work.</p>
<p>Generally, I think your approach to creating quality will vary on these dimensions:</p>
<ul>
<li><strong>Essential domain complexity</strong> – a problem domain with few workflows and conditions can often be validated by looking at user usage (e.g. an application like Instagram, TikTok or Calm has very few workflows and conditions in the software, although the variety of mobile devices they need to run on does increase essential complexity). A problem domain with many workflows or many conditions requires a different approach, which might range from simulating usage to formal specification.</li>
<li><strong>Scalability complexity</strong> – sufficient user traffic solves a lot of problems. At Calm, Uber or Stripe, the scale was high enough that errors were immediately visible in operational data, even with an incremental rollout strategy. At Carta, that would only be true in the case of an exceptionally broad error (a category of error that’s relatively straightforward to catch with automated testing), given the different user usage patterns.</li>
<li><strong>Maturity and tenure of team</strong> – a team with deep context in the problem domain is able to drive quality with fewer distinct roles, more individual empowerment, and less structured process. A team with high turnover generally leans on more defined roles where it’s easier to quickly develop context. Similarly, a team that feels accountable for high-quality will behave differently than a team that feels otherwise.</li>
</ul>
<p>To develop my point a bit, let’s think about two combinations and how we’d approach quality differently:</p>
<ul>
<li><strong>Low essential complexity problem domain, high traffic, and deep team context</strong> – a thorough test suite will go a long way to validating the expected behavior, and the team has enough familiarity with the problem space for engineers to effectively test as they implement. If you do miss something, an incremental rollout mechanism, using production operating metrics to pace rollout, will probably prevent testing gaps from significantly impacting your users</li>
<li><strong>High essential complexity problem domain, low traffic, and limited team context</strong> – designing effective test suites is a challenge because of your team’s limited context and the complex problem space. This means you may need dedicated individuals working on testing frameworks to encapsulate domain context into a reusable testing harness/framework rather than relying on individual team member’s context. It might also mean a focus on highly defined types that codify parts of the domain context into the typechecker itself rather than depending on the awareness of each individual writing incremental code. Incremental rollout mechanisms are unlikely to catch issues missed by testing, because conditions differ enough across users that even a small number of catastrophically failing users are unlikely to meet the necessary thresholds</li>
</ul>
<p>These are radically different approaches, and if you naively applied the solution for one combination to another, you will generate a lot of motion, but are unlikely to generate much impact. Once you’re aware of these combinations, you can start to see what sort of techniques are adopted by folks working on similar problems, but the awareness also helps you start to build a model for creating quality across various circumstances.</p>
<h2 id="is-tolerance-for-error-an-important-dimension">Is tolerance for error an important dimension?</h2>
<p>Before developing a model for reasoning about creating quality, a few comments on “tolerance for error.” I think many people would argue that your tolerance for error is an important dimension in determining your approach to creating quality, but to be honest I haven’t found that a useful dimension.</p>
<p>For example, if you tell me that you highly prioritize quality at your company, and that’s why you have a very large quality assurance organization, or a very formal verification process, my first response would be skepticism. Quality assurance teams are extremely useful in many scenarios. Formal verification processes are also very useful in many scenarios. However, neither is universally ideal, and both can be done poorly.</p>
<p>In my personal experience, the highest quality organizations are those with detail oriented <a href="https://lethain.com/inspection/">executives who actively inspect</a> quality in their teams’ work. That executive-driven inspection elevates quality into first-tier work done by their leadership, and so on down the chain. In those organizations, there are often teams that build quality assurance tools, but those teams support quality rather than being directly accountable for it.</p>
<p>Others’ personal experiences will be the opposite, and that’s entirely the point: I’ve seen low tolerance for error drive a wide variety of different approaches. Similarly, I’ve seen organizations with a high tolerance for errors both go heavy on quality assurance and heavy on engineer-led quality. As such, I don’t think this is an important dimension when reasoning about creating quality.</p>
<h2 id="iterating-on-a-model">Iterating on a model</h2>
<p>My model of creating quality started as a
<a href="https://lethain.com/modeling-reliability/">model for reliability</a>.</p>
<p><img src="https://lethain.com/static/blog/2019/reliability-diagram-9.png" alt="Mental model for creating reliable systems."></p>
<p>There’s a lot to like about this model, I think the idea of “latent incidents”
is a particularly useful one, because it acknowledges that even if you improve your quality practices,
it may take a very long time to drain the backlog of latent incidents such that you actually
feel like you’ve improved quality. I imagine many teams actually solve their quality problem
but accidentally abandon their successful approach before they drain the backlog and realize
they’ve solved it.</p>
<p>I made the above model at a period when I was almost entirely focused on accidental
complexity from a sprawling codebase and scaling complexity from an increasingly large volume
of concurrent usage. Because of that focus, I spent too little time thinking about the third
source of complexity, essential domain complexity.</p>
<p>What I’d like to do here is to develop a model that incorporates both the insights of
my prior model <em>and</em> also the fact that essential domain complexity has been the largest
source of quality issues in my current and prior roles at Carta and Calm.</p>
<p>I think it’s useful to start with the smallest possible loop for iterating on software,
the <a href="https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop">Read Eval Print Loop</a>
(aka REPL), first popularized in 1964.</p>
<p><img src="https://lethain.com/static/blog/2024/repl.png" alt="Diagram of the classic Read, Evaluate, Print loop"></p>
<p>Not much modern development is done directly in a REPL, but developer-led testing provides
a very similar loop, with a single developer looping from writing a piece of code, to writing tests for that code,
to running the tests, to addressing the feedback raised by those tests.</p>
<p><img src="https://lethain.com/static/blog/2024/code-loop.png" alt="Diagram of the writing code, writing tests for code, then reviewing output from tests"></p>
<p>Now let’s try to introduce the fact that this tight iteration loop is just one phase of shipping software.
After writing software, we also need to release that software into production.
After all, as Steve Jobs said, real artists ship!</p>
<p><img src="https://lethain.com/static/blog/2024/dev-release-loop.png" alt="Diagram of software engineer writing code and then following a release process to release that code."></p>
<p>In particular, it’s worth noticing the loops that occur within one node versus the
loops that occur across nodes. It’s significantly faster to iterate within a node than
it is to iterate across nodes.</p>
<p>While we’re starting to get a bit closer, but we’re missing a few key things here to
reason about the quality of our code.
First, even after releasing code, there can be a defect rate where the implementation
doesn’t wholly solve the domain’s essential complexity, such that there is a latent defect.
Alternatively, there might be an emergent issue in production caused by either accidental complexity
(e.g. sloppy environment setup) or scaling complexity (e.g. unexpected traffic spike).</p>
<p>Second, sometimes engineers don’t understand the feature they’re trying to implement,
even when they’re trying hard to do so. This might be because they’re new to the team
and it’s a complex problem space. Or it might be because they had a miscommunication
with their product manager, who is responsible for defining the required functionality.</p>
<p><img src="https://lethain.com/static/blog/2024/prod-soft-deploy-loop.png" alt="Diagram of development loop include defining feature requirements and latent errors."></p>
<p>This model starts to get interesting! The first thing to note is just how delayed the feedback is from writing software
to rewriting software if that feedback requires releasing the software.
If the handoff of specification from product to engineer goes awry, it may take weeks to detect the issue.
This is even more profound in “high cardinality” problem domains where there’s a great deal of divergence in
user usage and user data: it may take months or quarters for the feedback to reach the developer about something
they did wrong, at which point they–at best–have forgotten much of their original intentions.</p>
<p>Like any good model, you can iterate on it endlessly to capture the details
that are most interesting for your situation:</p>
<ul>
<li>If you’re mostly focused on scalability
complexity, then the release process is likely particularly interesting for you.</li>
<li>If you’re focused on accidental complexity, then proactive and reactive controls on software design–mechanisms
that gate access to and departure from the software development cluster–would be the most
interesting such as <a href="https://lethain.com/scaling-consistency/">architecture reviews</a> or
<a href="https://lethain.com/reclaim-unreasonable-software/">verifying properties</a> within pull requests before merging them.</li>
<li>If you’re focused on essential domain complexity, then you’re
focused on either feature specification or the software development feedback loop.
Techniques to address might vary from embedding new hires onto teams with high context
to requiring pull requests be reviewed by a domain expert, to developming a comprehensive test
harness that makes it easy for developers to test new functionality against the full spectrum of
unusual scenarios.</li>
</ul>
<p>The best way to get a feel for any model is to experiment with it.
Delete pieces that aren’t interesitng to you, add pieces that seem to be missing from your perspective,
and see what it teaches out.</p>
<h2 id="measurement-contributes-to--creates-quality">Measurement contributes to (!= creates) quality</h2>
<p>One important observation from this model is that errors detected in production,
or even in release, are much harder to address effectively than errors detected
by the engineer writing the software initially.
I think of detecting errors after the software engineer handoff primarily as
<em>measuring quality</em> rather than <em>creating quality</em>. My reason for this distinction
is that any improvement from this measurement occurs in a later iteration of the loop,
as opposed to within the current loop.</p>
<p>I think this is an important distinction because it provides the vocabulary to discuss
the role of software engineering teams and the role of quality assurance (QA) teams.</p>
<p>Software engineering teams write software to address problem domain and scaling complexity.
Done effectively, developer-led testing happens within the small, local development loop,
such that there’s no delay and no coordination overhead separating implemention and verification
In that way, developer-led testing directly contributes to quality in the stage that it’s written.</p>
<p>QA teams write software (or run manual processes) to measure the quality of that
software in the problem domain.
QA-led testing happens in a distinct step, even if that step occurs concurrently, and as such
the software’s initial design is not influenced by QA tests.
That influences only occurs when the quality loop next repeats.</p>
<p>This is an important distinction, because the later in development an issue is detected, the more likely it is that it’s addressed tactically
rather than structurally. Quality issues detected late are more likely to drive improvement
in specific correctness (fix the test case) rather than in fundamental approach (redesign the architecture).
It also doesn’t mean that QA-led testing isn’t valuable, it’s very valuable for managing the sort of cross-feature
bugs that an engineer with narrow context would not know to test for, but it does mean that
developer-led testing of their current work creates quality sooner and in ways that QA-led testing does not.</p>
<p>Trying to ground this observation in something specific,
think about John Ousterhout’s idea of defining errors out of existence
from <em><a href="https://www.amazon.com/Philosophy-Software-Design-2nd-ebook/dp/B09B8LFKQL/">Philosophy of Software Design</a></em>.
That principle argues that you can eliminate many potential software errors by designing interfaces which prevent the error
from occuring. For example, instead of throwing an error when I attempt to delete a non-existent file, it might
simply confirm the file does not exist.
QA-led testing might ensure that the function throws the error only at the correct times, but
it would only be developer-led design (potentially including developer-led testing or dogfooding)
that would allow the quick iteration loop that supports changing the interface entirely to define that error out of existence.</p>
<hr>
<p>As an aside, this is more-or-less the same point I tried to make in
<a href="https://github.com/readme/guides/incident-response">my contribution to GitHub ReadME</a>,
but there I was focused on incident response. Measuring prior incidents and instances of incident response
are an <em>input</em> to improving future incident response, but do not directly improve reliability:
only finishing projects that increase reliability does that, and investing more into measurement
when you aren’t completing any projects doesn’t solve anything.</p>
<h2 id="what-should-you-do">What should you do?</h2>
<p>The intended takeaway from all this is exactly where we started in the introduction:
creating quality is context specific.
Be wary of following the playbook you’ve seen before, even if those playbook were
tremendously successful. They might work extremely well, but they often don’t
unless you have a useful model for reasoning about why they worked in
the former environment.</p>
<h2 id="related-materials">Related materials</h2>
<p>Throughout this piece, I’ve tried to explain and references ideas as I’ve invoked them,
but here are some of the materials that might be worth reading through if this is an interesting
topic to you:</p>
<ul>
<li>“Define errors out of existence” is an idea from John Ousterhout’s <em><a href="https://www.amazon.com/Philosophy-Software-Design-2nd-ebook/dp/B09B8LFKQL/">Philosophy of Software Design</a></em>, and described with some great examples in <a href="https://wiki.tcl-lang.org/page/Define+Errors+Out+of+Existence">this page from the TCL Lang wiki</a></li>
<li>The distinction between essential and accidental complexity, discussed in
Fred Brooks’ <a href="https://en.wikipedia.org/wiki/No_Silver_Bullet">No Silver Bullet</a> from
<em><a href="https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959">Mythical Man Month</a></em>
is a valuable dimension for reasoning about complexity (and consequently, quality)</li>
<li><a href="https://increment.com/apis/api-design-for-eager-discerning-developers/">Eagerly discerning, discerningly eager</a> is a great piece
from Michelle Bu that discusses how API design is distinct from many other sorts of product design (e.g. can’t use A/B testing, but can
work with other companies as design partners)</li>
<li>Kent Beck’s <em><a href="https://www.amazon.com/Tidy-First-Personal-Exercise-Empirical/dp/1098151240">Tidy First?</a></em> discusses a number of
strategies for addressing accidental quality issues within a codebase, mostly those caused by inconsistent implementations
across a large codebase. I <a href="https://lethain.com/notes-on-tidy-first/">wrote up some notes on this book</a> a while back</li>
<li><a href="https://lethain.com/reclaim-unreasonable-software/">Reclaim unreasonable software</a> captures my thinking about creating quality in a codebase
that has become challenging to reason about. In this piece’s vocabulary, it’s most interested in
solving accidental and scaling complexity</li>
<li><a href="https://staffeng.com/guides/manage-technical-quality/">Manage technical quality</a> is a chapter from <em>Staff Engineer</em> which
describes many of the tools you can use to improve quality. Most of the discussion here is composition-agnostic, e.g.
useful techniques that might or might not apply to various compositions, and certainly you can use the quality model
to evaluate which might apply well for your circumstances</li>
<li><em><a href="https://www.amazon.com/Domain-Driven-Design-Distilled-Vaughn-Vernon/dp/0134434420">Domain-Driven Design Distilled</a></em> by
Vaughn Vernon is a good overview of domain-driven design, which is an approach to software development that applies
particularly well to working in problem domains with high essential complexity</li>
<li><em><a href="https://www.amazon.com/Practical-TLA-Planning-Driven-Development/dp/1484238281">Practical TLA+</a></em> by Hillel Wayne is
a useful introduction to formal specification, which is a topic that not many software engineers spend time thinking about,
but an interesting one nonetheless</li>
<li><em><a href="https://www.amazon.com/Building-Evolutionary-Architectures-Automated-Governance-dp-1492097543/dp/1492097543/">Building Evolutionary Architectures</a></em> by Ford, Parsons, Kua and Sadalage has a number of ideas about guided evolution of codebases (here are <a href="https://lethain.com/building-evolutionary-architectures/">my notes on the 1st edition</a>).
Generally composition-agnostic in their recommendations</li>
</ul>
<p>These are all well worth your time.</p>]]></description>
      <pubDate>Sun, 16 Jun 2024 23:00:00 +0000</pubDate>
      <link>https://lethain.com/quality/</link>
      <dc:creator>Irrational Exuberance</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4485760775</guid>
    </item>
    <item>
      <title><![CDATA[CSS Anchor Positioning in Practice – Winging It Live]]></title>
      <description><![CDATA[<div class="e-content">
<p><a href="https://www.oddbird.net/authors/miriam/" rel="noopener">Miriam Suzanne</a> and <a href="https://jamessw.com" rel="noopener">James Stuckey Weber</a> sat down to talk CSS Anchor Positioning, one of those things I’m certainly aware of by nature of what I do for a living but have not bothered to dedicate time to. Miriam’s been aware of the feature from the spec side of things, of course, but James has been in the field playing with it.</p>



<p>This is the kind of video I’m a sucker for: two great folks learning together, asking questions, and doing it all without a script. Fits my mental model and all.</p>



<p>Anyway, I thought I’d jot a few notes I’m taking away from the video as I watch it.</p>



<h2 class="wp-block-heading">The video</h2>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="CSS Anchor Positioning in Practice - Winging It Live" width="500" height="281" src="https://www.youtube.com/embed/76hIB2L_vs4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
</div></figure>



<h2 class="wp-block-heading">The general concept</h2>



<ul class="wp-block-list">
<li>It looks a lot like absolutely positioning elements relative to another element.</li>



<li>We’re effectively “pinning” an element to another the way we might “pin” a message on a social profile, but gain positioning capabilities.</li>



<li>But rather than saying “pinning” it’s more like we’re dropping “anchor” from an element that’s a “boat” in another element that’s the “sea” and we get to determine the tethered position of the boat in that water with the anchor keeping us from floating out of flow.</li>



<li>Another way of placing things on the screen, but it used to require JavaScript to do this exact sort of thing.</li>



<li>Fixed positioning is anchored to the viewport; this way, we’re able to anchor to a specific element on the page. One element is in a place and we want to positioning another element in relation to it.</li>



<li>Only supported in latest Chromium at time of video.</li>
</ul>



<h2 class="wp-block-heading">Feeling around the syntax</h2>



<ul class="wp-block-list">
<li><code>anchor-name:</code> Define the element to anchor to, declared on that element. Takes a dashed-ident value like a custom property.</li>



<li><code>position-anchor:</code> The element dropping the anchor for positioning.</li>
</ul>



<p>From here, we could absolutely-position the element we want to position the element dropping the anchor.</p>



<pre class="wp-block-code"><code>h1 {
  anchor-name: --post-title;
}

span {
  position: absolute;
  position-anchor: --post-title;
}</code></pre>



<p>Like any other positioning method, we inset with physical — <code>top</code>, <code>bottom</code>, etc. — or logical properties — <code>inset-block-start</code>, <code>inset-inline</code>-end, etc. But we do it in an <code>anchor()</code> function.</p>



<pre class="wp-block-code"><code>h1 {
  anchor-name: --post-title;
}

span {
  position: absolute;
  position-anchor: --post-title;
  inset-block-start: anchor(start);
}</code></pre>



<p>The function accepts physical (e.g. <code>bottom</code>) and logical (e.g. <code>end</code>) keywords.</p>



<p>We can do without <code>position-anchor</code> entirely and reference the named anchor in <code>anchor()</code>:</p>



<pre class="wp-block-code"><code>h1 {
  anchor-name: --post-title;
}

span {
  position: absolute;
  inset-block-start: anchor(--post-title start); /* ✨ */
}</code></pre>



<p>It doesn’t seem to accept logical property values in full, e.g. <code>inset-block-start</code>, which James says could be a bug on the spec or implementation side.</p>



<pre class="wp-block-code"><code>/* 👎 */
inset-block-start: anchor(--post-title inset-block-start);</code></pre>



<p>I wouldn’t be surprised if that’s intentional behavior. It’s weird to declare, for example, <code>inset-block-start</code> in and <code>anchor()</code> on the <code>inset-block-start</code> property like shown above. Instead, the property:value pair reads more logically:</p>



<pre class="wp-block-code"><code>/* "Anchor the element's top edge with the anchor's starting edge */
top: anchor(--post-title start);</code></pre>



<h2 class="wp-block-heading"><code>inside</code> and <code>outside</code> anchors</h2>



<p>Instead of <code>start</code> and <code>end</code> we can position an element <code>inside</code> and <code>outside</code> the anchor.</p>



<pre class="wp-block-code"><code>inset-block-start: anchor(--post-title inside);</code></pre>



<p>The <code>inside</code> value refers to the same side as the property (<code>inset-block-start</code> in that example) where <code>outside</code> refers to the opposite side as the property (<code>inset-block-end</code> in the example). But it also appears not be implemented at this time, at least in the example shown in the video.</p>



<h2 class="wp-block-heading">Multiple insets, same anchor</h2>



<pre class="wp-block-code"><code>h1 {
  anchor-name: --post-title;
}

span {
  position: absolute;
  position-anchor: --post-title;
  inset-block-start: anchor(end);
  inset-block-end: anchor(start);
}</code></pre>



<p>This positions the element in multiple directions, allowing it to span the area.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1766" height="822" src="https://i0.wp.com/geoffgraham.me/wp-content/uploads/css-anchor-position-multiple-directions.png?resize=1766%2C822&amp;ssl=1" alt="" class="wp-image-4477" srcset="https://i0.wp.com/geoffgraham.me/wp-content/uploads/css-anchor-position-multiple-directions.png?w=1766&amp;ssl=1 1766w, https://i0.wp.com/geoffgraham.me/wp-content/uploads/css-anchor-position-multiple-directions.png?resize=768%2C357&amp;ssl=1 768w, https://i0.wp.com/geoffgraham.me/wp-content/uploads/css-anchor-position-multiple-directions.png?resize=1536%2C715&amp;ssl=1 1536w" sizes="(max-width: 1000px) 100vw, 1000px" data-recalc-dims="1"></figure>



<p>A faster way to do this: <code>inset-area</code></p>



<pre class="wp-block-code"><code>h1 {
  anchor-name: --post-title;
}

span {
  position: absolute;
  position-anchor: --post-title;
  inset-area: left;
}</code></pre>



<h2 class="wp-block-heading">Anchor sizing</h2>



<p>Another handy lil’ function: <code>anchor-size()</code>.</p>



<pre class="wp-block-code"><code>h1 {
  anchor-name: --post-title;
}

span {
  position: absolute;
  position-anchor: --post-title;
  top: anchor(bottom);
  min-height: 1.5em;
  width: anchor-size(width);
}</code></pre>



<p>Notice what’s happening here. We’re not only positioning the element in relation to the anchor but also <em>sizing</em> it with the <code>width</code> property. This is effectively saying, “Hey, take this element, make it at least <code>1.5em</code> tall, and make it as wide as the thing it’s anchored to.</p>



<p>🤯</p>



<p>This seems like something I’ve often tried using flexbox for — stretching items across a relative space and fixing them to a specific spot. I’m already thinking of this for things like lower-third caption overlays on images, sticky headers/footers, icons and labels…</p>



<p>Works with <code>calc()</code>:</p>



<pre class="wp-block-code"><code>height: calc(anchor-size(width / 2));
inset-inline-start: calc(anchor-size(center) + 10cqi);</code></pre>



<p>The consensus is less certain when it comes to nesting <code>anchor-size()</code>. It appears to be unallowed, maybe because they are not computed values that can be used for calculations?</p>



<pre class="wp-block-code"><code>/* 👎 */
height: calc(anchor-size(width / calc(anchor-size(height))));</code></pre>



<h2 class="wp-block-heading">Inspired by the Popover API</h2>



<p>The idea being that we can anchor to something, say, a button.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1770" height="914" src="https://i0.wp.com/geoffgraham.me/wp-content/uploads/css-anchor-position-popover.png?resize=1770%2C914&amp;ssl=1" alt="" class="wp-image-4478" srcset="https://i0.wp.com/geoffgraham.me/wp-content/uploads/css-anchor-position-popover.png?w=1770&amp;ssl=1 1770w, https://i0.wp.com/geoffgraham.me/wp-content/uploads/css-anchor-position-popover.png?resize=768%2C397&amp;ssl=1 768w, https://i0.wp.com/geoffgraham.me/wp-content/uploads/css-anchor-position-popover.png?resize=1536%2C793&amp;ssl=1 1536w" sizes="(max-width: 1000px) 100vw, 1000px" data-recalc-dims="1"><figcaption class="wp-element-caption">Anchored to the end of the block and inline directions.</figcaption></figure>



<p>The example in that screenshot can be optimized a bit with <code>inset-area</code>, but then we have to explicitly reference the anchor we’re positioned to.</p>



<pre class="wp-block-code"><code>/* before */
top: anchor(--post-title end);
left: anchor(--post-title end);

/* after ✨ */
position-anchor: --post-title;
inset-area: end;</code></pre>



<h2 class="wp-block-heading">Anchor scope</h2>



<p>Interesting, we can set reference the same anchor to a class used on several items, like items in a list:</p>



<pre class="wp-block-code"><code>&lt;ul&gt;
  &lt;li&gt;
    &lt;div&gt;Item 1&lt;/div&gt;
    &lt;div class="anchor"&gt;#&lt;/div&gt;
    &lt;div class="target"&gt;Target&lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

li {
  anchor-scope: --list-item
}

li .anchor {
  /* the anchor scope is &lt;li&gt; */
  anchor-name: --list-item;
}</code></pre>



<p>The <code>.target</code> is looking up the DOM tree for the nearest ancestor with that anchor name, so all of the targets in this example stay within the scope of a list item, providing wholesale positioning across the entire list of items. No need to give each list item an anchor name!</p>



<h2 class="wp-block-heading">Custom properties</h2>



<pre class="wp-block-code"><code>.anchor {
  anchor-name: --my-anchor;
}

.target {
  --size: anchor-size(width);
  
  position: absolute;
  position-anchor: --my-anchor;
  width: var(--size);
}</code></pre>



<h2 class="wp-block-heading"><code>position-try</code>?!</h2>



<p>Whoa, a little algorithmic logic with positioning when running out of room in a scroll container.</p>



<pre class="wp-block-code"><code>.anchor {
  anchor-name: --my-anchor;
}

.target {
  position-anchor: --my-anchor;
  position-try: flip-block;
  bottom: anchor(top);
  left: anchor(center);
}</code></pre>



<p>The <code>.target</code> is positioned above the anchor, where it’s ending (bottom) edge is touching the starting edge (top) of the <code>.anchor</code>. When the target reaches the top of the scrollport and is about to leave view, CSS will attempt to flip the <code>.target</code> inb the <code>block</code> direction, moving it so that its starting (top) edge is touching the ending (bottom) edge of the <code>.anchor</code> to keep it in view as long as possible.</p>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-1 wp-block-group-is-layout-flex">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="348" src="https://i0.wp.com/geoffgraham.me/wp-content/uploads/anchor-position-try-1.png?resize=642%2C348&amp;ssl=1" alt="" class="wp-image-4479" data-recalc-dims="1"></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="652" height="402" src="https://i0.wp.com/geoffgraham.me/wp-content/uploads/anchor-position-try-2.png?resize=652%2C402&amp;ssl=1" alt="" class="wp-image-4480" data-recalc-dims="1"></figure>
</div>



<p>Values:</p>



<ul class="wp-block-list">
<li><code>flip-block</code></li>



<li><code>flip-inline</code></li>



<li><code>flip-start</code> (combines block and inline)</li>



<li><code>flip-end</code> (combines block and inline)</li>
</ul>



<p>And it’s a two-value syntax, not unlike setting <code>background-repeat</code> in both directions but we’re working with directional-awareness instead.</p>



<pre class="wp-block-code"><code>position-try: flip-inline, flip-block; /* needs the comma(?) */</code></pre>



<p>I  can see that being a popular snippet. </p>



<h2 class="wp-block-heading">Set <code>position-try</code> preferences with <code>position-try-options</code></h2>



<p>One more thing we can drop from JavaScript! If we need <em>even more</em> control, there’s <code>position-try-options</code> for setting the flip behavior in any given direction in the order you want in conjunction with a new <code>@position-try</code> at-rule:</p>



<pre class="wp-block-code"><code>.target {
  positoin: absolute;
  position-anchor: --my-anchor;
  position-try: --on-bottom-right, --on-top, --on-left;
}

@position-try --on-bottom-right {
  top: anchor(bottom);
  left: anchor(right);
}

@position-try --on-top {
  bottom: anchor(top);
  left: anchor(left);
}

@position-try --on-left {
  right: anchor(left);
  top: anchor(top);
}</code></pre>



<p>It also works with <code>inset-area</code>, of course, for cleaner code:</p>



<pre class="wp-block-code"><code>@position-try --on-bottom-right {
  inset-area: bottom right;
}</code></pre>



<p>More properties types this is compatible with besides <code>inset-area</code>:</p>



<ul class="wp-block-list">
<li><code>inset</code> properties</li>



<li><code>margin</code> properties</li>



<li>sizing</li>



<li>self-alignment</li>



<li><code>position-anchor</code></li>
</ul>



<p>Can we also change <em>what we are anchored to</em> since this works with <code>position-anchor</code>? It seems it would, but also doesn’t appear to be implemented, so 🤷‍♂️.</p>



<p>Good lord, thinking tooltips here.</p>



<h2 class="wp-block-heading"><code>position-try-order</code> ‼️</h2>



<p>Sorts the <code>position-try-options</code> order by what has the most width, height, inline-size, block-size, etc.</p>



<pre class="wp-block-code"><code>position-try-order: most-width;</code></pre>



<h2 class="wp-block-heading">Anchor to anything!</h2>



<p>It’s possible to anchor to anything with a CSS <code>anchor-name</code>. I love this example of text on a <code>&lt;progress&gt;</code>:</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="762" height="352" src="https://i0.wp.com/geoffgraham.me/wp-content/uploads/anchor-position-progress-element.png?resize=762%2C352&amp;ssl=1" alt="" class="wp-image-4481" style="width:400px" data-recalc-dims="1"></figure>



<h2 class="wp-block-heading">Heck, anchor to multiple things!</h2>



<pre class="wp-block-code"><code>.target {
  position: absolute;
  top: anchor(--anchor-1 bottom);
  bottom: anchor(--anchor-2 top);
  left: anchor(--anchor-3 right);
  right: anbchor(--anchor-4 left);
}</code></pre>



<p>The <code>.target</code> is effectively positioned in a way that spans multiple anchors, allowing its shape to flex all around.</p>



<h2 class="wp-block-heading">Resources</h2>



<ul class="wp-block-list">
<li>Una’s <a href="http://anchor-tool.com" rel="noopener">anchor-tool.com</a> is a great interactive demo of the options.</li>



<li>James’s <a href="https://codepen.io/collection/GoLbGe" rel="noopener">collection of examples</a> on CodePen.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity">



<p>I stopped the video with 10 minutes to go, so I’m sure there’s much more to glean there, but I’ll have to come back to it.</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.youtube.com/live/76hIB2L_vs4" rel="noopener">Source</a></div>
</div>
</div>]]></description>
      <pubDate>Fri, 31 May 2024 17:50:50 +0000</pubDate>
      <link>https://geoffgraham.me/css-anchor-positioning-in-practice-winging-it-live/</link>
      <dc:creator>Geoff Graham</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4470393125</guid>
    </item>
    <item>
      <title><![CDATA[The web is not dying]]></title>
      <description><![CDATA[
                <p>The current AI chaos is prompting people to write all sorts of posts and articles about the imminent death of the web. The current debacle surrounding the TikTok ban (forced sale?) in the US is making journalists believe that the internet as a global town square where people can interact is over if governments start banning these huge platforms.</p>
<p>I don’t believe the web is dying. Not for one second. Maybe this specific version of the web is dying, that might be true. Let’s imagine we ban TikTok. And Facebook. And Instagram. And Threads. And all the other huge platforms. There would still be one global town square left. It’s called the web. The web itself IS the global town square.</p>
<p>Sure, it’s a lot harder to reach a million people if you have to start from your own little corner of the web. But you know what? Tough shit. Some things in life are hard. And maybe that’s a good thing. Maybe being able to instantly become viral is not a good thing overall. Maybe we do want some friction in the system.</p>
<p>The web is not dying. People won’t stop creating because silly AI tools will flood the web with generated crap. Photographers won’t stop taking pictures because Midjourney exists. Filmmakers won’t stop creating videos because Sora is now available to everyone.</p>
<p>Creative people are driven by the passion for creation. Writers write because they love writing. Bloggers will keep blogging away because that’s what they do.</p>
<p>The web is not dying. I started People and Blogs last September. I post one interview a week. I almost completely stopped searching for new people to interview because my list of potential guests had enough entries to last a few years. And yet I’m still finding new blogs daily. <a href="https://ooh.directory">Ooh.directory</a> has more than 2200 blogs listed. The Kagi <a href="https://github.com/kagisearch/smallweb/blob/main/smallweb.txt">small web dataset</a> contains more than 12000 entries. I have more than 1400 sites listed on <a href="https://theforest.link">theforest.link</a>. You could click on a new link every day and have enough new content for the next 40 years. And I am 100% certain that those sites will contain links to other new sites you can explore.</p>
<p>The web is not dying. The web is huge. The web is ever-expanding. The fact that the web is just the same 5 big websites is a fucking lie. It’s like saying the restaurant industry is the same 5 fast food chains. It is not. It’s up to you to decide to stop visiting those 5 sites and stop ingesting their fast food content.</p>
<p>The web is not dying. Start clicking around. Be curious. Follow random links. Search something on <a href="https://search.marginalia.nu">Marginalia</a> or <a href="https://wiby.me">Wiby</a>. Make a blog on <a href="https://bearblog.dev">Bear Blog</a> or <a href="https://micro.blog">Micro.blog</a> and start creating. Join a <a href="https://indieweb.org/webring">Webring</a>. Write something for the <a href="https://indieweb.org/indieweb-carnival">IndieWeb Carnival</a>. Connect with others.</p>
<p>The web is not dying. The only thing that’s slowly dying is the spirit, the mindset that made the web such a wonderful place to begin with.</p>                <hr>
                <p>Thank you for keeping RSS alive. You're awesome.</p>
                <p><a href="mailto:hello@manuelmoreale.com">Email me</a> ::
                <a href="https://manuelmoreale.com/guestbook">Sign my guestbook</a> :: 
                <a href="https://ko-fi.com/manuelmoreale">Support for 1$/month</a> :: 
                <a href="https://manuelmoreale.com/supporters">See my awesome supporters</a> :: 
                <a href="https://buttondown.email/peopleandblogs">Subscribe to People and Blogs</a></p>
            ]]></description>
      <pubDate>Sat, 27 Apr 2024 07:15:00 +0000</pubDate>
      <link>https://manuelmoreale.com/@/page/SWz1dvj7fs0CM5Zw</link>
      <dc:creator>Manuel Moreale — Everything Feed</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4437423942</guid>
    </item>
    <item>
      <title><![CDATA[MKBHDs For Everything]]></title>
      <description><![CDATA[<p><em>This Article is available as a video essay on <a href="https://www.youtube.com/watch?v=QJSSx3qymjM">YouTube</a></em></p>
<hr>
<p>Anniversaries are strange: no one but those involved have any reason to even know they exist, which makes them easy to skip; for example, last year I mostly ignored the <a href="https://stratechery.com/2013/welcome-to-stratechery/">10 year anniversary of starting Stratechery</a> because I was more eager to write about <a href="https://stratechery.com/2023/chatgpt-learns-computing/">ChatGPT Getting a Computer</a>. That leaves today, April 16, as my last chance to mark a tin anniversary: ten years ago Stratechery <a href="https://stratechery.com/2014/welcome-stratechery-20/">added a subscription option</a>, making this my full-time job.</p>
<p>It was, for the record, a miserable day: I had a convoluted plan to offer different site experiences for subscribers and non-subscribers: the former would receive daily linked-list updates (a la <a href="https://daringfireball.net/">Daring Fireball</a>) while the latter would still have access to longer-form Articles; I scrapped the concept <a href="https://stratechery.com/2014/free-stratechery-daily-email/">two days later</a> in favor of simply sending subscribers a daily email, and so the paid newsletter model was born.</p>
<p>That accident of history ended up being why this anniversary is actually more meaningful to me: while I am most well-known for Stratechery, I am equally proud of the paid newsletter model — services like Substack <a href="https://pressgazette.co.uk/platforms/platform-profiles/substack-newsletter-platform/">were based on Stratechery</a> — and gratified that so many writers are making a living connecting directly with readers.</p>
<p>Of course newsletters aren’t the only medium where this happens (and, in fact, I’ve never viewed Stratechery as a newsletter; it’s a blog that you can read via email); there are also podcasts (which <a href="https://stratechery.com/stratechery-plus/">Stratechery has expanded into</a>) and YouTube (like and subscribe to the <a href="https://www.youtube.com/@Stratechery">Stratechery</a> and <a href="https://www.youtube.com/@SharpTechPodcast">Sharp Tech</a> channels!). The king of the latter, at least when it comes to tech, is Marques Brownlee, aka <a href="https://twitter.com/mkbhd">MKBHD</a>.</p>
<h3>The Humane AI Pin</h3>
<p>Humane introduced the wearable AI Pin at <a href="https://www.youtube.com/watch?v=gMsQO5u7-NQ">a TED Talk 11 months ago</a>,  painting the vision of a future without screens, powered by AI. I was, for the record, pretty skeptical: most new tech categories layer on top of what came before, as opposed to outright replacing them; Humane’s proposal of a wearable device that was completely independent of the phone in your pocket seemed unlikely to succeed. Still, I was cheering for them: I applaud any company trying to build something new, and AI provides the opening for new experimentation.</p>
<p>Unfortunately, last week the reviews of the AI Pin came out and they were universally terrible; The Verge’s headline summed up the sentiment: <a href="https://www.theverge.com/24126502/humane-ai-pin-review">Humane AI Pin review: not even close</a>. David Pierce wrote:</p>
<blockquote><p>
  I came into this review with two big questions about the AI Pin. The first is the big-picture one: is this thing… anything? In just shy of two weeks of testing, I’ve come to realize that there are, in fact, a lot of things for which my phone actually sucks. Often, all I want to do is check the time or write something down or text my wife, and I end up sucked in by TikTok or my email or whatever unwanted notification is sitting there on my screen. Plus, have you ever thought about how often your hands are occupied with groceries / clothes / leashes / children / steering wheels, and how annoying / unsafe it is to try to balance your phone at the same time? I’ve learned I do lots of things on my phone that I might like to do somewhere else. So, yeah, this is something. Maybe something big. AI models aren’t good enough to handle everything yet, but I’ve seen enough glimmers of what’s coming that I’m optimistic about the future.</p>
<p>  That raises the second question: should you buy this thing? That one’s easy. Nope. Nuh-uh. No way. The AI Pin is an interesting idea that is so thoroughly unfinished and so totally broken in so many unacceptable ways that I can’t think of anyone to whom I’d recommend spending the $699 for the device and the $24 monthly subscription.
</p></blockquote>
<p>Brownlee agreed; he said at the start of his <a href="https://www.youtube.com/watch?v=TitZV6k8zfA&amp;t=18s">YouTube review</a>:</p>
<div id="v-W7j3wMrx-1" class="video-player"><video id="v-W7j3wMrx-1-video" width="640" height="320" poster="https://videos.files.wordpress.com/W7j3wMrx/mkbhd-humane_mp4_hd.original.jpg" controls="true" preload="metadata" dir="ltr" lang="en"><div><img loading="lazy" decoding="async" alt="Marques Brownlee's review of the Humane AI Pin" src="https://videos.files.wordpress.com/W7j3wMrx/mkbhd-humane_mp4_hd.original.jpg?resize=640%2C320" width="640" height="320" data-recalc-dims="1"></div><p>Marques Brownlee's review of the Humane AI Pin</p></video></div>
<blockquote><p>
  So this is the Humane AI Pin. It is a brand new product in a really interesting new form factor of an ultra-futuristic wearable computer. In a time of all these crazy gadgets and Vision Pro and wearable glasses, it’s so sick that we get so many genuinely new first generation products like this to give a shot.</p>
<p>  Unfortunately it’s also the new worst product I think I’ve ever reviewed in its current state. There’s just so many things bad about it. It’s so bad, in fact, that I actually think it’s kind of distracting to understand what the point of the device is as we go through it, so I’m going to have to separate it out for this video. First, I’m going to tell you what it is and what it’s supposed to do, and then I’ll tell you what my experience has actually been using it.
</p></blockquote>
<p>Brownlee proceeded to do just that: he presented Humane’s vision, detailed how poorly it lived up to it (including the probably fatal flaw inherent in its decision to pretend smartphones don’t exist), and granted that future software updates might improve the experience. I thought it was a fair,<sup id="rf1-12783"><a href="https://stratechery.com/2024/mkbhds-for-everything/#fn1-12783" title="Actually, the deference Brownlee gave the vision and the potential of future upgrades was arguably generous" rel="footnote">1</a></sup> if brutal, review, but what had some people up in arms was the title and thumbnail:</p>
<div align="center">
<blockquote class="twitter-tweet" data-dnt="true">
<p lang="en" dir="ltr">I find it distasteful, almost unethical, to say this when you have 18 million subscribers.</p>
<p>Hard to explain why, but with great reach comes great responsibility. Potentially killing someone else’s nascent project reeks of carelessness.</p>
<p>First, do no harm. <a href="https://t.co/xFft3u2LYG">pic.twitter.com/xFft3u2LYG</a></p>
<p>— Daniel Vassallo (@dvassallo) <a href="https://twitter.com/dvassallo/status/1779753281960722706?ref_src=twsrc%5Etfw">April 15, 2024</a></p></blockquote>
<p> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p></div>
<p>I don’t tweet much these days — if you want one of my tips for lasting over a decade, that is one of them, for my own peace of mind more than anything —&nbsp;but Vassallo’s sentiment bothered me enough to fire off a response:</p>
<div align="center">
<blockquote class="twitter-tweet" data-dnt="true">
<p lang="en" dir="ltr">Marques’ reach is a function of telling the truth. He didn’t always have 18 million subscribers, but he had his integrity from the beginning. Expecting him to abandon that is the only thing that is “distasteful, almost unethical”. <a href="https://t.co/UysMnuIctS">https://t.co/UysMnuIctS</a></p>
<p>— Ben Thompson (@benthompson) <a href="https://twitter.com/benthompson/status/1779817665672175957?ref_src=twsrc%5Etfw">April 15, 2024</a></p></blockquote>
<p> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p></div>
<p>I honestly think I had this anniversary on my mind: I remember when I first started, with only a few hundred followers on Twitter, armed with nothing but my honest takes about tech; my only hope was that those takes would be original enough and valuable enough to build an audience. That they were didn’t diminish the desire to be honest; indeed, one of the biggest challenges creators face as they grow is retaining their edge even when they know people are actually paying attention to what they have to say.</p>
<h3>MKBHD’s Responsibility</h3>
<p>The more interesting Vassallo tweet, though, and the one that inspired this Article, was this exchange in response to his original tweet:</p>
<div align="center">
<blockquote class="twitter-tweet" data-dnt="true">
<p lang="en" dir="ltr">MKBHD is not the market. He *significantly* influences the market.</p>
<p>If a single person can affect the stock price of a company, we usually restrict what they can say or when. MK should be cognizant of the unconstrained power he has (for now).</p>
<p>— Daniel Vassallo (@dvassallo) <a href="https://twitter.com/dvassallo/status/1779785621760069810?ref_src=twsrc%5Etfw">April 15, 2024</a></p></blockquote>
<p> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p></div>
<p>Ignore the vaguely threatening “for now” ; Vassallo is touching on something profound about Brownlee, that I myself understand intimately: what the Internet has made uniquely possible is total loyalty to your customers, and that is threatening.</p>
<p>Let me start with myself: every dollar of income I have comes from my subscribers,<sup id="rf2-12783"><a href="https://stratechery.com/2024/mkbhds-for-everything/#fn2-12783" title="I previously spoke for pay, and even more previously offered consulting, and even more previously than that had ads; however, I ended ads in 2014, consulting in 2015, and haven’t accepted any paid speaking opportunities since 2017. This is all covered on <a href=&quot;https://stratechery.com/about/&quot;>my about page</a>." rel="footnote">2</a></sup> all of whom pay the same price.<sup id="rf3-12783"><a href="https://stratechery.com/2024/mkbhds-for-everything/#fn3-12783" title="$12/month or $120/year for the last five years, increasing to $15/month and $150/year on April 22" rel="footnote">3</a></sup> If someone doesn’t like what I write, I make it easy to unsubscribe; if they accuse me of writing for favor or illegitimate profit I am happy to unsubscribe them myself, and refund their money. After all, to use Brownlee’s reponse to Vassallo:</p>
<div align="center">
<blockquote class="twitter-tweet" data-conversation="none" data-dnt="true">
<p lang="en" dir="ltr">We disagree on what my job is</p>
<p>— Marques Brownlee (@MKBHD) <a href="https://twitter.com/MKBHD/status/1779928058746617912?ref_src=twsrc%5Etfw">April 15, 2024</a></p></blockquote>
<p> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p></div>
<p>My job is to make my subscribers happy, and the best way I’ve found to do that is to stay as true as I can to what I set out to do in the beginning: write things that are original and valuable. When I succeed I’m happy, and the numbers take care of themselves; when I publish something I’m not happy with, I have trouble sleeping. When tech companies or investors or anyone else is mad, I am free to not pay them any attention.</p>
<p>Brownlee, though, is, to Vassallo’s point, something else entirely: 18 million subscribers is an incredible number, even if only — “only” — 3.5 million people have viewed his Humane video. If Humane’s AI Pin wasn’t already dead in the water, it’s fair to say that <a href="https://twitter.com/levelsio/status/1779842724771893524">@levelsio</a> is right:</p>
<div align="center">
<blockquote class="twitter-tweet" data-dnt="true">
<p lang="en" dir="ltr">MKBHD just delivered the final blow to the Humane pin <a href="https://t.co/cW9CnRkdPF">pic.twitter.com/cW9CnRkdPF</a></p>
<p>— @levelsio (@levelsio) <a href="https://twitter.com/levelsio/status/1779842724771893524?ref_src=twsrc%5Etfw">April 15, 2024</a></p></blockquote>
<p> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p></div>
<p>Who, though, is to blame, and who benefited? Surely the responsibility for the Humane AI Pin lies with Humane; the people who benefited from Brownlee’s honesty were his viewers, the only people to whom Brownlee owes anything. To think of this review — or even just the title — as “distasteful” or “unethical” is to view Humane — a recognizable entity, to be sure — as of more worth than the 3.5 million individuals who watched Brownlee’s review.</p>
<p>This is one of the challenges of scale: Brownlee has so many viewers that it is almost easier to pretend like they are some unimportant blob. Brownlee, though, is successful because he remembers his job is not to go easy on individual companies, but to inform individual viewers who will make individual decisions about spending $700 on a product that doesn’t work. Thanks to the Internet he has absolutely no responsibility or incentive to do anything but that.</p>
<h3>Media and the Internet</h3>
<p>While Stratechery mostly covers tech, I also spend a lot of time on media; in the early days of Stratechery, this mostly meant newspapers, and my argument was that was in fact a particularly useful angle on the impact of technology broadly: the fact that newspapers were text meant that they felt the impact of the Internet almost immediately, effects that would, as devices became more powerful and ubiquitous, and broadband faster and more reliable, impact everything. And, of course, Stratechery was a written product, so I had a stake in the game.</p>
<p>To that end, I wrote a series of Articles in the run-up to April 16, 2014, laying the groundwork for why I thought my subscription offering would work. The last of these was entitled <a href="https://stratechery.com/2014/newspapers-are-dead-long-live-journalism/">Newspapers Are Dead; Long Live Journalism</a>, where I wrote:</p>
<blockquote><p>
  Remember how the New York Times was started as&nbsp;<a href="http://archive.org/stream/historyofnewyork00davi/historyofnewyork00davi_djvu.txt">a means of making money</a>? After the first year the paper had a circulation of 26,000 in a city of over half a million, but had incurred up-front capital costs of $50,000, and first-year expenses of $78,000 (In 1851 dollars; the modern equivalent would be $1.4 million and $2.2 million respectively). Compare that to this blog (which, by happy coincidence, turns&nbsp;<a href="http://stratechery.com/2013/welcome-to-stratechery/">one year old</a>&nbsp;tomorrow, making this comparison timely):&nbsp;<a href="http://stratechery.com/2014/fivethirtyeight-end-average/">FiveThirtyEight and the End of Average</a>, the first article in this series, has been read by over 30,000 people; meanwhile, I’ve spent less than $2,000. More readers, way less money.</p>
<p>  You may consider the comparison unfair — an entire newsroom putting out a daily edition as compared to a solo blogger posting one Article — but&nbsp;<em>the unfairness is the point</em>. No one shared my article because it was from Stratechery, but then again, no one shares an article today just because it’s from the New York Times; all that matters is the individual article and its worth to the reader and potential sharer. As a writer,&nbsp;<em>this is amazing.</em>&nbsp;When it comes to reader attention, I am competing on an equal footing with The New York Freaking Times! Unfortunately for The New York Times, when it comes to making money they’re competing with Google and Facebook. Most distressingly, though, when it comes to costs, they’re competing with the last 150 years. Everything from printing presses to sales and marketing is deadweight if advertising is not a sustainable model.
</p></blockquote>
<p>The New York Times has, <a href="https://stratechery.com/2024/the-new-york-times-ai-opportunity/">to its immense credit</a>, figured out how to go direct to readers; most other newspapers have <a href="https://stratechery.com/2017/the-local-news-business-model/">struggled</a>: cost structures that were predicated on owning printing presses and delivery trucks simply don’t make sense in a world where <a href="https://stratechery.com/2014/economic-power-age-abundance/">distribution is free</a>.</p>
<p>Free distribution, meanwhile, made Stratechery possible: I just needed to write compelling content on my own website. Brownlee, meanwhile, got his free distribution from YouTube (and, to the extent you want to complain about his accurate but attention-grabbing headline, the realities of the YouTube algorithm, the one non-viewer incentive Brownlee needs to respond to, looms large). The key point is that he could do everything else on his own, starting with the webcam on his HP Pavilion laptop that he used to record <a href="https://www.youtube.com/watch?v=9gk_rl3y_SU">his first video</a>:</p>
<div align="center"><iframe loading="lazy" width="560" height="315" src="https://www.youtube-nocookie.com/embed/9gk_rl3y_SU?si=hlgLhuPF1LAqLXUw&amp;controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe></div>
<p>Today Brownlee has a <a href="https://www.youtube.com/watch?v=jz_qFyTrS8w">top-of-the-line studio</a> and a staff, but the fundamental principle remains: in media one person can do it all, and build a thriving business that makes everyone from Humane to Apple care deeply about what he or she has to say — far more than they care about any traditional publication.</p>
<h3>AI and Intelligence</h3>
<p>I mentioned at the beginning that last year I wrote about <a href="https://stratechery.com/2023/chatgpt-learns-computing/">ChatGPT Gets a Computer</a> in lieu of an anniversary post; that Article, which was built around OpenAI’s announcement of (now-discontinued) ChatGPT plugins, was about the nature of the brain and how large learning models did or did not compare.</p>
<blockquote><p>
  Computers are deterministic: if circuit X is open, then the proposition represented by X is true; 1 plus 1 is always 2; clicking “back” on your browser will exit this page. There are, of course, a huge number of abstractions and massive amounts of logic between an individual transistor and any action we might take with a computer — and an effectively infinite number of places for bugs — but the appropriate mental model for a computer is that they do exactly what they are told (indeed, a bug is not the computer making a mistake, but rather a manifestation of the programmer telling the computer to do the wrong thing).</p>
<p>  I’ve already mentioned Bing Chat and ChatGPT; on March 14 Anthropic released another AI assistant named Claude: while the announcement doesn’t say so explicitly, I assume the name is in honor of the aforementioned Claude Shannon. This is certainly a noble sentiment — Shannon’s contributions to information theory broadly extend far beyond what Dixon laid out above — but it also feels misplaced: while technically speaking everything an AI assistant is doing is ultimately composed of 1s and 0s, the manner in which they operate is emergent from their training, not proscribed, which leads to the experience feeling fundamentally different from logical computers — something nearly human — which takes us back to hallucinations; Sydney was interesting, but what about homework?
</p></blockquote>
<p>I added in <a href="https://stratechery.com/2023/chatgpt-enterprise-connectors-and-small-businesses-nvidia-competitors/">an August Update</a>:</p>
<blockquote><p>
  The point of that Article was that ChatGPT’s plugin architecture gave hallucinating creative LLMs access to determinative computers to ascertain truth, not dissimilar to the way a creative being like you or I might use a calculator to solve a math problem. In other words, the LLM is the interface to the source of truth, not the source of truth itself.</p>
<p>  That is exactly what this “coming soon” feature is all about: you don’t make an LLM useful for your business by adding your business’s data to the LLM; that is simply a bit more text in a sea of it. Rather, you leverage the LLM as an interface to “computers” that deterministically give you the right answer. In this case, those computers will be “connecting the applications you already have”, which sounds to me an awful lot like enterprise-specific plug-ins.
</p></blockquote>
<p>The specifics of product implementations are not the point, but rather the distinction between a natural language interface based on probabilities and computers based on deterministic calculations; I think using the former to access the latter will remain one of the most important applications of large language models.</p>
<p>There is, though, one more piece: who actually tells the AI what to do, such that it needs access to a computer of its own? In <em>ChatGPT Gets a Computer</em>, which analogized large language models to Jeff Hawkins’ theory of the brain, I expressed hope that the beliefs he expressed about the nature of intelligence in <a href="https://www.numenta.com/resources/books/a-thousand-brains-by-jeff-hawkins/">A Thousand Brains: A New Theory of Intelligence</a> extended to large language models. Hawkins writes:</p>
<blockquote><p>
  Intelligence is the ability of a system to learn a model of the world. However, the resulting model by itself is valueless, emotionless, and has no goals. Goals and values are provided by whatever system is using the model. It’s similar to how the explorers of the sixteenth through the twentieth centuries worked to create an accurate map of Earth. A ruthless military general might use the map to plan the best way to surround and murder an opposing army. A trader could use the exact same map to peacefully exchange goods. The map itself does not dictate these uses, nor does it impart any value to how it is used. It is just a map, neither murderous nor peaceful. Of course, maps vary in detail and in what they cover. Therefore, some maps might be better for war and others better for trade. But the desire to wage war or trade comes from the person using the map.</p>
<p>  Similarly, the neocortex learns a model of the world, which by itself has no goals or values. The emotions that direct our behaviors are determined by the old brain. If one human’s old brain is aggressive, then it will use the model in the neocortex to better execute aggressive behavior. If another person’s old brain is benevolent, then it will use the model in the neocortex to better achieve its benevolent goals. As with maps, one person’s model of the world might be better suited for a particular set of aims, but the neocortex does not create the goals.
</p></blockquote>
<p>To the extent this is an analogy to AI, large language models are intelligent, but they do not have goals or values or drive. They are tools to be used by, well, anyone who is willing and able to take the initiative to use them.</p>
<h3>AI and the Sovereign Individual</h3>
<p>I don’t think either Brownlee or I particularly need AI, or, to put it another way, are overly threatened by it. Yes, ChatGPT would have written several thousand words far more quickly than the hours it took me to write this Article, but I am (perhaps foolishly) confident that they would not be original and valuable enough to take away my audience; I think it’s the same for Brownlee.</p>
<p>The connection between us and AI, though, is precisely the fact that we haven’t needed it: the nature of media is such that we could already create text and video on our own, and take advantage of the Internet to — at least in the case of Brownlee — deliver finishing blows to $230 million startups.</p>
<p>How many industries, though, are not media, in that they still need a team to implement the vision of one person? How many apps or services are there that haven’t been built, not because one person can’t imagine them or create them in their mind, but because they haven’t had the resources or team or coordination capabilities to actually ship them?</p>
<p>This gets at the vector through which AI impacts the world above and beyond cost savings in customer support, or whatever other obvious low-hanging fruit there may be: as the ability of large language models to understand and execute complex commands — with deterministic computing as needed — increases, so too does the potential power of the sovereign individual telling AI what to do. The Internet removed the necessity — and inherent defensibility — of complex cost structures for media; AI has the potential to do the same for a far greater host of industries.</p>
<hr>
<p>Brownlee’s 2nd most popular video is only two months old: it’s his <a href="https://www.youtube.com/watch?v=dtp6b76pMak">overview of the Apple Vision Pro</a>; it’s not, if fiction is our guide, an accident that Meta is developing the Quest and Apple has released the Vision Pro just as AI seems poised to threaten an ever-increasing number of jobs. This was the world painted by Pixar’s Wall-E:</p>
<p><a href="https://www.pixar.com/feature-films/walle"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-2.png?resize=640%2C268&amp;ssl=1" alt="Humans in Pixar's Wall-E" width="640" height="268" class="aligncenter size-full wp-image-12785" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-2.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-2.png?resize=300%2C125&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-2.png?resize=1024%2C428&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-2.png?resize=768%2C321&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-2.png?resize=1200%2C502&amp;ssl=1 1200w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>It’s funny, because before I looked up this photo, I could have sworn the humans in the film, lulled to insouciance by an AI that addressed all of their physical needs, were wearing headsets; I guess Pixar overestimated our ability to build space-faring cruise ships and underestimated the relentless progression of consumer electronics.</p>
<p>My suspicion, however, is that Pixar got it wrong, and this famous photo of Mark Zuckerberg at Mobile World Congress in 2016 is closer to the truth of the matter.</p>
<p><a href="https://www.facebook.com/photo/?fbid=10102665120179591&amp;set=pcb.10102665126861201"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-1.png?resize=640%2C426&amp;ssl=1" alt="Mark Zuckerberg at Mobile World Congress" width="640" height="426" class="aligncenter size-full wp-image-12789" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-1.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-1.png?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-1.png?resize=1024%2C682&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-1.png?resize=768%2C511&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/04/mkbhd-1.png?resize=946%2C630&amp;ssl=1 946w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>Wall-E erred by assuming that every human was the same, all gleefully enslaved by AUTO, the ship’s AI. In fact, though, I suspect humanity will be distributed bi-modally, with the vast majority of people happily wearing their Vision Pros or watching their streaming service or viewing their TikTok videos, while increasingly sovereign individuals, aided by AI, pilot the ship.</p>
<p>That may sound extreme, but again, this is why it is useful to look to media first: Brownlee — one man, who started out by reviewing a media center remote on his HP laptop — does in fact hold the fate of entire companies and products in his hand. My bet is not that AI replaces Brownlee, but that AI means Brownlee’s for everything, not just media.</p>
<p>As for me, I plan on documenting it every step of the way, thanks to every person who has supported Stratechery over the last 10 years, and to whom I alone owe accountability, and gratitude.</p>
<hr>
<p><iframe loading="lazy" class="youtube-video" iframe="" width="560" height="315" src="https://www.youtube-nocookie.com/embed/QJSSx3qymjM?si=lIjp4M6KTwjnxeRR&amp;controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe></p>
<hr class="footnotes"><ol class="footnotes" style="list-style-type:decimal"><li id="fn1-12783"><p>Actually, the deference Brownlee gave the vision and the potential of future upgrades was arguably generous&nbsp;<a href="https://stratechery.com/2024/mkbhds-for-everything/#rf1-12783" class="backlink" title="Return to footnote 1.">↩</a></p></li><li id="fn2-12783"><p>I previously spoke for pay, and even more previously offered consulting, and even more previously than that had ads; however, I ended ads in 2014, consulting in 2015, and haven’t accepted any paid speaking opportunities since 2017. This is all covered on <a href="https://stratechery.com/about/">my about page</a>.&nbsp;<a href="https://stratechery.com/2024/mkbhds-for-everything/#rf2-12783" class="backlink" title="Return to footnote 2.">↩</a></p></li><li id="fn3-12783"><p>$12/month or $120/year for the last five years, increasing to $15/month and $150/year on April 22&nbsp;<a href="https://stratechery.com/2024/mkbhds-for-everything/#rf3-12783" class="backlink" title="Return to footnote 3.">↩</a></p></li></ol>]]></description>
      <pubDate>Tue, 16 Apr 2024 15:25:12 +0000</pubDate>
      <link>https://stratechery.com/2024/mkbhds-for-everything/</link>
      <dc:creator>Stratechery by Ben Thompson</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4426865589</guid>
    </item>
    <item>
      <title><![CDATA[Excited to Wear This Spring]]></title>
      <description><![CDATA[<p>According to superstition, good luck comes to those who wear at least one new article of clothing on Easter Sunday, the official start of spring (style-wise). For years, I wrote spring style guides for various publications, including Put This On, but as menswear has become balkanized into tiny little communities, I’ve found it better to [...]</p>
<p><a class="btn btn-secondary understrap-read-more-link" href="https://dieworkwear.com/2024/03/29/excited-to-wear-this-spring-5/" data-wpel-link="internal">Read More...</a></p>
<p>The post <a href="https://dieworkwear.com/2024/03/29/excited-to-wear-this-spring-5/" data-wpel-link="internal">Excited to Wear This Spring</a> appeared first on <a href="https://dieworkwear.com" data-wpel-link="internal">Die, Workwear!</a>.</p>
]]></description>
      <pubDate>Fri, 29 Mar 2024 20:26:26 +0000</pubDate>
      <link>https://dieworkwear.com/2024/03/29/excited-to-wear-this-spring-5/</link>
      <dc:creator>Die, Workwear!</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4410318117</guid>
    </item>
    <item>
      <title><![CDATA[Farm Animal Family Photos]]></title>
      <description><![CDATA[
        <p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/farm-family-01.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/farm-family-01.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/farm-family-01.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="1300" border="0" alt="a group of farm animals posing together, as in a family photo"></p>

<p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/farm-family-02.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/farm-family-02.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/farm-family-02.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="1300" border="0" alt="a group of farm animals posing together, as in a family photo"></p>

<p><img src="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/farm-family-03.jpg" srcset="https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=500,metadata=none/plus/misc/images/farm-family-03.jpg 500w, https://kottke.org/cdn-cgi/image/format=auto,fit=scale-down,width=1200,metadata=none/plus/misc/images/farm-family-03.jpg 1200w" sizes="(max-width: 500px) 500px, 1200px" loading="lazy" width="1300" height="1300" border="0" alt="a group of farm animals posing together, as in a family photo"></p>

<p>Rob MacInnis takes <a href="https://robmacinnis.com/">these great family photos of farm animals</a>. I mean, gold medal to anyone who can actually get a chicken, dog, goat, sheep, cow, and horse to pose together like that. I also like his photo of <a href="https://www.instagram.com/p/CnuK3AsrecB/">this charming sheep</a>.</p>

<p>You can check out more of his work <a href="https://www.instagram.com/rob.macinnis/">on Instagram</a> and <a href="https://robmacinnis.com/">his website</a>. (via <a href="https://www.presentandcorrect.com/">present &amp; correct</a>)</p>

 <p><strong>Tags:</strong> <a href="https://kottke.org/tag/photography">photography</a> · <a href="https://kottke.org/tag/Rob%20MacInnis">Rob MacInnis</a></p>

 <p>💬 <a href="https://kottke.org/24/04/farm-animal-family-photos">Join the discussion on kottke.org</a> →</p>

    ]]></description>
      <pubDate>Wed, 03 Apr 2024 20:20:49 +0000</pubDate>
      <link>https://kottke.org/24/04/farm-animal-family-photos</link>
      <dc:creator>kottke.org</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4414788564</guid>
    </item>
    <item>
      <title><![CDATA[How to make the upcoming Neuromancer adaptation not suck:]]></title>
      <description><![CDATA[<ol> <li> Go full <i>Lisa Frankenstein,</i> e.g. 80s as understood by TikTok kids. </li><li> <i>Barbiemancer.</i> </li><li> Muppets. </li><li> Jodorowsky's <i>Dune's TRON.</i> </li></ol> <p>I really think those are your only options. </p><p>I joked earlier that I hope Jared Leto is in the new <i>Neuromancer,</i> because the remake of <i>The Crow</i> only cast a Jared Leto Joker <u><i>impersonator</i></u> and that leaves so much barrel-bottom un-scraped. But I have been informed that Jared Leto is currently on the hook to <a href="https://www.jwz.org/blog/2017/10/blade-runner-2049/">ruin</a> the new <i>TRON</i> movie, and we can only rely upon one man to ruin so much. </p><p>I assume they're just going to make it look like <a href="https://www.jwz.org/blog/2018/02/altered-carbon/"><i>Altered Carbon</i></a>, which is to say, a vision of the future that has remained unchanged from the racks of a mall Hot Topic in 1992. </p><p>Which is why the Lisa Frank version is my first choice: <i>Neuromancer</i> should be a period piece, because Cyberpunk is <i>of</i> the past, just as (even modern) industrial music is now properly retconned to be a subclass of "90s synthpop". </p><p>In any future cyberpunk media, I don't want to see New Rocks and vinyl tights. I will only accept <a href="https://www.jwz.org/blog/tag/fashion/">fashions</a> such as the following: </p><p></p><div style="text-align: center; width: 100%; margin: 0 auto;"><div style="display: inline-block; width: 25.09%; max-width: 702px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2017/10/rick-owens-katamari-kouture/" data-size="700x1052"><img src="https://cdn.jwz.org/images/2017/collections_cover_rick_owerns_ss18_look_39.jpg" style="width: 100%; height: auto; max-width: 700px; max-height: 1052px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2017/collections_cover_rick_owerns_ss18_look_39.jpg 700w, https://cdn.jwz.org/images/scaled/640/2017/collections_cover_rick_owerns_ss18_look_39.jpg 640w, https://cdn.jwz.org/images/scaled/360/2017/collections_cover_rick_owerns_ss18_look_39.jpg 360w" sizes="(max-width: 660px) 26vw, 19em" loading="lazy" data-size="700x1052" width="700" height="1052"></a> </div><div style="display: inline-block; width: 30.64%; max-width: 678px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2010/07/today-in-fashion-news/" data-size="676x832"><img src="https://cdn.jwz.org/images/2010/madame-peripetie-3.jpg" style="width: 100%; height: auto; max-width: 676px; max-height: 832px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2010/madame-peripetie-3.jpg 676w, https://cdn.jwz.org/images/scaled/640/2010/madame-peripetie-3.jpg 640w, https://cdn.jwz.org/images/scaled/360/2010/madame-peripetie-3.jpg 360w" sizes="(max-width: 660px) 31vw, 23em" loading="lazy" data-size="676x832" width="676" height="832"></a> </div><div style="display: inline-block; width: 25.15%; max-width: 1802px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2016/01/pughbots/" data-size="1800x2700"><img src="https://cdn.jwz.org/images/scaled/768/2016/gareth-pugh-beauty-spring-2016-fashi.jpg" style="width: 100%; height: auto; max-width: 1800px; max-height: 2700px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2016/gareth-pugh-beauty-spring-2016-fashi.jpg 1800w, https://cdn.jwz.org/images/scaled/1280/2016/gareth-pugh-beauty-spring-2016-fashi.jpg 1280w, https://cdn.jwz.org/images/scaled/768/2016/gareth-pugh-beauty-spring-2016-fashi.jpg 768w, https://cdn.jwz.org/images/scaled/640/2016/gareth-pugh-beauty-spring-2016-fashi.jpg 640w, https://cdn.jwz.org/images/scaled/360/2016/gareth-pugh-beauty-spring-2016-fashi.jpg 360w" sizes="(max-width: 660px) 26vw, 19em" loading="lazy" data-size="1800x2700" width="1800" height="2700"></a> </div><div style="display: inline-block; width: 19.12%; max-width: 303px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2009/07/the-zeiram-burqa-and-other-tentacular-fashions/" data-size="301x594"><img src="https://cdn.jwz.org/images/2009/hong-kong-fashion-week10.jpg" data-size="301x594" style="width: 100%; height: auto; max-width: 301px; max-height: 594px; border: 1px solid; box-sizing: border-box;"></a> </div><br><div style="display: inline-block; width: 25.02%; max-width: 1202px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2017/10/baroque-papercraft/" data-size="1200x1797"><img src="https://cdn.jwz.org/images/scaled/768/2017/d32f4657558441.59db0aa8e7456.jpg" style="width: 100%; height: auto; max-width: 1200px; max-height: 1797px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2017/d32f4657558441.59db0aa8e7456.jpg 1200w, https://cdn.jwz.org/images/scaled/768/2017/d32f4657558441.59db0aa8e7456.jpg 768w, https://cdn.jwz.org/images/scaled/640/2017/d32f4657558441.59db0aa8e7456.jpg 640w, https://cdn.jwz.org/images/scaled/360/2017/d32f4657558441.59db0aa8e7456.jpg 360w" sizes="(max-width: 660px) 26vw, 19em" loading="lazy" data-size="1200x1797" width="1200" height="1797"></a> </div><div style="display: inline-block; width: 24.98%; max-width: 2002px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2018/02/gucci-fall-2018-ready-to-wear/" data-size="2000x3000"><img src="https://cdn.jwz.org/images/scaled/768/2018/guc0754.jpg" style="width: 100%; height: auto; max-width: 2000px; max-height: 3000px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2018/guc0754.jpg 2000w, https://cdn.jwz.org/images/scaled/1280/2018/guc0754.jpg 1280w, https://cdn.jwz.org/images/scaled/768/2018/guc0754.jpg 768w, https://cdn.jwz.org/images/scaled/640/2018/guc0754.jpg 640w, https://cdn.jwz.org/images/scaled/360/2018/guc0754.jpg 360w" sizes="(max-width: 660px) 25vw, 18em" loading="lazy" data-size="2000x3000" width="2000" height="3000"></a> </div><div style="display: inline-block; width: 25.01%; max-width: 642px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2012/01/thom-browne/" data-size="640x959"><img src="https://cdn.jwz.org/images/2012/thom-browne24-640x959.jpg" style="width: 100%; height: auto; max-width: 640px; max-height: 959px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2012/thom-browne24-640x959.jpg 640w, https://cdn.jwz.org/images/scaled/360/2012/thom-browne24-640x959.jpg 360w" sizes="(max-width: 660px) 26vw, 19em" loading="lazy" data-size="640x959" width="640" height="959"></a> </div><div style="display: inline-block; width: 24.99%; max-width: 398px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2010/08/lorax-on-the-runway/" data-size="396x594"><img src="https://cdn.jwz.org/images/2010/patrick_mohr_show_mercedes_benz_fashion_week_spbrwyc11fpl.jpg" style="width: 100%; height: auto; max-width: 396px; max-height: 594px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2010/patrick_mohr_show_mercedes_benz_fashion_week_spbrwyc11fpl.jpg 396w, https://cdn.jwz.org/images/scaled/360/2010/patrick_mohr_show_mercedes_benz_fashion_week_spbrwyc11fpl.jpg 360w" sizes="(max-width: 660px) 25vw, 18em" loading="lazy" data-size="396x594" width="396" height="594"></a> </div><br><div style="display: inline-block; width: 15.97%; max-width: 490px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2012/04/today-in-panther-moderns-news/" data-size="488x700"><img src="https://cdn.jwz.org/images/2012/tumblr_m0dim1ch5o1qhxlkdo1_500.jpg" style="width: 100%; height: auto; max-width: 488px; max-height: 700px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2012/tumblr_m0dim1ch5o1qhxlkdo1_500.jpg 488w, https://cdn.jwz.org/images/scaled/360/2012/tumblr_m0dim1ch5o1qhxlkdo1_500.jpg 360w" sizes="(max-width: 660px) 16vw, 12em" loading="lazy" data-size="488x700" width="488" height="700"></a> </div><div style="display: inline-block; width: 24.85%; max-width: 552px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2010/07/keith-harings-tron/" data-size="550x507"><img src="https://cdn.jwz.org/images/2010/addminimal-crossroads-project-1.jpg" style="width: 100%; height: auto; max-width: 550px; max-height: 507px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2010/addminimal-crossroads-project-1.jpg 550w, https://cdn.jwz.org/images/scaled/360/2010/addminimal-crossroads-project-1.jpg 360w" sizes="(max-width: 660px) 25vw, 18em" loading="lazy" data-size="550x507" width="550" height="507"></a> </div><div style="display: inline-block; width: 28.62%; max-width: 1082px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2017/10/amazing-jiro/" data-size="1080x865"><img src="https://cdn.jwz.org/images/scaled/768/2017/14498982_1885113411716422_2344472172707184640_n.jpg" style="width: 100%; height: auto; max-width: 1080px; max-height: 865px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2017/14498982_1885113411716422_2344472172707184640_n.jpg 1080w, https://cdn.jwz.org/images/scaled/768/2017/14498982_1885113411716422_2344472172707184640_n.jpg 768w, https://cdn.jwz.org/images/scaled/640/2017/14498982_1885113411716422_2344472172707184640_n.jpg 640w, https://cdn.jwz.org/images/scaled/360/2017/14498982_1885113411716422_2344472172707184640_n.jpg 360w" sizes="(max-width: 660px) 29vw, 21em" loading="lazy" data-size="1080x865" width="1080" height="865"></a> </div><div style="display: inline-block; width: 30.56%; max-width: 730px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2013/10/pussy-riot-dont-surf/" data-size="728x546"><img src="https://cdn.jwz.org/images/2013/facekini-10_255b5_255d.jpg" style="width: 100%; height: auto; max-width: 728px; max-height: 546px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2013/facekini-10_255b5_255d.jpg 728w, https://cdn.jwz.org/images/scaled/640/2013/facekini-10_255b5_255d.jpg 640w, https://cdn.jwz.org/images/scaled/360/2013/facekini-10_255b5_255d.jpg 360w" sizes="(max-width: 660px) 31vw, 23em" loading="lazy" data-size="728x546" width="728" height="546"></a> </div><br><div style="display: inline-block; width: 33.14%; max-width: 642px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2018/02/xsullo/" data-size="640x640"><img src="https://cdn.jwz.org/images/2018/26276616_340542346354144_1142188458643554304_n.jpg" style="width: 100%; height: auto; max-width: 640px; max-height: 640px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2018/26276616_340542346354144_1142188458643554304_n.jpg 640w, https://cdn.jwz.org/images/scaled/360/2018/26276616_340542346354144_1142188458643554304_n.jpg 360w" sizes="(max-width: 660px) 34vw, 24em" loading="lazy" data-size="640x640" width="640" height="640"></a> </div><div style="display: inline-block; width: 22.09%; max-width: 922px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2011/07/iris-van-herpen/" data-size="920x1380"><img src="https://cdn.jwz.org/images/scaled/768/2011/irisvanherpencapriole-0788.jpg" style="width: 100%; height: auto; max-width: 920px; max-height: 1380px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2011/irisvanherpencapriole-0788.jpg 920w, https://cdn.jwz.org/images/scaled/768/2011/irisvanherpencapriole-0788.jpg 768w, https://cdn.jwz.org/images/scaled/640/2011/irisvanherpencapriole-0788.jpg 640w, https://cdn.jwz.org/images/scaled/360/2011/irisvanherpencapriole-0788.jpg 360w" sizes="(max-width: 660px) 23vw, 16em" loading="lazy" data-size="920x1380" width="920" height="1380"></a> </div><div style="display: inline-block; width: 22.1%; max-width: 802px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2020/04/this-season-of-american-gods-has-really-taken-a-turn/" data-size="800x1200"><img src="https://cdn.jwz.org/images/scaled/768/2020/eorodw4u0aembok.jpg" style="width: 100%; height: auto; max-width: 800px; max-height: 1200px; border: 1px solid; box-sizing: border-box;" srcset="https://cdn.jwz.org/images/2020/eorodw4u0aembok.jpg 800w, https://cdn.jwz.org/images/scaled/768/2020/eorodw4u0aembok.jpg 768w, https://cdn.jwz.org/images/scaled/640/2020/eorodw4u0aembok.jpg 640w, https://cdn.jwz.org/images/scaled/360/2020/eorodw4u0aembok.jpg 360w" sizes="(max-width: 660px) 23vw, 16em" loading="lazy" data-size="800x1200" width="800" height="1200"></a> </div><div style="display: inline-block; width: 22.67%; max-width: 344px; padding: 2px; box-sizing: border-box; vertical-align: top; white-space: normal;"><a href="https://www.jwz.org/blog/2007/02/tiny-hats-out-exposed-pineal-jack-in/" data-size="342x500"><img src="https://cdn.jwz.org/images/2007/2-6.jpg" data-size="342x500" style="width: 100%; height: auto; max-width: 342px; max-height: 500px; border: 1px solid; box-sizing: border-box;"></a> </div> <p><a href="https://www.jwz.org/blog/2018/02/xsullo/">Previously</a>, <a href="https://www.jwz.org/blog/2023/11/cyberpunk-at-30/">previously</a>, <a href="https://www.jwz.org/blog/2023/09/neuroblast-dispatch-from-the-cyberpunk-city/">previously</a>, <a href="https://www.jwz.org/blog/2019/11/blade-runner-day/">previously</a>, <a href="https://www.jwz.org/blog/2022/01/today-on-sick-sad-world-how-the-cryptobros-have-fallen/">previously</a>, <a href="https://www.jwz.org/blog/2019/06/dont-let-your-cat-into-the-cybers/">previously</a>, <a href="https://www.jwz.org/blog/2016/06/cyberpunk-bartender-action-va-11-hall-a/">previously</a>, <a href="https://www.jwz.org/blog/2017/10/anime-floppy-disks/">previously</a>, <a href="https://www.jwz.org/blog/2019/01/fashion-goals/">previously</a>, <a href="https://www.jwz.org/blog/2012/10/19a0/">previously</a>.</p></div>]]></description>
      <pubDate>Thu, 29 Feb 2024 17:17:36 +0000</pubDate>
      <link>https://www.jwz.org/blog/2024/02/how-to-make-the-upcoming-neuromancer-adaptation-not-suck/</link>
      <dc:creator>jwz</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4381521892</guid>
    </item>
    <item>
      <title><![CDATA[IndieWeb Carnival: Roundup]]></title>
      <description><![CDATA[
                <p>February has come to an end and with it also ended my experience hosting the 9th edition of the IndieWeb Carnival. To be honest with you, I didn’t know what to expect going into this. Foreverliketh.is—who was the host for the month of January—emailed me one day asking me if I wanted to host one of the upcoming months because the carnival was running short on hosts and I obviously accepted.</p>
<p>His month on the topic of <a href="https://foreverliketh.is/blog/indieweb-carnival-january-2024-positive-internalization/">Positive Internalization </a> saw <a href="https://foreverliketh.is/blog/indieweb-carnival-january-2024-positive-internalization/">13 people contributing</a> and so I said to myself “If 10 to 15 people decide to participate in February I’ll consider that a win”.</p>
<p>Well, looks like we got there. I have 44 links in front of me so this is going to be quite the roundup but before we jump into that let me first say thank you to all the people who decided to take the time to participate. You’re all a bunch of awesome people. Also, the Carnival continues and this month’s topic is going to be <a href="https://blog.basementcommunity.com/accessibility-in-the-personal-web/">Accessibility in the Small Web</a>. Look forward to reading your posts there. Now it’s time to dive into the submissions.</p>
<h2>Quick overview</h2>
<p>As I said before, I have 44 links in front of me. One person contributed 2 posts, 43 of those posts were written specifically for this month’s carnival and 1 was submitted not by its author but by someone else. They thought it was a quality entry and they were right so I decided to include it.</p>
<h2>The roundup</h2>
<p>It’s 7.42 am, I have my cup of tea in front of me, and it’s time to review all these entries.</p>
<h3>On Digital Relationships: Once Upon A Time, I Was A Voxer</h3>
<p>By <a href="https://bix.blog/2024/02/01/on-digital-relationships-once-upon-a-time-i-was-a-voxer/">Bix Frankonis</a></p>
<blockquote>
<p>There’s no way for me to write up my time as a Voxer both online and off in any way that’s comprehensive or even likely especially coherent. Between the memory deficiencies and the flood of alcohol with occasional marijuana digressions, there’s just not enough to form a full picture. While I appear on the incest map, there are versions that link me to people with whom I did not have a saliva or semen connection. The community was a jumbled mess but there’s also a lot of myth wrapped up in it all. I won’t deny I at least had more than my fair share of crushes, including a photographer who I didn’t actually know very well, although we got along fine, and whose later and far too soon funeral to this day I regret missing. (People still remember you, K.)</p>
</blockquote>
<p>I love that this was the first post I received. I am a sucker for stories. I just love them. I love learning about people’s previous lives, about their adventures, about the way they got where they are now. I also love when the physical and the digital intersect and learning about the origin of the name Bix was such a treat.</p>
<h3>Digital relationships</h3>
<p>By <a href="https://vhbelvadi.com/digital-relationships">Venkatram Harish Belvadi</a></p>
<blockquote>
<p>Understanding that the generalisability of any study can be questioned, it is worth reflecting that the IndieWeb—made up in large part of text-heavy websites—can help foster meaningful digital relationships, strengthen social support and feelings of satisfaction associated with these relationships. And because a key, if indirect, result of the IndieWeb movement is to promote a balance of creation and consumption, it is all the more powerful a tool to employ in strengthening digital relationships of humans through the web.</p>
</blockquote>
<p>VH post was the starting point for so many interesting deep dives and I’m going to write at least a few posts thanks to this. I loved the parallelism between the IndieWeb and the physical interactions.</p>
<h3>On digital relationships: I miss my gaming buddies</h3>
<p>By <a href="https://jsrn.net/2024/02/02/digital-relationships-i-miss-my-gaming-buddies.html">James</a></p>
<blockquote>
<p>Looking back, all this happened in a flash. At the time, it felt like aeons.</p>
</blockquote>
<p>I loved this entry focused on gaming because I personally have so many great memories that are related to that. The hours spent with three weirdos—you know who you are—playing co-op games on the PS4 during the pandemic days will stay with me forever. So many laughs, and so many great moments.</p>
<h3>Digital Relationships</h3>
<p>By <a href="https://longest.voyage/log/digital-relationships/">Jamie Crisman</a></p>
<blockquote>
<p>We’re still dating. I mean… I married her, but we still date too.</p>
</blockquote>
<p>Jamie’s post made me smile because it’s such a lovely story. One I can relate to all too well. I might tell my story at some point. Maybe.</p>
<h3>The four phases</h3>
<p>By <a href="https://werd.io/2024/the-four-phases">Ben Werdmuller</a></p>
<blockquote>
<p>In the first era, technology was here to catalogue us.<br>
In the second, it was here to empower us.<br>
In the third, it was here to observe us.<br>
In the fourth, it is here to replace us.</p>
</blockquote>
<p>I’m wondering what the fifth phase is going to look like. This is the type of post I love to read. Full of interesting information and thought-provoking.</p>
<h3>Digital Relationships</h3>
<p>By <a href="https://carlbarenbrug.com/digital-relationships">Carl Barenbrug</a></p>
<blockquote>
<p>It's a struggle to slow the cadence of the web and our daily social interactions; to avoid becoming over-stimulated the second we wake up in the morning. And it's for this reason I find myself gravitating towards natural activities of the past—without a screen. Albeit with a slightly different landscape and a more focused mindset.</p>
</blockquote>
<p>This is something I’m also experiencing. And it’s paradoxical in a way. I retreated from social media years ago to hide in my digital corner and do my own things. I spend more time outside, walking, enjoying nature, and listening to birds. And yet what’s left of my online life is a lot more meaningful.</p>
<h3>Digital Relationships</h3>
<p>By <a href="https://tangiblelife.net/digital-relationships">Steve Ledlow</a></p>
<blockquote>
<p>How a family sits around a table in public all staring at their phones carrying on relationships digitally with everyone other than those sitting in close physical proximity is a tip of the societal scale that disturbs me. How others begin, navigate and end romantic relationships exclusively with digital mechanics confuses me. The fact that our world seems to be trending toward more technology that replaces the relationship with more digital depresses me.</p>
</blockquote>
<p>The large-scale implications of technology are something that worries me a lot. It’s one of those topics I find myself returning over and over again. Another topic I need to explore more on this site.</p>
<h3>The Technology Mediated Relationships</h3>
<p>By <a href="https://sarajaksa.eu/2024/02/indieweb-carnival-february-2024-the-technology-mediated-relationships/">Sara Jakša</a></p>
<blockquote>
<p>And people are trying to solve this for themselves. Which is why there are so many different online spaces and different ways of communication online. But that also means, that there is no way to have one way to communicate with everybody.</p>
</blockquote>
<p>I couldn’t help to ask myself if that’s necessarily a bad thing. Do we actually need a way to communicate with everybody? Maybe we want some friction in the system. Maybe the fact that not everyone is willing to use emails is why emails are still the best way to have one-to-one interactions online.</p>
<h3>Oh the People You'll Meet: A Visual Timeline of Human Connections</h3>
<p>By <a href="https://andzuck.com/blog/connections-over-time/">Andrew Zuckerman</a></p>
<blockquote>
<p>It’s not bad to know many people. The value of a substantial social network is quite high. But having just one close person to go to when you’re feeling down… how many average relationships is that worth? Who feels deep happiness for you when something good happens in your life? Who can you make beautiful memories with?</p>
</blockquote>
<p>I couldn’t agree more. Like everything in life, what matters is to find a good balance. You want plenty of interactions to keep your mind stimulated and your points of view challenged and the digital world is perfect for that. But you also want at least a couple of close IRL relationships.</p>
<h3>People &amp; Content #5: Networking</h3>
<p>By <a href="https://garden.mattstein.com/notes/people-content-5-networking">Matt Stein</a></p>
<blockquote>
<p>My favorite of these networked-but-not-online spectacles were the LAN parties we’d have in high school.</p>
</blockquote>
<p>LAN PARTIES! Those were dope. I still remember playing UT99 with a bunch of people at an improvised LAN party in a garden. And there was pizza. UT99 and pizza. What more can you ask from life? I should probably look into setting up a server to play UT99 with people. Could be fun.</p>
<h3>Digital Relationships Offer Real Hope</h3>
<p>By <a href="https://bjhess.com/posts/digital-relationships-offer-real-hope">Barry Hess</a></p>
<blockquote>
<p>I try to imagine what my life would look like if I was stuck with only the relationships geographically close to me. I have those relationships as well, and I treasure them, but they simply cannot offer the diversity of thought, background, and experience that digital relationships allow. I’m so incredibly thankful to live in an era where I can have the best of both worlds.</p>
</blockquote>
<p>The global nature of the web is an underappreciated quality. Like, can we just stop for a second and appreciate the fact that I’m typing this while sitting in Italy and you’re reading this somewhere else on the globe? It’s fucking amazing.</p>
<hr>
<p>9.12 am: time for a break. Can’t believe I’m only a quarter of the way through this roundup post.</p>
<hr>
<p>9.37 am: I’m back!</p>
<h3>On Influencers and Parasocial Relationships</h3>
<p>By <a href="https://devastatia.com/on-influencers-and-parasocial-relationships">Devastatia del Gato</a></p>
<blockquote>
<p>So yeah The early Internet gave us opportunities for interpersonal relationships. The modern Internet gives us parasocial relationships.</p>
</blockquote>
<p>I love Devastatia’s website. It’s absolutely everything mine isn’t and I love that. I also loved her post because it touches on another topic I plan to write about at some point. Parasocial relationships are fascinating and disturbing.</p>
<h3>A Kafkaesque digital relationship with ourselves</h3>
<p>By <a href="https://minutestomidnight.co.uk/blog/kafkaesque-digital-relationship-with-ourselves/">Simone Silvestroni</a></p>
<blockquote>
<p>Leaving the corporate web is not enough. Refusing to follow influencers with their incessant broadcasting of self-promotion is not enough. Repopulate an RSS reader with brilliant blogs from newfound like-minded people is not enough. Homepages dressed as business cards are everywhere, convinced as we are that presenting ourselves as a product is the only way to go.</p>
</blockquote>
<p>I <a href="https://manuelmoreale.com/controversial-opinion-two">wrote about personal branding back in 2017</a> and my opinion on the topic hasn’t changed. Reading Simone’s post made me want to rewrite my About page though.</p>
<h3>The evolution of online BFFs</h3>
<p>By <a href="https://chronosaur.us/2024/02/09/the-evolution-of-online-bffs/">Karen</a></p>
<blockquote>
<p>Some of my good friends I still haven’t met! We only communicate online in assorted ways. We text, we send each other memes and voice messages and emails. I count them as some of my very best friends and they have been there for me in some of my darkest moments.</p>
</blockquote>
<p>This is one of those things that people can’t fully understand until they try for themselves. It’s incredible how much you can connect with others via the digital space.</p>
<h3>Anonymous, asynchronous friendships</h3>
<p>By <a href="https://hamatti.org/posts/anonymous-asynchronous-friendships/">Juha-Matti Santala</a></p>
<blockquote>
<p>Others, I’ve gotten to know in real life. And it’s a wonderful sensation when you meet someone for the first time in a pub and the usual “getting to know a stranger” feeling isn’t there at all. We would continue the discussions we’ve had for years without a hitch.</p>
</blockquote>
<p>It really is incredible how normal it feels when you finally meet someone in person. Probably 2 hours after having met Rob in person we were wandering the woods chasing howls as if that’s the most normal thing to do with someone you only just met. But it was perfectly normal because we were friends. And we still are.</p>
<h3>Far but close</h3>
<p>By <a href="https://www.michalzelazny.com/far-but-close/">Michal Zelazny</a></p>
<blockquote>
<p>But it all starts on the internet, on the old independent web, where there’s no algorithm and no digital gods telling us what we can and can’t see. It all starts there but it all continues somewhere else. It continues in our hearts. Because it doesn’t matter what channel or app we use to communicate, as long as we have the will. Because whatever app we use, a friend will be on the other side. We can enjoy whatever platform we have while it exists, and we can move on when it ceases to exist. It doesn’t matter if the platform stays or not, what matters is that friends will be there, friends will stay.</p>
</blockquote>
<p>I love this. And I love mail! I keep thinking that maybe I should set up a PO Box and start connecting at an even slower pace. Maybe after I moved and I finally have a home I’m gonna do just that.</p>
<h3>One Degree of Kevin Bacon - Digital Relationships in the 21st Century</h3>
<p>By <a href="https://andrei.xyz/post/one-degree-of-kevin-bacon/">Andrei</a></p>
<blockquote>
<p>Even if these persons are remote, they still mean the world to us, we still care about them, we love them and they are our friends.</p>
</blockquote>
<p>This is another aspect I love about true relationships. They flow. They change, they evolve, they move from digital to physical but they still mean something, no matter the circumstances.</p>
<h3>Zero Degrees of Kevin Bacon - Digital Relationships Addendum</h3>
<p>By <a href="https://andrei.xyz/post/zero-degrees-of-kevin-bacon/">Andrei</a></p>
<blockquote>
<p>In the end, looking back at all the time we spent, I realized I just enjoyed your company, but I actually never knew you at all.</p>
</blockquote>
<p>Thank you for writing this Andrei. It felt oddly therapeutic reading this story.</p>
<h3>On digital relationships</h3>
<p>By <a href="https://mattiacompagnucci.com/on-digital-relationships">Mattia Compagnucci</a></p>
<blockquote>
<p>Belonging and connecting are battles between in-person and screen time. I struggle to balance digital and in-person interaction; as I push myself to live in the present, connecting with someone digitally lets me sometimes feel I’m not since I’m somewhere else with my mind.</p>
</blockquote>
<p>I think this is something we as a society have to confront at some point. Especially with younger generations growing up so connected. The struggle is real and it is a struggle. And we have to do something about it.</p>
<h3>A neighborhood blog</h3>
<p>By <a href="https://poview.org/posts/a-neighborhood-blog/">Yaidel</a></p>
<blockquote>
<p>In a neighborhood everyone knows who is the fool, who is the one who talks a lot, who is the one who always tells lies, the honest one, the teacher, the doctor, the veterinarian, the one who steals, etc. But not on the Internet.</p>
</blockquote>
<p>This is why I try to be as honest with myself as possible on my site. I don’t try to perform, don’t try to create a persona. I try to be who I am, following my interests, and not trying to be distracted by anything else.</p>
<h3>I ♥︎ Plain Digital Text</h3>
<p>By <a href="https://aleemshaun.com/i-heart-plain-digital-text/">Aleem Shaun</a></p>
<blockquote>
<p>In a world bombarded by advertising, algorithms and apps that encourage us to scroll forever, plain text reminds me there’s more to life than the trappings of digital excess.</p>
</blockquote>
<p>I’m with you. I fucking love plain text. I’m writing this post in markdown, my to-do lists are just markdown. Text is powerful. </p>
<h3>Writing As a Relationship</h3>
<p>By <a href="https://skyhold.org/words/writing.html">C Jackdaw</a></p>
<blockquote>
<p>I believe that co-writing is an excellent practice for long-term relationship partners. It can keep things fresh and exciting, allowing you to literally fall in love all over again with someone you've been married to for ten years. More than once I've seen something we're writing reflect back to me something I've been thinking about but not been able to solve on my own; solving the problem on the page is a relief.</p>
</blockquote>
<p>This was such a fascinating read into something I never even thought it was a thing that people do. And this is why I love the web. It allows me to discover all sorts of interesting things.</p>
<hr>
<p>10.42 am: Halfway through the list. Can I just say that I loved going through the posts a second time? You’re all so nice and cool and interesting. What an enjoyable experience this is.</p>
<h3>Communicating online and building relationships</h3>
<p>By <a href="https://zerokspot.com/weblog/2024/02/21/communicating-online-and-building-relationships/">Horst Gutmann</a></p>
<blockquote>
<p>While lots of people seem to be able to build connections through large chats, for me forums just allowed me think a bit more about what the person I was talking to actually meant.</p>
</blockquote>
<p>I still think forums are underappreciated and I also still think I should set up one at some point. Also, thank you for sharing that bash.org exchange because it was hilarious.</p>
<h3>Digital excuses</h3>
<p>By <a href="https://umerez.eu/2024/02/24/digital-excuses.html">Esteban Umerez</a></p>
<blockquote>
<p>I’m not going to apologize, though, because this is my indie blog and my indie post and my indie state of mind. I’m a boomer, but I intend to take full advantage of the modern whining trend.</p>
</blockquote>
<p>You do you sir! Jokes aside, tech is a blessing and a curse. Especially when it becomes unmanageable. And sometimes I think the only solution to tech problems is more tech. Which is silly but it’s a silly world the one we live in.</p>
<h3>A Love Letter to my Laptop</h3>
<p>By <a href="https://westleywinks.com/writing/a-love-letter-to-my-laptop/">Westley Winks</a></p>
<blockquote>
<p>As I’m writing this, I can’t help but think maybe this relationship is strange. Maybe I have too much dependence on my devices and that I shouldn’t rely on technology so much. I shouldn’t be so materialistic or be so attached. But when you spend that much time during some of your most profound years with any one thing, living or otherwise, it is bound to become sentimental.</p>
</blockquote>
<p>It’s odd how we can feel an attachment to objects but it’s something I can absolutely relate to. I don’t own many things but there are a bunch I care about and I’d feel really sad if I were to lose them. Also, this post made me want to go back to working on a laptop, something I’m missing these days.</p>
<h3>Digital tools may create life long relationships</h3>
<p>By <a href="https://www.antonsten.com/writing/digital-tools-may-create-life-long-relationships">Anton Sten</a></p>
<blockquote>
<p>I think people are keen on comparing digital relations to physical relations, but I don’t think they are easily comparable. They are the same, but different.</p>
</blockquote>
<p>I think sometimes we lack words to describe these things. I keep saying things like “Digital” or “IRL” but those don’t fully capture the spirit of the things I’m trying to communicate. We need a better vocabulary for the digital world.</p>
<hr>
<p>11.12 am: life is calling, have to stop now. But don’t worry, I’ll be back.</p>
<hr>
<p>8.51 am: it’s a new day, time to finish writing this roundup.</p>
<h3>Digital Relationships; or, How I Met My Wife and Why I Might Not Try That Again</h3>
<p>By <a href="https://starbreaker.org/blog/digital-relationships-february-2024/index.html">Matthew Graybosch</a></p>
<blockquote>
<p>I am careful to remember that you too are just a voice in the dark. We have never spoken. We have never shared a meal together. We have never shaken hands or embraced. We have never stood side by side against a common enemy with our actual and only lives at stake. As tempting as it is to forget the body when online, we are not daemons or spirits without bodies. We are human beings, embodied and earthbound, and any bonds we forge should take that into account.</p>
</blockquote>
<p>I love Matthew’s post. As I said to him, his story reminds me of mine in a way. Again, maybe I’ll write about it one day.</p>
<h3>Digital relationships with our past</h3>
<p>By <a href="https://www.archaeoramblings.com/blog/digital-relationships-with-our-past/">Andrea Titolo</a></p>
<blockquote>
<p>The unguided nature of the app allows people to reflect on these experiences, instead of providing them with a ready-made interpretation or a written text to read or skip. Left alone, immersed in these soundscapes, we are forced to reflect on our emotions triggered by sound and visual elements, thus building a unique relationship with the past and with the archaeological site.</p>
</blockquote>
<p>I very much enjoyed this entry because it tackles a completely different type of digital relationship, one I never spent time thinking about. I’m now so intrigued by the concept of digital archeology.</p>
<h3>On digital relationship</h3>
<p>By <a href="https://bacardi55.io/2024/02/26/on-digital-relationship-feb-2024-indieweb-carnival/">Bacardi55</a></p>
<blockquote>
<p>Some people think it is impossible to have meaningful exchanges / relationships with other without seeing each other, but I disagree. It is even sometime better to talk to people you don’t see, some topics are easier that way. Yes written communication are more complex because some information can not be shared (body language, tone - in particular irony and sarcasm, …), but that doesn’t prevent people to find a way to interact that works for them and create true companionship, friendship or more.</p>
</blockquote>
<p>I think that sometimes not having access to non-verbal communication can be a good thing. You’re forced to focus on the actual message because that’s all you have.</p>
<h3>Stories of digital relationships</h3>
<p>By <a href="https://42m.me/digital-relationships/">Mick</a></p>
<blockquote>
<p>And none of this would’ve ever happened, if I hadn’t trusted that the “virtual” people beyond the screen can be even realer than the “real” ones.</p>
</blockquote>
<p>Trusting the people on the other side of the screen can be challenging. Because, sadly, the web—and the world in general—is full of dickheads. But I can tell you from experience that it’s also full of kind people.</p>
<h3>Digital Relationship Reminiscenc</h3>
<p>By <a href="https://trivial.observer/blog/2024/02/20240227/">Basil</a></p>
<blockquote>
<p>All good things come to an end. People moved on as the platform struggled with some technology changes and my online life once again reverted to the mainstream social networks, meaning news consumption on Twitter and sharing posts with real world contacts via Facebook and WhatsApp.</p>
</blockquote>
<p>This is one of the sad truths about the web in general and why I also think personal sites are the best way to stay online: platforms come and go. The only place you can count on still being there in 10 or 15 years is the one you control.</p>
<h3>Digital relationships</h3>
<p>By <a href="https://lars-christian.com/digital-relationships/">Lars-Christian</a></p>
<blockquote>
<p>The rules of engagement changed. Where our digital playgrounds once were about hanging out and shooting the shit with friends, they now became something else. People started optimising. Optimising what? Everything. What they said, how they said it and when they said it. All in an effort to gain more friends. We still called them friends at that point. But the veil quickly fell away and the term followers eventually took the place of friends. And rightly so, because you can’t optimise for friendship. </p>
</blockquote>
<p>The fact that people managed to build careers out of being active on social platforms is one of the big tragedies of the modern web.</p>
<h3>Websites as a catalyst for personal relationships</h3>
<p>By <a href="https://holzer.online/articles/2024/02/29/index.html">Fabian Holzer</a></p>
<blockquote>
<p>On the dominating platforms of today, nobody will ever be a citizen, not even a customer. We're only good enough to be a user. But outside of the walled gardens, there are still ample opportunities. We can form relationships, participate in debate, cultivate a corner of and shape the digital medium. All these verbs - nota bene - have in common that they are active.</p>
</blockquote>
<p>That’s why I always encourage people to write publicly but to also email others and create connections. The open web requires effort but it will also reward you for doing so.</p>
<h3>The Downside of Digital Relationships</h3>
<p>By <a href="https://chavanniclass.wordpress.com/2024/02/28/digital-relationships/">Ratika Deshpande</a></p>
<blockquote>
<p>The internet may connect us to the whole world, but I think that the convenience is making us disconnect from each other in the offline world.</p>
</blockquote>
<p>Digital relationships can be a trap and it’s absolutely vital to have a good balance. Like almost everything in life, we need balance. And it’s important to always keep that in mind.</p>
<h3>Seven Year Itch</h3>
<p>By <a href="https://www.jeremycherfas.net/blog/seven-year-itch">Jeremy Cherfas</a></p>
<blockquote>
<p>In the end, that's the beauty of digital relationships. You can borrow someone's partner without harming their relationship.</p>
</blockquote>
<p>This was such a hilarious way to close a post. </p>
<h3>Crying Out</h3>
<p>By <a href="https://blogelogeluren.netlify.app/posts/crying-out/">Turpelurpeluren</a></p>
<blockquote>
<p>What I am slowly coming to realize is that there is a mismatch in pace between my conceptions of real life vs. internet. Everything online seems to be moving at incredible speeds</p>
</blockquote>
<p>That’s one of the reasons why spending more and more time cultivating my online corner. The web is just too vast and moves at such a stupid speed that you end up always feeling left behind.</p>
<h3>The Internet's Tower of Babel</h3>
<p>By <a href="https://niqwithq.com/posts/the-internets-tower-of-babel">Niq Bernadowitsch</a></p>
<blockquote>
<p>In the early days of the internet, these protocols were established. Email or the web itself were created upon open protocols for everyone to make use of. A shared language on the internet was born.</p>
</blockquote>
<p>It’s amazing that the fundamentals of the web are still there, still allowing us to run our websites and still allowing us to interact via email.</p>
<h3>Software Is Built Online</h3>
<p>By <a href="https://www.ciccarello.me/blog/2024/02/29/software-online/">Anthony Ciccarello</a></p>
<blockquote>
<p>What is wild to me, is how many of these projects are managed on a volunteer basis. While some people are fortunate to be paid to work on open source software, most projects are primarily one person spending their free evenings trying to understand the questions people submit and make the project better for everyone.</p>
</blockquote>
<p>It’s incredible how much of the web is the result of a relatively small number of people spending their free time working on projects for the simple fact that they care about this platform.</p>
<h3>Virtual Intimacy and Emotional Bonds</h3>
<p>By <a href="https://lifeofpablo.com/blog/indieweb-carnival-february-2024-digital-relationships">Pablo Morales</a></p>
<blockquote>
<p>Many of us desire a form of intimacy and emotional bond from those important to us. Oftentimes the only way to get these is through a virtual medium. We want to foster deep emotional connections with the absence of physical proximity.</p>
</blockquote>
<p>The ability to connect through distance is one of technology's best qualities. And it was painfully obvious during the COVID days.</p>
<h3>Rebuilding Digital Relationships</h3>
<p>By <a href="https://alabut.com/writing/digitalrelationships/">Al Abut</a></p>
<blockquote>
<p>Now, it’s like a good chunk of the world took an intensive course on online communication in the last 4+ years and decided that well what do you know? Those geeks were on to something.</p>
</blockquote>
<p>Funny how things change. It’s also interesting how remote work can open the doors to a lot more possibilities in life. You no longer have to live in the same place—or close—where your workplace is.</p>
<h3>Digital Relationships</h3>
<p>By <a href="https://microbyte.neocities.org/posts/digitalrelationships">Microbyte</a></p>
<blockquote>
<p>on large social media, everything is drowned out, compacted, an endless stream, which, even without technical limits causes more compactness, which causes more abstractions. Meanwhile, forums tend to lend themselves to more long-form communications. And to compound on that previous point, on social media a true conversation is nearly impossible, always getting drowned out.</p>
</blockquote>
<p>That’s why I left social media long ago. I found it more performative than social.</p>
<h3>The Neon God</h3>
<p>By <a href="https://foreverliketh.is/blog/the-neon-god/">Foreverliketh.is</a></p>
<blockquote>
<p>We converse as phantoms, the diluted remnants of intimacy’s essence, and yet still, somehow, retain the gall to call that a “relationship”.</p>
</blockquote>
<p>This was such a wild read but it reminded me the time I decided to watch <a href="https://en.wikipedia.org/wiki/Serial_Experiments_Lain">Serial Experiments Lain</a> back in the early 2000s. I Should probably rewatch that anime.</p>
<h3>digital life</h3>
<p>By <a href="https://jessdriscoll.com/digital-life/">Jess Driscoll</a></p>
<blockquote>
<p>I wish you were closer. But I’m glad that we’re here.</p>
</blockquote>
<p>This is how I feel about the majority of my online interactions. Sometimes I wish I was closer to those people but at the same time I’m glad I have the opportunity to interact with them,</p>
<h3>Email Is a Good Fence</h3>
<p>By <a href="https://www.justuseemail.com/email-is-a-good-fence/">Lawrence</a></p>
<blockquote>
<p>The fence of email offers the perfect hedge between peace and a nearly frictionless, noisy, text messaging environment.</p>
</blockquote>
<p>This was submitted by Nutchanon Wetchasit and the post was not written for the Carnival but I loved the fence metaphor and that’s why I decided to include it. And you also might not be surprised to know that I agree with the content of the post. Because you all know that I love emails.</p>
<hr>
<p>10.34 am: we got to the end! Thank you all again for taking the time to write and submit content for the Carnival. Running it was a blast and I loved reading all your entries. I look forward to reading your entries for this <a href="https://blog.basementcommunity.com/accessibility-in-the-personal-web/">month’s carnival</a>!</p>                <hr>
                <p>Thank you for keeping RSS alive. You're awesome.</p>
                <p><a href="mailto:hello@manuelmoreale.com">Email me</a> ::
                <a href="https://manuelmoreale.com/guestbook">Sign my guestbook</a> :: 
                <a href="https://ko-fi.com/manuelmoreale">Support for 1$/month</a> :: 
                <a href="https://manuelmoreale.com/supporters">See my awesome supporters</a> :: 
                <a href="https://buttondown.email/peopleandblogs">Subscribe to People and Blogs</a></p>
            ]]></description>
      <pubDate>Sun, 03 Mar 2024 09:45:00 +0000</pubDate>
      <link>https://manuelmoreale.com/@/page/5EGWc9ceBwynto77</link>
      <dc:creator>Manuel Moreale — Everything Feed</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4383935415</guid>
    </item>
    <item>
      <title><![CDATA[The Apple Vision Pro’s Missing Apps]]></title>
      <description><![CDATA[<p><em>This Article is available as a video essay on <a href="https://www.youtube.com/watch?v=SZgjoJK3YcI">YouTube</a></em></p>
<hr>
<p>Om Malik has been observing, writing about, and investing in technology for going on three decades; that’s one reason I find his unabashed enthusiasm for the Apple Vision Pro to be notable. Malik wrote <a href="https://om.co/2024/01/08/vision-pro-is-coming/">on his blog</a>:</p>
<blockquote><p>
  Apple touts Vision Pro as a new canvas for productivity and a new way to play games. Maybe, maybe not. Just as the Apple Watch is primarily a health-related device that also does other things, including phone calls, text messages, and making payments. Similarly, the primary function for Vision Pro is ‘media’ — especially how we consume it on the go. Give it a few weeks, and more people will come to the same conclusion.</p>
<p>  In 2019,&nbsp;<a href="https://om.co/2019/01/13/so-what-can-apple-do-next/">I wrote an essay</a>&nbsp;about the future of television (screen):</p>
<blockquote><p>
    With that caveat, I think both, the big (TV) and biggest (movie theater) screens are going to go the way of the DVD. We could replace those with a singular, more personal screen — that will sit on our face. Yes, virtual reality headsets are essentially the television and theaters of the future. They aren’t good enough just yet — but can get better in the years to come as technologies to make the headsets improve.
  </p></blockquote>
<p>  Apple has made that headset. Apple Vision Pro has ultra-high-resolution displays that deliver more pixels than a 4K TV for each eye. This gives you a screen that feels 100 feet wide with support for HDR content. The audio experience is just spectacular. In time, Apple’s marketing machine will push the simple message — for $3,500, you get a full-blown replacement for a reference-quality home theater, which would typically cost ten times as much and require you to live in a McMansion.
</p></blockquote>
<p>Malik expounded on this point last week in a <a href="https://stratechery.com/2024/an-interview-with-om-malik-about-techs-history-and-future/">Stratechery Interview</a>:</p>
<blockquote><p>
  But the thing is you actually have to be mobile-native to actually appreciate something like this. So if you’ve grown up watching a 75-inch screen television, you probably would not really appreciate it as much. But if you are like me who’s been watching iPad for ten-plus years as my main video consumption device, this is the obvious next step. If you live in Asia, like you live in Taiwan, people don’t have big homes, they don’t have 85-inch screen televisions. Plus, you have six, seven, eight people living in the same house, they don’t get screen time to watch things so they watch everything on their phone. I think you see that behavior and you see this is going to be the iPod.
</p></blockquote>
<p>The iPod was a truly personal device, which was not only what people wanted, but also a great business: why sell one stereo to a household when you can sell an iPod to every individual? You can imagine Apple feeling the same about the long-term trajectory of the Vision Pro: why sell a TV that sits on the wall of the living room when you can sell every individual a TV of their own? You can be sure that Apple isn’t just marketing this device to people who live alone: the EyeSight feature only makes sense if you are wearing the Vision Pro around other people.</p>
<p>I already commented about the dystopian nature of this vision <a href="https://stratechery.com/2023/apple-vision/">when the Vision Pro was announced</a>; for now I’m interested in the business aspects of this vision, and the iPod is a good place to start.</p>
<h3>The iPod and the Music Labels</h3>
<p>The iPod story actually starts with the Mac, and Apple’s vision of a “Digital Hub.” The company released iMovie in 1999, iDVD and iTunes two years later, and iPhoto a year after that. The release order is interesting: Apple thought that home movies would be the big new market for PCs, but the emergence of Napster in 1999 made it clear that music was a much more interesting market (digital cameras, meanwhile, were only just becoming a thing). That laid the groundwork for the iPod, which was released in the fall of 2001. I documented this history in <a href="https://stratechery.com/2017/apple-and-the-oak-tree/">Apple and the Oak Tree</a> and noted:</p>
<blockquote><p>
  One of my favorite artifacts from the brief period between the introduction of iTunes and the release of the iPod was Apple’s “Rip. Mix. Burn.” advertising campaign.</p>
<p>  <a href="https://stratechery.com/2017/apple-and-the-oak-tree/"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2017/08/rip-mix-burn.jpg?resize=600%2C283&amp;ssl=1" alt="Apple's Rip. Mix. Burn. iMac campaign" width="600" height="283" class="aligncenter size-full wp-image-2687" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2017/08/rip-mix-burn.jpg?w=600&amp;ssl=1 600w, https://i0.wp.com/stratechery.com/wp-content/uploads/2017/08/rip-mix-burn.jpg?resize=300%2C142&amp;ssl=1 300w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1"></a></p>
<p>  What is particularly amazing (that is, beyond the cringe-inducing television ad) is that Apple was arguably encouraging illegal behavior: it was likely legal to rip and probably legal to burn, presuming the CD that you made was for your own personal use. It certainly was not legal to share.
</p></blockquote>
<p>The iPod was predicated on the reality of file-sharing as well:</p>
<blockquote><p>
  And yet, as much as “Rip. Mix. Burn.” may have walked the line of legality, the reality of iTunes — and the iPod that followed — was well on the other side of that line. Apple knew better than anyone that the iPod’s tagline — 1,000 songs in your pocket — was predicated on users having 1,000 digital songs, not via the laborious procedure of ripping legally purchased CDs, but rather via Napster and its progeny. By the spring of 2003 Apple had introduced the iTunes Music Store, a seamless and legal way to download DRM-protected digital music, but particularly in those early days the value of the iTunes Music Store to Apple was not so much that it was a selling point to consumers, but rather a means by which Apple could play dumb about how it was that its burgeoning number of iPod customers came to fill up their music libraries.
</p></blockquote>
<p>That description of the iTunes Music Store is perhaps a touch cynical, but it is impossible to ignore the importance of music piracy in Apple’s original deal with the record labels. Apple was able to make a deal in part because it was offering the carrot of increased digital revenue, but it was certainly aided by the stick of piracy obliterating CD sales.</p>
<p><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-4.png?resize=640%2C390&amp;ssl=1" alt="The carrot and stick of the iTunes Music Store" width="640" height="390" class="aligncenter size-full wp-image-12204" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-4.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-4.png?resize=300%2C183&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-4.png?resize=1024%2C623&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-4.png?resize=768%2C467&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-4.png?resize=1035%2C630&amp;ssl=1 1035w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></p>
<p>Over the next few years the record labels would become increasingly resentful of Apple’s position in the market, but they certainly weren’t going anywhere; by 2008 iTunes was their biggest source of revenue, and it’s all but impossible for an ongoing business to give up revenue just because they think the arrangement under which they make that revenue is unfair.</p>
<h3>The App Store</h3>
<p>The iTunes Music Store does still exist, although its revenue contribution to the labels has long been eclipsed by streaming. It’s more important contribution to modern computing is that it provided the foundation for the App Store.</p>
<p>The App Store didn’t exist when Apple launched its iPhone in 2007; Apple provided a suite of apps that made the iPhone more capable than anything else on the market, and assumed the web would take care of the rest. Developers, though, wanted to build apps; in September 2007 <a href="https://github.com/chockenberry/mobile-twitterrific">Iconfactory released Twitterific</a>, a Twitter client that ran on jail-broken iPhone devices, and more apps followed. The following year Apple gave its eager developers what they wanted: an officially supported SDK and an App Store to distribute their apps, for free or for pay; in the case of the latter Apple would, just as it did with songs, keep 30% of the purchase price (and cover processing fees).</p>
<p>This period of the App Store didn’t require any sticks: the capability of the iPhone was carrot enough, and, over the next few years, as the iPhone exploded in popularity, the market opportunity afforded by the App Store proved even more attractive. A better analogy to what Apple provided was gas for the fire, particularly with the release of in-app purchase capabilities in 2009. Now developers could offer free versions of their apps and convert consumers down the line, or sell consumables, a very profitable approach for games.</p>
<p>That, though, is where App Store innovation stopped, at least for a while. By 2013, when I started Stratechery, I was wondering <a href="https://stratechery.com/2013/why-doesnt-apple-enable-sustainable-businesses-on-the-app-store/">Why Doesn’t Apple Enable Sustainable Businesses on the App Store?</a>, by which I meant trials, paid updates, and built-in subscription support. The latter (along with associated trials) finally showed up in 2016, but at that point developer frustration with the App Store had been growing right alongside Apple’s services revenues: productivity apps shared my concerns about sustainability, while “reader” apps like streaming services were frustrated that they couldn’t sign up new users in the app, or even point them to the web; game developers, meanwhile, hated giving away 30% of their revenue.</p>
<p>It’s fair to note that an unacknowledged driver of much of this frustration was surely the fact that the app market matured from the heady days of the early App Store. No one is particularly worried about restrictions or missing capabilities or revenue shares when there is a landgrab for new users’ homescreens; by the end of the decade, though, mature businesses were locked in a zero sum game for user attention and dollars. In that environment the money Apple was taking, despite the fact the lack of flexibility entailed in terms of business model, was much more of an irritant; still, it’s all but impossible for an ongoing business to give up revenue just because they think the arrangement under which they make that revenue is unfair.</p>
<h3>The Epic Case</h3>
<p>I keep saying “all but impossible” because Epic is the exception that proved the rule: in <a href="https://stratechery.com/2020/apple-epic-and-the-app-store/">August 2020</a> Epic updated Fortnite to include an alternative in-app purchase flow, was subsequently kicked out of the App Store by Apple, and proceeded to file an antitrust lawsuit against the iPhone maker. I documented this saga from beginning to end, including:</p>
<ul>
<li><a href="https://stratechery.com/2020/apple-epic-and-the-app-store/">Apple, Epic, and the App Store</a>, which provided a history of the App Store and Epic’s lawsuit at the time it was filed.</li>
<li><a href="https://stratechery.com/2021/app-store-arguments/">App Store Arguments</a>, which I wrote at the conclusion of the trial, explained why I expected Epic to lose, even as I hoped that Apple would voluntarily make pro-developer changes in the App Store.</li>
<li><a href="https://stratechery.com/2021/the-apple-v-epic-decision/">The Apple v. Epic Decision</a>, which reviewed the judge’s decision that favored Apple in 10 of the 11 counts.</li>
</ul>
<p>The 11th count that Epic prevailed on required Apple to allow developers to steer users to a website to make a purchase; while its implementation was delayed while both parties <a href="https://stratechery.com/2023/apple-epic-and-the-court-of-appeals-apples-federal-victory-epics-california-win/">filed appeals</a>, the lawsuit reached the end of the road last week when the Supreme Court denied certiorari. That meant that Apple had to allow steering, and the company did so in the most restrictive way possible: developers had to use an Apple-granted entitlement to put a link on one screen of their app, and pay Apple 27% of any conversions that happened on the developer’s website within 7 days of clicking said link.</p>
<p>Many developers were outraged, but the company’s tactics were <a href="https://stratechery.com/2024/the-supreme-court-declines-to-hear-apple-epic-apples-predictable-response/">exactly what I expected</a>:</p>
<blockquote><p>
  To that end, I wouldn’t be surprised if Apple does the same in this case: developers who steer users to their website may be required to provide auditable conversion numbers and give Apple 27%, and oh-by-the-way, they still have to include an in-app purchase flow (that costs 30% and includes payment processor fees and converts much better). In other words, nothing changes — unless it goes in the other direction: if Apple is going to go to the trouble to build out an auditing arm, then it could very well go after all of the revenue for everyone with an app in the App Store, whether they acquire a user through in-app purchase or not. The reason not to do so before was some combination of goodwill, questionable legality, and most importantly the sheer hassle of it all. At this point, though, it’s not clear if any of those will be deterrents going forward…</p>
<p>  Apple has shown, again and again and again, that it is only going to give up App Store revenue kicking-and-screaming; indeed, the company has actually gone the other way, particularly with its crackdown over the last few years on apps that only sold subscriptions on the web (and didn’t include an in-app purchase as well). This is who Apple is, at least when it comes to the App Store.
</p></blockquote>
<p>The crackdown I’m referring to was pure stick: <a href="https://stratechery.com/2020/xscale-and-arm-in-the-cloud-hey-versus-apple-apples-iap-campaign/">Apple refused to approve upgrades to SaaS apps</a> that had been in the App Store for years unless they added in-app purchase; developers <a href="https://twitter.com/benthompson/status/1273079296618201093">complained</a> but this time the reality of it being impossible for an ongoing business to give up revenue meant they didn’t have any choice but to do extra work so that Apple could have a cut.</p>
<h3>Vision Pro’s Missing Apps</h3>
<p>The Apple Vision Pro started pre-sales last week, but the biggest surprise came via two stories from Bloomberg. <a href="https://www.bloomberg.com/news/articles/2024-01-17/watching-netflix-on-apple-vision-pro-you-ll-have-to-use-the-web">First</a>:</p>
<blockquote><p>
  Netflix Inc. isn’t planning to launch an app for Apple Inc.’s upcoming Vision Pro headset, marking a high-profile snub of the new technology by the world’s biggest video subscription service. Rather than designing a Vision Pro app — or even just supporting its existing iPad app on the platform — Netflix is essentially taking a pass. The company, which competes with Apple in streaming, said in a statement that users interested in watching its content on the device can do so from the web.
</p></blockquote>
<p><a href="https://www.bloomberg.com/news/articles/2024-01-18/youtube-and-spotify-join-netflix-in-not-launching-apple-vision-pro-apps">Second</a>:</p>
<blockquote><p>
  Google’s YouTube and Spotify Technology SA, the world’s most popular video and music services, are joining Netflix Inc. in steering clear of Apple Inc.’s upcoming mixed-reality headset. YouTube said in a statement Thursday that it isn’t planning to launch a new app for the Apple Vision Pro, nor will it allow its longstanding iPad application to work on the device — at least, for now. YouTube, like Netflix, is recommending that customers use a web browser if they want to see its content: “YouTube users will be able to use YouTube in Safari on the Vision Pro at launch.” Spotify also isn’t currently planning a new app for visionOS — the Vision Pro’s operating system — and doesn’t expect to enable its iPad app to run on the device when it launches, according to a person familiar with matter. But the music service will still likely work from a web browser.
</p></blockquote>
<p>These are a big loss: Malik made the case about why the Vision Pro is the best TV ever, but it will launch without native access to the largest premium streaming service and the largest repository of online video period. I myself am very excited about the productivity use cases of the Vision Pro, which for me includes listening to music while I work; no Spotify makes that harder.</p>
<p>There are, to be sure, valid business reasons for all three services to have not built a native app; <a href="https://medium.com/@mingchikuo/apple-vision-pro-shipment-growth-may-be-below-market-expectations-apple-vision-pro%E5%87%BA%E8%B2%A8%E6%88%90%E9%95%B7%E5%8F%AF%E8%83%BD%E4%BD%8E%E6%96%BC%E5%B8%82%E5%A0%B4%E9%A0%90%E6%9C%9F-7a5eeb613ab0">the latest prediction from Apple supply chain analyst Ming-Chi Kuo</a> put first-year sales at around 500,000 units, which as a tiny percentage of these services’ user bases may not be worth the investment. Apple’s solution, though, is to simply use a pre-existing iPad app; that all three companies declined to do even that is notable. Nebula CEO Dave Wiskus observed <a href="https://twitter.com/dwiskus/status/1748354772531282213">on X</a>:</p>
<div align="center">
<blockquote class="twitter-tweet" data-dnt="true">
<p lang="en" dir="ltr">2003: Steve Jobs brings the big five record labels together in a landmark deal to sell their songs digitally for $0.99 each on the iTunes Store.</p>
<p>2024: Apple can’t convince streaming video companies to check the “allow iPad app” box.</p>
<p>— Dave Wiskus (@dwiskus) <a href="https://twitter.com/dwiskus/status/1748354772531282213?ref_src=twsrc%5Etfw">January 19, 2024</a></p></blockquote>
<p> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p></div>
<p>The Apple Vision Pro app shelves will not be bare in terms of video content; the company says in a <a href="https://www.apple.com/newsroom/2024/01/apple-previews-new-entertainment-experiences-launching-with-apple-vision-pro/">press release</a>:</p>
<blockquote><p>
  Users will also be able to download and stream TV shows, films, sports, and more with apps from top streaming services, including Disney+, ESPN, NBA, MLB, PGA Tour, Max, Discovery+, Amazon Prime Video, Paramount+, Peacock, Pluto TV, Tubi, Fubo, Crunchyroll, Red Bull TV, IMAX, TikTok, and the 2023 App Store Award-winning MUBI. Users can also watch popular online and streaming video using Safari and other browsers.
</p></blockquote>
<p>It’s not clear how many of these apps are truly native versus iPad apps with the Vision Pro check box, but the absence of Netflix and YouTube do stand out, and their absence is, without question, a total failure for Apple’s developer relations team.</p>
<p>The blame, though, likely goes to the App Store: Apple has been making Netflix in particular jump through hoops for years when it comes to precisely what language the service can or cannot present to customers who can’t sign up in the app, and also can’t be directed to the web. The current version’s language is fairly anondyne (although it has been <a href="https://149384716.v2.pressablecdn.com/wp-content/uploads/2024/01/vision-pro-apps-3.png">spicier in the past</a>):</p>
<p><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-2.png?resize=640%2C447&amp;ssl=1" alt="Netflix's language in its iOS app for new users" width="640" height="447" class="aligncenter size-full wp-image-12202" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-2.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-2.png?resize=300%2C210&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-2.png?resize=1024%2C715&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-2.png?resize=768%2C536&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2024/01/vision-pro-apps-2.png?resize=902%2C630&amp;ssl=1 902w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></p>
<p>Apple may be unhappy that Netflix viewers have to go to the Netflix website to watch the service on the Vision Pro (and thus can’t download shows for watching offline, like on a plane); Netflix might well point out that that going to the web is exactly what Apple makes Netflix customers do to sign up for the service.<sup id="rf1-12205"><a href="https://stratechery.com/2024/the-apple-vision-pros-missing-apps/#fn1-12205" title="There is an exception for Netflix specifically: if you download a Netflix game <a href=&quot;https://stratechery.com/2023/netflix-earnings-netflixs-licensing-pitch-netflix-gaming-revisited/&quot;>you can sign up with in-app purchase</a>, which the company would almost certainly prefer not to offer but, thanks to Apple’s aforementioned crack-down on SaaS app sign-ups, requires." rel="footnote">1</a></sup></p>
<h3>Developers On Strike</h3>
<p>It’s certainly possible that I’m reading too much into these absences: maybe these three companies simply didn’t get enough Visions Pro to build a native app, and felt uncomfortable releasing their iPad versions without knowing how useful they would be. YouTube in particular, given that much of its usage is free, likely has less of a beef with Apple than Netflix or Spotify do, and it’s easy enough to believe that Google just isn’t a company that moves that fast these days.</p>
<p>Still, there’s no question that the biggest beneficiary of these companies being on the Vision Pro — and, correspondingly, the biggest loser from their absence — is Apple. The company is launching an audacious and ambitious new product, and there are major partners in its ecosystem that aren’t interested in helping.</p>
<p>This is the consequence of fashioning App Store policies as a stick: until there is a carrot of a massive user base, it’s hard to see why developers of any size would be particularly motivated to build experiences for the Vision Pro, which will make it that much more difficult to attract said massive user base. Apple was happy to remind users that, when it came to the iPhone, <a href="https://www.youtube.com/watch?v=szrsfeyLzyg">there’s an app for that</a>; in the case of the Vision Pro, there may not be: this is the one and only chance for developers to go on strike without suffering an Epic-like fate, and some of them are taking it.</p>
<p>For now, Apple appears to be so supply-constrained that it doesn’t matter; the company will likely sell as many units as it can make. I would guess that Apple’s strategy with regards to developer hold-outs will be to wait them out, trusting that it can sell enough devices that developers can’t go on strike forever. I certainly think this approach is more likely than offering any sort of concessions to developers, on any of its platforms.</p>
<h3>A Disney Double-Down?</h3>
<p>The other option may be an even greater investment in content by Apple itself. This could take the form of more Apple TV+ shows and sports deals like MLS, but the most interesting possibility is deepening its partnership with Disney. The entertainment giant is looking for a tech partner to invest in its ESPN streaming service, and the Vision Pro makes Apple a compelling candidate. From <a href="https://stratechery.com/2023/bob-iger-on-cnbc-the-end-of-linear-tv-espn-and-strategic-partnerships-and-apple/">an Update last summer</a>:</p>
<blockquote><p>
  What does seem notable was Iger’s call out of Apple’s headset; I can attest that the sports experience on the Vision Pro is extraordinary, and remember that Iger appeared on stage at the event to say that Disney would be working with Apple to bring content to the device; here is the sports portion of the video he played at WWDC:</p>
<div id="v-bDJ8jLGS-1" class="video-player"><video id="v-bDJ8jLGS-1-video" width="640" height="360" poster="https://videos.files.wordpress.com/bDJ8jLGS/wwdc-espn_mp4_hd_1080p.original.jpg" controls="true" preload="metadata" dir="ltr" lang="en"><div><img loading="lazy" decoding="async" alt="" src="https://videos.files.wordpress.com/bDJ8jLGS/wwdc-espn_mp4_hd_1080p.original.jpg?resize=640%2C360" width="640" height="360" data-recalc-dims="1"></div></video></div>
<p>  I have to say, one almost gets the impression that the Apple Vision sports-watching experience might have single-handedly convinced Iger to keep ESPN! What does seem likely is that Apple is probably Iger’s preferred partner, and there certainly is upside for Apple — probably more upside than any other tech company — primarily because of the Vision Pro. The single most important factor in the Vision Pro’s success will likely be how quickly entertainment is built for it, and as Cook noted while introducing Iger, “The Walt Disney Company is the world’s leader in entertainment.”
</p></blockquote>
<p>I heard from a lot of people after that Update who were very skeptical that any sort of deal would be struck, in large part because Apple is so difficult to partner with (the company seems continually surprised that not everyone negotiates like the record labels under siege from Napster). And, it should be noted, Disney is showing up on Day One for the Vision Pro launch; why partner if the content is already there?</p>
<p>And yet, Apple’s most potent response to ecosystem intransigence may be to double down: Disney with a war chest (via an Apple partnership) would be a far more formidable competitor to Netflix, and ESPN with a VR camera at every game it televises would, in my estimation, make the Vision Pro an essential purchase for every sports fan. I once argued that <a href="https://stratechery.com/2016/apple-should-buy-netflix/">Apple Should Buy Netflix</a> the last time the two companies were at odds, but the weakness in that argument is that simply having money another company needs isn’t a compelling enough case; when it comes to Disney the payoff is the Apple Vision Pro having that much more great content that much sooner, not only making the headset a success but also making it impossible for other streaming businesses to not serve their customers just because they think the arrangement under which they operate is unfair.</p>
<hr>
<p><iframe loading="lazy" class="youtube-video" iframe="" width="560" height="315" src="https://www.youtube-nocookie.com/embed/SZgjoJK3YcI?si=XVU-w07Ak9rngRWB&amp;controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe></p>
<hr class="footnotes"><ol class="footnotes" style="list-style-type:decimal"><li id="fn1-12205"><p>There is an exception for Netflix specifically: if you download a Netflix game <a href="https://stratechery.com/2023/netflix-earnings-netflixs-licensing-pitch-netflix-gaming-revisited/">you can sign up with in-app purchase</a>, which the company would almost certainly prefer not to offer but, thanks to Apple’s aforementioned crack-down on SaaS app sign-ups, requires.&nbsp;<a href="https://stratechery.com/2024/the-apple-vision-pros-missing-apps/#rf1-12205" class="backlink" title="Return to footnote 1.">↩</a></p></li></ol>]]></description>
      <pubDate>Mon, 22 Jan 2024 15:59:38 +0000</pubDate>
      <link>https://stratechery.com/2024/the-apple-vision-pros-missing-apps/</link>
      <dc:creator>Stratechery by Ben Thompson</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4343868829</guid>
    </item>
    <item>
      <title><![CDATA[The Quiet Death of Ello’s Big Dreams]]></title>
      <description><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="640" src="https://waxy.org/wp-content/uploads/2024/01/image-10-1024x640.png" alt="" class="wp-image-48375" srcset="https://waxy.org/wp-content/uploads/2024/01/image-10-1024x640.png 1024w, https://waxy.org/wp-content/uploads/2024/01/image-10-300x188.png 300w, https://waxy.org/wp-content/uploads/2024/01/image-10-768x480.png 768w, https://waxy.org/wp-content/uploads/2024/01/image-10-800x500.png 800w, https://waxy.org/wp-content/uploads/2024/01/image-10.png 1280w" sizes="(max-width: 1024px) 100vw, 1024px"></figure>



<p><a href="https://en.wikipedia.org/wiki/Ello_(social_network)">Ello</a> launched on August 7, 2014 with big dreams and big promises, a new social network defined by what it <em>wouldn’t</em> do.</p>



<p>They laid it all out in a <a href="https://web.archive.org/web/20140625082554/https://ello.co/manifesto">manifesto</a>, right on their homepage:</p>



<blockquote class="wp-block-quote">
<p>Your social network is owned by advertisers.</p>



<p>Every post you share, every friend you make and every link you follow is tracked, recorded and converted into data. Advertisers buy your data so they can show you more ads. You are the product that’s bought and sold.</p>



<p>We believe there is a better way. We believe in audacity. We believe in beauty, simplicity and transparency. We believe that the people who make things and the people who use them should be in partnership.</p>



<p>We believe a social network can be a tool for empowerment. Not a tool to deceive, coerce and manipulate — but a place to connect, create and celebrate life.</p>



<p>You are not a product.</p>
</blockquote>



<figure class="wp-block-image size-full"><img decoding="async" width="908" height="498" src="https://waxy.org/wp-content/uploads/2024/01/image-11.png" alt="Screenshot of Ello's invite-only homepage with the manifesto, and two buttons: I Agree and I Disagree." class="wp-image-48376" srcset="https://waxy.org/wp-content/uploads/2024/01/image-11.png 908w, https://waxy.org/wp-content/uploads/2024/01/image-11-300x165.png 300w, https://waxy.org/wp-content/uploads/2024/01/image-11-768x421.png 768w, https://waxy.org/wp-content/uploads/2024/01/image-11-800x439.png 800w" sizes="(max-width: 908px) 100vw, 908px"></figure>



<p>From its launch, Ello defined itself as an alternative to ad-driven social networks like Twitter and Facebook. “You are not a product.” (The “I Disagree” button linked to Facebook’s privacy page.)</p>



<p>I’d link to that manifesto on Ello’s site, but I can’t, because Ello is dead.</p>



<p>In June 2023, the servers just started returning errors, making nine years of member contributions inaccessible, apparently forever — every post, artwork, song, portfolio, and the community built there was gone in an instant.</p>



<p>How did this happen? What happened between the idealistic manifesto above and the sudden shutdown?</p>



<p>It’s a story so old and familiar, I predicted it shortly after Ello launched.</p>



<h2 class="wp-block-heading">Ello’s Funding and Launch</h2>



<p>Ello, for those who don’t remember, <a href="https://web.archive.org/web/20140921072943/https://ello.co/wtf/post/about-ello">described itself</a> as a “simple, beautiful, and ad-free social network created by a small group of artists and designers.” It launched with a distinctly minimalist monochrome interface and an even more <a href="https://www.youtube.com/watch?v=QfPNdSY7vUg">minimalist</a> set of features.</p>



<p>Like Diaspora and App.net before it, Ello partly defined itself by its opposition to the exploitive business models and content moderation practices of major social networks, so quickly found itself deluged by people fleeing Facebook and dubbed by media outlets as an “<a href="https://www.engadget.com/2014-09-26-ello.html">anti-Facebook</a>” or “<a href="https://www.wired.com/2014/10/ello-pbc/">Facebook killer</a>,” something the Ello team never intended it to be. It was an uncomfortable balancing act, but they <a href="https://www.pcmag.com/news/ello-embraces-facebook-users-irked-by-real-name-demands">leaned</a> into the publicity, at least for a while.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="659" src="https://waxy.org/wp-content/uploads/2024/01/image-12-1024x659.png" alt="" class="wp-image-48381" srcset="https://waxy.org/wp-content/uploads/2024/01/image-12-1024x659.png 1024w, https://waxy.org/wp-content/uploads/2024/01/image-12-300x193.png 300w, https://waxy.org/wp-content/uploads/2024/01/image-12-768x495.png 768w, https://waxy.org/wp-content/uploads/2024/01/image-12-800x515.png 800w, https://waxy.org/wp-content/uploads/2024/01/image-12.png 1267w" sizes="(max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption">Ello’s invite-only beta</figcaption></figure>



<p>In September 2014, one month after it opened its invite-only beta, I wrote <a href="https://web.archive.org/web/20140926023248/https://ello.co/waxpancake/post/oy73kFfDdhOPh8Jv9z9pFA">a post about Ello on Ello</a>. </p>



<p>Digging through <a href="https://www.sec.gov/Archives/edgar/data/1598000/000159800014000001/xslFormDX01/primary_doc.xml">SEC filings</a>, I discovered that the newly-launched indie social network had taken nearly half a million in seed funding from a venture capital firm, which seemed counter to its indie manifesto. Since nobody else mentioned the funding, including Ello themselves, I wrote about it.</p>



<p>Here’s what I wrote:</p>



<blockquote class="wp-block-quote">
<p>Building something like Ello costs money. They have a team of at least seven people, and have worked on it for months. That doesn’t come cheap.</p>



<p>The <a href="https://web.archive.org/web/20140921072943/https://ello.co/wtf/post/about">About</a> section makes it seem like Ello was built independently, a group of artists making something for themselves, presumably funded by volunteer effort and maybe a seed investment from Ello president and CEO <a href="https://web.archive.org/web/20140921074259/https://paulbudnitz.com/about" target="_blank" rel="noreferrer noopener">Paul Budnitz</a>, who also founded Kidrobot and Budnitz Bicycles.</p>



<p>But a little digging shows a much more predictable source: they took a <a href="http://www.sec.gov/Archives/edgar/data/1598000/000159800014000001/xslFormDX01/primary_doc.xml" target="_blank" rel="noreferrer noopener">$435,000 round</a> of seed funding in January from FreshTracks Capital, a Vermont-based VC firm that <a href="https://s3.amazonaws.com/usm-studio/freshtracks/documents/the_freshtracks_flurry_march_2014.pdf" target="_blank" rel="noreferrer noopener">announced the deal</a> in March.</p>



<p>Why is this a problem?</p>



<p>The Ello founders are positioning it as an alternative to other social networks — they won’t sell your data or show you ads. “You are not the product.”</p>



<p>If they were independently-funded and run as some sort of co-op, bootstrapped until profitable, maybe that’s plausible. Hard, but possible.</p>



<p>But VCs don’t give money out of goodwill, and taking VC funding — even seed funding — creates outside pressures that shape the inevitable direction of a company.</p>



<p>Before they opened their doors, Ello became hooked on an unsustainable funding model — taking cash from VCs — and will almost certainly take a much larger Series A round once that $435,000 dries up. (Which, at their current burn rate, should be in a couple months.)</p>



<p>And they’ll have no trouble getting it. There’s a lot of money out there right now, and it will be extremely tempting to take it, especially if refusing it would mean closure or layoffs.</p>



<p>The problem, of course, is that VCs aren’t like Kickstarter backers, or even like angel investors. Kickstarter or Patreon backers just want the thing being made. Angel investors may have other reasons to invest beyond equity: fame, insider access, or maybe just the joy of helping something exist.</p>



<p>VCs may invest in things they think are interesting or want to exist, but they primarily invest money in startups to get a return on their investment, on behalf of their limited partners. That return usually takes the form of an exit: an acquisition or an IPO.</p>



<p>Unless they have a <strong>very</strong> unique relationship with their investors, Ello will inevitably be pushed towards profitability and an exit, even if it compromises their current values. Sometimes, this push comes subtly in the form of advice and questions in emails, phone calls, and chats over coffee. Sometimes, as more direct pressure from the board. (FreshTracks’ Managing Director <a href="https://web.archive.org/web/20140929184723/https://www.freshtrackscap.com/lee-e-bouyea/" target="_blank" rel="noreferrer noopener">sits</a> on their board.) Or, if things go bad, by replacing the founders.</p>



<p>The Ello team knows that how a startup is funded shapes how it behaves. They spend a good chunk of their <a href="https://web.archive.org/web/20140921072943/https://ello.co/wtf/post/about">About</a> pages talking about how they’re not going to make money (not ads or selling your data), and a little bit about how they hope to (paid premium features). I hope they’re right — it’d be great to have more startups that aren’t reliant on ads.</p>



<p>But they completely fail to disclose how Ello is being funded <strong>now</strong>, which matters just as much, if not more, as any future revenue plans.</p>



<p>I love seeing people build new stuff. More people trying to build crazy experimental communities on the Internet is a very good thing. And nothing’s more audacious than trying to build a new social network.</p>



<p>Social networks become the glue that connect people together — the foundation for friendships, relationships, and new works of creative expression.</p>



<p>Building a social network is like opening the doors to a huge party and inviting everyone in. Without a way to get your stuff out, shutting down a social network is like locking the door and burning the place down.</p>



<p>At the moment, Ello is a free, closed-source social network, with no export tools or an API, fueled by venture capital and a loose plan for paid premium features. I think it’s fair to be skeptical.</p>



<p>Like everyone else here, I hope Ello can stick to their principles, resist outside pressure, fight market forces, and find a unique and sustainable niche.</p>



<p>Let’s hope their investors feel the same way.</p>
</blockquote>



<h2 class="wp-block-heading">The Founders Respond</h2>



<p>That post quickly blew up on Ello, and then went far beyond it, with coverage in articles from <a href="https://www.theverge.com/2014/9/30/6874727/ello-is-the-doomed-utopia-we-cant-stop-building">The Verge</a>, <a href="https://www.theguardian.com/media/2014/sep/26/ello-anti-facebook-privacy-lgbt-social-neetwork">The Guardian</a>, <a href="https://www.vice.com/en/article/vbn8m4/what-the-hell-is-ello">VICE</a>, <a href="https://www.theatlantic.com/technology/archive/2014/09/ello-says-youre-not-a-product-but-you-are/380809/">The Atlantic</a>, and <a href="https://www.businessinsider.com/ello-needs-to-stick-to-its-principles-2014-9">Business Insider</a>, among others.</p>



<p>Ello’s CEO, co-founders, and investors dismissed the concerns I raised, starting with co-founder and CEO Paul Budnitz, who <a href="https://web.archive.org/web/20140927073322/http://betabeat.com/2014/09/ello-founder-says-vc-funding-is-no-big-secret-thats-silly/">told Betabeat</a> it was “silly.”</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="680" height="555" src="https://waxy.org/wp-content/uploads/2024/01/image-6.png" alt="Screenshot of Betabeat article: &quot;Ello Founder Says VC Funding Is No Big Secret: ‘That’s Silly’&quot; &quot;There's no pressure for us to do anything we don't want to do,&quot; Ello founder Paul Budnitz said." class="wp-image-48349" srcset="https://waxy.org/wp-content/uploads/2024/01/image-6.png 680w, https://waxy.org/wp-content/uploads/2024/01/image-6-300x245.png 300w" sizes="(max-width: 680px) 100vw, 680px"></figure>



<p>“In fact, Ello is controlled executively by its 7 founders, who own a majority share in the company,” <a href="https://web.archive.org/web/20140927073322/http://betabeat.com/2014/09/ello-founder-says-vc-funding-is-no-big-secret-thats-silly/">wrote</a> Betabeat’s Jack Smith IV. “They say that the cynical claim that they’ll sell out eventually, or that anyone can tell them what to do, is ridiculous.”</p>



<p>Co-founder Todd Berger <a href="https://web.archive.org/web/20141006081010/https://gigaom.com/2014/09/25/ello-investor-co-founder-funding-or-not-we-hate-ads-and-we-want-to-shift-values/">laughed at a GigaOm writer</a> who asked him about my post. “There’s seven founders and we own 82 to 84 percent of the company, so we can do whatever the hell we want,” Berger said. </p>



<p>“We’re not going to sell out our soul to grow our company,” continued Berger. “Maybe it’s hard to believe.”</p>



<p>I <a href="https://web.archive.org/web/20140930025259/https://ello.co/waxpancake/post/Jp4o1TBtLrYytHpcEni0Kg">followed up</a> with a second Ello post:</p>



<blockquote class="wp-block-quote">
<p>I’ve received a dozen emails in the last day and a half from journalists looking for quotes about Ello. I didn’t reply to any of them. I have no interest in being the anti-Ello poster boy, for one main reason:</p>



<p><strong>I think Ello’s pretty neat, and I want them to succeed.</strong></p>



<p>Like I said in <a href="https://web.archive.org/web/20140930025259/https://ello.co/waxpancake/post/oy73kFfDdhOPh8Jv9z9pFA" target="_blank" rel="noreferrer noopener">my post</a>, more experimentation with online communities is a very good thing. We’ll only break away from the dominant players by trying new crazy shit, and I think it should be applauded. (And, yes, I even like the design.)</p>



<p>But I think taking VC was a bad idea that works against their ethos, and will inevitably lead to a much larger Series A by year’s end.</p>



<p>I think the intentions of the team are pure, and they genuinely believe in what they’re building. But I’m not sure intentions matter unless they can wean themselves off outside funding.</p>



<p>I really, really hope their revenue plan works out, and quickly.</p>
</blockquote>



<h2 class="wp-block-heading">Series A and the PBC</h2>



<p>One month later, Ello <a href="https://www.prnewswire.com/news-releases/ello-becomes-a-public-benefit-corporation-and-legally-vows-to-forever-remain-ad-free-founders-and-investors-sign-charter-376792333.html">announced</a> they’d raised significantly more money: a <strong>$5.5 million</strong> Series A round co-led by TechStars and <a href="https://foundry.vc/blog/2014/10/our-investment-in-ello/">Foundry Group</a>, who took a board seat, with participation from FreshTracks Capital, who already sat on the board.</p>



<p>Coinciding with this funding, and perhaps anticipating the backlash, Ello also announced they had converted the company to a Public Benefit Corporation.</p>



<p>In a public letter signed by their founders and investors, they wrote:</p>



<blockquote class="wp-block-quote">
<p>There has been some speculation in the press since our launch that Ello will someday be forced to allow paid ads on our social network.</p>



<p>With virtually everybody else relying on ads to make money, some members of the tech elite are finding it hard to imagine there is a better way.</p>



<p><strong>But 2014 is not 2004, and the world has changed.</strong></p>
</blockquote>



<p>Effectively, Ello would be a for-profit corporation required to pursue social good as part of its charter, instead of solely maximizing shareholder value. Unlike a B Corp certification, this would enshrine their values in their legal structure, which is a pretty big deal. They were the most notable technology company to form as a PBC until that point, preceding <a href="https://www.kickstarter.com/blog/kickstarter-is-now-a-benefit-corporation">Kickstarter’s conversion</a> by nearly a year.</p>



<p>A <a href="https://web.archive.org/web/20160319071816/https://ello.co/wtf/about/pbc/">dedicated page</a> on their site explained the significance of the PBC, and the charter they were now bound by:</p>



<blockquote class="wp-block-quote">
<p>To assure that Ello always remains ad-free, Ello converted to a Public Benefit Corporation (PBC). A Benefit Corporation is a new kind of for-profit company in the USA that exists to produce a benefit for society as a whole — not just to make money for its investors.</p>



<p>The Ello PBC charter states in the strongest legal terms possible that:</p>



<ol>
<li>Ello shall never make money from selling ads;</li>



<li>Ello shall never make money from selling user data; and</li>



<li>In the event that Ello is ever sold, the new owners will have to comply by these terms.</li>
</ol>



<p>Ello exists for the benefit of the creative community, and we will never serve ads or sell personal data.</p>
</blockquote>



<figure class="wp-block-image size-large"><a href="https://web.archive.org/web/20160304012443/https://ello.co/downloads/ello-pbc.pdf"><img loading="lazy" decoding="async" width="1024" height="698" src="https://waxy.org/wp-content/uploads/2024/01/image-1024x698.png" alt="&quot;We, as founders and investors in Ello, vow to support Ello’s mission and to abide by the terms of the Ello Charter as stated above.
Paul Budnitz, Todd Berger, Lucian Föhr, Gabe Varela, Matt Kitt, Jay Zeschin,
Justin Gitlin, Brad Feld, Jason Mendelson, Seth Levine, Ryan McIntyre, David Cohen, Ari Newman, Mark Solon, Lee Bouyea, Cairn Cross, Tim Davis &amp; Damon Way&quot;" class="wp-image-48324" srcset="https://waxy.org/wp-content/uploads/2024/01/image-1024x698.png 1024w, https://waxy.org/wp-content/uploads/2024/01/image-300x204.png 300w, https://waxy.org/wp-content/uploads/2024/01/image-768x523.png 768w, https://waxy.org/wp-content/uploads/2024/01/image-800x545.png 800w, https://waxy.org/wp-content/uploads/2024/01/image.png 1230w" sizes="(max-width: 1024px) 100vw, 1024px"></a><figcaption class="wp-element-caption">The signatures from the <a href="https://web.archive.org/web/20160304012443/https://ello.co/downloads/ello-pbc.pdf">PDF</a> of their PBC letter</figcaption></figure>



<p>This was a commendable change, though somewhere along the way, all the public debate about raising professional money and profit maximization became solely about switching to a paid advertising model and selling user data. This was a straw man argument that was easier to knock down.</p>



<p>But there are many, many ways for a social network to become worse for their users than running ads.</p>



<p>My concern wasn’t that Ello would start running paid ads. I don’t even mind ads, as long as they’re done thoughtfully and with privacy in mind. (I ran ads from <a href="https://web.archive.org/web/20090228233009/https://decknetwork.net/">The Deck</a> here for years.)</p>



<p>I was worried that, by taking outside funding, Ello’s values were no longer fully-aligned with the community: they were aligned with their investors. In time, given more money and more pressure, they would be inclined to do something the community, or even the original founders, didn’t want to do.</p>



<h2 class="wp-block-heading">Series B and CEO Changes</h2>



<p>In April 2015, six months after their Series A, Ello took another $5 million in a Series B round from <a href="https://www.builtincolorado.com/2015/04/03/ello-raises-another-5m-launches-new-beta-version">their previous investors</a>, giving a board seat to TechStars, and bringing their total raised to $11M.</p>



<p>Later that year, in December, Budnitz wrote a <a href="https://web.archive.org/web/20170622034939/https://ello.co/budnitz/post/qcg9cemgu69qfdawwwuubw">new post on Ello</a> looking back on their first year and looking ahead to 2016:</p>



<blockquote class="wp-block-quote">
<p>This past week I gave a few interviews to online news organizations.</p>



<p>One of the journalists scoffed when I told him that Ello is built on principles we believe in, and that in 2015 we did everything we could to grow slowly. Rather than sell out and make another giant network the world doesn’t need, we decided to take our time to build the beautiful and inspiring place we have today.</p>



<p>I felt sad for the guy. It’s awful going through life never believing in anything.</p>



<p>So in the spirit of the New Year, and because it was clear that this journalist wasn’t going to believe anything I told him anyway, I figured I’d publish a short list of things Ello will <em>never</em> do:</p>



<ol>
<li>Diverge from our mission to empower and support creators to inspire one another, and move the world forward.</li>



<li>Tolerate hate. Ello has many tools, some visible and others not, that help keep this network positive.</li>



<li>Sell ads or user data to third parties.</li>



<li>Sell out.</li>



<li>Suck.</li>
</ol>
</blockquote>



<p>Three months later, in March 2016, Paul Budnitz <a href="https://web.archive.org/web/20160328082226/ello.co/budnitz">stepped down</a> as CEO, citing the distance between his home in Vermont and the rest of the team in Boulder. He was replaced by Todd Berger, one of Ello’s co-founders and lead designers.</p>



<p>Under Berger, Ello <a href="https://www.wired.com/2016/05/ello-artists/">refocused</a> its efforts on artists and creators. From a May 2016 <a href="https://www.prnewswire.com/news-releases/the-creators-network-tomorrows-trends-in-leading-edge-creativity-today-300273173.html">press release</a>:</p>



<blockquote class="wp-block-quote">
<p>In recent months Ello has doubled down on its mission to support creators everywhere, becoming the premiere community for the world’s leading edge and contemporary artists, photographers, designers, illustrators, architects and GIF makers to share their work and ideas, connect with others, and build organic reach.</p>
</blockquote>



<p>In a September 2016 <a href="https://www.wired.com/2016/09/the-bizarre-second-life-of-the-utopian-facebook-killer/">interview with Wired</a>, he said that was what Ello was always meant to be:</p>



<blockquote class="wp-block-quote">
<p>Berger had originally intended Ello to cater to artists, but the founding team was split on the idea. “To Paul [Budnitz] it sounded limiting. To our investors it sounded very limiting,” says Berger.</p>
</blockquote>



<p>As its new CEO, Berger continued fundraising, but the <a href="https://www.sec.gov/Archives/edgar/data/1598000/000159800017000002/xslFormDX01/primary_doc.xml">SEC filing</a> from March 2017 indicates a struggle, raising only $2.5M of the available $4M. In an <a href="https://techcrunch.com/2017/11/19/ello-again/">interview with TechCrunch</a> in November 2017, Berger said he was looking to raise more cash. “We have a lot of investment opportunities coming in from actually some fairly heavy-hitting firms that I hope to close.”</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="770" src="https://waxy.org/wp-content/uploads/2024/01/image-7-1024x770.png" alt="Screenshot of Ello homepage. &quot;The Creators Network: Built by artists, for artists. Ello is a global community of artists dedicated to creative excellence.&quot;" class="wp-image-48351" srcset="https://waxy.org/wp-content/uploads/2024/01/image-7-1024x770.png 1024w, https://waxy.org/wp-content/uploads/2024/01/image-7-300x225.png 300w, https://waxy.org/wp-content/uploads/2024/01/image-7-768x577.png 768w, https://waxy.org/wp-content/uploads/2024/01/image-7-800x601.png 800w, https://waxy.org/wp-content/uploads/2024/01/image-7.png 1191w" sizes="(max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption">Ello in 2017</figcaption></figure>



<p>In the same interview, Berger said Ello now had 400,000 monthly active users, with 625,000 artists on the site. </p>



<p>It seemed like Ello finally found its niche as “The Creators Network,” a community of artists and designers using its visual-heavy design to show off their portfolios and promote their work. Their original freemium model never worked out, but sponsored content was handled thoughtfully, with like-minded brands offering giveaways. It was paid advertising, but it didn’t violate privacy or sell user data.</p>



<p>“A lot of people thought we died and went away and the whole time we’ve been cultivating a really niche and creative community that’s gotten more focused as I’ve been able to enact my vision,” Berger said.</p>



<p>The future of Ello seemed bright.</p>



<h2 class="wp-block-heading">The Acquisition</h2>



<p>Five months later, in March 2018, Ello was quietly sold to <a href="https://web.archive.org/web/20180927195200/https://www.talenthouse.com/about">Talenthouse</a>, a Los Angeles-based company whose primary business was running <a href="https://web.archive.org/web/20161117224953/https://www.talenthouse.com/collaborate/all">design contests</a> for brands, in which independent artists competed against each other for a cash prize.</p>



<p>I only know the sale date because it was mentioned in the <a href="https://vcet.co/wp-content/uploads/2019/01/VSCF-FY18-Annual-Public-Report-w_cover.pdf">annual report</a> of a venture capital firm who invested in their Series A. The acquisition was never announced publicly, as far as I can tell, mentioned only in <a href="https://www.thedrum.com/news/2018/10/17/creativity-re-wired-good-fast-or-cheap">this October 2018 interview</a> with Talenthouse co-founder Maya Bogle, where she said that “earlier this year we acquired Ello.co.”</p>



<p>As an Ello user, I was never notified about the ownership change, even though they sold all my data to an entirely new company. As far as I can find, none of the original founders mentioned the sale publicly when it happened.</p>



<p>There were telltale signs, though: Ello’s social media started regularly <a href="https://twitter.com/search?q=from%3Aellohype%20talenthouse">promoting design contests</a> from “our friends at Talenthouse,” while never disclosing the sale. The Ello homepage prominently featured Talenthouse “artist invites” to compete in their design contests from brands like Absolut Vodka, Amazon Prime, Pabst Blue Ribbon, Adidas, and Miller Lite.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="587" height="458" src="https://waxy.org/wp-content/uploads/2024/01/image-9.png" alt="Tweet screenshot from Ello's account on September 6, 2018: &quot;Check out a dope opportunity from our friends at @talenthouse. Design city-inspired bottle bags for a Limited Edition of Absolut Vodka.&quot;" class="wp-image-48369" srcset="https://waxy.org/wp-content/uploads/2024/01/image-9.png 587w, https://waxy.org/wp-content/uploads/2024/01/image-9-300x234.png 300w" sizes="(max-width: 587px) 100vw, 587px"><figcaption class="wp-element-caption">This isn’t an ad, it’s an opportunity! And they’re just friends, really.</figcaption></figure>



<h2 class="wp-block-heading">The Founders Leave</h2>



<p>The following month, in September 2018, the remaining two of Ello’s original remaining co-founders announced they had left the company.</p>



<p>In a <a href="https://www.instagram.com/p/Bnox1cAhOSa/">cryptic post</a> on Ello and Instagram, Ello’s then-CEO Todd Berger and fellow co-founder Lucian Föhr wrote:</p>



<blockquote class="wp-block-quote">
<p>Over the course of the past years we did our best to steer Ello per our vision, always with the intent of putting artists first. At times we succeeded, often we failed. Which brings us to today. We’re no longer at Ello, we can’t elaborate as to why, but it’s time for us to move on and return to studio life.…</p>



<p>If we let you down along the way, we’re sorry. If we didn’t, all the better.</p>
</blockquote>



<p>On a <a href="https://www.printdesignacademy.com/podcasts/the-quickie-interviews-for-graphic-designers/episodes/2147546418">July 2019 podcast</a>, Berger and Föhr spoke candidly about their time at Ello, when Berger took over CEO duties and Föhr became the Chief Product Officer.</p>



<blockquote class="wp-block-quote">
<p><strong>Todd Berger:</strong> The beginning of it was super exciting, super pure, 100% authentic. We built a lot of digital products, worked with lots of startups. We felt like we knew how to do this. We got a lot of momentum. People were stoked. </p>



<p>And then investors got interested and there was pressure to do all these other things. The CEO at the time [Paul Budnitz] got maybe a little overzealous about making lots and lots of money and turning it into a crazier thing than we ever imagined. And it kind of got out of control real fast. </p>



<p>And then we were just kind of holding on, trying to steer it as best possible back to its original kind of the real place we wanted it to live in. And it was tricky, that fast-paced real startup ecosystem— once there’s VC money in there and there’s a lot of press and there’s a lot of attention and you’re not necessarily meeting expectations per the media, per your investors, etc etc.</p>
</blockquote>



<p>As for the acquisition, it doesn’t sound like it was a big payday for the original founders. (As preferred shareholders, VCs are typically paid from an acquisition before founders, employees, or other common stockholders.)</p>



<blockquote class="wp-block-quote">
<p><strong>Interviewer:</strong> Do you feel that the sale of the company justified the time and effort and blood and sweat?</p>



<p><strong>Berger:</strong> No, no. Frankly, it wasn’t a lucrative exit. It was more of a, let’s carry this thing on, someone wants it. And it wasn’t about that for us. </p>



<p>Like, had it been something different, who knows what we’d be doing now? But the experience, by and large, was justified. It just, by the nature of taking money in and building a company and a lot of pressure and responsibility, it went on longer and turned into a bumpier grindier thing I think than we wish it would have.</p>
</blockquote>



<p>On August 22, 2018, then-CTO Colin Gray <a href="https://github.com/ello/wtf/commit/a8be236ba25d9c07feeafaa0e0590b39b5bd9ba4#diff-0eb547304658805aad788d320f10bf1f292797b5e6d745a3bf617584da017051">deleted the Manifesto</a>, the foundational statement that was part of Ello since before it launched, along with <a href="https://github.com/ello/wtf/commit/e454e75357f8e5ec5cf02c1c25fe44459baaec77">all references</a> to the Public Benefit Corporation and its charter. </p>



<p>Ello PBC was officially dead.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="942" height="476" src="https://waxy.org/wp-content/uploads/2024/01/image-8.png" alt="Screenshot from GitHub showing the Manifesto webpage was deleted." class="wp-image-48353" srcset="https://waxy.org/wp-content/uploads/2024/01/image-8.png 942w, https://waxy.org/wp-content/uploads/2024/01/image-8-300x152.png 300w, https://waxy.org/wp-content/uploads/2024/01/image-8-768x388.png 768w, https://waxy.org/wp-content/uploads/2024/01/image-8-800x404.png 800w" sizes="(max-width: 942px) 100vw, 942px"></figure>



<h2 class="wp-block-heading">The End</h2>



<p>In December 2019, Ello, Talenthouse, and Zooppa <a href="https://www.businesswire.com/news/home/20191203005403/en/Ello-Talenthouse-and-Zooppa-Join-Forces-to-Form-TLNT-Holdings-%E2%80%94-the-Worlds-Most-Diverse-and-Engaged-Creative-Network">merged</a> into TLNT Holdings, a new holding company backed by UK private equity firm AEDC Capital. TLNT was then sold to Swiss investment firm New Value AG, which renamed itself, confusingly, to Talenthouse AG.</p>



<p>In December 2021, Ello <a href="https://twitter.com/ellohype/status/1470706318814195719">changed</a> their logo to finally acknowledge what everyone on the site had figured out long ago.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="750" height="292" src="https://waxy.org/wp-content/uploads/2024/01/image-1.png" alt="&quot;Ello by Talenthouse&quot; logo" class="wp-image-48336" srcset="https://waxy.org/wp-content/uploads/2024/01/image-1.png 750w, https://waxy.org/wp-content/uploads/2024/01/image-1-300x117.png 300w" sizes="(max-width: 750px) 100vw, 750px"></figure>



<p>“Our new logo represents our parent company, Talenthouse, who y’all are already familiar with as we cross promote creative briefs on the Talenthouse platform all the time,” they wrote on the official blog. “You’re creative, you understand the way businesses develop.”</p>



<p>Behind the scenes, Talenthouse was struggling financially.</p>



<p>A February 2023 <a href="https://www.theguardian.com/media/2023/feb/04/ive-given-up-getting-paid-design-agency-accused-of-exploiting-artists">report in The Observer</a> exposed that Talenthouse was withholding funds from artists who won their creative briefs. A month later, The Guardian <a href="https://www.theguardian.com/technology/2023/apr/09/creative-tech-firm-talenthouse-is-close-to-failure-as-debts-mount">reported</a> their parent company was “close to failure as debts mount,” with most of their subsidiaries closed and staff laid off.</p>



<blockquote class="wp-block-quote">
<p>Talenthouse, whose clients have included Netflix, Coca-Cola, Nike and the UN, is facing legal action by creditors in the UK and is understood to have laid off most of its workforce, with top executives also departing its parent company in recent days.</p>



<p>Its parent company, Talenthouse AG, has also announced the closure of four other subsidiaries saying they cannot afford to pay outstanding bills, including staff wages.</p>
</blockquote>



<p>In May 2023, the company <a href="https://www.musicbusinessworldwide.com/having-raised-80m-to-date-creator-agency-talenthouse-alerts-investors-to-critical-financial-situation/">released a statement</a> that it was facing a “critical financial situation,” restructuring the company while finding outside investors.</p>



<p>As a result of the upheaval, Ello’s website started seeing significant downtime starting in June 2023, delivering 500 errors on every page for <a href="https://ferdifz.tumblr.com/post/720556050114379776/ello-being-ello-again?is_related_post=1">days at a time</a>. It came back online for a few days in July, and then <a href="https://web.archive.org/web/20230719114615/https://ello.co/">more errors</a>. </p>



<p>On July 18, 2023, it shut down for good and never recovered. On August 9, the web app was apparently deleted, leaving nothing but a <a href="https://web.archive.org/web/20230809081328/http://ello.co/">Heroku error</a>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="285" src="https://waxy.org/wp-content/uploads/2024/01/image-4-1024x285.png" alt="Three screenshots of errors from the Ello homepage." class="wp-image-48343" srcset="https://waxy.org/wp-content/uploads/2024/01/image-4-1024x285.png 1024w, https://waxy.org/wp-content/uploads/2024/01/image-4-300x84.png 300w, https://waxy.org/wp-content/uploads/2024/01/image-4-768x214.png 768w, https://waxy.org/wp-content/uploads/2024/01/image-4-1536x428.png 1536w, https://waxy.org/wp-content/uploads/2024/01/image-4-800x223.png 800w, https://waxy.org/wp-content/uploads/2024/01/image-4.png 1607w" sizes="(max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption">The Ello homepage in July, August, and September 2023</figcaption></figure>



<p>The <a href="https://business.talenthouse.com/">Talenthouse</a> corporate site is still online, but the platform is offline, and they haven’t posted anything on social media since January 2023. Ello’s social media team stopped posting in October 2022.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">



<p>After leaving Ello in 2016, Budnitz returned to his Kidrobot roots with the launch of <a href="https://superplastic.co/">Superplastic</a> in 2017, a vinyl figure company that expanded into <a href="https://jankyheist.com/">NFTs</a> and <a href="https://www.fastcompany.com/90687982/superplastic-disney-metaverse-nft-janky-guggimon-paul-budnitz">the metaverse</a> in 2022, raising a total of $68M in seven rounds of funding, led by Amazon. Superplastic appears to have abandoned its NFT projects last year as the market cratered, and Budnitz stepped down from his CEO role in September, replaced by the former president of blockchain gaming company Dapper Labs. They are now focused on “<a href="https://www.modernretail.co/marketing/how-amazon-backed-superplastic-is-trying-to-transform-its-toys-into-synthetic-celebrities/">synthetic celebrities</a>” and AI influencers. </p>



<p>Todd Berger and Lucian Föhr reopened their <a href="https://bergerfohr.com/">Boulder design studio</a>, which had shuttered for five years while they worked on Ello. Berger described running Ello as the “low point of my creative career,” so I hope they’re doing better.</p>



<p>As for Ello’s users, they’re out of luck. The shutdown spawned a confused exodus of sorts, former community members trying to figure out what happened on <a href="https://www.reddit.com/r/ello/">the Ello subreddit</a>, on <a href="https://twitter.com/search?q=ello.co%20OR%20ellohype%20since%3A2023-06-15&amp;src=typed_query&amp;f=top">X/Twitter</a>, on <a href="https://www.instagram.com/p/CkOg-jSjTMz/">Ello’s last Instagram post</a>, and the <a href="https://danthornton.net/2023/06/is-it-goodbye-to-ello-another-niche-network-gone/#comments">comments section</a> of the only other blog post about the shutdown.</p>



<blockquote class="wp-block-quote">
<p>“years of my writing down the drain”<br>“Heartbreaking. I upload my artwork in there and I love the site because it really focused on art.”<br>“It’s really messed up that there was NO warning to allow us to download our content. That was a very personal space for me and now it’s gone forever? It was my online diary ffs!”<br>“I had two groups. One had over 18k followers and the other 17k+. No warning at all. Just gone, along with 8 years of content updated a couple of times a week.”<br>“Did you find a way? It has basically my entire diary :(“<br>“18k followers and a few years worth of educational posts on fiction writing craft essentials gone.”</p>
</blockquote>



<p>Some people tried to contact Ello or Talenthouse directly, but the emails <a href="https://twitter.com/Nerdwiththehat/status/1685830952675655680">bounced</a>.</p>



<p>Some former members set up <a href="https://www.tumblr.com/ferdifz/718400540806103040/ello-on-tumblr-group">a Tumblr group</a> to try to find each other again, “an attempt to maybe preserve and/or recapture what little magic Ello still had for us.”</p>



<h2 class="wp-block-heading">You Were The Product</h2>



<p>From the moment it launched, I liked Ello and wanted it to succeed. Experimentation in social networks is critically important, and there’s enormous value in making new online communities for creative people. I even loved Ello’s minimalist monochrome design, which some people bounced off of.</p>



<p>But from the moment I read about their seed funding, I worried that they wouldn’t be able to build a long-term sustainable business if they were hooked on professional funding and busy chasing growth.</p>



<p>The day after I wrote my first Ello post that blew up, Rose Eveleth published an <a href="https://www.theatlantic.com/technology/archive/2014/09/ello-says-youre-not-a-product-but-you-are/380809/">article</a> in The Atlantic with the blunt headline, “Ello Says You’re Not a Product, But You Are.”</p>



<blockquote class="wp-block-quote">
<p>The fact that you, the user, even exist and use their site makes you a product. Ello already has some amount of seed funding from VCs, which means it will need to return to them with something in hand if it wants more. And when it does, or when it is eventually bought by a larger company, you are part of that transaction—a key line in the sales pitch. Your existence on that site is a unit of currency, and it’s a unit that Ello is selling to whoever will give them money for it.</p>



<p></p>
</blockquote>



<p>Ello’s founders wrote in their manifesto that, with other social networks, “You are the product that’s bought and sold.” They believed, I’m sure sincerely, that Ello would be different. “We believe that the people who make things and the people who use them should be in partnership. You are not a product.”</p>



<p>Despite their idealist manifesto and their <a href="https://web.archive.org/web/20150701202201/https://bill-of-rights.ello.co/">Bill of Rights</a>, I don’t believe they could ever truly be in partnership with their community once they were taking large amounts of venture funding. All of their ideals and big dreams were easily undone, even the legal restrictions they defined in their Public Benefit Corporation charter:</p>



<ol>
<li>Ello made money from selling ads to third parties;</li>



<li>Ello made money selling their user data to a third party;</li>



<li>Ello was sold, and the new owners didn’t comply with those terms.</li>
</ol>



<p>In the end, Ello was sold to a third party without notifying its users or giving them the opportunity to opt out of handing over all their content and data, then resold to a new company, and finally shut down and deleted with no notice or recourse.</p>



<p>Would things have been different if they hadn’t taken funding? It’s impossible to say. In all likelihood, it never would have been built in the first place.</p>



<p>But if it had, I doubt it would have ended like this.</p>



<p><a style="text-decoration:none;" href="https://web.archive.org/web/20160506004648/https://ello.co/brdr/post/rfswl3vb4xhi2fruwewkkq"><img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f35e.png" alt="🍞" class="wp-smiley" style="height: 1em; max-height: 1em;"></a></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://waxy.org/wp-content/uploads/2024/01/image-3.png" alt="Screenshot from the Ello homepage in July 2023" class="wp-image-48341" srcset="https://waxy.org/wp-content/uploads/2024/01/image-3.png 1024w, https://waxy.org/wp-content/uploads/2024/01/image-3-300x225.png 300w, https://waxy.org/wp-content/uploads/2024/01/image-3-768x576.png 768w, https://waxy.org/wp-content/uploads/2024/01/image-3-800x600.png 800w" sizes="(max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption">Ello’s homepage on July 3, 2023, shortly before it closed for good. “Built by artists, for artists.”</figcaption></figure>
]]></description>
      <pubDate>Thu, 18 Jan 2024 16:23:10 +0000</pubDate>
      <link>https://waxy.org/2024/01/the-quiet-death-of-ellos-big-dreams/</link>
      <dc:creator>Waxy.org</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4340136712</guid>
    </item>
    <item>
      <title><![CDATA[The 2023 Stratechery Year in Review]]></title>
      <description><![CDATA[<p>It has been over a decade of Stratechery; this is the 11th Year in Review I have published. You can find previous years here:</p>
<div align="center"><a href="https://stratechery.com/2022/the-2022-stratechery-year-in-review/">2022</a> | <a href="https://stratechery.com/2021/the-2021-stratechery-year-in-review/">2021</a> | <a href="https://stratechery.com/2020/the-2020-stratechery-year-in-review/">2020</a> | <a href="https://stratechery.com/2019/the-2019-stratechery-year-in-review/">2019</a> | <a href="https://stratechery.com/2018/the-2018-stratechery-year-in-review/">2018</a> | <a href="https://stratechery.com/2017/the-2017-stratechery-year-in-review/">2017</a> | <a href="https://stratechery.com/2016/the-2016-stratechery-year-in-review/">2016</a> | <a href="https://stratechery.com/2015/the-stratechery-2015-year-in-review/">2015</a> | <a href="https://stratechery.com/2014/stratechery-2014-year-review/">2014</a> | <a href="http://stratechery.com/2013/stratechery-2013-year-review/">2013</a></div>
<p>I am both proud and grateful to have made it to this milestone. Stratechery has changed my life; I hope it has had some small impact on yours.</p>
<p><a href="https://stratechery.com/2023/regretful-accelerationism/"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/12/DALL·E-2023-12-05-23.28.26-A-tranquil-real-world-landscape-on-one-side-featuring-a-serene-lake-surrounded-by-lush-greenery-and-a-clear-blue-sky.-On-the-other-side-a-chaotic-di.png?resize=640%2C640&amp;ssl=1" alt="The future with AI" width="640" height="640" class="aligncenter size-full wp-image-12036" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/12/DALL·E-2023-12-05-23.28.26-A-tranquil-real-world-landscape-on-one-side-featuring-a-serene-lake-surrounded-by-lush-greenery-and-a-clear-blue-sky.-On-the-other-side-a-chaotic-di.png?w=1024&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/12/DALL·E-2023-12-05-23.28.26-A-tranquil-real-world-landscape-on-one-side-featuring-a-serene-lake-surrounded-by-lush-greenery-and-a-clear-blue-sky.-On-the-other-side-a-chaotic-di.png?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/12/DALL·E-2023-12-05-23.28.26-A-tranquil-real-world-landscape-on-one-side-featuring-a-serene-lake-surrounded-by-lush-greenery-and-a-clear-blue-sky.-On-the-other-side-a-chaotic-di.png?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/12/DALL·E-2023-12-05-23.28.26-A-tranquil-real-world-landscape-on-one-side-featuring-a-serene-lake-surrounded-by-lush-greenery-and-a-clear-blue-sky.-On-the-other-side-a-chaotic-di.png?resize=768%2C768&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/12/DALL·E-2023-12-05-23.28.26-A-tranquil-real-world-landscape-on-one-side-featuring-a-serene-lake-surrounded-by-lush-greenery-and-a-clear-blue-sky.-On-the-other-side-a-chaotic-di.png?resize=630%2C630&amp;ssl=1 630w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>At the beginning of last year’s review I said that the biggest story in tech was the emergence of AI; I can say the exact same thing about 2023, but even more so: 12 of Stratechery’s free Weekly Articles were about AI in some way, shape, or form. The second biggest topic was a Stratechery staple: the evolving content landscape; 2023 was particularly notable, though, for the dramatic shifts that are hitting Hollywood, highlighted by both strikes and the Disney-Charter standoff this fall. There were also big stories about the tech industry itself, from a bank failure to board room drama, and a “vision” of what might come next.</p>
<p><a href="https://stratechery.com/2023/apple-vision/"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/06/vision-image-6.png?resize=640%2C359&amp;ssl=1" alt="The Vision Pro as consumption device" width="640" height="359" class="aligncenter size-full wp-image-11094" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/06/vision-image-6.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/06/vision-image-6.png?resize=300%2C168&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/06/vision-image-6.png?resize=1024%2C574&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/06/vision-image-6.png?resize=768%2C430&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/06/vision-image-6.png?resize=1125%2C630&amp;ssl=1 1125w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>This year Stratechery published 27 free <a href="https://stratechery.com/category/articles/">Articles</a>, 105 subsrciber <a href="https://stratechery.com/category/daily-email/">Updates</a>, and 37 <a href="https://stratechery.com/topic/events/interview/">Interviews</a>. Today, as per tradition, I summarize the most popular and most important posts of the year.</p>
<h3>The Five Most-Viewed Articles</h3>
<p>The five most-viewed articles on Stratechery according to page views:</p>
<ol>
<li><a href="https://stratechery.com/2023/from-bing-to-sydney-search-as-distraction-sentient-ai/">From Bing to Sydney</a> — Microsoft launched a new conversational UI in Bing based on GPT-4; I got early access, and discovered Sydney, and had a series of conversations that blew my mind.</li>
<li><a href="https://stratechery.com/2023/the-four-horsemen-of-the-tech-recession/">The Four Horsemen of the Tech Recession</a> — Tech is increasingly divorced from the real economy thanks to the COVID hangover and Apple’s App Tracking Transparency.</li>
<li><a href="https://stratechery.com/2023/openais-misalignment-and-microsofts-gain/">OpenAI’s Misalignment and Microsoft’s Gain</a> — The end of a dramatic weekend in tech is that OpenAI has split and Microsoft is partnered with one and has hired the other; this is the ultimate failure case of what should have been a for-profit company organized the wrong way.</li>
<li><a href="https://stratechery.com/2023/apple-vision/">Apple Vision</a> — Apple Vision is incredibly compelling, first as a product, and second as far as potential use cases. What it says about society, though, is a bit more pessimistic.</li>
<li><a href="https://stratechery.com/2023/the-death-of-silicon-valley-bank/">The End of Silicon Valley (Bank)</a> — Silicon Valley Bank bears responsibility for its demise, but it symbolizes a Silicon Valley reality that is very different from the myth — and the ultimate cause is tech itself.</li>
</ol>
<h3>AI Strategy</h3>
<p>Is AI a sustaining technology that makes existing companies stronger, or a disruptive one that leads to new entrants?</p>
<ul>
<li><a href="https://stratechery.com/2023/ai-and-the-big-five/">AI and the Big Five</a> — Given the success of existing companies with new epochs, the most obvious place to start when thinking about the impact of AI is with the big five: Apple, Amazon, Facebook, Google, and Microsoft.</li>
<li><a href="https://stratechery.com/2023/google-i-o-and-the-coming-ai-battles/">Google I/O and the Coming AI Battles</a> — Google A/I suggests that AI is a sustaining innovation for all of Big Tech; that means the real battle will be between incumbents and Big Tech on one side, and open source on the other.</li>
<li><a href="https://stratechery.com/2023/windows-and-the-ai-platform-shift/">Windows and the AI Platform Shift</a> — Microsoft argued there is an AI platform shift, and the fact that Windows is interesting again — and that Apple is facing AI-related questions for its newest products — is evidence that is correct.</li>
<li><a href="https://stratechery.com/2023/the-openai-keynote/">The OpenAI Keynote</a> — OpenAI’s developer keynote was exciting, both because AI was exciting, and because OpenAI has the potential to be a meaningful consumer tech company.</li>
<li><a href="https://stratechery.com/2023/googles-true-moonshot/">Google’s True Moonshot</a> — Google could do more than just win the chatbot war: it is the one company that could make a universal assistant. The question is if the company is willing to risk it all.</li>
</ul>
<h3>AI Questions and Philosophy</h3>
<p>AI doesn’t just raise strategic questions: it raises questions about the nature of computing, the future of society, and what it means to be human.</p>
<ul>
<li><a href="https://stratechery.com/2023/chatgpt-learns-computing/">ChatGPT Gets a Computer</a> — It’s possible that large language models are more like the human brain than we thought, given that it is about prediction; that is why ChatGPT needs its own computer in the form of plug-ins.</li>
<li><a href="https://stratechery.com/2023/ai-nil-and-zero-trust-authenticity/">AI Philosophy</a> — AI-generated content is not going to harm those with the capability of breaking through: it will make them stronger, aided by Zero Trust Authenticity.</li>
<li><a href="https://stratechery.com/2023/nvidia-on-the-mountaintop/">Nvidia On the Mountaintop</a> — Nvidia has gone from the valley to the mountain-top in less than a year, thanks to ChatGPT and the frenzy it inspired; whether or not there is a cliff depends on developing new kinds of demand that only GPUs can fulfill.</li>
<li><a href="https://stratechery.com/2023/ai-hardware-and-virtual-reality/">AI, Hardware, and Virtual Reality</a> — Defining virtual reality as being about hardware is to miss the point: virtual reality is AI, and hardware is an (essential) means to an end.</li>
<li><a href="https://stratechery.com/2023/regretful-accelerationism/">Regretful Accelerationism</a> — The Internet removed constraints from the analog world, and AI is finishing the job. That this may be the final blow for the Internet as a source for truth may ultimately be for the best.</li>
</ul>
<h3>Streaming and Hollywood</h3>
<p>While the past, present, and future of content has always been a focus of Stratechery, this year felt like a tipping point for Hollywood in particular.</p>
<ul>
<li><a href="https://stratechery.com/2023/netflixs-new-chapter/">Netflix’s New Chapter</a> — Netflix waited out Blockbuster with better economics, and it’s seeking to do the same with its competitors today; the key to the company’s differentiation, though, is increasingly creativity, not execution.</li>
<li><a href="https://stratechery.com/2023/the-unified-content-business-model/">The Unified Content Business Model</a> — Every content company is or should be moving to a model that incorporates both subscriptions and ads; creator platforms should help their publishers do the same.</li>
<li><a href="https://stratechery.com/2023/hollywood-on-strike/">Hollywood on Strike</a> — The Hollywood strike is setting talent against studios, but the problem is that both are jointly threatened by the reality of the Internet and zero distribution costs.</li>
<li><a href="https://stratechery.com/2023/disneys-taylor-swift-era/">Disney’s Taylor Swift Era</a> — Not even Taylor Swift can fight the devaluation of recorded music, but she makes it up in physical experiences; Disney isn’t much different, but it looks much worse given the company’s old business model.</li>
<li><a href="https://stratechery.com/2023/the-rise-and-fall-of-espns-leverage/">The Rise and Fall of ESPN’s Leverage</a> — Charting ESPN’s rise, including how it build leverage over the cable TV providers, and its ongoing decline, caused by the Internet <em>(See also: <a href="https://stratechery.com/2023/charter-disney-winners-and-losers/">Charter-Disney Winners and Losers</a>)</em>.</li>
</ul>
<h3>Regulation</h3>
<p>It is, for better or worse, impossible to cover technology without discussing regulation, and 2023 was no different.</p>
<ul>
<li><a href="https://stratechery.com/2023/amazon-friction-and-the-ftc/">Amazon, Friction, and the FTC</a> — The FTC’s Amazon complaint raises some fair points in isolation, but misses the bigger picture, both in terms of Amazon specifically and the Internet generally.</li>
<li><a href="https://stratechery.com/2023/ftc-sues-amazon-fba-and-prime-pricing-punishment/">FTC Sues Amazon</a> — The FTC is suing Amazon, and some of the complaints are compelling, but ultimately not convincing.</li>
<li><a href="https://stratechery.com/2023/china-chips-and-moores-law/">China Chips and Moore’s Law</a> — Moore’s Law is not yet dead, nor is Moore’s Precept, even if AI computes differently. Addressing both is the key to succeeding with the China chip ban.</li>
<li><a href="https://stratechery.com/2023/attenuating-innovation-ai/">Attenuating Innovation (AI)</a> — Innovation required humility about the future and openness to what might be possible; Biden’s executive order proscribing AI development is the opposite, blocking progress and hindering the solutions to our greatest challenges.</li>
</ul>
<p><a href="https://stratechery.com/2023/attenuating-innovation-ai/"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/11/attentuatinginnovation-4.png?resize=640%2C640&amp;ssl=1" alt="Photo of a radiant, downscaled city teetering on the brink of an expansive abyss, with a dark, murky quagmire below containing decayed structures reminiscent of historic landmarks. The city is a beacon of the future, with flying cars, green buildings, and residents in futuristic attire. The influence of AI is subtly interwoven, with robots helping citizens and digital screens integrated into the environment. Below, the haunting silhouette of a shoggoth, with its eerie tendrils, endeavors to pull the city into the depths, illustrating the clash between forward-moving evolution and outdated forces." width="640" height="640" class="aligncenter size-full wp-image-11831" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/11/attentuatinginnovation-4.png?w=1024&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/11/attentuatinginnovation-4.png?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/11/attentuatinginnovation-4.png?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/11/attentuatinginnovation-4.png?resize=768%2C768&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/11/attentuatinginnovation-4.png?resize=630%2C630&amp;ssl=1 630w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<h3>Stratechery Interviews</h3>
<p>Thursdays on Stratechery are for interviews — in podcast and transcript form — with public company executives, founders and private company executives, and other analysts.</p>
<p><strong>Public Company Executive Interviews:</strong></p>
<p>Nvidia CEO <a href="https://stratechery.com/2023/an-interview-with-nvidia-ceo-jensen-huang-about-ais-iphone-moment/">Jensen Huang</a> | Adobe CSO <a href="https://stratechery.com/2023/an-interview-with-adobe-chief-strategy-officer-scott-belsky/">Scott Belsky</a> | Qualcomm CEO <a href="https://stratechery.com/2023/an-interview-with-qualcomm-ceo-cristiano-amon/">Cristiano Amon</a> | Palantir CTO <a href="https://stratechery.com/2023/an-interview-with-palantir-cto-shyam-sankar-and-head-of-global-commercial-ted-mabrey/">Shyam Sankar</a> | Intel CEO <a href="https://stratechery.com/2023/an-interview-with-intel-ceo-pat-gelsinger-about-intels-progress-towards-process-leadership/">Pat Gelsinger</a> | Roblox CEO <a href="https://stratechery.com/2023/an-interview-with-roblox-ceo-david-baszucki-about-advertising-and-ai/">David Baszucki</a></p>
<p><strong>Startup/Private Company Executive Interviews:</strong></p>
<p>Artifact founders <a href="https://stratechery.com/2023/an-interview-with-kevin-systrom-and-mike-krieger-about-artifact/">Kevin Systrom and Mike Krieger</a> | Deel founder and CEO <a href="https://stratechery.com/2023/an-interview-with-deel-co-founder-and-ceo-alex-bouaziz/">Alex Bouaziz</a> | Ringer founder and CEO <a href="https://stratechery.com/2023/an-interview-with-the-ringer-founder-and-ceo-bill-simmons/">Bill Simmons</a> | Replika founder and CEO <a href="https://stratechery.com/2023/an-interview-with-replika-founder-and-ceo-eugenia-kuyda/">Eugenia Kuyda</a> | DNVR founder <a href="https://stratechery.com/2023/an-interview-with-dnvr-co-founder-adam-mares-about-building-local-internet-businesses/">Adam Mares</a> | Vercel founder and CEO <a href="https://stratechery.com/2023/an-interview-with-vercel-founder-guillermo-rauch/">Guillermo Rauch</a> | Boom founder and CEO <a href="https://stratechery.com/2023/an-interview-with-boom-founder-blake-scholl-about-building-a-supersonic-airliner/">Blake Scholl</a> | Anduril founder and CEO <a href="https://stratechery.com/2023/an-interview-with-anduril-founder-and-ceo-brian-schimpf-about-software-and-the-military/">Brian Schimpf</a> | Former TechCrunch editor-in-chief <a href="https://stratechery.com/2023/an-interview-with-former-techcrunch-editor-in-chief-matthew-panzarino-about-covering-technology/">Matthew Panzarino</a> | WFAN’s <a href="https://stratechery.com/2023/an-interview-with-spike-eskin-about-radio-podcasts-and-internet-stars/">Spike Eskin</a></p>
<p><strong>Analysts:</strong></p>
<p>Daniel Gross and Nat Friedman on AI in <a href="https://stratechery.com/2023/an-interview-with-daniel-gross-and-nat-friedman-about-the-ai-product-revolution/">March</a>, <a href="https://stratechery.com/2023/an-interview-with-daniel-gross-and-nat-friedman-about-the-ai-hype-cycle/">August</a>, and <a href="https://stratechery.com/2023/an-interview-with-nat-friedman-and-daniel-gross-about-the-human-component-of-ai/">December</a> | Eric Seufert on digital advertising in <a href="https://stratechery.com/2023/an-interview-with-eric-seufert-about-metas-earnings-and-the-google-doj-case/">February</a>, <a href="https://stratechery.com/2023/an-interview-with-eric-seufert-about-streaming-advertising-generative-ai-and-marketing-automation/">May</a> and <a href="https://stratechery.com/2023/an-interview-with-eric-seufert-about-unity-regulation-and-streaming-advertising/">October</a> | Michael Nathanson on Hollywood and streaming in <a href="https://stratechery.com/2023/an-interview-with-michael-nathanson-about-netflix-and-the-media-industry/">January</a> and <a href="https://stratechery.com/2023/an-interview-with-michael-nathanson-about-a-tumultuous-year-in-media/">December</a> | Gregory C. Allen about the China and Chips in <a href="https://stratechery.com/2023/an-interview-with-gregory-c-allen-about-chinas-chip-ban-response/">May</a> and <a href="https://stratechery.com/2023/an-interview-with-gregory-allen-about-the-updated-china-chip-ban/">October</a> | <a href="https://stratechery.com/2023/an-interview-with-the-air-currents-jon-ostrower-about-southwests-meltdown-and-independent-publishing/">Jon Ostrower</a> on the airline industry | <a href="https://stratechery.com/2023/an-interview-with-matthew-ball-about-disney-streaming-and-the-metaverse/">Matthew Ball</a> about streaming and the metaverse | <a href="https://stratechery.com/2023/an-interview-with-john-kosner-about-the-past-and-future-of-sports-in-an-age-of-abundance/">John Kosner</a> about sports | <a href="https://stratechery.com/2023/an-interview-with-chip-war-author-chris-miller/">Chris Miller</a> about Chip War | <a href="https://stratechery.com/2023/an-interview-with-marc-andreessen-about-ai-and-how-you-change-the-world/">Marc Andreessen</a> about AI | <a href="https://stratechery.com/2023/an-interview-with-eugene-wei-about-twitter-threads-and-taylor-swift/">Eugene Wei</a> about social media | <a href="https://stratechery.com/2023/an-interview-with-lisa-ellis-about-payments/">Lisa Ellis</a> about payments | <a href="https://stratechery.com/2023/an-interview-with-doug-olaughlin-and-dylan-patel-about-semiconductors-and-ai/">Doug O’Laughlin and Dylan Patel</a> about semiconductors | <a href="https://stratechery.com/2023/an-interview-with-craig-moffett-about-charter-vs-disney-and-the-path-dependency-of-the-communications-industry/">Craig Moffett</a> about telecommunications | <a href="https://stratechery.com/2023/an-interview-with-bill-bishop-and-andrew-sharp-checking-in-on-china/">Bill Bishop</a> about China</p>
<h3>The Year in Stratechery Updates</h3>
<p>Some of my favorite Stratechery Updates:</p>
<ul>
<li><a href="https://stratechery.com/2023/microsoft-office-ai-copilot-and-techs-two-philosophies-business-chat-and-appropriate-fear/">March 20</a>: Microsoft Office AI, Copilot and Tech’s Two Philosophies, Business Chat and Appropriate Fear</li>
<li><a href="https://stratechery.com/2023/the-accidental-consumer-tech-company-chatgpt-meta-and-product-market-fit-aggregation-and-apis/">March 28</a>: The Accidental Consumer Tech Company; ChatGPT, Meta, and Product-Market Fit; Aggregation and APIs</li>
<li><a href="https://stratechery.com/2023/substack-notes-twitter-blocks-substack-substack-versus-writers/">April 10</a>: Substack Notes, Twitter Blocks Substack, Substack Versus Writers</li>
<li><a href="https://stratechery.com/2023/the-phoenix-suns-go-over-the-air-fans-and-franchise-valuation-attention-and-customer-acquisition/">May 1</a>: The Phoenix Suns Go Over-the-Air, Fans and Franchise Valuation, Attention and Customer Acquisition</li>
<li><a href="https://stratechery.com/2023/shopify-exits-logistics-the-shopify-logistics-side-quest-whither-buy-with-prime/">May 8</a>: Shopify Exits Logistics, The Shopify Logistics Side Quest, Whither Buy with Prime</li>
<li><a href="https://stratechery.com/2023/free-meta-open-sources-another-ai-model-moats-and-open-source-apple-and-meta/">May 10</a>: Meta Open Sources Another AI Model, Moats and Open Source, Apple and Meta</li>
<li><a href="https://stratechery.com/2023/reddit-revolt-apollo-and-reddits-changes-complement-complaints/">June 12</a>: Reddit Revolt, Apollo and Reddit’s Changes, Complement Complaints</li>
<li><a href="https://stratechery.com/2023/ev-charging-standards-teslas-strategy-teslas-reward/">June 21</a>: EV Charging Standards, Tesla’s Strategy, Tesla’s Reward</li>
<li><a href="https://stratechery.com/2023/starlink-solution-starlink-experience-starlink-implications/">June 28</a>: Starlink Solution, Starlink Experience, Starlink Implications</li>
<li><a href="https://stratechery.com/2023/microsoft-can-acquire-activision-the-ftc-vs-the-record-the-ftcs-failed-vendetta/">July 12</a>: Microsoft Can Acquire Activision, The FTC vs. the Record, The FTC’s Failed Vendetta</li>
<li><a href="https://stratechery.com/2023/adyen-earnings-adyens-european-context-adyen-vs-stripe/">August 21</a>: Adyen Earnings, Adyen’s European Context, Adyen vs. Stripe</li>
<li><a href="https://stratechery.com/2023/amazon-and-shopify-shopify-and-its-merchants-the-payments-question/">September 6</a>: Amazon and Shopify, Shopify and Its Merchants, The Payments Question</li>
<li><a href="https://stratechery.com/2023/the-huawei-mate-60-pro-7nm-background-implications-and-reactions/">September 11</a>: The Huawei Mate 60 Pro, 7nm Background, Implications and Reactions</li>
<li><a href="https://stratechery.com/2023/unitys-business-model-change-unitys-strategy-unity-leadership-questions/">September 18</a>: Unity’s Business Model Change, Unity’s Strategy, Unity Leadership Questions</li>
<li><a href="https://stratechery.com/2023/spotify-subscription-audiobooks-casual-fans-and-bundles-spotifys-goals/">October 4</a>: Spotify Subscription Audiobooks, Casual Fans and Bundles, Spotify’s Goals</li>
<li><a href="https://stratechery.com/2023/realtors-lose-in-court-zillow-and-real-estate-aggregation-from-franchises-to-businesses/">November 8</a>: Realtors Lose in Court, Zillow and Real Estate Aggregation, From Franchises to Businesses</li>
<li><a href="https://stratechery.com/2023/disney-earnings-disney-3-0-streaming-and-sports/">November 13</a>: Disney Earnings, Disney 3.0, Streaming and Sports</li>
<li><a href="https://stratechery.com/2023/the-college-football-playoff-events-over-inventory-nascars-new-deal/">December 4</a>: The College Football Playoff, Events Over Inventory, NASCAR’s New Deal</li>
<li><a href="https://stratechery.com/2023/google-loses-antitrust-case-to-epic-the-differences-between-apple-and-google-revisited-the-tying-question/">December 12</a>: Google Loses Antitrust Case to Epic; The Differences Between Apple and Google, Revisited; The Tying Question</li>
<li><a href="https://stratechery.com/2023/netflixs-data-drop-power-laws-netflixs-motivations/">December 13</a>: Netflix’s Data Drop, Power Laws, Netflix’s Motivations</li>
</ul>
<p><a href="https://stratechery.com/2023/the-unified-content-business-model/"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/05/unifiedcontent-2.png?resize=640%2C401&amp;ssl=1" alt="A drawing of The NBA's Hole in the Funnel" width="640" height="401" class="aligncenter size-full wp-image-10906" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/05/unifiedcontent-2.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/05/unifiedcontent-2.png?resize=300%2C188&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/05/unifiedcontent-2.png?resize=1024%2C642&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/05/unifiedcontent-2.png?resize=768%2C481&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/05/unifiedcontent-2.png?resize=1005%2C630&amp;ssl=1 1005w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>I am so grateful to the subscribers that make it possible for me to do this as a job. I wish all of you a Merry Christmas and Happy New Year, and I’m looking forward to a great 2024!</p>
]]></description>
      <pubDate>Thu, 21 Dec 2023 11:43:07 +0000</pubDate>
      <link>https://stratechery.com/2023/the-2023-stratechery-year-in-review/</link>
      <dc:creator>Stratechery by Ben Thompson</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4314094922</guid>
    </item>
    <item>
      <title><![CDATA[Clickbait Remover for YouTube]]></title>
      <description><![CDATA[replaces ridiculous thumbnails with an image from the video, <a href="https://github.com/pietervanheijningen/clickbait-remover-for-youtube">open-source</a> and <a href="https://addons.mozilla.org/firefox/addon/clickbait-remover-for-youtube">available for Firefox</a> <a href="https://waxy.org/2023/12/clickbait-remover-for-youtube/">#</a>]]></description>
      <pubDate>Tue, 19 Dec 2023 22:03:01 +0000</pubDate>
      <link>https://chromewebstore.google.com/detail/clickbait-remover-for-you/omoinegiohhgbikclijaniebjpkeopip</link>
      <dc:creator>Waxy.org</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4312529860</guid>
    </item>
    <item>
      <title><![CDATA[DNA Lounge: Wherein EDM is not a genre]]></title>
      <description><![CDATA[<a href="http://music.ishkur.com/"><img src="https://www.dnalounge.com/backstage/log/2023/12/ishkur.jpg" data-size="1920x1591" style="width: 40%; height: auto; max-width: 1920px; max-height: 1591px; border: 1px solid; box-sizing: border-box; margin: 0 0 1em 1em; float: right; clear: right;"></a>First of all, thank you all very much for your generous <a href="https://www.dnalounge.com/backstage/log/2023/12/15.html">donations yesterday!</a> We all appreciate it so much. <p>Second, it has come to my attention that not all of you are familiar with <a href="http://music.ishkur.com/">Ishkur's Guide to Electronic Music</a>, so let's work on that. This is going to consume your entire Saturday. Sorry not sorry. </p><p>Just zoom in and start clicking on the big dots. Maybe start with a genre with which you have a passing familiarity, and let the anger wash over you. </p><p>It hasn't been updated since 2019, so it is missing some <i>arriviste</i> abominations like Hyperpop, but it is still amazingly comprehensive, a living relic of what the Good Web used to be.</p>]]></description>
      <pubDate>Sat, 16 Dec 2023 21:57:01 +0000</pubDate>
      <link>https://www.dnalounge.com/backstage/log/2023/12/16.html</link>
      <dc:creator>jwz</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4309783362</guid>
    </item>
    <item>
      <title><![CDATA[Writers who operate.]]></title>
      <description><![CDATA[<p>Occasionally folks tell me that I should “write full time.” I’ve thought about this a lot, and have rejected that option because I believe that writers who operate (e.g. write concurrently with holding a non-writing industry role) are best positioned to keep writing valuable work that advances the industry.
This is a lightly controversial view, so I wanted to pull together my full set of thoughts on the topic.</p>
<p>The themes I want to work through are:</p>
<ul>
<li>Evaluating believability for operators is much easier than for non-operators</li>
<li>The pursuit of distribution changes what and how authors write (e.g. pulls towards topics that are trending)</li>
<li>How writing full-time anchors you on writers and audiences, whereas part-time writing allows a third balancing perspective (the folks you work with in the context of your industry work)</li>
<li>Invalidation events happen in industry (e.g. move from ZIRP to post-ZIRP management environment) but it’s difficult for non-operators to understand implications with conviction</li>
<li>Operating is an endless source of new topics (e.g. the topics in <em><a href="https://lethain.com/eng-execs-primer/">An Engineering Executive’s Primer</a></em> are the direct outcome of my operating)</li>
<li>Part-time writers can still get better at writing, although maybe slower than full-time writers</li>
</ul>
<p>I’m not particularly interested in convincing someone else whether this is the right choice for them, but hopefully at the end you’ll understand my perspective a bit.</p>
<h2 id="examples">Examples</h2>
<p>There are many writers out there who fit into the “writers who operate” archetype. A few examples: <a href="https://charity.wtf/">Charity Majors</a>, <a href="https://blog.danielna.com/">Dan Na</a>, <a href="https://eugeneyan.com/">Eugene Yan</a>, <a href="https://hunterwalk.com/">Hunter Walk</a>, <a href="https://noidea.dog/">Tanya Reilly</a>.</p>
<p>Venture capitalists use “operators” to indicate folks who’ve worked in industry as opposed to in venture, but I don’t make that nuance here–working in venture capital is “operating” in my usage. Similarly, you could try to cohort various writers by the volume of their writing, but that’s not too important to me–someone who hasn’t written anything in the past three years probably isn’t who we’re talking about, but generally this is a broad church.</p>
<h2 id="believability">Believability</h2>
<p>Believability is a Ray Dalio and Bridgewater idea, and experiencing some public scrutiny of late
(e.g. <a href="https://www.bloomberg.com/opinion/articles/2023-11-07/bridgewater-had-believability-issues">Bridgewater Had Believability Issues</a>), but at its core the observation still rings very true: we should weigh advice more heavily from folks who we have reason to believe. Cedric Chen has a few tech-centric pieces on Believability, that are interesting reads: <a href="https://commoncog.com/believability-in-practice/">Believability in Practice</a> and <a href="https://commoncog.com/verifying-believability/">Verifying Believability</a>.</p>
<p>First and foremost, I appreciate writers who operate because they directly experience the consequences of their choices. Cedric’s second piece tells the story of “Q”, a widely read tech leader who’s had a mixed career, as an example of needing to verify believability. I agree with that observation, but the only reason we’re able to evaluate the advice at all is because that writer is an operator. If they weren’t an operator, we wouldn’t be able to evaluate their believability at all.</p>
<p>Operating is, for me, remaining accountable for what I write.
What I write is a pretty direct reflection of what I believe
and how I operate at the time that I write it.</p>
<h2 id="distribution-shapes-writing">Distribution shapes writing</h2>
<p>As you watch new writers come onto the “scene,” you’ll often notice a shift from a genuine passion in a given niche to engaging in topical events and controversy. The reality is that it’s exceptionally hard to write something that generates a lot of discussion, and it’s even harder to repeat that formula consistently. After folks have the experience of writing a popular piece, they often get sucked into the desire to produce more, and this ultimately means seeking wider distribution.</p>
<p>Reliable distribution is a hard thing to find on the internet, and one of the most obvious opportunities for distribution is to engage in controversy. Write something controversial, engaging in an existing controversy, subtweet someone who did something dumb, whatever. The problem with this is that it pulls you out of picking topics, and instead towards picking positions.</p>
<p>Ultimately, I don’t believe you can say anything particularly novel or interesting in reaction to a trending topic. There are certainly <em>takes</em> that are more or less nuanced, but mobilizing the base is not <a href="https://lethain.com/advancing-the-industry/">advancing the industry</a>.</p>
<p>This problem is even more acute when you’re trying to make a financial living out of your writing, because matching your message to your audience becomes that much more important. You’re going to spend even more time tuning your messaging to resonate with what the audience currently believes than you are on writing something new.</p>
<h2 id="taste-is-tribal">Taste is tribal</h2>
<p>A year or two back, Brie Wolfson wrote a very compelling take on taste, <a href="https://www.are.na/blog/notes-on-taste">Notes on Taste</a>. Reading those notes, I want nothing more than to identify as someone with taste. However, perhaps out of jealousy, I’m a bit of a taste-skeptic. I view taste principally as tribal, and find that identity-through-taste is a frequent driver of boring takes and perspectives.</p>
<p>As an example, think about Marc Andreessen’s recent <a href="https://a16z.com/the-techno-optimist-manifesto/">The Techno-Optimist Manifesto</a>. Regardless of how you personally feel about the manifesto, I’m confident that you know <em>exactly</em> how you’re <em>supposed</em> to feel about it within each of the various tribes you participate in. Further, I’m certain that you knew what you’re supposed to feel about it without even reading it. That’s not a recipe for interesting discussion.</p>
<p>This is particularly hard to navigate as a full-time writer, because you’ll become more focused on the tribes of other writers and the tribes of your audiences, and your standing in both is important to your success. As an operator, those tribes will matter to you, but fitting into their expectations is not essential to your success (and your survival,
if this is your primary source of financial stability). There are, of course, other tribes you have to pay attention to from your operating work, but those tribes will vary across writers, such that in aggregate they allow for a broader expression.</p>
<h2 id="invalidation-events">Invalidation events</h2>
<p>In 2020, Ranjan Roy wrote <a href="https://www.readmargins.com/p/zirp-explains-the-world">ZIRP explains the world</a>, which is an interesting dive into how zero interest rate policy was shaping so many dimensions of the economy. Among other things, ZIRP created the conditions for <a href="https://lethain.com/productivity-in-the-age-of-hypergrowth/">hypergrowth companies</a> and funded the industry’s shift towards larger teams driving revenue growth rather than margins. People operating in the industry today have felt this transition in layoffs, a slower hiring process, and a notable shift in the dynamic between employees and employers.</p>
<p>When I meet with industry peers, we spend most of our time discussing either tactical problems related to this shift (e.g. how do we <a href="https://lethain.com/benchmarking/">benchmark costs properly</a> to justify engineering headcount) or wondering if we should hide in a hole for several years hoping that the industry reverts to kinder time.
Despite that, I see a large swath of folks pitching ZIRP-era content and strategies to struggling leaders.</p>
<p>The folks still making their ZIRP-era talking points aren’t bad people, but they are giving bad advice, and it’s because they’ve failed to recognize an “invalidation event.” Good advice <a href="https://lethain.com/eng-strategies/">is grounded in accurately diagnosing circumstances</a>, and folks operating in the industry are best positioned to update their advice
because they’re directly experience the industry’s changes rather than observing them from a distance.</p>
<p>It’s not that non-operators don’t detect these shifts, they certainly do, but it’s exceptionally challenging to quickly build confidence in a large change when operating on second hand information. Operators get a lot wrong too, but it’s my experience that self-aware operators will get direct information earlier and be in a better position to evaluate it.</p>
<h2 id="endless-topics">Endless topics</h2>
<p>Writing as an operator, I have a constant source of new topics. More than just <em>any</em> topics, these topics are the most challenging topics that engineering organizations and companies encounter. All three of my books are directly grounded in the topics I was struggling with at the time. <em>An Elegant Puzzle</em> focused on the challenge of managing within a hypergrowth company. <em>Staff Engineer</em> documented the various ways that senior engineers were finding leadership impact outside of management roles. <em>An Engineering Executive’s Primer</em> tracks what I’ve learned from operating in executive roles. There’s no way that I personally could have written these without the benefit of operating in those environments.</p>
<p>Conversely, I see folks who leave operating roles often fall into a rut of repeating topics. They want to say something, but they’re not encountering new problems, so they fall back onto their fixed experiences in the industry and come back with the same ideas.</p>
<h2 id="writing-well-and-frequently">Writing well and frequently</h2>
<p>Occasionally folks make the assertion that it’s hard to improve as a writer if you’re only writing part-time. There’s a kernel of truth in this observation: writing up my notes on finishing my 3rd book, <em><a href="https://lethain.com/publishing-eng-execs-primer/">Primer</a></em>, I described each book that I write as a separate education. Even on my third book, I’m still learning so much about how to write books. I’m not sure the <em>ideas</em> are getting better, but the <em>books</em> containing those ideas certainly are.</p>
<p>That being said, I’ve found that having the space to explore in my writing has created so much room for improvement that I wouldn’t have found writing under a structured publishing schedule. Free-form writing has allowed me to write when and where I have energy, and to stop writing where I don’t have much energy (e.g. I starting work on <em><a href="https://infraeng.dev/">Infrastructure Engineering</a></em> and then subsequently paused it). It’s also allowed me to experiment with formats and mediums: I’ve written this blog, written books, spoken at conferences, done a YouTube recording, and so on. If I was focused on very specific outcomes, I’d likely be experimenting less and trying to “exploit” the mediums more, which would focus my learning.</p>
<p>It’s <em>possible</em> I would have improved more as a writer if I did it full-time, but I’m confident that I’m not a <em>meaningfully worse</em> writer due to the part-time nature of my writing. I also lightly hold the belief that I’m a better writer as a result of not writing full-time.
Writing on a schedule is, in my opinion, not at all fun. Further, most of my best writing is stuff that I originally think isn’t even worth writing down, which would translate poorly into a world where I need to predictably write good stuff.</p>
<hr>
<p>Echoing my earlier comments, not trying to convince anyone to switch sides on this topic, and many non-operating writers are quite good. There are many techniques you can use to address the above topics (e.g. maintaining an active network in industry), but generally those techniques apply equally (or better) to writers who operator (e.g. writers can probably get access to any company in the industry, but you couldn’t convince me that’s not equally true for operators outside of–maybe–getting visibility into a small pool of direct competitors).</p>]]></description>
      <pubDate>Thu, 07 Dec 2023 17:00:00 +0000</pubDate>
      <link>https://lethain.com/writers-who-operate/</link>
      <dc:creator>Irrational Exuberance</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4301441947</guid>
    </item>
    <item>
      <title><![CDATA[Detour: Finishing the workbench]]></title>
      <description><![CDATA[When last I reported on the workbench, I’d flipped it right side up, applied some finish, and drilled the dog holes.
My next step was to install the shelf boards. Like everything else in the bench, they’re made up of 1¼" boards. The only trick was to notch out two boards to fit around the legs, which wasn’t too tough.
I didn’t bother to screw them into cleats. I suspect gravity will keep them in place just fine.]]></description>
      <pubDate>Tue, 14 Nov 2023 01:00:00 +0000</pubDate>
      <link>https://boat.karlnelson.net/posts/42-workbench/</link>
      <dc:creator>Building a Beg-Meil</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4277046160</guid>
    </item>
    <item>
      <title><![CDATA[Owl (Comic)]]></title>
      <description><![CDATA[
        <p>From 2022, when my husband had facial hair. <br>
<img src="https://kottke.org/plus/misc/images/owl-ez.jpg" width="1000" height="8046" border="0" alt="owl-ez.jpg"><br>
</p>

 <p><strong>Tags:</strong> <a href="https://kottke.org/tag/comics">comics</a></p>

 <p>💬 <a href="https://kottke.org/23/12/owl-comic">Join the discussion on kottke.org</a> →</p>

    ]]></description>
      <pubDate>Wed, 06 Dec 2023 16:00:59 +0000</pubDate>
      <link>https://kottke.org/23/12/owl-comic</link>
      <dc:creator>kottke.org</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4299764394</guid>
    </item>
    <item>
      <title><![CDATA[Regretful Accelerationism]]></title>
      <description><![CDATA[<p><em><a href="https://www.penguinrandomhouse.com/books/209887/ready-player-one-by-ernest-cline/">Ready Player One</a></em>, the book that was <a href="https://www.bloomberg.com/features/2016-facebook-virtual-reality/">issued to every new Oculus employee</a> once upon a time, describes its world in a way that was perhaps edgy in 2011 but seems rather cliché today:</p>
<blockquote><p>
  “You’re probably wondering what happened before you got here. An awful lot of stuff, actually. Once we evolved into humans, things got pretty interesting. We figured out how to grow food and domesticate animals so we didn’t have to spend all of our time hunting. Our tribes got much bigger, and we spread across the entire planet like an unstoppable virus. Then, after fighting a bunch of wars with each other over land, resources, and our made-up gods, we eventually got all of our tribes organized into a ‘global civilization.’ But, honestly, it wasn’t all that organized, or civilized, and we continued to fight a lot of wars with each other. But we also figured out how to do science, which helped us develop technology. For a bunch of hairless apes, we’ve actually managed to invent some pretty incredible things. Computers. Medicine. Lasers. Microwave ovens. Artificial hearts. Atomic bombs. We even sent a few guys to the moon and brought them back. We also created a global communications network that lets us all talk to each other, all around the world, all the time. Pretty impressive, right?</p>
<p>  “But that’s where the bad news comes in. Our global civilization came at a huge cost. We needed a whole bunch of energy to build it, and we got that energy by burning fossil fuels, which came from dead plants and animals buried deep in the ground. We used up most of this fuel before you got here, and now it’s pretty much all gone. This means that we no longer have enough energy to keep our civilization running like it was before. So we’ve had to cut back. Big-time. We call this the Global Energy Crisis, and it’s been going on for a while now.
</p></blockquote>
<p>What is striking about this depiction is not the concept of a global energy crisis, or the lack of imagination about alternative energy and the tremendous progress that has been made over the last decade in separating emissions from energy production.  Rather, it’s the disconnect between the global communications network and any sort of negative externalities; the former just happened to come about at the same time the real world fell apart.</p>
<p>This is a theme throughout the book, and many other depictions of virtual reality in science fiction; the physical world is a hellscape, while the online world is this oasis (pun intended) of vitality and adventure, and, crucially, one that is programmed and consistent. The central conceit of <em>Ready Player One</em> is that the creator of OASIS (I told you it was a pun!), the virtual world in which most of the story happens, left an easter egg in said world, the discovery of which would mean ownership of the company that made OASIS available to anyone on earth.</p>
<p>I’ve expressed my skepticism of a unitary shared environment previously, in 2021’s <a href="https://stratechery.com/2021/metaverses/">Metaverses</a>; in that case I questioned a similar conceit in <em>Snow Crash</em>, the other origin text in terms of the Metaverse.</p>
<blockquote><p>
  In this way the Metaverse is actually a unifying force for Stephenson’s dystopia: there is only one virtual world sitting beyond a real world that is fractured between independent entities. There are connections in the real world — roads and helicopters and airplanes exist — but those connections are subject to tolls and gatekeepers, in contrast to the interoperability and freedom of the Metaverse.</p>
<p>  In other words, I think that Stephenson got the future exactly backwards: in our world the benevolent monopolist is the reality of atoms. Sure, we can construct borders and private clubs, just as the Metaverse has private property, but interoperability and a shared economy are inescapable in the real world; physical constraints are community. It is on the Internet, where anything is possible, that walled gardens flourish. Facebook has total control of Facebook, Apple of iOS, Google of Android, and so on down the stack. Yes, HTTP and SMTP and other protocols still exist, but it’s not an accident those were developed before anyone thought there was money to be made online; today’s APIs have commercial intent built-in from first principles.
</p></blockquote>
<p>I think this was directionally correct: the real world is one place, and the online world many, but what I didn’t appreciate even as recently as two years ago was that the online world as I knew it then was subject to more constraints than I realized; it is only as those constraints disappear that the idea of the Internet as a place of refuge seems ever more dubious.</p>
<h3>Why Web Pages Suck</h3>
<p>In 2016 I set out to answer a simple question: <a href="https://stratechery.com/2015/why-web-pages-suck/">Why Web Pages Suck</a>.</p>
<blockquote><p>
  From the publishers’ perspective, the fixed cost of a printing press not only provided a moat from competition, it also meant that publishers displayed ads on their terms. To use the <a href="https://stratechery.com/2015/netflix-and-the-conservation-of-attractive-profits/">Conservation of Attractive Profits model</a> that I discussed last week, publishers were exceptionally profitable for having integrated content and ads in this way:</p>
<p>  <a href="https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/print.png?ssl=1"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/print.png?resize=640%2C98&amp;ssl=1" alt="print" width="640" height="98" class="aligncenter size-large wp-image-1757" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/print.png?resize=1024%2C157&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/print.png?resize=300%2C46&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/print.png?resize=768%2C118&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/print.png?resize=1200%2C184&amp;ssl=1 1200w, https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/print.png?w=1900&amp;ssl=1 1900w, https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/print.png?w=1280&amp;ssl=1 1280w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>  As the description of programmatic advertising should make clear, though, that is no longer the case. Ad spots are effectively black boxes from the publisher perspective, and direct windows to the user from the ad network’s perspective. This has both modularized content and moved ad networks closer to users:</p>
<p>  <a href="https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/internet.png?ssl=1"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/internet.png?resize=640%2C149&amp;ssl=1" alt="internet" width="640" height="149" class="aligncenter size-large wp-image-1756" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/internet.png?resize=1024%2C238&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/internet.png?resize=300%2C70&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/internet.png?resize=768%2C178&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/internet.png?resize=1200%2C279&amp;ssl=1 1200w, https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/internet.png?w=1887&amp;ssl=1 1887w, https://i0.wp.com/stratechery.com/wp-content/uploads/2015/07/internet.png?w=1280&amp;ssl=1 1280w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>  Here’s the simple truth: if you’re competing in a modular market, as today’s publishers are, profits are slim at best, and you generally take what you can get from a revenue perspective. To put it another way, publishers today have about as much bargaining power as do Uber drivers, and we’ve seen how that has gone.
</p></blockquote>
<p>The very next week I would write <a href="https://stratechery.com/2015/aggregation-theory/">Aggregation Theory</a>:</p>
<blockquote><p>
  The last several articles on Stratechery have formed an unintentional series:</p>
<ul>
<li><a href="https://stratechery.com/2015/airbnb-and-the-internet-revolution/">Airbnb and the Internet Revolution</a> described how Airbnb and the sharing economy have commoditized trust, enabling a new business model based on aggregating resources and managing the customer relationship</li>
<li><a href="https://stratechery.com/2015/netflix-and-the-conservation-of-attractive-profits/">Netflix and the Conservation of Attractive Profits</a> placed this commodification/aggregation concept into Clay Christensen’s <em>Conservation of Attractive Profits</em> framework, which states that profits are earned by the integrated provider in a value chain, and that profits shift when another company successfully modularizes the incumbent and integrates another part of the value chain</li>
<li><a href="https://stratechery.com/2015/why-web-pages-suck/">Why Web Pages Suck</a> was primarily about the effect of programmatic advertising on web page performance, but in the conclusion I noted that the way in which ad networks were commoditizing publishers also fit the “Conservation of Attractive Profits” framework</li>
</ul>
<p>  In retrospect, there is a clear thread. In fact, I believe this thread runs through nearly every post on Stratechery, not just the last three. I am calling that thread <em>Aggregation Theory</em>.
</p></blockquote>
<p>In a world of abundance like the web, <a href="https://stratechery.com/2014/economic-power-age-abundance/">economic power</a> came from marshaling demand, and that demand was marshaled by being better at discovery, not distribution (after all, distribution was free; that’s why there was so much abundance in the first place!). Entities that controlled demand, then, had power in the value chain, which meant they were best placed to integrate into advertising in particular, leaving everyone else in the value chain as modularized pieces without any meaningful pricing power.</p>
<p>In this world Google and Facebook were the biggest winners — <a href="https://stratechery.com/2017/the-super-aggregators-and-the-russians/">I called them Super Aggregators</a> — but they were different when it came to the suppliers of their respective value chains. Facebook’s content was user-generated, and exclusive to Facebook. What was so compelling about this economically is that user-generated content is free, which meant that Facebook was more fully integrated than Google, which relied on the rest of the web to provide the content that made its search engine useful.</p>
<h3>Free AI</h3>
<p>The web does, of course, include lots of free content, much of which accrues to Google’s benefit: Wikipedia, Reddit, blogs, etc., are themselves user-generated content but on the open web. Lots of other free content, though, was monetized by ads, produced by publications employing professional writers. This was an inherently difficult business, though, thanks to that free distribution: that meant there was infinite competition, which meant the only route to profitability was continuing to cut costs.</p>
<p>What, then, should we have expected to happen once the world gained the means of generating human-level content at zero marginal cost? From <a href="https://futurism.com/sports-illustrated-ai-generated-writers">Futurism</a>:</p>
<blockquote><p>
  There was nothing in Drew Ortiz’s author biography at Sports Illustrated to suggest that he was anything other than human. “Drew has spent much of his life outdoors, and is excited to guide you through his never-ending list of the best products to keep you from falling to the perils of nature,” it read. “Nowadays, there is rarely a weekend that goes by where Drew isn’t out camping, hiking, or just back on his parents’ farm.”</p>
<p>  The only problem? Outside of Sports Illustrated, Drew Ortiz doesn’t seem to exist. He has no social media presence and no publishing history. And even more strangely, his profile photo on Sports Illustrated is for sale on a website that sells AI-generated headshots, where he’s described as “neutral white young-adult male with short brown hair and blue eyes.”…</p>
<p>  According to a second person involved in the creation of the Sports Illustrated content who also asked to be kept anonymous, that’s because it’s not just the authors’ headshots that are AI-generated. At least some of the articles themselves, they said, were churned out using AI as well.
</p></blockquote>
<p>What makes this article particularly poignant is the property involved: Sports Illustrated was an icon of the print era; it transitioned to the web somewhat, in a partnership with CNN, but over the last several years it has laid off staff and passed from hand to increasingly unethical hand. Unethical, that is, if you prioritize journalistic integrity over making money: it’s hard to escape the sense that the two are irreconcilable. Journalism costs money, which means an uncompetitive cost structure, and Sports Illustrated isn’t the only one. Continuing from Futurism:</p>
<blockquote><p>
  As powerful generative AI tools have debuted over the past few years, many publishers have quickly attempted to use the tech to churn out monetizable content…We caught CNET and Bankrate, both owned by Red Ventures, publishing barely-disclosed AI content that was filled with factual mistakes and even plagiarism; in the ensuing storm of criticism, CNET issued corrections to more than half its AI-generated articles. G/O Media also published AI-generated material on its portfolio of sites, resulting in embarrassing bungles at Gizmodo and The A.V. Club. We caught BuzzFeed publishing slapdash AI-generated travel guides. And USA Today and other Gannett newspapers were busted publishing hilariously garbled AI-generated sports roundups that one of the company’s own sports journalists described as “embarrassing,” saying they “shouldn’t ever” have been published.
</p></blockquote>
<p>These, of course, are the companies that were caught; in time, the AI will become good enough that no one will know what is real and what is not.</p>
<h3>Google’s Missing Constraints</h3>
<p>This wasn’t the only AI-generated content story of the week, though; this thread on X went viral as well:</p>
<div align="center">
<blockquote class="twitter-tweet" data-dnt="true">
<p lang="en" dir="ltr">We pulled off an SEO heist using AI.</p>
<p>1. Exported a competitor’s sitemap<br>2. Turned their list of URLs into article titles<br>3. Created 1,800 articles from those titles at scale using AI</p>
<p>18 months later, we have stolen:</p>
<p>– 3.6M total traffic<br>– 490K monthly traffic</p>
<p>— Jake Ward (@jakezward) <a href="https://twitter.com/jakezward/status/1728032639402037610?ref_src=twsrc%5Etfw">November 24, 2023</a></p></blockquote>
<p> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p></div>
<p>That Google faces a challenge with SEO spam is obvious to anyone who uses the search engine. What is notable about this fight is that it is, from a certain perspective, simply too much of a good thing. Google is so important that every site on the Internet works to optimize itself for Google search; in other words, Google’s suppliers are incentivized to work for Google.</p>
<p>That was all fine and good in the early 2000s when Google came to prominence, and content on the Internet was yes, freely distributed, but required significant marginal costs to produce (in time if not in money). What changed is that advertising became sufficiently lucrative that it was worth spending that marginal cost in a systemic way to get more traffic; thus began the cat-and-mouse game that is SEO optimization and Google algorithm updates (which, I should note, have already demoted the site featured in that thread).</p>
<p>AI-generated content, though, will likely push the situation past the breaking point: yes, the amount of money that can be made from advertising by any individual page is continually decreasing, but if pages can be produced for no marginal cost then the number of pages that will be produced is effectively infinite.</p>
<p>This is one update to my thinking: when I wrote <a href="https://stratechery.com/2023/ai-and-the-big-five/">AI and the Big Five</a> at the beginning of this year, I expressed the most concern about Google not because I doubted their AI chops, but rather because a chatbot approach seemed to threaten their advertising model:</p>
<blockquote><p>
  Google has long been a leader in using machine learning to make its search and other consumer-facing products better (and has offered that technology as a service through Google Cloud). Search, though, has always depended on humans as the ultimate arbiter: Google will provide links, but it is the user that decides which one is the correct one by clicking on it. This extended to ads: Google’s offering was revolutionary because instead of charging advertisers for impressions — the value of which was very difficult to ascertain, particularly 20 years ago — it charged for clicks; the very people the advertisers were trying to reach would decide whether their ads were good enough.
</p></blockquote>
<p>If there aren’t links to click — because you simply got the answer — then the ads won’t be worth as much; what is even worse is if the links are all unreliable. In this view generative AI answers are actually a way out for Google in the long run: if it can no longer trust the web for supply, it will need to integrate backwards into its own.</p>
<h3>Social Media Inhumanity</h3>
<p>That, then, is the first constraint on the online world that is slipping away: the elimination of marginal cost for content creation. The second has been happening longer, and is represented by TikTok and its assault on Meta’s seemingly impregnable dominance of social media: user-generated content used to be constrained by who you knew, but TikTok (and YouTube) simply surfaced the most compelling content across the entire network. <a href="https://stratechery.com/2022/instagram-tiktok-and-the-three-trends/">I’ve already written</a> about the potential intersection of these two trends: custom content generated specifically for every user.</p>
<p>There are already examples of <a href="https://twitter.com/heyronir/status/1730818748981158299">AI influencers</a> and Meta itself is experimenting with <a href="https://about.fb.com/news/2023/09/introducing-ai-powered-assistants-characters-and-creative-tools/">AI celebrities</a>; one of the fastest growing AI startups, meanwhile, is reportedly <a href="https://beta.character.ai/">character.ai</a>, which lets you interact with your own AI friend. Just last week Roblox CEO David Baszucki <a href="https://stratechery.com/2023/an-interview-with-roblox-ceo-david-baszucki-about-advertising-and-ai/#gamingcomms">spoke favorably to me</a> about the possibility of interactive NPCs helping boost Roblox from not just a gaming platform but to a “3D communications platform.”</p>
<p>Still, as Baszucki made clear, the goal is still actual social networking: surely that will always be better than interacting with an AI! Or will it? It seems to me that perhaps the most important constraint on the web — to actually interact with people as if they are, well, people —&nbsp;disappeared a long time ago. It doesn’t take much time or prominence on X or any other social networking platform to realize that it is nothing like real life, and is only tolerable if you view the entire enterprise as something to be laughed at and, still, occasionally, learned from.</p>
<p>I do strongly believe that an essential quality for success, both on the Internet and off, is to not take social media too seriously. Humans simply weren’t meant to get feedback from thousands or sometimes millions of anonymous strangers all at once; the most successful creators I know are the most wary of getting sucked in to the online maelstrom. One wonders — hopes — that we can someday reach a similar conclusion collectively, and start treating X in particular more like the comments section and less like an assignment editor.</p>
<h3>The Current Thing</h3>
<p>In this the demise of the ad-supported Internet may be a blessing: the most sustainable model for media to date is subscriptions, and subscriptions mean answering to your subscribers, not social media generally. This isn’t perfect — we end up with <a href="https://stratechery.com/2020/never-ending-niches/">never-ending niches</a> that demand a particular point of view from their publications of choice — but it is at least a point of view that is something other than the amorphous rage and current thing-ism that dominates the web. I wrote in an Article about <a href="https://stratechery.com/2022/the-current-thing/">The Current Thing</a> in 2022:</p>
<blockquote><p>
  This dynamic is exactly what the meme highlights: sure, the Internet makes possible a wide range of viewpoints — you can absolutely find critics of Black Lives Matter, COVID policies, or pro-Ukraine policies — but the Internet, thanks to its lack of friction and instant feedback loops, also makes nearly every position but the dominant one untenable. If everyone believes one thing, the costs of believing something else increase dramatically, making the consensus opinion the only viable option; this is the same dynamic in which publishers become dependent on Google or Facebook, or retailers on Amazon, just because that is where money can be made.</p>
<p>  Again, to be very clear, that does not mean the opinion is wrong; as I noted, I think the resonance of this meme is orthogonal to the rightness of the position it is critiquing, and is instead concerned with the sense that there is something unique about the depth of sentiment surrounding issues that don’t necessarily apply in any real-life way to the people feeling said sentiment.
</p></blockquote>
<p>There was a “current thing” in <em>Ready Player One</em>: the easter egg, and the protagonist’s progress in finding it stirred up worldwide interest. Again, though, this portrayal doesn’t match reality: we don’t have a unitary online world designed by a master architect driving offline interest; we have a churning mass of users absent their humanity coalescing around schelling points that are in many respects incidental to the mass hysteria they produce. The result is out of anyone’s control.</p>
<p>To put it more bluntly, despite the fact my personal and professional life are centered on — and blessed by — the Internet, I’m increasingly skeptical that it can be, as it was in <em>Ready Player One</em>, portrayed as a distinct development from a world increasingly in turmoil. Correlation may not be causation, but sometimes it absolutely is.</p>
<p>In this I do, with reluctance, adopt an accelerationist view of progress; call it r/acc: regretful accelerationism. I suspect we humans do better with constraints; the Internet stripped away the constraint of physical distribution, and now AI is removing the constraint of needing to actually produce content. That this is spoiling the Internet is perhaps the best hope for finding our way back to what is real. Let the virtual world be one of customized content for every individual, with the assumption it is all made-up; some may lose themselves to the algorithm and AI friends, but perhaps more will realize that the only way to survive online is to pay it increasingly little heed.</p>
]]></description>
      <pubDate>Tue, 05 Dec 2023 15:29:10 +0000</pubDate>
      <link>https://stratechery.com/2023/regretful-accelerationism/</link>
      <dc:creator>Stratechery by Ben Thompson</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4298626046</guid>
    </item>
    <item>
      <title><![CDATA[Difficult and Worthwhile]]></title>
      <description><![CDATA[<blockquote>
<p style="font-weight: 400; text-align: left;"><em>But perhaps the great work of art has less importance in itself than in the ordeal it demands of a man and the opportunity it provides him of overcoming his phantoms and approaching a little closer to his naked reality.</em></p>
<p style="font-weight: 400; text-align: left;"><em>—Albert Camus</em></p>
</blockquote>
<p style="font-weight: 400;"><span style="color: #333399;"><strong>Note</strong>: This article contains passages borrowed from various sections of the manuscript-in-progress for my next book, <em>Be Extraordinary: Philosophical Advice for Photographic (and Other) Artists</em>. For those who are interested, in the coming weeks I will announce an upcoming online presentation touching on these and other themes from the book, followed by a live Q&amp;A session. I look forward to answering (to the best of my abilities) your philosophical questions.</span></p>
<p style="font-weight: 400;">Art-making may produce many kinds of rewards: some external and practical (e.g., income, social interaction, recognition, prestige), and some inner. Many artists pursue explicitly one or more of these rewards, but some artists have been known to practice their work in certain manners and styles despite knowing it may cause them the opposites of some of these rewards: financial hardship, social isolation, anxiety, misery, even danger. Why? One answer is, flow—the state of mind described by psychologist Mihaly Csikszentmihalyi as “optimal experience.” Flow arises from intense, prolonged investment of attention in some activity, to such a degree that no attention is left over for other preoccupations, such as troubling thoughts, anxiety, or discomfort.</p>
<p style="font-weight: 400;">In his book, <em><a href="https://amzn.to/47pr6Hv" target="_blank" rel="noopener">Flow: The Psychology of Optimal Experience</a> [ad]</em>, Csikszentmihalyi wrote, “Contrary to what we usually believe . . . the best moments in our lives, are not the passive, receptive, relaxing times—although such experiences can also be enjoyable, <em>if we have worked hard to attain them</em>. The best moments usually occur when a person’s body or mind is stretched to its limits in a voluntary effort to accomplish something <em>difficult and worthwhile</em>” (my emphasis). This qualification—difficult and worthwhile—may be a barrier for many, preventing them from experiencing flow in their work and settle instead, often without realizing it, for lesser rewards.</p>
<p style="font-weight: 400;">The reason why difficulty and worthiness are conducive to flow has to do with attention. Tasks that are undemanding or uninteresting are not likely to command our full attention. When what we are doing is easy, we’ll be tempted to multi-task. When we don’t care deeply about what we do, we are likely to do it in a half-hearted way and look for distractions. On the other hand, when what we are doing is difficult and/or interesting to us we’ll likely focus all our attention on it. In doing so, we also claim attention away from other preoccupations, resulting in the state of flow: being so focused that we lose track of time and cease to worry about things beyond what we are doing and experiencing at the present moment.</p>
<p>If the last sentence sounds familiar to you, perhaps it is because you recognize its similarity to <a href="https://en.wikipedia.org/wiki/Mindfulness" target="_blank" rel="noopener">mindfulness</a>, which produces the same effects (putting worries and distractions out of our minds) using the same cognitive mechanism (conscious focusing of attention).</p>
<p style="font-weight: 400;">Difficulty is correlated with skill level. What may seem difficult to a beginner, may not be to a seasoned practitioner; what may have been difficult to us in the past, becomes easier with repeated practice. This means that if we wish to experience flow in our creative work, we must maintain a degree of challenge appropriate to our skill level; we can’t get too comfortable: we must constantly push our boundaries: try new things, invent new things, learn new things, experiment.</p>
<p style="font-weight: 400;">Unlike other pursuits, in creative work (assuming we hope to find flow in it), we can’t just find a comfort zone where we keep repeating our former successes, sticking to proven formulas. These formulas may produce “good” work but their inner rewards will inevitably diminish in time as, once we master them, they become less demanding of attention. Similarly, things that may have seemed worthwhile to us in the past tend to lose their worthiness once we have accomplished and excelled in them: there is no point in reinventing the wheel. The conclusion: if we strive to experience flow in our work, we must be willing to “mess with success”—to take risks and to keep trying new things in order to maintain the sense of our work being “difficult and worthwhile.”</p>
<p style="font-weight: 400;">In art, and especially in photography, the most difficult and worthwhile goals are not technical excellence or aesthetic appeal. These we can master fairly quickly (relative to other media), without much practice, and/or delegate them to algorithms and automated processes. Whatever difficulty we may experience early on when learning how to produce a technically-competent image, will inevitably diminish with practice and repetition. Instead, the aspects of art that <em>do </em>remain difficult and worthwhile—where anyone, at any level, may find new challenges—are creativity and self-expression.</p>
<p style="font-weight: 400;">In a recent email exchange, a fellow photographer suggested that some people may disagree with my thoughts on creativity because they define creativity differently from the way I define it. To be clear,<em> I don’t define creativity in my own way</em>. The definition of creativity I use in my writings is one coined by creativity researchers and used most commonly in scientific studies.</p>
<p style="font-weight: 400;">“If creativity is to be a viable neuroscientific construct it should conform to several scientific conditions,” wrote Dean Keith Simonton—a Distinguished Professor of Psychology at the University of California, Davis, and a prominent creativity researcher. “First,” Simonton wrote, “it should have a definition that lends itself to scientific inquiry.”</p>
<p style="font-weight: 400;">The definition of creativity most commonly used in scientific research, is this: “the production of something <em>novel</em> and <em>useful</em>.” Simonton proposed making this definition even stricter by adding a third criterion—<em>non-obviousness</em>: the quality of being surprising and/or unexpected. He explained:</p>
<p style="font-weight: 400; padding-left: 40px;"><em>Creativity can be optimized just a single way: Simultaneously maximize originality, utility, and surprise. If the idea is commonplace, useless, or obvious, or any combination of possible zero values, then an uncreative idea results. Each exerts veto power over the rest.</em></p>
<p style="font-weight: 400;">He added also:</p>
<p style="font-weight: 400; padding-left: 40px;"><em>A creative idea cannot originate via the straightforward application of well-established disciplinary procedures . . . such ideas must be considered routine, reproductive, or habitual rather than truly creative.</em></p>
<p style="font-weight: 400;">Novelty—the first criterion for creativity—is synonymous with originality, meaning that any creation that only reproduces something already done (by you or by someone else), no matter how skillfully or beautifully crafted, is not considered creative. If you are a beginner, technical challenges may still feel difficult to you, demanding your attention and perhaps even leading to flow. But once you learn the necessary skills, technical challenges lose this power to command attention, but creative challenges are , practically speaking, limitless: bound only by your capacity to imagine and your openness to trying new things.</p>
<p style="font-weight: 400;">The next criterion for creativity—usefulness—may be easy to assess in such domains as science or industry, but some researchers recognize that art is not usually conducive to being evaluated in terms of usefulness or utility. Therefore, some researchers of artistic creativity prefer using terms like “appropriate,” “effective,” “meaningful,” or “expressive” instead of “useful.” I think that’s an unnecessary complication. Art is something people do by choice because it enriches their lives (and in almost every case also the lives of others), which makes art intrinsically useful. Also, usefulness in art doesn’t have to relate to the products of artistic work; it can also refer to the benefits one gets from engaging in the process of art-making (such as flow). This is to say that if a person values time spent creating art, then art may be considered useful regardless of outcome. Put another way: when it comes to artistic creativity (unlike creativity in other domains), usefulness is built in.</p>
<p style="font-weight: 400;">The conclusion: if the usefulness of engaging in art is given, that leaves the criteria of <em>originality</em> and <em>non-obviousness</em> as the more important (and difficult and worthwhile) measures of artistic creativity, and therefore also the qualities that may yield you the greatest inner rewards possible in artistic work.</p>
<p style="font-weight: 400;">Coming up with creative (i.e., novel/original and non-obvious) ways to channel your own thoughts and feelings into you art, is obviously difficult, especially as we become more skilled and experienced—as more types of work transition from the “how do I do that?” list to the “been there, done that” list. Striving to come up with novel ideas, and investing work in them to see where they may lead, without guarantee of success, is also potentially unproductive and fraught with risk of failure. This is exactly why flow in art is most likely to occur when our process involves investing prolonged time and conscious effort toward the difficult tasks of 1) having worthwhile thoughts, feelings, and experiences worth expressing, and 2) seeking novel ways to express them artistically. The complementary conclusion is also important: rewards like flow, which may outweigh in depth and magnitude other kinds of (extrinsic/practical) rewards you may find in art, are to be found in the&nbsp;<em>process</em> of art-making, not in its <em>products</em>.</p>
<p style="font-weight: 400;">The implication of this cannot be overstated. So many products and techniques are promoted to us artists as time-savers, helping us automate tasks, increase productivity, work faster, spare us from having to learn and practice manual skills, and from having to invest attention in any task for too long. Using such products and techniques come at a great and often unacknowledged cost: they may rob you of the greatest rewards possible in art—rewards that are intrinsically tied to the very things such products aim to eliminate: difficulty and prolonged engagement in your work.</p>
<p style="font-weight: 400;">In his article, “A Personal Credo,” Ansel Adams expressed this sentiment well. He wrote:</p>
<p style="font-weight: 400; padding-left: 40px;"><em>I have often thought that if photography were difficult in the true sense of the term—meaning that the creation of a simple photograph would entail as much time and effort as the production of a good watercolor or etching—there would be a vast improvement in total output. The sheer ease with which we can produce a superficial image often leads to creative disaster.</em></p>
<p>If you engage in art aiming primarily to enrich your life (rather than for practical or other extrinsic reasons), do yourself this great favor: make life (at least the artistic aspects of it) difficult for yourself—strive to constantly challenge yourself creatively, and adopt a process that involves prolonged periods of focused attention without distraction.</p>
<p>Be warned, however, that some kinds of self-imposed difficulties, especially ones of a technical nature, like using film instead of digital capture, or favoring manual/bulky cameras to more convenient formats, may ultimately amount to, as the Johnny Lee song goes, looking for love in all the wrong places, and not be as effective in terms of elevating the inner rewards of your art-making experience as pursuing creative challenges (instead or in addition to technical challenges). The reason: technical skills inevitably become easier with practice, and practically any photographic technique can be mastered and applied with (technically) excellent results in a relatively short period of time compared with other artistic media. Technical ease, after all, has always been among the <em>raisons d’être</em> for the photographic medium’s very existence, and a primary reason photography has often been derided as less artistic than other media.</p>
<p>It has always been distressing to me to see how much time and energy photographers invest in the minutiae and technicalities of equipment and processes, to a point of becoming so obsessed with achieving technical perfection as to give no thought at all to creativity and expression. This unfortunate reality has now been magnified to staggering proportions by online influencers and the proliferation of video tutorials. Long before the invention of photography, Friedrich Nietzsche attempted to warn against the undesirable effects of artists becoming too preoccupied with technique to the detriment of artistic expression. He wrote, “When every art goes into decline a point is reached at which its morbidly luxuriant forms and techniques gain a tyrannical domination over the souls of youthful artists and make them their slaves.”</p>
<p>Of course, using film or any other technology may be very enjoyable in ways that other methods may not be, which is sufficient justification for their use. They may even lead to flow if you consciously invest your entire attention into your work for prolonged periods. But they are not by themselves shortcuts to artistry or to any of the desirable personal benefits of evolving and nurturing habitual creativity. In fact, if technical choices become the defining characteristic of an artist’s work, they may even diminish the artist’s experience by taking up more attention than they deserve—attention that may instead be invested in qualities of experience.</p>
<p>On the other hand, investing attention in pursuing creative (original) work and striving for states of mind worthy of artistic expression—regardless of the technology used and no matter your technical skill level—can <em>always</em> be pushed to a point of being “difficult and worthwhile.”</p>
<p>As Edward Weston put it (with apology for what may be overly strong language):</p>
<p style="padding-left: 40px;"><em>As to photography’s mechanicalness, — art is a way of seeing, not a matter of technique. A moron can be a superb technician. And besides the spontaneity of the machine, — camera, time, and energy can be saved for creative thought, inner development.</em></p>
<p>Compared with artists in media that demand intensive regular practice to produce successful work, photographic artists have it easier when it comes to producing impressive (and prolific) results without great investment of (technical or cognitive) effort, which is to say: without meeting the preconditions for flow and other inner rewards arising from difficulty and focused attention. It thus becomes a greater challenge for photographers to find the self-discipline and courage to impose desirable difficulties on ourselves—to knowingly give up ease, productivity, and predictable successes in trade for the beneficial effects of flow, mindfulness, and meaningfulness: for the chance to have our times of artistic work be our private sanctuaries and periods of reprieve, in contrast to so many other busy activities governed by striving to please, impress, or work according to the expectations of others.</p>
<p><a href="https://i0.wp.com/guytal.blog/wp-content/uploads/2023/12/dn001110.jpg?ssl=1"><img loading="lazy" decoding="async" data-attachment-id="11198" data-permalink="https://guytal.blog/2023/12/01/difficult-and-worthwhile/look-carefully/" data-orig-file="https://i0.wp.com/guytal.blog/wp-content/uploads/2023/12/dn001110.jpg?fit=1200%2C800&amp;ssl=1" data-orig-size="1200,800" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;Guy Tal&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;Guy Tal&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;Look Carefully&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Look Carefully" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/guytal.blog/wp-content/uploads/2023/12/dn001110.jpg?fit=300%2C200&amp;ssl=1" data-large-file="https://i0.wp.com/guytal.blog/wp-content/uploads/2023/12/dn001110.jpg?fit=736%2C491&amp;ssl=1" tabindex="0" role="button" class="aligncenter size-medium wp-image-11198" src="https://i0.wp.com/guytal.blog/wp-content/uploads/2023/12/dn001110.jpg?resize=300%2C200&amp;ssl=1" alt="" width="300" height="200" srcset="https://i0.wp.com/guytal.blog/wp-content/uploads/2023/12/dn001110.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/guytal.blog/wp-content/uploads/2023/12/dn001110.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/guytal.blog/wp-content/uploads/2023/12/dn001110.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/guytal.blog/wp-content/uploads/2023/12/dn001110.jpg?resize=600%2C400&amp;ssl=1 600w, https://i0.wp.com/guytal.blog/wp-content/uploads/2023/12/dn001110.jpg?w=1200&amp;ssl=1 1200w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1"></a></p>
<p>&nbsp;</p>
]]></description>
      <pubDate>Fri, 01 Dec 2023 12:38:13 +0000</pubDate>
      <link>https://guytal.blog/2023/12/01/difficult-and-worthwhile/</link>
      <dc:creator>Guy Tal | Photographer, Author</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4294790198</guid>
    </item>
    <item>
      <title><![CDATA[]]></title>
      <description><![CDATA[<p>Nassim Nicholas Taleb:</p>
<blockquote>
<p>I am, at the Fed level, libertarian; at the state level, Republican; at the local level, Democrat; and at the family and friends level, a socialist. If that saying doesn’t convince you of the fatuousness of left vs. right labels, nothing will.</p>
</blockquote>
]]></description>
      <pubDate>Tue, 21 Nov 2023 19:49:18 +0000</pubDate>
      <link>https://joshwithers.blog/2023/11/22/nassim-nicholas-taleb.html</link>
      <dc:creator>With ers Without You</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4284922980</guid>
    </item>
    <item>
      <title><![CDATA[The OpenAI Keynote]]></title>
      <description><![CDATA[<p>In 2013, when I started Stratechery, there was no bigger event than the launch of the new iPhone; its only rival was Google I/O, which is when the newest version of Android was unveiled (hardware always breaks the tie, including with Apple’s iOS introductions at WWDC). It wasn’t just that smartphones were relatively new and still adding critical features, but that the strategic decisions and ultimate fates of the platforms were still an open question. More than that, the entire future of the tech industry was clearly tied up in said platforms and their corresponding operating systems and devices; how could keynotes <em>not</em> be a big deal?</p>
<p>Fast forward a decade and the tech keynote has diminished in importance and, in the case of Apple, disappeared completely, replaced by a pre-recorded marketing video. I want to be mad about it, but it makes sense: an iPhone introduction has been diminished not by Apple’s presentation, but rather Apple’s presentations reflect the reality that the most important questions around an iPhone are about marketing tactics. How do you segment the iPhone line? How do you price? What sort of brand affinity are you seeking to build? There, I just summarized <a href="https://stratechery.com/2023/apples-iphone-event-innovation-and-iteration-pricing-inflation-and-services/">the iPhone 15 introduction</a>, and the reality that the smartphone era — <a href="https://stratechery.com/2020/the-end-of-the-beginning/">The End of the Beginning</a> — is over as far as strategic considerations are concerned. iOS and Android are a given, but what is next and yet unknown?</p>
<p>The answer is, clearly, AI, but even there, the energy seems muted: Apple hasn’t talked about generative AI other than to assure investors on earnings calls that they are working on it; Google I/O was of course about AI, but mostly in the context of Google’s own products — few of which have actually shipped — and <a href="https://stratechery.com/2023/google-i-o-and-the-coming-ai-battles/">my Article at the time</a> was quickly side-tracked into philosophical discussions about both the nature of AI innovation (sustaining versus disruptive), the question of tech revolution versus alignment, and a preview of the coming battles of regulation that arrived with <a href="https://stratechery.com/2023/attenuating-innovation-ai/">last week’s Executive Order on AI</a>.</p>
<p><a href="https://stratechery.com/2023/ai-hardware-and-virtual-reality/">Meta’s Connect keynote was much more interesting</a>: not only were AI characters being added to Meta’s social networks, but next year you will be able to take AI with you via Smart Glasses (I told you hardware was interesting!). Nothing, though, seemed to match the energy around yesterday’s OpenAI developer conference, their first ever: there is nothing more interesting in tech than a consumer product with product-market fit. And that, for me, is enough to bring back an old Stratechery standby: the keynote day-after.</p>
<h3>Keynote Metaphysics and GPT-4 Turbo</h3>
<p>This was, first and foremost, a really <em>good</em> keynote, in the keynote-as-artifact sense. CEO Sam Altman, in a humorous exchange with Microsoft CEO Satya Nadella, promised, “I won’t take too much of your time”; never mind that Nadella was presumably in San Francisco just for this event: in this case he stood in for the audience who witnessed a presentation that was tight, with content that was interesting, leaving them with a desire to learn more.</p>
<p>Altman himself had a good stage presence, with the sort of nervous energy that is only present in a live keynote; the fact he never seemed to know which side of the stage a fellow presenter was coming from was humanizing. Meanwhile, the live demos not only went off without a hitch, but leveraged the fact that they were live: in one instance a presenter instructed a GPT she created to text Altman; he held up his phone to show he got the message. In another a GPT randomly selected five members of the audience to receive $500 in OpenAI API credits, only to then extend it to everyone.</p>
<p>New products and features, meanwhile, were available “today”, not weeks or months in the future, as is increasingly the case for events like I/O or WWDC; everything combined to give a palpable sense of progress and excitement, which, when it comes to AI, is mostly true.</p>
<p>GPT-4 Turbo is an excellent example of what I mean by “mostly”. The API consists of six new features:</p>
<ul>
<li>Increased context length</li>
<li>More control, specifically in terms of model inputs and outputs</li>
<li>Better knowledge, which both means updating the cut-off date for knowledge about the world to April 2023 and providing the ability for developers to easily add their own knowledge base</li>
<li>New modalities, as DALL-E 3, Vision, and TTS (text-to-speech) will all be included in the API, with a new version of Whisper speech recognition coming.</li>
<li>Customization, including fine-tuning, and custom models (which, Altman warned, won’t be cheap)</li>
<li>Higher rate limits</li>
</ul>
<p>This is, to be clear, still the same foundational model (GPT-4); these features just make the API more usable, both in terms of features and also performance. It also speaks to how OpenAI is becoming more of a product company, with iterative enhancements of its core functionality. Yes, the mission still remains AGI (artificial general intelligence), and the core scientific team is almost certainly working on GPT-5, but Altman and team aren’t just tossing models over the wall for the rest of the industry to figure out.</p>
<h3>Price and Microsoft</h3>
<p>The next “feature” was tied into the GPT-4 Turbo introduction: the API is getting cheaper (3x cheaper for input tokens, and 2x cheaper for output tokens). Unsurprisingly this announcement elicited cheers from the developers in attendance; what I cheered as an analyst was Altman’s clear articulation of the company’s priorities: lower price first, speed later. You can certainly debate whether that is the right set of priorities (I think it is, because the biggest need now is for increased experimentation, not optimization), but what I appreciated was the clarity.</p>
<p>It’s also appropriate that the segment after that was the brief “interview” with Nadella: OpenAI’s pricing is ultimately a function of Microsoft’s ability to build the infrastructure to support that pricing. Nadella actually explained how Microsoft is accomplishing that on the <a href="https://seekingalpha.com/article/4643129-microsoft-corporation-msft-q1-2024-earnings-call-transcript">company’s most recent earnings call</a>:</p>
<blockquote><p>
  It is true that the approach we have taken is a full stack approach all the way from whether it’s ChatGPT or Bing Chat or all our Copilots, all share the same model. So in some sense, one of the things that we do have is very, very high leverage of the one model that we used, which we trained, and then the one model that we are doing inferencing at scale. And that advantage sort of trickles down all the way to both utilization internally, utilization of third parties, and also over time, you can see the sort of stack optimization all the way to the silicon, because the abstraction layer to which the developers are riding is much higher up than low-level kernels, if you will.</p>
<p>  So, therefore, I think there is a fundamental approach we took, which was a technical approach of saying we’ll have Copilots and Copilot stack all available. That doesn’t mean we don’t have people doing training for open source models or proprietary models. We also have a bunch of open source models. We have a bunch of fine-tuning happening, a bunch of RLHF happening. So there’s all kinds of ways people use it. But the thing is, we have scale leverage of one large model that was trained and one large model that’s being used for inference across all our first-party SaaS apps, as well as our API in our Azure AI service…</p>
<p>  The lesson learned from the cloud side is — we’re not running a conglomerate of different businesses, it’s all one tech stack up and down Microsoft’s portfolio, and that, I think, is going to be very important because that discipline, given what the spend like — it will look like for this AI transition any business that’s not disciplined about their capital spend accruing across all their businesses could run into trouble.
</p></blockquote>
<p>The fact that Microsoft is benefiting from OpenAI is obvious; what this makes clear is that OpenAI uniquely benefits from Microsoft as well, in a way they would not from another cloud provider: <a href="https://stratechery.com/2023/google-earnings-microsoft-earnings-ai-leverage/">because Microsoft is also a product company investing in the infrastructure to run OpenAI’s models for said products</a>, it can afford to optimize and invest ahead of usage in a way that OpenAI alone, even with the support of another cloud provider, could not. In this case that is paying off in developers needing to pay less, or, ideally, have more latitude to discover use cases that result in them paying far more because usage is exploding.</p>
<h3>GPTs and Computers</h3>
<p>I mentioned GPTs before; you were probably confused, because this is a name that is either brilliant or a total disaster. Of course you could have said the same about ChatGPT: massive consumer uptake has a way of making arguably poor choices great ones in retrospect, and I can see why OpenAI is seeking to basically brand “GPT” — generative pre-trained transformer — as an OpenAI chatbot.</p>
<p>Regardless, this was how Altman explains GPTs:</p>
<div align="center"><div id="v-0EkKoygR-1" class="video-player"><video id="v-0EkKoygR-1-video" width="640" height="360" poster="https://videos.files.wordpress.com/0EkKoygR/gpts-intro_mp4_hd_1080p.original.jpg" controls="true" preload="metadata" dir="ltr" lang="en"><div><img loading="lazy" decoding="async" alt="" src="https://videos.files.wordpress.com/0EkKoygR/gpts-intro_mp4_hd_1080p.original.jpg?resize=640%2C360" width="640" height="360" data-recalc-dims="1"></div></video></div></div>
<blockquote><p>
  GPTs are tailored version of ChatGPT for a specific purpose. You can build a GPT — a customized version of ChatGPT — for almost anything, with instructions, expanded knowledge, and actions, and then you can publish it for others to use. And because they combine instructions, expanded knowledge, and actions, they can be more helpful to you. They can work better in many contexts, and they can give you better control. They’ll make it easier for you accomplish all sorts of tasks or just have more fun, and you’ll be able to use them right within ChatGPT. You can, in effect, program a GPT, with language, just by talking to it. It’s easy to customize the behavior so that it fits what you want. This makes building them very accessible, and it gives agency to everyone.</p>
<p>  We’re going to show you what GPTs are, how to use them, how to build them, and then we’re going to talk about how they’ll be distributed and discovered. And then after that, for developers, we’re going to show you how to build these agent-like experiences into your own apps.
</p></blockquote>
<p>Altman’s examples included a lesson-planning GPT from Code.org and a natural language vision design GPT from Canva. As Altman noted, the second example might have seemed familiar: Canva had a plugin for ChatGPT, and Altman explained that “we’ve evolved our plugins to be custom actions for GPTs.”</p>
<p>I found the plugin concept fascinating and a useful way to understand both the capabilities and limits of large language models; I wrote in <a href="https://stratechery.com/2023/chatgpt-learns-computing/">ChatGPT Gets a Computer</a>:</p>
<blockquote><p>
  The implication of this approach is that computers are deterministic: if circuit X is open, then the proposition represented by X is true; 1 plus 1 is always 2; clicking “back” on your browser will exit this page. There are, of course, a huge number of abstractions and massive amounts of logic between an individual transistor and any action we might take with a computer — and an effectively infinite number of places for bugs — but the appropriate mental model for a computer is that they do exactly what they are told (indeed, a bug is not the computer making a mistake, but rather a manifestation of the programmer telling the computer to do the wrong thing)…
</p></blockquote>
<p>Large language models, though, with their probabilistic approach, are in many domains shockingly intuitive, and yet can hallucinate and are downright terrible at math; that is why the most compelling plug-in OpenAI launched was from Wolfram|Alpha. Stephen Wolfram <a href="https://writings.stephenwolfram.com/2023/01/wolframalpha-as-the-way-to-bring-computational-knowledge-superpowers-to-chatgpt/">explained</a>:</p>
<blockquote><p>
  For decades there’s been a dichotomy in thinking about AI between “statistical approaches” of the kind ChatGPT uses, and “symbolic approaches” that are in effect the starting point for Wolfram|Alpha. But now—thanks to the success of ChatGPT—as well as all the work we’ve done in making Wolfram|Alpha understand natural language—there’s finally the opportunity to combine these to make something much stronger than either could ever achieve on their own.
</p></blockquote>
<p>That is the exact combination that happened, which led to the title of that Article:</p>
<blockquote><p>
  The fact this works so well is itself a testament to what Assistant AI’s are, and are not: they are not computing as we have previously understood it; they are shockingly human in their way of “thinking” and communicating. And frankly, I would have had a hard time solving those three questions as well — that’s what computers are for! And now ChatGPT has a computer of its own.
</p></blockquote>
<p>I still think the concept was incredibly elegant, but there was just one problem: the user interface was terrible. You had to get a plugin from the “marketplace”, then pre-select it before you began a conversation, and only then would you get workable results after a too-long process where ChatGPT negotiated with the plugin provider in question on the answer.</p>
<p>This new model somewhat alleviates the problem: now, instead of having to select the correct plug-in (and thus restart your chat), you simply go directly to the GPT in question. In other words, if I want to create a poster, I don’t enable the Canva plugin in ChatGPT, I go to Canva GPT in the sidebar. Notice that this doesn’t actually <em>solve</em> the problem of needing to have selected the right tool; what it does do is make the choice more apparent to the user at a more appropriate stage in the process, and that’s no small thing. I also suspect that GPTs will be much faster than plug-ins, given they are integrated from the get-go. Finally, standalone GPTs are a much better fit with the store model that OpenAI is trying to develop.</p>
<p>Still, there is a better way: Altman demoed it.</p>
<h3>ChatGPT and the Universal Interface</h3>
<p>Before Altman introduced the aforementioned GPTs he talked about improvements to ChatGPT:</p>
<div align="center"><div id="v-ot3CmlaF-1" class="video-player"><video id="v-ot3CmlaF-1-video" width="640" height="360" poster="https://videos.files.wordpress.com/ot3CmlaF/chatgpt-improvements_mp4_hd_1080p.original.jpg" controls="true" preload="metadata" dir="ltr" lang="en"><div><img loading="lazy" decoding="async" alt="" src="https://videos.files.wordpress.com/ot3CmlaF/chatgpt-improvements_mp4_hd_1080p.original.jpg?resize=640%2C360" width="640" height="360" data-recalc-dims="1"></div></video></div></div>
<blockquote><p>
  Even though this is a developer conference, we can’t help resist making some improvements to ChatGPT. A small one, ChatGPT now uses GPT-4 Turbo, with all of the latest improvements, including the latest cut-off, which we’ll continue to update — that’s all live today. It can now browse the web when it needs to, write and run code, analyze data, generate images, and much more, and we heard your feedback that that model picker was extremely annoying: that is gone, starting today. You will not have to click around a drop-down menu. All of this will just work together. ChatGPT will just know what to use and when you need it. But that’s not the main thing.
</p></blockquote>
<p>You may wonder why I put this section after GPTs, given they were, according to Altman, the main thing: it’s because I think this feature enhancement is actually much more important. As I just noted, GPTs are a somewhat better UI on an elegant plugin concept, in which a probabilisitic large language model gets access to a deterministic computer. The best UI, though, is no UI at all, or rather, just one UI, by which I mean “Universal Interface”.</p>
<p>In this case “browsing” or “image generation” are basically plug-ins: they are specialized capabilities that, before today, you had to explicitly invoke; going forward they will just work. ChatGPT will seamlessly switch between text generation, image generation, and web browsing, without the user needing to change context. What is necessary for the plug-in/GPT idea to ultimately take root is for the same capabilities to be extended broadly: if my conversation involved math, ChatGPT should know to use Wolfram|Alpha on its own, without me adding the plug-in or going to a specialized GPT.</p>
<p>I can understand why this capability doesn’t yet exist: the obvious technical challenges of properly exposing capabilities and training the model to know when to invoke those capabilities are a textbook example of Professor Clayton Christensen’s theory of integration and modularity, wherein integration works better when a product isn’t good enough; it is only when a product exceeds expectation that there is room for standardization and modularity. To that end, ChatGPT is only now getting the capability to generate an image without the mode being selected for it: I expect the ability to seek out less obvious tools will be fairly difficult.</p>
<p>In fact, it’s possible that the entire plug-in/GPT approach ends up being a dead-end; towards the end of the keynote Romain Huet, the head of developer experience at OpenAI, explicitly demonstrated ChatGPT programming a computer. The scenario was splitting the tab for an Airbnb in Paris:</p>
<div align="center"><div id="v-En2RPQZh-1" class="video-player"><video id="v-En2RPQZh-1-video" width="640" height="360" poster="https://videos.files.wordpress.com/En2RPQZh/chatgpt-codes_mp4_hd_1080p.original.jpg" controls="true" preload="metadata" dir="ltr" lang="en"><div><img loading="lazy" decoding="async" alt="" src="https://videos.files.wordpress.com/En2RPQZh/chatgpt-codes_mp4_hd_1080p.original.jpg?resize=640%2C360" width="640" height="360" data-recalc-dims="1"></div></video></div></div>
<blockquote><p>
  Code Interpreter is now available today in the API as well. That gives the AI the ability to write and generate code on the file, or even to generate files. So let’s see that in action. If I say here, “Hey, we’ll be 4 friends staying at this Airbnb, what’s my share of it plus my flights?”</p>
<p>  Now here what’s happening is that Code Interpreter noticed that it should write some code to answer this query so now it’s computing the number of days in Paris, the number of friends, it’s also doing some exchange rate calculation behind the scene to get this answer for us. Not the most complex math, but you get the picture: imagine you’re building a very complex finance app that’s counting countless numbers, plotting charts, really any tasks you might tackle with code, then Code Interpreter will work great.
</p></blockquote>
<p>Uhm, what tasks do you <em>not</em> tackle with code? To be fair, Huet is referring to fairly simple math-oriented tasks, not the wholesale recreation of every app on the Internet, but it is interesting to consider for which problems ChatGPT will gain the wisdom to choose the right tool, and for which it will simply brute force a new solution; the history of computing would actually give the latter a higher probability: there are a lot of problems that were solved less with clever algorithms and more with the <a href="https://stratechery.com/2023/china-chips-and-moores-law/">application of Moore’s Law</a>.</p>
<h3>Consumers and Hardware</h3>
<p>Speaking of the first year of Stratechery, that is when I first wrote about integration and modularization, in <a href="https://stratechery.com/2013/clayton-christensen-got-wrong/">What Clayton Christensen Got Wrong</a>; as the title suggests I didn’t think the theory was universal:</p>
<blockquote><p>
  Christensen himself laid out his theory’s primary flaw in the first quote excerpted above (from 2006):</p>
<blockquote><p>
    You also see it in aircrafts and software, and medical devices, and over and over.
  </p></blockquote>
<p>  That is the problem: Consumers don’t buy aircraft, software, or medical devices. Businesses do.</p>
<p>  Christensen’s theory is based on examples drawn from buying decisions made by businesses, not consumers. The reason this matters is that the theory of low-end disruption presumes:</p>
<ul>
<li>Buyers are rational</li>
<li>Every attribute that matters can be documented and measured</li>
<li>Modular providers can become “good enough” on all the attributes that matter to the buyers</li>
</ul>
<p>  All three of the assumptions fail in the consumer market, and this, ultimately, is why Christensen’s theory fails as well. Let me take each one in turn:
</p></blockquote>
<p>To summarize the argument, consumers care about things in ways that are inconsistent with whatever price you might attach to their utility, they prioritize ease-of-use, and they care about the quality of the user experience and are thus especially bothered by the seams inherent in a modular solution. This means that integrated solutions win because nothing is ever “good enough”; as I noted in the context of Amazon, <a href="https://stratechery.com/2018/divine-discontent-disruptions-antidote/">Divine Discontent is Disruption’s Antidote</a>:</p>
<blockquote><p>
  Bezos’s letter, though, reveals another advantage of focusing on customers: it makes it impossible to overshoot. When I wrote that piece five years ago, I was thinking of the opportunity provided by a focus on the user experience as if it were an asymptote: one could get ever closer to the ultimate user experience, but never achieve it:</p>
<p>  <a href="https://stratechery.com/2018/divine-discontent-disruptions-antidote/"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.347.png?resize=640%2C389&amp;ssl=1" alt="A drawing of The Asymptote Version of the User Experience" width="640" height="389" class="alignnone size-full wp-image-3453" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.347.png?w=1300&amp;ssl=1 1300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.347.png?resize=300%2C183&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.347.png?resize=768%2C467&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.347.png?resize=1024%2C623&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.347.png?resize=1035%2C630&amp;ssl=1 1035w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>  In fact, though, consumer expectations are not static: they are, as Bezos’ memorably states, “divinely discontent”. What is amazing today is table stakes tomorrow, and, perhaps surprisingly, that makes for a tremendous business opportunity: if your company is predicated on delivering the best possible experience for consumers, then your company will never achieve its goal.</p>
<p>  <a href="https://stratechery.com/2018/divine-discontent-disruptions-antidote/"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.348.png?resize=640%2C389&amp;ssl=1" alt="A drawing of The Ever-Changing Version of the User Experience" width="640" height="389" class="alignnone size-full wp-image-3452" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.348.png?w=1300&amp;ssl=1 1300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.348.png?resize=300%2C183&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.348.png?resize=768%2C467&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.348.png?resize=1024%2C623&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2018/05/Paper.stratechery-Year-One.348.png?resize=1035%2C630&amp;ssl=1 1035w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>  In the case of Amazon, that this unattainable and ever-changing objective is embedded in the company’s culture is, in conjunction with the company’s demonstrated ability to spin up new businesses on the profits of established ones, a sort of perpetual motion machine.
</p></blockquote>
<p>I see no reason why both Articles wouldn’t apply to ChatGPT: while I might make the argument that hallucination is, in a certain light, a feature not a bug, the fact of the matter is that a lot of people use ChatGPT for information despite the fact it has a well-documented flaw when it comes to the truth; that flaw is acceptable, because to the customer ease-of-use is worth the loss of accuracy. Or look at plug-ins: the concept as originally implemented has already been abandoned, because the complexity in the user interface was more detrimental than whatever utility might have been possible. It seems likely this pattern will continue: of course customers will <em>say</em> that they want accuracy and 3rd-party tools; their actions will continue to demonstrate that convenience and ease-of-use matter most.</p>
<p>This has two implications. First, while this may have been OpenAI’s first developer conference, I remain unconvinced that OpenAI is going to ever be a true developer-focused company. I think that was Altman’s plan, but reality in the form of ChatGPT intervened: ChatGPT is the most important consumer-facing product since the iPhone, making OpenAI <a href="https://stratechery.com/2023/the-accidental-consumer-tech-company-chatgpt-meta-and-product-market-fit-aggregation-and-apis/">The Accidental Consumer Tech Company</a>. That, by extension, means that integration will continue to matter more than modularization, which is great for Microsoft’s compute stack and maybe less exciting for developers.</p>
<p>Second, there remains one massive patch of friction in using ChatGPT; from <a href="https://stratechery.com/2023/ai-hardware-and-virtual-reality/">AI, Hardware, and Virtual Reality</a>:</p>
<blockquote><p>
  AI is truly something new and revolutionary and capable of being something more than just a homework aid, but I don’t think the existing interfaces are the right ones. Talking to ChatGPT is better than typing, but I still have to launch the app and set the mode; vision is an amazing capability, but it requires even more intent and friction to invoke. I could see a scenario where Meta’s AI is inferior technically to OpenAI, but more useful simply because it comes in a better form factor.
</p></blockquote>
<p>After highlighting some news stories about OpenAI potentially partnering with Jony Ive to build hardware, I concluded:</p>
<blockquote><p>
  There are obviously many steps before a potential hardware product, including actually agreeing to build one. And there is, of course, the fact that Apple and Google already make devices everyone carries, with the latter in particular investing heavily in its own AI capabilities; betting on the hardware in market winning the hardware opportunity in AI is the safest bet. That may not be a reason for either OpenAI or Meta to abandon their efforts, though: waging a hardware battle against Google and Apple would be difficult, but it might be even worse to be “just an app” if the full realization of AI’s capabilities depend on fully removing human friction from the process.
</p></blockquote>
<p>This is the implication of a Universal Interface, which ChatGPT is striving to be: it also requires universal access, and that will always be a challenge for any company that is “just an app.” Yes, as I noted, the odds seem long, thanks to Apple and Google’s dominance, but I think there is an outside chance that the paradigm-shifting keynote is only just beginning its comeback.</p>
]]></description>
      <pubDate>Tue, 07 Nov 2023 14:51:39 +0000</pubDate>
      <link>https://stratechery.com/2023/the-openai-keynote/</link>
      <dc:creator>Stratechery by Ben Thompson</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4270514169</guid>
    </item>
    <item>
      <title><![CDATA[Aggregation and Tiling as Multicomputational Processes]]></title>
      <description><![CDATA[<span class="thumbnail"><img width="128" height="108" src="https://content.wolfram.com/sites/43/2023/11/MultiwayAgg-icons-v2.png" class="attachment-thumbnail size-thumbnail wp-post-image" alt=""></span><p><img title="Aggregation and Tiling as Multicomputational Processes" src="https://content.wolfram.com/sites/43/2023/11/Tiling-hero-final2.png" alt="Aggregation and Tiling as Multicomputational Processes" width="620" height="300"></p>
<h2 id="the-importance-of-multiway-systems">The Importance of Multiway Systems</h2>
<p>It’s all about systems where there can in effect be many possible paths of history. In a typical standard <a href="https://www.wolframscience.com/nks/chap-2--the-crucial-experiment#sect-2-1--how-do-simple-programs-behave">computational system like a cellular automaton</a>, there’s always just one path, defined by evolution from one state to the next. But in a <a href="https://www.wolframscience.com/nks/chap-5--two-dimensions-and-beyond#sect-5-6--multiway-systems">multiway system</a>, there can be many possible next states—and thus many possible paths of history. Multiway systems <a href="https://writings.stephenwolfram.com/2020/04/finally-we-may-have-a-path-to-the-fundamental-theory-of-physics-and-its-beautiful/#the-inevitability-of-quantum-mechanics">have a central role</a> in our <a href="https://www.wolframphysics.org/">Physics Project</a>, particularly in connection with quantum mechanics. But what’s now emerging is that multiway systems in fact serve as a quite general foundation for a whole new <a href="https://writings.stephenwolfram.com/2021/09/multicomputation-a-fourth-paradigm-for-theoretical-science/">“multicomputational” paradigm</a> for modeling.</p>
<p>My objective here is twofold. First, I want to use multiway systems as minimal models for growth processes based on aggregation and tiling. And second, I want to use this concrete application as a way to develop further intuition about multiway systems in general. Elsewhere I have explored <a href="https://www.wolframphysics.org/technical-introduction/the-updating-process-for-string-substitution-systems/" target="_blank" rel="noopener">multiway systems for strings</a>, <a href="https://www.wolframphysics.org/bulletins/2021/10/multicomputation-with-numbers-the-case-of-simple-multiway-systems" target="_blank" rel="noopener">multiway systems based on numbers</a>, <a href="https://www.wolframphysics.org/bulletins/2021/02/multiway-turing-machines/" target="_blank" rel="noopener">multiway Turing machines</a>, <a href="https://writings.stephenwolfram.com/2020/12/combinators-a-centennial-view/#updating-schemes-and-multiway-systems">multiway combinators</a>, <a href="https://writings.stephenwolfram.com/2023/09/expression-evaluation-and-fundamental-physics/#multiway-evaluation-and-multiway-graphs">multiway expression evaluation</a> and <a href="https://writings.stephenwolfram.com/2022/06/games-and-puzzles-as-multicomputational-systems/">multiway systems based on games and puzzles</a>. But in studying multiway systems for aggregation  and tiling, we’ll be dealing with something that is immediately more physical and tangible.<span id="more-54568"></span></p>
<p>When we think of “growth by aggregation” we typically imagine a “random process” in which <a href="https://www.wolframscience.com/nks/p331--the-phenomenon-of-continuity/">new pieces get added “at random”</a> to something. But each of these “random possibilities” in effect defines a different path of history. And the concept of a multiway system is to capture all those possibilities together. In a typical random (or “stochastic”) model one’s just tracing a single path of history, and one imagines one doesn’t have enough information to say which path it will be. But in a multiway system one’s looking at all the paths. And in doing so, one’s in a sense making a model for the “whole story” of what can happen. </p>
<p>The choice of a single path can be “nondeterministic”. But the whole multiway system is deterministic. And by studying that “deterministic whole” it’s often possible to make useful, quite general statements.</p>
<p>One can think of a particular moment in the evolution of a multiway system as giving something like an <a href="https://writings.stephenwolfram.com/2023/01/how-did-we-get-here-the-tangled-history-of-the-second-law-of-thermodynamics/#coarse-graining-and-the-modern-formulation">ensemble of states of the kind studied in statistical mechanics</a>. But the general concept of a multiway system, with its discrete branching at discrete steps, depends on a level of fundamental discreteness that’s quite unfamiliar from traditional statistical mechanics—though is perfectly straightforward to define in a computational, or even mathematical, way. </p>
<p>For aggregation it’s easy enough to <a href="https://www.wolframscience.com/nks/notes-7-6--basic-aggregation-model/">set up a minimal discrete model</a>—at least if one allows explicit randomness in the model. But a major point of what we’ll do here is to “go above” that randomness, setting up our model in terms of a whole, deterministic multiway system. </p>
<p>What can we learn by looking at this whole multiway system? Well, for example, we can see whether there’ll always be growth—whatever the random choices may be—or whether the growth will sometimes, or even always, stop. And in many practical applications (think, for example, tumors) it can be very important to know whether growth always stops—or through what paths it can continue.</p>
<p>A lot of what we’ll at first do here involves seeing the effect of local constraints on growth. Later on, we’ll also look at effects of geometry, and we’ll study how objects of different shapes can aggregate, or ultimately tile.</p>
<p>The models we’ll introduce are in a sense very minimal—combining the simplest multiway structures with the simplest spatial structures. And with this minimality it’s almost <a href="https://writings.stephenwolfram.com/2021/09/charting-a-course-for-complexity-metamodeling-ruliology-and-more/#metamodeling-and-the-metatheory-of-models">inevitable that the models will show up</a> as idealizations of all sorts of systems—and as foundations for good models of these systems.</p>
<p>At first, multiway systems can seem rather abstract and difficult to grasp—and perhaps that’s inevitable given our <a href="https://writings.stephenwolfram.com/2021/03/what-is-consciousness-some-new-perspectives-from-our-physics-project/">human tendency to think sequentially</a>. But by seeing how multiway systems play out in the concrete case of growth processes, we get to build our intuition and develop a more grounded view—that will stand us in good stead in exploring other applications of multiway systems, and in general in coming to terms with the whole multicomputational paradigm.</p>
<h2 id="the-simplest-case">The Simplest Case</h2>
<p>It’s the ultimate minimal model for random discrete growth (often called the <a href="https://www.wolframscience.com/nks/notes-7-6--basic-aggregation-model/">Eden model</a>). On a square grid, start with one black cell, then at each step randomly attach a new black cell somewhere onto the growing “cluster”:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img1_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img1.png" alt="" title="" width="610" height="257"> </div>
<p></p></div>
<p>After 10,000 steps we might get:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img2_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img2.png" alt="" title="" width="358" height="334"> </div>
<p></p></div>
<p>But what are all the possible things that can happen? For that, we can construct a multiway system:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img3_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img3.png" alt="" title="" width="606" height="170"> </div>
<p></p></div>
<p>A lot of these clusters differ only by a trivial translation; canonicalizing by translation we get</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img4_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img4.png" alt="" title="" width="496" height="149"> </div>
<p></p></div>
<p>or after another step:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img5_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img5.png" alt="" title="" width="645" height="180"> </div>
<p></p></div>
<p>If we also reduce out rotations and reflections we get</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img6_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img6.png" alt="" title="" width="586" height="218"> </div>
<p></p></div>
<p>or after another step:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img7_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img7.png" alt="" title="" width="630" height="220"> </div>
<p></p></div>
<p>The set of possible clusters after <em>t</em> steps are just the possible polyominoes (or “square lattice animals”) with <em>t</em> cells. The <a href="https://oeis.org/A000105" target="_blank" rel="noopener">number of these for successive <em>t</em></a> is</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img8_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img8.png" alt="" title="" width="474" height="13"> </div>
<p></p></div>
<p>growing roughly like <em>k<sup>t</sup></em> for large <em>t</em>, with <em>k</em> a little larger than 4:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img10_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img10.png" alt="" title="" width="288" height="101"> </div>
<p></p></div>
<p>By the way, canonicalization by translation always reduces the number of possible clusters by a factor of <em>t</em>. Canonicalization by rotation and reflection can reduce the number by a factor of 8 if the cluster has no symmetry (which for large clusters becomes increasingly likely), and by a smaller factor the more symmetry the cluster has, as in: </p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img11_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img11.png" alt="" title="" width="457" height="148"> </div>
<p></p></div>
<p>With canonicalization, the multiway graph after 7 steps has the form</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img12_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img12.png" alt="" title="" width="583" height="195"> </div>
<p></p></div>
<p>and it doesn’t look any simpler with alternative rendering:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img13_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img13.png" alt="" title="" width="259" height="242"> </div>
<p></p></div>
<p>If we imagine that at each step, cells are added with equal probability at every possible position on the cluster, or equivalently that all outgoing edges from a given cluster in the uncanonicalized multiway graph are followed with equal probability, then we can get a distribution of probabilities for the distinct canonical clusters obtained—here shown after 7 steps: </p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img14_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img14.png" alt="" title="" width="192" height="114"> </div>
<p></p></div>
<p>One feature of the large random cluster we saw at the beginning is that it has some holes in it. Clusters with holes start developing after 7 steps, with the smallest being:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img15_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img15.png" alt="" title="" width="49" height="48"> </div>
<p></p></div>
<p>This cluster can be reached through a subset of the multiway system: </p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img16_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img16.png" alt="" title="" width="201" height="431"> </div>
<p></p></div>
<p>And in fact in the limit of large clusters, the probability for there to be a hole seems to approach 1—even though the total fraction of area covered by holes approaches 0.</p>
<p>One way to characterize the “space of possible clusters” is to create a <a href="https://www.wolframphysics.org/technical-introduction/the-updating-process-for-string-substitution-systems/the-concept-of-branchial-graphs/" target="_blank" rel="noopener">branchial graph</a> by connecting every pair of clusters that have a common ancestor one step back in the multiway graph:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img17_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img17.png" alt="" title="" width="547" height="437"> </div>
<p></p></div>
<p>The connectedness of all these graphs reflects the fact that with the rule we’re using, it’s always possible at any step to go from one cluster to another by a sequence of delete-one-cell/add-one-cell changes. </p>
<p>The branchial graphs here also show a 4-fold symmetry resulting from the symmetry of the underlying lattice. Canonicalizing the states, we get smaller branchial graphs that no longer show any such symmetry:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img18_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110223simplest1img18.png" alt="" title="" width="569" height="272"> </div>
<p></p></div>
<h2 id="totalistically-constrained-growth-4-cell-neighborhoods">Totalistically Constrained Growth (4-Cell Neighborhoods)</h2>
<p>With the rule we’ve been discussing so far, a new cell to be attached can be anywhere on a cluster. But what if we limit growth, by <a href="https://www.wolframscience.com/nks/p332--the-phenomenon-of-continuity/">requiring that new cells must have certain numbers of existing cells around them</a>? Specifically, let’s consider rules that look at the <img style="margin-bottom: -3px" loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img1.png" alt="" title="" width="17" height="17"> neighbors around any given position, and allow a new cell there only if there are specified numbers of existing cells in the neighborhood.</p>
<p>Starting with a cross of black cells, here are some examples of random clusters one gets after 20 steps with all possible rules of this type (the initial “4” designates that these are 4-neighbor rules):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img2_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img2.png" alt="" title="" width="571" height="182"> </div>
<p></p></div>
<p>Rules that don’t allow new cells to end up with just one existing neighbor can only fill in corners in their initial conditions, and can’t grow any further. But any rule that allows growth with only one existing neighbor produces clusters that keep growing forever. And here are some random examples of what one can get after 10,000 steps:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img3_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img3A.png" alt="" title="" width="597" height="314"> </div>
<p></p></div>
<p>The last of these is the unconstrained (Eden model) rule we already discussed above. But let’s look more carefully at the first case—where there’s growth only if a new cell will end up with exactly one neighbor. The canonicalized multiway graph in this case is:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img4_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img4.png" alt="" title="" width="625" height="324"> </div>
<p></p></div>
<p>The possible clusters here correspond to <a href="https://writings.stephenwolfram.com/2016/05/solomon-golomb-19322016/#polyominoes">polyominoes</a> that are “always one cell wide” (i.e. have no 2×2 blocks), or, equivalently, have perimeter 2<em>t</em> + 2 at step <em>t</em>. The number of such canonicalized clusters grows like:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img6_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img6.png" alt="" title="" width="450" height="13"> </div>
<p></p></div>
<p>This is an increasing fraction of the total number of polyominoes—implying that most large polyominoes take this “spindly” form.</p>
<p>A new feature of a rule with constraints is that not all locations around a cluster may allow growth. Here is a version of the multiway system above, with cells around each cluster annotated with green if new growth is allowed there, and red if it never can be:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img7_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img7.png" alt="" title="" width="597" height="319"> </div>
<p></p></div>
<p>In a larger random cluster, we can see that with this rule, most of the interior is “dead” in the sense that the constraint of the rule allows no further growth there:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img8_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img8.png" alt="" title="" width="345" height="346"> </div>
<p></p></div>
<p>By the way, the clusters generated by this rule can always be directly represented by their “skeleton graphs”:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img9_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img9.png" alt="" title="" width="300" height="308"> </div>
<p></p></div>
<p>Looking at random clusters for all the (grow-with-1-neighbor) rules above, we see different patterns of holes in each case:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img10_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img10A.png" alt="" title="" width="691" height="385"> </div>
<p></p></div>
<p>There are altogether five types of cells being distinguished here, reflecting different neighbor configurations:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img11_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img11.png" alt="" title="" width="238" height="131"> </div>
<p></p></div>
<p>Here’s a sample cluster generated with the 4:{1,3} rule:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img12_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img12.png" alt="" title="" width="256" height="256"> </div>
<p></p></div>
<p>Cells indicated with <img style="margin-bottom: -2px" title="" src="https://content.wolfram.com/sites/43/2023/11/swredbox.png" alt="" width="15" height="15"> already have too many neighbors, and so can never be added to the cluster. Cells indicated with <img style="margin-bottom: -2px" title="" src="https://content.wolfram.com/sites/43/2023/11/swgreenbox.png" alt="" width="15" height="15"> have exactly the right number of neighbors to be added immediately. Cells indicated with <img style="margin-bottom: -2px" title="" src="https://content.wolfram.com/sites/43/2023/11/swyellowbox.png" alt="" width="15" height="15"> don’t currently have the right number of neighbors to grow, but if neighbors are filled in, they might be able to be added. Sometimes it will turn out that when neighbors of <img style="margin-bottom: -2px" title="" src="https://content.wolfram.com/sites/43/2023/11/swyellowbox.png" alt="" width="15" height="15"> cells get filled in, they will actually prevent the cell from being added (so that it becomes <img style="margin-bottom: -2px" title="" src="https://content.wolfram.com/sites/43/2023/11/swredbox.png" alt="" width="15" height="15">)—and in the particular case shown here that happens with the 2×2 blocks of <img style="margin-bottom: -2px" title="" src="https://content.wolfram.com/sites/43/2023/11/swyellowbox.png" alt="" width="15" height="15"> cells.</p>
<p>The multiway graphs from the rules shown here are all qualitatively similar, but there are detailed differences. In particular, at least for many of the rules, an increasing number of states are “missing” relative to what one gets with the grow-in-all-cases 4:{1,2,3,4} rule—or, in other words, there are an increasing number of polyominoes that can’t be generated given the constraints:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img14_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img14.png" alt="" title="" width="468" height="208"> </div>
<p></p></div>
<p>The first polyomino that can’t be reached (which occurs at step 4) is:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img15_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img15.png" alt="" title="" width="49" height="48"> </div>
<p></p></div>
<p>At step 6 the polyominoes that can’t be reached for rules 4:{1,3} and 4:{1,3,4} are</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img16_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img16.png" alt="" title="" width="397" height="48"> </div>
<p></p></div>
<p>while for 4:{1} and 4:{1,4} the additional polyomino</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img17_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img17.png" alt="" title="" width="49" height="48"> </div>
<p></p></div>
<p>can also not be reached.</p>
<p>At step 8, the polyomino</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img18_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img18.png" alt="" title="" width="49" height="48"> </div>
<p></p></div>
<p>is reachable with 4:{1} and 4:{1,3} but not with 4:{1,4} and 4:{1,3,4}. </p>
<p>Of some note is that none of the rules that exclude polyominoes can reach:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img19_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell3img19.png" alt="" title="" width="49" height="48"> </div>
<p></p></div>
<h2 id="totalistically-constrained-growth-8-cell-neighborhoods">Totalistically Constrained Growth (8-Cell Neighborhoods)</h2>
<p>What happens if one considers diagonal as well orthogonal neighbors, giving a total of 8 neighbors around a cell? There are 256 possible rules in this case, corresponding to the possible subsets of <tt><a href="https://reference.wolfram.com/language/ref/Range.html">Range</a>[8]</tt>. Here are samples of what they do after 200 steps, starting from an initial <img style="margin-bottom: -2px" loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell8img1.png" alt="" title="" width="26" height="18"> cluster:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg2_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg2.png" alt="" title="" width="667" height="666"> </div>
<p></p></div>
<p>Two cases that at least initially show growth here are (the “8” designates that these are 8-neighbor rules):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg3_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg3.png" alt="" title="" width="503" height="268"> </div>
<p></p></div>
<p>In the {2} case, the multiway graph begins with:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg4_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg4.png" alt="" title="" width="609" height="325"> </div>
<p></p></div>
<p>One might assume that every branch in this graph would continue forever, and that growth would never “get stuck”. But it turns out that after 9 steps the following cluster is generated:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg5_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg5.png" alt="" title="" width="108" height="108"> </div>
<p></p></div>
<p>And with this cluster, no further growth is possible: no positions around the boundary have exactly 2 neighbors. In the multiway graph up to 10 steps, it turns out this is the only “terminal cluster” that can be generated—out of a total of 1115 possible clusters:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell8partialimg1_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell8partialimg1.png" alt="" title="" width="629" height="316"> </div>
<p></p></div>
<p>So how is that terminal cluster reached? Here’s the <a href="https://www.wolframscience.com/metamathematics/relations-to-automated-theorem-proving/">fragment of multiway graph</a> that leads to it:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg7_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg7.png" alt="" title="" width="135" height="462"> </div>
<p></p></div>
<p>If we don’t prune off all the ways to “go astray”, the fragment appears as part of a larger multiway graph:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg8_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg8.png" alt="" title="" width="464" height="463"> </div>
<p></p></div>
<p>And if one follows all paths in the unpruned (and uncanonicalized) multiway graph at random (i.e. at each step, one chooses each branch with equal probability), it turns out that the probability of ever reaching this particular terminal cluster is just:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg9_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg9.png" alt="" title="" width="80" height="25"> </div>
<p></p></div>
<p>(And the fact that this number is fairly small implies that the system is far from <a href="https://www.wolframphysics.org/technical-introduction/the-updating-process-for-string-substitution-systems/the-phenomenon-of-causal-invariance/" target="_blank" rel="noopener">confluent</a>; there are many paths that, for example, don’t converge to the fixed point corresponding to this terminal cluster.)</p>
<p>If we keep going in the evolution of the multiway system, we’ll reach other terminal clusters; after 12 steps the following have appeared:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg10_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg10.png" alt="" title="" width="246" height="90"> </div>
<p></p></div>
<p>For the {3} rule above, the multiway system takes a little longer to “get going”:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg11_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg11.png" alt="" title="" width="644" height="336"> </div>
<p></p></div>
<p>Once again there are terminal clusters where the system gets stuck; the first of them appears at step 14:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg12_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg12.png" alt="" title="" width="72" height="72"> </div>
<p></p></div>
<p>And also once again the terminal cluster appears as an isolated node in the whole multiway system: </p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg13_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg13.png" alt="" title="" width="634" height="318"> </div>
<p></p></div>
<p>The fragment of multiway graph that leads to it is:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg14_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg14.png" alt="" title="" width="236" height="565"> </div>
<p></p></div>
<p>So far we’ve been finding terminal clusters by waiting for them to appear in the evolution of the multiway system. But there’s another approach, similar to what one might use in <a href="https://resources.wolframcloud.com/FunctionRepository/resources/GenerateTiling/">filling in something like a tiling</a>. The idea is that every cell in a terminal cluster must have neighbors that don’t allow further growth. In other words, the terminal cluster must consist of certain “local tiles” for which the constraints don’t allow growth. But what configurations of local tiles are possible? To determine this, we turn the matching conditions for the tiles into logical expressions whose variables are <tt><a href="http://reference.wolfram.com/language/ref/True.html">True</a></tt> and <tt><a href="http://reference.wolfram.com/language/ref/False.html">False</a></tt> depending on whether particular positions in the template do or do not contain cells in the cluster. By solving the <a href="https://reference.wolfram.com/language/ref/SatisfiabilityInstances.html">satisfiability problem</a> for the combination of these logical expressions, one finds configurations of cells that could conceivably correspond to terminal clusters.</p>
<p>Following this procedure for the {2} rules with regions of up to 6×6 cells we find:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg15_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg15.png" alt="" title="" width="664" height="363"> </div>
<p></p></div>
<p>But now there’s an additional constraint. Assuming one starts from a connected initial cluster, any subsequent cluster generated must also be connected. Removing the non-connected cases we get:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg16_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg16.png" alt="" title="" width="646" height="136"> </div>
<p></p></div>
<p>So given these terminal clusters, what initial conditions can lead to them? To determine this we effectively have to <a href="https://www.wolframscience.com/nks/notes-10-10--backtracking-in-cellular-automata/">invert the aggregation process</a>—giving in the end a multiway graph that includes all initial conditions that can generate a given terminal cluster. For the smallest terminal cluster we get:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg17_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg17.png" alt="" title="" width="125" height="460"> </div>
<p></p></div>
<p>Our 4-cell “T” initial condition appears here—but we see that there are also even smaller 2-cell initial conditions that lead to the same terminal cluster. </p>
<p>For all the terminal clusters we showed before, we can construct the multiway graphs starting with the minimal initial clusters that lead to them:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg18_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg18.png" alt="" title="" width="602" height="436"> </div>
<p></p></div>
<p>For terminal clusters like</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323cell8partialimg2_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323cell8partialimg2.png" alt="" title="" width="165" height="77"> </div>
<p></p></div>
<p>there’s no nontrivial multiway system to show, since these clusters can only appear as initial conditions; they can never be generated in the evolution.</p>
<p>There are quite a few small clusters that can only appear as initial conditions, and do not have preimages under the aggregation rule. Here are the cases that fit in a 3×3 region:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg20_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg20.png" alt="" title="" width="597" height="191"> </div>
<p></p></div>
<p>The case of the {3} rule is fairly similar to the {2} rule. The possible terminal clusters up to 5×5 are:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg21_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg21.png" alt="" title="" width="571" height="225"> </div>
<p></p></div>
<p>However, most of these have only a fairly limited set of possible preimages:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg22_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg22.png" alt="" title="" width="602" height="748"> </div>
<p></p></div>
<p>For example we have:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg23_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg23.png" alt="" title="" width="584" height="216"> </div>
<p></p></div>
<p>And indeed beyond the (size-17) example we already showed above, no other terminal clusters that can be generated from a T initial condition appear here. Sampling further, however, additional terminal clusters appear (beginning at size 25):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg24_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg24.png" alt="" title="" width="384" height="167"> </div>
<p></p></div>
<p>The fragments of multiway graphs for the first few of these are:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg25_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw1103023eightcellAimg25.png" alt="" title="" width="325" height="212"> </div>
<p></p></div>
<h2 id="random-evolution">Random Evolution</h2>
<p>We’ve seen above that for the rules we’ve been investigating, terminal clusters are quite rare among possible states in the multiway system. But what happens if we just evolve at random? How often will we wind up with a terminal cluster? When we say “evolve at random”, what we mean is that at each step we’re going to look at all possible positions where a new cell could be added to the cluster that exists so far, and then we’re going to pick with equal probability at which of these to actually add the new cell.</p>
<p>For the 8:{3} rule something surprising happens. Even though terminal clusters are rare in its multiway graph, it turns out that regardless of its initial conditions, it always eventually reaches a terminal cluster—though it often takes a while. And here, for example, are a <a href="https://www.wolframscience.com/nks/notes-7-6--generalized-aggregation-models/">few possible terminal clusters</a>, annotated with the number of steps it took to reach them (which is also equal to the number of cells they contain):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg1_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg1A.png" alt="" title="" width="558" height="258"> </div>
<p></p></div>
<p>The distribution of the number of steps to termination seems to be very roughly exponential (here based on a sample of 10,000 random cases)—with mean lifetime around 2300 and half-life around 7400:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg2_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg2.png" alt="" title="" width="358" height="178"> </div>
<p></p></div>
<p>Here’s an example of a large terminal cluster—that takes 21,912 steps to generate:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg3_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg3.png" alt="" title="" width="283" height="282"> </div>
<p></p></div>
<p>And here’s a map showing when growth in different parts of this cluster occurred (with blue being earliest and red being latest):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg4_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg4.png" alt="" title="" width="358" height="342"> </div>
<p></p></div>
<p>This picture suggests that different parts of the cluster “actively grow” at different times, and if we look at a “spacetime” plot of where growth occurs as a function of time, we can confirm this:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg5_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg5.png" alt="" title="" width="251" height="403"> </div>
<p></p></div>
<p>And indeed what this suggests is that what’s happening is that different parts of the cluster are at first “fertile”, but later inevitably “burn out”—so that in the end there are no possible positions left where growth can occur.</p>
<p>But what shapes can the final terminal clusters form? We can get some idea by looking at a “compactness measure” (of the kind often used to study gerrymandering) that roughly gives the standard deviation of the distances from the center of each cluster to each of the cells in it. Both “very stringy” and “roughly circular” clusters are fairly rare; most clusters lie somewhere in between:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg6_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg6.png" alt="" title="" width="359" height="218"> </div>
<p></p></div>
<p>If we look not at the 8:{3} but instead at the 8:{2} rule, things are very different. Once again, it’s possible to reach a terminal cluster, as the multiway graph shows. But now random evolution almost never reaches a terminal cluster, and instead almost always “runs away” to generate an infinite cluster. The clusters generated in this case are typically much more “compact” than in the 8:{3} case</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg7_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg7.png" alt="" title="" width="358" height="362"> </div>
<p></p></div>
<p>and this is also reflected in the “spacetime” version:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg8_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323evolutionimg8.png" alt="" title="" width="265" height="431"> </div>
<p></p></div>
<h2 id="parallel-growth-and-causal-graphs">Parallel Growth and Causal Graphs</h2>
<p>In building up our clusters so far, we’ve always been assuming that cells are added sequentially, one at a time. But if two cells are far enough apart, we can actually add them “simultaneously”, in parallel, and end up building the same cluster. We can think of the addition of each cell as being an “event” that updates the state of the cluster. Then—just like in our Physics Project, and other applications of multicomputation—we can define a causal graph that represents the causal dependencies between these events, and then foliations of this causal graph tell us possible overall sequences of updates, including parallel.</p>
<p>As an example, consider this sequence of states in the “always grow” 4:{1,2,3,4} rule—where at each step the cell that’s new is colored red (and we’re including the “nothing” state at the beginning):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg1_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg1.png" alt="" title="" width="580" height="37"> </div>
<p></p></div>
<p>Every transition between successive states defines an event:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg2_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg2.png" alt="" title="" width="573" height="70"> </div>
<p></p></div>
<p>There’s then causal dependence of one event on another if the cell added in the second event is adjacent to the one added in the first event. So, for example, there are causal dependencies like</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg3_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg3.png" alt="" title="" width="138" height="73"> </div>
<p></p></div>
<p>and </p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg4_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg4.png" alt="" title="" width="138" height="73"> </div>
<p></p></div>
<p>where in the second case additional “spatially separated” cells have been added that aren’t involved in the causal dependence. Putting all the causal dependencies together, we get the complete causal graph for this evolution:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg5_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg5.png" alt="" title="" width="284" height="553"> </div>
<p></p></div>
<p>We can recover our original sequence of states by picking a particular ordering of these events (here indicated by the positions of the cells they add):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg6_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg6.png" alt="" title="" width="219" height="396"> </div>
<p></p></div>
<p>This path has the property that it always follows the direction of causal edges—and we can make that more obvious by using a different layout for the causal graph:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg7_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg7.png" alt="" title="" width="109" height="429"> </div>
<p></p></div>
<p>But in general we can use any ordering of events consistent with the causal graph. Another ordering (out of a total of 40,320 possibilities in this case) is</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg8_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg8.png" alt="" title="" width="235" height="429"> </div>
<p></p></div>
<p>which gives the sequence of states</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg9_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg9.png" alt="" title="" width="578" height="40"> </div>
<p></p></div>
<p>with the same final cluster configuration, but different intermediate states.</p>
<p>But now the point is that the constraints implied by the causal graph do not require all events to be applied sequentially. Some events can be considered “spacelike separated” and so can be applied simultaneously. And in fact, any foliation of the causal graph defines a certain sequence for applying events—either sequentially or in parallel. So, for example, here is one particular foliation of the causal graph (shown with two different renderings for the causal graph):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg10_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg10.png" alt="" title="" width="406" height="301"> </div>
<p></p></div>
<p>And here is the corresponding sequence of states obtained:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg11_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg11.png" alt="" title="" width="295" height="47"> </div>
<p></p></div>
<p>And since in some slices of this foliation multiple events happen “in parallel”, it’s “faster” to get to the final configuration. (As it happens, this foliation is like a “cosmological rest frame foliation” in our Physics Project, and involves the maximum possible number of events happening on each slice.)</p>
<p>Different foliations (and there are a total of 678,972 possibilities in this case) will give different sequences of states, but always the same final state:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg12_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg12.png" alt="" title="" width="446" height="460"> </div>
<p></p></div>
<p>Note that nothing we’ve done here depends on the particular rule we’ve used. So, for example, for the 8:{2} rule with sequence of states</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg13_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg13.png" alt="" title="" width="580" height="37"> </div>
<p></p></div>
<p>the causal graph is:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg14_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323growthimg14.png" alt="" title="" width="208" height="375"> </div>
<p></p></div>
<p>It’s worth commenting that everything we’ve done here has been for particular sequences of states, i.e. particular paths in the multiway graph. And in effect what we’re doing is the analog of classical spacetime physics—tracing out causal dependencies in particular evolution histories. But in general we could look at the whole <a href="https://www.wolframphysics.org/technical-introduction/the-updating-process-for-string-substitution-systems/the-relationship-between-graphs-and-the-multiway-causal-graph/" target="_blank" rel="noopener">multiway causal graph</a>, with events that are not only timelike or spacelike separated, but also <a href="https://writings.stephenwolfram.com/2023/09/expression-evaluation-and-fundamental-physics/#branchlike-separation">branchlike separated</a>. And if we make foliations of this graph, we’ll end up not only with “classical” spacetime states, but also “quantum” superposition states that would need to be represented by something like <a href="https://www.wolframphysics.org/bulletins/2021/02/multiway-turing-machines/#visualization-and-multispace" target="_blank" rel="noopener">multispace</a> (in which at each spatial position, there is a “branchial stack” of possible cell values).</p>
<h2 id="the-one-dimensional-case">The One-Dimensional Case</h2>
<p>So far we’ve been considering aggregation processes in two dimensions. But <a href="https://www.wolframscience.com/nks/notes-7-6--generalized-aggregation-models/">what about one dimension</a>? In 1D, a “cluster” just consists of a sequence of cells. The simplest rule allows a cell to be added whenever it’s adjacent to a cell that’s already there. Starting from a single cell, here’s a possible random evolution according to such a rule, shown evolving down the page:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg1_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg1.png" alt="" title="" width="405" height="185"> </div>
<p></p></div>
<p>We can also construct the multiway system for this rule:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg2_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg2.png" alt="" title="" width="285" height="122"> </div>
<p></p></div>
<p>Canonicalizing the states gives the trivial multiway graph:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg3_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg3.png" alt="" title="" width="40" height="131"> </div>
<p></p></div>
<p>But just like in the 2D case things get less trivial if there are constraints on growth. For example, assume that before placing a new cell we count the number of cells that lie either distance 1 or distance 2 away. If the number of allowed cells can only be exactly 1 we get behavior like:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg4_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg4.png" alt="" title="" width="565" height="169"> </div>
<p></p></div>
<p>The corresponding multiway system is</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg5_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg5.png" alt="" title="" width="562" height="135"> </div>
<p></p></div>
<p>or after canonicalization:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg6_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg6.png" alt="" title="" width="540" height="165"> </div>
<p></p></div>
<p>The number of distinct sequences after <em>t</em> steps here is given by </p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg7_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg7.png" alt="" title="" width="486" height="14"> </div>
<p></p></div>
<p>which can be expressed in terms of Fibonacci numbers, and for large <em>t</em> is about <span class="InlineFormula"><img src="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg8.png" width="13" height="18" align="absmiddle"></span>. </p>
<p>The rule in effect generates all possible Morse-code-like sequences, consisting of runs of either 2-cell (“long”) black blocks or 1-cell (“short”) black blocks, interspersed by “gaps” of single white cells.</p>
<p>The branchial graphs for this system have the form:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg9_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg9.png" alt="" title="" width="486" height="210"> </div>
<p></p></div>
<p>Looking at random evolutions for all possible rules of this type we get:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg10_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg10.png" alt="" title="" width="601" height="339"> </div>
<p></p></div>
<p>The corresponding canonicalized multiway graphs are:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110423onedimimg11_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/TheOne-DimensionalCase-img11A.png" alt="" title="" width="627" height="307"> </div>
<p></p></div>
<p>The rules we’ve looked at so far are purely totalistic: whether a new cell can be added depends only on the total number of cells in its neighborhood. But (much like, for example, in cellular automata) it’s also <a href="https://www.wolframscience.com/nks/notes-7-6--generalized-aggregation-models/ ">possible to have rules </a>where whether one can add a new cell depends on the complete configuration of cells in a neighborhood. Mostly, however, such rules seem to behave very much like totalistic ones.</p>
<p>Other generalizations include, for example, rules with multiple “colors” of cells, and rules that depend either on the total number of cells of different colors, or their detailed configurations.</p>
<h2 id="the-three-dimensional-case">The Three-Dimensional Case</h2>
<p>The kind of analysis we’ve done for 2D and 1D aggregation systems can readily be extended to 3D. As a first example, consider a rule in which cells can be added along each of the 6 coordinate directions in a 3D grid whenever they are adjacent to an existing cell. Here are some typical examples of random clusters formed in this case: </p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg1_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg1.png" alt="" title="" width="580" height="204"> </div>
<p></p></div>
<p>Taking successive slices through the first of these (and coloring by “age”) we get:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg2_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/TheThree-DimensionalCase-img2.png" alt="" title="" width="684" height="129"> </div>
<p></p></div>
<p>If we allow a cell to be added only when it is adjacent to just one existing cell (corresponding to the rule 6:{1}) we get clusters that from the outside look almost indistinguishable</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg3_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg3.png" alt="" title="" width="580" height="214"> </div>
<p></p></div>
<p>but which have an “airier” internal structure:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg4_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/TheThree-DimensionalCase-img4.png" alt="" title="" width="651" height="119"> </div>
<p></p></div>
<p>Much like in 2D, with 6 neighbors, there can’t be unbounded growth unless cells can be added when there is just one cell in the neighborhood. But in analogy to what happens in 2D, things get more complicated when we allow “corner adjacency” and have a 26-cell neighborhood.</p>
<p>If cells can be added whenever there’s at least one adjacent cell, the results are similar to the 6-neighbor case, except that now there can be “corner-adjacent outgrowths”</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg5_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg5.png" alt="" title="" width="580" height="212"> </div>
<p></p></div>
<p>and the whole structure is “still airier”:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg6_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/TheThree-DimensionalCase-img6.png" alt="" title="" width="659" height="175"> </div>
<p></p></div>
<p>Little qualitatively changes for a rule like 26:{2} where growth can occur only with exactly 2 neighbors (here starting with a 3D dimer):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg7_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg7.png" alt="" title="" width="580" height="221"> </div>
<p></p></div>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg8_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/TheThree-DimensionalCase-img8.png" alt="" title="" width="630" height="140"> </div>
<p></p></div>
<p>But the general question of when there is growth, and when not, is quite complicated and subtle. In particular, even with a specific rule, there are often some initial conditions that can lead to unbounded growth, and others that cannot.</p>
<p>Sometimes there is growth for a while, but then it stops. For example, with the rule 26:{9}, one possible path of evolution from a 3×3×3 block is:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg9_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg9.png" alt="" title="" width="591" height="74"> </div>
<p></p></div>
<p>The full multiway graph in this case terminates, confirming that no unbounded growth is ever possible:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg10_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg10.png" alt="" title="" width="345" height="93"> </div>
<p></p></div>
<p>With other initial conditions, however, this rule can grow for longer (here shown every 10 steps):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg11_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg11.png" alt="" title="" width="618" height="104"> </div>
<p></p></div>
<p>And from what one can tell, all rules 26:{<em>n</em>} lead to unbounded growth for <span class="InlineFormula"><img style="margin-bottom: 4px" src="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg12.png" width="36" height="12" align="absmiddle"></span>, and do not for <span class="InlineFormula"><img style="margin-bottom: 4px" src="https://content.wolfram.com/sites/43/2023/11/sw110323threedimimg13.png" width="36" height="12" align="absmiddle"></span>.</p>
<h2 id="polygonal-shapes">Polygonal Shapes</h2>
<p>So far, we’ve been looking at “filling in cells” in grids—in 2D, 1D and 3D. But we can also look at just “placing tiles” without a grid, with each new tile attaching edge to edge to an existing tile. </p>
<p>For square tiles, there isn’t really a difference:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg1_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg1.png" alt="" title="" width="449" height="152"> </div>
<p></p></div>
<p>And the multiway system is just the same as for our original “grow anywhere” rule on a 2D grid:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg2_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg2.png" alt="" title="" width="637" height="226"> </div>
<p></p></div>
<p>Here’s now what happens for triangular tiles:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg3_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg3.png" alt="" title="" width="485" height="145"> </div>
<p></p></div>
<p>The multiway graph now generates all <a href="https://mathworld.wolfram.com/Polyiamond.html">polyiamonds</a> (triangular polyforms):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg4_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg4.png" alt="" title="" width="638" height="338"> </div>
<p></p></div>
<p>And since equilateral triangles can tessellate in a regular lattice, we can think of this—like the square case—as “filling in cells in a lattice” rather than just “placing tiles”. Here are some larger examples of random clusters in this case:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg5_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg5.png" alt="" title="" width="501" height="161"> </div>
<p></p></div>
<p>Essentially the same happens with regular hexagons:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg6_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg6.png" alt="" title="" width="519" height="157"> </div>
<p></p></div>
<p>The multiway graph generates all polyhexes:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg7_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg7.png" alt="" title="" width="636" height="320"> </div>
<p></p></div>
<p>Here are some examples of larger clusters—showing somewhat more “tendrils” than the triangular case:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg8_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg8.png" alt="" title="" width="549" height="182"> </div>
<p></p></div>
<p>And in an “effectively lattice” case like this we could also go on and impose constraints on neighborhood configurations, much as we did in earlier sections above. </p>
<p>But what happens if we consider shapes that do not tessellate the plane—like regular pentagons? We can still “sequentially place tiles” with the constraint that any new tile can’t overlap an existing one. And with this rule we get for example:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg9_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg9.png" alt="" title="" width="494" height="197"> </div>
<p></p></div>
<p>Here are some “randomly grown” larger clusters—showing all sorts of irregularly shaped interstices inside:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg10_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg10.png" alt="" title="" width="555" height="174"> </div>
<p></p></div>
<p>(And, yes, generating such pictures correctly is far from trivial. In the “effectively lattice” case, coincidences between polygons are fairly easy to determine exactly. But in something like the pentagon case, doing so requires solving equations in a high-degree <a href="https://reference.wolfram.com/language/tutorial/AlgebraicNumberFields.html">algebraic number field</a>.)</p>
<p>The multiway graph, however, does not show any immediately obvious differences from the ones for “effectively lattice” cases:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg11_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg11.png" alt="" title="" width="637" height="324"> </div>
<p></p></div>
<p>It makes it slightly easier to see what’s going on if we riffle the results on the last step we show:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg12_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg12.png" alt="" title="" width="637" height="348"> </div>
<p></p></div>
<p>The branchial graphs in this case have the form:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg13_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg13.png" alt="" title="" width="610" height="163"> </div>
<p></p></div>
<p>Here’s a larger cluster formed from pentagons:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg14_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg14.png" alt="" title="" width="488" height="486"> </div>
<p></p></div>
<p>And remember that the way this is built is sequentially to add one pentagon at each step by testing every “exposed edge” and seeing in which cases a pentagon will “fit”. As in all our other examples, there is no preference given to “external” versus “internal” edges.</p>
<p>Note that whereas “effectively lattice” clusters always eventually fill in all their holes, this isn’t true for something like the pentagon case. And in this case it appears that in the limit, about 28% of the overall area is taken up by holes. And, by the way, there’s a definite “zoo” of at least small possible holes, here plotted with their (logarithmic) probabilities:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg15_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg15.png" alt="" title="" width="598" height="150"> </div>
<p></p></div>
<p>So what happens with other regular polygons? Here’s an example with octagons (and in this case the limiting total area taken up by holes is about 35%):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg16_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg16.png" alt="" title="" width="402" height="460"> </div>
<p></p></div>
<p>And, by the way, here’s the “zoo of holes” in this case:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg17_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg17.png" alt="" title="" width="598" height="149"> </div>
<p></p></div>
<p>With pentagons, it’s pretty clear that difficult-to-resolve geometrical situations will arise. And one might have thought that octagons would avoid these. But there are still plenty of strange “mismatches” like</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg18_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg18.png" alt="" title="" width="295" height="157"> </div>
<p></p></div>
<p>that aren’t easy to characterize or analyze. By the way, one should note that any time a “closed hole” is formed, the vectors corresponding to the edges that form its boundary must sum to zero—in effect defining an equation.</p>
<p>When the number of sides in the regular polygon gets large, our clusters will approximate circle packings. Here’s an example with 12-gons:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg19_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polygonalimg19.png" alt="" title="" width="258" height="303"> </div>
<p></p></div>
<p>But of course because we’re insisting on adding one polygon at a time, the resulting structure is much “airier” than a true circle packing—of the kind that would be obtained (at least in 2D) by “pushing on the edges” of the cluster.</p>
<h2 id="polyomino-tilings">Polyomino Tilings</h2>
<p>In the previous section we considered “sequential tilings” constructed from regular polygons. But the methods we used are quite general, and can be applied to sequential tilings formed from any shape—or shapes (or, at least, any shapes for which “attachment edges” can be identified).</p>
<p>As a first example, consider a domino or dimer shape—which we assume can be oriented both vertically and horizontally:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg1_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg1.png" alt="" title="" width="507" height="146"> </div>
<p></p></div>
<p>Here’s a somewhat larger cluster formed from dimers:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg2_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg2.png" alt="" title="" width="386" height="386"> </div>
<p></p></div>
<p>Here’s the canonicalized multiway graph in this case:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg3_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg3.png" alt="" title="" width="636" height="206"> </div>
<p></p></div>
<p>And here are the branchial graphs:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg4_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg4.png" alt="" title="" width="663" height="312"> </div>
<p></p></div>
<p>So what about other polyomino shapes? What happens when we try to sequentially tile with these—effectively making “polypolyominoes”?</p>
<p>Here’s an example based on an L-shaped polyomino:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg5_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg5.png" alt="" title="" width="526" height="202"> </div>
<p></p></div>
<p>Here’s a larger cluster</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg6_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg6.png" alt="" title="" width="415" height="518"> </div>
<p></p></div>
<p>and here’s the canonicalized multiway graph after just 1 step</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg7_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg7.png" alt="" title="" width="427" height="159"> </div>
<p></p></div>
<p>and after 2 steps:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg8_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg8.png" alt="" title="" width="614" height="156"> </div>
<p></p></div>
<p>The only other 3-cell polyomino is the tromino:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg9_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg9.png" alt="" title="" width="632" height="187"> </div>
<p></p></div>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg10_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg10.png" alt="" title="" width="472" height="478"> </div>
<p></p></div>
<p>(For dimers, the limiting fraction of area covered by holes seems to be about 17%, while for L and tromino polyominoes, it’s about 27%.)</p>
<p>Going to 4 cells, there are 5 possible polyominoes—and here are samples of random clusters that can be built with them (note that in the last case shown, we require only that “subcells” of the 2×2 polyomino must align):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg11_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/PolyominoTilings-img11.png" alt="" title="" width="555" height="571"> </div>
<p></p></div>
<p>The corresponding multiway graphs are:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg12_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg12.png" alt="" title="" width="668" height="485"> </div>
<p></p></div>
<p>Continuing for more steps in a few cases:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg13_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg13.png" alt="" title="" width="635" height="178"> </div>
<p></p></div>
<p>Some polyominoes are “more awkward” to fit together than others—so these typically give clusters of “lower density”:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg14_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg14.png" alt="" title="" width="242" height="235"> </div>
<p></p></div>
<p>So far, we’ve always considered adding new polyominoes so that they “attach” on any “exposed edge”. And the result is that we can often get long “tendrils” in our clusters of polyominoes. But an alternative strategy is to try to add polyominoes as “compactly” as possible, in effect by adding successive “rings” of polyominoes (with “older” rings here colored bluer):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg15_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg15.png" alt="" title="" width="617" height="192"> </div>
<p></p></div>
<p>In general there are many ways to add these rings, and eventually one will often get stuck, unable to add polyominoes without leaving holes—as indicated by the red annotation here:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg16_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg16.png" alt="" title="" width="240" height="240"> </div>
<p></p></div>
<p>Of course, that doesn’t mean that if one was prepared to “backtrack and try again”, one couldn’t find a way to extend the cluster without leaving holes. And indeed for the polyomino we’re looking at here it’s perfectly possible to end up with “perfect tilings” in which no holes are left:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg17_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg17.png" alt="" title="" width="454" height="205"> </div>
<p></p></div>
<p>In general, we could consider all sorts of different strategies for growing clusters by adding polyominoes “in parallel”—just like in our discussion of causal graphs above. And if we add polyominoes “a ring at a time” we’re effectively making a particular choice of foliation—in which the successive “ring states” turn out be directly analogous to what we call <a href="https://www.wolframphysics.org/technical-introduction/the-updating-process-for-string-substitution-systems/generational-evolution/#p-294" target="_blank" rel="noopener">“generational states” in our Physics Project</a>.</p>
<p>If we allow holes (and don’t impose other constraints), then it’s inevitable that—just with ordinary, sequential aggregation—we can grow an unboundedly large cluster of polyominoes of any shape, just by always attaching one edge of each new polyomino to an “exposed” edge of the existing cluster. But if we don’t allow holes, it’s a different story—and we’re talking about a traditional tiling problem, where there are ultimately cases where tiling is impossible, and only limited-size clusters can be generated.</p>
<p>As it happens, all polyominoes with 6 or fewer cells do allow infinite tilings. But with 7 cells the following do not:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg18_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg18.png" alt="" title="" width="282" height="57"> </div>
<p></p></div>
<p>It’s perfectly possible to grow random clusters with these polyominoes—but they tend not to be at all compact, and to have lots of holes and tendrils:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg19_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/PolyominoTilings-img19E.png" alt="" title="" width="605" height="533"> </div>
<p></p></div>
<p>So what happens if we try to grow clusters in rings? Here are all the possible ways to “surround” the first of these polyominoes with a “single ring”:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg20_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323polyominoesimg20.png" alt="" title="" width="676" height="180"> </div>
<p></p></div>
<p>And it turns out in every single case, there are edges (indicated here in red) where the cluster can’t be extended—thereby demonstrating that no infinite tiling is possible with this particular polyomino. </p>
<p>By the way, much like we saw with constrained growth on a grid, it’s possible to have “tiling regions” that can extend only a certain limited distance, then <a href="https://isohedral.ca/heesch-numbers-of-unmarked-polyforms/" target="_blank" rel="noopener">always get stuck</a>.</p>
<p>It’s worth mentioning that we’ve considered here the case of single polyominoes. It’s also possible to consider being able to add a <a href="https://www.wolframscience.com/nks/notes-5-7--polyominoes/">whole set of possible polyominoes</a>—“<em>Tetris</em> style”. </p>
<h2 id="nonperiodic-tilings">Nonperiodic Tilings</h2>
<p>We’ve looked at polyominoes—and shapes like pentagons—that don’t tile the plane. But what about shapes that can tile the plane, but only nonperiodically? As an example, let’s consider <a href="https://www.wolframscience.com/nksonline/page-932d/">Penrose tiles</a>. The basic shapes of these tiles are</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg1_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg1.png" alt="" title="" width="145" height="42"> </div>
<p></p></div>
<p>though there are additional matching conditions (implicitly indicated by the arrows on each tile), which can be enforced either by putting notches in the tiles or by decorating the tiles:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg2_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg2.png" alt="" title="" width="145" height="116"> </div>
<p></p></div>
<p>Starting with these individual tiles, we can build up a multiway system by attaching tiles wherever the matching rules are satisfied (note that all edges of both tiles are the same length):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg3_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg3.png" alt="" title="" width="638" height="375"> </div>
<p></p></div>
<p> So how can we tell that these tiles can form a nonperiodic tiling? One approach is to generate a multiway system in which at successive steps we surround clusters with rings in all possible ways:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg4_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg4.png" alt="" title="" width="515" height="488"> </div>
<p></p></div>
<p>Continuing for another step we get:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg5_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg5.png" alt="" title="" width="598" height="642"> </div>
<p></p></div>
<p>Notice that here some of the branches have died out. But the question is what branches exist that will continue forever, and thus lead to an infinite tiling? To answer this we have to do a bit of analysis.</p>
<p>The first step is to see what possible “rings” can have formed around the original tile. And we can read all of these off from the multiway graph:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg6_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg6.png" alt="" title="" width="581" height="181"> </div>
<p></p></div>
<p>But now it’s convenient to look not at possible rings around a tile, but instead at possible configurations of tiles that can surround a single vertex. There turns out to be the following limited set:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg7_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg7.png" alt="" title="" width="580" height="61"> </div>
<p></p></div>
<p>The last two of these configurations have the feature that they can’t be extended: no tile can be added on the center of their “blue sides”. But it turns out that all the other configurations can be extended—though only to make a <a href="https://www.wolframscience.com/nks/notes-5-4--penrose-tilings/">nested tiling</a>, not a periodic one.</p>
<p>And a first indication of this is that larger copies of tiles (“supertiles”) can be drawn on top of the first three configurations we just identified, in such a way that the vertices of the supertiles coincide with vertices of the original tiles:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg8_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg8.png" alt="" title="" width="192" height="74"> </div>
<p></p></div>
<p>And now we can use this to construct rules for a substitution system:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg9_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg9.png" alt="" title="" width="442" height="119"> </div>
<p></p></div>
<p>Applying this substitution system builds up a nested tiling that can be continued forever:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nppartialimg1_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg10.png" alt="" title="" width="560" height="119"> </div>
<p></p></div>
<p>But is such a nested tiling the only one that is possible with our original tiles? We can prove that it is by showing that every tile in every possible configuration occurs within a supertile. We can pull out possible configurations from the multiway system—and then in each case it turns out that we can indeed find a supertile in which the original tile occurs:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg11_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg11.png" alt="" title="" width="596" height="226"> </div>
<p></p></div>
<p>And what this all means is that the only infinite paths that can occur in the multiway system are ones that correspond to nested tilings; all other paths must eventually die out.</p>
<p>The Penrose tiling involves two distinct tiles. But in 2022 <a href="https://mathworld.wolfram.com/AperiodicMonotile.html">it was discovered that</a>—if one’s allowed to flip the tile over—just a single (“hat”) tile is sufficient to force a nonperiodic tiling: </p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg12_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg12.png" alt="" title="" width="68" height="50"> </div>
<p></p></div>
<p>The full multiway graph obtained from this tile (and its flip-over) is complicated, but many paths in it lead (at least eventually) to “dead ends” which cannot be further extended. Thus, for example, the following configurations—which appear early in the multiway graph—all have the property that they can’t occur in an infinite tiling:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg13_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg13.png" alt="" title="" width="503" height="64"> </div>
<p></p></div>
<p>In the first case here, we can successively add a few rings of tiles:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg14_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg14.png" alt="" title="" width="550" height="158"> </div>
<p></p></div>
<p>But after 7 rings, there is a “contradiction” on the boundary, and no further growth is possible (as indicated by the red annotations):</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg15_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg15.png" alt="" title="" width="319" height="256"> </div>
<p></p></div>
<p>Having eliminated cases that always lead to “dead ends” the resulting simplified multiway graph effectively includes all joins between hat tiles that can ultimately lead to surviving configurations:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg16_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg16.png" alt="" title="" width="638" height="232"> </div>
<p></p></div>
<p>Once again we can <a href="https://resources.wolframcloud.com/FunctionRepository/resources/HatHexagons/">define a supertile transformation</a></p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg17_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg17.png" alt="" title="" width="383" height="180"> </div>
<p></p></div>
<p>where the region outlined in red can potentially overlap another supertile. Now we can construct a multiway graph for the supertile (in its “bitten out” and full variant)</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg18_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg18.png" alt="" title="" width="634" height="348"> </div>
<p></p></div>
<p>and can see that there is a (one-to-one) map from the multiway graph for the original tiles and for these supertiles: </p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg19_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg19.png" alt="" title="" width="651" height="293"> </div>
<p></p></div>
<p>And now from this we can tell that there can be arbitrarily large nested tilings using the hat tile:</p>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg20_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg20.png" alt="" title="" width="556" height="150"> </div>
<p></p></div>
<div>
<div class="wolfram-c2c-wrapper writtings-c2c_above" data-c2c-file="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg21_copy.txt" data-c2c-type="text/html"> <img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323nonperiodicimg21.png" alt="" title="" width="522" height="373"> </div>
<p></p></div>
<h2 id="personal-notes">Personal Notes</h2>
<p>Tucked away on <a href="https://www.wolframscience.com/nks/p979--the-phenomenon-of-continuity/">page 979</a> of my 2002 book <em><a href="https://www.wolframscience.com/nks/">A New Kind of Science</a></em> is a note (written in 1995) on “<a href="https://www.wolframscience.com/nks/notes-7-6--generalized-aggregation-models/">Generalized aggregation models</a>”:</p>
<p><a class="magnific image" alt="" title="" href="https://content.wolfram.com/sites/43/2023/11/sw110323finalimg1.png"><img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323finalimg1.png" alt="Click to enlarge" title="Click to enlarge" width="620" height="472"></a></p>
<p>And in many ways the current piece is a three-decade-later followup to that note—using a new approach based on multiway systems. </p>
<p> In <em>A New Kind of Science</em> I did <a href="https://www.wolframscience.com/nks/chap-5--two-dimensions-and-beyond#sect-5-6--multiway-systems">discuss multiway systems</a> (both abstractly, and in <a href="https://www.wolframscience.com/nks/chap-9--fundamental-physics#sect-9-11--uniqueness-and-branching-in-time">connection with fundamental physics</a>). But what I said about aggregation was mostly in a section called “<a href="https://www.wolframscience.com/nks/chap-7--mechanisms-in-programs-and-nature#sect-7-6--the-phenomenon-of-continuity">The Phenomenon of Continuity</a>” which discussed how randomness could on a large scale lead to apparent continuity. That section began by talking about things like random walks, but went on to discuss <a href="https://www.wolframscience.com/nks/p331--the-phenomenon-of-continuity/">the same minimal (“Eden model”)</a> example of “random aggregation” that I give here. And then, in an attempt to “spruce up” my discussion of aggregation, I started looking at “<a href="https://www.wolframscience.com/nks/p332--the-phenomenon-of-continuity/">aggregation with constraints</a>”. In the main text of the book I gave just two examples:</p>
<p><a class="magnific image" alt="" title="" href="https://content.wolfram.com/sites/43/2023/11/sw110323finalimg2.png"><img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323finalimg2.png" alt="Click to enlarge" title="Click to enlarge" width="473" height="424"></a></p>
<p>But then for the <a href="https://www.wolframscience.com/nks/notes-7-6--generalized-aggregation-models/">footnote</a> I studied a wider range of constraints (enumerating them much as I had cellular automata)—and noticed the surprising phenomenon that with some constraints the aggregation process could end up getting stuck, and not being able to continue.</p>
<p>For years I carried around the idea of investigating that phenomenon further. And it was often on my list as a possible project for a student to explore at the <a href="https://education.wolfram.com/summer-school">Wolfram Summer School</a>. Occasionally it was picked, and progress was made in various directions. And then a few years ago, with our Physics Project in the offing, the idea arose of investigating it using multiway systems—and there were Summer School projects that made progress on this. Meanwhile, as our Physics Project progressed, our <a href="https://resources.wolframcloud.com/FunctionRepository/resources/MultiwaySystem/?i=MultiwaySystem">tools for working with multiway systems</a> greatly improved—ultimately making possible what we’ve done here. </p>
<p>By the way, back in the 1990s, one of the many topics I studied for <em>A New Kind of Science</em> was <a href="https://www.wolframscience.com/nks/chap-5--two-dimensions-and-beyond#sect-5-7--systems-based-on-constraints">tilings</a>. And in an effort to determine what tilings were possible, I investigated what amounts to <a href="https://www.wolframscience.com/nks/p218--systems-based-on-constraints/">aggregation under tiling</a> constraints—which is in fact even a generalization of what I consider here:</p>
<p><a class="magnific image" alt="" title="" href="https://content.wolfram.com/sites/43/2023/11/sw110323finalimg1.png"><img loading="lazy" src="https://content.wolfram.com/sites/43/2023/11/sw110323finalimg3.png" alt="Click to enlarge" title="Click to englarge" width="393" height="461"> </a></p>
<h2 id="thanks" style="font-size:1.2rem">Thanks</h2>
<p style="font-size:90%">First and foremost, I’d like to thank Brad Klee for extensive help with this piece, as well as Nik Murzin for additional help. (Thanks also to Catherine Wolfram, Christopher Wolfram and Ed Pegg for specific pointers.) I’d like to thank various Wolfram Summer School students (and their mentors) who’ve worked on aggregation systems and their multiway interpretation in recent years: <a href="https://community.wolfram.com/groups/-/m/t/1728662">Kabir Khanna 2019 (mentors: Christopher Wolfram &amp; Jonathan Gorard)</a>, <a href="https://community.wolfram.com/groups/-/m/t/2312514">Lina M. Ruiz 2021 (mentors: Jesse Galef &amp; Xerxes Arsiwalla)</a>, <a href="https://community.wolfram.com/groups/-/m/t/2959726">Pietro Pepe 2023 (mentor: Bob Nachbar)</a>. (Also related are the Summer School projects on tilings by <a href="https://community.wolfram.com/groups/-/m/t/2957268">Bowen Ping 2023</a> and <a href="https://community.wolfram.com/groups/-/m/t/2958428">Johannes Martin 2023</a>.)</p>
<h2 id="see-also" style="font-size:1.2rem">See Also</h2>
<p style="font-size:90%; line-height:15px"><a href="https://writings.stephenwolfram.com/2022/06/games-and-puzzles-as-multicomputational-systems/">Games and Puzzles as Multicomputational Systems</a></p>
<p style="font-size:90%; line-height:15px"><a href="https://writings.stephenwolfram.com/2022/03/the-physicalization-of-metamathematics-and-its-implications-for-the-foundations-of-mathematics/">The Physicalization of Metamathematics and Its Implications for the Foundations of Mathematics</a></p>
<p style="font-size:90%; line-height:15px"><a href="https://www.wolframphysics.org/bulletins/2021/10/multicomputation-with-numbers-the-case-of-simple-multiway-systems">Multicomputation with Numbers: The Case of Simple Multiway Systems</a></p>
<p style="font-size:90%; line-height:15px"><a href="https://writings.stephenwolfram.com/2021/09/multicomputation-a-fourth-paradigm-for-theoretical-science/">Multicomputation: A Fourth Paradigm for Theoretical Science</a></p>
<p style="font-size:90%; line-height:15px"><a href="https://www.wolframphysics.org/bulletins/2021/02/multiway-turing-machines/">Multiway Turing Machines</a></p>
<p style="font-size:90%; line-height:15px"><a href="https://writings.stephenwolfram.com/2020/12/combinators-a-centennial-view/#updating-schemes-and-multiway-systems">Combinators: A Centennial View—Updating Schemes and Multiway Systems</a></p>
<p style="font-size:90%; line-height:15px"><a href="https://www.wolframphysics.org/technical-introduction/the-updating-process-for-string-substitution-systems/">The Updating Process for String Substitution Systems</a></p>
]]></description>
      <pubDate>Fri, 03 Nov 2023 22:32:12 +0000</pubDate>
      <link>https://writings.stephenwolfram.com/2023/11/aggregation-and-tiling-as-multicomputational-processes/</link>
      <dc:creator>Stephen Wolfram Writings</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4267271571</guid>
    </item>
    <item>
      <title><![CDATA[When we say "security", what do we mean?]]></title>
      <description><![CDATA[
Introduction We say the word “security” a lot in tech. Whether we refer to “cybersecurity” or “information security” (or “infosec”), how often do we pause to question what we mean when we say the word security itself?
In general, arguing that words should mean things in infosec is like fighting against the gravity of a supermassive black hole1. Unfortunately for me, I will die on this hill until my inevitable spaghettification. From what I understand from cybersecurity journalism, this persistence makes me a “sophisticated” attacker, perhaps even one of those fabled advanced persistent threats (APTs). My cyberweapon of choice is words. My action on target? Destabilizing the industry’s dereliction of meaning. My APT group name will be SOCRATIC KITTEN.
So, true to the spirit of being advanced and persistent and threatening, I write this to challenge and, with any luck2, overthrow incumbent notions of the security concept while nurturing new notions that inspire and uplift3.
The security concept, like other words-as-concepts (happiness, courage, justice) is an idea, per Plato, perceivable only by the eyes of the mind4. To borrow from Hannah Arendt5, the word “security” is “something like a frozen thought that thinking must unfreeze whenever it wants to find out the original meaning.” To thaw it, we must meditate upon it, seep ourselves in it, let the currents of concept cleanse our preconceptions.
“But Kelly,” you sigh, “shouldn’t you be posting about something practical?” Like, what, the growing ATTACK SURFACE due to HUMAN ERROR that will surely be solved with SECURITY AWARENESS? Much like the spherical cow, such metaphors6 simplify our understanding of the world so it feels comforting and calculable as escapism from the real world, which is very messy. The security people, in no shortage of irony, choose convenience in this trade-off. Humans will interact with systems and do very natural human things and the security people will clutch their pearls and gasp, “But why would they do such a thing?!” Maybe spherical SBOMs will solve security so we can all finally stop being aware of it.
Because requiring awareness is part of the problem. We have a word for when humans are excellent at being of aware of threats in their environment: hypervigilance. It is not good when humans are hypervigilant! It means the human is likely traumatized and their nervous system is dysregulated. Unfortunately, the security people want us all to be hypervigilant because nothing says accountability for a problem like telling the potential victims they’re responsible for it.
Imagine, if you will, a parallel SKYSECURITY AWARENESS MONTH where we tell people to be careful whenever walking outside because a piano might fall on their head or that they should be scrutinizing the clouds – their trajectory, color, fullness, and other patterns – to figure out whether they are safe or not. In real life, we have meteorologists and can open an app that tells us whether we probably need an umbrella or sunglasses or to just stay inside to stay safe. Sometimes people will still go outside because that hurricane isn’t going to Instagram itself but there have been and will always be fools and our strategy in a problem domain should not be focused on the minority of fools who will not be persuaded by facts or logic and will gladly jump over guardrails while wondering why they were there in the first place.
My point is that the security people have collapsed upon a meaning of “security” as a concept that is not serving them or users or organizations or society particularly well. The cybersecurity industry’s meaning of “security” is a distortion, in many cases the exact opposite, of what the word means and has meant throughout its long, storied history. That history has much to teach us, which is why it is, in fact, entirely practical and pertinent to explore it on our upcoming semantic safari.
Thus, this essay will illuminate why our current notion of (cyber)security, the concept, is worth re-evaluating through the lens of what “security” has meant over time. True to Socratic tradition7, these essays will not provide a definitive answer. Our path will be circuitous, but we will perhaps absorb a superior sense of what this ineffable concept of “security” is through ouroboric osmosis by the end of our journey8.
We may not produce a definition of “security” by the end (although we will try) but, having pondered the meaning of “security,” we might be able to make our own attempts at it better.
To begin our journey, we must time travel.
The Curious Nature of Securus It’s a few hundred years before the common era in Rome. You’re chilling in a thermae with your bae admiring the intricate stone mosaic of a rather fetching deity beneath your feet as you feel your pores cleansing in the luscious steam.
Your beloved anaticula9 looks at you and smiles, “If only all our days together could be securus like this,” they say. You smile back and nod in blissful agreement, watching them rest their eyes with a satisfied sigh.
For the securus life is one without care. Securus starts with sē, the Latin prefix for “without,” which combines with cūra, the noun for care, concern, thought, trouble, solicitude, anxiety, grief, and sorrow.
Hence, securus is to enjoy piece of mind (securo animo esse10). Securus is the absence of concern, the absence of a troubled mind. The opposite of securus was sollicitus — the restlessness arising from being filled with fear, apprehension, anxiety, alarm.
Hurtling forward in time to 2023 CE, we can observe that the typical traditionalist infosec program is closer to sollicitus than securus. Fear, uncertainty, and doubt (FUD) pervade – and perhaps define – the industry. FUD are the foundational emotions industry vendors, journalists, and less scrupulous thought leaders exploit for fortune and fame.
Our world is increasingly software and internet but there is a powerful industry that tells us that we should be scared to use software and internet, that it is desirable for us to be uncertain at all times when using software and internet, that we should doubt our perceptions at all times because what if the 13,371,337th link you click or line of code you write in your lifetime causes CYBERGEDDON. All of this anti-securus rhetoric is supposedly in our best interests.
FUD pervades cybersecurity to such an extent that we take for granted that these emotions need not define the security we seek to cultivate. Could FUD not instead be seen as the explicit enemy of security?
Thus, a worthy thought experiment is: how might cybersecurity programs look if they actually pursued the state of being securus? How would an information security program designed to ensure the organization is “without care or concern or anxiety” appear? How would cybersecurity strategy differ if the goal outcome was for users – whether end consumers, software engineers, or employees – to feel care-free and untroubled?
We will explore those questions as we continue our journey. Our next stop is even further back in history, inspecting the inspiration for the word securus in Ancient Greece.
A Platonic Dialogue Persons of the Dialogue11
SECRATES
THEOXORUS
Theoxorus: I am feeling secure in my knowledge today, Secrates, yet have no doubt you shall shortly annoy me with indistinct inquiries into something simple that we should enjoy simply for simplicity’s sake.
Secrates: Secure! O, my dear Theoxorus, do my ears truly witness you bringing a conversation to me on a shining platter?
Theoxorus: What do you mean, Secrates?
Secrates: I mean that you used the word “secure.” And what does “secure” mean? We should always be on the lookout for such answerless words. I know you do not wish to examine it, but now we must!
Theoxorus: Secrates, no –
Secrates: Do you truly object? Is it not your own lips which revealed the relevance of this word to your very life?
Theoxorus: I… I cannot object.
Secrates: And neither can I. We must proceed and, another time, we can discuss what your hesitance for exploration means. I observe that you grow weary of dissecting words and essences of late. And yet with what else do you fill your days? Is it not your own shame you are unwilling to confront? Is it not this regular discourse that exposes the inner self you wish to –
Theoxorus: Secrates! Let us examine “secure” now and my own soul later.
Secrates: As you wish, my dear Theoxorus, I will now proceed with this inquiry, for which I owe you many thanks. There are two words from our current civilization that serve as the inspiration for securus: ataraksia and asphaleia. Let us proceed first with ataraksia.
Theoxorus: What tongue is the word “securus”?
Secrates: Latin.
Theoxorus: “Latin”?
Secrates: Yes. I have seen into the future during a bathing ritual.
Theoxorus: Ah, Secrates, you indulge in the pleasures of the oracles!
Secrates: Believe what you wish. But let us now proceed, as you insisted. What defines ataraksia but what it is not? It is the negation of taraksia, from tarrassein, which means to trouble the mind, to agitate, to disturb, to stir.
Theoxorus: Just as your incessant inquiries do to me.
Secrates: Precisely. And if ataraksia is the negation of these verbs, may it not be said to reflect calmness, equanimity, tranquility? It is as Pyrrho said, a form of freedom from distress and concern, and as the public says in their less formal dialogue, it is the mental state soldiers must cultivate before battle. Is it a goal, a kind of goodness, that a person must pursue in their lives? The Pyrrhonists, Epicureans, and Stoics would agree with this, each for different reasons reflecting their different philosophical foundations.
Theoxorus: What do you think, Secrates?
Secrates: I know nothing, as you know well, Theoxorus. What matters for our conversation is the essence of ataraksia: a freedom from disturbances, especially of the mental variety. And, then, as I have seen in my bathtub in a very distant future, what matters is that the verbs ataraksia is meant to negate – to disturb, to agitate, to trouble, to stir – are the verbs most associated with traditional cybersecurity. Does this not suggest security then means its very opposite?
Theoxorus: To be sure.
Secrates: And does this not trouble the mind in itself?
Theoxorus: Certainly. But how can you know such contraction abounds?
Secrates: This future world seems designed by contradiction. Their “security awareness training” exercises, such as those meant to phish humans as one lures a fish with a decoy worm, have the explicit goal of “troubling the mind” to keep persons vigilant for danger. In this future, application security tools are infamous for how they disturb software development and delivery practices – and does that not trouble the minds of software engineers? The list of security rules and policies are unending, often arbitrary – and have they not found a most effective means to agitate the subjects under their dominion?
Theoxorus: They have.
Secrates: And do we believe that such activities result in greater defenses?
Theoxorus: Certainly not, unless one believes that defense is impossible through design. This reminds me of our prior dialogue on beauty, Secrates, as what you describe of this “infosec industry” must make it beauty’s enemy.
Secrates: Are you surprised, Theoxorus, that infosec makes enemies when its goal is to disrupt tranquility? And how could cybersecurity achieve beauty when it sees ugliness and danger in all things outside itself?
Theoxorus: Of course. But surely some interpretation by other schools of thought justifies this perversion?
Secretes: They will not. Atarksia is seen as a strict requirement to attain the true, full happiness referred to as eudaimonia. It may surprise you, my dear Theoxorus, that the word atarksia is associated with Epicurean philosophy.
Theoxorus: But calmness seems harmonious with Epicureanism.
Secrates: Did you wish to ask me a question, my friend?
Theoxorus: Your social skills are as crude as unfired amphorae, Secrates. So, then, what is shocking about this?
Secrates: It is shocking because it is hard to imagine a philosophy more opposed to cybersecurity than Epicurianism, which argues that the goal of a sentient life form is to maximize pleasure and minimize pain12. Epicurus is specific in defining pleasure as the absence of pain, and therefore “ethical hedonism” is the pursuit of avoiding pain, including pain that imparts pleasure near-term but pain longer-term. Without distracting ourselves by examining Epicureanism in more detail, we can say that the goal they espouse is to foster a life of tranquility. Does this cybersecurity community foster a life of such tranquility?
Theoxorus: They do not.
Secrates: I agree, my friend. Cybersecurity is not known for avoiding pain, regardless of temporal outlook. The cybersecurity community inflicts pain on others, whether by stoking fear or by making lives harder. Is it not fair to argue that infosec even inflicts pain on itself?13 Is it not cruel to cultivate obsession of vulnerabilities that kindle fear, uncertainty, and doubt when your stated aim is to eliminate them? Do we believe this fetishization of vulnerabilities and lascivious focus on blaming what they call “human error” can be called “ethical hedonism”? Or is it a societal mechanism to stifle introspection and to instead reenact shame? I regret that these questions reflect a topic for another time in the realm of psychology14, which has yet to be invented.
Theoxorus: You tease me, Secrates.
Secrates: Yes, but there is another thing, Theoxorus: what of asphaleia?
Theoxorus: You are unfailing in your pursuit, Secrates.
Secrates: Well, I suspect you might find its origin amusing. Asphaleia originates from wrestling and reflects the capacity to prevent being overthrown, being immovable and steadfast, like the throne of the gods, or like me in the presence of your lamentations and tantrums about our discourse. By roughly a century before our time15, asphaleia also came to mean the stability of the city state, to prevent being overthrown, and, if I permit myself to indulge in speculation, it could be extended to describe the stability of an organization (a kind of social entity I beheld in my bath). And, as some great scientists will prove thousands of years from our day, speed and stability of work harmonize and impart greater value together than apart. And, well, now I can put the matter as: is this infosec, that which slows down work, an enemy of asphaleia?
Theoxorus: Yes, certainly.
Secrates: Very good; and can you tell me how this might be despite asphaleia serving as the seed of the “security” concept’s own existence?
Theoxorus: I must confess, Secrates, that this “security” society of the future seems very lost.
Secrates: I dare say, my friend, that you spend too much time with me if you think it is an uncommon human desire to seek power and control, even at the expense of integrity. And can we truly argue that such desires are always conscious to the subject?
Theoxorus: Alas, they are not.
Secrates: If what you say is true, I ask you, then: what is this cybersecurity society not most of all?
When Secrates had asked his question, for a considerable time there was silence; Theoxorus furrowed his brow while meditating on this question; only Secrates made a sound when softly blowing on the delicate seedheads of a dandelion.
Theoxorus: For what did you wish as you blew, Secrates?
Secrates looked up at Theoxorus and said, with a smile: For you to answer my question.
Theoxorus: I will tell you. My feeling is that this cybersecurity society lacks curiosity.
Secrates: Exactly. The traditional cybersecurity society is kin of Argus Panoptes; the role of enforcer grants them relevancy but not wisdom. Alas, my friend, if only they would follow the path of Daedalus instead. They feel ignorance as a sting and slight, as if ignorance was not the default condition of being alive! But there is more: how are they like the sophist?
Theoxorus: They both are paid to question without truth as their aim.
Secrates: And do they not both gain fortunes from this?
Theoxorus: They do.
Secrates: And are they not both hunters after a living prey, servants of the powerful, cousins of opportunists exploiting emotion for control?
Theoxorus: They are.
Secrates: But where the cybersecurity society differs is they seek the impossible void – the not-being of weakness – and they are willing to destroy whatever being stands in the way of this pyrrhic quest.
The Dawn of “Security” as a Noun: Securitas The ancient association of securus with Epicureanism was not to last. Epicurianism was outlawed once the Roman Empire entered its rebellious Christianity phase because, as a philosophy, it’s quite incompatible with the idea that souls must be “saved” and that God is relevant to everyday life (Epicurus literally argued that the gods do not gaf about human affairs and do not punish or reward human behavior).
Why is this relevant to cybersecurity? Because – as a collection of entities across vendors, consultants, thought leaders, and practitioners incentivized to increase influence on the world – information security has sanctified itself as a secular authority who can deem worthiness from on high and reward or punish according to behavior16.
Most security advice roughly goes, “if you’re interacting with a computer and what you’re doing feels convenient, you are actually doing something BAD.” We’re supposed to report when we’ve done something wrong, like a Catholic at confessional. We can gain an “exception” from the security authority like the medieval Catholic Church granting indulgences17 to partially reduce the punishment of the sin.
Naturally, only the ordained can read and interpret the sacred texts. The unwashed masses may only receive the good word. The divine wisdom is so complex, so arcane, far too difficult for anyone else to transform into action. Does this not imply that the non-security “normies” cannot be secure without the blessing of the security establishment? The human “users” must suffer in this life for their sins, for turning away from the path of security18.
In the eyes of the Cybersec Church, users are weak sheep who must be told what to do and guided with a strong hand in the ways of natural security law, less they drift wayward into wickedness. We must practice chastity in all manners digital and resist the temptation of clicking on things unless we want the whole network to drown in depravity19.
For the Security Spirit is always watching. It knows when you allow incoming connections from cloud provider IPs even though attackers also use those IPs. It knows when you copy and paste something from Stack Overflow even though it could be backdoored. It knows when you don’t VPN on the hotel WiFi, where anyone, including a big, sexy scary APT could connect to it. Wicked, wicked user! A thousand years smoldering in hellfire and pestilence for your sins! Try clicking things now once the maggots have feasted upon your flesh!
We will return to security in the context of authority later, but now we must march onward to examine how securus, the adjective, evolved its noun form: securitas. In the Roman period, securitas specifically corresponded to intense emotions. And, it’s worth noting, the freedom from care represented by securitas does not require justification based on reality.
Securitas refers to a group of emotions (the things security and software “rationalists” alike pretend they don’t have) which relate to the absence of fear and include emotions like trust and confidence20. In fact, even the more modern notion of “job security” aligns to this older meaning; it is a feeling, specifically that you don’t have to worry about losing employment. Threats to it aren’t the point, the feeling is the point.
Now, my dear mortals, can we imagine a cybersecurity program designed to ensure the organization is fearless and free from care, an infosec program that is quiet, easy, and composed? Cybersecurity as a discipline would be concerned with ensuring the organization could remain cheerful, tranquil, and serene. Servers would frolick in a field like fecund fawns. Software engineers would release code with confidence, trusting the safety designed into their languages, tools, platforms, and environments. If employees felt fear, uncertainty, or doubt when using technical systems, the security program would be curious and design solutions to alleviate their concerns.
Imagine a cybersecurity program with the goal of relieving the rest of the organization from anxiety about security… cybersecurity that promotes convenience and puts in the hard work of crafting design-based mitigations. Status quo infosec – manifesting as SecObs, Security Theatre, etc. – seeks quite the opposite. Traditional cybersecurity programs openly admit aiming to increase anxiety among the rest of the organization to ensure they are vigilant to threats and always looking over their proverbial shoulders for potential peril. The security people decry convenience and shame users for seeking it while simultaneously indulging in it like Scrooge McDuck in his pool of gold by relying on enforcement, behavioral control, and blame as cheap “mitigations.”
I often read security advice or policies or other prescriptions and have the sense that the authors are trying very hard to pretend that local context is irrelevant and that generalized control is possible. Convenience is often framed as the enemy. The question is: convenience for whom?
Sure, convenience is clicking on every link or adding a third-party library without a second thought. But convenience is also requiring a security tool that you will never have to use, without performing any user research with the humans who will use it in their workflows. Convenience is tapping the 10^10 Security Commandments when someone makes a mistake and blaming them in front of Congress. Are we shocked that a framework of “convenience for me, but not for thee” doesn’t seem to produce the bundle of positive emotions securitas represented?
Are there words less associated with cybersecurity than “cheerful,” “bright,” “serene, “composed,” “quiet,” or “easy”?21 The whole business seems antithetical to those traits. Traditional infosec is all cura and no se – better deemed “cybercurity” than cyber_se_curity: a discipline of increasing concern, thought, trouble, anxiety, and grief in the organization regarding “cyber” matters. Offensive security is especially nonsensical through this etymological lens because it then means “offensive tranquility.”
Or maybe it isn’t that strange. After all, don’t overpriced healing crystals and cyber wares have quite a bit in common?
The Multifaceted Meaning of "Security" as ‘Securitas’ in the Roman Era While a sense of dignity is not the vibe most of us feel when clicking through mandatory cybersecurity awareness training courses, dignity and security were seen as closely coupled concepts in the Roman era.
Cicero, living during the last century B.C., noted that whomever has tranquillitate animi (a tranquil mind) and securitas will have dignitas (dignity)22. Cicero’s meaning of securitas here involves the absence of care or fear as well – and he saw this tranquility of mind as a prerequisite for an individual’s personal happiness and prestige in society. (We will talk about respect and dignity in the context of security more once we time travel to more modern definitions of the word).
A century later, Seneca framed securitas as a mindset23, a lovely extension of the existing notion of security as a bundle of emotions. Inspired by Socrates, Seneca viewed securitas – and the absence of the fear emotion24 – as how the wise can come closer to god because only a god has no reason to fear death25.
Securitas as this nearly-divine mindset quickly morphed into an association with divinity itself during the reign of Nero (the 1st century AD), specifically reflecting the divinity of the Emperor26 on coinage. It also started to reflect an environmental vibe rather than emotions or mindset; the surrounding world, the genesis of a subject’s freedom from care, could also be securitas, possessing a peaceful and tranquil atmosphere.
But Seneca also laid the groundwork for coupling the security of the state with security of individuals, in the specific sense of public securitas contributing to the capacity to live according to virtue. In this framing, securitas was explicitly based on mutual trust between the ruler and the ruled.
This reflects yet another semantic deviation with cybersecurity, which is generally mistrustful of any parties outside infosec, including those who should be allies (like software engineers). How else should we characterize the common refrain that any employee is a potential “insider threat”? And the cybersecurity status quo certainly does not seem to foster mutual trust by helping potential allies live well, offering minimal proof that they have the best interests of the collective in mind; if anything, they often prove the opposite.
In fact, Seneca highlights that it is a mistake to think that “a ruler is [only] safe when nothing is safe from the ruler.”27 The pox of “shadow” assets – whether shadow IT, shadow SaaS, shadow containers, shadow APIs – shows that the infosec establishment succumbs to this mistake readily. In fact, cybersecurity’s general fetishization of control – vitalized by vendors – is a continuous realization of this mistake.
As anyone familiar with the motifs of history could predict, the subsequent rulers did not listen to Seneca’s admonition, which eventually led to an explicit rejection of hereditary rulership in the Nerva-Antonine dynasty. (Take that for what you will in the context of our current cybersecurity rulership). This led Tacitus to express the new securitas publica (public security) as the confidence of the citizens that the state will no longer threaten them28. That mutual trust was the core ingredient of securitas during that phase and reflected a check on authority.
It is interesting to ponder the notion of securitas publica in the organizational context; an organization’s citizens would be confident that the enforcers of security policy can no longer disrupt their way of life or erode their pursuit of fulfillment. How many cybersecurity programs might be characterized as such today? How many programs instead feel disruptive, corrosive to productivity, and fostering anything but a “peaceful and tranquil atmosphere”?
Securitas’ confident spirit evolved into meaning of “assurance of faith” (as opposed to doubt) during Roman Antiquity, as espoused by Tertullian and, later, Saint Augustine. This “opposition to doubt” again is at odds with one of the letters of the acronym which defines traditional cybersecurity: F.U.D. (fear, uncertainty, and doubt). As we’ve seen time and again throughout this essay (and we’re only into the 2nd - 4th century A.D. here!), the earlier and variegated meanings of securitas fly in the face of traditional infosec. Traditional infosec wants to doubt everything. It takes pride in doubting everything. Assurance of faith is seen as a security sin.29
Speaking of faith, early Roman Antiquity also saw the creation of Securitas as a deity. While the mythos surrounding Securitas, the goddess, is lamentably shallow, it’s worth noting that she was the goddess of security and stability30. Given the evidence from the DORA research and metrics that stability and speed work in tandem and are complimentary, this suggests that if we worship at the altar of security, then we must also worship at the altar of speed.
The Roman god of speed, Mercurius (aka Mercury), was also the god of shopkeepers, merchants, travelers, transporters of goods, thieves, and tricksters. It’s worth noting that the coupling of commerce and prosperity with security is quite common throughout its history (more on this once we get to the 16th century). Traditional cybersecurity, in contrast, often pretends like prosperity is not the primary goal or, worse, views prosperity as a foe to security.
“Why don’t companies prioritize security? Don’t they know THE THINGS can be HACKED??” Well, dear security people, what do you think allows the companies to pay for your six or seven figure salary? It is because they prioritize money that they can afford to spend it on security endeavors that do not remunerate them and often cannot even be tied to tangible success outcomes beyond “we saw these malware samples or known bad IPs this month” spoonfed from vendor dashboards in symbiotic self-perpetuation.
The infosec industry forgets that security, even in its more modern meaning, is not just about protecting threats; it’s about protecting threats against something. In the business context, it’s about protecting threats against prosperity. Through this lens, is it not a victory if a security program waters the seeds of revenue growth? And is the security program not a tragic failure if it chokes and cages this material growth because of a “risk” that exists only as an incorporeal counterfactual?
Between the profligate spending on ineffectual security tools and the obstructionism imposed by security programs, it’s quite possible that the threat to enterprise prosperity by traditionalist cybersecurity rivals that posed by actual attackers.
This distinction is also emphasized in the term “national security,” even as we mean it today: national security is about defending threats to what? Liberty, prosperity, the pursuit of happiness… and we rightly dislike security measures that get in the way of these goals (often labeling them as “Security Theater”31).
Thus, we must ask, cybersecurity defends against threats to what? Largely the same things, but in businessy and computery contexts. If liberty or prosperity or the pursuit of happiness is choked out by security measures, then security is the threat in itself and the subjects are left in need of security against security32. Indeed, this is where we find ourselves with cybersecurity today.
But we are not yet done with this era. A few centuries after the deification of securitas, its meaning as “carefree” was twisted by religious leaders into an undesirable form: the state of being careless, reckless, heedless, and negligent33.
This notion of security is perhaps closest to the status quo in infosec today, which is quite careless with human (user, developer, colleague) time and attention, reckless with organizational budget, and negligent to design-based security solutions that are more reliable than attempting to control human behavior. The cybersecurity industry is heedless with its FUD-fueled zealotry, fretting about irreleventia while pretending nothing can be done about the grey rhinos charging into our systems.
Securitas was also relevant in the context of “Roman security” and specifically meant the Roman Empire’s peaceful and orderly domination of the world. Would we characterize traditional infosec programs as peaceful and orderly today? Even diehard zealots of the cybersecurity status quo readily admit that much of infosec in practice is firefighting and disorder. A worthy question is: who benefits from this paradigm?
Alas, the Roman Empire declined, as did securitas, whose meanings were largely stolen by the word certitudo. Thus, we must go to the provincial stables of the Middle Ages to continue our semantic safari. The two meanings of securitas not consumed by certitudo included pax (peace) and religious indifference.
The latter meaning persisted (albeit without nearly as much popularity as before) through to Martin Luther in the 16th century, who labeled “die Sicheren” as the people he was fighting against – people who did not truly trust the Holy Spirit and substituted true faith for religious rituals and conspicuous, performative acts. In his time, spiritual unity was preserved “through coercion and violence… dissent from orthodoxy was outlawed, heresy was rooted out and punished by fire and sword.” Luther was excommunicated for his “errors” about the Holy Spirit, including the “error” of believing the Christian god wouldn’t want heretics burned alive.
In our era, the traditionalist Security People put quite a bit of trust in their folk wisdom and rituals, despite their unclear success. It is still counterculture to suggest that humans shouldn’t be punished for security “errors.”34 And does it not benefit the vendors and research analysts to continue spoon feeding this advice to security leaders?
Just as Martin Luther felt centuries past about religious belief, is it wrong to want to reconstruct our entire approach to cybersecurity? Just because power structures are in place, incumbents entrenched, money flowing, does not mean something new, bold, and based on real acts of security rather than displays of it – on outcomes vs. outputs – could not supplant the status quo. Fatalism is not true to our nature as humans and certainly not true to the spirit of the “security” concept as we have seen.
But there is more for us to see and for that, we must venture onward into the pre-Enlightenment period and beyond…
The Evolving Meaning of Security as ‘Securitas’ in the Early Modern Era Centuries passed and the relevance of the word securitas faded. Thomas Hobbes, one of the founders of modern political philosophy in the 17th century, was really the hype man for securitas to keep it from dissolving into disuse35.
Hobbes’ depicts the goal of securitas as the genesis and maintenance of peace, which, as we’ve already discussed, is quite unlike the cybersecurity status quo. Securitas is cultivated through alliances to make it dangerous for the remaining “all” to attack. Samuel, baron von Pufendorf36 emphasized the need for allies with a less cynical angle, arguing that an individual human needs companions to aid them in order to realize securitas (which perhaps foreshadows the concept of “social security”).
Are cybersecurity professionals today known for gathering allies? Quite the opposite. For instance, the relationship between developers and security pros seems to only be getting worse37. Traditional infosec strategy does not enforce security policy through cooperation, but through coercion.
To keep a long journey into Hobbes’ rather paranoid – and exceptionally cynical – perspective short, he ultimately proposes that a sovereign should be the one to guarantee securitas by doling out punishments for violating agreements, which requires subjugation of the ruled by the ruler.
Punishing humans who step out of line and requiring obedience to their rules – for the ruled to subjugate their other wants as secondary to the needs of the sovereign… is this not the playbook of traditional cybersecurity? It is the easiest option to pursue because eliminating or reducing hazards by design requires far more effort than demanding obedience. And if there’s one thing Homo sapiens love above all else, it is cognitive efficiency.
It is quite interesting that securitas was used as imperial propaganda during the Roman era to insist that the state was necessary and by Hobbes to insist that the state must subjugate its citizens. Does this tell us something about status quo cybersecurity? Or should we instead deem it “security imperialism”?
Security, Welfare, Dignity, and the Early Modern Era Around the same time Hobbes was slandering humanity’s nature and proposing the need for a strong-armed state (the 16th century), securitas also started to absorb a financial meaning: something pledged as a guarantee that an obligation would be fulfilled – that the debtor has no need to worry because something has been pledged against the debt.
In this colloquial meaning (which persisted for centuries), securitas is rooted in a feeling – that the lender doesn’t need to worry. And, similarly, we see a theme throughout the Enlightenment that the state should assure citizens that they do not have to fear violence, not just ensure that they are free from violence in their everyday lives. Basically, that the state has a duty to consider the feelings of citizens, not just protect them.
It is in this era and through the Industrial era that security starts to be seen as a human right, as an essential requirement for humans to enjoy all of the other rights. After all, if you’re the victim of violence (particularly a violent death) – or in a perpetual state of worry about it – it’s pretty hard to pursue liberty or prosperity.
Thus, over time, security evolved to mean a guarantee or assurance that certain things would be accessible to an entity – like “water security” reflecting the assurance that a human individual will have access to clean water on an ongoing basis38.
The temporal implication of this meaning is important: it is not just about having access to a thing (whether a physical good or an intangible value) now, but about the guarantee that you will have access to it in the future, too. Not just that you do not have to fear a violent death now, but that you do not have to fear a violent death in the multitude of possible futures on the horizon, either.
We can trace this notion through to the more recent “social security.” The term was coined on a whim because “pension” carried too much baggage to be palatable to a wide audience. So, they defined social security as a “type of security which would… promote the welfare of society as a whole.”39 (emphasis mine)
Thus, the purpose of security is to promote the welfare of a particular entity. Extending this, the purpose of cyber security is to promote the welfare of cyber things (i.e. all things digital). While that may sound silly, there’s something important here: promoting welfare is not just about stopping threats.
What else is embedded in this purpose of promoting welfare? As we explored, dignity was tightly coupled with security during the Roman period and this association resurged with the concept of “human security," which arose from the rejection of Hobbsian state-centric security.
While the term’s precise meaning is still subject to ample debate40, a foundational facet of “human security” is respect: that a critical part of ensuring a human is secure is ensuring their humanity is respected. Because dehumanizing certain populations and stripping them of dignity is one of the ways authoritarianism cultivates power; it is how a society slips into fascism.
What, then, should we make of the fact that the infosec industry sneakily strips users – whether the accountant clicking on a link to wire money, the marketing professional who downloads a PDF, the developer who makes a mistake when writing code – of their dignity?
The disrespectful sneer is palpable in the designation of “human error” as the cause of incidents. Security awareness training requires users to remember dozens of rules that ignore the realities of their work on thing-clicking machines and implies that it will be their fault if something bad happens. There is no respect for their time, attention, intelligence, or autonomy.
To quote the legendary James Mickens, “This is uncivilized and I demand more from life.”
But imagine a world in which cybersecurity programs prioritized respect as a core value of security! Respect for users’ private data; respect for users’ time; respect for users’ cognitive and emotional energy; respect for users’ pursuit of their priorities; respect for the organization’s pursuit of its priorities as a collection of users serving other users.
In fact, the term “users” may even be part of the problem. Users are abstract, faceless, behind a screen; they lack intrinsic worth and must be “good for” something.41 It makes it easier to disrespect them and resent them for not supporting our own goals. It makes it easier to not see them as people, but as exploitable resources that either we control or attackers do. It’s perhaps harder to blame a sleep-deprived caretaker of a lover or child or parent who, just trying to do their job well enough to keep their health insurance, clicks on something designed to look urgent and important.
Blaming a “user” for being so careless as to click on an obfuscated link and enter in their VPN credentials on the malicious site makes it a more antiseptic affair. It makes us feel like it’s a more just world rather than a chaotic one – like the problem is a user stepping out of line rather than complexities conspiring towards compromise. This dehumanization makes it easier to absolve the ruler and deride the ruled – these “users” – who are simply resources towards our ends, ever holy, ever noble.
What "Security" Means in the Information Society We end our journey in the modern era, the information society42. The best way to summarize the concept of security in modern times is that it’s controversial af and dependent on context43. But, Wolfers’ two-part definition of “security” from 1962 is widely cited44:
In an objective sense, security measures the absence of threats to acquired values In a subjective sense, security reflects the absence of fear that such values will be attacked The term “values”, here, of course, is ambiguous and open-ended. But let’s think about what this means for the cybersecurity context.
A realist would say security is achieved when “the dangers posed by manifold threats, challenges, vulnerabilities and risks” in the digital realm are “avoided, prevented, managed, coped with, mitigated and adapted to” by individuals, groups, or organizations45.
A social constructivist would say security is achieved “once the perception and fears of security ‘threats’, ‘challenges’, ‘vulnerabilities’ and ‘risks’ are allayed and overcome.” That is, objective security is not enough; the subjective will always wield considerable influence in the cybersecurity context.
In my experience, tech bros really do not like the idea that emotions or subjectivity come into play in tech stuff at all. They tend to describe their emotions as “logic” and subjective experience as “facts.” We don’t have enough time to unpack all of that in this post (and if only more of them would go to therapy). But it’s a very real problem when traditional cybersecurity folk wisdom was often woven by people who think the objective is all that matters.
What’s worse about the cybersecurity status quo is that the subjective is dismissed but the objective isn’t even really measured. Again, objective security measures the absence of threats to acquired values. We do not have objective security in traditional infosec and, by that definition, it’s not even really what’s being pursued. Even when fleshing out the realist interpretation of objective security, traditional cybersecurity mostly focuses on the “avoided” or “prevented” part rather than the managed, coped with, adapted to part46.
From the perspective of modern scholars, security is meant to lead to more goal-oriented behavior while insecurity leads to threat-oriented behavior. As anyone who’s walked the RSAC vendor hall knows all too well, basically everything in cybersecurity today is about THREATS. Everything is a potential THREAT: your API, your CI/CD pipelines, your laptop, your phone, your fridge, your colleagues, your loved ones, even your own BRAIN is a THREAT because what if you make a MISTAKE and become the very INSIDER THREAT you swore to destroy!?!?!
Everything about the infosec status quo today reflects threat-oriented behavior, therefore implying insecurity rather than security. Traditional cybersecurity isn’t about preserving and upholding values – like prosperity or productivity or an inclusive work environment. Traditional cybersecurity is about preventing and avoiding threats, aiming for the impossible standard of attacks never successfully happening.
The cybersecurity status quo forgets the whole point of stopping the threats is to preserve certain values.
This fetishization of threats and elimination of them as an aim in itself is how we end up with cybersecurity programs which cause so much grief and anxiety and friction for everyone else in the organization. If the infosec industry actually focused on preservation of values, then UX would probably be one of the most important skills in the discipline (but how would incumbent cybersecurity vendors milk that for cash?).
After all, what’s the point of protecting the cherished organizational value of productivity from potential attacks – which likely only happen sometimes rather than continuously, from an impact perspective – if you’re going to erode that value daily through security policies that seem divorced from real goals, constraints, and workflows?
What’s the point in protecting the organization against a potential financial loss due to attack when you’re not only spending its money on security (which could be spent elsewhere), but also slowing down its ability to grow revenue due to security procedures? For an organization with $100 million in revenue wanting to gain market share, shipping 20% fewer features per year due to friction created by the security program has more material impact short, medium, and long term than a ransomware operator demanding $1 million, $5 million, or even $10 million.
Waldron’s quite recent definition of the word security summarizes this all nicely and is worth repeating here:
“… security now comprises protection against harm to one’s basic mode of life and economic values, as well as reasonable protection against fear and terror, and the presence of a positive assurance that these values will continue to be maintained in the future.”47
Cybersecurity as it stands today flunks this definition. It is impossible to provide assurance that basic and economic values will be maintained in the future if you do not know what they are, which the cybersecurity status quo does not know because they do not care because all of that is irrelevant to their noble need to sacrifice everyone’s time, energy, and money at the altar of the FUD gods to gain more budget, more headcount, more influence and they shroud this ritual in a lab coat of “rational” paranoia.
Before architecting a security program or allocating cybersecurity budget, we should understand the organization’s basic mode of life and economic values, including at the level of any teams who will be especially subject to security procedures (like software engineers). From there, we should aim to provide reasonable protection against fear and terror – that is, to provide subjective security, that ancient-school version of securitas which meant freedom from anxiety, fear, or care.
Our job as defenders should be to reduce the complexity of the security problem to such an extent that the rest of the organization is free from care about it (in fact, the systems theorist Niklas Luhmann argued that security efforts explicitly aim to reduce the complexity of the world48). And cybersecurity’s job should be to provide positive assurance that the organization’s values (like prosperity, productivity, inclusion, whatever) can be maintained going forward.
But all of the above requires user research and empathy and curiosity about things beyond cybersecurity’s viewing frustum. This modern definition of security means the organization must treat security as an interactive discipline, not a prescriptive one. The existence of a security program cannot be justified with “there is a risk here and it will never go away,”49 multiplied across all identified “risks,” which thereby implies a security organization that can only grow in scope and authority.
If those who provide security are the rulers and the users the ruled, what security really requires is the rulers respecting the ruled and the rulers earning the respect of the ruled rather than extracting it. This reflects a radical departure from traditional infosec and thus there is and will be resistance from the entrenched50.
Security, in practice, is supposed to reside at the beneficial balance between two evils: absolute fear and absolute security – and absolute security, per Kant, can only be found at the cemetery.51
Summarizing what we mean when we say “security” Security is now one of those big words like justice and freedom and liberty which serve more as symbols with fuzzy flavors of feeling – that is, as concepts – rather than as words with straightforward definitions. As we’ve seen, asking the titular question, “When We Say Security, What Do We Mean?” is an exploratory exercise rather than an excavation. There is no ground truth we shall hit with enough sweat and shoveling.
We traversed a tapestry of meanings throughout this essay. We finish it with a rough sense of, like, “Security is about preserving chill vibes in the presence of threats to those vibes.”
But more usefully (yet less concretely), we have a better mouthfeel for what “security” means. The threats aren’t the point; the poignant part is the potential absence of a valuable good or state of being which we very much wish to preserve.
An absence of threats is only worthwhile if it guarantees the presence of serenity and prosperity. In the word “security” is also a promise – that you hold onto something of value and that this value might grow in the future.
Perhaps most of all, this semantic journey of ours today reveals how wayward traditional cybersecurity is from these notions; it resembles a nemesis of the security concept rather than its descendent. I hope you join me on the quest to finally realize the full potential of the security concept, to grow peaches rather than lemons52, to build a sweeter future for ourselves and all the other stakeholders in this strange system we call society.
If you liked this post and want to learn more about pursuing a better notion of cybersecurity, check out my new book Security Chaos Engineering: Sustaining Resilience in Software and Systems available at Amazon and other major retailers.
The parallels between black hole firewalls and the infosec kind must remain a discussion for another time (if time isn’t just an abstraction).&nbsp;↩︎
I performed a secret, arcane ritual to win the favor of the eldritch ones towards my quest of making the word security mean something better. But the gods are capricious and so the ultimate fate of this endeavor remains unknown.&nbsp;↩︎
Like any self-respecting former author of angsty teen poetry, I originally chose as my medium a “literary concept album” featuring six essays as “tracks,” all exploring the title’s provocative question: When We Say Security, What Do We Mean? But no one reads blog series so this is now a single post.&nbsp;↩︎
As Hannah Arendt described of such words, “when we try to define them, they get slippery; when we talk about their meaning, nothing stays put anymore, everything begins to move.” (From The Life of the Mind)&nbsp;↩︎
Arendt, H. (1981). The life of the mind: The groundbreaking investigation on how we think. HMH. (In the section “Thinking” / “The answer of Socrates”)&nbsp;↩︎
“Surface” is a spatial metaphor. Yet again, there is much to unpack with the language we use to talk about cybersecurity but, to keep with the metaphor, time marches onward…&nbsp;↩︎
“The truth is rather that I infect them also with the perplexity I feel myself.” – Socrates&nbsp;↩︎
This may sound like a journey up one’s ass, but it’s better than being a cookie-cutter infosec ass, I assure you.&nbsp;↩︎
A term of endearment in ancient Rome; its literal translation is “duckling.”&nbsp;↩︎
Carl Meißner; Henry William Auden (1894) Latin Phrase-Book, London: Macmillan and Co.&nbsp;↩︎
I think the closest we get to Platonic dialogues in modern times is Ao3 fanfiction #slowbuild #lightangst #friendship #humor #confessions #aroace #college #dom/sub #drama #alpha/beta/omegadynamics&nbsp;↩︎
Rorty, Mary. “Lecture 10.1: Epicurus and Lucretius.” Stanford University. http://web.stanford.edu/~mvr2j/ucsccourse/Lecture10.1.pdf&nbsp;↩︎
Infosec as an entity truly exhibits a weird form of masochism that honestly becomes slightly uncomfortable to contemplate if we start untangling all the evidence in support of it.&nbsp;↩︎
I am tempted to delve into the psychological concept of security and insecurity but I fear its revelations – despite being aimed at infosec as collective – would be interpreted as personal attacks. I will leave this one morsel for us to digest: the APA defines insecurity as a feeling of inadequacy, a lack of self-confidence, an inability to cope combined by general uncertainty about one’s goals, abilities, or relationships with others. To what degree does this notion of psychological insecurity accurately characterize the traditional infosec industry – its folk wisdom, zeitgeist, program priorities, prescribed procedures, policies, and so forth?&nbsp;↩︎
“Our time” here is referring to the time of Socrates (the inspiration for “Secrates”), which was in the 4th century B.C.E. Therefore, the rise of asphaleia meaning the stability of the city state was around the 5th century B.C.E.&nbsp;↩︎
In return, these stringent practices reinforce the status quo and uphold organizational power structures, which suits leadership just fine (and, besides, how would we expect them to know how security programs could look outside of the infosec status quo?).&nbsp;↩︎
You watch the church leaders exchange influence for money, but instead of imparting the power of the Holy Spirit it’s your unfortunately unscrupulous CISO pushing some dogshit into your stack because their buddy invested in the startup and they do this back and forth and then blame the engineers or users who don’t want to interact with the dogshit for why everything is failing because nothing is your fault when you have the authority of something sacred, whether the Holy Spirit or the Security Spirit.&nbsp;↩︎
I do find it interesting that when CISOs do not disclose a breach, instead laundering it through a bug bounty program, that is being “strategic” and showing security leadership, but when a software engineering team doesn’t fix a security bug immediately – no matter how contrived the exploit scenario – then they lack integrity.&nbsp;↩︎
Perhaps we should be grateful there aren’t LinkedIn posts like “here’s the best way to run your sin response team #securitas #ciso #inquisition #SinSecOps.&nbsp;↩︎
Wonderly, M. (2019). On the Affect of Security. philosophical topics, 47(2), 165-182.&nbsp;↩︎
Intriguingly – and rather self-servingly, although I did not expect it to be so when delving into this thought exercise – the original meanings of securus and securitas align nicely with the goals of Software Resilience (aka Security Chaos Engineering (SCE)). Composure is something for which resilience strives through the practice of repeated experimentation. Resilience wants security to be quiet, it seeks to foster organizational confidence, to grant organizations the freedom to not fret about potential incidents because they feel so well-practiced through experimentation, strong feedback loops, and resilient design that they feel fearless about the inevitable. In fact, we explicitly encourage defenders to have fun with chaos experiments, getting infosec closer to that original connotation that security involves a feeling of being cheerful and bright.&nbsp;↩︎
From De Officiis passage 69 (nice): “Vacandum autem omni est animi perturbatione, cum cupiditate et metu, tum etiam aegritudine et voluptate nimia[64] et iracundia, ut tranquillitas animi et securitas adsit, quae affert cum constantiam, tum etiam dignitatem.” This translates roughly to: “But it is necessary to be freed from all disturbance of the mind, with desire and fear, and also from sickness and excessive pleasure and anger, so that there may be peace of mind and security, which brings with it constancy, as well as dignity.”&nbsp;↩︎
Pop-stoicism seems to be trending among security leaders lately but we do not have time to unpack why this is so, nor its troubling implications.&nbsp;↩︎
From De constantia sapientis: Nullius ergo mouebitur contumelia; omnes enim inter se differant, sapiens quidem pares illos ob aequalem stultitiam omnis putat. Nam si semel se demiserit eo ut aut iniuria moueatur aut contumelia, non poterit umquam esse securus; securitas autem proprium bonum sapientis est. This translates roughly to: “Therefore no one will be moved by insults; for although they all differ from one another, the wise indeed think that they are equal because of their equal stupidity. For if he has once humbled himself to the point of being moved either by injury or insult, he will never be able to be secure; but security is the proper good of the wise.”&nbsp;↩︎
This is another case where Software Resilience (aka Security Chaos Engineering) aligns with the historic meaning of securitas better than traditional security. Resilience accepts that failure is inevitable but gains confidence from preparation. It trusts that all our preparation will help us respond gracefully to failure.&nbsp;↩︎
History is not without its ironies; Nero adopted the mantle of securitas ¬– the divinity imparted by a mindset of fearlessness of death – and then ultimately died by suicide.&nbsp;↩︎
Schrimm-Heins, A. (1991). Gewissheit und Sicherheit: Geschichte und Bedeutungswandel der Begriffe certitudo und securitas (Teil I). Archiv für Begriffsgeschichte, 34, 123-213.&nbsp;↩︎
Tacitus, The Agricola.&nbsp;↩︎
Of course, with a Resilience strategy, we want to foster this sort of assurance through repeated experimentation – cultivating confidence through empirical evidence affirming or denying our hypotheses about the resilience of our systems.&nbsp;↩︎
Upon learning this, I immediately updated my brain dictionary lookup to display Security as a gorgeous transbian goddess whose favorite language, naturally, is Rust. I am hoping for a crossover episode in which our representative enby god, Loki, woos her by donning thigh highs made of the tendons of her enemies.&nbsp;↩︎
Levenson, E. (2014). The TSA Is in the Business of’Security Theater,’ Not Security. The Atlantic.&nbsp;↩︎
Quis custodiet ipsos custodes?&nbsp;↩︎
It was Pope Gregory I as hypeman for this interpretation and, yet again, the parallels between traditional infosec and the authoritarianism of the Catholic Church are… intriguing to say the least.&nbsp;↩︎
It’s been fun watching the industry catch up to me. ~6 - 7 years ago when I was dropping spicy takes about how bullshit “gotchya” security tests are (along with a bunch of other behavioral science-informed takes), I got a ton of pushback and usually vitrol. BuT ReAL aTTaCkErS dOn’T CaRe AbOuT fEeLinGs. Many of those same people now launder those takes and pretend like they were always on board. There’s probably a post in itself about the adoption cycle of hot takes where, at the beginning, people bristle because it’s new and bold and different but eventually it’s accepted enough that it’s worth changing your beliefs and evangelizing it to look “thought leadering.” Hopefully one day I’ll be similarly vindicated with my (still wildly unpopular) take that “DevSecOps” is an unnecessary and harmful term.&nbsp;↩︎
Hobbes, with the benefit of hindsight and historical documentation, viewed the Peloponnesian War as a civil war among the Greek people. It seems at the time it was not perceived that way by Athens, its allies, or its enemies. The Persians were the starkest “other” throughout much of ancient Greek history, but by the time of the Peoponnesian War, the Persian “threat” was more like a distant, hazy shadow. Thus, the “other” from Athens’ perspective was other city-states, including its own allies who they feared would betray them (which they did, although “betray” perhaps is not the best characterization of the affair).&nbsp;↩︎
I promise I did not make this name up.&nbsp;↩︎
Bridging the Developer and Security Divide, VMWare, Forrester Research (2021)&nbsp;↩︎
UN-Water, 2013. Water security and the global water agenda—A UN- Water analytical brief . Hamilton: United Nations University. See also: https://www.unwater.org/publications/water-security-infographic/&nbsp;↩︎
Social Security: Origin of the Term at https://socialwelfare.library.vcu.edu/social-security/social-security-origin-of-the-term/&nbsp;↩︎
Christie, R., &amp; Amitav, A. (2008). Human security research: progress, limitations and new directions (pp. 11-08). Working Paper. Centre for Governance and International Affairs. http://www.bris.ac.uk/media-library/sites/spais/migrated/documents/christiearcharya1108.pdf&nbsp;↩︎
Heidegger, M. (1977). The question concerning technology. New York, 214. https://www2.hawaii.edu/~freeman/courses/phil394/The%20Question%20Concerning%20Technology.pdf&nbsp;↩︎
It also brings us to one of my favorite book quotes: “In the information society, nobody thinks. We expected to banish paper, but we actually banished thought.” (said by Ian Malcolm in Jurassic Park by Michael Crichton).&nbsp;↩︎
“Security is ambiguous and elastic in its meaning.” – Art, 1993&nbsp;↩︎
Wolfers, A. (1962). Discord and collaboration: essays on international politics. Baltimore: Johns Hopkins Press.&nbsp;↩︎
Brauch, H. G. (2011). Concepts of security threats, challenges, vulnerabilities and risks. In Coping with global environmental change, disasters and security (pp. 61-106). Springer, Berlin, Heidelberg. https://link.springer.com/content/pdf/10.1007/978-3-642-17776-7_2.pdf&nbsp;↩︎
Yet again, this is a dynamic Software Resilience (aka Security Chaos Engineering (SCE)) is seeking to change.&nbsp;↩︎
Waldron, J. (2006). Safety and security. Neb. L. Rev., 85, 454.&nbsp;↩︎
Luhmann, N. (2018). Trust and power. John Wiley &amp; Sons.&nbsp;↩︎
I have much, much more to say on this topic (inspired by this paper: Power, M. (2009). The risk management of nothing. Accounting, organizations and society, 34(6-7), 849-855.)&nbsp;↩︎
Surprise, surprise, Software Resilience (aka Security Chaos Engineering (SCE) is aligned with the vibe of earning respect.&nbsp;↩︎
Arenas, J. F. M. (2008). From Homer to Hobbes and Beyond—Aspects of ’security’ in the European Tradition. In Globalization and environmental challenges (pp. 263-277). Springer, Berlin, Heidelberg.&nbsp;↩︎
Shortridge, Kelly (2022). From Lemons to Peaches: Improving Security ROI through Security Chaos Engineering. IEEE SecDev 2022. https://arxiv.org/abs/2307.03796&nbsp;↩︎
]]></description>
      <pubDate>Thu, 26 Oct 2023 12:00:02 +0000</pubDate>
      <link>https://kellyshortridge.com/blog/posts/what-does-the-word-security-mean/</link>
      <dc:creator>Posts on Sensemaking by Shortridge</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4258844419</guid>
    </item>
    <item>
      <title><![CDATA[The Layers of the Earth]]></title>
      <description><![CDATA[
        <p><img src="https://kottke.org/plus/misc/images/earth-layers-xkcd.jpg" width="1000" height="1071" border="0" alt="a humorous 3D cutaway map of the many (absurd) layers of the Earth"></p>

<p>From XKCD, <a href="https://xkcd.com/2840/">a 3D cutaway map of the many layers of the Earth</a>, from the familiar crust around the outside to the more mysterious layers like nougat, vitreous humor, guacamole, and cork.</p>

 <p><strong>Tags:</strong> <a href="https://kottke.org/tag/Earth">Earth</a> · <a href="https://kottke.org/tag/geology">geology</a> · <a href="https://kottke.org/tag/infoviz">infoviz</a> · <a href="https://kottke.org/tag/maps">maps</a> · <a href="https://kottke.org/tag/XKCD">XKCD</a></p>



    ]]></description>
      <pubDate>Thu, 12 Oct 2023 21:51:48 +0000</pubDate>
      <link>https://kottke.org/23/10/the-layers-of-the-earth</link>
      <dc:creator>kottke.org</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4245206657</guid>
    </item>
    <item>
      <title><![CDATA[Being Picky about a CSS Reset for Fun &amp; Pleasure]]></title>
      <description><![CDATA[
<p>Just days before <a href="https://andy-bell.co.uk/a-more-modern-css-reset/">Andy revamped his (more) Modern CSS Reset</a>, <a href="https://shoptalkshow.com/582/#t=43:01">Dave and I were line-by-lining it</a> on ShopTalk Show. Mouthblogging is fun and all, but so is Writemouthblogging, known colloquially as “blogging”. </p>



<p>Allow me to do it again with my fingers on this new version. </p>



<p class="has-small-font-size">Obviously this is all subjective and you can and should do whatever you want with your life.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css">*,
*<span class="hljs-selector-pseudo">::before</span>,
*<span class="hljs-selector-pseudo">::after</span> {
  <span class="hljs-attribute">box-sizing</span>: border-box;
}</code></span></pre>


<p>You gotta do it. This is one of the things that makes me wish we could do a CSS version of <code>"use strict";</code> at the top to opt into a version of CSS with all the <a href="https://wiki.csswg.org/ideas/mistakes">mistakes</a> fixed. The psuedos make that selector so ugly, don’t they? Ughghk. Since setting <code>width</code> and <code>height</code> is getting rarer in a world of flexbox and grid anyway (which is what <code>box-sizing</code> “fixes”), and the pseudo usage rarer still, it makes me want to start omitting this entirely, but every time I try it, I regret it, and put it back. </p>



<p>This was a popular alternative for a minute, I think credit to Jon Neal for thinking it through:</p>


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-tag">html</span> {
  <span class="hljs-attribute">box-sizing</span>: border-box;
}
*, *<span class="hljs-selector-pseudo">:before</span>, *<span class="hljs-selector-pseudo">:after</span> {
  <span class="hljs-attribute">box-sizing</span>: inherit;
}</code></span></pre>


<p>The idea is that on any given element you could set a <em>different</em> <code>box-sizing</code> value and it would change it not only for that DOM node but all its descendants, which is maybe what you want. But it didn’t seem to catch on, probably because it’s <em>so</em> niche. I also don’t like looking at the slightly incorrect single colons, even though they will work fine forever.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-tag">html</span> {
  <span class="hljs-attribute">-moz-text-size-adjust</span>: none;
  <span class="hljs-attribute">-webkit-text-size-adjust</span>: none;
  <span class="hljs-attribute">text-size-adjust</span>: none;
}</code></span></pre>


<p>This makes it so iPhones don’t dork up the font size in landscape mode, <a href="https://kilianvalkhof.com/2022/css-html/your-css-reset-needs-text-size-adjust-probably/">as Kilian documented</a>. Dumb. Apple should ditch that behavior. But for now, <em>fine</em>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-tag">body</span>, <span class="hljs-selector-tag">h1</span>, <span class="hljs-selector-tag">h2</span>, <span class="hljs-selector-tag">h3</span>, <span class="hljs-selector-tag">h4</span>, <span class="hljs-selector-tag">p</span>,
<span class="hljs-selector-tag">figure</span>, <span class="hljs-selector-tag">blockquote</span>, <span class="hljs-selector-tag">dl</span>, <span class="hljs-selector-tag">dd</span> {
  <span class="hljs-attribute">margin</span>: <span class="hljs-number">0</span>;
}</code></span></pre>


<p>I like the idea of nuking margins. Definitely on the <code>body</code>. That one is extra annoying. <code>8px</code> lol go to bed. Why? <a href="https://www.miriamsuzanne.com/2022/07/04/body-margin-8px/#:~:text=All%20browsers%20add%20an%208px,own%20'user%20agent'%20styles.">why.</a> But I get it. We can’t have text touching the edge of the browser window that would be worse. I think <code>1rem</code> would be a heck of a lot nicer, if not some exotic <code>max()</code> calculation with viewport units so large screens get more than small screens. But you can’t just <em>change things</em> on the web, lest it decent into chaos (cats/dogs/living together/etc).  </p>



<p>I’d probably be a little more comprehensive here though. The list sisters <code>ol</code> and <code>ul</code> for sure, and <code>pre</code>, just to pick one more. And clearly Andy hates h5 and h6 👀. <em>personally.</em></p>



<hr class="wp-block-separator has-alpha-channel-opacity">


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-tag">ul</span><span class="hljs-selector-attr">[role=<span class="hljs-string">'list'</span>]</span>,
<span class="hljs-selector-tag">ol</span><span class="hljs-selector-attr">[role=<span class="hljs-string">'list'</span>]</span> {
  <span class="hljs-attribute">list-style</span>: none;
}</code></span></pre>


<p>This was a head-scratcher to me, but Andy explains it’s to make sure Safari doesn’t wipe out the correct accessible role:</p>



<blockquote class="wp-block-quote">
<p>… to make sure that a&nbsp;<code>role</code>&nbsp;is added, I remove the list styling by default for it as a little reward.</p>
</blockquote>



<p>lol that is so weird that now I like it again. It reminds me of those selectors <a href="https://adrianroselli.com/2020/11/under-engineered-responsive-tables.html#CSS">like Adrian likes</a> where you are only awarded the correct styles if you use <em>all</em> the correct attributes…</p>



<details class="wp-block-details"><summary>… like this beauty.</summary><pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-attr">[role=<span class="hljs-string">"region"</span>]</span><span class="hljs-selector-attr">[aria-labelledby]</span><span class="hljs-selector-attr">[tabindex]</span> {
  <span class="hljs-attribute">overflow</span>: auto;
}

<span class="hljs-selector-attr">[role=<span class="hljs-string">"region"</span>]</span><span class="hljs-selector-attr">[aria-labelledby]</span><span class="hljs-selector-attr">[tabindex]</span><span class="hljs-selector-pseudo">:focus</span> {
  <span class="hljs-attribute">outline</span>: .<span class="hljs-number">1em</span> solid <span class="hljs-built_in">rgba</span>(<span class="hljs-number">0</span>,<span class="hljs-number">0</span>,<span class="hljs-number">0</span>,.<span class="hljs-number">1</span>);
}</code></span></pre>


<p></p>
</details>



<p>A more sober me might do something like this instead:</p>


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-tag">ul</span><span class="hljs-selector-attr">[class]</span>,
<span class="hljs-selector-tag">ol</span><span class="hljs-selector-attr">[class]</span> {
  <span class="hljs-attribute">margin</span>: <span class="hljs-number">0</span>;
  <span class="hljs-attribute">padding</span>: <span class="hljs-number">0</span>;
  <span class="hljs-attribute">list-style</span>: none;
}</code></span></pre>


<p>… where I’m like: hey if you’re adding a class to this list, you’re probably doing something fancy to it, so boot it back to normal town first.</p>



<p>Maybe we need “JavaScript resets”? Like if we’re worried about roles getting wiped out, let’s force the issue.</p>


<pre class="wp-block-code" data-shcb-language-name="PHP" data-shcb-language-slug="php"><span><code class="hljs language-php">document
  .querySelectorAll(<span class="hljs-string">"ul, ol"</span>)
  .<span class="hljs-keyword">forEach</span>(<span class="hljs-keyword">list</span> =&gt; <span class="hljs-keyword">list</span>.setAttribute(<span class="hljs-string">"role"</span>, <span class="hljs-string">"list"</span>));</code></span></pre>


<p>I can forsee no problems with that — ship it.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-tag">body</span> {
  <span class="hljs-attribute">min-height</span>: <span class="hljs-number">100vh</span>;
  <span class="hljs-attribute">line-height</span>: <span class="hljs-number">1.5</span>;
}</code></span></pre>


<p>First of all I’d smash that <code>line-height</code> on the <code>html</code> element instead, mostly because I think that high-level “inherit me!!” typography stuff should happen there. The <code>r</code> in <code>rem</code> means “root” and only responds to changes in size there. Likewise there is new units like <code>rlh</code> that mean “root line height” and it makes sense to me to just use the root in case we want to use that value. </p>



<p>Every part of me wants to use <code>dvh</code> instead of <code>vh</code> on that <code>min-height</code> because when browser chrome and crap comes up it makes sense to me that that size shrinks to the new area. But apparently it <a href="https://ishadeed.com/article/new-viewport-units/#:~:text=Be%20careful%20with%20the%20dvh,is%20scrolling%20up%20or%20down.">can be a performance issue</a> (??) so maybe not. Would like to see some testing there. Although I might just need to adjust my thinking and <a href="https://mastodon.social/@simevidas/111088262361593466">embrace the <code>svh</code></a>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-tag">h1</span>, <span class="hljs-selector-tag">h2</span>, <span class="hljs-selector-tag">h3</span>, <span class="hljs-selector-tag">h4</span>,
<span class="hljs-selector-tag">button</span>, <span class="hljs-selector-tag">input</span>, <span class="hljs-selector-tag">label</span> {
  <span class="hljs-attribute">line-height</span>: <span class="hljs-number">1.1</span>;
}</code></span></pre>


<p>Heck yeah, if you’re going to go with that luxuriously tall <code>line-height</code> for the page, you gotta suck it back down for headers. Except <code>h5</code> and <code>h6</code> who can apparently suck it.  Makes sense on the inputs too, I’ve never seen that in a reset before and I like it.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-tag">h1</span>, <span class="hljs-selector-tag">h2</span>,
<span class="hljs-selector-tag">h3</span>, <span class="hljs-selector-tag">h4</span> {
  <span class="hljs-attribute">text-wrap</span>: balance;
}</code></span></pre>


<p>Hell yeah. This makes me think we should also be putting <code>text-wrap: pretty;</code> on all the Small But Long Text elements like <code>p</code>, <code>li</code>, <code>.intro-text</code>, <code>dd</code>, and whatnot. But that makes me feel like that’s maybe over-reaching? Doesn’t it bail out on elements over 4 lines or something anyway?</p>



<hr class="wp-block-separator has-alpha-channel-opacity">


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-tag">a</span><span class="hljs-selector-pseudo">:not(</span><span class="hljs-selector-attr">[class]</span>) {
  <span class="hljs-attribute">text-decoration-skip-ink</span>: auto;
  <span class="hljs-attribute">color</span>: currentColor;
}</code></span></pre>


<p><code>auto</code> is already the default on <code>text-decoration-skip-ink</code> so I’m not sure how useful that is. I <em>kinda</em> like the <code>currentColor</code> idea, but it means you <em>really</em> need to keep the underlines then or have some other really obvious link style. “Links are supposed to be blue” and all that. </p>



<hr class="wp-block-separator has-alpha-channel-opacity">


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-tag">input</span>,
<span class="hljs-selector-tag">button</span>,
<span class="hljs-selector-tag">textarea</span>,
<span class="hljs-selector-tag">select</span> {
  <span class="hljs-attribute">font</span>: inherit;
}</code></span></pre>


<p>Love it.  I like that that even works on select now, I could have sworn it didn’t. I wonder if we should add <code>selectmenu</code> now too? Isn’t that getting close? I bet it would even cascade down into the <code>option</code>s then, maybe?</p>


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-tag">textarea</span><span class="hljs-selector-pseudo">:not(</span><span class="hljs-selector-attr">[rows]</span>) {
  <span class="hljs-attribute">min-height</span>: <span class="hljs-number">10em</span>;
}</code></span></pre>


<p>Fair. A rare case I like the <code>em</code> instead of <code>rem</code>. My optimisitically chuck on <code>form-sizing: normal;</code> also.  </p>



<hr class="wp-block-separator has-alpha-channel-opacity">


<pre class="wp-block-code" data-shcb-language-name="CSS" data-shcb-language-slug="css"><span><code class="hljs language-css"><span class="hljs-selector-pseudo">:target</span> {
  <span class="hljs-attribute">scroll-margin-block</span>: <span class="hljs-number">5ex</span>;
}</code></span></pre>


<p>Like it. Browsers butt targets too high. The <code>ex</code> unit is showing off a little lol. I vote for <code>1rlh</code>. </p>



<p></p>
]]></description>
      <pubDate>Tue, 03 Oct 2023 15:50:18 +0000</pubDate>
      <link>https://chriscoyier.net/2023/10/03/being-picky-about-a-css-reset-for-fun-pleasure/</link>
      <dc:creator>Chris Coyier</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4234432902</guid>
    </item>
    <item>
      <title><![CDATA[Reverse-engineering the mechanical Bendix Central Air Data Computer]]></title>
      <description><![CDATA[<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async="" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
<script>
MathJax = {
  tex: {
    inlineMath: [['$', '$'], ['\\(', '\\)']]
  },
  svg: {
    fontCache: 'global'
  },
        chtml: { displayAlign: 'left' }
};
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    "HTML-CSS": { scale: 175}
  });
</script>
<style type="text/css">
.MathJax {font-size: 1em !important}
</style>

<p>How did fighter planes in the 1950s perform calculations before compact digital computers were available?
The Bendix Central Air Data Computer (CADC) is an electromechanical analog computer that used
gears and cams for its mathematics. It was used in military planes such as the F-101 and the F-111 fighters, and the B-58 bomber to compute
airspeed, Mach number, and other "air data".</p>
<p><a href="https://static.righto.com/images/bendix-top/bendix-side.jpg"><img alt="The Bendix MG-1A Central Air Data Computer with the case removed, showing the compact gear mechanisms inside. Click this image (or any other) for a larger version." class="hilite" height="322" src="https://static.righto.com/images/bendix-top/bendix-side-w600.jpg" title="The Bendix MG-1A Central Air Data Computer with the case removed, showing the compact gear mechanisms inside. Click this image (or any other) for a larger version." width="600"></a></p><div class="cite">The Bendix MG-1A Central Air Data Computer with the case removed, showing the compact gear mechanisms inside. Click this image (or any other) for a larger version.</div><p></p>
<p>Aircraft have determined airspeed from
air pressure for over a 
<a href="https://patents.google.com/patent/US1290875A">century</a>.
A port in the side of the plane provides the static air pressure,<span id="fnref:static"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:static">1</a></span> the air pressure outside the aircraft.
A pitot tube points forward and receives the "total" air pressure, a higher pressure due to the speed of the airplane
forcing air into the tube.
The airspeed can be determined from the ratio of these two pressures, while the altitude can be determined
from the static pressure.</p>
<p>But as you approach the speed of sound, the fluid dynamics of air changes and the calculations become very complicated.
With the development of supersonic fighter planes in the 1950s, simple mechanical instruments were no longer
sufficient.
Instead, an analog computer calculated the "air data" (airspeed, air density, Mach number, and so forth) from the pressure measurements.
This computer then transmitted the air data electrically to the systems that needed it: instruments, weapons
targeting, engine control, and so forth.
Since the computer was centralized, the
system was called a Central Air Data Computer or CADC, manufactured by Bendix and other companies.</p>
<p><a href="https://static.righto.com/images/bendix-top/gears.jpg"><img alt="A closeup of the numerous gears inside the CADC. Three differential gear mechanisms are visible." class="hilite" height="367" src="https://static.righto.com/images/bendix-top/gears-w600.jpg" title="A closeup of the numerous gears inside the CADC. Three differential gear mechanisms are visible." width="600"></a></p><div class="cite">A closeup of the numerous gears inside the CADC. Three differential gear mechanisms are visible.</div><p></p>
<p>Each value in the CADC is indicated by the rotational position of a shaft.
Compact electric motors rotated the shafts, controlled by <a href="https://spectrum.ieee.org/the-vacuum-tubes-forgotten-rival">magnetic amplifier</a> servos.
Gears, cams, and differentials performed computations, with the results indicated by more rotations.
Devices called synchros converted the rotations to electrical outputs that controlled other aircraft systems.
The CADC is said to contain 46 synchros, 511 gears, 820 ball bearings, and a total of 2,781 major parts (but I haven't counted).
These components are crammed into a compact cylinder: 15 inches long and weighing 28.7 pounds.</p>
<p>The equations computed by the CADC are impressively complicated. For instance, one equation is:<span id="fnref:equations"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:equations">2</a></span></p>
<p>\[~~~\frac{P_t}{P_s} = \frac{166.9215M^7}{( 7M^2-1)^{2.5}}\]</p>
<p>It seems incredible that these functions could be computed mechanically, but three
techniques make this possible.
The fundamental mechanism is the differential gear, which adds or subtracts values.
Second, logarithms are used extensively, so multiplications and divisions become additions and subtractions performed by
a differential, while square roots are calculated by gearing down by a factor of 2.
Finally, specially-shaped cams implement functions: logarithm, exponential, and functions specific to the application.
By combining these mechanisms, complicated functions can be computed mechanically, as I will explain below.</p>
<!-- Aerodynamics for Naval Aviators (1965) https://www.faa.gov/sites/faa.gov/files/regulations_policies/handbooks_manuals/aviation/00-80T-80.pdf -->

<h3>The differential</h3>
<p>The differential gear assembly is the mathematical component of the CADC, as it performs addition or subtraction.
The differential takes two input rotations and produces an output rotation that is the sum or difference of these rotations.<span id="fnref:differential"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:differential">3</a></span>
Since most values in the CADC are expressed logarithmically, the differential computes multiplication and division when it
adds or subtracts its inputs.</p>
<p><a href="https://static.righto.com/images/bendix-top/differential-closeup.png"><img alt="A closeup of a differential mechanism." class="hilite" height="332" src="https://static.righto.com/images/bendix-top/differential-closeup-w350.png" title="A closeup of a differential mechanism." width="350"></a></p><div class="cite">A closeup of a differential mechanism.</div><p></p>
<p>While the differential functions like the differential in a car, it is constructed differently, with a
<a href="https://en.wikipedia.org/wiki/Differential_(mechanical_device)#Spur-gear_design">spur-gear</a> design.
This compact arrangement of gears is about 1 cm thick and 3 cm in diameter.
The differential is mounted on a shaft along with three co-axial gears: two gears provide the inputs to the differential and the third
provides the output.
In the photo, the gears above and below the differential are the input gears.
The entire differential body rotates with the sum, connected to the output gear at the top through a concentric shaft.
(In practice, any of the three gears can be used as the output.)
The two thick gears inside the differential body are part of the mechanism.</p>
<p>Note that multiplying a rotation by a constant factor doesn't require a differential; it can be done simply with the ratio between
two gears. (If a large gear rotates a small gear, the small gear rotates faster according to the size ratio.)
Adding a constant to a rotation is even easier, just a matter of defining what shaft position indicates 0.
For this reason, I will ignore constants in the equations.</p>
<h3>The cams</h3>
<p>The CADC uses cams to implement various functions. Most importantly, cams compute logarithms and exponentials.
Cams also implement complicated functions of one variable such as ${M}/{\sqrt{1 + .2 M^2}}$.
The function is encoded into the cam's shape during manufacturing, so a hard-to-compute nonlinear function isn't a problem for the CADC.
The photo below shows a cam with the follower arm in front. As the cam rotates, the follower
moves in and out according to the cam's radius.</p>
<p><a href="https://static.righto.com/images/bendix-top/cam.jpg"><img alt="A cam inside the CADC implements a function." class="hilite" height="444" src="https://static.righto.com/images/bendix-top/cam-w500.jpg" title="A cam inside the CADC implements a function." width="500"></a></p><div class="cite">A cam inside the CADC implements a function.</div><p></p>
<p>However, the shape of the cam doesn't provide the function directly, as you might expect.
The main problem with the straightforward approach is the discontinuity when the cam wraps around, which could catch the follower.
For example, if the cam implemented an exponential directly, its radius would spiral exponentially and there would be
a jump back to the starting value when it wraps around.</p>
<p>Instead, the CADC uses a clever <a href="https://patents.google.com/patent/US2969910A">patented</a> method:
the cam encodes the <em>difference</em> between the desired function and a straight line.
For example, an exponential curve is shown below (blue), with a line (red) between the endpoints.
The height of the gray segment, the difference, specifies the radius of the cam (added to the cam's fixed minimum radius).
The point is that this difference goes to 0 at the extremes, so the cam will no longer have a discontinuity when it
wraps around. 
Moreover, this technique significantly reduces the size of the value (i.e. the height of the gray region is
smaller than the height of the blue line), increasing the cam's accuracy.<span id="fnref:cam-shape"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:cam-shape">5</a></span></p>
<p><a href="https://static.righto.com/images/bendix-top/exponential.png"><img alt="An exponential curve (blue), linear curve (red), and the difference (gray)." class="hilite" height="216" src="https://static.righto.com/images/bendix-top/exponential-w300.png" title="An exponential curve (blue), linear curve (red), and the difference (gray)." width="300"></a></p><div class="cite">An exponential curve (blue), linear curve (red), and the difference (gray).</div><p></p>
<p>To make this work, the cam position must be added to the linear value to yield the result.
This is implemented by combining each cam with a differential gear that performs the addition or subtraction.<span id="fnref:differential-cam"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:differential-cam">4</a></span>
As the diagram below shows, the input (23) drives the cam (30) and the
differential (25, 37-41). The follower (32) tracks the cam and provides a second input (35) to the differential.
The sum from the differential produces the desired function (26).</p>
<p><a href="https://static.righto.com/images/bendix-top/differential-patent.png"><img alt="This diagram, from Patent 2969910, shows how the cam and follower are connected to a differential." class="hilite" height="312" src="https://static.righto.com/images/bendix-top/differential-patent-w350.png" title="This diagram, from Patent 2969910, shows how the cam and follower are connected to a differential." width="350"></a></p><div class="cite">This diagram, from <a href="https://patents.google.com/patent/US2969910A">Patent 2969910</a>, shows how the cam and follower are connected to a differential.</div><p></p>
<h3>Pressure inputs</h3>
<!--
The Bendix CADC has two pneumatic inputs through tubes:
the static pressure and the total pressure.
It also receives the total temperature from a platinum temperature probe.
From these, it computes many outputs: true air speed, Mach number, log static pressure, differential pressure, air density, air density &times; the speed of sound, total temperature, and log true free air temperature.
-->

<p>The CADC receives two pressure inputs from the pitot tube.<span id="fnref:pec"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:pec">6</a></span>
Inside the CADC, two pressure transducers convert the pressures into rotational positions.
Each pressure transducer contains a pair of bellows that
expand and contract as the applied pressure changes.
The pressure transducer has a tricky job: it must measure tiny pressure changes, but it must also provide a
rotational signal that has enough torque to rotate all the gears in the CADC.
To accomplish this, each pressure transducer uses a servo loop that drives a motor, controlled by a feedback loop.
Cams and differentials convert the rotation into logarithmic values, providing 
the static pressure as 
\( log \; P_s \) and the pressure ratio as \( log \; ({P_t}/{P_s}) \) to the rest of the CADC.</p>
<h3>The synchro outputs</h3>
<p>A synchro is an interesting device that can transmit a rotational position electrically over three wires.
In appearance, a synchro is similar to an electric motor, but its internal construction is different, as shown below.
Before digital systems, synchros were very popular for transmitting signals electrically through an aircraft.
For instance, a synchro could transmit an altitude reading to a cockpit display or a targeting system.
Two synchros at different locations have their stator windings connected together, while the rotor windings are driven with
AC.
Rotating the shaft of one synchro causes the other to rotate to the same position.<span id="fnref:synchro"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:synchro">7</a></span></p>
<p><a href="https://static.righto.com/images/bendix-top/synchro-cutaway.png"><img alt="Cross-section diagram of a synchro showing the rotor and stators." class="hilite" height="306" src="https://static.righto.com/images/bendix-top/synchro-cutaway-w350.png" title="Cross-section diagram of a synchro showing the rotor and stators." width="350"></a></p><div class="cite">Cross-section diagram of a synchro showing the rotor and stators.</div><p></p>
<p>For the CADC, most of the outputs are synchro signals, using compact synchros that are about 3 cm in length.
For improved resolution, some of the CADC outputs use two synchros: a coarse synchro and a fine synchro.
The two synchros are typically geared in an 11:1 ratio, so the fine synchro rotates 11 times as fast as the coarse
synchro.
Over the output range, the coarse synchro may turn 180°, providing the approximate output, while the fine
synchro spins multiple times to provide more accuracy.</p>
<h2>Examining the left section of the CADC</h2>
<p><a href="https://static.righto.com/images/bendix-top/side.jpg"><img alt="Another view of the CADC." class="hilite" height="343" src="https://static.righto.com/images/bendix-top/side-w600.jpg" title="Another view of the CADC." width="600"></a></p><div class="cite">Another view of the CADC.</div><p></p>
<p>The Bendix CADC is constructed from modular sections.
The right section has the pressure transducers (the black domes), along with the servo mechanisms that control
them.
The middle section is the "Mach section".
In this blog post, I'm focusing on the left section of the CADC, which
computes true airspeed, air density, total temperature, log true free 
air temperature, and air density × speed of sound.
I had feared that any attempt at disassembly would result in tiny gears flying in every direction, but the CADC
was designed to be taken apart for maintenance.
Thus, I could remove the left section of the CADC for analysis.</p>
<p>The diagram below shows the side that connects to the aircraft.<span id="fnref:connectors"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:connectors">8</a></span>
The various synchros generate the outputs.
Some of the synchros have spiral anti-backlash springs installed.
These springs prevent wobble in the synchro and gear train as the gears change direction.
Three of the exponential cams are visible.
The differentials and gears are between the two metal plates, so they are not visible from this angle.</p>
<p><a href="https://static.righto.com/images/bendix-top/front-labeled.jpg"><img alt="The front of the CADC has multiple output synchros with anti-backlash springs." class="hilite" height="556" src="https://static.righto.com/images/bendix-top/front-labeled-w600.jpg" title="The front of the CADC has multiple output synchros with anti-backlash springs." width="600"></a></p><div class="cite">The front of the CADC has multiple output synchros with anti-backlash springs.</div><p></p>
<p>Attached to the right side is the temperature transducer, a modular wedge that implements
a motorized servo loop to convert the temperature input to a rotation.
The servo amplifier consists of three boards of electronic components, including transistors and magnetic amplifiers to drive the motor.
The large red potentiometer provides feedback for the servo loop.
A flexible cam with 20 adjustment screws allows the transducer to be tuned to eliminate nonlinearities or other sources of error.
I'll describe this module in more detail in another post.<span id="fnref:temperature-servo"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:temperature-servo">9</a></span></p>
<p>The photo below shows the other side of the section. This communicates with the rest of the CADC through the electrical connector and
three gears that mesh with gears in the other section.
Two gears receive the pressure signals \( P_t / P_s \) and \(P_s\) from the pressure transducer subsystem.
The third gear sends the log total temperature to the rest of the CADC.
The electrical connector (a standard 37-pin D-sub) supplies 120 V 400 Hz power to the rest of the CADC and
passes synchro signals from the rest of the CADC to the output connectors.</p>
<p><a href="https://static.righto.com/images/bendix-top/back-labeled.jpg"><img alt="This side of the section interfaces with the rest of the CADC." class="hilite" height="480" src="https://static.righto.com/images/bendix-top/back-labeled-w500.jpg" title="This side of the section interfaces with the rest of the CADC." width="500"></a></p><div class="cite">This side of the section interfaces with the rest of the CADC.</div><p></p>
<h2>The equations</h2>
<p>Although the CADC looks like an inscrutable conglomeration of tiny gears, it is possible to trace out
the gearing and see exactly how it computes the air data functions.
With considerable effort, I have reverse-engineered the mechanisms to create the diagram below,
showing how each computation is broken down into mechanical steps.
Each line indicates a particular value, specified by a shaft rotation.
The ⊕ symbol indicates a differential gear, adding or subtracting its inputs to produce another value.
The cam symbol indicates a cam coupled to a differential gear.
Each cam computes either a specific function or an exponential, providing the value as a rotation.
At the right, the rotations are converted to outputs, either by synchros or a potentiometer.
This diagram abstracts out the physical details of the gears. In particular, scaling by constants or
reversing the rotation (subtraction versus addition) are not shown.</p>
<p><a href="https://static.righto.com/images/bendix-top/dataflow.png"><img alt="This diagram shows how the values are computed. The differential numbers are my own arbitrary numbers. Click for a larger version." class="hilite" height="395" src="https://static.righto.com/images/bendix-top/dataflow-w800.png" title="This diagram shows how the values are computed. The differential numbers are my own arbitrary numbers. Click for a larger version." width="800"></a></p><div class="cite">This diagram shows how the values are computed. The differential numbers are my own arbitrary numbers. Click for a larger version.</div><p></p>
<p>I'll go through each calculation briefly.</p>
<h3>Total temperature</h3>
<p>The external temperature is an important input to the CADC since it affects the air density.
A platinum temperature probe provides a resistance that varies with temperature.
The resistance is converted to rotation by the temperature transducer, described earlier.
The definition of temperature is a bit complicated, though.
The temperature outside the aircraft is called the true free air temperature, T.
However, the temperature probe measures a higher temperature, called the indicated total air temperature, T<sub>i</sub>.
The reason for this discrepancy is that when the aircraft is moving at high speed, the air transfers kinetic energy to the temperature probe, heating it up.</p>
<p><a href="https://static.righto.com/images/bendix-top/d15.jpg"><img alt="The differential and cam D15." class="hilite" height="358" src="https://static.righto.com/images/bendix-top/d15-w500.jpg" title="The differential and cam D15." width="500"></a></p><div class="cite">The differential and cam D15.</div><p></p>
<p>The temperature transducer provides the log of the total temperature as a rotation.
At the top of the equation diagram,
cam and differential D15 simply take the exponential of this value to determine the total temperature.
This rotates the shaft of a synchro to produce the total temperature as an electrical output.
As shown above, the D15 cam is attached to the differential by a shaft passing through the metal plate.
The follower rotates according to the cam radius, turning the follower gear which meshes with the differential input.
The result from the differential is the total temperature.</p>
<h3>log free air temperature</h3>
<p>A more complicated task of the CADC is to compute the true free air temperature from the measured total temperature.
Free air temperature, T, is defined by the formula below, which compensates for the additional
heating due to the aircraft's speed. \(T_i\) is the indicated total temperature, M is the Mach number and
K is a temperature probe constant.<span id="fnref:k"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:k">10</a></span></p>
<p>\[ T = \frac {T_i} {1 + .2 K M^2 } \]</p>
<p>The diagram below shows the cams, differentials, gear trains, and synchro that compute \(log \; T\).
First, cam D11 computes
\( log \; (1 + .2 K M^2 ) \).
Although that expression is complicated, the key is that it is a function of one variable (M).
Thus, it can be computed by cam D11, carefully shaped for this function and attached to differential D11.
Differential D10 adds the log total temperature (from the temperature transducer) to produce the desired result.
The indicated servo outputs this value to other aircraft systems.
(Note that the output is a logarithm; it is not converted to a linear value.<span id="fnref:log-temp"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:log-temp">11</a></span>
This value is also fed (via gears) into the calculations of three more equations, below.</p>
<p><a href="https://static.righto.com/images/bendix-top/d10.jpg"><img alt="The components that compute log free air temperature. D12 is not part of this equation." class="hilite" height="502" src="https://static.righto.com/images/bendix-top/d10-w500.jpg" title="The components that compute log free air temperature. D12 is not part of this equation." width="500"></a></p><div class="cite">The components that compute log free air temperature. D12 is not part of this equation.</div><p></p>
<h3>Air density</h3>
<p>Air density is computed from the static pressure and true temperature:</p>
<p>\[ \rho = C_1 \frac{P_s} {T} \]</p>
<p>It is calculated using logarithms. D16 subtracts the log temperature from the log pressure and
cam D20 takes the exponential.</p>
<h3>True airspeed</h3>
<p>True airspeed is computed from the Mach number and the total temperature according to the following formula:</p>
<p>\[V = 38.94 M \frac{\sqrt{T_i}}{\sqrt{1+.2KM^2}}\]</p>
<p>Substituting the true free air temperature simplifies the formula to the equation implemented in the CADC:</p>
<p>\[V = 38.94 M \sqrt{T} \]</p>
<p>This is computed logarithmically. First, cam and differential D12 compute \(log \; M\) from the pressure ratio.<span id="fnref:m-function"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:m-function">13</a></span>
Next differential D19 adds half the log temperature to multiply by the square root.
Exponential cam D13 removes the logarithms, producing the final result. (The constant 38.94 is an important part of the
equation, but is easily implemented with gear ratios.)
The output goes to two synchros, geared to provide coarse and fine outputs.<span id="fnref:coarse"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:coarse">12</a></span></p>
<p><a href="https://static.righto.com/images/bendix-top/d14.jpg"><img alt="These components compute true airspeed and air density × speed of sound.
Note the large gear driving the coarse synchro and the small gear driving the fine synchro. This causes the fine
synchro to rotate at 11 times the speed of the coarse synchro." class="hilite" height="447" src="https://static.righto.com/images/bendix-top/d14-w650.jpg" title="These components compute true airspeed and air density × speed of sound.
Note the large gear driving the coarse synchro and the small gear driving the fine synchro. This causes the fine
synchro to rotate at 11 times the speed of the coarse synchro." width="650"></a></p><div class="cite">These components compute true airspeed and air density × speed of sound.
Note the large gear driving the coarse synchro and the small gear driving the fine synchro. This causes the fine
synchro to rotate at 11 times the speed of the coarse synchro.</div><p></p>
<h3>Air density × speed of sound</h3>
<p>Air density × speed of sound<span id="fnref:density-speed"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:density-speed">14</a></span> is given by the formula</p>
<p>\[ \rho \cdot a =  C_2 \frac {P_s} {\sqrt{T}} \]</p>
<p>The calculation is almost the same as the air density calculation.
Differential D18 subtracts <em>half</em> the log temperature from the log pressure and then cam D14 computes
the exponential.
Unlike the other values, this output rotates the shaft of a 1 KΩ potentiometer (above), changing its resistance.
I don't know why this particular value is output as a resistance rather than a synchro angle.</p>
<h2>Conclusions</h2>
<p>The CADC performs nonlinear calculations that seem way too complicated to solve with mechanical gearing.
But reverse-engineering the mechanism shows how the equations are broken down into steps that can be performed
with cams and differentials, using logarithms for multiplication, division, and square roots.
I'll point out that reverse engineering the CADC is not as easy as you might expect.
It is difficult to see which gears are in contact, especially when gears are buried in the middle of the CADC and are hard to
see.
I did much of the reverse engineering by rotating one differential to see which other gears turn, but usually most of the gears turned
due to the circuitous interconnections.<span id="fnref:reverse-engineering"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:reverse-engineering">15</a></span></p>
<p>By the late 1960s, as fighter planes became more advanced and computer technology improved, digital processors replaced the gears in air data computers.
Garrett AiResearch's ILAAS air data computer (1967) was the <a href="https://worldradiohistory.com/Archive-Electronics/60s/67/Electronics-1967-10-16.pdf">first all-digital unit</a>.
Other digital systems were Bendix's ADC-1000 Digital Air Data Computer (1967) which was "designed to solve all air data computations at a rate of
75 times per second",
Conrac's 3-pound solid-state air data computer (1967),
Honeywell's <a href="https://worldradiohistory.com/Archive-Electronics/60s/69/Electronics-1969-03-17.pdf#page=127">Digital Air Data System</a> (1968),
and the LSI-based Garrett AiResearch <a href="https://en.wikipedia.org/wiki/F-14_CADC">F-14 CADC</a> (1970).
Nonetheless, the gear-based Bendix CADC provides an interesting reverse-engineering challenge as well as a look at the forgotten era of analog computing.</p>
<p>For more background on the CADC, see my <a href="https://www.righto.com/2023/02/bendix-central-air-data-computer-cadc.html">overview article on the CADC</a>.
I plan to continue reverse-engineering the Bendix CADC and get it operational,<span id="fnref:refs"><a class="ref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fn:refs">16</a></span>
so follow me on Twitter <a href="https://twitter.com/kenshirriff">@kenshirriff</a> or <a href="http://www.righto.com/feeds/posts/default">RSS</a> for updates.
I've also started experimenting with Mastodon as <a href="https://oldbytes.space/@kenshirriff">@oldbytes.space@kenshirriff</a>.
Thanks to Joe for providing the CADC. Thanks to Nancy Chen for obtaining a hard-to-find document for me.
Marc Verdiell and Eric Schlaepfer are working on the CADC with me.</p>
<!-- AiResearch F-14A air data computer with solid state pressure sensor https://www.google.com/books/edition/Aircraft_Yearbook/KnVGAAAAYAAJ?hl=en&gbpv=1&pg=PA85&printsec=frontcover
F-104 lawsuit over whether CADC is essential:
https://www.google.com/books/edition/United_States_Customs_Court_Reports/7p1ypJhUYukC?hl=en&gbpv=1&dq=electronic+air+data+computer&pg=PA331&printsec=frontcover
Bendix digital air data computer https://patentimages.storage.googleapis.com/ae/55/07/f72bf49c914d2c/US3564222.pdf
https://www.google.com/books/edition/Aircraft_Yearbook/KnVGAAAAYAAJ?hl=en&gbpv=1&dq=%22digital+air+data+computer%22&pg=RA1-PA190&printsec=frontcover
https://patents.google.com/patent/US3564222A/en
-->

<h2>Notes and references</h2>
<div class="footnote">
<ol>
<li id="fn:static">
<p>The static air pressure can also be provided by holes in the side of the pitot tube.
I couldn't find information indicating exactly how the planes with the CADC received static pressure.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:static" title="Jump back to footnote 1 in the text">↩</a></p>
</li>
<li id="fn:equations">
<p>Although the CADC's equations may seem <em>ad hoc</em>, they can be derived from fluid dynamics principles.
These equations were standardized in the 1950s by various government organizations including the National
Bureau of Standards and NACA (the precursor of NASA).&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:equations" title="Jump back to footnote 2 in the text">↩</a></p>
</li>
<li id="fn:differential">
<p>Strictly speaking, the output of the differential is the sum of the inputs divided by two.
I'm ignoring the factor of 2 because the gear ratios can easily cancel it out.
It's also arbitrary whether you think of the differential as adding or subtracting, since it depends on which rotation
direction is defined as positive.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:differential" title="Jump back to footnote 3 in the text">↩</a></p>
</li>
<li id="fn:differential-cam">
<p>The cam value will be added or subtracted, depending on whether the function is concave or convex.
This is a simple matter of gearing when the values are fed into the differential.
Matching the linear segment to the function is also done with gearing that scales the input value appropriately.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:differential-cam" title="Jump back to footnote 4 in the text">↩</a></p>
</li>
<li id="fn:cam-shape">
<p>The diagram below shows a typical cam function in more detail. The input is \(log~ dP/P_s\)
and the output is \(log~M / \sqrt{1+.2KM^2}\).
The small humped curve at the bottom is the cam correction.
Although the input and output functions cover a wide range, the difference that is encoded in the cam is much
smaller and drops to zero at both ends.</p>
<p><a href="https://static.righto.com/images/bendix-top/cam-diagram.jpg"><img alt="This diagram, from Patent 2969910, shows how a cam implements a complicated function." class="hilite" height="439" src="https://static.righto.com/images/bendix-top/cam-diagram-w350.jpg" title="This diagram, from Patent 2969910, shows how a cam implements a complicated function." width="350"></a></p><div class="cite">This diagram, from <a href="https://patents.google.com/patent/US2969910A">Patent 2969910</a>, shows how a cam implements a complicated function.</div><p></p>
<p><!-- -->&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:cam-shape" title="Jump back to footnote 5 in the text">↩</a></p>
</li>
<li id="fn:pec">
<p>The CADC also has an input for the "position error correction", which I will ignore in this post.
This input provides a correction factor because the measured static pressure may not
exactly match the real static pressure. The problem is that the static pressure is measured from a port on the
aircraft. Distortions in the airflow may cause errors in this measurement.
A separate box, the "compensator", determined the correction factor based on the angle of attack and fed it to the CADC
as a synchro signal.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:pec" title="Jump back to footnote 6 in the text">↩</a></p>
</li>
<li id="fn:synchro">
<p>Internally, a synchro has a moving rotor winding and three fixed stator windings.
When AC is applied to the rotor, voltages are developed on the stator windings depending on the position of the rotor.
These voltages produce a torque that rotates the synchros to the same position.
In other words, the rotor receives power (26 V, 400 Hz in this case), while the three stator wires transmit the position.
The diagram below shows how a synchro is represented schematically, with rotor and stator coils.</p>
<p><a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:synchro" title="Jump back to footnote 7 in the text">↩</a><a href="https://static.righto.com/images/bendix-top/synchro-symbol.jpg"><img alt="The schematic symbol for a synchro." class="hilite" height="240" src="https://static.righto.com/images/bendix-top/synchro-symbol-w250.jpg" title="The schematic symbol for a synchro." width="250"></a></p><div class="cite">The schematic symbol for a synchro.</div><p></p>
</li>
<li id="fn:connectors">
<p>The CADC is wired to the rest of the aircraft through round military connectors.
The front panel interfaces these connectors to the D-sub connectors used internally.
The two pressure inputs are the black cylinders at the bottom of the photo.</p>
<p><a href="https://static.righto.com/images/bendix-top/exterior.jpg"><img alt="The exterior of the CADC. It is packaged in a rugged metal cylinder." class="hilite" height="470" src="https://static.righto.com/images/bendix-top/exterior-w300.jpg" title="The exterior of the CADC. It is packaged in a rugged metal cylinder." width="300"></a></p><div class="cite">The exterior of the CADC. It is packaged in a rugged metal cylinder.</div><p></p>
<p><!-- -->&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:connectors" title="Jump back to footnote 8 in the text">↩</a></p>
</li>
<li id="fn:temperature-servo">
<p>I don't have a blog post on the temperature module yet, but I have a <a href="https://twitter.com/kenshirriff/status/1673795616491667456">description</a> on Twitter and a <a href="https://twitter.com/kenshirriff/status/1678073863723454464">video</a>.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:temperature-servo" title="Jump back to footnote 9 in the text">↩</a></p>
</li>
<li id="fn:k">
<p>The constant K depends on the recovery factor of the temperature probe.
This compensates for a probe where not all of the air's kinetic energy gets transferred
to the probe.
The 1958 description says that with "modern total temperature probes available today", the
K factor can be considered to be 1.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:k" title="Jump back to footnote 10 in the text">↩</a></p>
</li>
<li id="fn:log-temp">
<p>The CADC specification says that it provides the log true free air temperature from -80° to +70° C.
Obviously the log won't work for a negative value so I assume this is the log of the Kelvin temperature (°K).&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:log-temp" title="Jump back to footnote 11 in the text">↩</a></p>
</li>
<li id="fn:coarse">
<p>The CADC specification defines how the parameter values correspond to rotation angles of the synchros.
For instance, for the airspeed synchros, the CADC supports the airspeed range 104.3 to 1864.7 knots.
The coarse and fine outputs are geared in an 11:1 ratio, so the fine synchro will
rotate multiple times over the range to provide more accuracy.
Over this range, the coarse synchro rotates from -18.94° to +151.42° and the
fine synchro rotates from -208.29° to +1665.68°, with 0° corresponding to 300 knots.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:coarse" title="Jump back to footnote 12 in the text">↩</a></p>
</li>
<li id="fn:m-function">
<p>The Mach function is defined in terms of \(P_t/P_s \), with separate cases for
subsonic and supersonic:</p>
<p>\[M&lt;1:\]
\[~~~\frac{P_t}{P_s} = ( 1+.2M^2)^{3.5}\]</p>
<p>\[M &gt; 1:\]</p>
<p>\[~~~\frac{P_t}{P_s} = \frac{166.9215M^7}{( 7M^2-1)^{2.5}}\]</p>
<p>Although these equations are very complicated, the solution is a function of one
variable \(P_t/P_s\) so M can be computed with a single cam.
In other words, the mathematics needed to be done when the CADC was manufactured,
but once the cam exists, computing M is trivial.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:m-function" title="Jump back to footnote 13 in the text">↩</a></p>
</li>
<li id="fn:density-speed">
<p>I'm not sure why the CADC computes air density times speed of sound.
I couldn't find any useful aircraft characteristics that depend on this value, but there must be something.
In acoustics and audio, this product is useful as the "air impedance", but I couldn't determine the relevance for aviation.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:density-speed" title="Jump back to footnote 14 in the text">↩</a></p>
</li>
<li id="fn:reverse-engineering">
<p>While reverse-engineering this system, I have gained more appreciation for the engineering involved.
Converting complicated equations to gearing is a remarkable feat.
But also remarkable is designing the CADC as a three-dimensional object that can be built, disassembled, and repaired,
long before any sort of 3-D modeling was available.
It must have been a puzzle to figure out where to position each differential. Each differential had three gears driving it,
which had to mesh with gears from other differentials.
There wasn't much flexibility in the gear dimensions, since the gear ratios had to be correct and the number of teeth on
each gear had to be an integer.
Moreover, it is impressive how tightly the gears are packed together without conflicting with each other.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:reverse-engineering" title="Jump back to footnote 15 in the text">↩</a></p>
</li>
<li id="fn:refs">
<p>It was very difficult to find information about the CADC.
The official military specification is MIL-C-25653C(USAF). After searching everywhere, I was finally able to
get a copy from the Technical Reports &amp; Standards unit of the Library of Congress.
The other useful document was in an obscure conference proceedings from 1958:
"Air Data Computer Mechanization" (Hazen), Symposium on the USAF Flight Control Data Integration Program, Wright Air Dev Center US Air Force, Feb 3-4, 1958, pp 171-194.&nbsp;<a class="footnote-backref" href="http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html#fnref:refs" title="Jump back to footnote 16 in the text">↩</a></p>
</li>
</ol>
</div>
]]></description>
      <pubDate>Sat, 07 Oct 2023 16:04:00 +0000</pubDate>
      <link>http://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html</link>
      <dc:creator>Ken Shirriff&#39;s blog</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4239221953</guid>
    </item>
    <item>
      <title><![CDATA[]]></title>
      <description><![CDATA[<p><a href="https://apod.nasa.gov/apod/ap231002.html"><img src="https://apod.nasa.gov/apod/calendar/S_231002.jpg" align="left" alt="Sometimes lightning occurs out near space. " border="0"></a> Sometimes lightning occurs out near space. </p><br clear="all">]]></description>
      <pubDate>Tue, 03 Oct 2023 04:31:19 +0000</pubDate>
      <link>https://apod.nasa.gov/apod/ap231002.html</link>
      <dc:creator>APOD</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4233816442</guid>
    </item>
    <item>
      <title><![CDATA[Nine things automated accessibility tests can’t test]]></title>
      <description><![CDATA[<p>With <a href="https://luroapp.com/">Luro</a>, I’ve found myself in the accessibility tooling space. I’m bullish on the need for automated accessibility testing to help designers and developers do a minimum viable good job, establish a baseline experience, and <a href="https://continuousaccessibility.com/">diagnose problems before they are giant problems</a>. Even though automated tests cover 20-30% of WCAG Success Criteria, <a href="https://accessibility.deque.com/hubfs/Accessibility-Coverage-Report.pdf">Deque data suggests those issues are representative of 57.38% of the most common issues found</a>. In my mind, automated accessibility tests have four key tangible benefits:</p>
<ul>
<li>“Passing” puts you in a state of being more accessible than not accessible</li>
<li>Objective numbers raise organizational awareness and create <a href="https://en.wikipedia.org/wiki/SMART_criteria">SMART</a> goals</li>
<li>Reduces surface area of attack from robo-lawyers (Disclaimer: I am not a lawyer)</li>
<li>Knocks out low-hanging fruit so actual accessibility audits can be more impactful</li>
</ul>
<p>Can you trick an automated test and score a 100 with false positives? <a href="https://www.matuzo.at/blog/building-the-most-inaccessible-site-possible-with-a-perfect-lighthouse-score/">Yes</a>, anyone can commit a fraud. Assuming in good faith that most people aren’t trying to trick the machine and want to do a decent job, that’s where I think automated tests have a valid place. However, there are weaknesses to automated testing and I think it’s good to be candid about them. My brain doesn’t map Success Criteria well, but here’s a list of jobs I know automated tests can’t do well.</p>
<ol>
<li>
<p><strong>Focus states.</strong> Can you tab through your site and not get lost? An automated test tool almost certainly can’t do that.</p>
 <details><summary>Although...</summary>
<p>…Microsoft’s Accessibility Insights has a cool feature where it <strong>does</strong> tab through your site to show tab order. Focus states might be scriptable if we had a tool to diff styles of the <code>focus</code> and <code>blur</code> states of <code>document.activeElement</code>, then look for something other than <code>color</code>.</p>
 </details>
</li>
<li>
<p><strong>Captions and transcripts.</strong> Automated tests aren’t going to watch your videos or listen to your podcasts and do quality assurance on your (automated) captions and transcripts, which the deaf community lovingly refer to as “crap-tions”.</p>
 <details><summary>Although...</summary>
<p>…if you used the <code>&lt;video&gt;</code> element and the <code>&lt;track&gt;</code> element, you could at least ensure the site made an attempt to add captions, the same fidelity as testing for <code>alt</code> text.</p>
 </details>
</li>
<li>
<p><strong>Date pickers and typeahead autocompletes.</strong> Automated tests are pretty good at detecting if you wired up your forms up and labels. But if you’re using any form control popularized in the last decade (like typeahead autocomplete), automated tests won’t be able tell you if the ARIA attributes and announcements are all functioning as expected.</p>
 <details><summary>Although...</summary>
<p>…if more people used <code>input[type="datetime"]</code> and <code>&lt;input list&gt; + &lt;datalist&gt;</code> (and you were able to style those 🤞) it’d be easier to support and test.</p>
 </details>
</li>
<li>
<p><strong>Test Interactions.</strong> Automated tests aren’t going to open all your dropdown menus and modals on your site and try to use them, so it can’t guarantee your ARIA is setup right, your light dismiss actions work, and your keyboard traps all function.</p>
 <details><summary>Although...</summary>
<p>…if more people start using the new HTML <code>popover</code> and <code>popovertarget</code> attributes, this would be. Using the <code>hidden</code> attribute instead of leveraging lots of DOM rewrites would make code more scannable. And if you use <code>&lt;dialog&gt;</code> the predictability/testability goes up considerably.</p>
 </details>
</li>
<li>
<p><strong>Big tap targets.</strong> <a href="https://www.w3.org/WAI/WCAG21/Understanding/target-size.html">WCAG 2.5.5</a> wants at least a <code>44px ⨉ 44px</code> tap target to help people without fine motor control. Automated tests I’ve run (currently) don’t expose this issue.</p>
 <details><summary>Although...</summary>
<p>…I know Lighthouse’s UX report flags small tap areas, so it seems possible to measure interactive elements and flag this. Also <a href="https://www.stubbornella.org/2023/09/17/expanding-your-touch-targets/">browser math may allow for smaller targets</a> because they split the difference.</p>
 </details>
</li>
<li>
<p><strong>200%-400% zoom.</strong> Automated tests aren’t going to zoom your site in and see what broke. That’s a you job.</p>
 <details><summary>Although...</summary>
<p>…a test might be able to detect use of <a href="https://buildexcellentwebsit.es/">fluid type and relative CSS</a>. Or coming from the opposite angle, is it possible to generate a list of common CSS code smells (e.g. declaring <code>width</code>) and issue warnings for those?</p>
 </details>
</li>
<li>
<p><strong>Seizure-inducing animations.</strong> <a href="https://www.w3.org/WAI/WCAG21/Understanding/seizures-and-physical-reactions">WCAG 2.3</a> is all about animations triggering seizures. I personally don’t get seizures (I have friends that do) but over-use of animation does give me a day-ruining migraine. If you’re going to play in the seas of motion, you need to understand sea sickness.</p>
 <details><summary>Although...</summary>
<p>…this isn’t super testable but transitions and animations that use CSS might be able to provide some guardrails or sniff out <code>prefers-reduced-motion</code> alternatives. Or if you can detect risky animations and at least provide a warning.</p>
 </details>
</li>
<li>
<p><strong>Confusing UX.</strong> Do you have a button controls a thing above it but it’s unannounced and unfocused? Automated tests can’t detect bad aural or braille UX, nor can they detect bad visual UX that could frustrate a user with a cognitive disability.</p>
 <details><summary>Although...</summary>
<p>…with more AT support for <code>aria-controls</code> it might make it easier to detect if an element controls an element before itself in the DOM and raise a flag. Not perfect, but a start. More HTML elements and controls would help this as well.</p>
 </details>
</li>
<li>
<p><strong>Ability to complete a task.</strong> One issue that’s most frustrating to blind folks I’ve talked with is when you get real far into a process like checking out and then –for no clear reason– get stopped towards the end. This is frustrating when booking a flight, but imagine it happens every day for even mundane tasks like ordering a pizza or important tasks like registering for college. Automated tests won’t do an end-to-end test by loading up a shopping cart and running a credit card unless you configure a custom system to do that.</p>
 <details><summary>Although...</summary>
<p>…if you stand page-by-page tests next to each, you’ll have a better idea of where you’re starting from.</p>
 </details>
</li>
</ol>
<p>This is a short, incomplete list. I could probably do a handful of posts like this to cover other jobs automated tests can’t test. But did you notice a trend? If you have good, declarative HTML and CSS as a foundation, the amount of tasks and success criteria you can statically analyze goes up considerably. Probably not to a degree you could sign off on a site being 100% accessible (I don’t think automated tests will ever give you that confidence) but enough to tell you if you messed something obvious up. And that’s what most people need.</p>
<p>In my mind, automated tests are a first step in the journey to creating accessible experiences. They are also the first line of defense in detecting regressions. With the low-hanging fruit managed and out of the way, you’re able to apply more time, attention, and education towards harder problems. Let’s leverage computers at the jobs they’re good at and acknowledge where humans need to step in and right the ship.</p>
<p>I will wrap this post up with my standard appeal for more native elements like <code>&lt;tabs&gt;</code> to make web development even more idiot-proof (for people like me).</p>
<p>Follow-up: <a href="https://shoptalkshow.com/585/">Talked about his on ShopTalk Ep585</a>.</p>
]]></description>
      <pubDate>Mon, 02 Oct 2023 22:33:00 +0000</pubDate>
      <link>https://daverupert.com/2023/10/nine-a11y-jobs-where-robots-suck/</link>
      <dc:creator>daverupert.com</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4233584849</guid>
    </item>
    <item>
      <title><![CDATA[CSS Nesting and the Cascade]]></title>
      <description><![CDATA[<p>You might have noticed that <a href="https://webkit.org/blog/14532/release-notes-for-safari-technology-preview-179/">Safari Technology Preview 179</a> includes an update to CSS Nesting that adds support for the new “relaxed parsing behavior”.</p>
<p>What does this mean? It means you no longer have to worry about whether or not each nested selector starts with a symbol. It means that now nested CSS like this will work just fine:</p>
<pre><code class="CSS"><span class="keyword">article</span> {
  <span class="attribute">h1</span> { 
    <span class="attribute">font-size</span>: <span class="number">1.8</span><span class="identifier">rem</span>;
  }
  <span class="keyword">p</span> {
    <span class="attribute">font-size</span>: <span class="number">1.2</span><span class="identifier">rem</span>;  
  }
}
</code></pre>
<p>(If you didn’t realize there was a previous limitation and are curious about what it was, you can read about it in <a href="https://webkit.org/blog/13813/try-css-nesting-today-in-safari-technology-preview/">Try out CSS Nesting today</a>, from Feb 2023. But also, you can ignore this limitation since it’s going away soon.)</p>
<p>This is fantastic news. After many months of debates over how CSS Nesting could work, we ended up with the best possible solution. In the end, browser engineers figured out how to make the parsing engine handle nested <a href="https://developer.mozilla.org/docs/Web/CSS/Type_selectors">type selectors</a> (element selectors).</p>
<p>How is <a href="https://caniuse.com/css-nesting">browser support</a>? In late August 2023, Firefox 117 shipped support for Nesting using the relaxed parsing behavior from the beginning. Safari 16.5 shipped the original version of Nesting in May 2023, and Safari Technology Preview 179 brought the update to the relaxed parsing behavior in September 2023. Chrome is tracking their coming update in <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=1427259">this issue</a>.</p>
<p>By the way, any code written with an <code>&amp;</code> will continue to work. In fact, <code>&amp;</code> is an important tool for CSS like this:</p>
<pre><code class="CSS"><span class="keyword">ul</span> {
  <span class="attribute">padding-left</span>: <span class="number">1em</span>;
  <span class="attribute">article</span> &amp; {
    <span class="attribute">padding-left</span>: <span class="number">0</span>;
  }
}
</code></pre>
<p>Which is the equivalent of:</p>
<pre><code class="CSS"><span class="keyword">ul</span> {
  <span class="attribute">padding-left</span>: <span class="number">1em</span>;
}
<span class="keyword">article</span> <span class="keyword">ul</span> {
  <span class="attribute">padding-left</span>: <span class="number">0</span>;
}
</code></pre>
<p>The <code>&amp;</code> gives you a way to say “this is where I want the nested selector to go”. It still does the same job, it’s simply no longer required before an element selector.</p>
<h2>Another question</h2>
<p>There is one more thing about CSS Nesting that’s still up for debate. We still have time to make the change if we do so <em>very</em> soon.</p>
<p>Let us ask you a question. If you wrote this nested CSS, which color would you want the article text to be?</p>
<pre><code class="CSS"><span class="keyword">article</span> {
  <span class="attribute">color</span>: <span class="identifier">blue</span>;
  @<span class="attribute">supports</span> (<span class="attribute">text-shadow</span>: <span class="number">0</span> <span class="number">0</span>) {
    <span class="identifier">color</span>: <span class="identifier">red</span>;
  }
  <span class="keyword">color</span>: <span class="keyword">yellow</span>;
}
</code></pre>
<p>Do you want it to result in this unnested equivalent, Option 1, where <code>color: red</code> wins?</p>
<pre><code class="CSS"><span class="keyword">article</span> {
  <span class="attribute">color</span>: <span class="identifier">blue</span>;
  <span class="attribute">color</span>: <span class="identifier">yellow</span>; 
}
<span class="keyword">@supports</span> (<span class="keyword">text-shadow</span>: 0 0) {
  <span class="attribute">article</span> {
      <span class="attribute">color</span>: <span class="identifier">red</span>;
  }
}
</code></pre>
<p>Or do you want it be computed to be this equivalent, Option 2, where <code>color: yellow</code> wins?</p>
<pre><code class="CSS"><span class="keyword">article</span> {
  <span class="attribute">color</span>: <span class="identifier">blue</span>;
}
<span class="keyword">@supports</span> (<span class="keyword">text-shadow</span>: 0 0) {
  <span class="attribute">article</span> {
      <span class="attribute">color</span>: <span class="identifier">red</span>;
  }
}
<span class="keyword">article</span> {
  <span class="attribute">color</span>: <span class="identifier">yellow</span>; 
}
</code></pre>
<p>Currently, the <a href="https://drafts.csswg.org/css-nesting/">Nesting specification</a> says Option 1 is correct, and so that’s how it’s implemented in browsers. This is how all of the preprocessors work: Less (<a href="https://lesscss.org/less-preview/#eyJjb2RlIjoiI2xpYigpIHtcbiAgICAuY29sb3JzKCkge1xuICAgICAgQHByaW1hcnk6IGJsdWU7XG4gICAgICBAc2Vjb25kYXJ5OiBncmVlbjtcbiAgICB9XG4gICAgLnJ1bGVzKEBzaXplKSB7XG4gICAgICBib3JkZXI6IEBzaXplIHNvbGlkIHdoaXRlO1xuICAgIH1cbiAgfVxuICBcbiAgLmJveCB3aGVuICgjbGliLmNvbG9yc1tAcHJpbWFyeV0gPSBibHVlKSB7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIGhlaWdodDogKCR3aWR0aCAvIDIpO1xuICB9XG4gIFxuICAuYmFyOmV4dGVuZCguYm94KSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAjbGliLnJ1bGVzKDFweCk7XG4gICAgfVxuICB9IiwiYWN0aXZlVmVyc2lvbiI6IjQueCJ9">demo</a>), Sass (<a href="https://www.sassmeister.com/">demo</a>), Stylus (<a href="https://runkit.com/kizu/648cbbea05e821000873adde">demo</a>), PostCSS (<a href="https://sneakertack.github.io/postcss-playground/">demo</a>), and more. Perhaps matching over fifteen years of third-party tooling is the best way to go.</p>
<p>But many people find this to be an <a href="https://kilianvalkhof.com/2023/css-html/the-gotchas-of-css-nesting/">unexpected gotcha</a>, since it seemingly reorders styles. It makes something that’s earlier in the cascade override something that’s later in the cascade. These folks expect Option 2 to be how it works, where the fundamentals of the cascade stay fully intact — when two declarations have the same specificity, the later one always wins.</p>
<p>We ran a survey to find out what you want. The results were remarkable consistent across the first 48 hours.</p>
<p>Option 1: 38%<br>
Option 2: 62%</p>
<p>Your input helps the CSS Working Group <a href="https://github.com/w3c/csswg-drafts/issues/8738">make a final decision</a> on how code like this should work. It’s still not fully clear if Option 2 is possible, but before embarking on a deeper effort to find out, it helps to know what web developers want.</p>
<p>Thanks for participating!</p>
]]></description>
      <pubDate>Thu, 28 Sep 2023 17:00:46 +0000</pubDate>
      <link>https://webkit.org/blog/14571/css-nesting-and-the-cascade/</link>
      <dc:creator>WebKit</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4229050604</guid>
    </item>
    <item>
      <title><![CDATA[The Storm Pilot]]></title>
      <description><![CDATA[
        <p><img src="https://kottke.org/plus/misc/images/santiago-borja-01.jpg" width="1000" height="668" border="0" alt="photo of a storm cloud lit up by lightning"></p>

<p><img src="https://kottke.org/plus/misc/images/santiago-borja-02.jpg" width="1000" height="668" border="0" alt="photo of a dramatic bolt of lightning emerging from a storm cloud"></p>

<p>Santiago Borja is an airline pilot who takes stunning photos of storms and clouds from the flight deck of his 767. Definitely offers up a different perspective than the typical storm chaser photography. You can find his work <a href="https://www.santiagoborja.com/portfolio/">on his website</a>, <a href="https://www.instagram.com/santiagoborja/">on Instagram</a>, and <a href="https://www.amazon.com/exec/obidos/ASIN/3961711089/ref=nosim/0sil8">in book form</a>.</p>

 <strong>Tags:</strong> <a href="https://kottke.org/tag/clouds">clouds</a> · <a href="https://kottke.org/tag/flying">flying</a> · <a href="https://kottke.org/tag/photography">photography</a> · <a href="https://kottke.org/tag/Santiago%20Borja">Santiago Borja</a>
    ]]></description>
      <pubDate>Thu, 28 Sep 2023 22:53:02 +0000</pubDate>
      <link>https://kottke.org/23/09/the-storm-pilot</link>
      <dc:creator>kottke.org</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4229359321</guid>
    </item>
    <item>
      <title><![CDATA[The Rise and Fall of ESPN’s Leverage]]></title>
      <description><![CDATA[<p>On December 12, 1975, RCA Corporation launched its Satcom I communications satellite; the primary purpose was to provide long-distance telephone service between Alaska and the continental U.S. RCA had hopes, though, that there might be new uses for its capacity; to that end the company had listed for sale a 24-hour transponder that covered the entire United States, only to discontinue the offering after failing to find a single buyer.</p>
<p>Three years later Bill Rasmussen, the communications manager for the Hartford Whalers, was let go from his job; he had the idea of doing the same coverage he did for the team, but independently, along with other Connecticut sports, leveraging the then-expanding cable access TV facilities in Connecticut. These facilities existed to capture broadcast signals from New York and Boston using large antennas and deliver them to people’s houses; the cables, though, had capacity to carry more channels at basically zero cost, including Rasmussen’s proposed Connecticut sports network.</p>
<p>It was in the course of canvasing Connecticut cable providers that Rasmussen was introduced to the concept of satellite communications, and Al Parinello, a manager at RCA. At first Rasmussen pitched his Connecticut sports network idea, and Parinello was confused: satellites covered the entire country, so why was Rasmussen only talking about a single state? Parinello told James Andrew Miller in <a href="https://www.hachettebookgroup.com/titles/tom-shales/those-guys-have-all-the-fun/9780316125765/?lens=little-brown">Those Guys Have All The Fun</a>:</p>
<blockquote><p>
  I can still remember the conversation. Bill said, “Let me get this straight. You mean to tell me, for no extra money — for no extra money! — we could take this signal and beam it anywhere in the country?” And I said, “That’s right.” And then he asked again, “Anywhere in the country?” And I said, “Anywhere.” I remember we went back and forth like this a couple times. Bill and Scott were looking at each other, and they might have been getting sexually excited, I’m not sure. But I can tell that they were very, very excited.
</p></blockquote>
<p>It was in the course of that conversation that Parinello mentioned the unbought 24-hour transponders, which would let Rasmussen send a signal around the entire United States for less than it could cost him to buy access on those Connecticut cable companies; he bought it the next day, and only then set out to create what would become ESPN.</p>
<p>In other words, the very idea for ESPN sprung from:</p>
<ol>
<li>The fact that RCA had invested massive capital costs in the Satcom I satellite and thus:</li>
<li>Was selling access to that satellite at a relatively low price, given that said access had zero marginal costs, which meant:</li>
<li>Rasmussen could leverage that access to reach every home in America, or at least every cable operator, for an even lower price than it cost to reach only the state of Connecticut.</li>
</ol>
<p>Massive fixed costs resulting in zero distribution costs and massive scalability on a platform that is inherently indifferent to the data it is distributing might sound familiar: it’s the same economic forces undergirding the Internet, and it speaks to those forces’ power that while they may have made ESPN in the first place, they threaten to destroy it in the long run.</p>
<h3>ESPN and the Advent of Affiliate Fees</h3>
<p>The first ESPN broadcast was a year later, on September 7, 1979; in the intervening time Rasmussen had made a deal with the NCAA, which oversaw a host of untelevised sports, to televise the early rounds of the men’s basketball tournament along with several other less popular sports. The other important deal was with Anheuser-Busch, which signed an advertising contract for $1.3 million. The idea was to convince cable distributors around the country to pick up the free ESPN signal, and to make up the cost with advertising; 1.4 million homes had access to that first broadcast.</p>
<p>In another foreshadowing of the Internet, ESPN soon realized that providing ongoing content monetized with nothing but advertising was good for growth but bad for actually making money; a year later the company reached 6 million homes and had a new deal with Anheuser-Busch that didn’t come close to covering its costs. Rasmussen was also out, as new management sought to rework its deal with the NCAA and, most importantly, the cable operators.</p>
<p>Then, in 1982, CBS Cable failed, leading Wall Street to question the whole business model; this didn’t affect ESPN, which was still mostly owned by Getty Oil, with ABC as a new investor and partner, but it did affect the cable companies, who saw their stocks plummet. The last thing they needed was for ESPN to go out of business too; Roger Werner, ESPN’s then CEO, told Miller:</p>
<blockquote><p>
  We went to the market with this sort of survival pitch essentially as follows: If you come in voluntarily and do a new deal with us, we’ll start your rate at four cents in 1983 or ’84 and then we’ll go to six cents the next year, then eight cents. Either rip up the old contract and have some protection for whatever the term of your new affiliation agreement is going to be, or pay the prevailing rate when your old deal expires. There was the specter that if we were still around—and we intended to be around—we’d be a much more expensive service…</p>
<p>  Essentially we were saying, guys, if you’re not interested in paying a fee and you’re really not interested in stepping up to the plate in the near term, tell us now and we’ll pull the plug. Nobody really wanted to deal with the idea that they were going to be paying for a product that had been free, but actually my recollection of this is that it was very stress-filled, it was very contentious.
</p></blockquote>
<p>It worked. Suddenly ESPN had <em>two</em> business models: advertising and a per-subscriber fee, whether or not they watched ESPN. Andy Brilliant, the then-general counsel told Miller:</p>
<blockquote><p>
  At the end of the day, they blinked and agreed to pay us a dime per household. We breathed a massive sigh of relief. It was the first time we actually received validation that our service was worth something to the cable operators. I think that really put us on the map for good.
</p></blockquote>
<p>It also changed how ESPN thought about programming. Then-President of ESPN Bill Grimes told Miller:</p>
<blockquote><p>
  This was, like, ’83; at that time we had boxing one night and skiing, tennis, and a whole bunch of other stuff on the schedule. We were talking one day about the fact that there was a lot of college basketball becoming available. I said, “You know, we could get basketball six nights a week. Our weekly ratings in prime would really go up.” But Roger [Werner] said, “That’s true, we could probably get a better rating. But they’re only numbers. We’re now in the business of subscriber fees. So what we want is as diverse programming as possible. Even if a program like skiing or auto racing gets a lower rating, there are people who will never watch a basketball game. So we should now think a little bit differently.” This was totally contrary to what I had grown up with in the business — rating, rating, rating. Get the highest ratings we can get. But Roger was right. We didn’t want all our ratings from one thing, because it’s only those hundred people who watch the skiing event that’ll yell like hell if the cable operators ever do decide to drop ESPN. His belief that sacrificing a little bit of ratings to have greater variety was going to create more rabid fans of ESPN was absolutely right.
</p></blockquote>
<p>Werner was right: ESPN could raise its affiliate fees, and cable operators that tried to drop them in protest were overrun with complaints, quickly adding the channel back. By 1986 ESPN was charging around 27 cents per subscriber, and then they signed a deal with the NFL, adding a 9 cent surcharge to their fees; cable operators could choose to not show the game (and avoid the surcharge), but within weeks nearly every cable operator realized their customers would not tolerate not having access to the NFL. George Bodenheimer, who would later become President of ESPN, told Miller this anecdote about the surcharge:</p>
<blockquote><p>
  We set a deadline and we told everybody there was a benefit to committing to us then, but those who didn’t sign by midnight of the deadline date would pay a higher price. I remember pleading with one particular cable operator who was my account who said he wasn’t going to agree to sign on. His name was Leonard Tow.
</p></blockquote>
<p>Tow was in the process of building what is now known as Frontier Communications; Grimes picked up the story:</p>
<blockquote><p>
  Leonard comes in, and you know what the first thing he says about the deal was? “We can’t afford to do this.” I said, “People not seeing the games aren’t going to like it.” Leonard said, “I know football’s popular, but we’re already paying you guys a subscriber fee. We’ll just put on some other local programming the night of the game.” I reminded him that if he changed his mind after tomorrow, he would have to pay a 20 percent incremental fee, a premium, but he just kept saying nope. On the way out I said, “Leonard, look, we’re really successful now and we’re going to be more successful in the future. It would be awful not having you a part of this, but I really believe you’re going to wind up changing your mind. Just wait until people find out you won’t have the games.” He disagreed and we said good-bye. One week later, he called and signed on. And, oh yeah, he paid the extra 20 percent.
</p></blockquote>
<p>ESPN paid $153 million over three years for those NFL rights; the first broadcast reached 45 million homes, earning the network an incremental $4.05 million/month, just about enough to cover the NFL rights. What was more important is that the NFL attracted new subscribers which paid ESPN’s full fees, which amounted to over $12 million a month. Moreover, ESPN also got rights from the NFL for unlimited access to highlights: that fueled studio shows like <em>NFL Primetime</em>  and <em>SportsCenter</em> that cost very little to produce, yet both attracted large audiences (for advertising), and made the NFL and other sports even more popular. The flywheel was fully engaged.</p>
<h3>Charter vs. Disney</h3>
<p>Over the last decade the story of ESPN specifically, Disney more broadly, and cable as a whole has been the slow but steady disintegration of that flywheel, culminating in the current standoff between Charter and Disney. From the <a href="https://www.wsj.com/business/media/why-spectrum-customers-cant-watch-the-u-s-open-and-college-football-cfc24af9">Wall Street Journal</a>:</p>
<blockquote><p>
  Charter Communications subscribers are caught in the middle of a philosophical fight between the cable giant and Disney, parent company of ESPN, ABC and several other networks. Disney-owned networks on Thursday went dark for customers of Charter’s Spectrum cable systems, which has nearly 15 million video subscribers across the country including the New York and Los Angeles markets. As a result, sports fans who are Charter subscribers are losing access to college football and the U.S. Open. And the National Football League season is about to begin: ESPN’s “Monday Night Football” starts Sept. 11. Other channels no longer available to Charter include ABC-owned TV stations and cable networks FX, Disney Channel, Freeform and National Geographic.
</p></blockquote>
<p>Channels going dark in the midst of an affiliate fee dispute aren’t new: indeed, they were how ESPN managed to extract per-subscriber fees in the first place. And, for 40 years, ESPN usually won, including a standoff with YouTube TV in late 2021; I wrote at the time in <a href="https://stratechery.com/2021/the-creator-opportunity-the-value-of-abundance-tv-and-sports-follow-up/">an Update</a>:</p>
<blockquote><p>
  It appears that Disney decisively won its stand-off with Google; YouTube TV dropped Disney channels for about two days, only to come to an agreement that Disney characterized as “fair terms that are consistent with the market”; this strongly suggests that Google saw sufficient cancellations in that two-day window that it caved on its demands to get a lower rate. This further reaffirms just how powerful the ESPN bundle is (and Disney’s bundle generally).
</p></blockquote>
<p>When Disney went dark on Charter last week, I initially assumed a similar outcome; then came the Charter investor call the next morning, and <a href="https://ir.charter.com/static-files/05f899dd-7ef3-40d8-84c1-f16a7acfe318">this slide</a>:</p>
<p><a href="https://ir.charter.com/static-files/05f899dd-7ef3-40d8-84c1-f16a7acfe318"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-1.png?resize=640%2C478&amp;ssl=1" alt="Charter's investor slide about video" width="640" height="478" class="aligncenter size-full wp-image-11504" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-1.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-1.png?resize=300%2C224&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-1.png?resize=1024%2C765&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-1.png?resize=768%2C574&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-1.png?resize=844%2C630&amp;ssl=1 844w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>The most important sentence is in the light blue box on the far right: “The video product is no longer a key driver of financial performance.” This is the culmination of a 25-year shift in business model for the cable companies: those initial investments in wires in the ground to provide small communities access to big city TV broadcasts turned out to be very well suited to providing broadband Internet access. Remember the lesson of RCA and ESPN’s founding: the digital transmission of information is inherently indifferent to the data being distributed. In the case of cable the initial use case was digital TV signals, but the exact same cable could also carry packets running the TCP/IP protocol.<sup id="rf1-11503"><a href="https://stratechery.com/2023/the-rise-and-fall-of-espns-leverage/#fn1-11503" title="Yes, I know I just said “protocol” twice" rel="footnote">1</a></sup></p>
<p>Of course for a long time it was very profitable to carry both, along with voice: cable companies offered “triple play” bundles that included TV, Internet, and telephony. Over time the telephony part dropped off, as people used mobile phones exclusively; cable carriers have since moved into the mobile carrier space as well, fueled by profits from TV and broadband Internet. What made the Internet part the most valuable, though, is that the cable companies didn’t need to pay for content: everything was just a packet.</p>
<p>That, though, was also the problem: some of those packets reformed themselves as Netflix video streams, which ate into time spent watching TV. Worse, Netflix’s stock was rising and rising as it acquired ever more customers, much to the chagrin of Hollywood, which felt entitled to those multiples given they were the ones producing the most compelling content. That resulted in the fateful decision to start their own streaming services, impoverishing the TV bundle; Charter’s investor presentation included “The Impoverishment Cycle” created by MoffettNathanson:</p>
<p><a href="https://ir.charter.com/static-files/05f899dd-7ef3-40d8-84c1-f16a7acfe318"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-2.png?resize=640%2C479&amp;ssl=1" alt="&quot;The Impoverishment Cycle&quot; from MoffettNathanson, via Charter" width="640" height="479" class="aligncenter size-full wp-image-11505" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-2.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-2.png?resize=300%2C224&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-2.png?resize=1024%2C766&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-2.png?resize=768%2C574&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/09/disneycharter-2.png?resize=843%2C630&amp;ssl=1 843w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>What Disney and all of the rest forgot was the lesson first imparted by Werner at the dawn of affiliate fees: retaining customers means offering content for everyone; in the case of the cable bundle, that meant having compelling programming above-and-beyond sports.</p>
<p>The second lesson Disney forgot was why that NFL deal made sense for ESPN at the time, even though the surcharge ESPN charged cable providers was only projected to barely cover the deal: high end sports deals drove customer demand, but the real money was made on (1) everyone who didn’t care about football and (2) cheap content like SportsCenter. The latter, though, has also been impoverished by the Internet; I noted last year <a href="https://stratechery.com/2022/house-of-the-dragon-and-creative-programming-the-big-tens-deal-disneys-new-prices/">when the Big Ten signed a TV deal that excluded ESPN</a>:</p>
<blockquote><p>
  The Big Ten’s exclusion of ESPN really highlights the degree to which social media has supplanted ESPN’s previous tentpole shows like SportsCenter; ESPN used to get discounts on rights deals because to be excluded from SportsCenter meant publicity death. That’s no longer the case.
</p></blockquote>
<p>The former, meanwhile, is a reminder that while ESPN has generally made money from rights deals, particularly for smaller sports that filled the schedule and inspired niche fans to badger the cable companies, the biggest properties — particularly the NFL — have always been cognizant of their worth and willing to extract their full value. Disney, in turn, can only maintain ESPN profitability by passing on those rights fees to cable distributors, who must in turn pass them on to their customers.</p>
<p>The third lesson Disney has forgotten is the most counter-intuitive takeaway of this battle: the worst thing that has happened to the company’s negotiating position is that ESPN is already available on the Internet.</p>
<h3>The Phases of Cable TV</h3>
<p>The cable TV industry has gone through four distinct phases in terms of competition:</p>
<p><strong>Phase 1: Non-Consumption</strong></p>
<p>The first phase was the time in ESPN’s history I detailed above: burgeoning cable TV services were running cables to every home in America and trying to convince customers to sign-up. In this case their competition was non-consumption: a lot of people didn’t have cable, and the cable companies wanted them to sign up for service. ESPN was a particularly unique asset in this regard thanks to its provision of sports content that wasn’t available elsewhere — indeed, until the NFL deal, most of the content had never been available at all. This certainly led to some bruising fights between ESPN and the cable companies over affiliate fees, but it’s always easier to come to an agreement when the pie is growing.</p>
<p><strong>Phase 2: Satellite</strong></p>
<p>The second phase was the 90s emergence of DirecTV and Dish Network, which offered the same channels as cable TV but via a small satellite dish you could mount on your roof or porch. This was a more involved installation process, but ultimately cheaper thanks to the fact that DirecTV and Dish didn’t need to put an actual cable in the ground. This was also good news for ESPN because now there was an alternative to traditional cable TV: if a cable provider didn’t want to accept higher affiliate fees then ESPN could withhold service, trusting its viewers would punish the cable provider by moving to satellite (which means they would probably be gone forever).</p>
<p><strong>Phase 3: IPTV</strong></p>
<p>By the 2000s the satellite threat to cable was fading because satellite was TV only: if a customer had both Internet and TV via their cable provider than it was much harder to switch. Remember, though, that it’s all data in the end; thus the 2000s saw the rise of IPTV offerings from traditional telecom providers like AT&amp;T and Verizon. They too saw salvation for their own fading telephony business in providing broadband Internet, but providing a competitive offering to cable meant offering TV as well. And, thanks to the Internet, they could simply provide said TV using the TCP/IP protocol.</p>
<p>The decade that followed was probably the time of maximum ESPN leverage: it was easier for customers to switch from the cable bundle to the telecom bundle than it was to install an extra satellite dish; it’s no surprise that this was the decade when ESPN’s aggressiveness in terms of both acquiring sports rights and in raising affiliate fees increased; it was also the peak of ESPN’s relative share of Disney profits.</p>
<p><strong>Phase 4: vMVPDs</strong></p>
<p>The virtual multichannel video programming distributor (vMVPD) era kicked off in 2015 with <a href="https://stratechery.com/2015/daily-update-sling-tv-interview-makes-15-million-rokus-smart-tv-play/">the launch of Sling TV</a>. This took the IPTV trend in Phase 3 to its logical endpoint: instead of needing a box to display IPTV signals, you could simply use an app. vMVPD’s have had a big impact on the landscape in two ways: first, they significantly diminished the cord-cutting trend for years as they both captured cord-cutters and also non-consumers, and second, <a href="https://stratechery.com/2023/the-phoenix-suns-go-over-the-air-fans-and-franchise-valuation-attention-and-customer-acquisition/">they decimated regional sports networks</a> that had long increased affiliate fees even more aggressively than ESPN. I wrote in <a href="https://stratechery.com/2023/what-the-nba-can-learn-from-formula-1/">What the NBA Can Learn From Formula 1</a>:</p>
<blockquote><p>
  There just aren’t that many SuperFans of a single team, yet regional networks cost more than anything outside of ESPN — more in some markets. This worked in a world where everyone got cable by default, but remember that cable is losing far more customers than pay-TV as a whole, thanks to the rise of the aforementioned virtual pay-TV providers. Virtual pay-TV providers don’t have a customer base to defend, or infrastructure costs to leverage: they distribute via the Internet that people already pay for. To that end, they don’t have to carry everything, and regional sports networks were the most obvious thing to drop: this lets virtual pay-TV providers have a lower price than cable by virtue of excluding content that most people don’t want.
</p></blockquote>
<p>Still, this didn’t seem to affect ESPN, as exemplified by the fact they appear to have won their negotiation with YouTube TV in 2021. In fact, though, this dispute with Charter is showing why ESPN may be a loser as well. Go back to the issue of cable customer churn in response to ESPN’s lack of availability; here’s how it manifested in each phase:</p>
<ul>
<li>In Phase 1, a churned customer meant less leverage on expensive buildouts, and pressure from Wall Street.</li>
<li>In Phase 2, a churned customer went to the effort of getting satellite and probably never came back.</li>
<li>In Phase 3, a churned customer would not just change their TV provider, but also their broadband provider, and remember that broadband was becoming the cable companies’ biggest business.</li>
</ul>
<p>In Phase 4, though, a churned TV customer is still a broadband customer, because the Internet is a precondition for watching the vMVPD! Sure, a customer could be so incensed that they also change their Internet provider, but that is completely unnecessary and, given the inconvenience involved, highly unlikely.</p>
<p>That means that ESPN, for the first time in its history, has no leverage over the cable companies. Indeed, <a href="https://www.moffettnathanson.com/">MoffettNathanson</a> reported that Charter is actively helping customers move to vMVPDs:</p>
<blockquote><p>
  For Charter, the uncomfortable truth is that it just doesn’t matter all that much. Yes, they probably do still make some money on video. But not much, and they recognize that linear video is going to be a rapidly declining line of service under even the most optimistic scenarios, so the issue is arguably nothing more than when, not if, video goes away. Charter has already established a referral capability for customers to switch them to YouTube TV or FuboTV (predictably, they haven’t mentioned referring customers to Sling TV or DirecIV Now, and they presumably wouldn’t steer anyone to Hulu Live if the trigger was a dispute with Disney).</p>
<p>  Notably, the first NFL Monday Night Football game (ESPN) features two Spectrum-market teams; the New York Jets and the Buffalo Bills. To handle a potential rush of customers anxious about missing the game, Charter is preparing a one-touch QR code that would not only create a new YouTube TV or Fubo subscription, but would also downgrade from a Spectrum video bundle with a single click…Disney may learn the hard way that it’s tough to win a negotiation with a counterparty that has nothing to lose.
</p></blockquote>
<p>This truth may be uncomfortable for Charter; it ought to be sobering for Disney, particularly since the company, along with the rest of Hollywood, was the one responsible for destroying the value of TV to companies like Charter who were built on it.</p>
<h3>The Case for Re-Bundling</h3>
<p>Once-and-current Disney CEO Bob Iger has been <a href="https://stratechery.com/2023/bob-iger-on-cnbc-the-end-of-linear-tv-espn-and-strategic-partnerships-and-apple/">talking a lot recently</a> about ESPN’s inevitable shift to going over-the-top, including stating that he has a particular date in mind; this showdown with Charter and the revelation of ESPN’s dramatic diminishment in its negotiating position is a reminder that declining businesses often don’t have the luxury of dictating their future.</p>
<p>So what does that future look like?</p>
<p>First, it’s very possible — perhaps even likely — that Charter and Disney come to an agreement. As the MoffettNathanson note observes, Charter probably still is making some money on video, and it is also both a customer acquisition tool and churn mitigation factor for their broadband business, and a part of the modern triple play bundle (with mobile). Disney, meanwhile, along with all of the other Hollywood studios, still needs the substantial amount of cash that they receive from cable TV providers (this is particularly pressing for Disney given that they still have to pay for sports rights). Yes, they also earn money from vMVPDs like YouTube TV, but not every customer will seamlessly transition.</p>
<p>To that end, the company that ought to give here is Disney: according to that Wall Street Journal article Charter is willing to accept the reported $1.50 increase in affiliate fees Disney is demanding if they receive the right to bundle the ad-supported versions of Disney+. Charter argues that it is only right that Disney re-add its most valuable entertainment content to the pay-TV bundle, and frankly, I think they have a point.</p>
<p>More importantly for Disney, though, is that cable TV providers like Charter remain potent go-to-market entities — decades of servicing customers in their homes has meant a massive build-up in everything from stores to local sales to customer support — and that could be very helpful as Disney seeks to acquire more marginal customers. More importantly, though, I think it is in the long-term interest of the streaming services to be part of a bundle. I wrote last year in <a href="https://stratechery.com/2022/cables-last-laugh/">Cable’s Last Laugh</a>:</p>
<blockquote><p>
  The cable companies are better suited than almost anyone else to rebundle for real. Imagine a “streaming bundle” that includes Netflix, HBO Max, Disney+, Paramount+, Peacock, etc., available for a price that is less than the sum of its parts…Owning the customer may be less important than simply having more customers, particularly if those customers are much less likely to churn. After all, that’s one of the advantages of a bundle: instead of your streaming service needing to produce compelling content every single month, you can work as a team to keep customers on board with the bundle.
</p></blockquote>
<p>What Charter is proposing is a bit different — they want to bundle traditional TV with streaming services — and I get why Disney is resistant: there are a lot of people paying for both traditional TV and Disney+ (and Hulu and ESPN+); giving Charter bundling rights would cannibalize some amount of revenue. Moreover, it would also mean the end of whatever grand plans Disney might have about offering its own bundle, or cutting out the cable companies’ margin once-and-for-all. At some point, though, Disney and everyone else in Hollywood has to wake up to reality; I wrote in <a href="https://stratechery.com/2023/hollywood-on-strike/">Hollywood on Strike</a>:</p>
<blockquote><p>
  The broader issue is that the video industry finally seems to be facing what happened to the print and music industry before them: the Internet comes bearing gifts like infinite capacity and free distribution, but those gifts are a poisoned chalice for industries predicated on scarcity. When anyone could publish text, most text-based businesses went from massive profitability to terminal decline; when anyone could distribute music the music industry could only be saved by tech companies like Spotify helping them sell convenience in place of plastic discs.</p>
<p>  For the video industry the first step to survival must be to retreat to what they are good at — producing content that isn’t available anywhere else — and getting away from what they are not, i.e. running undifferentiated streaming services with massive direct costs and even larger opportunity ones. Talent, meanwhile, has to realize that they and the studios are not divided by this new paradigm, but jointly threatened: the Internet is bad news for content producers with outsized costs, and long-term sustainability will be that much harder to achieve if the focus is on increasing them.
</p></blockquote>
<p>Re-bundling is better for everyone; it’s Disney’s fault that the entities best-placed to pull that off no longer need it.</p>
<p>Second, for all of the talk about ESPN, it’s worth noting that its content is still valuable — that’s the entire reason this dispute is a big deal. Will anyone care if Charter stops carrying channels from anyone else in Hollywood? And yet, all of those studios are just as dependent on cable TV cashflow, even as many of them have “cheated” to a much greater extent than Disney: Peacock, for example, carries most of NBC’s sports programming, including football, and even put some of the most attractive Olympics programming exclusively on the streaming service. Why on earth should Charter or any other cable provider pay for NBCUniversal channels? Or, more pertinently, if ESPN isn’t available, why would any of the dwindling number of subscribers stay?</p>
<p>The biggest long-term question, though, has to be around sports itself. Sports leagues could extract ever higher rights fees from ESPN because ESPN could extract ever higher affiliate fees from cable TV providers; if the latter is broken than the former is as well. Yes, vMVPDs like YouTube TV will still exist — and be big winners — and Disney still plans an ESPN streaming service. All of those options, though, entail dramatically increased customer choice; leagues like the NBA have shrugged off declining ratings with the certainty that they would, via cable TV subscribers, get paid regardless, but now the choice isn’t just whether to click the remote, but whether to simply click cancel and watch something else. Better to re-bundle sooner rather than later!</p>
<hr class="footnotes"><ol class="footnotes" style="list-style-type:decimal"><li id="fn1-11503"><p>Yes, I know I just said “protocol” twice&nbsp;<a href="https://stratechery.com/2023/the-rise-and-fall-of-espns-leverage/#rf1-11503" class="backlink" title="Return to footnote 1.">↩</a></p></li></ol>]]></description>
      <pubDate>Tue, 05 Sep 2023 14:42:02 +0000</pubDate>
      <link>https://stratechery.com/2023/the-rise-and-fall-of-espns-leverage/</link>
      <dc:creator>Stratechery by Ben Thompson</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4206219164</guid>
    </item>
    <item>
      <title><![CDATA[Nvidia On the Mountaintop]]></title>
      <description><![CDATA[<p>It was only 11 months ago that I wrote an Article entitled <a href="https://stratechery.com/2022/nvidia-in-the-valley/">Nvidia In the Valley</a>; the occasion was yet another plummet in their stock price:</p>
<blockquote><p>
  <img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-4.png?resize=640%2C331&amp;ssl=1" alt="Nvidia's current stock price drop" width="640" height="331" class="aligncenter size-full wp-image-9775" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-4.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-4.png?resize=300%2C155&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-4.png?resize=1024%2C529&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-4.png?resize=768%2C397&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-4.png?resize=1200%2C620&amp;ssl=1 1200w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1">
</p></blockquote>
<p>To say that the company has turned things around is, needless to say, an understatement:</p>
<p><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-6.png?resize=640%2C310&amp;ssl=1" alt="Nvidia's latest stock rise" width="640" height="310" class="aligncenter size-full wp-image-11467" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-6.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-6.png?resize=300%2C145&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-6.png?resize=1024%2C496&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-6.png?resize=768%2C372&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-6.png?resize=1200%2C581&amp;ssl=1 1200w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></p>
<p>That big jump in May was Nvidia’s <a href="https://stratechery.com/2023/nvidia-earnings-jenson-huangs-defense-training-versus-inference/">last earnings</a>, when the company shocked investors with an incredibly ambitious forecast; this last week Nvidia vastly exceeded those expectations and forecasted even bigger growth going forward. From the <a href="https://www.wsj.com/business/earnings/nvidia-nvda-q2-earnings-report-2024-814cf32d">Wall Street Journal</a>:</p>
<blockquote><p>
  Chip maker Nvidia said revenue in its recently completed quarter more than doubled from a year ago, setting a new company record, and projected that surging interest in artificial intelligence is propelling its business faster than expected. Nvidia is at the heart of the boom in artificial intelligence that made it a $1 trillion company this year, and it is forecasting growth that outpaces even the most bullish analyst projections.</p>
<p>  Nvidia’s stock, already the top performer in the S&amp;P 500 this year, rose 7.5% following the results, which would be about $87 billion in market value. The company said revenue more than doubled in its fiscal second quarter to about $13.5 billion, far ahead of Wall Street forecasts in a FactSet survey. Even more strikingly, it said revenue in its current quarter would be around $16 billion, besting expectations by about $3.5 billion. Net profit for the company’s second quarter was $6.19 billion, also surpassing forecasts.</p>
<p>  The results show a wave of investment in artificial intelligence that began late last year with the arrival of OpenAI’s ChatGPT language-generation tool is gaining steam as companies and governments seek to harness its power in business and everyday life. Many companies see AI as indispensable to their future growth and are making large investments in computing infrastructure to support it.
</p></blockquote>
<p>Now the big question on everyone’s mind is if Nvidia is the new Cisco:</p>
<p><a href="https://twitter.com/stockgeekTV/status/1694459398934905113"><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-1.png?resize=640%2C774&amp;ssl=1" alt="Is Nvidia Cisco?" width="640" height="774" class="aligncenter size-full wp-image-11462" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-1.png?w=1184&amp;ssl=1 1184w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-1.png?resize=248%2C300&amp;ssl=1 248w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-1.png?resize=847%2C1024&amp;ssl=1 847w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-1.png?resize=768%2C929&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-1.png?resize=521%2C630&amp;ssl=1 521w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></a></p>
<p>I don’t think so, at least in terms of the near-term: there are some fundamental differences between Nvidia and Cisco that are worth teasing out. The bigger question is the long term, and here the comparison might be more apt.</p>
<h3>Nvidia and Cisco</h3>
<p>The first difference between Nvidia and Cisco is in the above charts: Nvidia already went through a crash, thanks to the double whammy of Ethereum moving to proof-of-stake and the COVID cliff in terms of PC sales; both left Nvidia with huge amounts of inventory it had to write-off over the second half of last year. The bright spot for Nvidia was the steady growth of data center revenue, thanks to the increase of machine learning workloads; I included this chart in that Article last fall:</p>
<blockquote><p>
  <img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-3.png?resize=640%2C370&amp;ssl=1" alt="Nvidia's gaming revenue drop" width="640" height="370" class="aligncenter size-full wp-image-9774" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-3.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-3.png?resize=300%2C173&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-3.png?resize=1024%2C591&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-3.png?resize=768%2C443&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2022/09/nvidia-3.png?resize=1091%2C630&amp;ssl=1 1091w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1">
</p></blockquote>
<p>What has happened over the last two quarters is that data center revenue is devouring the rest of the company; here is an updated version of that same chart:</p>
<p><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-2.png?resize=640%2C370&amp;ssl=1" alt="Nvidia's sky-rocketing AI revenue" width="640" height="370" class="aligncenter size-full wp-image-11463" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-2.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-2.png?resize=300%2C173&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-2.png?resize=1024%2C592&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-2.png?resize=768%2C444&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-2.png?resize=1090%2C630&amp;ssl=1 1090w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></p>
<p>Here is Nvidia’s revenue mix:</p>
<p><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-3.png?resize=640%2C357&amp;ssl=1" alt="Nvidia's revenue mix" width="640" height="357" class="aligncenter size-full wp-image-11464" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-3.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-3.png?resize=300%2C167&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-3.png?resize=1024%2C571&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-3.png?resize=768%2C428&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-3.png?resize=1129%2C630&amp;ssl=1 1129w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></p>
<p>This dramatic shift in Nvidia’s business provides some interesting contrasts to Cisco’s dot-com run-up. First, here was Cisco’s revenue, gross profit, net profit, and stock price in the ten years starting from its 1993 IPO:</p>
<p><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-5.png?resize=640%2C398&amp;ssl=1" alt="Cisco's revenue, profit, and stock price in the 90s" width="640" height="398" class="aligncenter size-full wp-image-11466" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-5.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-5.png?resize=300%2C186&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-5.png?resize=1024%2C636&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-5.png?resize=768%2C477&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-5.png?resize=1014%2C630&amp;ssl=1 1014w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></p>
<p>Here is Nvidia’s last ten years:</p>
<p><img loading="lazy" decoding="async" src="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-4.png?resize=640%2C397&amp;ssl=1" alt="Nvidia's revenue, profit, and stock price" width="640" height="397" class="aligncenter size-full wp-image-11465" srcset="https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-4.png?w=1280&amp;ssl=1 1280w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-4.png?resize=300%2C186&amp;ssl=1 300w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-4.png?resize=1024%2C634&amp;ssl=1 1024w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-4.png?resize=768%2C476&amp;ssl=1 768w, https://i0.wp.com/stratechery.com/wp-content/uploads/2023/08/nvidia-4.png?resize=1017%2C630&amp;ssl=1 1017w" sizes="(max-width: 640px) 100vw, 640px" data-recalc-dims="1"></p>
<p>The first thing to note is the extent to which Nvidia’s crash last year looks similar to Cisco’s dot-com crash: in both cases steady but steep revenue increases initially outpaced the stock price, which eventually overshot just a few quarters before big inventory write-downs led to big decreases in profitability (score one for crypto optimists hopeful that the current doldrums are simply their own dot-com hangover).</p>
<p>Cisco, though, didn’t have a second act, unlike this data center explosion. What is notable is the extent to which Nvidia’s revenue increase is matching the slope of the stock price increase (obviously this is inexact given the different axis); it seems likely that the stock will overshoot revenue growth soon enough, but it hasn’t really happened yet. It’s also worth noting how much more disciplined Nvidia appears to be in terms of below-the-line costs: its net profit is moving in concert with its revenue, unlike Cisco in the 90s; I suspect this is a function of Nvidia being a much larger and more mature company.</p>
<p>Another difference is the nature of Nvidia’s customers: over 50% of the company’s Q2 revenue came from the large cloud service providers, followed by large consumer Internet companies (i.e. Meta). This category does, of course, include the startups that once might have purchased Cisco routers and Sun servers directly, and now rent capacity (if they can get it); cloud providers, though, monetize their hardware immediately, which is good for Nvidia.</p>
<p>Still, there is an important difference from other cloud workloads: previously a new company or line of business only ramped their cloud utilization with usage, which ought to correlate to customer acquisition, if not revenue. Model training, though, is an up-front cost, not dissimilar to the cost needed to buy those Sun servers and Cisco routers in the dot-com era; that is cloud revenue that has a much higher likelihood of disappearing if the company in question doesn’t find a market.</p>
<p>This point is relevant to Nvidia given that training is the part of AI where the company is the most dominant, thanks to both its software ecosystem and the ability to operate huge fleet of Nvidia chips as a single GPU; inference is where Nvidia will first see challenges, and that is also the area of AI that is correlated with usage, and thus more durable from a cloud provider perspective.</p>
<p>Those points about a software ecosystem and hardware scalability are also the biggest reason why Nvidia is different than Cisco. Nvidia has a moat in both, along with a substantial manufacturing advantage thanks to its upfront payments to TSMC over the last several years to secure its own 4nm line (and having the good fortune of asking for more scale at a time when TSMC’s other sources of high performance computing revenue are in a slump). There is certainly a massive incentive for both the cloud providers and large Internet companies to bridge Nvidia’s moats — see AWS’s investments in its own chips, for example, or Meta’s development of and support for PyTorch — but right now Nvidia has a big lead and the frenzy inspired by ChatGPT is only deepening their install base, with all of the positive ecosystem effects that entails.</p>
<h3>GPU Demand</h3>
<p>The biggest challenge facing Nvidia is the one that is ultimately out of their control: what does the final market look like?</p>
<p>Go back to the dot-com era, and the era that proceeded it. The advent of computing, first in the form of mainframes and then the PC, digitized information, making it endlessly duplicable. Then came the Internet which made the marginal cost of distributing that content go to zero (with the caveat that most people had very low bandwidth). This was an obvious business opportunity that plenty of startups jumped all over, even as telecom companies took on the bandwidth problem; Cisco was the beneficiary of both.</p>
<p>The missing element, though, was demand: consistent consumer demand for Internet applications only started to arrive with the advent of broadband connections in the 2000s (thanks in part to a buildout that bankrupted said telecom companies), and then exploded with smartphones a decade later, which made the Internet accessible anytime, anywhere. It was demand that made the router business as big as dot-com investors thought it might be, although by then Cisco had a host of competitors, including large cloud providers who built (and open-sourced) their own.</p>
<p>There are lots of potential starting points to choose for AI: machine learning has obviously been a thing for a while, or you might point to the 2017 invention of the transformer; the release of GPT-3 in 2020 was perhaps akin to the release of the Mosaic web browser, which would make ChatGPT the Netscape IPO. One way to categorize this emergence is to characterize training as being akin to digitization in the previous era, and creation —&nbsp;i.e. inference — as akin to distribution. Once again there are obvious business opportunities that arise from combining the two, and once again startups are jumping all over them, along with the big incumbents.</p>
<p>However you want to make the analogy, what is important to note is that the missing element is the same: demand. ChatGPT took the world by storm, and the use of AI for writing code is both proliferating widely and is extremely high leverage. Every SaaS company in tech, meanwhile, is hard at work at an AI strategy, for the benefit of their sales team if nothing else. That is no small thing, and the exploration and implementation of those strategies will use up a lot of Nvidia GPUs over the next few years. The ultimate question, though, is how much of this AI stuff is actually used, and that is ultimately out of Nvidia’s control.</p>
<p>My best guess is that the next several years will be occupied building out the most obvious use cases, particularly in the enterprise; the analogy here is to the 2000s build-out of the web. The question, though, is what will be the analogy to mobile (and the cloud), which exploded demand and led to one of the most profitable decades tech has ever seen? The answer may be an already discarded fad: the metaverse.</p>
<h3>A GPU Overhang and the Metaverse</h3>
<p>In April 2022, when Dall-E 2 came out, I wrote <a href="https://stratechery.com/2022/dall-e-the-metaverse-and-zero-marginal-content/">DALL-E, the Metaverse, and Zero Marginal Content</a>, and highlighted three trends:</p>
<ul>
<li>First, the gaming industry was increasingly about a few AAA games, small indie titles, and the huge sea of mobile; the limiting factor in further development was the astronomical cost of developing high quality assets.</li>
<li>Second, social media succeeded by virtue of making content creation free, because users created the content of their own volition.</li>
<li>Third, TikTok pointed to a future where every individual not only had their own feed, but also where the provenance of that content didn’t matter.</li>
</ul>
<p>AI is how those three trends might intersect:</p>
<blockquote><p>
  What is fascinating about DALL-E is that it points to a future where these three trends can be combined. DALL-E, at the end of the day, is ultimately a product of human-generated content, just like its GPT-3 cousin. The latter, of course, is about text, while DALL-E is about images. Notice, though, that progression from text to images; it follows that machine learning-generated video is next. This will likely take several years, of course; video is a much more difficult problem, and responsive 3D environments more difficult yet, but this is a path the industry has trod before:</p>
<ul>
<li>Game developers pushed the limits on text, then images, then video, then 3D</li>
<li>Social media drives content creation costs to zero first on text, then images, then video</li>
<li>Machine learning models can now create text and images for zero marginal cost</li>
</ul>
<p>  In the very long run this points to a metaverse vision that is much less deterministic than your typical video game, yet much richer than what is generated on social media. Imagine environments that are not drawn by artists but rather created by AI: this not only increases the possibilities, but crucially, decreases the costs.
</p></blockquote>
<p>I wrote in the conclusion:</p>
<blockquote><p>
  Machine learning generated content is just the next step beyond TikTok: instead of pulling content from anywhere on the network, GPT and DALL-E and other similar models generate new content from content, at zero marginal cost. This is how the economics of the metaverse will ultimately make sense: virtual worlds need virtual content created at virtually zero cost, fully customizable to the individual.
</p></blockquote>
<p>Zero marginal cost is, I should note, aspirational at this point: inference is expensive, both in terms of power and also in terms of the need to pay off all of that money that is showing up on Nvidia’s earnings. It’s possible to imagine a scenario a few years down the line, though, where Nvidia has deployed countless ever more powerful GPUs, and inspired massive competition such that the world’s supply of GPU power far exceeds demand, driving the marginal costs down to the cost of energy (which hopefully will have become cheaper as well); suddenly the idea of making virtual environments on demand won’t seem so far-fetched, opening up entirely new end-user experiences that explode demand in the way that mobile once did.</p>
<h3>The GPU Age</h3>
<p>The challenge for Nvidia is that this future isn’t particularly investable; indeed, the idea assumes a capacity overhang at some point, which is not great for the stock price! That, though, is how technology advances, and even if a cliff eventually comes, there is a lot of money to be made in the meantime.</p>
<p>That noted, the biggest short-term question I have is around Nvidia CEO Jensen Huang’s insistence that the current wave of demand is in fact the dawn of what he calls accelerated computing; from the <a href="https://seekingalpha.com/article/4630703-nvidia-corp-nvda-q2-2024-earnings-call-transcript">Nvidia earnings call</a>:</p>
<blockquote><p>
  I’m reluctant to guess about the future and so I’ll answer the question from the first principle of computer science perspective. It is recognized for some time now that…using general purpose computing at scale is no longer the best way to go forward. It’s too energy costly, it’s too expensive, and the performance of the applications are too slow. And finally, the world has a new way of doing it. It’s called accelerated computing and what kicked it into turbocharge is generative AI. But accelerated computing could be used for all kinds of different applications that’s already in the data center. And by using it, you offload the CPUs. You save a ton of money in order of magnitude, in cost and order of magnitude and energy and the throughput is higher and that’s what the industry is really responding to.</p>
<p>  Going forward, the best way to invest in the data center is to divert the capital investment from general purpose computing and focus it on generative AI and accelerated computing. Generative AI provides a new way of generating productivity, a new way of generating new services to offer to your customers, and accelerated computing helps you save money and save power. And the number of applications is, well, tons. Lots of developers, lots of applications, lots of libraries. It’s ready to be deployed.</p>
<p>  And so I think the data centers around the world recognize this, that this is the best way to deploy resources, deploy capital going forward for data centers. This is true for the world’s clouds and you’re seeing a whole crop of new GPU-specialized cloud service providers. One of the famous ones is CoreWeave and they’re doing incredibly well. But you’re seeing the regional GPU specialist service providers all over the world now. And it’s because they all recognize the same thing, that the best way to invest their capital going forward is to put it into accelerated computing and generative AI.
</p></blockquote>
<p>My interpretation of Huang’s outlook is that all of these GPUs will be used for a lot of the same activities that are currently run on CPUs; that is certainly a bullish view for Nvidia, because it means the capacity overhang that may come from pursuing generative AI will be back-filled by current cloud computing workloads. And, to be fair, Huang has a point about the power and space limitations of current architectures.</p>
<p>That noted, I’m skeptical: humans — and companies — are lazy, and not only are CPU-based applications easier to develop, they are also mostly already built. I have a hard time seeing what companies are going to go through the time and effort to port things that already run on CPUs to GPUs; at the end of the day, the applications that run in a cloud are determined by customers who provide the demand for cloud resources, not cloud providers looking to optimize FLOP/rack.</p>
<p>If GPUs are going to be as big of a market as Nvidia’s investors hope it will be, it will be because applications that are only possible with GPUs generate the demand to make it so. I’m confident that time will come; what I, nor Huang, nor anyone else can be sure of is when that time will arrive.</p>
]]></description>
      <pubDate>Mon, 28 Aug 2023 16:30:50 +0000</pubDate>
      <link>https://stratechery.com/2023/nvidia-on-the-mountaintop/</link>
      <dc:creator>Stratechery by Ben Thompson</dc:creator>
      <guid isPermaLink="false">https://feedbin.me/entries/4199202657</guid>
    </item>
  </channel>
</rss>
